diff --git a/SpacemanDMM.toml b/SpacemanDMM.toml index eb25c8a0cd..81aff0d557 100644 --- a/SpacemanDMM.toml +++ b/SpacemanDMM.toml @@ -1,9 +1,9 @@ [langserver] dreamchecker = true -#[code_standards] -#disallow_relative_type_definitions = true -#disallow_relative_proc_definitions = true +[code_standards] +disallow_relative_type_definitions = true +disallow_relative_proc_definitions = true [dmdoc] use_typepath_names = true diff --git a/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm b/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm index 37a89ba2ff..e20fa042d7 100644 --- a/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm +++ b/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm @@ -18,7 +18,7 @@ /obj/item/mining_scanner, /obj/item/flashlight/lantern, /obj/item/card/id/mining, -/obj/item/gps/mining, +/obj/item/gps/mining/off, /turf/open/floor/plating, /area/ruin/powered/golem_ship) "d" = ( @@ -32,7 +32,7 @@ /obj/item/mining_scanner, /obj/item/flashlight/lantern, /obj/item/card/id/mining, -/obj/item/gps/mining, +/obj/item/gps/mining/off, /turf/open/floor/plating, /area/ruin/powered/golem_ship) "e" = ( @@ -71,8 +71,8 @@ /area/ruin/powered/golem_ship) "k" = ( /obj/machinery/computer/arcade/battle{ - icon_state = "arcade"; - dir = 4 + dir = 4; + icon_state = "arcade" }, /turf/open/floor/mineral/titanium/purple, /area/ruin/powered/golem_ship) @@ -112,8 +112,8 @@ /area/ruin/powered/golem_ship) "s" = ( /obj/machinery/computer/arcade/orion_trail{ - icon_state = "arcade"; - dir = 4 + dir = 4; + icon_state = "arcade" }, /turf/open/floor/mineral/titanium/purple, /area/ruin/powered/golem_ship) @@ -139,6 +139,7 @@ dir = 4; name = "shrine of the liberator" }, +/obj/item/tcg_card/special/golem, /turf/open/floor/mineral/titanium/purple, /area/ruin/powered/golem_ship) "v" = ( diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm index 93b221c446..a32c526ec4 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm @@ -14,6 +14,10 @@ }, /turf/open/floor/plating/beach/sand, /area/icemoon/surface/outdoors) +"l" = ( +/obj/item/tcg_card/special/morph, +/turf/open/floor/plating/beach/sand, +/area/icemoon/surface/outdoors) "I" = ( /turf/closed/indestructible/fakeglass, /area/icemoon/surface/outdoors) @@ -72,7 +76,7 @@ L c c c -U +l U a b diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm index 704ac63a7d..7a41256478 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm @@ -20,6 +20,10 @@ }, /turf/open/floor/mineral/diamond, /area/icemoon/surface/outdoors) +"f" = ( +/obj/item/tcg_card/special/xenomaid, +/turf/open/floor/mineral/diamond, +/area/icemoon/surface/outdoors) (1,1,1) = {" a @@ -65,7 +69,7 @@ a a a b -c +f c c b diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm index 23abc4b731..9ea8747846 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm @@ -49,6 +49,7 @@ /area/ruin/unpowered) "k" = ( /obj/structure/closet/crate/freezer, +/obj/item/tcg_card/special/demonic_miner, /turf/open/floor/wood, /area/ruin/unpowered) "l" = ( diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm index a383c2e8c4..5861309eff 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm @@ -31,6 +31,10 @@ "N" = ( /turf/open/indestructible/necropolis/ice, /area/icemoon/underground/explored) +"S" = ( +/obj/item/tcg_card/special/wendigo, +/turf/open/indestructible/necropolis/ice, +/area/icemoon/underground/explored) "U" = ( /obj/item/paper/crumpled/bloody{ info = "for your own sake, do not enter" @@ -451,7 +455,7 @@ a N N N -N +S N N N diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm index 639d63772c..cd512e44b6 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm @@ -862,6 +862,7 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/item/tcg_card/special/honk, /turf/open/floor/plating, /area/ruin/powered/clownplanet) "bF" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm index eab08815f3..c2bdea157e 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm @@ -111,6 +111,17 @@ /obj/structure/alien/resin/membrane, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"ax" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/gibs, +/obj/structure/alien/weeds/node, +/mob/living/simple_animal/hostile/alien/drone, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/xenonest) +"ay" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss, +/area/ruin/unpowered/xenonest) "aA" = ( /obj/structure/alien/weeds, /obj/item/flamethrower, @@ -130,6 +141,17 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"aD" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/turf/open/chasm/lavaland, +/area/ruin/unpowered/xenonest) "aE" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/ash, @@ -160,6 +182,19 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"aK" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/chasm/lavaland, +/area/ruin/unpowered/xenonest) "aL" = ( /obj/structure/alien/weeds, /obj/item/tank/internals/plasma, @@ -170,6 +205,26 @@ /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"aN" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/open/indestructible/boss, +/area/ruin/unpowered/xenonest) +"aO" = ( +/obj/structure/alien/weeds, +/obj/effect/mob_spawn/alien/corpse/humanoid/sentinel, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/xenonest) +"aP" = ( +/obj/structure/alien/weeds, +/obj/effect/mob_spawn/alien/corpse/humanoid/hunter, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/xenonest) "aQ" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -215,13 +270,6 @@ /obj/effect/gibspawner/xeno, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) -"aY" = ( -/obj/structure/alien/weeds, -/obj/effect/decal/cleanable/blood/gibs, -/mob/living/simple_animal/hostile/alien/drone, -/obj/structure/alien/weeds/node, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) "aZ" = ( /turf/closed/indestructible/riveted/boss, /area/ruin/unpowered/xenonest) @@ -338,10 +386,6 @@ /obj/structure/stone_tile, /turf/open/indestructible/boss, /area/ruin/unpowered/xenonest) -"bm" = ( -/obj/structure/stone_tile/slab/cracked, -/turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) "bn" = ( /obj/structure/stone_tile/block{ dir = 4 @@ -365,12 +409,6 @@ /obj/structure/stone_tile/center, /turf/open/chasm/lavaland, /area/ruin/unpowered/xenonest) -"bp" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, -/turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) "bq" = ( /turf/open/chasm/lavaland, /area/ruin/unpowered/xenonest) @@ -391,33 +429,6 @@ }, /turf/open/chasm/lavaland, /area/ruin/unpowered/xenonest) -"bt" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 1 - }, -/obj/structure/stone_tile/surrounding_tile, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile/center, -/turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) -"bu" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 1 - }, -/turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) -"bv" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile/cracked, -/turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) "bw" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -492,19 +503,6 @@ /obj/structure/alien/weeds, /turf/template_noop, /area/ruin/unpowered/xenonest) -"bE" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 1 - }, -/obj/structure/stone_tile/center/cracked, -/turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) "dE" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -514,6 +512,12 @@ /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"gA" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/mob_spawn/alien/corpse/humanoid/sentinel, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/xenonest) "iA" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -522,18 +526,24 @@ /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) -"kp" = ( -/obj/structure/alien/weeds, -/obj/item/reagent_containers/syringe/alien, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) "lG" = ( /obj/structure/alien/weeds, /obj/effect/mob_spawn/alien/corpse/humanoid/drone, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) -"pE" = ( -/obj/effect/mob_spawn/alien/corpse/humanoid/queen, +"lM" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/chasm/lavaland, +/area/ruin/unpowered/xenonest) +"nj" = ( +/obj/effect/mob_spawn/alien/corpse/humanoid/praetorian, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/xenonest) +"tY" = ( +/obj/structure/alien/weeds/node, +/obj/effect/mob_spawn/alien/corpse/humanoid/hunter, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) "wA" = ( @@ -546,12 +556,23 @@ /mob/living/simple_animal/hostile/alien/sentinel, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"zj" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/chasm/lavaland, +/area/ruin/unpowered/xenonest) "Dd" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /obj/item/storage/backpack/duffelbag/sec/surgery, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"Ha" = ( +/obj/structure/alien/weeds, +/obj/item/reagent_containers/syringe/alien, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/xenonest) "JM" = ( /obj/structure/alien/weeds/node, /obj/effect/mob_spawn/alien/corpse/humanoid/drone, @@ -1075,7 +1096,7 @@ ac ac ac bi -aY +ax ac ac ac @@ -1123,7 +1144,7 @@ an an ac ac -am +gA ac ac aJ @@ -1278,10 +1299,10 @@ ac Dd ag ak -ag +aP af ac -lG +ag ac ac an @@ -1357,7 +1378,7 @@ ab ac af ag -ar +tY lG ag ag @@ -1511,7 +1532,7 @@ ac ah af ah -JM +ar Vi ak ag @@ -1618,7 +1639,7 @@ ag wA ag ag -pE +nj ag at ag @@ -1640,7 +1661,7 @@ ab aZ aZ aZ -bm +ay aZ aZ aZ @@ -1718,7 +1739,7 @@ ah ar ah ak -kp +Ha at ag ag @@ -1742,8 +1763,8 @@ ac aZ bc bj -bp -bt +lM +aD bx aZ ab @@ -1794,7 +1815,7 @@ ba bd bk bq -bu +zj by aZ ab @@ -1823,7 +1844,7 @@ ac ag ar ag -ag +aO ac ab ab @@ -1845,7 +1866,7 @@ aZ be bo bs -bE +aK bz aZ ab @@ -1896,7 +1917,7 @@ aZ bf bl br -bv +aN bA aZ ab diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm index d8713fd40a..134a692e41 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm @@ -155,6 +155,12 @@ /obj/item/stack/tile/brass/fifty, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/unexplored) +"Y" = ( +/obj/item/tcg_card/special/ratvar, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) (1,1,1) = {" a @@ -484,7 +490,7 @@ h h h h -h +Y h l l @@ -709,7 +715,7 @@ b l l b -h +Y h t b diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm index cad120c3f2..c307c2caae 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm @@ -26,6 +26,10 @@ }, /turf/open/indestructible/hierophant/two, /area/ruin/unpowered/hierophant) +"s" = ( +/obj/item/tcg_card/special/hierophant, +/turf/open/indestructible/hierophant, +/area/ruin/unpowered/hierophant) (1,1,1) = {" a @@ -494,7 +498,7 @@ b b b c -b +s a a b diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm index f4c8c7ea0e..7ac6d32b80 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm @@ -11,6 +11,13 @@ "d" = ( /turf/closed/wall/mineral/abductor, /area/ruin/unpowered) +"h" = ( +/obj/structure/closet/abductor, +/obj/item/tcg_card/special/abductor, +/turf/open/floor/plating/abductor{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) "j" = ( /obj/machinery/abductor/experiment{ team_number = 100 @@ -188,7 +195,7 @@ a a c d -q +h t q d diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index d83b4cf2c3..d4b0e65f2d 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -567,6 +567,7 @@ "bm" = ( /obj/structure/closet/wardrobe/science_white, /obj/structure/disposalpipe/segment, +/obj/item/tcg_card/special/space_carp, /turf/open/floor/plasteel{ icon_state = "dark" }, diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm index a1171400e6..bba36470dd 100644 --- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -16,8 +16,8 @@ /area/template_noop) "ae" = ( /obj/structure/fluff/broken_flooring{ - icon_state = "plating"; - dir = 4 + dir = 4; + icon_state = "plating" }, /turf/template_noop, /area/template_noop) @@ -66,8 +66,8 @@ "an" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - icon_state = "plating"; - dir = 4 + dir = 4; + icon_state = "plating" }, /turf/template_noop, /area/template_noop) @@ -78,8 +78,8 @@ "ap" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ - icon_state = "pile"; - dir = 8 + dir = 8; + icon_state = "pile" }, /turf/template_noop, /area/template_noop) @@ -133,8 +133,8 @@ /area/template_noop) "aE" = ( /obj/structure/fluff/broken_flooring{ - icon_state = "pile"; - dir = 4 + dir = 4; + icon_state = "pile" }, /turf/template_noop, /area/template_noop) @@ -1054,6 +1054,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/secure/weapon, /obj/item/gun/ballistic/automatic/pistol/APS, +/obj/item/tcg_card/special/spess_pirate, /turf/open/floor/plasteel/airless/dark, /area/shuttle/caravan/freighter2) "js" = ( diff --git a/_maps/RandomRuins/SpaceRuins/gondolaasteroid.dmm b/_maps/RandomRuins/SpaceRuins/gondolaasteroid.dmm index e3b105d06e..ab5086e534 100644 --- a/_maps/RandomRuins/SpaceRuins/gondolaasteroid.dmm +++ b/_maps/RandomRuins/SpaceRuins/gondolaasteroid.dmm @@ -91,6 +91,10 @@ }, /turf/open/floor/plating/asteroid/airless, /area/ruin/space/has_grav) +"Y" = ( +/obj/item/tcg_card/special/gondola, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/space/has_grav) (1,1,1) = {" a @@ -339,7 +343,7 @@ b c c c -c +Y o c r diff --git a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm index 6e35de07be..a9beb9540e 100644 --- a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm +++ b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm @@ -19,6 +19,7 @@ /area/ruin/space/has_grav/powered/mechtransport) "g" = ( /obj/structure/closet/crate/secure/loot, +/obj/item/tcg_card/special/phazon, /turf/open/floor/mineral/titanium/blue, /area/ruin/space/has_grav/powered/mechtransport) "h" = ( diff --git a/_maps/RandomZLevels/away_mission/SnowCabin.dmm b/_maps/RandomZLevels/away_mission/SnowCabin.dmm index fbb83899fd..dda382c4b7 100644 --- a/_maps/RandomZLevels/away_mission/SnowCabin.dmm +++ b/_maps/RandomZLevels/away_mission/SnowCabin.dmm @@ -881,7 +881,7 @@ /turf/open/floor/plating, /area/awaymission/cabin) "cT" = ( -/obj/vehicle/ridden/atv, +/obj/vehicle/ridden/atv/snowmobile, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -893,7 +893,7 @@ /turf/open/floor/plating, /area/awaymission/cabin) "cV" = ( -/obj/vehicle/ridden/atv, +/obj/vehicle/ridden/atv/snowmobile, /turf/open/floor/plating, /area/awaymission/cabin) "cW" = ( diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index b81f55be21..f7245ef535 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -12995,22 +12995,35 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, /area/chapel/main) "aCP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/grown/poppy{ + pixel_y = 5 + }, +/obj/item/reagent_containers/food/snacks/grown/harebell{ + pixel_y = 5 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aCQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/hydroponics/soil, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 3 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/grass, /area/chapel/main) "aCR" = ( /turf/closed/wall, @@ -13536,7 +13549,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aEi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -13556,35 +13569,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aEl" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plating, /area/maintenance/starboard/fore) "aEm" = ( -/obj/machinery/door/window{ - dir = 8; - name = "Mass Driver"; - req_access_txt = "22" +/obj/structure/bookcase, +/obj/machinery/camera{ + c_tag = "Chapel North" }, -/obj/machinery/mass_driver{ - dir = 4; - id = "chapelgun"; - name = "Holy Driver" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aEn" = ( -/obj/machinery/door/poddoor{ - id = "chapelgun"; - name = "Chapel Launcher Door" +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aEz" = ( /obj/machinery/power/apc{ @@ -13603,13 +13605,10 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 2; - sortType = 18 - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/starboard/fore) "aEB" = ( @@ -13978,16 +13977,10 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "aFA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/computer/pod/old{ - density = 0; - icon = 'icons/obj/airlock_machines.dmi'; - icon_state = "airlock_control_standby"; - id = "chapelgun"; - name = "Mass Driver Controller"; - pixel_x = 24 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aFB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -14617,7 +14610,7 @@ departmentType = 2; pixel_y = 30 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aGV" = ( /obj/structure/disposalpipe/segment{ @@ -14652,7 +14645,7 @@ /obj/machinery/airalarm{ pixel_y = 25 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aGZ" = ( /obj/machinery/door/airlock/security{ @@ -14703,7 +14696,7 @@ pixel_y = 25 }, /obj/machinery/vending/wardrobe/chap_wardrobe, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aHg" = ( /obj/machinery/light_switch{ @@ -14712,7 +14705,7 @@ /obj/machinery/camera{ c_tag = "Chapel Office" }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aHh" = ( /obj/structure/cable{ @@ -14724,9 +14717,9 @@ /turf/open/floor/plasteel, /area/gateway) "aHi" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" }, /turf/open/floor/plasteel/dark, /area/chapel/office) @@ -14743,42 +14736,47 @@ /turf/open/floor/plasteel, /area/gateway) "aHk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/table/wood, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aHl" = ( -/obj/structure/closet/crate/coffin, -/obj/machinery/door/window/eastleft{ - name = "Coffin Storage"; - req_access_txt = "22" +/obj/structure/chair/comfy/plywood, +/obj/machinery/light/floor, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = 25 }, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/dark, /area/chapel/office) "aHm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/structure/lattice, +/turf/closed/wall, /area/chapel/main) "aHn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/mass_driver{ + dir = 4; + id = "chapelgun"; + name = "Holy Driver" }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aHo" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/turf/open/floor/plasteel/chapel{ - dir = 4 +/obj/machinery/door/window{ + dir = 8; + name = "Mass Driver"; + req_access_txt = "22" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/area/chapel/main) -"aHq" = ( -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/chapel/main) "aHu" = ( @@ -15278,9 +15276,14 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "aIz" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/grimy, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/table/wood, +/obj/item/storage/crayons{ + pixel_y = 8 + }, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aIB" = ( /obj/structure/bodycontainer/crematorium{ @@ -15293,20 +15296,16 @@ /area/chapel/office) "aIC" = ( /obj/effect/landmark/start/chaplain, -/obj/structure/chair, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aID" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ +/obj/structure/chair/comfy/plywood, +/obj/structure/disposalpipe/segment{ dir = 4 }, +/turf/open/floor/carpet, +/area/chapel/office) +"aID" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plasteel/dark, /area/chapel/office) -"aIE" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) "aIH" = ( /obj/structure/table, /obj/item/storage/box/lights/mixed, @@ -15328,7 +15327,7 @@ /area/construction/mining/aux_base) "aII" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aIJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -15783,15 +15782,14 @@ /area/hydroponics) "aJM" = ( /obj/structure/table/wood, -/obj/item/flashlight/lamp{ - pixel_y = 10 - }, /obj/structure/disposalpipe/segment, -/obj/item/nullrod, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/obj/item/flashlight/lamp{ + pixel_y = 15 + }, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aJO" = ( /obj/structure/table, @@ -15825,39 +15823,44 @@ /area/library) "aJT" = ( /obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/storage/crayons, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/pen/fountain{ + pixel_y = 4 + }, +/turf/open/floor/carpet, /area/chapel/office) "aJU" = ( /obj/structure/table/wood, -/obj/item/pen, -/obj/item/reagent_containers/food/drinks/bottle/holywater, +/obj/item/reagent_containers/food/drinks/bottle/holywater{ + pixel_x = 9; + pixel_y = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/obj/item/nullrod{ + pixel_x = -15; + pixel_y = 3 + }, +/turf/open/floor/carpet, /area/chapel/office) "aJV" = ( -/obj/structure/closet/crate/coffin, -/obj/machinery/door/window/eastleft{ - dir = 8; - name = "Coffin Storage"; - req_access_txt = "22" +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/turf/open/floor/plating, +/area/chapel/main) "aJW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aJX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -15916,10 +15919,10 @@ /turf/open/floor/plasteel, /area/gateway) "aKe" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel/chapel{ +/obj/structure/chair/wood/normal{ dir = 4 }, +/turf/open/floor/carpet, /area/chapel/main) "aKf" = ( /obj/structure/cable{ @@ -16248,7 +16251,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aLb" = ( /obj/structure/disposalpipe/segment{ @@ -16267,7 +16270,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aLd" = ( /obj/structure/table, @@ -16286,13 +16289,13 @@ /turf/open/floor/plasteel, /area/hydroponics) "aLe" = ( -/obj/structure/chair{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aLf" = ( /obj/machinery/airalarm{ @@ -16816,13 +16819,14 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/structure/chair/wood/wings{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/chapel/main) "aMM" = ( -/obj/machinery/camera{ - c_tag = "Chapel North" - }, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aMN" = ( /obj/machinery/chem_master/condimaster, @@ -16887,7 +16891,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "aMX" = ( -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aMY" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, @@ -17177,28 +17181,24 @@ /turf/open/floor/wood, /area/library) "aNW" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office"; +/turf/open/floor/wood/wood_large, +/area/chapel/main) +"aNX" = ( +/obj/structure/closet/crate/coffin, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Coffin Storage"; req_access_txt = "22" }, /turf/open/floor/plasteel/dark, -/area/chapel/office) -"aNX" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1480; - name = "Confessional Intercom"; - pixel_x = 25 - }, -/obj/structure/chair, -/turf/open/floor/plasteel/dark, /area/chapel/main) "aNY" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth (Chaplain)"; - req_access_txt = "22" +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" }, -/turf/open/floor/plasteel/dark, +/obj/structure/fans/tiny, +/turf/open/floor/plating, /area/chapel/main) "aNZ" = ( /obj/structure/chair, @@ -17679,7 +17679,12 @@ }, /area/chapel/main) "aPo" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/closet/crate/coffin, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Coffin Storage"; + req_access_txt = "22" + }, /turf/open/floor/plasteel/dark, /area/chapel/main) "aPp" = ( @@ -18085,7 +18090,11 @@ /area/chapel/main) "aQw" = ( /obj/structure/table/wood, -/turf/open/floor/plasteel/dark, +/obj/item/trash/candle{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/carpet, /area/chapel/main) "aQx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -18098,22 +18107,17 @@ }, /area/chapel/main) "aQz" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1480; - name = "Confessional Intercom"; - pixel_x = 25 - }, -/obj/structure/chair{ - dir = 1 +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 8 }, /turf/open/floor/plasteel/dark, /area/chapel/main) "aQA" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth" +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aQB" = ( /obj/effect/turf_decal/tile/red{ @@ -19111,24 +19115,32 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "aTf" = ( -/obj/structure/chair/stool, +/obj/structure/chair/pew/right{ + dir = 1 + }, /turf/open/floor/plasteel/chapel, /area/chapel/main) "aTg" = ( -/obj/structure/chair/stool, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 8 }, /area/chapel/main) "aTh" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/pew/right{ + dir = 1 + }, /turf/open/floor/plasteel/chapel, /area/chapel/main) "aTi" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/landmark/start/assistant, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 8 }, @@ -19659,28 +19671,36 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "aUH" = ( -/obj/structure/chair/stool, /obj/effect/landmark/start/assistant, +/obj/structure/chair/pew/right{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 4 }, /area/chapel/main) "aUI" = ( -/obj/structure/chair/stool, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 1 }, /area/chapel/main) "aUJ" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/pew/right{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 4 }, /area/chapel/main) "aUK" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 1 }, @@ -20207,8 +20227,10 @@ /turf/open/floor/wood, /area/library) "aVU" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 8 }, @@ -21999,13 +22021,6 @@ }, /turf/open/floor/wood, /area/crew_quarters/heads/captain) -"bag" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) "bah" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -30 @@ -23874,14 +23889,15 @@ /turf/closed/wall, /area/maintenance/disposal) "bfb" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 +/obj/machinery/computer/pod/old{ + density = 0; + icon = 'icons/obj/airlock_machines.dmi'; + icon_state = "airlock_control_standby"; + id = "chapelgun"; + name = "Mass Driver Controller"; + pixel_x = 24 }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, +/turf/open/floor/wood/wood_large, /area/chapel/main) "bfc" = ( /obj/machinery/power/apc{ @@ -34004,9 +34020,6 @@ /area/medical/surgery) "bCJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/light_switch{ - pixel_y = 26 - }, /turf/open/floor/plasteel/white, /area/medical/surgery) "bCK" = ( @@ -46267,7 +46280,7 @@ "chY" = ( /obj/machinery/shieldgen, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "cia" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -46617,7 +46630,7 @@ "ciW" = ( /obj/effect/landmark/blobstart, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ciX" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal/fifty, @@ -46632,14 +46645,14 @@ /obj/item/lightreplacer, /obj/item/lightreplacer, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ciY" = ( /obj/machinery/door/poddoor{ id = "Secure Storage"; name = "secure storage" }, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ciZ" = ( /turf/open/floor/plating, /area/engine/engineering) @@ -46947,7 +46960,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "cjN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -47234,11 +47247,11 @@ "ckB" = ( /obj/machinery/field/generator, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ckC" = ( /obj/machinery/power/emitter, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ckD" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -49323,9 +49336,12 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "csT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/xmastree, -/turf/open/floor/plasteel/dark, +/obj/structure/table/glass, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/storage/book/bible{ + pixel_y = -1 + }, +/turf/open/floor/wood/wood_large, /area/chapel/main) "csU" = ( /obj/structure/transit_tube/station/reverse, @@ -51957,14 +51973,11 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cBZ" = ( -/obj/structure/table/wood, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/turf/open/floor/plasteel/grimy, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/carpet, /area/chapel/office) "cCb" = ( /obj/structure/table, @@ -53407,10 +53420,6 @@ dir = 4 }, /obj/machinery/suit_storage_unit/atmos, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -53432,6 +53441,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"dmX" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/main) "dnW" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -53462,6 +53475,14 @@ icon_state = "carpetsymbol" }, /area/crew_quarters/theatre) +"dsJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/glass, +/obj/item/toy/figure/chaplain{ + pixel_y = -9 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "dtx" = ( /obj/structure/cable{ icon_state = "1-2" @@ -54381,8 +54402,9 @@ /turf/open/floor/plasteel, /area/security/range) "fsQ" = ( -/turf/open/floor/plating, -/area/engine/storage) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "fty" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/orange/visible, @@ -56336,6 +56358,17 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/space/basic, /area/space/nearstation) +"kdF" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "kdO" = ( /obj/machinery/pool/controller, /turf/open/floor/plasteel/yellowsiding, @@ -56734,6 +56767,10 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"kOL" = ( +/obj/structure/table/glass, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "kPd" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ @@ -56947,6 +56984,17 @@ icon_state = "wood-broken6" }, /area/maintenance/bar) +"lqO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 18 + }, +/turf/open/floor/plating, +/area/maintenance/fore) "lre" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/table/wood/poker, @@ -57068,12 +57116,27 @@ }, /turf/closed/wall, /area/maintenance/disposal/incinerator) +"lLf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/fore) "lMg" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/open/floor/plasteel, /area/science/circuit) +"lNB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/xmastree{ + pixel_x = 14 + }, +/turf/open/floor/carpet, +/area/chapel/main) "lNH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -57332,6 +57395,10 @@ /obj/effect/spawner/lootdrop/keg, /turf/open/floor/wood, /area/maintenance/bar) +"mtU" = ( +/obj/structure/sign/departments/holy, +/turf/closed/wall, +/area/chapel/main) "mug" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -57366,6 +57433,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/crew_quarters/theatre) +"mzv" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "mzB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/window, @@ -57575,6 +57648,14 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/locker) +"mZx" = ( +/obj/structure/table/glass, +/obj/item/storage/box/matches{ + pixel_x = 4; + pixel_y = -8 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "naI" = ( /turf/open/space, /area/space/station_ruins) @@ -58588,8 +58669,11 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/vault, /obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/vault{ + name = "Vault Door"; + req_access_txt = "53" + }, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "puh" = ( @@ -58755,6 +58839,14 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) +"pMQ" = ( +/obj/structure/window/reinforced, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) "pPi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58844,6 +58936,14 @@ icon_state = "wood-broken2" }, /area/maintenance/port/fore) +"pXG" = ( +/obj/structure/table/wood, +/obj/item/candle{ + pixel_x = 5; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/chapel/main) "pYQ" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/reagent_containers/glass/bucket, @@ -58938,6 +59038,13 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"qkn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "qkC" = ( /obj/structure/cable{ icon_state = "4-8" @@ -59027,6 +59134,11 @@ /obj/structure/lattice, /turf/closed/wall/r_wall, /area/crew_quarters/heads/captain) +"qCR" = ( +/obj/structure/musician/piano, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "qEB" = ( /obj/machinery/hydroponics/soil{ pixel_y = 8 @@ -59160,6 +59272,13 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/lobby) +"qUh" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "qVP" = ( /obj/effect/spawner/structure/window, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -59442,6 +59561,14 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"rxF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/glass, +/obj/item/storage/book/bible{ + pixel_y = 17 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "ryr" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -60469,6 +60596,12 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"tSm" = ( +/obj/item/kirbyplants{ + icon_state = "plant-18" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "tSo" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/dark/visible{ @@ -60752,11 +60885,13 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/disposalpipe/junction, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 26 + }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "uys" = ( @@ -60943,7 +61078,6 @@ /area/science/circuit) "uOJ" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/vault, /obj/structure/cable{ icon_state = "1-2" }, @@ -60957,6 +61091,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/door/airlock/vault{ + name = "Vault Door"; + req_access_txt = "53" + }, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "uQR" = ( @@ -61202,6 +61340,19 @@ /obj/item/clothing/under/misc/pj/blue, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"vqE" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/obj/machinery/light/floor, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = -25 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "vqP" = ( /obj/structure/bed/dogbed{ desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off."; @@ -62236,8 +62387,17 @@ /turf/open/floor/carpet, /area/library) "xES" = ( -/turf/closed/wall/r_wall, -/area/engine/storage) +/obj/structure/table/glass, +/obj/item/storage/fancy/candle_box{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/storage/fancy/candle_box{ + pixel_x = 1; + pixel_y = 4 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "xFM" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/head/soft/rainbow, @@ -62327,6 +62487,12 @@ /obj/item/instrument/trombone, /turf/open/floor/wood, /area/crew_quarters/theatre) +"xRa" = ( +/obj/item/kirbyplants{ + icon_state = "plant-20" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "xSW" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -84482,7 +84648,7 @@ ayD nez ngV xPY -aOH +pMQ hcb hcb syJ @@ -84739,7 +84905,7 @@ ayE ayE ayE ayE -ayE +lLf ayE ayE ayE @@ -84996,7 +85162,7 @@ ayH ayH ayH ayH -ayH +lqO ayH aFV ayH @@ -87889,14 +88055,14 @@ cdc cdZ bVI cay -xES -xES -xES -xES -xES -xES -xES -xES +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw cfL coH cBO @@ -88146,14 +88312,14 @@ bWB cec bVI kNv -xES +ccw chY ciX cjM ckB ckB ckB -xES +ccw cnY coH cgR @@ -88403,14 +88569,14 @@ cde ceb bVI cay -xES +ccw chY -fsQ +ciZ ciW ckB ckB ckC -xES +ccw cnX coH cps @@ -88660,14 +88826,14 @@ cdf ced bVI cay -xES -fsQ -fsQ -fsQ +ccw +ciZ +ciZ +ciZ ckC ckC ckC -xES +ccw coa coJ clJ @@ -88917,14 +89083,14 @@ bWB bWB bVI cay -xES -xES +ccw +ccw ciY ciY -xES -xES -xES -xES +ccw +ccw +ccw +ccw cnZ coH cgI @@ -99147,7 +99313,7 @@ aSZ aQc qaY acN -bag +aKR aJC aYV aYV @@ -108390,7 +108556,7 @@ cBZ aJT aLc aFw -aFz +tSm aFz aFz aRR @@ -108400,7 +108566,7 @@ aFz aRS aXW baz -aCR +mtU bcx aXq aYV @@ -108646,7 +108812,7 @@ aGY aII aJW aMX -aNW +qUh aFz aPl aQv @@ -108656,7 +108822,7 @@ aUI aTg aRS aZf -aFz +xRa bbF aYV aXq @@ -108900,8 +109066,8 @@ aCM aEg aFw aHi -aHi -aJV +aFw +aFw aFw aFw aFz @@ -109158,18 +109324,18 @@ aEi aFw aHl aID -aID -aFw -aMM -aFz +vqE +aCR +qCR aFz +aRS aQw aRS aRS aRS aRS aRS -aZf +lNB aRS bbF aYV @@ -109412,15 +109578,15 @@ aAz asB aCO aEh -aFz -aHk -aFz -aFz -aTe +aCR +aCR +aCR +mzv +aCR aML aFz -aFz -aQw +aRS +pXG cdl aRS aRS @@ -109669,11 +109835,11 @@ aAA asB aCQ aEk -aFB -aHn -aFB -csT -aFB +fsQ +dsJ +rxF +fsQ +qkn aLr aFB aPn @@ -109925,12 +110091,12 @@ awO awO asB aCP -aEj +aMM aFA -aHm -aEj -aEj -aEj +aMM +aMM +aMM +aMM aEj aEj aPm @@ -109941,7 +110107,7 @@ aUJ aTh aXz aZg -aFz +xRa bbF aYV bdv @@ -110181,18 +110347,18 @@ ayj azx aAB asB -aCR aEm -aCR -aPl -aQv -aPl -aQv -aCR -aNY -aCR +aNW aQA -aCR +aNW +aNW +aNW +aNW +aFz +aFz +aFz +aFz +aFz aTj aFz aVV @@ -110438,14 +110604,14 @@ asB asB asB asB -aCR +aHk +aNW bfb -aCR -aHo -aIE aKe -aIE -aCR +aKe +aKe +aNW +kdF aNX aPo aQz @@ -110694,14 +110860,14 @@ atS aaf aaf aaf -atS +asB aCR aEn aCR -aHq -aHq -aHq -aHq +aKe +aKe +aKe +aNW aCR aCR aCR @@ -110951,14 +111117,14 @@ atS aoV aoV aaf -atS -aaf -aaa -aaf -aaa -aaa -aaa -aaa +gXs +aHm +aHn +dmX +aNW +aNW +aNW +aNW aMZ aNZ aPp @@ -111208,14 +111374,14 @@ aaH aoV aoV aaf -atS -aaf -aaa -aaf -aaa -aaa -aaa -aaf +gXs +aHm +aJV +dmX +csT +kOL +mZx +xES aMZ aOb aPr @@ -111465,14 +111631,14 @@ aaH aoV aoV aoV -atS -aaf -aaa -aaf -aaa -aaa -aaa -aaf +gXs +aHm +aNY +aCR +dmX +dmX +dmX +dmX aMZ aOa aVX @@ -111722,7 +111888,7 @@ atS aoV aoV aoV -atS +gXs aaf aaa aaf diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index 1c6fb96aea..84968dc961 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -6004,12 +6004,12 @@ c_tag = "Security Checkpoint"; pixel_x = 22 }, -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, /turf/open/floor/plasteel, /area/security/checkpoint) "aoz" = ( @@ -32290,10 +32290,6 @@ dir = 8; light_color = "#e8eaff" }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, /turf/open/floor/plasteel, /area/hydroponics) "bsl" = ( @@ -71184,6 +71180,13 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"pMW" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hydroponics) "pZq" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8; @@ -121382,7 +121385,7 @@ amV aqI aqB aGO -auy +pMW aqB aqI amV diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 07902b28b1..4e2b009c79 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -47138,13 +47138,9 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "bEx" = ( -/obj/structure/closet/radiation, /obj/machinery/light/small{ dir = 1 }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 26 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -48383,7 +48379,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/structure/closet/radiation, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bGg" = ( @@ -49530,7 +49529,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ - dir = 10 + dir = 8 }, /turf/open/floor/plasteel, /area/engine/gravity_generator) @@ -49543,6 +49542,9 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, +/obj/machinery/light/small{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bHV" = ( @@ -113323,10 +113325,6 @@ /obj/item/clothing/gloves/color/black, /obj/item/storage/box/evidence, /obj/item/taperecorder, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 408efad32f..1b37eea20c 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -30529,9 +30529,6 @@ dir = 8 }, /obj/structure/closet/bombcloset, -/obj/machinery/airalarm{ - pixel_y = 24 - }, /turf/open/floor/plasteel/dark, /area/science/mixing) "aXC" = ( @@ -43701,10 +43698,6 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, /mob/living/simple_animal/chicken{ desc = "The arch-nemesis of Kentucky."; name = "Popeye"; @@ -46363,9 +46356,6 @@ "bwK" = ( /obj/structure/flora/grass/jungle/b, /obj/structure/flora/ausbushes/sparsegrass, -/obj/machinery/airalarm{ - pixel_y = 22 - }, /turf/open/floor/grass, /area/chapel/main) "bwL" = ( @@ -48132,16 +48122,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/brig) -"bzx" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/locker) "bzy" = ( /obj/machinery/light/small{ dir = 8 @@ -58156,10 +58136,6 @@ icon_state = "plant-02"; pixel_y = 3 }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, /obj/machinery/camera{ c_tag = "Prison Wing Cells"; dir = 4; @@ -61358,7 +61334,7 @@ dir = 10 }, /turf/open/floor/plasteel, -/area/space) +/area/security/warden) "bUs" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -67210,10 +67186,6 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, /turf/open/floor/plasteel, /area/security/main) "cdU" = ( @@ -71327,9 +71299,9 @@ icon_gib = "magicarp_gib"; icon_living = "magicarp"; icon_state = "magicarp"; + maxHealth = 200; max_co2 = 5; max_tox = 2; - maxHealth = 200; melee_damage_lower = 15; melee_damage_upper = 20; min_oxy = 5; @@ -83281,10 +83253,6 @@ /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 5 }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, /obj/machinery/camera{ c_tag = "Atmospherics Port Tanks"; dir = 4; @@ -108992,7 +108960,7 @@ bss btV aEu bxW -bzx +bIV bKq bKq bKq diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 958ab2dc5a..c2a0e5c353 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -1111,10 +1111,6 @@ /turf/open/floor/plasteel, /area/security/prison) "acx" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, /obj/machinery/cryopod{ dir = 8 }, @@ -40497,10 +40493,9 @@ /area/maintenance/port) "bBr" = ( /obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 + dir = 1; + pixel_y = -22 }, -/obj/structure/displaycase/trophy, /turf/open/floor/wood, /area/library) "bBs" = ( @@ -45866,10 +45861,6 @@ /area/library) "bML" = ( /obj/machinery/light/small, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, /turf/open/floor/wood, /area/library) "bMM" = ( @@ -59581,6 +59572,10 @@ /obj/structure/chair{ dir = 1 }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, /turf/open/floor/plasteel/dark, /area/medical/surgery) "coz" = ( @@ -60135,9 +60130,6 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/disposalpipe/junction/flip{ dir = 8 }, @@ -60145,6 +60137,9 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/research) "cpx" = ( @@ -60947,9 +60942,6 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ @@ -60958,6 +60950,10 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/research) "cqP" = ( @@ -61465,7 +61461,6 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/research{ @@ -61477,6 +61472,7 @@ name = "biohazard containment shutters" }, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/storage) "crU" = ( @@ -61595,10 +61591,6 @@ /turf/open/floor/plasteel/white, /area/medical/surgery) "csl" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, /obj/structure/window/reinforced{ dir = 8 }, @@ -62156,11 +62148,11 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/storage) "cth" = ( @@ -62531,24 +62523,21 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, /obj/structure/disposalpipe/segment{ dir = 5 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/storage) "ctY" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, /obj/structure/chair/stool, /obj/structure/disposalpipe/segment{ dir = 10 @@ -62568,10 +62557,6 @@ /area/science/storage) "cua" = ( /obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/storage) @@ -63127,7 +63112,6 @@ /turf/open/floor/plasteel, /area/science/storage) "cuU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -63668,12 +63652,12 @@ /turf/open/floor/plasteel, /area/science/storage) "cvW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/effect/landmark/blobstart, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/science/storage) "cvX" = ( @@ -68931,13 +68915,13 @@ pixel_x = -25; pixel_y = -5 }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/machinery/airalarm/unlocked{ + dir = 1; + pixel_y = -22 + }, /turf/open/floor/plasteel/white, /area/science/mixing) "cGm" = ( @@ -102705,7 +102689,7 @@ bue bwa bxU bzD -bBr +dmD bSx bEw bzE @@ -103740,7 +103724,7 @@ bGs bHS bzE bLk -bzE +bBr bue bPS bPR @@ -117641,7 +117625,7 @@ cmQ cok cpy cqQ -cgq +crR cti ctZ cuV diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index f4d798511f..6f7f211b3e 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -4924,11 +4924,11 @@ /obj/effect/turf_decal/stripes/end{ dir = 1 }, -/obj/item/gun/energy/e_gun/hos, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/item/gun/energy/e_gun/hos, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain/private) "ahI" = ( @@ -40544,6 +40544,9 @@ name = "Starboard Quater Maintenance APC"; pixel_y = -26 }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, /turf/open/floor/plating{ icon_state = "panelscorched" }, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 12ae0092f0..12c507c2bf 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -16530,6 +16530,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "aMr" = ( @@ -47631,6 +47634,9 @@ pixel_x = -25; specialfunctions = 4 }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "cgM" = ( @@ -47979,6 +47985,9 @@ pixel_x = -25; specialfunctions = 4 }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "cip" = ( @@ -51466,6 +51475,10 @@ name = "Coffin Storage"; req_one_access_txt = "22" }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cvu" = ( @@ -59434,6 +59447,10 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) "qXq" = ( diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 68515426c3..e71243994d 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -69,6 +69,9 @@ #define LINGBLOOD_EXPLOSION_THRESHOLD (LINGBLOOD_DETECTION_THRESHOLD * LINGBLOOD_EXPLOSION_MULT) //Hey, important to note here: the explosion threshold is explicitly more than, rather than more than or equal to. This stops a single loud ability from triggering the explosion threshold. ///Heretics -- +GLOBAL_LIST_EMPTY(living_heart_cache) //A list of all living hearts in existance, for us to iterate through. + + #define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic)) #define IS_HERETIC_MONSTER(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic_monster)) diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index a084f2ae34..42199174e7 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -290,7 +290,7 @@ #define COMSIG_LIVING_ACTIVE_BLOCK_START "active_block_start" //from base of mob/living/keybind_start_active_blocking(): (obj/item/blocking_item, list/backup_items) #define COMPONENT_PREVENT_BLOCK_START 1 -#define COMSIG_LIVING_ACTIVE_PARRY_START "active_parry_start" //from base of mob/living/initiate_parry_sequence(): (parrying_method, datum/parrying_item_mob_or_art, list/backup_items) +#define COMSIG_LIVING_ACTIVE_PARRY_START "active_parry_start" //from base of mob/living/initiate_parry_sequence(): (parrying_method, datum/parrying_item_mob_or_art, list/backup_items, list/override) #define COMPONENT_PREVENT_PARRY_START 1 //ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! @@ -541,6 +541,9 @@ #define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" //from turf AltClickOn(): (/mob) #define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" //from monkey CtrlClickOn(): (/mob) +// /datum/element/ventcrawling signals +#define COMSIG_HANDLE_VENTCRAWL "handle_ventcrawl" //when atom with ventcrawling element attempts to ventcrawl +#define COMSIG_CHECK_VENTCRAWL "check_ventcrawl" //to check an atom's ventcrawling element tier (if applicable) // twitch plays /// Returns direction: (wipe_votes) #define COMSIG_TWITCH_PLAYS_MOVEMENT_DATA "twitch_plays_movement_data" diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm index add4a8e277..798ea478c2 100644 --- a/code/__DEFINES/language.dm +++ b/code/__DEFINES/language.dm @@ -24,3 +24,4 @@ #define LANGUAGE_STONER "stoner" #define LANGUAGE_VASSAL "vassal" #define LANGUAGE_VOICECHANGE "voicechange" +#define LANGUAGE_MULTILINGUAL "multilingual" diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index ecd043a66a..973457692e 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -72,9 +72,11 @@ #define LOADOUT_LIMBS list(LOADOUT_LIMB_NORMAL,LOADOUT_LIMB_PROSTHETIC,LOADOUT_LIMB_AMPUTATED) //you can amputate your legs/arms though //loadout saving/loading specific defines -#define MAXIMUM_LOADOUT_SAVES 5 -#define LOADOUT_ITEM "loadout_item" -#define LOADOUT_COLOR "loadout_color" +#define MAXIMUM_LOADOUT_SAVES 5 +#define LOADOUT_ITEM "loadout_item" +#define LOADOUT_COLOR "loadout_color" +#define LOADOUT_CUSTOM_NAME "loadout_custom_name" +#define LOADOUT_CUSTOM_DESCRIPTION "loadout_custom_description" //loadout item flags #define LOADOUT_CAN_NAME (1<<0) //renaming items diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index a0fded3798..dda9cfd430 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -69,8 +69,8 @@ //Checks to determine borg availability depending on the server's config. These are defines in the interest of reducing copypasta #define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert)) -//silicon_priviledges flags -#define PRIVILEDGES_SILICON (1<<0) -#define PRIVILEDGES_PAI (1<<1) -#define PRIVILEDGES_BOT (1<<2) -#define PRIVILEDGES_DRONE (1<<3) +//silicon_privileges flags +#define PRIVILEGES_SILICON (1<<0) +#define PRIVILEGES_PAI (1<<1) +#define PRIVILEGES_BOT (1<<2) +#define PRIVILEGES_DRONE (1<<3) diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index cbf701e1d3..e84f6eb50b 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -204,7 +204,7 @@ ///Compile all the overlays for an atom from the cache lists // |= on overlays is not actually guaranteed to not add same appearances but we're optimistically using it anyway. #define COMPILE_OVERLAYS(A)\ - if (TRUE) {\ + do {\ var/list/ad = A.add_overlays;\ var/list/rm = A.remove_overlays;\ if(LAZYLEN(rm)){\ @@ -216,7 +216,7 @@ ad.Cut();\ }\ A.flags_1 &= ~OVERLAY_QUEUED_1;\ - } + } while(FALSE) /** diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 2275c4b90b..3d041edfd2 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -197,6 +197,7 @@ #define TRAIT_EMPATH "empath" #define TRAIT_FRIENDLY "friendly" #define TRAIT_SNOB "snob" +#define TRAIT_MULTILINGUAL "multilingual" #define TRAIT_CULT_EYES "cult_eyes" #define TRAIT_AUTO_CATCH_ITEM "auto_catch_item" #define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman. @@ -253,6 +254,7 @@ // item traits #define TRAIT_NODROP "nodrop" +#define TRAIT_SPOOKY_THROW "spooky_throw" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 8d25fb8e03..a554397c41 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -66,25 +66,54 @@ } while(FALSE) //Returns a list in plain english as a string -/proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) - var/total = input.len - if (!total) - return nothing_text - else if (total == 1) - return "[input[1]]" - else if (total == 2) - return "[input[1]][and_text][input[2]]" - else - var/output = "" - var/index = 1 - while (index < total) - if (index == total - 1) - comma_text = final_comma_text +/proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "") + var/total = length(input) + switch(total) + if (0) + return "[nothing_text]" + if (1) + return "[input[1]]" + if (2) + return "[input[1]][and_text][input[2]]" + else + var/output = "" + var/index = 1 + while (index < total) + if (index == total - 1) + comma_text = final_comma_text - output += "[input[index]][comma_text]" - index++ + output += "[input[index]][comma_text]" + index++ - return "[output][and_text][input[index]]" + return "[output][and_text][input[index]]" + +/** + * English_list but associative supporting. Higher overhead. + */ +/proc/english_list_assoc(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "") + var/total = length(input) + switch(total) + if (0) + return "[nothing_text]" + if (1) + var/assoc = input[input[1]] == null? "" : " = [input[input[1]]]" + return "[input[1]][assoc]" + if (2) + var/assoc = input[input[1]] == null? "" : " = [input[input[1]]]" + var/assoc2 = input[input[2]] == null? "" : " = [input[input[2]]]" + return "[input[1]][assoc][and_text][input[2]][assoc2]" + else + var/output = "" + var/index = 1 + var/assoc + while (index < total) + if (index == total - 1) + comma_text = final_comma_text + assoc = input[input[index]] == null? "" : " = [input[input[index]]]" + output += "[input[index]][assoc][comma_text]" + ++index + assoc = input[input[index]] == null? "" : " = [input[input[index]]]" + return "[output][and_text][input[index]]" //Returns list element or null. Should prevent "index out of bounds" error. /proc/listgetindex(list/L, index) diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 18d02229dd..8464e373d5 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -231,10 +231,10 @@ src_object = window.locked_by.src_object // Insert src_object info if(src_object) - entry += "\nUsing: [src_object.type] [REF(src_object)]" + entry += "Using: [src_object.type] [REF(src_object)]" // Insert message if(message) - entry += "\n[message]" + entry += "[message]" WRITE_LOG(GLOB.tgui_log, entry) /* Close open log handles. This should be called as late as possible, and no logging should hapen after. */ diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index a61e3a6492..8ff610e68c 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -19,22 +19,6 @@ /proc/arachnid_name() return "[pick(GLOB.arachnid_first)] [pick(GLOB.arachnid_last)]" -/proc/church_name() - var/static/church_name - if (church_name) - return church_name - - var/name = "" - - name += pick("Holy", "United", "First", "Second", "Last") - - if (prob(20)) - name += " Space" - - name += " " + pick("Church", "Cathedral", "Body", "Worshippers", "Movement", "Witnesses") - name += " of [religion_name()]" - - return name GLOBAL_VAR(command_name) /proc/command_name() @@ -52,17 +36,6 @@ GLOBAL_VAR(command_name) return name -/proc/religion_name() - var/static/religion_name - if (religion_name) - return religion_name - - var/name = "" - - name += pick("bee", "science", "edu", "captain", "assistant", "monkey", "alien", "space", "unit", "sprocket", "gadget", "bomb", "revolution", "beyond", "station", "goon", "robot", "ivor", "hobnob") - name += pick("ism", "ia", "ology", "istism", "ites", "ick", "ian", "ity") - - return capitalize(name) /proc/station_name() if(!GLOB.station_name) diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index d06912b701..374e89f715 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -10,7 +10,7 @@ announcement += "

[html_encode(title)]

" else if(type == "Captain") announcement += "

Captain Announces

" - GLOB.news_network.SubmitArticle(text, "Captain's Announcement", "Station Announcements", null) + GLOB.news_network.SubmitArticle(html_encode(text), "Captain's Announcement", "Station Announcements", null) else if(!sender_override) diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 0987e95dc9..87187a4c3d 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -78,21 +78,21 @@ //Turns a direction into text /proc/dir2text(direction) switch(direction) - if(1) + if(NORTH) return "north" - if(2) + if(SOUTH) return "south" - if(4) + if(EAST) return "east" - if(8) + if(WEST) return "west" - if(5) + if(NORTHEAST) return "northeast" - if(6) + if(SOUTHEAST) return "southeast" - if(9) + if(NORTHWEST) return "northwest" - if(10) + if(SOUTHWEST) return "southwest" else return @@ -101,21 +101,21 @@ /proc/text2dir(direction) switch(uppertext(direction)) if("NORTH") - return 1 + return NORTH if("SOUTH") - return 2 + return SOUTH if("EAST") - return 4 + return EAST if("WEST") - return 8 + return WEST if("NORTHEAST") - return 5 + return NORTHEAST if("NORTHWEST") - return 9 + return NORTHWEST if("SOUTHEAST") - return 6 + return SOUTHEAST if("SOUTHWEST") - return 10 + return SOUTHWEST else return diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 08bf5e709a..d0bb17efd2 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -263,7 +263,7 @@ Turf and target are separate in case you want to teleport some distance from a t return . //Returns a list of all items of interest with their name -/proc/getpois(mobs_only=0,skip_mindless=0) +/proc/getpois(mobs_only = FALSE, skip_mindless = FALSE, specify_dead_role = TRUE) var/list/mobs = sortmobs() var/list/namecounts = list() var/list/pois = list() @@ -277,7 +277,7 @@ Turf and target are separate in case you want to teleport some distance from a t if(M.real_name && M.real_name != M.name) name += " \[[M.real_name]\]" - if(M.stat == DEAD) + if(M.stat == DEAD && specify_dead_role) if(isobserver(M)) name += " \[ghost\]" else @@ -1070,7 +1070,7 @@ B --><-- A return closest_atom -proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) +/proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) if (value == FALSE) //nothing should be calling us with a number, so this is safe value = input("Enter type to find (blank for all, cancel to cancel)", "Search for type") as null|text if (isnull(value)) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 7fad1690e6..41068048a1 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -274,7 +274,7 @@ GLOBAL_LIST_INIT(redacted_strings, list("\[REDACTED\]", "\[CLASSIFIED\]", "\[ARC GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt")) //LANGUAGE CHARACTER CUSTOMIZATION -GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "chimpers", "declares", "bellows", "buzzes" ,"beeps", "chirps", "clicks", "hisses" ,"poofs" , "puffs", "rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters", "warbles")) +GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "chimpers", "declares", "bellows", "buzzes" ,"beeps", "chirps", "clicks", "hisses" ,"poofs" , "puffs", "rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters", "warbles", "caws", "gekkers", "clucks")) GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc, "xeno tongue" = /obj/item/organ/tongue/alien)) //SPECIES BODYPART LISTS diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 4e593ba904..f376ba50d7 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -130,7 +130,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj/item = list( "TRAIT_NODROP" = TRAIT_NODROP, - "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT + "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT, + "TRAIT_SPOOKY_THROW" = TRAIT_SPOOKY_THROW ) )) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 5bd9632355..81d8593d4e 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -220,7 +220,7 @@ /obj/screen/alert/shiver name = "Shivering" - desc = "You're shivering! Get somewhere warmer and take off any insulating clothing like a space suit." + desc = "You're shivering! Get somewhere warmer and take off any insulating clothing like a space suit." /obj/screen/alert/lowpressure name = "Low Pressure" @@ -306,6 +306,39 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." if(CHECK_MOBILITY(L, MOBILITY_MOVE)) return L.resist_fire() //I just want to start a flame in your hearrrrrrtttttt. +/obj/screen/alert/give // information set when the give alert is made + icon_state = "default" + var/mob/living/carbon/giver + var/obj/item/receiving + +/** + * Handles assigning most of the variables for the alert that pops up when an item is offered + * + * Handles setting the name, description and icon of the alert and tracking the person giving + * and the item being offered, also registers a signal that removes the alert from anyone who moves away from the giver + * Arguments: + * * taker - The person receiving the alert + * * giver - The person giving the alert and item + * * receiving - The item being given by the giver + */ +/obj/screen/alert/give/proc/setup(mob/living/carbon/taker, mob/living/carbon/giver, obj/item/receiving) + name = "[giver] is offering [receiving]" + desc = "[giver] is offering [receiving]. Click this alert to take it." + icon_state = "template" + cut_overlays() + add_overlay(receiving) + src.receiving = receiving + src.giver = giver + RegisterSignal(taker, COMSIG_MOVABLE_MOVED, .proc/removeAlert) + +/obj/screen/alert/give/proc/removeAlert() + to_chat(usr, "You moved out of range of [giver]!") + usr.clear_alert("[giver]") + +/obj/screen/alert/give/Click(location, control, params) + . = ..() + var/mob/living/carbon/C = usr + C.take(giver, receiving) //ALIENS diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 04141becf2..841a3e8303 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -118,27 +118,7 @@ action_intent.hud = src static_inventory += action_intent - using = new /obj/screen/mov_intent - using.icon = tg_ui_icon_to_cit_ui(ui_style) // CIT CHANGE - overrides mov intent icon - using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking") - using.screen_loc = ui_movi - using.hud = src - static_inventory += using - - //CITADEL CHANGES - sprint button - using = new /obj/screen/sprintbutton - using.icon = tg_ui_icon_to_cit_ui(ui_style) - using.icon_state = ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint") - using.screen_loc = ui_movi - using.hud = src - static_inventory += using - //END OF CITADEL CHANGES - - //same as above but buffer. - sprint_buffer = new /obj/screen/sprint_buffer - sprint_buffer.screen_loc = ui_sprintbufferloc - sprint_buffer.hud = src - static_inventory += sprint_buffer + assert_move_intent_ui(owner, TRUE) // clickdelay clickdelay = new @@ -393,6 +373,51 @@ update_locked_slots() +/datum/hud/human/proc/assert_move_intent_ui(mob/living/carbon/human/owner = mymob, on_new = FALSE) + var/obj/screen/using + // delete old ones + var/list/obj/screen/victims = list() + victims += locate(/obj/screen/mov_intent) in static_inventory + victims += locate(/obj/screen/sprintbutton) in static_inventory + victims += locate(/obj/screen/sprint_buffer) in static_inventory + if(victims) + static_inventory -= victims + if(mymob?.client) + mymob.client.screen -= victims + QDEL_LIST(victims) + + // make new ones + // walk/run + using = new /obj/screen/mov_intent + using.icon = tg_ui_icon_to_cit_ui(ui_style) // CIT CHANGE - overrides mov intent icon + using.screen_loc = ui_movi + using.hud = src + using.update_icon() + static_inventory += using + if(!on_new) + owner?.client?.screen += using + + if(!CONFIG_GET(flag/sprint_enabled)) + return + + // sprint button + using = new /obj/screen/sprintbutton + using.icon = tg_ui_icon_to_cit_ui(ui_style) + using.icon_state = ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint") + using.screen_loc = ui_movi + using.hud = src + static_inventory += using + if(!on_new) + owner?.client?.screen += using + + // same as above but buffer. + sprint_buffer = new /obj/screen/sprint_buffer + sprint_buffer.screen_loc = ui_sprintbufferloc + sprint_buffer.hud = src + static_inventory += sprint_buffer + if(!on_new) + owner?.client?.screen += using + /datum/hud/human/update_locked_slots() if(!mymob) return diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 53915ff42b..64515260ec 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -351,6 +351,10 @@ icon = 'icons/mob/screen_midnight.dmi' icon_state = "running" +/obj/screen/mov_intent/Initialize(mapload) + . = ..() + update_icon() + /obj/screen/mov_intent/Click() toggle(usr) @@ -359,7 +363,7 @@ if(MOVE_INTENT_WALK) icon_state = "walking" if(MOVE_INTENT_RUN) - icon_state = "running" + icon_state = CONFIG_GET(flag/sprint_enabled)? "running" : "running_nosprint" /obj/screen/mov_intent/proc/toggle(mob/user) if(isobserver(user)) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index dc8e9e1859..4034722417 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -290,6 +290,17 @@ var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/walk) M.sync() +/datum/config_entry/flag/sprint_enabled + config_entry_value = TRUE + +/datum/config_entry/flag/sprint_enabled/ValidateAndSet(str_val) + . = ..() + for(var/datum/hud/human/H) + H.assert_move_intent_ui() + if(!config_entry_value) // disabled + for(var/mob/living/L in world) + L.disable_intentional_sprint_mode() + /datum/config_entry/number/movedelay/sprint_speed_increase config_entry_value = 1 @@ -484,6 +495,8 @@ /datum/config_entry/flag/modetier_voting +/datum/config_entry/flag/must_be_readied_to_vote_gamemode + /datum/config_entry/number/dropped_modes config_entry_value = 3 diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 9b6f4b88a5..63da60d7b5 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -26,50 +26,6 @@ /datum/config_entry/flag/hub // if the game appears on the hub or not -/datum/config_entry/flag/log_ooc // log OOC channel - -/datum/config_entry/flag/log_access // log login/logout - -/datum/config_entry/flag/log_say // log client say - -/datum/config_entry/flag/log_admin // log admin actions - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/log_prayer // log prayers - -/datum/config_entry/flag/log_law // log lawchanges - -/datum/config_entry/flag/log_game // log game events - -/datum/config_entry/flag/log_virus // log virology data - -/datum/config_entry/flag/log_vote // log voting - -/datum/config_entry/flag/log_craft // log crafting - -/datum/config_entry/flag/log_whisper // log client whisper - -/datum/config_entry/flag/log_attack // log attack messages - -/datum/config_entry/flag/log_emote // log emotes - -/datum/config_entry/flag/log_adminchat // log admin chat messages - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/log_shuttle // log shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console - -/datum/config_entry/flag/log_pda // log pda messages - -/datum/config_entry/flag/log_telecomms // log telecomms messages - -/datum/config_entry/flag/log_twitter // log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases. - -/datum/config_entry/flag/log_world_topic // log all world.Topic() calls - -/datum/config_entry/flag/log_manifest // log crew manifest to seperate file - -/datum/config_entry/flag/log_job_debug // log roundstart divide occupations debug information to a file - /datum/config_entry/flag/allow_admin_ooccolor // Allows admins with relevant permissions to have their own ooc colour /datum/config_entry/flag/allow_vote_restart // allow votes to restart @@ -477,10 +433,6 @@ /datum/config_entry/string/default_view_square config_entry_value = "15x15" -/datum/config_entry/flag/log_pictures - -/datum/config_entry/flag/picture_logging_camera - /datum/config_entry/number/max_bunker_days config_entry_value = 7 min_val = 1 diff --git a/code/controllers/configuration/entries/logging.dm b/code/controllers/configuration/entries/logging.dm new file mode 100644 index 0000000000..1cb47d6ab7 --- /dev/null +++ b/code/controllers/configuration/entries/logging.dm @@ -0,0 +1,70 @@ +/datum/config_entry/flag/log_ooc // log OOC channel + config_entry_value = TRUE + +/datum/config_entry/flag/log_access // log login/logout + config_entry_value = TRUE + +/datum/config_entry/flag/log_say // log client say + config_entry_value = TRUE + +/datum/config_entry/flag/log_admin // log admin actions + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/log_prayer // log prayers + config_entry_value = TRUE + +/datum/config_entry/flag/log_law // log lawchanges + config_entry_value = TRUE + +/datum/config_entry/flag/log_game // log game events + config_entry_value = TRUE + +/datum/config_entry/flag/log_virus // log virology data + config_entry_value = TRUE + +/datum/config_entry/flag/log_vote // log voting + config_entry_value = TRUE + +/datum/config_entry/flag/log_craft // log crafting + config_entry_value = TRUE + +/datum/config_entry/flag/log_whisper // log client whisper + config_entry_value = TRUE + +/datum/config_entry/flag/log_attack // log attack messages + config_entry_value = TRUE + +/datum/config_entry/flag/log_emote // log emotes + config_entry_value = TRUE + +/datum/config_entry/flag/log_adminchat // log admin chat messages + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/log_shuttle // log shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console + config_entry_value = TRUE + +/datum/config_entry/flag/log_pda // log pda messages + config_entry_value = TRUE + +/datum/config_entry/flag/log_telecomms // log telecomms messages + config_entry_value = TRUE + +/datum/config_entry/flag/log_twitter // log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases. + config_entry_value = TRUE + +/datum/config_entry/flag/log_world_topic // log all world.Topic() calls + config_entry_value = TRUE + +/datum/config_entry/flag/log_manifest // log crew manifest to seperate file + config_entry_value = TRUE + +/datum/config_entry/flag/log_job_debug // log roundstart divide occupations debug information to a file + config_entry_value = TRUE + +/datum/config_entry/flag/log_pictures + +/datum/config_entry/flag/picture_logging_camera + +/// forces log_href for tgui +/datum/config_entry/flag/emergency_tgui_logging + config_entry_value = FALSE diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 779ee2fbac..7dae0d0126 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -490,6 +490,28 @@ SUBSYSTEM_DEF(job) job.after_spawn(H, M, joined_late) // note: this happens before the mob has a key! M will always have a client, H might not. equip_loadout(N, H, TRUE)//CIT CHANGE - makes players spawn with in-backpack loadout items properly. A little hacky but it works + if(ishuman(H) && H.client && N) + if(H.client && H.client.prefs && length(H.client.prefs.tcg_cards)) + var/obj/item/tcgcard_binder/binder = new(get_turf(H)) + if(!H.equip_to_slot_if_possible(binder, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) + qdel(binder) + else + for(var/card_type in H.client.prefs.tcg_cards) + var/obj/item/tcg_card/card = new(get_turf(H), card_type, H.client.prefs.tcg_cards[card_type]) + card.forceMove(binder) + binder.cards.Add(card) + binder.check_for_exodia() + else + if(H && N.client.prefs && length(N.client.prefs.tcg_cards)) + var/obj/item/tcgcard_binder/binder = new(get_turf(H)) + if(!H.equip_to_slot_if_possible(binder, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) + qdel(binder) + else + for(var/card_type in N.client.prefs.tcg_cards) + var/obj/item/tcg_card/card = new(get_turf(H), card_type, H.client.prefs.tcg_cards[card_type]) + card.forceMove(binder) + binder.cards.Add(card) + return H /* /datum/controller/subsystem/job/proc/handle_auto_deadmin_roles(client/C, rank) @@ -691,21 +713,29 @@ SUBSYSTEM_DEF(job) if(!permitted) continue var/obj/item/I = new G.path - if(I && length(i[LOADOUT_COLOR])) //handle loadout colors - //handle polychromic items - if((G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) && length(G.loadout_initial_colors)) - var/datum/element/polychromic/polychromic = I.comp_lookup["item_worn_overlays"] //stupid way to do it but GetElement does not work for this - if(polychromic && istype(polychromic)) - var/list/polychromic_entry = polychromic.colors_by_atom[I] - if(polychromic_entry) - if(polychromic.suits_with_helmet_typecache[I.type]) //is this one of those toggleable hood/helmet things? - polychromic.connect_helmet(I,i[LOADOUT_COLOR]) - polychromic.colors_by_atom[I] = i[LOADOUT_COLOR] - I.update_icon() - else - //handle non-polychromic items (they only have one color) - I.add_atom_colour(i[LOADOUT_COLOR][1], FIXED_COLOUR_PRIORITY) - I.update_icon() + if(I) + if(length(i[LOADOUT_COLOR])) //handle loadout colors + //handle polychromic items + if((G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) && length(G.loadout_initial_colors)) + var/datum/element/polychromic/polychromic = I.comp_lookup["item_worn_overlays"] //stupid way to do it but GetElement does not work for this + if(polychromic && istype(polychromic)) + var/list/polychromic_entry = polychromic.colors_by_atom[I] + if(polychromic_entry) + if(polychromic.suits_with_helmet_typecache[I.type]) //is this one of those toggleable hood/helmet things? + polychromic.connect_helmet(I,i[LOADOUT_COLOR]) + polychromic.colors_by_atom[I] = i[LOADOUT_COLOR] + I.update_icon() + else + //handle non-polychromic items (they only have one color) + I.add_atom_colour(i[LOADOUT_COLOR][1], FIXED_COLOUR_PRIORITY) + I.update_icon() + //when inputting the data it's already sanitized + if(i[LOADOUT_CUSTOM_NAME]) + var/custom_name = i[LOADOUT_CUSTOM_NAME] + I.name = custom_name + if(i[LOADOUT_CUSTOM_DESCRIPTION]) + var/custom_description = i[LOADOUT_CUSTOM_DESCRIPTION] + I.desc = custom_description if(!M.equip_to_slot_if_possible(I, G.slot, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // If the job's dresscode compliant, try to put it in its slot, first if(iscarbon(M)) var/mob/living/carbon/C = M diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index e8faf80e5d..a3be7b9c51 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -88,6 +88,7 @@ SUBSYSTEM_DEF(persistence) SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. SavePaintings() SaveScars() + SaveTCGCards() /** * Loads persistent data relevant to the current map: Objects, etc. @@ -349,3 +350,25 @@ SUBSYSTEM_DEF(persistence) if(!ending_human.client) return ending_human.client.prefs.save_character() + +/datum/controller/subsystem/persistence/proc/SaveTCGCards() + for(var/i in GLOB.joined_player_list) + var/mob/living/carbon/human/ending_human = get_mob_by_ckey(i) + if(!istype(ending_human) || !ending_human.mind || !ending_human.client || !ending_human.client.prefs || !ending_human.client.prefs.tcg_cards) + continue + + var/mob/living/carbon/human/original_human = ending_human.mind.original_character + if(!original_human || original_human.stat == DEAD || !(original_human == ending_human)) + continue + + var/obj/item/tcgcard_binder/binder = locate() in ending_human + if(!binder || !length(binder.cards)) + continue + + var/list/card_types = list() + for(var/obj/item/tcg_card/card in binder.cards) + //if(!card.illegal) //Uncomment if you want to block syndie cards from saving + card_types[card.datum_type] = card.illegal + + ending_human.client.prefs.tcg_cards = card_types + ending_human.client.prefs.save_character(TRUE) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index e5d6b0bbd0..0fa8035d72 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -84,6 +84,8 @@ SUBSYSTEM_DEF(throwing) /datum/thrownthing/Destroy() + if(HAS_TRAIT_FROM(thrownthing, TRAIT_SPOOKY_THROW, "revenant")) + REMOVE_TRAIT(thrownthing, TRAIT_SPOOKY_THROW, "revenant") SSthrowing.processing -= thrownthing thrownthing.throwing = null thrownthing = null diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index fb8299d108..2474a6f272 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -68,6 +68,10 @@ SUBSYSTEM_DEF(vote) //get the highest number of votes var/greatest_votes = 0 var/total_votes = 0 + if(mode == "gamemode" && CONFIG_GET(flag/must_be_readied_to_vote_gamemode)) + for(var/mob/dead/new_player/P in GLOB.player_list) + if(P.ready != PLAYER_READY_TO_PLAY && voted[P.ckey]) + choices[choices[voted[P.ckey]]]-- for(var/option in choices) var/votes = choices[option] total_votes += votes @@ -101,6 +105,10 @@ SUBSYSTEM_DEF(vote) /datum/controller/subsystem/vote/proc/calculate_condorcet_votes(var/blackbox_text) // https://en.wikipedia.org/wiki/Schulze_method#Implementation + if((mode == "gamemode" || mode == "dynamic") && CONFIG_GET(flag/must_be_readied_to_vote_gamemode)) + for(var/mob/dead/new_player/P in GLOB.player_list) + if(P.ready != PLAYER_READY_TO_PLAY && voted[P.ckey]) + voted -= P.ckey var/list/d[][] = new/list(choices.len,choices.len) // the basic vote matrix, how many times a beats b for(var/ckey in voted) var/list/this_vote = voted[ckey] @@ -147,6 +155,10 @@ SUBSYSTEM_DEF(vote) for(var/choice in choices) scores_by_choice += "[choice]" scores_by_choice["[choice]"] = list() + if((mode == "gamemode" || mode == "dynamic") && CONFIG_GET(flag/must_be_readied_to_vote_gamemode)) + for(var/mob/dead/new_player/P in GLOB.player_list) + if(P.ready != PLAYER_READY_TO_PLAY && voted[P.ckey]) + voted -= P.ckey for(var/ckey in voted) var/list/this_vote = voted[ckey] var/list/pretty_vote = list() diff --git a/code/datums/components/gps.dm b/code/datums/components/gps.dm index c2b3ad1f30..f3ff912321 100644 --- a/code/datums/components/gps.dm +++ b/code/datums/components/gps.dm @@ -21,12 +21,15 @@ GLOBAL_LIST_EMPTY(GPS_list) var/updating = TRUE //Automatic updating of GPS list. Can be set to manual by user. var/global_mode = TRUE //If disabled, only GPS signals of the same Z level are shown -/datum/component/gps/item/Initialize(_gpstag = "COM0", emp_proof = FALSE) +/datum/component/gps/item/Initialize(_gpstag = "COM0", emp_proof = FALSE, starton = TRUE) . = ..() if(. == COMPONENT_INCOMPATIBLE || !isitem(parent)) return COMPONENT_INCOMPATIBLE var/atom/A = parent - A.add_overlay("working") + if(starton) + A.add_overlay("working") + else + tracking = FALSE A.name = "[initial(A.name)] ([gpstag])" RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) if(!emp_proof) diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 49b19f767c..26f52f6ba5 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -146,9 +146,11 @@ if(!istype(A) || !get_turf(A) || A == src) return + orbit_target = A return A.AddComponent(/datum/component/orbiter, src, radius, clockwise, rotation_speed, rotation_segments, pre_rotation) /atom/movable/proc/stop_orbit(datum/component/orbiter/orbits) + orbit_target = null return // We're just a simple hook /atom/proc/transfer_observers_to(atom/target) diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index e9aa5afe92..e11eca2975 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -37,7 +37,7 @@ qdel(src) /datum/component/riding/proc/vehicle_mob_buckle(datum/source, mob/living/M, force) - handle_vehicle_offsets() + handle_vehicle_offsets(M.buckled?.dir) /datum/component/riding/proc/handle_vehicle_layer(dir) var/atom/movable/AM = parent diff --git a/code/datums/components/storage/concrete/tcg.dm b/code/datums/components/storage/concrete/tcg.dm new file mode 100644 index 0000000000..a9d8012a4b --- /dev/null +++ b/code/datums/components/storage/concrete/tcg.dm @@ -0,0 +1,49 @@ +/** + *A storage component to be used on card piles, for use as hands/decks/discard piles. Don't use on something that's not a card pile! + */ +/datum/component/storage/concrete/tcg + display_numerical_stacking = FALSE + max_w_class = WEIGHT_CLASS_TINY + max_items = 30 + max_combined_w_class = WEIGHT_CLASS_TINY * 30 + ///The deck that the card pile is using for FAIR PLAY. + +/datum/component/storage/concrete/tcg/can_be_inserted(obj/item/I, stop_messages, mob/M) + . = ..() + return istype(I, /obj/item/tcg_card) + +/datum/component/storage/concrete/tcg/PostTransfer() + . = ..() + handle_empty_deck() + +/datum/component/storage/concrete/tcg/remove_from_storage(atom/movable/AM, atom/new_location) + . = ..() + handle_empty_deck() + +/datum/component/storage/concrete/tcg/ui_show(mob/M) + . = ..() + M.visible_message("[M] starts to look through the contents of \the [parent]!", \ + "You begin looking into the contents of \the [parent]!") + +/datum/component/storage/concrete/tcg/close(mob/M) + . = ..() + var/list/card_contents = contents() + var/obj/temp_parent = parent + temp_parent.visible_message("\the [parent] is shuffled after looking through it.") + card_contents = shuffle(card_contents) + +/datum/component/storage/concrete/tcg/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found) + . = ..() + if(!things.len) + qdel(parent) + +/datum/component/storage/concrete/tcg/proc/handle_empty_deck() + var/list/contents = contents() + //You can't have a deck of one card! + if(contents.len == 1) + var/obj/item/tcgcard_deck/deck = parent + var/obj/item/tcg_card/card = contents[1] + remove_from_storage(card, card.drop_location()) + card.flipped = deck.flipped + card.update_icon_state() + qdel(parent) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index f93d40bb04..2fa5a20d7a 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -449,6 +449,10 @@ // this must come before the screen objects only block, dunno why it wasn't before if(over_object == M) user_show_to_mob(M) + return + if(isrevenant(M)) + RevenantThrow(over_object, M, source) + return if(!M.incapacitated()) if(!istype(over_object, /obj/screen)) dump_content_at(over_object, M) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index c69df4f5e3..10ff5bda3d 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -85,6 +85,10 @@ to_chat(user, "You're not ready to tackle!") return + if(!user.mob_has_gravity() ||!user.loc.has_gravity() || isspaceturf(user.loc)) + to_chat(user, "You can't find your footing without gravity!") + return + if(user.has_status_effect(STATUS_EFFECT_TASED)) // can't tackle if you just got tased to_chat(user, "You can't tackle while tased!") return diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 44775ed031..8dca59ea94 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -121,7 +121,7 @@ add_monkey(affected_mob.mind) if(ishuman(affected_mob)) var/mob/living/carbon/monkey/M = affected_mob.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) - M.ventcrawler = VENTCRAWLER_ALWAYS + M.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /datum/disease/transformation/jungle_fever/stage_act() diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm index d770e0f30d..619f674969 100644 --- a/code/datums/elements/mob_holder.dm +++ b/code/datums/elements/mob_holder.dm @@ -141,7 +141,7 @@ /obj/item/clothing/head/mob_holder/dropped(mob/user) . = ..() - if(held_mob && isturf(loc))//don't release on soft-drops + if(held_mob && !ismob(loc))//don't release on soft-drops release() /obj/item/clothing/head/mob_holder/proc/release() diff --git a/code/datums/elements/ventcrawling.dm b/code/datums/elements/ventcrawling.dm new file mode 100644 index 0000000000..254345a97f --- /dev/null +++ b/code/datums/elements/ventcrawling.dm @@ -0,0 +1,36 @@ +/datum/element/ventcrawling + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + var/tier + +/datum/element/ventcrawling/Attach(datum/target, duration = 0, given_tier = VENTCRAWLER_NUDE) + . = ..() + + var/mob/living/person = target + if(!istype(person)) + return FALSE + + src.tier = given_tier + + RegisterSignal(target, COMSIG_HANDLE_VENTCRAWL, .proc/handle_ventcrawl) + RegisterSignal(target, COMSIG_CHECK_VENTCRAWL, .proc/check_ventcrawl) + to_chat(target, "You can ventcrawl! Use alt+click on vents to quickly travel about the station.") + + if(duration!=0) + addtimer(CALLBACK(src, .proc/Detach, target), duration) + +/datum/element/ventcrawling/Detach(datum/target) + UnregisterSignal(target, list(COMSIG_HANDLE_VENTCRAWL, COMSIG_CHECK_VENTCRAWL)) + to_chat(target, "You can no longer ventcrawl.") + + return ..() + +/datum/element/ventcrawling/proc/handle_ventcrawl(datum/target,atom/A) + var/mob/living/person = target + if(!istype(person)) + return FALSE + + person.handle_ventcrawl(A,tier) + +/datum/element/ventcrawling/proc/check_ventcrawl() + return tier diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index 36ca035be9..9a29158b33 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -239,8 +239,13 @@ GLOBAL_LIST_EMPTY(explosions) atoms += A for(var/i in atoms) var/atom/A = i - if(!QDELETED(A)) - A.ex_act(dist) + if(QDELETED(A)) + continue + A.ex_act(dist, null, src) + if(QDELETED(A) || !ismovable(A)) + continue + var/atom/movable/AM = A + LAZYADD(AM.acted_explosions, explosion_id) if(flame_dist && prob(40) && !isspaceturf(T) && !T.density) new /obj/effect/hotspot(T) //Mostly for ambience! diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 19b12410bc..fe59bbe14a 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -887,7 +887,7 @@ L.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND) -datum/status_effect/pacify +/datum/status_effect/pacify id = "pacify" status_type = STATUS_EFFECT_REPLACE tick_interval = 1 diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index c6466fdd96..22a851da1d 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -11,6 +11,8 @@ var/antag_removal_text // Text will be given to the quirk holder if they get an antag that has it blacklisted. var/mood_quirk = FALSE //if true, this quirk affects mood and is unavailable if moodlets are disabled var/mob_trait //if applicable, apply and remove this mob trait + /// should we immediately call on_spawn or add a timer to trigger + var/on_spawn_immediate = TRUE var/mob/living/quirk_holder /datum/quirk/New(mob/living/quirk_mob, spawn_effects) @@ -26,7 +28,10 @@ START_PROCESSING(SSquirks, src) add() if(spawn_effects) - on_spawn() + if(on_spawn_immediate) + on_spawn() + else + addtimer(CALLBACK(src, .proc/on_spawn), 0) addtimer(CALLBACK(src, .proc/post_add), 30) /datum/quirk/Destroy() diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 23fd75f982..659149a123 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -219,3 +219,19 @@ /datum/quirk/night_vision/on_spawn() var/mob/living/carbon/human/H = quirk_holder H.update_sight() + +/datum/quirk/multilingual + name = "Multi-Lingual" + desc = "You spent a portion of your life learning to understand an additional language. You may or may not be able to speak it based on your anatomy." + value = 1 + mob_trait = TRAIT_MULTILINGUAL + gain_text = "You've learned an extra language!" + lose_text = "You've forgotten your extra language." + +/datum/quirk/multilingual/post_add() + var/mob/living/carbon/human/H = quirk_holder + H.grant_language(H.client.prefs.language, TRUE, TRUE, LANGUAGE_MULTILINGUAL) + +/datum/quirk/multilingual/remove() + var/mob/living/carbon/human/H = quirk_holder + H.remove_language(H.client.prefs.language, TRUE, TRUE, LANGUAGE_MULTILINGUAL) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 3cbf4b3cd2..cce138e82c 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -184,6 +184,7 @@ GLOBAL_LIST_EMPTY(family_heirlooms) gain_text = null // Handled by trauma. lose_text = null medical_record_text = "Patient has an untreatable impairment in motor function in the lower extremities." + on_spawn_immediate = FALSE /datum/quirk/paraplegic/add() var/datum/brain_trauma/severe/paralysis/paraplegic/T = new() diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm index d7c34da34a..a1746001b9 100644 --- a/code/game/alternate_appearance.dm +++ b/code/game/alternate_appearance.dm @@ -168,7 +168,7 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) return TRUE return FALSE -datum/atom_hud/alternate_appearance/basic/onePerson +/datum/atom_hud/alternate_appearance/basic/onePerson var/mob/seer /datum/atom_hud/alternate_appearance/basic/onePerson/mobShouldSee(mob/M) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 4a24416e3c..1b64cca787 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -99,6 +99,9 @@ ///Mobs that are currently do_after'ing this atom, to be cleared from on Destroy() var/list/targeted_by + ///Reference to atom being orbited + var/atom/orbit_target + /** * Called when an atom is created in byond (built in engine proc) * @@ -548,7 +551,7 @@ /atom/proc/contents_explosion(severity, target) return //For handling the effects of explosions on contents that would not normally be effected -/atom/proc/ex_act(severity, target) +/atom/proc/ex_act(severity, target, datum/explosion/E) set waitfor = FALSE contents_explosion(severity, target) SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a6fedd6199..a582fa03e4 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -31,7 +31,14 @@ var/list/client_mobs_in_contents // This contains all the client mobs within this container var/list/acted_explosions //for explosion dodging var/datum/forced_movement/force_moving = null //handled soley by forced_movement.dm - var/movement_type = GROUND //Incase you have multiple types, you automatically use the most useful one. IE: Skating on ice, flippers on water, flying over chasm/space, etc. + + /** + * In case you have multiple types, you automatically use the most useful one. + * IE: Skating on ice, flippers on water, flying over chasm/space, etc. + * I reccomend you use the movetype_handler system and not modify this directly, especially for living mobs. + */ + var/movement_type = GROUND + var/atom/movable/pulling var/grab_state = 0 var/throwforce = 0 @@ -567,8 +574,8 @@ return TRUE //TODO: Better floating -/atom/movable/proc/float(on) - if(throwing) +/atom/movable/proc/float(on, throw_override) + if(throwing || !throw_override) return if(on && !(movement_type & FLOATING)) animate(src, pixel_y = 2, time = 10, loop = -1, flags = ANIMATION_RELATIVE) diff --git a/code/game/gamemodes/gangs/gang_items.dm b/code/game/gamemodes/gangs/gang_items.dm index 7d6ecd00f6..d1cf006600 100644 --- a/code/game/gamemodes/gangs/gang_items.dm +++ b/code/game/gamemodes/gangs/gang_items.dm @@ -133,7 +133,7 @@ icon_state = "knuckles" w_class = 3 -datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang member anyways? +/datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang member anyways? name = "Cool Sunglasses" id = "glasses" cost = 5 @@ -313,13 +313,13 @@ datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang m permeability_coefficient = 0.01 clothing_flags = NOSLIP -datum/gang_item/equipment/shield +/datum/gang_item/equipment/shield name = "Riot Shield" id = "riot_shield" cost = 25 item_path = /obj/item/shield/riot -datum/gang_item/equipment/gangsheild +/datum/gang_item/equipment/gangsheild name = "Tower Shield" id = "metal" cost = 45 //High block of melee and even higher for bullets diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index d8617e0b48..0ee07951a9 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -455,7 +455,7 @@ If not set, defaults to check_completion instead. Set it. It's used by cryo. var/target_real_name // Has to be stored because the target's real_name can change over the course of the round var/target_missing_id -/datum/objective/escape/escape_with_identity/find_target() +/datum/objective/escape/escape_with_identity/find_target(dupe_search_range, blacklist) target = ..() update_explanation_text() @@ -553,7 +553,7 @@ GLOBAL_LIST_EMPTY(possible_items) for(var/I in subtypesof(/datum/objective_item/steal)) new I -/datum/objective/steal/find_target() +/datum/objective/steal/find_target(dupe_search_range, blacklist) var/list/datum/mind/owners = get_owners() var/approved_targets = list() check_items: @@ -631,7 +631,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) for(var/I in subtypesof(/datum/objective_item/special) + subtypesof(/datum/objective_item/stack)) new I -/datum/objective/steal/special/find_target() +/datum/objective/steal/special/find_target(dupe_search_range, blacklist) return set_target(pick(GLOB.possible_items_special)) /datum/objective/steal/exchange @@ -844,7 +844,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) name = "destroy AI" martyr_compatible = 1 -/datum/objective/destroy/find_target() +/datum/objective/destroy/find_target(dupe_search_range, blacklist) var/list/possible_targets = active_ais(1) var/mob/living/silicon/ai/target_ai = pick(possible_targets) target = target_ai.mind @@ -1124,7 +1124,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) /datum/objective/hoard/heirloom name = "steal heirloom" -/datum/objective/hoard/heirloom/find_target() +/datum/objective/hoard/heirloom/find_target(dupe_search_range, blacklist) set_target(pick(GLOB.family_heirlooms)) GLOBAL_LIST_EMPTY(traitor_contraband) @@ -1141,7 +1141,7 @@ GLOBAL_LIST_EMPTY(cult_contraband) if(!GLOB.cult_contraband.len) GLOB.cult_contraband = list(/obj/item/clockwork/slab,/obj/item/clockwork/component/belligerent_eye,/obj/item/clockwork/component/belligerent_eye/lens_gem,/obj/item/shuttle_curse,/obj/item/cult_shift) -/datum/objective/hoard/collector/find_target() +/datum/objective/hoard/collector/find_target(dupe_search_range, blacklist) var/obj/item/I var/I_type if(prob(50)) @@ -1172,7 +1172,7 @@ GLOBAL_LIST_EMPTY(possible_sabotages) for(var/I in subtypesof(/datum/sabotage_objective)) new I -/datum/objective/sabotage/find_target() +/datum/objective/sabotage/find_target(dupe_search_range, blacklist) var/list/datum/mind/owners = get_owners() var/approved_targets = list() check_sabotages: diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm index c8f1ef4713..1fbebfdac4 100644 --- a/code/game/gamemodes/objective_sabotage.dm +++ b/code/game/gamemodes/objective_sabotage.dm @@ -33,6 +33,7 @@ /datum/sabotage_objective/processing/check_conditions() return won +/* /datum/sabotage_objective/processing/power_sink name = "Drain at least 100 megajoules of power using a power sink." sabotage_type = "powersink" @@ -44,6 +45,7 @@ for(var/s in GLOB.power_sinks) var/obj/item/powersink/sink = s won = max(won,sink.power_drained/1e8) +*/ /obj/item/paper/guides/antag/supermatter_sabotage info = "Ways to sabotage a supermatter:
\ diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index effd70e9ab..25445f0d1c 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -10,7 +10,7 @@ circuit = /obj/item/circuitboard/machine/cell_charger pass_flags = PASSTABLE var/obj/item/stock_parts/cell/charging = null - var/charge_rate = 500 + var/recharge_coeff = 1 /obj/machinery/cell_charger/update_overlays() . += ..() @@ -28,9 +28,10 @@ . = ..() . += "There's [charging ? "a" : "no"] cell in the charger." if(charging) - . += "Current charge: [round(charging.percent(), 1)]%." + var/obj/item/stock_parts/cell/C = charging.get_cell() + . += "Current charge: [C.percent()]%." if(in_range(user, src) || isobserver(user)) - . += "The status display reads: Charge rate at [charge_rate]J per cycle." + . += "The status display reads: Charge rate at [recharge_coeff*10]J per cycle." /obj/machinery/cell_charger/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stock_parts/cell) && !panel_open) @@ -122,17 +123,18 @@ charging.emp_act(severity) /obj/machinery/cell_charger/RefreshParts() - charge_rate = 500 for(var/obj/item/stock_parts/capacitor/C in component_parts) - charge_rate *= C.rating + recharge_coeff = C.rating /obj/machinery/cell_charger/process() if(!charging || !anchored || (stat & (BROKEN|NOPOWER))) return - if(charging.percent() >= 100) - return - use_power(charge_rate) - charging.give(charge_rate) //this is 2558, efficient batteries exist + if(charging) + var/obj/item/stock_parts/cell/C = charging.get_cell() + if(C) + if(C.charge < C.maxcharge) + C.give(C.chargerate * recharge_coeff) + use_power(250 * recharge_coeff) update_icon() diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index b4306d49a4..1f1c16248c 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -6,10 +6,12 @@ density = TRUE anchored = TRUE circuit = /obj/item/circuitboard/machine/colormate - var/obj/item/inserted + var/atom/movable/inserted var/activecolor = "#FFFFFF" var/list/color_matrix_last var/matrix_mode = FALSE + /// Allow holder'd mobs + var/allow_mobs = TRUE /// Minimum lightness for normal mode var/minimum_normal_lightness = 50 /// Minimum lightness for matrix mode, tested using 4 test colors of full red, green, blue, white. @@ -57,11 +59,22 @@ return if(user.a_intent == INTENT_HARM) return ..() + if(allow_mobs && istype(I, /obj/item/clothing/head/mob_holder)) + var/obj/item/clothing/head/mob_holder/H = I + var/mob/victim = H.held_mob + if(!user.transferItemToLoc(I, src)) + to_chat(user, "[I] is stuck to your hand!") + return + if(!QDELETED(H)) + H.release() + insert_mob(victim, user) if(is_type_in_list(I, allowed_types) && is_operational()) if(!user.transferItemToLoc(I, src)) to_chat(user, "[I] is stuck to your hand!") return + if(QDELETED(I)) + return user.visible_message("[user] inserts [I] into [src]'s receptable.") inserted = I @@ -69,9 +82,22 @@ else return ..() +/obj/machinery/gear_painter/proc/insert_mob(mob/victim, mob/user) + if(inserted) + return + if(user) + visible_message("[user] stuffs [victim] into [src]!") + inserted = victim + inserted.forceMove(src) + /obj/machinery/gear_painter/AllowDrop() return FALSE +/obj/machinery/gear_painter/handle_atom_del(atom/movable/AM) + if(AM == inserted) + inserted = null + return ..() + /obj/machinery/gear_painter/AltClick(mob/user) . = ..() if(!user.CanReach(src)) diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index c14837b8e3..804025961b 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -151,7 +151,14 @@ var/obj/machinery/power/apc/target = locate(ref) in GLOB.apcs_list if(!target) return - target.vars[type] = target.setsubsystem(text2num(value)) + value = target.setsubsystem(text2num(value)) + switch(type) // Sanity check + if("equipment", "lighting", "environ") + target.vars[type] = value + else + message_admins("Warning: possible href exploit by [key_name(usr)] - attempted to set [type] on [target] to [value]") + log_game("Warning: possible href exploit by [key_name(usr)] - attempted to set [type] on [target] to [value]") + return target.update_icon() target.update() var/setTo = "" diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 0157f4ca87..45bb9bd327 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -264,6 +264,8 @@ What a mess.*/ active1 = null if(!( GLOB.data_core.security.Find(active2) )) active2 = null + if(!authenticated && href_list["choice"] != "Log In") // logging in is the only action you can do if not logged in + return if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr) || IsAdminGhost(usr)) usr.set_machine(src) switch(href_list["choice"]) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 29883a073a..ee0a8224a8 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -393,6 +393,27 @@ spark_system.start() //creates some sparks because they look cool qdel(cover) //deletes the cover - no need on keeping it there! +//turret healing +/obj/machinery/porta_turret/examine(mob/user) + . = ..() + if(obj_integrity < max_integrity) + . += "[src] is damaged, use a lit welder to fix it." + +/obj/machinery/porta_turret/welder_act(mob/living/user, obj/item/I) + . = TRUE + if(cover && obj_integrity < max_integrity) + if(!I.tool_start_check(user, amount=0)) + return + user.visible_message("[user] is welding the turret.", \ + "You begin repairing the turret...", \ + "You hear welding.") + if(I.use_tool(src, user, 40, volume=50)) + obj_integrity = max_integrity + user.visible_message("[user.name] has repaired [src].", \ + "You finish repairing the turret.") + else + to_chat(user, "The turret doesn't need repairing.") + /obj/machinery/porta_turret/process() //the main machinery process if(cover == null && anchored) //if it has no cover and is anchored diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index f2bced4aa8..30bf06b475 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -97,7 +97,7 @@ icon_state = "mecha_ion" energy_drain = 120 projectile = /obj/item/projectile/ion - fire_sound = 'sound/weapons/laser.ogg' + fire_sound = 'sound/weapons/IonRifle.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla equip_cooldown = 35 @@ -195,7 +195,7 @@ //Base ballistic weapon type /obj/item/mecha_parts/mecha_equipment/weapon/ballistic name = "general ballistic weapon" - fire_sound = 'sound/weapons/gunshot.ogg' + fire_sound = 'sound/weapons/lmgshot.ogg' var/projectiles var/projectiles_cache //ammo to be loaded in, if possible. var/projectiles_cache_max @@ -285,6 +285,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot name = "\improper LBX AC 10 \"Scattershot\"" desc = "A weapon for combat exosuits. Shoots a spread of pellets." + fire_sound = 'sound/weapons/gunshotshotgunshot.ogg' icon_state = "mecha_scatter" equip_cooldown = 20 projectile = /obj/item/projectile/bullet/scattershot @@ -299,6 +300,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/seedscatter name = "\improper Melon Seed \"Scattershot\"" desc = "A weapon for combat exosuits. Shoots a spread of pellets, shaped as seed." + fire_sound = 'sound/weapons/gunshotshotgunshot.ogg' icon_state = "mecha_scatter" equip_cooldown = 20 projectile = /obj/item/projectile/bullet/seed @@ -331,7 +333,7 @@ desc = "A weapon for combat exosuits. Launches light explosive missiles." icon_state = "mecha_missilerack" projectile = /obj/item/projectile/bullet/a84mm_he - fire_sound = 'sound/weapons/grenadelaunch.ogg' + fire_sound = 'sound/weapons/rocketlaunch.ogg' projectiles = 8 projectiles_cache = 0 projectiles_cache_max = 0 @@ -345,7 +347,7 @@ desc = "A weapon for combat exosuits. Launches low-explosive breaching missiles designed to explode only when striking a sturdy target." icon_state = "mecha_missilerack_six" projectile = /obj/item/projectile/bullet/a84mm_br - fire_sound = 'sound/weapons/grenadelaunch.ogg' + fire_sound = 'sound/weapons/rocketlaunch.ogg' projectiles = 6 projectiles_cache = 0 projectiles_cache_max = 0 diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 6d051b6c8c..bd32ddadf3 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -81,6 +81,7 @@ /obj/effect/decal/cleanable/trail_holder //not a child of blood on purpose name = "blood" + icon = 'icons/effects/blood.dmi' icon_state = "ltrails_1" desc = "Your instincts say you shouldn't be following these." random_icon_states = null diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index b310119827..6be0a50a5e 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -49,6 +49,42 @@ /obj/effect/overlay/vis mouse_opacity = MOUSE_OPACITY_TRANSPARENT anchored = TRUE - vis_flags = NONE - var/unused = 0 //When detected to be unused it gets set to world.time, after a while it gets removed - var/cache_expiration = 2 MINUTES // overlays which go unused for 2 minutes get cleaned up + vis_flags = VIS_INHERIT_DIR + ///When detected to be unused it gets set to world.time, after a while it gets removed + var/unused = 0 + ///overlays which go unused for this amount of time get cleaned up + var/cache_expiration = 2 MINUTES + +// /obj/effect/overlay/atmos_excited +// name = "excited group" +// icon = null +// icon_state = null +// anchored = TRUE // should only appear in vis_contents, but to be safe +// appearance_flags = RESET_TRANSFORM | TILE_BOUND +// invisibility = INVISIBILITY_ABSTRACT +// mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +// layer = ATMOS_GROUP_LAYER +// plane = ATMOS_GROUP_PLANE + +// /obj/effect/overlay/light_visible +// name = "" +// icon = 'icons/effects/light_overlays/light_32.dmi' +// icon_state = "light" +// layer = O_LIGHTING_VISUAL_LAYER +// plane = O_LIGHTING_VISUAL_PLANE +// appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM +// mouse_opacity = MOUSE_OPACITY_TRANSPARENT +// alpha = 0 +// vis_flags = NONE + +// /obj/effect/overlay/light_cone +// name = "" +// icon = 'icons/effects/light_overlays/light_cone.dmi' +// icon_state = "light" +// layer = O_LIGHTING_VISUAL_LAYER +// plane = O_LIGHTING_VISUAL_PLANE +// appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM +// mouse_opacity = MOUSE_OPACITY_TRANSPARENT +// vis_flags = NONE +// alpha = 110 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 251e2fe327..608768a0c7 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -468,6 +468,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb melee_attack_chain(usr, over) usr.FlushCurrentAction() return TRUE //returning TRUE as a "is this overridden?" flag + if(isrevenant(usr)) + if(RevenantThrow(over, usr, src)) + return + if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows @@ -939,6 +943,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/proc/get_part_rating() return 0 +//Can this item be given to people? +/obj/item/proc/can_give() + return TRUE + /obj/item/doMove(atom/destination) if (ismob(loc)) var/mob/M = loc diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index 6e305c30ee..e0ac4b43c6 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -166,7 +166,7 @@ last = C break -obj/item/rcl/proc/getMobhook(mob/to_hook) +/obj/item/rcl/proc/getMobhook(mob/to_hook) if(listeningTo == to_hook) return if(listeningTo) diff --git a/code/game/objects/items/armor_kits.dm b/code/game/objects/items/armor_kits.dm index fa88b77600..906d7c5f81 100644 --- a/code/game/objects/items/armor_kits.dm +++ b/code/game/objects/items/armor_kits.dm @@ -10,35 +10,41 @@ /obj/item/armorkit/afterattack(atom/target, mob/user, proximity_flag, click_parameters) // yeah have fun making subtypes and modifying the afterattack if you want to make variants // idiot - // - hatter var/used = FALSE if(isobj(target) && istype(target, /obj/item/clothing/under)) var/obj/item/clothing/under/C = target - if(C.armor.melee < 10) - C.armor.melee = 10 + if(C.damaged_clothes) + to_chat(user,"You should repair the damage done to [C] first.") + return + if(C.attached_accessory) + to_chat(user,"Kind of hard to sew around [C.attached_accessory].") + return + if(C.armor.getRating("melee") < 10) + C.armor = C.armor.setRating("melee" = 10) used = TRUE - if(C.armor.laser < 10) - C.armor.laser = 10 + if(C.armor.getRating("laser") < 10) + C.armor = C.armor.setRating("laser" = 10) used = TRUE - if(C.armor.fire < 40) - C.armor.fire = 40 + if(C.armor.getRating("fire") < 40) + C.armor = C.armor.setRating("fire" = 40) used = TRUE - if(C.armor.acid < 10) - C.armor.acid = 10 + if(C.armor.getRating("acid") < 10) + C.armor = C.armor.setRating("acid" = 10) used = TRUE - if(C.armor.bomb < 5) - C.armor.bomb = 5 + if(C.armor.getRating("bomb") < 5) + C.armor = C.armor.setRating("bomb" = 5) used = TRUE if(used) - user.visible_message("[user] uses [src] on [C], reinforcing it and tossing the empty case away afterwards.", \ - "You reinforce [C] with [src], making it a little more protective! You toss the empty casing away afterwards.") - C.name = "durathread [C.name]" // this disappears if it gets repaired, which is annoying + user.visible_message("[user] reinforces [C] with [src].", \ + "You reinforce [C] with [src], making it as protective as a durathread jumpsuit.") + C.name = "durathread [C.name]" + C.upgrade_prefix = "durathread" // god i hope this works qdel(src) return else - to_chat(user, "You stare at [src] and [C], coming to the conclusion that you probably don't need to reinforce it any further.") + to_chat(user, "You don't need to reinforce [C] any further.") return else return diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index a3366e714e..960e3ce499 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -82,4 +82,8 @@ /obj/item/candle/infinite/hugbox heats_space = FALSE +/obj/item/candle/DoRevenantThrowEffects(atom/target) + if(!infinite) + put_out_candle() + #undef CANDLE_LUMINOSITY diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 5b1b86b9e4..7d2b0ed832 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -779,16 +779,40 @@ /obj/item/card/id/departmental_budget/update_label() return +/obj/item/card/id/departmental_budget/civ + department_ID = ACCOUNT_CIV + department_name = ACCOUNT_CIV_NAME + +/obj/item/card/id/departmental_budget/eng + department_ID = ACCOUNT_ENG + department_name = ACCOUNT_ENG_NAME + +/obj/item/card/id/departmental_budget/sci + department_ID = ACCOUNT_SCI + department_name = ACCOUNT_SCI_NAME + +/obj/item/card/id/departmental_budget/med + department_ID = ACCOUNT_MED + department_name = ACCOUNT_MED_NAME + +/obj/item/card/id/departmental_budget/srv + department_ID = ACCOUNT_SRV + department_name = ACCOUNT_SRV_NAME + /obj/item/card/id/departmental_budget/car department_ID = ACCOUNT_CAR department_name = ACCOUNT_CAR_NAME +/obj/item/card/id/departmental_budget/sec + department_ID = ACCOUNT_SEC + department_name = ACCOUNT_SEC_NAME + //Polychromatic Knight Badge /obj/item/card/id/knight name = "knight badge" icon_state = "knight" - desc = "A badge denoting the owner as a knight! It has a strip for swiping like an ID" + desc = "A badge denoting the owner as a knight! It has a strip for swiping like an ID." var/id_color = "#00FF00" //defaults to green var/mutable_appearance/id_overlay diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index de32375642..4280e7105f 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -136,6 +136,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM STOP_PROCESSING(SSobj, src) . = ..() +/obj/item/clothing/mask/cigarette/DoRevenantThrowEffects(atom/target) + if(lit) + attackby() + else + light() + /obj/item/clothing/mask/cigarette/attackby(obj/item/W, mob/user, params) if(!lit && smoketime > 0) var/lighting_text = W.ignition_effect(src, user) @@ -517,6 +523,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM overlay_state = pick(overlay_list) update_icon() +/obj/item/lighter/DoRevenantThrowEffects(atom/target) + set_lit() + /obj/item/lighter/suicide_act(mob/living/carbon/user) if (lit) user.visible_message("[user] begins holding \the [src]'s flame up to [user.p_their()] face! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index a2459bce9f..e29519406a 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -37,11 +37,14 @@ /obj/item/flashlight/attack_self(mob/user) on = !on update_brightness(user) - playsound(user, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, 1) + playsound(src, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() - return 1 + return TRUE + +/obj/item/flashlight/DoRevenantThrowEffects(atom/target) + attack_self() /obj/item/flashlight/suicide_act(mob/living/carbon/human/user) if (user.eye_blind) diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index bb46577702..e0453cebc0 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -8,10 +8,12 @@ slot_flags = ITEM_SLOT_BELT obj_flags = UNIQUE_RENAME var/gpstag = "COM0" + var/emp_proof = FALSE + var/starton = TRUE /obj/item/gps/Initialize() . = ..() - AddComponent(/datum/component/gps/item, gpstag) + AddComponent(/datum/component/gps/item, gpstag, emp_proof, starton) /obj/item/gps/science icon_state = "gps-s" @@ -26,6 +28,9 @@ gpstag = "MINE0" desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life." +/obj/item/gps/mining/off + starton = FALSE + /obj/item/gps/cyborg icon_state = "gps-b" gpstag = "BORG0" diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 6ac2d310a1..015b8774ad 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -69,7 +69,8 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/talk_into(mob/living/M, message, channel, list/spans,datum/language/language) if (!listening) return ITALICS | REDUCE_RANGE - return ..() + if (language != /datum/language/signlanguage) + return ..() /obj/item/radio/headset/can_receive(freq, level, AIuser) if(ishuman(src.loc)) @@ -283,14 +284,12 @@ GLOBAL_LIST_INIT(channel_tokens, list( SSradio.remove_object(src, GLOB.radiochannels[ch_name]) secure_radio_connections[ch_name] = null - var/turf/T = user.drop_location() - if(T) - if(keyslot) - keyslot.forceMove(T) - keyslot = null - if(keyslot2) - keyslot2.forceMove(T) - keyslot2 = null + if(keyslot) + user.put_in_hands(keyslot) + keyslot = null + if(keyslot2) + user.put_in_hands(keyslot2) + keyslot2 = null recalculateChannels() to_chat(user, "You pop out the encryption keys in the headset.") diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 4623a405de..3435a0d0f0 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -208,6 +208,8 @@ return if(!M.IsVocal()) return + if(language == /datum/language/signlanguage) + return if(use_command) spans |= commandspan diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index d9bfa4b00e..cfe0ba705d 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -306,18 +306,6 @@ GENETICS SCANNER if(T.name == "fluffy tongue") temp_message += " Subject is suffering from a fluffified tongue. Suggested cure: Yamerol or a tongue transplant." - //HECK - else if(istype(O, /obj/item/organ/genital/penis)) - var/obj/item/organ/genital/penis/P = O - if(P.length>20) - temp_message += " Subject has a sizeable gentleman's organ at [P.length] inches." - - else if(istype(O, /obj/item/organ/genital/breasts)) - var/obj/item/organ/genital/breasts/Br = O - if(Br.cached_size>5) - temp_message += " Subject has a sizeable bosom with a [Br.size] cup." - - //GENERAL HANDLER if(!damage_message) diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 0d5c9a22aa..39c8143ee9 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -46,6 +46,9 @@ if(.) new /obj/item/toy/eightball/haunted(loc) +/obj/item/toy/eightball/DoRevenantThrowEffects(atom/target) + MakeHaunted() + /obj/item/toy/eightball/attack_self(mob/user) if(shaking) return diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index b1f51f608d..301b8d4155 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -63,7 +63,7 @@ name = "advanced fire extinguisher" desc = "Used to stop thermonuclear fires from spreading inside your engine." icon_state = "foam_extinguisher0" - //item_state = "foam_extinguisher" needs sprite + item_state = "foam_extinguisher" dog_fashion = null chem = /datum/reagent/firefighting_foam tanktype = /obj/structure/reagent_dispensers/foamtank @@ -235,16 +235,23 @@ return EmptyExtinguisher(user) -/obj/item/extinguisher/proc/EmptyExtinguisher(var/mob/user) - if(loc == user && reagents.total_volume) +/obj/item/extinguisher/DoRevenantThrowEffects(atom/target) + EmptyExtinguisher() + +/obj/item/extinguisher/proc/EmptyExtinguisher(mob/user) + if(!reagents.total_volume) + return + if(loc == user || !user) reagents.clear_reagents() var/turf/T = get_turf(loc) if(isopenturf(T)) var/turf/open/theturf = T theturf.MakeSlippery(TURF_WET_WATER, min_wet_time = 10 SECONDS, wet_time_to_add = 5 SECONDS) - - user.visible_message("[user] empties out \the [src] onto the floor using the release valve.", "You quietly empty out \the [src] by using its release valve.") + if(user) + user.visible_message("[user] empties out \the [src] onto the floor using the release valve.", "You quietly empty out \the [src] by using its release valve.") + else + user.visible_message("The release valve of \the [src] suddenly opens and sprays it's contents on the floor!") //firebot assembly /obj/item/extinguisher/attackby(obj/O, mob/user, params) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 296b46bf85..59b6d56b51 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -245,6 +245,9 @@ slowdown = 7 breakouttime = 300 //Deciseconds = 30s = 0.5 minute +/obj/item/restraints/legcuffs/proc/on_removed() + return + /obj/item/restraints/legcuffs/beartrap name = "bear trap" throw_speed = 1 @@ -376,4 +379,8 @@ icon_state = "ebola" hitsound = 'sound/weapons/taserhit.ogg' w_class = WEIGHT_CLASS_SMALL - breakouttime = 60 + breakouttime = 25 + +/obj/item/restraints/legcuffs/bola/energy/on_removed() + do_sparks(1, TRUE, src) + qdel(src) diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm index 83e9b21e0b..0a86abdec9 100644 --- a/code/game/objects/items/implants/implant_misc.dm +++ b/code/game/objects/items/implants/implant_misc.dm @@ -44,7 +44,7 @@ icon_state = "warp" uses = -1 var/total_delay = 10 SECONDS - var/cooldown = 10 SECONDS + var/cooldown = 30 SECONDS var/last_use = 0 var/list/positions = list() var/next_prune = 0 diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index abd9cec950..e47b2bb0d8 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -19,6 +19,8 @@ var/minimum_range = 0 //at what range the pinpointer declares you to be at your destination var/ignore_suit_sensor_level = FALSE // Do we find people even if their suit sensors are turned off var/alert = FALSE // TRUE to display things more seriously + /// resets target on toggle + var/resets_target = TRUE /obj/item/pinpointer/Initialize() . = ..() @@ -27,17 +29,22 @@ /obj/item/pinpointer/Destroy() STOP_PROCESSING(SSfastprocess, src) GLOB.pinpointer_list -= src - target = null + unset_target() return ..() +/obj/item/pinpointer/DoRevenantThrowEffects(atom/target) + attack_self() + /obj/item/pinpointer/attack_self(mob/living/user) active = !active - user.visible_message("[user] [active ? "" : "de"]activates [user.p_their()] pinpointer.", "You [active ? "" : "de"]activate your pinpointer.") + if(user) + user.visible_message("[user] [active ? "" : "de"]activates [user.p_their()] pinpointer.", "You [active ? "" : "de"]activate your pinpointer.") playsound(src, 'sound/items/screwdriver2.ogg', 50, 1) if(active) START_PROCESSING(SSfastprocess, src) else - target = null + if(resets_target) + unset_target() STOP_PROCESSING(SSfastprocess, src) update_icon() @@ -50,6 +57,18 @@ /obj/item/pinpointer/proc/scan_for_target() return +/obj/item/pinpointer/proc/set_target(atom/movable/newtarget) + if(target) + unset_target() + target = newtarget + RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/unset_target) + +/obj/item/pinpointer/proc/unset_target() + if(!target) + return + UnregisterSignal(target, COMSIG_PARENT_QDELETING) + target = null + /obj/item/pinpointer/update_overlays() . = ..() if(!active) @@ -101,7 +120,8 @@ active = FALSE user.visible_message("[user] deactivates [user.p_their()] pinpointer.", "You deactivate your pinpointer.") playsound(src, 'sound/items/screwdriver2.ogg', 50, 1) - target = null //Restarting the pinpointer forces a target reset + if(resets_target) + unset_target() //Restarting the pinpointer forces a target reset STOP_PROCESSING(SSfastprocess, src) update_icon() return @@ -137,7 +157,7 @@ if(!A || QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated()) return - target = names[A] + set_target(names[A]) active = TRUE user.visible_message("[user] activates [user.p_their()] pinpointer.", "You activate your pinpointer.") playsound(src, 'sound/items/screwdriver2.ogg', 50, 1) @@ -149,7 +169,7 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target if(!trackable(H)) - target = null + unset_target() if(!target) //target can be set to null from above code, or elsewhere active = FALSE @@ -163,7 +183,7 @@ . = ..() /obj/item/pinpointer/pair/scan_for_target() - target = other_pair + set_target(other_pair) /obj/item/pinpointer/pair/examine(mob/user) . = ..() @@ -195,7 +215,7 @@ shuttleport = SSshuttle.getShuttle("huntership") /obj/item/pinpointer/shuttle/scan_for_target() - target = shuttleport + set_target(shuttleport) /obj/item/pinpointer/shuttle/Destroy() shuttleport = null @@ -207,4 +227,8 @@ icon_state = "pinpointer_ian" /obj/item/pinpointer/ian/scan_for_target() - target = locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in GLOB.mob_living_list + set_target(locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in GLOB.mob_living_list) + +/obj/item/pinpointer/custom + resets_target = FALSE + diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index c5193d8b19..c213fa34df 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -45,6 +45,10 @@ return set_snowflake_from_config(id) +/obj/item/toy/plush/DoRevenantThrowEffects(atom/target) + var/datum/component/squeak/squeaker = GetComponent(/datum/component/squeak) + squeaker.do_play_squeak(TRUE) + /obj/item/toy/plush/Initialize(mapload, set_snowflake_id) . = ..() AddComponent(/datum/component/squeak, squeak_override) diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 23be8cbb9a..1db5cdd526 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -43,6 +43,13 @@ /obj/item/pneumatic_cannon/proc/init_charge() //wrapper so it can be vv'd easier START_PROCESSING(SSobj, src) +/obj/item/pneumatic_cannon/DoRevenantThrowEffects(atom/target) + var/picked_target + var/list/possible_targets = range(3,src) + picked_target = pick(possible_targets) + if(target) + Fire(null, picked_target) + /obj/item/pneumatic_cannon/process() if(++charge_tick >= charge_ticks && charge_type) fill_with_type(charge_type, charge_amount) @@ -134,21 +141,29 @@ Fire(user, target) /obj/item/pneumatic_cannon/proc/Fire(mob/living/user, var/atom/target) - if(!istype(user) && !target) + if(!target) return + if(user) + if(!isliving(user)) + return var/discharge = 0 - if(!can_trigger_gun(user)) + if(user && !can_trigger_gun(user)) return if(!loadedItems || !loadedWeightClass) - to_chat(user, "\The [src] has nothing loaded.") + if(user) + to_chat(user, "\The [src] has nothing loaded.") return if(!tank && checktank) - to_chat(user, "\The [src] can't fire without a source of gas.") + if(user) + to_chat(user, "\The [src] can't fire without a source of gas.") return if(tank && !tank.air_contents.remove(gasPerThrow * pressureSetting)) - to_chat(user, "\The [src] lets out a weak hiss and doesn't react!") + if(user) + to_chat(user, "\The [src] lets out a weak hiss and doesn't react!") + else + visible_message(src, "\The [src] lets out a weak hiss and doesn't react!") return - if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(75) && clumsyCheck && iscarbon(user)) + if(user && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(75) && clumsyCheck && iscarbon(user)) var/mob/living/carbon/C = user C.visible_message("[C] loses [C.p_their()] grip on [src], causing it to go off!", "[src] slips out of your hands and goes off!") C.dropItemToGround(src, TRUE) @@ -157,15 +172,18 @@ else var/list/possible_targets = range(3,src) target = pick(possible_targets) - discharge = 1 - if(!discharge) + discharge = TRUE + if(!discharge && user) user.visible_message("[user] fires \the [src]!", \ "You fire \the [src]!") - log_combat(user, target, "fired at", src) var/turf/T = get_target(target, get_turf(src)) - playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) - fire_items(T, user) - if(pressureSetting >= 3 && iscarbon(user)) + playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE) + if(user) + log_combat(user, target, "fired at", src) + fire_items(T, user) + else + fire_items(T) + if(user && pressureSetting >= 3 && iscarbon(user)) var/mob/living/carbon/C = user C.visible_message("[C] is thrown down by the force of the cannon!", "[src] slams into your shoulder, knocking you down!") C.DefaultCombatKnockdown(60) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index d1d57fe375..5c3e4fd612 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -258,7 +258,7 @@ shield_flags = SHIELD_FLAGS_DEFAULT max_integrity = 300 -obj/item/shield/riot/bullet_proof +/obj/item/shield/riot/bullet_proof name = "bullet resistant shield" desc = "A far more frail shield made of resistant plastics and kevlar meant to block ballistics." armor = list("melee" = 30, "bullet" = 80, "laser" = 0, "energy" = 0, "bomb" = -40, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 1277bb3d4e..517350c916 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -20,7 +20,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ custom_materials = list(/datum/material/iron=1000) max_amount = 50 attack_verb = list("hit", "bludgeoned", "whacked") - hitsound = 'sound/weapons/grenadelaunch.ogg' + hitsound = 'sound/items/trayhit1.ogg' embedding = list() novariants = TRUE diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 62949b45a8..798f1d3a6a 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -466,6 +466,7 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \ new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ new/datum/stack_recipe("folder", /obj/item/folder), \ + new/datum/stack_recipe("cardboard card", /obj/item/cardboard_card, 1), \ // holy fuck why are there so many boxes new/datum/stack_recipe_list("fancy boxes", list ( \ new /datum/stack_recipe("donut box", /obj/item/storage/fancy/donut_box), \ diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index f15588a7f1..f10167890a 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -639,7 +639,7 @@ new /obj/item/bikehorn(src) new /obj/item/implanter/sad_trombone(src) -obj/item/storage/backpack/duffelbag/syndie/shredderbundle +/obj/item/storage/backpack/duffelbag/syndie/shredderbundle desc = "A large duffel bag containing two CX Shredders, some magazines, an elite hardsuit, and a chest rig." /obj/item/storage/backpack/duffelbag/syndie/shredderbundle/PopulateContents() diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 80818b5fff..9c3d776b56 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -857,7 +857,7 @@ icon_state = "2sheath" item_state = "katana" //this'll do. w_class = WEIGHT_CLASS_BULKY - fitting_swords = list(/obj/item/melee/smith/wakizashi, /obj/item/melee/smith/twohand/katana, /obj/item/melee/bokken) + fitting_swords = list(/obj/item/melee/smith/wakizashi, /obj/item/melee/smith/twohand/katana, /obj/item/melee/bokken, /obj/item/katana) starting_sword = null /obj/item/storage/belt/sabre/twin/ComponentInitialize() diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 975621ead1..3f9c3a019e 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -275,7 +275,7 @@ for(var/i in 1 to 7) new /obj/item/grenade/flashbang(src) -obj/item/storage/box/stingbangs +/obj/item/storage/box/stingbangs name = "box of stingbangs (WARNING)" desc = "WARNING: These devices are extremely dangerous and can cause severe injuries or death in repeated use." icon_state = "secbox" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 97012528a0..ae2f432d2e 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -526,3 +526,8 @@ new /obj/item/book/granter/martial/carp(src) new /obj/item/clothing/suit/hooded/carp_costume(src) new /obj/item/staff/bostaff(src) + +/obj/item/storage/box/syndie_kit/sleepytime/cardpack/PopulateContents() + . = ..() + new /obj/item/cardpack/syndicate(src) + new /obj/item/cardpack/syndicate(src) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 26051e65fd..1de77bd8b9 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -47,6 +47,9 @@ cell = new preload_cell_type(src) update_icon() +/obj/item/melee/baton/DoRevenantThrowEffects(atom/target) + switch_status() + /obj/item/melee/baton/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) ..() //Only mob/living types have stun handling @@ -236,6 +239,12 @@ if(!iscyborg(loc)) deductcharge(severity*10, TRUE, FALSE) +/obj/item/melee/baton/can_give() + if(turned_on) + return FALSE + else + ..() + /obj/item/melee/baton/stunsword name = "stunsword" desc = "Not actually sharp, this sword is functionally identical to its baton counterpart." @@ -269,21 +278,22 @@ icon_state = "refill_donksoft" var/product = /obj/item/melee/baton/stunsword //what it makes var/list/fromitem = list(/obj/item/melee/baton, /obj/item/melee/baton/loaded) //what it needs - afterattack(obj/O, mob/user as mob) - if(istype(O, product)) - to_chat(user,"[O] is already modified!") - else if(O.type in fromitem) //makes sure O is the right thing - var/obj/item/melee/baton/B = O - if(!B.cell) //checks for a powercell in the baton. If there isn't one, continue. If there is, warn the user to take it out - new product(usr.loc) //spawns the product - user.visible_message("[user] modifies [O]!","You modify the [O]!") - qdel(O) //Gets rid of the baton - qdel(src) //gets rid of the kit - else - to_chat(user,"Remove the powercell first!") //We make this check because the stunsword starts without a battery. +/obj/item/ssword_kit/afterattack(obj/O, mob/user as mob) + if(istype(O, product)) + to_chat(user,"[O] is already modified!") + return + if(O.type in fromitem) //makes sure O is the right thing + var/obj/item/melee/baton/B = O + if(!B.cell) //checks for a powercell in the baton. If there isn't one, continue. If there is, warn the user to take it out + new product(usr.loc) //spawns the product + user.visible_message("[user] modifies [O]!","You modify the [O]!") + qdel(O) //Gets rid of the baton + qdel(src) //gets rid of the kit else - to_chat(user, " You can't modify [O] with this kit!") + to_chat(user,"Remove the powercell first!") //We make this check because the stunsword starts without a battery. + else + to_chat(user, " You can't modify [O] with this kit!") //Makeshift stun baton. Replacement for stun gloves. /obj/item/melee/baton/cattleprod diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 08b91332ef..d57f0cc51f 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -73,6 +73,15 @@ /obj/item/tank/proc/populate_gas() return +/obj/item/tank/DoRevenantThrowEffects(atom/target) + if(air_contents) + var/turf/open/location = get_turf(src) + if(istype(location)) + location.assume_air(air_contents) + air_contents.clear() + SSair.add_to_active(location) + visible_message("[src] can't be turned on while unsecured!") + if(user) + to_chat(user, "[src] can't be turned on while unsecured!") return welding = !welding if(welding) if(get_fuel() >= 1) - to_chat(user, "You switch [src] on.") + if(user) + to_chat(user, "You switch [src] on.") playsound(loc, acti_sound, 50, 1) force = 15 damtype = "fire" diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 07900d6bbf..554ea81974 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -302,7 +302,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 damtype = STAMINA attack_verb = list("whacked", "smacked", "struck") total_mass = TOTAL_MASS_MEDIEVAL_WEAPON - hitsound = 'sound/weapons/grenadelaunch.ogg' // no good wood thunk sounds + hitsound = 'sound/weapons/woodbonk.ogg' var/harm = FALSE // TRUE = brute, FALSE = stam var/reinforced = FALSE var/burnt = FALSE diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index a07e9a26d5..ff8287d77b 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -62,7 +62,7 @@ return 1 var/mob/living/M = caller - if(!M.ventcrawler && M.mob_size != MOB_SIZE_TINY) + if(!(SEND_SIGNAL(M, COMSIG_CHECK_VENTCRAWL)) && M.mob_size != MOB_SIZE_TINY) return 0 var/atom/movable/M = caller if(M && M.pulling) @@ -91,7 +91,7 @@ return 1 if(M.buckled && istype(M.buckled, /mob/living/simple_animal/bot/mulebot)) // mulebot passenger gets a free pass. return 1 - if(!M.lying && !M.ventcrawler && M.mob_size != MOB_SIZE_TINY) //If your not laying down, or a ventcrawler or a small creature, no pass. + if(!M.lying && !(SEND_SIGNAL(M, COMSIG_CHECK_VENTCRAWL)) && M.mob_size != MOB_SIZE_TINY) //If your not laying down, or a ventcrawler or a small creature, no pass. return 0 return ..() diff --git a/code/game/objects/structures/signs/signs_maps.dm b/code/game/objects/structures/signs/signs_maps.dm index ee29ef7443..bcd7c02c66 100644 --- a/code/game/objects/structures/signs/signs_maps.dm +++ b/code/game/objects/structures/signs/signs_maps.dm @@ -56,17 +56,17 @@ desc = "A direction sign, pointing out which way the Cafe is." icon_state = "direction_cafe" -obj/structure/sign/directions/rooms +/obj/structure/sign/directions/rooms name = "room" desc = "Room numbers, helps others find you!" icon_state = "roomnum" -obj/structure/sign/directions/dorms +/obj/structure/sign/directions/dorms name = "dorm" desc = "Dorm numbers, help others find you, or you find others." icon_state = "dormnum" -obj/structure/sign/directions/cells +/obj/structure/sign/directions/cells name = "room" desc = "So the less fortunate amongst us know where they'll be staying." icon_state = "cellnum" diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 7e00b1cf63..876c170923 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -1,12 +1,5 @@ /turf/open plane = FLOOR_PLANE - /// Does dirt buildup happen on us? - var/dirt_buildup_allowed = FALSE - /// Dirt level. - var/dirtyness = 0 - /// Dirt level to spawn dirt. Null to use config. - var/dirt_spawn_threshold - /// Slowdown applied to mobs on us. var/slowdown = 0 //negative for faster, positive for slower var/postdig_icon_change = FALSE @@ -18,6 +11,15 @@ var/clawfootstep = null var/heavyfootstep = null + /// Dirtyness system, cit specific. + + /// Does dirt buildup happen on us? + var/dirt_buildup_allowed = FALSE + /// Dirt level. + var/dirtyness = 0 + /// Dirt level to spawn dirt. Null to use config. + var/dirt_spawn_threshold + /turf/open/ComponentInitialize() . = ..() if(wet) diff --git a/code/game/turfs/openspace/openspace.dm b/code/game/turfs/openspace/openspace.dm index 0607f19dd3..69bdcf06cf 100644 --- a/code/game/turfs/openspace/openspace.dm +++ b/code/game/turfs/openspace/openspace.dm @@ -10,6 +10,8 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr plane = OPENSPACE_BACKDROP_PLANE mouse_opacity = MOUSE_OPACITY_TRANSPARENT layer = SPLASHSCREEN_LAYER + //I don't know why the others are aligned but I shall do the same. + vis_flags = VIS_INHERIT_ID /turf/open/transparent/openspace name = "open space" @@ -17,6 +19,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr icon_state = "transparent" baseturfs = /turf/open/transparent/openspace CanAtmosPassVertical = ATMOS_PASS_YES + intact = FALSE //this means wires go on top //mouse_opacity = MOUSE_OPACITY_TRANSPARENT var/can_cover_up = TRUE var/can_build_on = TRUE @@ -32,10 +35,14 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open/transparent/openspace/show_bottom_level() return FALSE -/turf/open/transparent/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker +/turf/open/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker . = ..() - vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it. + return INITIALIZE_HINT_LATELOAD + +/turf/open/openspace/LateInitialize() + . = ..() + // AddElement(/datum/element/turf_z_transparency, FALSE) /turf/open/transparent/openspace/can_have_cabling() if(locate(/obj/structure/lattice/catwalk, src)) @@ -95,6 +102,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr return if(L) if(R.use(1)) + qdel(L) to_chat(user, "You construct a catwalk.") playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) new/obj/structure/lattice/catwalk(src) @@ -148,9 +156,22 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open/transparent/openspace/icemoon name = "ice chasm" baseturfs = /turf/open/transparent/openspace/icemoon - can_cover_up = TRUE - can_build_on = TRUE initial_gas_mix = ICEMOON_DEFAULT_ATMOS + planetary_atmos = TRUE + var/replacement_turf = /turf/open/floor/plating/asteroid/snow/icemoon + +/turf/open/transparent/openspace/icemoon/Initialize() + . = ..() + var/turf/T = below() + // if(T.flags_1 & NO_RUINS_1) + // ChangeTurf(replacement_turf, null, CHANGETURF_IGNORE_AIR) + // return + // if(!ismineralturf(T)) + // return + var/turf/closed/mineral/M = T + M.mineralAmt = 0 + M.gets_drilled() + baseturfs = /turf/open/transparent/openspace/icemoon //This is to ensure that IF random turf generation produces a openturf, there won't be other turfs assigned other than openspace. /turf/open/transparent/openspace/icemoon/can_zFall(atom/movable/A, levels = 1, turf/target) return TRUE diff --git a/code/game/turfs/openspace/transparent.dm b/code/game/turfs/openspace/transparent.dm index 8efc60a15b..fa5bc17638 100644 --- a/code/game/turfs/openspace/transparent.dm +++ b/code/game/turfs/openspace/transparent.dm @@ -66,7 +66,12 @@ /turf/open/transparent/glass/Initialize() icon_state = "" //Prevent the normal icon from appearing behind the smooth overlays - return ..() + ..() + return INITIALIZE_HINT_LATELOAD + +/turf/open/floor/glass/LateInitialize() + . = ..() + // AddElement(/datum/element/turf_z_transparency, TRUE) /turf/open/transparent/glass/wrench_act(mob/living/user, obj/item/I) to_chat(user, "You begin removing glass...") diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 52b3436154..0905fb2e9c 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -20,6 +20,7 @@ dynamic_lighting = DYNAMIC_LIGHTING_DISABLED bullet_bounce_sound = null + vis_flags = VIS_INHERIT_ID //when this be added to vis_contents of something it be associated with something on clicking, important for visualisation of turf in openspace and interraction with openspace that show you turf. /turf/open/space/basic/New() //Do not convert to Initialize //This is used to optimize the map loader diff --git a/code/game/world.dm b/code/game/world.dm index 97ed64a405..4369ca6668 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -197,6 +197,14 @@ GLOBAL_LIST(topic_status_cache) /world/Topic(T, addr, master, key) TGS_TOPIC //redirect to server tools if necessary + if(!SSfail2topic) + return "Server not initialized." + if(SSfail2topic.IsRateLimited(addr)) + return "Rate limited." + + if(length(T) > CONFIG_GET(number/topic_max_size)) + return "Payload too large!" + var/static/list/topic_handlers = TopicHandlers() var/list/input = params2list(T) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 4c4f50c4cd..c096b26d14 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -174,7 +174,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //is_bwoink is TRUE if this ticket was started by an admin PM /datum/admin_help/New(msg, client/C, is_bwoink) //clean the input msg - msg = sanitize(copytext_char(msg,1,MAX_MESSAGE_LEN)) + msg = copytext_char(msg,1,MAX_MESSAGE_LEN) if(!msg || !C || !C.mob) qdel(src) return @@ -263,7 +263,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //message from the initiator without a target, all admins will see this //won't bug irc /datum/admin_help/proc/MessageNoRecipient(msg) - msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) + msg = copytext_char(msg, 1, MAX_MESSAGE_LEN) var/ref_src = "[REF(src)]" //Message to be sent to all admins var/admin_msg = "Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]: [keywords_lookup(msg)]" @@ -523,7 +523,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(handle_spam_prevention(msg,MUTE_ADMINHELP)) return - msg = trim(msg) + msg = sanitize(trim(msg)) if(!msg) return diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index e19f3ea329..3a708ef182 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -113,7 +113,6 @@ to_chat(src, "Error: Use the admin IRC/Discord channel, nerd.", confidential = TRUE) return - else //get message text, limit it's length.and clean/escape html if(!msg) @@ -128,11 +127,16 @@ else if(holder) to_chat(src, "Error: Admin-PM: Client not found.", confidential = TRUE) - to_chat(src, "Message not sent:
[msg]", confidential = TRUE) + to_chat(src, "Message not sent:
[sanitize(msg)]", confidential = TRUE) if(recipient_ticket) recipient_ticket.AddInteraction("No client found, message not sent:
[msg]") return else + //clean the message if it's not sent by a high-rank admin + if(!check_rights(R_SERVER|R_DEBUG,0)||external)//no sending html to the poor bots + msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) + if(!msg) + return current_ticket.MessageNoRecipient(msg) return @@ -141,7 +145,7 @@ to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).", confidential = TRUE) return - if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) + if(src.handle_spam_prevention(msg,MUTE_ADMINHELP)) return //clean the message if it's not sent by a high-rank admin diff --git a/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm b/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm index 8ac083f68b..c35016cf2e 100644 --- a/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm +++ b/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm @@ -9,4 +9,4 @@ /obj/item/organ/heart/gland/ventcrawling/activate() to_chat(owner, "You feel very stretchy.") - owner.ventcrawler = VENTCRAWLER_ALWAYS + owner.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm index 02be432045..18f6817ec9 100644 --- a/code/modules/antagonists/blob/blob/overmind.dm +++ b/code/modules/antagonists/blob/blob/overmind.dm @@ -277,3 +277,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) var/datum/antagonist/blob/B = mind.has_antag_datum(/datum/antagonist/blob) if(!B) mind.add_antag_datum(/datum/antagonist/blob) + +//the same but it's forced to be allowed by default as cameras usually don't allow emoting +/mob/camera/blob/emote(act, m_type=1, message = null, intentional = FALSE, forced = TRUE) + . = ..() diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index 0a2e079921..30e6a80e85 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -149,8 +149,6 @@ if(prob(50)) if(LAZYLEN(active_ais()) && prob(100/GLOB.joined_player_list.len)) add_objective(new/datum/objective/destroy, TRUE) - else if(prob(30)) - add_objective(new/datum/objective/maroon, TRUE) else add_objective(new/datum/objective/assassinate, TRUE) else diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 7a34af4d13..ba4578add9 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -441,19 +441,20 @@ else kill_objective.find_target() objectives += kill_objective - else + + /*else var/datum/objective/maroon/maroon_objective = new maroon_objective.owner = owner if(team_mode) maroon_objective.find_target_by_role(role = ROLE_CHANGELING, role_type = 1, invert = 1) else maroon_objective.find_target() - objectives += maroon_objective + objectives += maroon_objective*/ if (!(locate(/datum/objective/escape) in objectives) && escape_objective_possible) var/datum/objective/escape/escape_with_identity/identity_theft = new identity_theft.owner = owner - identity_theft.target = maroon_objective.target + identity_theft.target = kill_objective.target identity_theft.update_explanation_text() objectives += identity_theft escape_objective_possible = FALSE diff --git a/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm b/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm index 59a86ffa34..58ee73ef5b 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm @@ -165,14 +165,16 @@ /datum/clockwork_rite/treat_wounds/cast(var/mob/living/invoker, var/turf/T, var/mob/living/carbon/human/target) if(!target) return FALSE - if(!target.all_wounds.len) + if(!target.all_wounds || !target.all_wounds.len) to_chat(invoker, "This one does not require mending.") return FALSE .= ..() if(!.) return FALSE target.adjustToxLoss(10 * target.all_wounds.len) - QDEL_LIST(target.all_wounds) + for(var/i in target.all_wounds) + var/datum/wound/mended = i + mended.remove_wound() to_chat(target, "You feel your wounds heal, but are overcome with deep nausea.") new /obj/effect/temp_visual/ratvar/sigil/vitality(T) diff --git a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm index a681e9b38b..fb7b4f8a94 100644 --- a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm +++ b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm @@ -22,7 +22,7 @@ . = ..() desc = initial(desc) -obj/item/shield/riot/ratvarian/proc/calc_bash_mult() +/obj/item/shield/riot/ratvarian/proc/calc_bash_mult() var/bash_mult = 0 if(!dam_absorbed) return 1 diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index 571a817024..ff6dc12ce1 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -203,10 +203,10 @@ to_chat(user, "You need to hold the slab in your active hand to recite scripture!") return FALSE var/initial_tier = initial(scripture.tier) - if(initial_tier == SCRIPTURE_PERIPHERAL) + if(initial_tier == SCRIPTURE_PERIPHERAL && !issilicon(user)) //Silicons use peripheral scripture & cannot open the slab. to_chat(user, "Nice try using href exploits") return - if(!GLOB.ratvar_awakens && !no_cost && !SSticker.scripture_states[initial_tier]) + if(!GLOB.ratvar_awakens && !no_cost && !SSticker.scripture_states[initial_tier] &&!issilicon(user)) //silicons can't choose their spells, so lets allow them to always cast their assigned ones. to_chat(user, "That scripture is not unlocked, and cannot be recited!") return FALSE var/datum/clockwork_scripture/scripture_to_recite = new scripture diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm index cbf3bdaa38..77dc174238 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm @@ -8,7 +8,7 @@ descname = "Powers Nearby Structures" name = "Sigil of Transmission" desc = "Places a sigil that can drain and will store energy to power clockwork structures." - invocations = list("Divinity...", "...power our creations!") + invocations = list("Divinity...", "...power our creations.") channel_time = 70 power_cost = 200 whispered = TRUE @@ -28,7 +28,7 @@ descname = "Powered Structure, Delay Emergency Shuttles" name = "Prolonging Prism" desc = "Creates a mechanized prism which will delay the arrival of an emergency shuttle by 2 minutes at a massive power cost." - invocations = list("May this prism...", "...grant us time to enact his will!") + invocations = list("May this prism...", "...grant us time to enact his will.") channel_time = 80 power_cost = 300 object_path = /obj/structure/destructible/clockwork/powered/prolonging_prism @@ -60,7 +60,7 @@ descname = "Powered Structure, Area Denial" name = "Mania Motor" desc = "Creates a mania motor which causes minor damage and a variety of negative mental effects in nearby non-Servant humans, potentially up to and including conversion." - invocations = list("May this transmitter...", "...break the will of all who oppose us!") + invocations = list("May this transmitter...", "...break the will of all who oppose us.") channel_time = 80 power_cost = 750 object_path = /obj/structure/destructible/clockwork/powered/mania_motor @@ -83,7 +83,7 @@ descname = "Powered Structure, Teleportation Hub" name = "Clockwork Obelisk" desc = "Creates a clockwork obelisk that can broadcast messages over the Hierophant Network or open a Spatial Gateway to any living Servant or clockwork obelisk." - invocations = list("May this obelisk...", "...take us to all places!") + invocations = list("May this obelisk...", "...take us to all places.") channel_time = 80 power_cost = 300 object_path = /obj/structure/destructible/clockwork/powered/clockwork_obelisk @@ -163,7 +163,7 @@ descname = "Well-Rounded Combat Construct" name = "Clockwork Marauder" desc = "Creates a shell for a clockwork marauder, a balanced frontline construct that can deflect projectiles with its shield." - invocations = list("Arise, avatar of Arbiter!", "Defend the Ark with vengeful zeal.") + invocations = list("Arise, avatar of Arbiter!", "Defend the Ark with vengeful zeal!") channel_time = 80 power_cost = 8000 creator_message = "Your slab disgorges several chunks of replicant alloy that form into a suit of thrumming armor." diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm index 0a59656e31..b79bcfa03d 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm @@ -7,7 +7,7 @@ descname = "Generates Power From Starlight" name = "Stargazer" desc = "Forms a weak structure that generates power every second while within three tiles of starlight." - invocations = list("Capture their inferior light for us!") + invocations = list("Capture their inferior light for us.") channel_time = 50 power_cost = 200 object_path = /obj/structure/destructible/clockwork/stargazer @@ -16,6 +16,7 @@ usage_tip = "For obvious reasons, make sure to place this near a window or somewhere else that can see space!" tier = SCRIPTURE_DRIVER one_per_tile = TRUE + whispered = TRUE primary_component = HIEROPHANT_ANSIBLE sort_priority = 1 quickbind = TRUE @@ -34,7 +35,7 @@ descname = "Power Generation" name = "Integration Cog" desc = "Fabricates an integration cog, which can be used on an open APC to replace its innards and passively siphon its power." - invocations = list("Take that which sustains them!") + invocations = list("Take that which sustains them.") channel_time = 10 power_cost = 10 whispered = TRUE @@ -55,7 +56,7 @@ descname = "Trap, Stunning" name = "Sigil of Transgression" desc = "Wards a tile with a sigil, which will briefly stun the next non-Servant to cross it and apply Belligerent to them." - invocations = list("Divinity, smite...", "...those who trespass here!") + invocations = list("Divinity, smite...", "...those who trespass here.") channel_time = 50 power_cost = 50 whispered = TRUE @@ -75,7 +76,7 @@ descname = "Trap, Conversion" name = "Sigil of Submission" desc = "Places a luminous sigil that will convert any non-Servants that remain on it for 8 seconds." - invocations = list("Divinity, enlighten...", "...those who trespass here!") + invocations = list("Divinity, enlighten...", "...those who trespass here.") channel_time = 60 power_cost = 125 whispered = TRUE @@ -95,7 +96,7 @@ descname = "Short-Range Single-Target Stun" name = "Kindle" desc = "Charges your slab with divine energy, allowing you to overwhelm a target with Ratvar's light." - invocations = list("Divinity, show them your light!") + invocations = list("Divinity, show them your light.") whispered = TRUE channel_time = 25 //2.5 seconds should be a okay compromise between being able to use it when needed, and not being able to just pause in combat for a second and hardstunning your enemy power_cost = 125 @@ -118,7 +119,7 @@ descname = "Handcuffs" name = "Hateful Manacles" desc = "Forms replicant manacles around a target's wrists that function like handcuffs." - invocations = list("Shackle the heretic!", "Break them in body and spirit!") + invocations = list("Shackle the heretic!", "Break them in body and spirit.") channel_time = 15 power_cost = 25 whispered = TRUE @@ -269,7 +270,7 @@ descname = "New Clockwork Slab" name = "Replicant" desc = "Creates a new clockwork slab." - invocations = list("Metal, become greater!") + invocations = list("Metal, become greater.") channel_time = 10 power_cost = 25 whispered = TRUE @@ -290,7 +291,7 @@ descname = "Limited Xray Vision Glasses" name = "Wraith Spectacles" desc = "Fabricates a pair of glasses which grant true sight but cause gradual vision loss." - invocations = list("Show the truth of this world to me!") + invocations = list("Show the truth of this world to me.") channel_time = 10 power_cost = 50 whispered = TRUE @@ -310,7 +311,7 @@ name = "Spatial Gateway" desc = "Tears open a miniaturized gateway in spacetime to any conscious servant that can transport objects or creatures to its destination. \ Each servant assisting in the invocation adds one additional use and four additional seconds to the gateway's uses and duration." - invocations = list("Spatial Gateway...", "...activate!") + invocations = list("Spatial Gateway...", "...activate.") channel_time = 30 power_cost = 400 whispered = TRUE diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm index b559b34d5e..7ba4ce0936 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm @@ -29,7 +29,7 @@ descname = "Structure, Turret" name = "Ocular Warden" desc = "Forms an automatic short-range turret which will automatically attack nearby unrestrained non-Servants that can see it." - invocations = list("Guardians of Engine...", "...judge those who would harm us!") + invocations = list("Guardians of Engine...", "...judge those who would harm us.") channel_time = 100 power_cost = 250 object_path = /obj/structure/destructible/clockwork/ocular_warden @@ -105,7 +105,7 @@ descname = "Delayed Area Knockdown Glasses" name = "Judicial Visor" desc = "Creates a visor that can smite an area, applying Belligerent and briefly stunning. The smote area will explode after 3 seconds." - invocations = list("Grant me the flames of Engine!") + invocations = list("Grant me the flames of Engine.") channel_time = 10 power_cost = 400 whispered = TRUE @@ -124,7 +124,7 @@ descname = "Shield with empowerable bashes" name = "Nezbere's shield" desc = "Creates a shield which generates charge from blocking damage, using it to empower its bashes tremendously. It is repaired with brass, and while very durable, extremely weak to lasers and, even more so, to energy weaponry." - invocations = list("Shield me...", "... from the coming dark!") + invocations = list("Shield me...", "... from the coming dark.") channel_time = 20 power_cost = 600 //Shouldn't be too spammable but not too hard to get either whispered = TRUE @@ -143,7 +143,7 @@ descname = "Summonable Armor and Weapons" name = "Clockwork Armaments" desc = "Allows the invoker to summon clockwork armor and a Ratvarian spear at will. The spear's attacks will generate Vitality, used for healing." - invocations = list("Grant me armaments...", "...from the forge of Armorer!") + invocations = list("Grant me armaments...", "...from the forge of Armorer.") channel_time = 20 power_cost = 250 whispered = TRUE diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm index 7478d45b08..3b507fb57c 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -149,7 +149,7 @@ transform = matrix() * 2 animate(src, transform = matrix() * 0.5, time = 30, flags = ANIMATION_END_NOW) -obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy() +/obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy() STOP_PROCESSING(SSprocessing, src) if(!purpose_fulfilled) var/area/gate_area = get_area(src) diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index b6ed7dfe65..b935258c27 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -15,13 +15,16 @@ var/ignore_holy_water = FALSE /datum/antagonist/clockcult/silent + name = "Silent Clock Cultist" silent = TRUE show_in_antagpanel = FALSE //internal /datum/antagonist/clockcult/neutered + name = "Neutered Clock Cultist" neutered = TRUE /datum/antagonist/clockcult/neutered/traitor + name = "Traitor Clock Cultist" ignore_eligibility_check = TRUE ignore_holy_water = TRUE show_in_roundend = FALSE @@ -185,7 +188,7 @@ /datum/antagonist/clockcult/admin_add(datum/mind/new_owner,mob/admin) - add_servant_of_ratvar(new_owner.current, TRUE) + add_servant_of_ratvar(new_owner.current, TRUE, override_type = type) message_admins("[key_name_admin(admin)] has made [new_owner.current] into a servant of Ratvar.") log_admin("[key_name(admin)] has made [new_owner.current] into a servant of Ratvar.") diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index a2ec4a47a4..09d8771a62 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -19,9 +19,11 @@ var/ignore_holy_water = FALSE /datum/antagonist/cult/neutered + name = "Neutered Cultist" neutered = TRUE /datum/antagonist/cult/neutered/traitor + name = "Traitor Cultist" ignore_eligibility_checks = TRUE ignore_holy_water = TRUE show_in_roundend = FALSE diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index 293b1de3dc..069080170e 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -11,7 +11,6 @@ gender = NEUTER health = 350 maxHealth = 350 - ventcrawler = VENTCRAWLER_NONE density = TRUE pass_flags = 0 sight = (SEE_TURFS | SEE_OBJS) diff --git a/code/modules/antagonists/disease/disease_disease.dm b/code/modules/antagonists/disease/disease_disease.dm index c37abefab0..5e98962740 100644 --- a/code/modules/antagonists/disease/disease_disease.dm +++ b/code/modules/antagonists/disease/disease_disease.dm @@ -5,6 +5,7 @@ viable_mobtypes = list(/mob/living/carbon/human) mutable = FALSE var/mob/camera/disease/overmind + infectable_biotypes = MOB_ORGANIC|MOB_ROBOTIC /datum/disease/advance/sentient_disease/New() ..() diff --git a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm index ea226a3cb6..1e43754477 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm @@ -10,6 +10,8 @@ var/give_equipment = TRUE var/list/researched_knowledge = list() var/total_sacrifices = 0 + var/list/sac_targetted = list() //Which targets did living hearts give them, but they did not sac? + var/list/actually_sacced = list() //Which targets did they actually sac? var/ascended = FALSE /datum/antagonist/heretic/admin_add(datum/mind/new_owner,mob/admin) @@ -175,6 +177,17 @@ knowledge_message += "[EK.name]" parts += knowledge_message.Join(", ") + parts += "Targets assigned by living hearts, but not sacrificed:" + if(!sac_targetted.len) + parts += "None." + else + parts += sac_targetted.Join(",") + parts += "Sacrifices performed:" + if(!actually_sacced.len) + parts += "None!" + else + parts += actually_sacced.Join(",") + return parts.Join("
") //////////////// // Knowledge // @@ -213,6 +226,23 @@ if(ascended) . += 20 +/datum/antagonist/heretic/antag_panel() + var/list/parts = list() + parts += ..() + parts += "Targets currently assigned by living hearts (Can give a false negative if they stole someone elses living heart):" + if(!sac_targetted.len) + parts += "None." + else + parts += sac_targetted.Join(",") + parts += "Targets actually sacrificed:" + if(!actually_sacced.len) + parts += "None." + else + parts += actually_sacced.Join(",") + + return (parts.Join("
") + "
") + + //////////////// // Objectives // //////////////// diff --git a/code/modules/antagonists/eldritch_cult/eldritch_effects.dm b/code/modules/antagonists/eldritch_cult/eldritch_effects.dm index 99f0ae7596..ad39e549eb 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_effects.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_effects.dm @@ -254,6 +254,7 @@ to_chat(human_user,"Your brain hurts when you look at this!") human_user.adjustOrganLoss(ORGAN_SLOT_BRAIN,20,190) SEND_SIGNAL(human_user, COMSIG_ADD_MOOD_EVENT, "gates_of_mansus", /datum/mood_event/gates_of_mansus) + log_game("[key_name(user)] stared at a pierced reality at [AREACOORD(user)]") /obj/effect/reality_smash name = "/improper reality smash" diff --git a/code/modules/antagonists/eldritch_cult/eldritch_items.dm b/code/modules/antagonists/eldritch_cult/eldritch_items.dm index da2c61ad16..fbf0740e50 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_items.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_items.dm @@ -6,6 +6,17 @@ w_class = WEIGHT_CLASS_SMALL ///Target var/mob/living/carbon/human/target + var/datum/antagonist/heretic/sac_targetter //The heretic who used this to acquire the current target - gets cleared when target gets sacrificed. + +/obj/item/living_heart/Initialize() + . = ..() + GLOB.living_heart_cache.Add(src) //Add is better than +=. + +/obj/item/living_heart/Destroy() + GLOB.living_heart_cache.Remove(src) + if(sac_targetter && target) + sac_targetter.sac_targetted.Remove(target.real_name) + return ..() /obj/item/living_heart/attack_self(mob/user) . = ..() diff --git a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm index e0189944e5..481ac08ea5 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm @@ -1,6 +1,6 @@ /** - * #Eldritch Knwoledge + * #Eldritch Knowledge * * Datum that makes eldritch cultist interesting. * @@ -252,6 +252,10 @@ LH.target = null var/datum/antagonist/heretic/EC = carbon_user.mind.has_antag_datum(/datum/antagonist/heretic) + EC.actually_sacced.Add(H.real_name) + if(LH.sac_targetter) + LH.sac_targetter.sac_targetted.Remove(H.real_name) + LH.sac_targetter = null EC.total_sacrifices++ for(var/X in carbon_user.get_all_gear()) if(!istype(X,/obj/item/forbidden_book)) @@ -265,8 +269,14 @@ var/datum/objective/A = new A.owner = user.mind var/list/targets = list() + var/list/target_blacklist = list() + for(var/obj/item/living_heart/CLH in GLOB.living_heart_cache) + if(!CLH || !CLH.target || !CLH.target.mind) + continue + target_blacklist.Add(CLH.target.mind) + for(var/i in 0 to 3) - var/datum/mind/targeted = A.find_target()//easy way, i dont feel like copy pasting that entire block of code + var/datum/mind/targeted = A.find_target(blacklist = target_blacklist)//easy way, i dont feel like copy pasting that entire block of code if(!targeted) break targets[targeted.current.real_name] = targeted.current @@ -274,9 +284,24 @@ if(!LH.target && targets.len) LH.target = pick(targets) //Tsk tsk, you can and will get another target if you want it or not. + + if(LH.target) + target_blacklist = list() + for(var/obj/item/living_heart/CLH in (GLOB.living_heart_cache - LH)) //Recreate blacklist, excluding ourselves. + if(!CLH || !CLH.target || !CLH.target.mind) + continue + target_blacklist.Add(CLH.target.mind) + if(LH.target.mind in target_blacklist) //Someone was faster, or you tried to cheese the system. + to_chat(user, "It seems you were too slow, and your target of choice has already been selected by another living heart!") + LH.target = null + qdel(A) if(LH.target) to_chat(user,"Your new target has been selected, go and sacrifice [LH.target.real_name]!") + var/datum/antagonist/heretic/EC = carbon_user.mind.has_antag_datum(/datum/antagonist/heretic) + LH.sac_targetter = EC + EC.sac_targetted.Add(LH.target.real_name) + else to_chat(user,"target could not be found for living heart.") diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm index 5844aad02b..077c380ef0 100644 --- a/code/modules/antagonists/morph/morph.dm +++ b/code/modules/antagonists/morph/morph.dm @@ -15,7 +15,6 @@ stop_automated_movement = 1 status_flags = CANPUSH pass_flags = PASSTABLE - ventcrawler = VENTCRAWLER_ALWAYS atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxHealth = 150 @@ -53,6 +52,10 @@ You can attack any item or dead creature to consume it - creatures will fully restore your health. \ Finally, you can restore yourself to your original form while morphed by shift-clicking yourself." +/mob/living/simple_animal/hostile/morph/Initialize() + . = ..() + src.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/morph/examine(mob/user) if(morphed) . = form.examine(user) diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index f5ebcffe35..ef58e5af39 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -72,6 +72,7 @@ var/list/drained_mobs = list() //Cannot harvest the same mob twice var/perfectsouls = 0 //How many perfect, regen-cap increasing souls the revenant has. //TODO, add objective for getting a perfect soul(s?) var/generated_objectives_and_spells = FALSE + var/telekinesis_cooldown /mob/living/simple_animal/revenant/Initialize(mapload) . = ..() @@ -93,13 +94,16 @@ /mob/living/simple_animal/revenant/Login() ..() - to_chat(src, "You are a revenant.") - to_chat(src, "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant.") - to_chat(src, "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds.") - to_chat(src, "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable.") - to_chat(src, "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities.") - to_chat(src, "You do not remember anything of your past lives, nor will you remember anything about this one after your death.") - to_chat(src, "Be sure to read the wiki page to learn more.") + var/revenant_greet + revenant_greet += "You are a revenant." + revenant_greet += "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant." + revenant_greet += "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds." + revenant_greet += "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable." + revenant_greet += "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities." + revenant_greet += "You do not remember anything of your past lives, nor will you remember anything about this one after your death." + revenant_greet += "Be sure to read the wiki page to learn more." + revenant_greet += "You are also able to telekinetically throw objects by clickdragging them." + to_chat(src, revenant_greet) if(!generated_objectives_and_spells) generated_objectives_and_spells = TRUE mind.assigned_role = ROLE_REVENANT @@ -317,6 +321,12 @@ to_chat(src, "Lost [essence_amt]E[source ? " from [source]":""].") return 1 +/mob/living/simple_animal/revenant/proc/telekinesis_cooldown_end() + if(!telekinesis_cooldown) + CRASH("telekinesis_cooldown_end ran when telekinesis_cooldown on [src] was false") + else + telekinesis_cooldown = FALSE + /mob/living/simple_animal/revenant/proc/death_reset() revealed = FALSE unreveal_time = 0 @@ -431,6 +441,38 @@ qdel(revenant) ..() +/proc/RevenantThrow(over, mob/user, obj/item/throwable) + var/mob/living/simple_animal/revenant/spooker = user + if(!istype(throwable)) + return + if(!throwable.anchored && !spooker.telekinesis_cooldown && spooker.essence > 20) + if(7 < get_dist(throwable, spooker)) + return + if(3 >= get_dist(throwable, spooker)) + spooker.stun(10) + spooker.reveal(25) + else + spooker.stun(20) + spooker.reveal(50) + spooker.change_essence_amount(-20, FALSE, "telekinesis") + spooker.telekinesis_cooldown = TRUE + throwable.float(TRUE, TRUE) + sleep(20) + throwable.DoRevenantThrowEffects(over) + throwable.throw_at(over, 10, 2) + ADD_TRAIT(throwable, TRAIT_SPOOKY_THROW, "revenant") + log_combat(throwable, over, "spooky telekinesised at", throwable) + var/obj/effect/temp_visual/telekinesis/T = new(get_turf(throwable)) + T.color = "#8715b4" + addtimer(CALLBACK(spooker, /mob/living/simple_animal/revenant.proc/telekinesis_cooldown_end), 50) + sleep(5) + throwable.float(FALSE, TRUE) + + +//Use this for effects you want to happen when a revenant throws stuff, check the TRAIT_SPOOKY_THROW if you want to know if its still being thrown +/obj/item/proc/DoRevenantThrowEffects(atom/target) + return TRUE + //objectives /datum/objective/revenant var/targetAmount = 100 diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 7444905b89..d1bdac7e05 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -93,7 +93,6 @@ AIStatus = AI_OFF pass_flags = PASSTABLE mob_size = MOB_SIZE_TINY - ventcrawler = VENTCRAWLER_ALWAYS ranged = 1 projectiletype = /obj/item/projectile/beam/disabler ranged_cooldown_time = 20 @@ -112,6 +111,7 @@ remove_verb(src, /mob/living/verb/pulled) for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diag_hud.add_to_hud(src) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/swarmer/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] diff --git a/code/modules/antagonists/traitor/classes/assassin.dm b/code/modules/antagonists/traitor/classes/assassin.dm index 6b709aac59..8175ad9736 100644 --- a/code/modules/antagonists/traitor/classes/assassin.dm +++ b/code/modules/antagonists/traitor/classes/assassin.dm @@ -8,11 +8,9 @@ /datum/traitor_class/human/assassin/forge_single_objective(datum/antagonist/traitor/T) .=1 var/permakill_prob = 20 - var/is_dynamic = FALSE var/datum/game_mode/dynamic/mode if(istype(SSticker.mode,/datum/game_mode/dynamic)) mode = SSticker.mode - is_dynamic = TRUE permakill_prob = max(0,mode.threat_level-50) var/list/active_ais = active_ais() if(active_ais.len && prob(100/GLOB.joined_player_list.len)) @@ -20,11 +18,6 @@ destroy_objective.owner = T.owner destroy_objective.find_target() T.add_objective(destroy_objective) - else if(prob(30) || (is_dynamic && (mode.storyteller.flags & NO_ASSASSIN))) - var/datum/objective/maroon/maroon_objective = new - maroon_objective.owner = T.owner - maroon_objective.find_target() - T.add_objective(maroon_objective) else if(prob(permakill_prob)) var/datum/objective/assassinate/kill_objective = new kill_objective.owner = T.owner diff --git a/code/modules/antagonists/traitor/classes/human.dm b/code/modules/antagonists/traitor/classes/human.dm index 30aa11e39d..16f65a63c3 100644 --- a/code/modules/antagonists/traitor/classes/human.dm +++ b/code/modules/antagonists/traitor/classes/human.dm @@ -41,11 +41,6 @@ destroy_objective.owner = T.owner destroy_objective.find_target() T.add_objective(destroy_objective) - else if(prob(30) || (is_dynamic && (mode.storyteller.flags & NO_ASSASSIN))) - var/datum/objective/maroon/maroon_objective = new - maroon_objective.owner = T.owner - maroon_objective.find_target() - T.add_objective(maroon_objective) else if(prob(max(0,assassin_prob-20))) var/datum/objective/assassinate/kill_objective = new kill_objective.owner = T.owner diff --git a/code/modules/antagonists/traitor/classes/subterfuge.dm b/code/modules/antagonists/traitor/classes/subterfuge.dm index 07707b69e1..ea073f38c1 100644 --- a/code/modules/antagonists/traitor/classes/subterfuge.dm +++ b/code/modules/antagonists/traitor/classes/subterfuge.dm @@ -17,11 +17,6 @@ kill_objective.owner = T.owner kill_objective.find_target() T.add_objective(kill_objective) - else - var/datum/objective/maroon/maroon_objective = new - maroon_objective.owner = T.owner - maroon_objective.find_target() - T.add_objective(maroon_objective) else var/list/weights = list() weights["sabo"] = length(subtypesof(/datum/sabotage_objective)) diff --git a/code/modules/antagonists/traitor/equipment/contractor.dm b/code/modules/antagonists/traitor/equipment/contractor.dm index 28298f4983..525f40d1f7 100644 --- a/code/modules/antagonists/traitor/equipment/contractor.dm +++ b/code/modules/antagonists/traitor/equipment/contractor.dm @@ -43,7 +43,7 @@ var/list/to_generate = list( CONTRACT_PAYOUT_LARGE, CONTRACT_PAYOUT_MEDIUM, - CONTRACT_PAYOUT_SMALL, + CONTRACT_PAYOUT_MEDIUM, CONTRACT_PAYOUT_SMALL, CONTRACT_PAYOUT_SMALL, CONTRACT_PAYOUT_SMALL diff --git a/code/modules/arousal/toys/dildos.dm b/code/modules/arousal/toys/dildos.dm index 0cfa57e5fc..2482b93300 100644 --- a/code/modules/arousal/toys/dildos.dm +++ b/code/modules/arousal/toys/dildos.dm @@ -103,29 +103,29 @@ name = "knotted dildo" attack_verb = list("penetrated", "knotted", "slapped", "inseminated") -obj/item/dildo/human +/obj/item/dildo/human dildo_shape = "human" name = "human dildo" attack_verb = list("penetrated", "slapped", "inseminated") -obj/item/dildo/plain +/obj/item/dildo/plain dildo_shape = "plain" name = "plain dildo" attack_verb = list("penetrated", "slapped", "inseminated") -obj/item/dildo/flared +/obj/item/dildo/flared dildo_shape = "flared" name = "flared dildo" attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") -obj/item/dildo/flared/huge +/obj/item/dildo/flared/huge name = "literal horse cock" desc = "THIS THING IS HUGE!" dildo_size = 4 force = 10 hitsound = 'sound/weapons/klonk.ogg' -obj/item/dildo/custom +/obj/item/dildo/custom name = "customizable dildo" desc = "Thanks to significant advances in synthetic nanomaterials, this dildo is capable of taking on many different forms to fit the user's preferences! Pricy!" can_customize = TRUE @@ -136,9 +136,9 @@ obj/item/dildo/custom // Suicide acts, by request /obj/item/dildo/proc/manual_suicide(mob/living/user) - user.visible_message("[user] finally finishes deepthroating the [src], and their life.") - user.adjustOxyLoss(200) - user.death(0) + user.visible_message("[user] finally finishes deepthroating the [src], and their life.") + user.adjustOxyLoss(200) + user.death(0) /obj/item/dildo/suicide_act(mob/living/user) // is_knotted = ((src.dildo_shape == "knotted")?"They swallowed the knot":"Their face is turning blue") diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 8a0645f311..07a9f499f8 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -30,6 +30,9 @@ attack(user,user) return FIRELOSS +/obj/item/assembly/flash/DoRevenantThrowEffects(atom/target) + AOE_flash() + /obj/item/assembly/flash/update_icon(flash = FALSE) cut_overlays() attached_overlays = list() diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 6049ee965e..ccb8a3d81c 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -304,7 +304,7 @@ "danger_level" = cur_tlv.get_danger_level(environment.get_moles(gas_id) * partial_pressure) )) - if(!locked || hasSiliconAccessInArea(user, PRIVILEDGES_SILICON|PRIVILEDGES_DRONE)) + if(!locked || hasSiliconAccessInArea(user, PRIVILEGES_SILICON|PRIVILEGES_DRONE)) data["vents"] = list() for(var/id_tag in A.air_vent_names) var/long_name = A.air_vent_names[id_tag] @@ -385,13 +385,13 @@ if(..() || buildstage != 2) return var/silicon_access = hasSiliconAccessInArea(usr) - var/bot_priviledges = silicon_access || (usr.silicon_privileges & PRIVILEDGES_DRONE) - if((locked && !bot_priviledges) || (silicon_access && aidisabled)) + var/bot_privileges = silicon_access || (usr.silicon_privileges & PRIVILEGES_DRONE) + if((locked && !bot_privileges) || (silicon_access && aidisabled)) return var/device_id = params["id_tag"] switch(action) if("lock") - if(bot_priviledges && !wires.is_cut(WIRE_IDSCAN)) + if(bot_privileges && !wires.is_cut(WIRE_IDSCAN)) locked = !locked . = TRUE if("power", "toggle_filter", "widenet", "scrubbing") diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 25e4084524..7f4a8cd794 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -44,7 +44,7 @@ . = ..() if(is_type_in_list(src, GLOB.ventcrawl_machinery) && isliving(user)) var/mob/living/L = user - if(L.ventcrawler) + if(SEND_SIGNAL(L, COMSIG_CHECK_VENTCRAWL)) . += "Alt-click to crawl through it." /obj/machinery/atmospherics/New(loc, process = TRUE, setdir) @@ -318,7 +318,7 @@ /obj/machinery/atmospherics/AltClick(mob/living/L) if(is_type_in_typecache(src, GLOB.ventcrawl_machinery)) - return L.handle_ventcrawl(src) + return SEND_SIGNAL(L, COMSIG_HANDLE_VENTCRAWL, src) return ..() diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 0eebf22be4..2690ad555b 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -261,7 +261,7 @@ new /obj/item/stack/sheet/metal (loc, 5) qdel(src) -obj/machinery/portable_atmospherics/canister/welder_act(mob/living/user, obj/item/I) +/obj/machinery/portable_atmospherics/canister/welder_act(mob/living/user, obj/item/I) ..() if(user.a_intent == INTENT_HARM) return FALSE diff --git a/code/modules/atmospherics/multiz.dm b/code/modules/atmospherics/multiz.dm index 79a5c2cf14..cb52d03ff6 100644 --- a/code/modules/atmospherics/multiz.dm +++ b/code/modules/atmospherics/multiz.dm @@ -1,4 +1,5 @@ -obj/machinery/atmospherics/pipe/simple/multiz ///This is an atmospherics pipe which can relay air up a deck (Z+1). It currently only supports being on pipe layer 1 +/// This is an atmospherics pipe which can relay air up/down a deck. +/obj/machinery/atmospherics/pipe/simple/multiz name = "multi deck pipe adapter" desc = "An adapter which allows pipes to connect to other pipenets on different decks." icon_state = "multiz_pipe" @@ -24,6 +25,4 @@ obj/machinery/atmospherics/pipe/simple/multiz ///This is an atmospherics pipe wh if(above) nodes += above above.nodes += src //Two way travel :) - return ..() - else - return ..() + return ..() diff --git a/code/modules/cargo/bounties/reagent.dm b/code/modules/cargo/bounties/reagent.dm index 391b4ff464..57501beab3 100644 --- a/code/modules/cargo/bounties/reagent.dm +++ b/code/modules/cargo/bounties/reagent.dm @@ -35,7 +35,7 @@ name = "Simple Drink" reward = 1500 -datum/bounty/reagent/simple_drink/New() +/datum/bounty/reagent/simple_drink/New() // Don't worry about making this comprehensive. It doesn't matter if some drinks are skipped. var/static/list/possible_reagents = list(\ /datum/reagent/consumable/ethanol/antifreeze,\ @@ -91,7 +91,7 @@ datum/bounty/reagent/simple_drink/New() name = "Complex Drink" reward = 4000 -datum/bounty/reagent/complex_drink/New() +/datum/bounty/reagent/complex_drink/New() // Don't worry about making this comprehensive. It doesn't matter if some drinks are skipped. var/static/list/possible_reagents = list(\ /datum/reagent/consumable/ethanol/atomicbomb,\ @@ -124,7 +124,7 @@ datum/bounty/reagent/complex_drink/New() reward = 2750 required_volume = 30 -datum/bounty/reagent/chemical/New() +/datum/bounty/reagent/chemical/New() // Don't worry about making this comprehensive. It doesn't matter if some chems are skipped. var/static/list/possible_reagents = list(\ /datum/reagent/medicine/leporazine,\ diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 678948128f..8e93fc5fc3 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -473,7 +473,7 @@ //Soft Suits //Blanket -datum/export/gear/space/helmet +/datum/export/gear/space/helmet cost = 55 unit_name = "space helmet" export_types = list(/obj/item/clothing/head/helmet/space) @@ -485,7 +485,7 @@ datum/export/gear/space/helmet export_types = list(/obj/item/clothing/suit/space) include_subtypes = TRUE -datum/export/gear/space/helmet/plasma +/datum/export/gear/space/helmet/plasma cost = 100 unit_name = "plasmaman space helmet" export_types = list(/obj/item/clothing/suit/space/eva/plasmaman) @@ -495,7 +495,7 @@ datum/export/gear/space/helmet/plasma unit_name = "plasmaman space suit" export_types = list(/obj/item/clothing/suit/space/eva/plasmaman) -datum/export/gear/space/helmet/synda +/datum/export/gear/space/helmet/synda cost = 150 //Flash proof unit_name = "syndicate space helmet" export_types = list(/obj/item/clothing/head/helmet/space/syndicate) @@ -510,7 +510,7 @@ datum/export/gear/space/helmet/synda //Glasses //Blanket -datum/export/gear/glasses //glasses are not worth selling +/datum/export/gear/glasses //glasses are not worth selling cost = 3 unit_name = "glasses" export_types = list(/obj/item/clothing/glasses) diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index 05d3737253..c0bd25b028 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -334,3 +334,22 @@ /obj/item/storage/fancy/ringbox/silver) //diamond rings cost the same price as this crate via cargo so we're not giving you two for free. Wedding rings are traditionally less valuable anyway. crate_name = "wedding crate" +/datum/supply_pack/costumes_toys/randomised/tcg + name = "Big-Ass Booster Pack Pack" + desc = "A bumper load of NT TCG Booster Packs of varying series. Collect them all!" + cost = 3000 + contains = list() + crate_name = "booster pack pack" + +/datum/supply_pack/costumes_toys/randomised/tcg/generate() + . = ..() + var/cardpacktype + var/list/cardtypes = subtypesof(/obj/item/cardpack) + for(var/cardtype in cardtypes) + var/obj/item/cardpack/pack = new cardtype(.) + if(pack.illegal) + cardtypes.Remove(cardtype) + qdel(pack) + for(var/i in 1 to 10) + cardpacktype = pick(cardtypes) + new cardpacktype(.) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 6e7cdc27c8..af47c8a2e3 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -76,9 +76,15 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( to_chat(src, "Your previous action was ignored because you've done too many in a second") return - //Logs all hrefs, except chat pings - if(!(href_list["_src_"] == "chat" && href_list["proc"] == "ping" && LAZYLEN(href_list) == 2)) - log_href("[src] (usr:[usr]\[[COORD(usr)]\]) : [hsrc ? "[hsrc] " : ""][href]") + + // Tgui Topic middleware + if(tgui_Topic(href_list)) + if(CONFIG_GET(flag/emergency_tgui_logging)) + log_href("[src] (usr:[usr]\[[COORD(usr)]\]) : [hsrc ? "[hsrc] " : ""][href]") + return + + //Logs all hrefs + log_href("[src] (usr:[usr]\[[COORD(usr)]\]) : [hsrc ? "[hsrc] " : ""][href]") //byond bug ID:2256651 if (asset_cache_job && (asset_cache_job in completed_asset_jobs)) @@ -105,10 +111,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( handle_statpanel_click(href_list) return - // Tgui Topic middleware - if(tgui_Topic(href_list)) - return - // Admin PM if(href_list["priv_msg"]) cmd_admin_pm(href_list["priv_msg"],null) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b130d11860..33b8a1987c 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -99,6 +99,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/be_random_body = 0 //whether we'll have a random body every round var/gender = MALE //gender of character (well duh) var/age = 30 //age of character + var/language = "Random" //bonus language + var/choselanguage = "Random" //language appearance var/underwear = "Nude" //underwear type var/undie_color = "FFFFFF" var/undershirt = "Nude" //undershirt type @@ -218,6 +220,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/hide_ckey = FALSE //pref for hiding if your ckey shows round-end or not + var/list/tcg_cards = list() + /datum/preferences/New(client/C) parent = C @@ -308,6 +312,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Gender: [gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
" dat += "Age: [age]
" + dat += "Language: [choselanguage]
" dat += "Special Names:
" var/old_group @@ -895,19 +900,23 @@ GLOBAL_LIST_EMPTY(preferences_datums) continue var/class_link = "" var/list/loadout_item = has_loadout_gear(loadout_slot, "[gear.type]") - var/extra_color_data = "" + var/extra_loadout_data = "" if(loadout_item) class_link = "style='white-space:normal;' class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=0'" if(gear.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) - extra_color_data += "
Color" + extra_loadout_data += "
Color" for(var/loadout_color in loadout_item[LOADOUT_COLOR]) - extra_color_data += "   " + extra_loadout_data += "   " else var/loadout_color_non_poly = "#FFFFFF" if(length(loadout_item[LOADOUT_COLOR])) loadout_color_non_poly = loadout_item[LOADOUT_COLOR][1] - extra_color_data += "
Color" - extra_color_data += "   " + extra_loadout_data += "
Color" + extra_loadout_data += "   " + if(gear.loadout_flags & LOADOUT_CAN_NAME) + extra_loadout_data += "
Name [loadout_item[LOADOUT_CUSTOM_NAME] ? loadout_item[LOADOUT_CUSTOM_NAME] : "N/A"]" + if(gear.loadout_flags & LOADOUT_CAN_DESCRIPTION) + extra_loadout_data += "
Description" else if((gear_points - gear.cost) < 0) class_link = "style='white-space:normal;' class='linkOff'" else if(donoritem) @@ -916,7 +925,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) class_link = "style='white-space:normal;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'" else class_link = "style='white-space:normal;background:#eb2e2e;' class='linkOff'" - dat += "[name][extra_color_data]" + dat += "[name][extra_loadout_data]" dat += "[gear.cost]" if(islist(gear.restricted_roles)) if(gear.restricted_roles.len) @@ -929,14 +938,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += gear.restricted_roles.Join(";") dat += "" if(!istype(gear, /datum/gear/unlockable)) - dat += "[gear.description]" + // the below line essentially means "if the loadout item is picked by the user and has a custom description, give it the custom description, otherwise give it the default description" + dat += "[loadout_item ? (loadout_item[LOADOUT_CUSTOM_DESCRIPTION] ? loadout_item[LOADOUT_CUSTOM_DESCRIPTION] : gear.description) : gear.description]" else //we add the user's progress to the description assuming they have progress var/datum/gear/unlockable/unlockable = gear var/progress_made = unlockable_loadout_data[unlockable.progress_key] if(!progress_made) progress_made = 0 - dat += "[gear.description] Progress: [min(progress_made, unlockable.progress_required)]/[unlockable.progress_required]" + dat += "[loadout_item ? (loadout_item[LOADOUT_CUSTOM_DESCRIPTION] ? loadout_item[LOADOUT_CUSTOM_DESCRIPTION] : gear.description) : gear.description] Progress: [min(progress_made, unlockable.progress_required)]/[unlockable.progress_required]" dat += "" if(4) // Content preferences @@ -2312,6 +2322,28 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["body_model"] = chosengender gender = chosengender + if("language") + choselanguage = input(user, "Select a language.", "Language", language) as null|anything in list("Beachtongue","Draconic","Dwarven", + "Chimpanzee","Space Sign Language","Random") + if(!choselanguage) + return + switch(choselanguage) + if("Rachidian") + language = /datum/language/arachnid + if("Beachtongue") + language = /datum/language/beachbum + if("Draconic") + language = /datum/language/draconic + if("Dwarven") + language = /datum/language/dwarf + if("Chimpanzee") + language = /datum/language/monkey + if("Space Sign Language") + language = /datum/language/signlanguage + if("Random") + language = pick(list("Rachidian", "Beachtongue","Draconic","Dwarven", + "Chimpanzee","Space Sign Language")) + if("body_size") var/new_body_size = input(user, "Choose your desired sprite size: (90-125%)\nWarning: This may make your character look distorted. Additionally, any size under 100% takes a 10% maximum health penalty", "Character Preference", features["body_size"]*100) as num|null if(new_body_size) @@ -2702,7 +2734,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) loadout_data["SAVE_[loadout_slot]"] += list(new_loadout_data) //double packed because it does the union of the CONTENTS of the lists else loadout_data["SAVE_[loadout_slot]"] = list(new_loadout_data) //double packed because you somehow had no save slot in your loadout? - if(href_list["loadout_color"]) + + if(href_list["loadout_color"] || href_list["loadout_color_polychromic"] || href_list["loadout_rename"] || href_list["loadout_redescribe"]) + //if the gear doesn't exist, or they don't have it, ignore the request var/name = html_decode(href_list["loadout_gear_name"]) var/datum/gear/G = GLOB.loadout_items[gear_category][gear_subcategory][name] if(!G) @@ -2710,29 +2744,44 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/user_gear = has_loadout_gear(loadout_slot, "[G.type]") if(!user_gear) return - if(!length(user_gear[LOADOUT_COLOR])) - user_gear[LOADOUT_COLOR] = list("#FFFFFF") - var/current_color = user_gear[LOADOUT_COLOR][1] - var/new_color = input(user, "Polychromic options", "Choose Color", current_color) as color|null - user_gear[LOADOUT_COLOR][1] = sanitize_hexcolor(new_color, 6, TRUE, current_color) - if(href_list["loadout_color_polychromic"]) - var/name = html_decode(href_list["loadout_gear_name"]) - var/datum/gear/G = GLOB.loadout_items[gear_category][gear_subcategory][name] - if(!G) - return - var/user_gear = has_loadout_gear(loadout_slot, "[G.type]") - if(!user_gear) - return - var/list/color_options = list() - for(var/i=1, i<=length(G.loadout_initial_colors), i++) - color_options += "Color [i]" - var/color_to_change = input(user, "Polychromic options", "Recolor [name]") as null|anything in color_options - if(color_to_change) - var/color_index = text2num(copytext(color_to_change, 7)) - var/current_color = user_gear[LOADOUT_COLOR][color_index] - var/new_color = input(user, "Polychromic options", "Choose [color_to_change] Color", current_color) as color|null - if(new_color) - user_gear[LOADOUT_COLOR][color_index] = sanitize_hexcolor(new_color, 6, TRUE, current_color) + + //possible requests: recolor, recolor (polychromic), rename, redescribe + //always make sure the gear allows said request before proceeding + + //non-poly coloring can only be done by non-poly items + if(href_list["loadout_color"] && !(G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC)) + if(!length(user_gear[LOADOUT_COLOR])) + user_gear[LOADOUT_COLOR] = list("#FFFFFF") + var/current_color = user_gear[LOADOUT_COLOR][1] + var/new_color = input(user, "Polychromic options", "Choose Color", current_color) as color|null + user_gear[LOADOUT_COLOR][1] = sanitize_hexcolor(new_color, 6, TRUE, current_color) + + //poly coloring can only be done by poly items + if(href_list["loadout_color_polychromic"] && (G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC)) + var/list/color_options = list() + for(var/i=1, i<=length(G.loadout_initial_colors), i++) + color_options += "Color [i]" + var/color_to_change = input(user, "Polychromic options", "Recolor [name]") as null|anything in color_options + if(color_to_change) + var/color_index = text2num(copytext(color_to_change, 7)) + var/current_color = user_gear[LOADOUT_COLOR][color_index] + var/new_color = input(user, "Polychromic options", "Choose [color_to_change] Color", current_color) as color|null + if(new_color) + user_gear[LOADOUT_COLOR][color_index] = sanitize_hexcolor(new_color, 6, TRUE, current_color) + + //both renaming and redescribing strip the input to stop html injection + + //renaming is only allowed if it has the flag for it + if(href_list["loadout_rename"] && (G.loadout_flags & LOADOUT_CAN_NAME)) + var/new_name = stripped_input(user, "Enter new name for item. Maximum [MAX_NAME_LEN] characters.", "Loadout Item Naming", null, MAX_NAME_LEN) + if(new_name) + user_gear[LOADOUT_CUSTOM_NAME] = new_name + + //redescribing is only allowed if it has the flag for it + if(href_list["loadout_redescribe"] && (G.loadout_flags & LOADOUT_CAN_DESCRIPTION)) //redescribe isnt a real word but i can't think of the right term to use + var/new_description = stripped_input(user, "Enter new description for item. Maximum 500 characters.", "Loadout Item Redescribing", null, 500) + if(new_description) + user_gear[LOADOUT_CUSTOM_DESCRIPTION] = new_description ShowChoices(user) return 1 diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 0db9fbb66c..458f607ac9 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -271,7 +271,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car loadout_data["SAVE_[i]"] = list() for(var/some_gear_item in saved_loadout_paths) if(!ispath(text2path(some_gear_item))) - message_admins("Failed to copy item [some_gear_item] to new loadout system when migrating from version [current_version] to 40, issue: item is not a path") + log_game("Failed to copy item [some_gear_item] to new loadout system when migrating from version [current_version] to 40, issue: item is not a path") continue var/datum/gear/gear_item = text2path(some_gear_item) if(!(initial(gear_item.loadout_flags) & LOADOUT_CAN_COLOR_POLYCHROMIC)) @@ -604,6 +604,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["body_model"] >> features["body_model"] S["body_size"] >> features["body_size"] S["age"] >> age + S["language"] >> language + S["choselanguage"] >> choselanguage S["hair_color"] >> hair_color S["facial_hair_color"] >> facial_hair_color S["eye_type"] >> eye_type @@ -656,6 +658,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car modified_limbs = safe_json_decode(limbmodstr) else modified_limbs = list() + + var/tcgcardstr + S["tcg_cards"] >> tcgcardstr + if(length(tcgcardstr)) + tcg_cards = safe_json_decode(tcgcardstr) + else + tcg_cards = list() + S["chosen_limb_id"] >> chosen_limb_id S["hide_ckey"] >> hide_ckey //saved per-character @@ -947,6 +957,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["body_model"] , features["body_model"]) WRITE_FILE(S["body_size"] , features["body_size"]) WRITE_FILE(S["age"] , age) + WRITE_FILE(S["language"] , language) + WRITE_FILE(S["choselanguage"] , choselanguage) WRITE_FILE(S["hair_color"] , hair_color) WRITE_FILE(S["facial_hair_color"] , facial_hair_color) WRITE_FILE(S["eye_type"] , eye_type) @@ -1091,6 +1103,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else S["loadout"] << safe_json_encode(list()) + if(length(tcg_cards)) + S["tcg_cards"] << safe_json_encode(tcg_cards) + else + S["tcg_cards"] << safe_json_encode(list()) + cit_character_pref_save(S) return 1 diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index ea01b0c0ed..018c3d9a3f 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -31,6 +31,9 @@ // What items can be consumed to repair this clothing (must by an /obj/item/stack) var/repairable_by = /obj/item/stack/sheet/cloth + // has this item been upgraded by an upgrade kit (see: durathread armor kits) + var/upgrade_prefix + //Var modification - PLEASE be careful with this I know who you are and where you live var/list/user_vars_to_edit //VARNAME = VARVALUE eg: "name" = "butts" var/list/user_vars_remembered //Auto built by the above + dropped() + equipped() @@ -120,6 +123,8 @@ update_clothes_damaged_state(CLOTHING_PRISTINE) obj_integrity = max_integrity name = initial(name) // remove "tattered" or "shredded" if there's a prefix + if(upgrade_prefix) + name = upgrade_prefix + " " + initial(name) body_parts_covered = initial(body_parts_covered) slot_flags = initial(slot_flags) damage_by_parts = null diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index c069649848..4728001699 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -161,6 +161,68 @@ return NO_AUTO_CLICKDELAY_HANDLING | ATTACK_IGNORE_ACTION +/obj/item/clothing/gloves/fingerless/ablative + name = "ablative armwraps" + desc = "Armwraps made out of a highly durable, reflective metal. Has the side effect of absorbing shocks." + siemens_coefficient = 0 + icon_state = "ablative_armwraps" + item_state = "ablative_armwraps" + block_parry_data = /datum/block_parry_data/ablative_armwraps + var/wornonce = FALSE + +/obj/item/clothing/gloves/fingerless/ablative/proc/get_component_parry_data(datum/source, parrying_method, datum/parrying_item_mob_or_art, list/backup_items, list/override) + if(parrying_method && !(parrying_method == UNARMED_PARRY)) + return + override[src] = ITEM_PARRY + +/obj/item/clothing/gloves/fingerless/ablative/equipped(mob/user, slot) + . = ..() + if(current_equipped_slot == SLOT_GLOVES) + RegisterSignal(user, COMSIG_LIVING_ACTIVE_PARRY_START, .proc/get_component_parry_data) + wornonce = TRUE + +/obj/item/clothing/gloves/fingerless/ablative/dropped(mob/user) + . = ..() + if(wornonce) + UnregisterSignal(user, COMSIG_LIVING_ACTIVE_PARRY_START) + wornonce = FALSE + +/obj/item/clothing/gloves/fingerless/ablative/can_active_parry(mob/user) + var/mob/living/carbon/human/H = user + if(!istype(H)) + return FALSE + return src == H.gloves + +/obj/item/clothing/gloves/fingerless/ablative/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/block_return, parry_efficiency, parry_time) + . = ..() + if(parry_efficiency > 0) + owner.visible_message("[owner] deflects \the [object] with their armwraps!") + +/datum/block_parry_data/ablative_armwraps + parry_stamina_cost = 4 + parry_attack_types = ATTACK_TYPE_UNARMED | ATTACK_TYPE_PROJECTILE | ATTACK_TYPE_TACKLE | ATTACK_TYPE_THROWN | ATTACK_TYPE_MELEE + parry_flags = NONE + + parry_time_windup = 0 + parry_time_spindown = 0 + parry_time_active = 7.5 + + parry_time_perfect = 1 + parry_time_perfect_leeway = 7.5 + parry_imperfect_falloff_percent = 20 + parry_efficiency_perfect = 100 + parry_time_perfect_leeway_override = list( + TEXT_ATTACK_TYPE_MELEE = 1 + ) + + parry_efficiency_considered_successful = 0.01 + parry_efficiency_to_counterattack = INFINITY // no auto counter + parry_max_attacks = INFINITY + parry_failed_cooldown_duration = 2.25 SECONDS + parry_failed_stagger_duration = 2.25 SECONDS + parry_cooldown = 3 SECONDS + parry_failed_clickcd_duration = 0.5 SECONDS + /obj/item/clothing/gloves/botanic_leather name = "botanist's leather gloves" desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm." diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 15a5345ad1..525db577e0 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -17,7 +17,7 @@ /obj/item/clothing/mask/gas/examine(mob/user) . = ..() if(flavor_adjust) - . += "Alt-click to toggle identity concealment. it's currently [flags_inv & HIDEFACE ? "on" : "off"]." + . += "Alt-click to toggle identity concealment. It's currently [flags_inv & HIDEFACE ? "on" : "off"]." /obj/item/clothing/mask/gas/AltClick(mob/user) . = ..() @@ -143,14 +143,17 @@ "Blanc" = image(icon = src.icon, icon_state = "mime"), "Excité" = image(icon = src.icon, icon_state = "sexymime"), "Triste" = image(icon = src.icon, icon_state = "sadmime"), - "Effrayé" = image(icon = src.icon, icon_state = "scaredmime") + "Effrayé" = image(icon = src.icon, icon_state = "scaredmime"), + "Timid Woman" = image(icon = src.icon, icon_state = "timidwoman"), + "Timid Man" = image(icon = src.icon, icon_state = "timidman") ) /obj/item/clothing/mask/gas/mime/ui_action_click(mob/user) if(!istype(user) || user.incapacitated()) return - var/static/list/options = list("Blanc" = "mime", "Triste" = "sadmime", "Effrayé" = "scaredmime", "Excité" ="sexymime") + var/static/list/options = list("Blanc" = "mime", "Triste" = "sadmime", "Effrayé" = "scaredmime", "Excité" ="sexymime", + "Timid Woman" = "timidwoman", "Timid Man" = "timidman") var/choice = show_radial_menu(user,src, mimemask_designs, custom_check = FALSE, radius = 36, require_near = TRUE) @@ -170,6 +173,20 @@ item_state = "sexymime" actions_types = list() +/obj/item/clothing/mask/gas/timidcostume + name = "timid woman mask" + desc = "Most people who wear these are not really that timid." + clothing_flags = ALLOWINTERNALS + icon_state = "timidwoman" + item_state = "timidwoman" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/timidcostume/man + name = "timid man mask" + icon_state = "timidman" + item_state = "timidman" + /obj/item/clothing/mask/gas/monkeymask name = "monkey mask" desc = "A mask used when acting as a monkey." diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 5dd35788f1..fe08cbd63e 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -33,6 +33,16 @@ actions_types = list(/datum/action/item_action/adjust) mutantrace_variation = STYLE_MUZZLE +/obj/item/clothing/mask/surgical/aesthetic + name = "aesthetic sterile mask" + desc = "A sterile mask designed to help prevent the spread of diseases. This one doesn't seem like it does a whole lot, somehow." + flags_inv = null + flags_cover = null + visor_flags_inv = null + visor_flags_cover = null + permeability_coefficient = 1 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + /obj/item/clothing/mask/surgical/attack_self(mob/user) adjustmask(user) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 51a526d089..b0af7aa0d5 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -237,6 +237,12 @@ icon_state = "choker" poly_colors = list("#222222") +/obj/item/clothing/neck/necklace/cowbell + name = "cowbell collar" + desc = "Who would wear this? Take this off, you aren't a cow, you're just an awful degenerate." + icon = 'icons/obj/clothing/neck.dmi' + icon_state = "cowbell" + /obj/item/key/collar name = "Collar Key" desc = "A key for a tiny lock on a collar or bag." @@ -289,7 +295,7 @@ //VERY SUPER BADASS NECKERCHIEFS// ////////////////////////////////// -obj/item/clothing/neck/neckerchief +/obj/item/clothing/neck/neckerchief icon = 'icons/obj/clothing/masks.dmi' //In order to reuse the bandana sprite w_class = WEIGHT_CLASS_TINY var/sourceBandanaType diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index df0f03f614..9d51753c78 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -51,6 +51,17 @@ desc = "Very gay shoes." icon_state = "rain_bow" +/obj/item/clothing/shoes/sneakers/poly/polychromic + name = "polychromic shoes" + desc = "Every color." + icon_state = "poly" + item_state = "poly" + var/list/poly_colors = list("#FFFFFF", "#1D1D1D") + +/obj/item/clothing/shoes/sneakers/poly/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 2) + /obj/item/clothing/shoes/sneakers/orange name = "orange shoes" icon_state = "orange" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index b0d760ebd9..cc14424980 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -97,12 +97,14 @@ SEND_SIGNAL(t_loc, COMSIG_TURF_MAKE_DRY, TURF_WET_WATER, TRUE, INFINITY) /obj/item/clothing/shoes/clown_shoes - desc = "The prankster's standard-issue clowning shoes. Damn, they're huge!" + desc = "The prankster's standard-issue clowning shoes. Damn, they're huge! Ctrl-click to toggle waddle dampeners." name = "clown shoes" icon_state = "clown_shoes" slowdown = SHOES_SLOWDOWN+1 pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes/clown lace_time = 20 SECONDS // how the hell do these laces even work?? + var/datum/component/waddle + var/enabled_waddle = TRUE /obj/item/clothing/shoes/clown_shoes/Initialize() . = ..() @@ -110,14 +112,31 @@ /obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot) . = ..() - if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY)) - SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "noshoes") + if(slot == SLOT_SHOES) + if(enabled_waddle) + waddle = user.AddComponent(/datum/component/waddling) + if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY)) + SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "noshoes") /obj/item/clothing/shoes/clown_shoes/dropped(mob/user) . = ..() + QDEL_NULL(waddle) if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY)) SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "noshoes", /datum/mood_event/noshoes) +/obj/item/clothing/shoes/clown_shoes/CtrlClick(mob/living/user) + if(!isliving(user)) + return + if(user.get_active_held_item() != src) + to_chat(user, "You must hold the [src] in your hand to do this!") + return + if (!enabled_waddle) + to_chat(user, "You switch off the waddle dampeners!") + enabled_waddle = TRUE + else + to_chat(user, "You switch on the waddle dampeners!") + enabled_waddle = FALSE + /obj/item/clothing/shoes/clown_shoes/jester name = "jester shoes" desc = "A court jester's shoes, updated with modern squeaking technology." @@ -413,6 +432,22 @@ var/wallcharges = 4 var/newlocobject = null +/obj/item/clothing/shoes/timidcostume + name = "timid woman boots" + desc = "Ready to rock your hips back and forth? These boots have a polychromic finish." + icon_state = "timidwoman" + item_state = "timidwoman" + +/obj/item/clothing/shoes/timidcostume/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#0094FF"), 1) + +/obj/item/clothing/shoes/timidcostume/man + name = "timid man shoes" + desc = "Ready to go kart racing? These shoes have a polychromic finish." + icon_state = "timidman" + item_state = "timidman" + /obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot) . = ..() if(slot == SLOT_SHOES) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 133956e44e..f4fd844e8a 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -102,7 +102,18 @@ /obj/item/clothing/neck/cloak/polychromic/ComponentInitialize() . = ..() AddElement(/datum/element/polychromic, poly_colors, 3) - + +/obj/item/clothing/neck/cancloak/polychromic + name = "canvas cloak" + desc = "A rugged cloak made of canvas." + icon_state = "cancloak" + item_state = "cancloak" + var/list/poly_colors = list("#585858", "#373737", "#BEBEBE") + +/obj/item/clothing/neck/cancloak/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 3) + /obj/item/clothing/neck/cloak/alt name = "cloak" desc = "A ragged up white cloak. It reminds you of a place not far from here." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6dfcd72c10..07741208c3 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -487,6 +487,17 @@ item_state = "militaryjacket" allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio) +/obj/item/clothing/suit/jacket/urbanjacket/polychromic + name = "urban jacket" + desc = "A canvas jacket styled with a fur neck piece, stylish." + icon_state = "urbanjacket" + item_state = "urbanjacket" + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio) + +/obj/item/clothing/suit/jacket/urbanjacket/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#26321D", "#CBBDAF", "#292929"), 3) + /obj/item/clothing/suit/jacket/letterman name = "letterman jacket" desc = "A classic brown letterman jacket. Looks pretty hot and heavy." @@ -1023,6 +1034,16 @@ alternate_worn_layer = UNDER_HEAD_LAYER mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON +/obj/item/clothing/suit/toggle/wbreakpoly + name = "polychromic windbreaker" + desc = "Perfect for windy days." + icon_state = "wbreakpoly" + item_state = "wbreakpoly" + +/obj/item/clothing/suit/toggle/wbreakpoly/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#464F65", "#916035", "#474747"), 3) + /obj/item/clothing/suit/flakjack name = "flak jacket" desc = "A dilapidated jacket made of a supposedly bullet-proof material (Hint: It isn't.). Smells faintly of napalm." @@ -1088,6 +1109,36 @@ icon_state = "winterhood_poly" item_state = "winterhood_poly" +/obj/item/clothing/suit/hooded/wintercoat/timidcostume + name = "timid woman hoodie" + desc = "A snug, tight yet warm outfit with belts wrapped around it. Looks to be made of polychromic materials." + icon_state = "timidwoman" + item_state = "timidwoman" + hoodtype = /obj/item/clothing/head/hooded/winterhood/timidcostume + +/obj/item/clothing/suit/hooded/wintercoat/timidcostume/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#EB0C07", "#5E2400", "#CEA100"), 3) + +/obj/item/clothing/head/hooded/winterhood/timidcostume + name = "timid woman hood" + desc = "A hood attached to the hoodie." + icon_state = "timidwoman" + item_state = "timidwoman" + +/obj/item/clothing/suit/hooded/wintercoat/timidcostume/man + name = "timid man hoodie" + desc = "A snug, tight yet warm outfit a belt wrapped around it. Looks to be made of polychromic materials." + icon_state = "timidman" + item_state = "timidman" + hoodtype = /obj/item/clothing/head/hooded/winterhood/timidcostume/man + +/obj/item/clothing/head/hooded/winterhood/timidcostume/man + name = "timid man hood" + icon_state = "timidman" + item_state = "timidman" + + /obj/item/clothing/suit/striped_sweater name = "striped sweater" desc = "Reminds you of someone, but you just can't put your finger on it..." diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index 16a6c06799..aa22834670 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -61,8 +61,9 @@ if(!hood) to_chat(loc, "[src] seems to be missing its hood..") return - hood.atom_colours = atom_colours.Copy() - hood.update_atom_colour() + if(atom_colours) + hood.atom_colours = atom_colours.Copy() + hood.update_atom_colour() if(!suittoggled) if(ishuman(src.loc)) var/mob/living/carbon/human/H = src.loc @@ -198,8 +199,9 @@ if(!helmet) to_chat(H, "[src] seems to be missing its helmet..") return - helmet.atom_colours = atom_colours.Copy() - helmet.update_atom_colour() + if(atom_colours) + helmet.atom_colours = atom_colours.Copy() + helmet.update_atom_colour() if(!suittoggled) if(ishuman(src.loc)) if(H.wear_suit != src) diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index e617d2d57b..3207a5842f 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -32,6 +32,9 @@ /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil)) + if(damaged_clothes) + to_chat(user,"You should repair the damage done to [src] first.") + return 0 var/obj/item/stack/cable_coil/C = I I.use_tool(src, user, 0, 1) has_sensor = HAS_SENSORS diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index ee7e4c48e1..7f28b88ad6 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -79,13 +79,175 @@ if(initial(above_suit)) . += "\The [src] can be worn above or below your suit. Alt-click to toggle." +////////////// +//Waistcoats// +////////////// + /obj/item/clothing/accessory/waistcoat - name = "waistcoat" + name = "black waistcoat" desc = "For some classy, murderous fun." icon_state = "waistcoat" item_state = "waistcoat" minimize_when_attached = FALSE +/obj/item/clothing/accessory/waistcoat/red + name = "red waistcoat" + icon_state = "waistcoat_red" + item_state = "waistcoat_red" + +/obj/item/clothing/accessory/waistcoat/grey + name = "grey waistcoat" + icon_state = "waistcoat_grey" + item_state = "waistcoat_grey" + +/obj/item/clothing/accessory/waistcoat/brown + name = "red waistcoat" + icon_state = "waistcoat_brown" + item_state = "waistcoat_brown" + +/obj/item/clothing/accessory/waistcoat/sweatervest + name = "black sweatervest" + icon_state = "sweatervest" + item_state = "sweatervest" + +/obj/item/clothing/accessory/waistcoat/sweatervest/blue + name = "blue sweatervest" + icon_state = "sweatervest_blue" + item_state = "sweatervest_blue" + +/obj/item/clothing/accessory/waistcoat/sweatervest/red + name = "red sweatervest" + icon_state = "sweatervest_red" + item_state = "sweatervest_red" + +//////////// +//Sweaters// +//////////// + +/obj/item/clothing/accessory/sweater + name = "grey sweater" + desc = "Nicely comfy and warm!" + icon_state = "sweater" + item_state = "sweater" + minimize_when_attached = FALSE + +/obj/item/clothing/accessory/sweater/pink + name = "pink sweater" + icon_state = "sweater_pink" + item_state = "sweater_pink" + +/obj/item/clothing/accessory/sweater/heart + name = "heart sweater" + icon_state = "sweater_heart" + item_state = "sweater_heart" + +/obj/item/clothing/accessory/sweater/blue + name = "blue sweater" + icon_state = "sweater_blue" + item_state = "sweater_blue" + +/obj/item/clothing/accessory/sweater/nt + name = "nanotrasen sweater" + icon_state = "sweater_nt" + item_state = "sweater_nt" + +/obj/item/clothing/accessory/sweater/mint + name = "mint sweater" + icon_state = "sweater_mint" + item_state = "sweater_mint" + +/obj/item/clothing/accessory/sweater/shoulderless + name = "shoulderless sweater" + icon_state = "sweater_shoulderless" + item_state = "sweater_shoulderless" + +/obj/item/clothing/accessory/sweater/uglyxmas + name = "ugly xmas sweater" + icon_state = "sweater_uglyxmas" + item_state = "sweater_uglyxmas" + +/obj/item/clothing/accessory/sweater/flower + name = "flower sweater" + icon_state = "sweater_flower" + item_state = "sweater_flower" + +//////////////// +//Suit Jackets// +//////////////// + +/obj/item/clothing/accessory/suitjacket + name = "tan suit jacket" + desc = "For those times when you have to attend a fancy business meeting without wearing your pants." + icon_state = "jacket_tan" + item_state = "jacket_tan" + minimize_when_attached = FALSE + +/obj/item/clothing/accessory/suitjacket/charcoal + name = "charcoal suit jacket" + icon_state = "jacket_charcoal" + item_state = "jacket_charcoal" + +/obj/item/clothing/accessory/suitjacket/navy + name = "navy suit jacket" + icon_state = "jacket_navy" + item_state = "jacket_navy" + +/obj/item/clothing/accessory/suitjacket/burgundy + name = "burgundy suit jacket" + icon_state = "jacket_burgundy" + item_state = "jacket_burgundy" + +/obj/item/clothing/accessory/suitjacket/checkered + name = "checkered suit jacket" + icon_state = "jacket_checkered" + item_state = "jacket_checkered" + +/////////////////////// +//Tactical Turtlnecks// +/////////////////////// + +/obj/item/clothing/accessory/turtleneck + name = "black turtleneck" + desc = "Extra cool. Extra fool." + icon_state = "turtleneck" + item_state = "turtleneck" + minimize_when_attached = FALSE + +/obj/item/clothing/accessory/turtleneck/red + name = "red turtleneck" + icon_state = "turtleneck_red" + item_state = "turtleneck_red" + +/obj/item/clothing/accessory/turtleneck/comfy + name = "comfy turtleneck" + icon_state = "turtleneck_comfy" + item_state = "turtleneck_comfy" + +/obj/item/clothing/accessory/turtleneck/tactifool + name = "black sweaterneck" + desc = "Extra fool. Extra cool." + icon_state = "tactifool" + item_state = "tactifool" + +/obj/item/clothing/accessory/turtleneck/tactifool/green + name = "green sweaterneck" + icon_state = "tactifool_green" + item_state = "tactifool_green" + +/obj/item/clothing/accessory/turtleneck/tactifool/blue + name = "blue sweaterneck" + icon_state = "tactifool_blue" + item_state = "tactifool_blue" + +/obj/item/clothing/accessory/turtleneck/tactifool/syndicate + name = "tactifool sweaterneck" + icon_state = "tactifool_syndicate" + item_state = "tactifool_syndicate" + +///////////////// +//Miscellaneous// +///////////////// + /obj/item/clothing/accessory/maidapron name = "maid apron" desc = "The best part of a maid costume." diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index c93cefeae9..a76bf41e62 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -46,6 +46,17 @@ desc = "Some tan pants. You look like a white collar worker with these on." icon_state = "tanpants" +/obj/item/clothing/under/pants/polypants/polychromic + name = "polychromic pants" + desc = "Some stylish pair of pants made from polychrome." + icon_state = "polypants" + item_state = "polypants" + var/list/poly_colors = list("#75634F", "#3D3D3D", "#575757") + +/obj/item/clothing/under/pants/polypants/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 3) + /obj/item/clothing/under/pants/track name = "track pants" desc = "A pair of track pants, for the athletic." diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index 87e6e94b6b..b9f55e695a 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -91,6 +91,12 @@ icon_state = "tan_suit" item_state = "tan_suit" +/obj/item/clothing/under/suit/charismatic_suit + name = "charismatic suit" + desc = "Luck is for losers, baby." + icon_state = "charismatic_suit" + item_state = "charismatic_suit" + /obj/item/clothing/under/suit/white name = "white suit" desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!" diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index 06318df4f5..90ebe7f6a1 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -144,22 +144,23 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 if(L && (L.density || prob(10))) L.ex_act(EXPLODE_HEAVY) -obj/effect/immovablerod/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags) - if(ishuman(user)) - var/mob/living/carbon/human/U = user - if(U.job in list("Research Director")) - playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) - for(var/mob/M in urange(8, src)) - if(!M.stat) - shake_camera(M, 2, 3) - if(wizard) - U.visible_message("[src] transforms into [wizard] as [U] suplexes them!", "As you grab [src], it suddenly turns into [wizard] as you suplex them!") - to_chat(wizard, "You're suddenly jolted out of rod-form as [U] somehow manages to grab you, slamming you into the ground!") - wizard.Stun(60) - wizard.apply_damage(25, BRUTE) - qdel(src) - else - U.visible_message("[U] suplexes [src] into the ground!", "You suplex [src] into the ground!") - new /obj/structure/festivus/anchored(drop_location()) - new /obj/effect/anomaly/flux(drop_location()) - qdel(src) +/obj/effect/immovablerod/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags) + if(!ishuman(user)) + return + var/mob/living/carbon/human/U = user + if(U.job in list("Research Director")) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + for(var/mob/M in urange(8, src)) + if(!M.stat) + shake_camera(M, 2, 3) + if(wizard) + U.visible_message("[src] transforms into [wizard] as [U] suplexes them!", "As you grab [src], it suddenly turns into [wizard] as you suplex them!") + to_chat(wizard, "You're suddenly jolted out of rod-form as [U] somehow manages to grab you, slamming you into the ground!") + wizard.Stun(60) + wizard.apply_damage(25, BRUTE) + qdel(src) + else + U.visible_message("[U] suplexes [src] into the ground!", "You suplex [src] into the ground!") + new /obj/structure/festivus/anchored(drop_location()) + new /obj/effect/anomaly/flux(drop_location()) + qdel(src) diff --git a/code/modules/events/travelling_trader.dm b/code/modules/events/travelling_trader.dm index 1f9c69a9f0..2f7b9dbea5 100644 --- a/code/modules/events/travelling_trader.dm +++ b/code/modules/events/travelling_trader.dm @@ -25,14 +25,14 @@ var/datum/effect_system/smoke_spread/smoke = new smoke.set_up(1, spawn_location) smoke.start() - trader.visible_message("[src] suddenly appears in a puff of smoke!") + trader.visible_message("[trader] suddenly appears in a puff of smoke!") /datum/round_event/travelling_trader/announce(fake) priority_announce("A mysterious figure has been detected on sensors at [get_area(spawn_location)]", "Mysterious Figure") /datum/round_event/travelling_trader/end() - if(trader) - trader.visible_message("The [src] has given up on waiting!") + if(trader) // the /datum/round_event/travelling_trader has given up on waiting! + trader.visible_message("The [trader] has given up on waiting!") qdel(trader) //the actual trader mob @@ -188,18 +188,18 @@ /mob/living/simple_animal/hostile/netherworld/blankbody = 1, /mob/living/simple_animal/hostile/retaliate/goose = 1) -mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize() +/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize() + . = ..() acceptance_speech = pick(list("This lifeform shall make for a great stew, thank you.", "This lifeform shall be of a true use to our cause, thank you.", "The lifeform is adequate. Goodbye.", "This lifeform shall make a great addition to my collection.")) - ..() -/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/check_item(var/obj/item/supplied_item) //item is likely to be in contents of whats supplied +/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/check_item(obj/item/supplied_item) //item is likely to be in contents of whats supplied for(var/atom/something in supplied_item.contents) if(istype(something, requested_item)) qdel(something) //typically things holding mobs release the mob when the container is deleted, so delete the mob first here return TRUE return FALSE -/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/give_reward(var/mob/giver) //the reward is actually given in a jar, because releasing it onto the station might be a bad idea +/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/give_reward(mob/giver) //the reward is actually given in a jar, because releasing it onto the station might be a bad idea var/obj/item/pet_carrier/bluespace/jar = new(get_turf(src)) var/chosen_animal = pickweight(possible_rewards) var/mob/living/new_animal = new chosen_animal(jar) @@ -223,6 +223,7 @@ mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize() /obj/structure/reagent_dispensers/keg/quintuple_sec = 3) /mob/living/carbon/human/dummy/travelling_trader/bartender/Initialize() //pick a subtype of ethanol that isn't found in the default set of the booze dispensers reagents + . = ..() // RETURN A HINT. requested_item = pick(subtypesof(/datum/reagent/consumable/ethanol) - list(/datum/reagent/consumable/ethanol/beer, /datum/reagent/consumable/ethanol/kahlua, /datum/reagent/consumable/ethanol/whiskey, @@ -242,7 +243,6 @@ mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize() /datum/reagent/consumable/ethanol/triple_sec, /datum/reagent/consumable/ethanol/sake, /datum/reagent/consumable/ethanol/applejack)) - ..() /mob/living/carbon/human/dummy/travelling_trader/bartender/check_item(var/obj/item/supplied_item) //you need to check its reagents if(istype(supplied_item, /obj/item/reagent_containers)) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 07039139bf..807251111a 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -17,10 +17,7 @@ var/isGlass = TRUE //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it /obj/item/reagent_containers/food/drinks/on_reagent_change(changetype) - if (gulp_size < 5) - gulp_size = 5 - else - gulp_size = max(round(reagents.total_volume / 5), 5) + gulp_size = max(round(reagents.total_volume / 5), 5) /obj/item/reagent_containers/food/drinks/attack(mob/living/M, mob/user, def_zone) if(!reagents || !reagents.total_volume) diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 8e5069925f..9602c1d24e 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -52,10 +52,7 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change(changetype) cut_overlays() - if (gulp_size < 15) - gulp_size = 15 - else - gulp_size = max(round(reagents.total_volume / 15), 15) + gulp_size = max(round(reagents.total_volume / 15), 15) if (reagents.reagent_list.len > 0) var/datum/reagent/largest_reagent = reagents.get_master_reagent() diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index be07826a7f..67ac2ee59b 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -308,7 +308,7 @@ tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1) foodtype = GRAIN | DAIRY | SUGAR -obj/item/reagent_containers/food/snacks/store/cake/pound_cake +/obj/item/reagent_containers/food/snacks/store/cake/pound_cake name = "pound cake" desc = "A condensed cake made for filling people up quickly." icon_state = "pound_cake" diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index a4287d3d19..5329829637 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -54,7 +54,7 @@ H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!") playsound(H, "desceration", 50, TRUE) if(!H.is_mouth_covered()) - reagents.trans_to(H, 15, log = TRUE) //Cream pie combat + reagents.trans_to(H, 15, log = "creampie hit") //Cream pie combat if(!H.creamed) // one layer at a time H.add_overlay(creamoverlay) H.creamed = TRUE diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index fecc9467a1..ebde504ec0 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -79,7 +79,7 @@ God bless America. to_chat(user, "There's nothing to dissolve [I] in!") return user.visible_message("[user] drops [I] into [src].", "You dissolve [I] in [src].") - I.reagents.trans_to(src, I.reagents.total_volume) + I.reagents.trans_to(src, I.reagents.total_volume, log = "pill into deep fryer") qdel(I) return if(istype(I,/obj/item/clothing/head/mob_holder)) diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 6bdf3cff8e..5954788d5c 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -151,10 +151,13 @@ to_chat(user, "You need more space cleaner!") return TRUE - if(istype(O, /obj/item/soap)) - var/obj/item/soap/P = O + if(istype(O, /obj/item/soap) || istype(O, /obj/item/reagent_containers/rag)) + var/cleanspeed = 50 + if(istype(O, /obj/item/soap)) + var/obj/item/soap/used_soap = O + cleanspeed = used_soap.cleanspeed user.visible_message("[user] starts to clean \the [src].", "You start to clean \the [src]...") - if(do_after(user, P.cleanspeed, target = src)) + if(do_after(user, cleanspeed, target = src)) user.visible_message("[user] has cleaned \the [src].", "You clean \the [src].") dirty = 0 update_icon() diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm index c376ab4025..3d3b1ac0fd 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm @@ -21,7 +21,7 @@ ) result = /obj/item/reagent_containers/food/snacks/donut/chaos -datum/crafting_recipe/food/donut/meat +/datum/crafting_recipe/food/donut/meat time = 15 name = "Meat donut" reqs = list( diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index e5cd36cad6..e94cc17041 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -115,13 +115,20 @@ return FALSE var/valid = FALSE var/list/checked = program_cache.Copy() - if(obj_flags & EMAGGED) - checked |= emag_programs for(var/prog in checked) var/list/P = prog if(P["type"] == program_to_load) valid = TRUE break + if(obj_flags & EMAGGED) //split up into separate for loops instead of together so we can adminlog it + checked = emag_programs.Copy() + for(var/prog in checked) + var/list/P = prog + if(P["type"] == program_to_load) + valid = TRUE + log_game("[key_name(usr)] has loaded the restricted holodeck program [program_to_load]") + message_admins("[ADMIN_LOOKUPFLW(usr)] has loaded the restricted holodeck program [program_to_load]") + break if(!valid) return FALSE @@ -134,6 +141,14 @@ nerf(obj_flags & EMAGGED) obj_flags ^= EMAGGED say("Safeties restored. Restarting...") + if(obj_flags & EMAGGED) + to_chat(usr,"You vastly increase projector power and override the safety and security protocols.") + log_game("[key_name(usr)] has disabled safeties on the holodeck computer") + message_admins("[ADMIN_LOOKUPFLW(usr)] has disabled safeties on the holodeck computer") + else + to_chat(usr,"You restore the safeties to the holodeck.") + log_game("[key_name(usr)] has reenabled safeties on the holodeck computer") + message_admins("[ADMIN_LOOKUPFLW(usr)] has reenabled safeties on the holodeck computer") /obj/machinery/computer/holodeck/process() if(damaged && prob(10)) @@ -179,6 +194,7 @@ to_chat(user, "You vastly increase projector power and override the safety and security protocols.") say("Warning. Automatic shutoff and derezzing protocols have been corrupted. Please call Nanotrasen maintenance and do not use the simulator.") log_game("[key_name(user)] emagged the Holodeck Control Console") + message_admins("[ADMIN_LOOKUPFLW(user)] emagged the Holodeck Control Console.") nerf(!(obj_flags & EMAGGED)) /obj/machinery/computer/holodeck/emp_act(severity) diff --git a/code/modules/hydroponics/grown/cotton.dm b/code/modules/hydroponics/grown/cotton.dm index beff751479..daaf71c626 100644 --- a/code/modules/hydroponics/grown/cotton.dm +++ b/code/modules/hydroponics/grown/cotton.dm @@ -34,16 +34,14 @@ /obj/item/grown/cotton/attack_self(mob/user) user.show_message("You pull some [cotton_name] out of the [name]!", MSG_VISUAL) - var/seed_modifier = 0 - if(seed) - seed_modifier = round(seed.potency / 25) - var/obj/item/stack/cotton = new cotton_type(user.loc, 1 + seed_modifier) - var/old_cotton_amount = cotton.amount - for(var/obj/item/stack/ST in user.loc) - if(ST != cotton && istype(ST, cotton_type) && ST.amount < ST.max_amount) - ST.attackby(cotton, user) - if(cotton.amount > old_cotton_amount) - to_chat(user, "You add the newly-formed [cotton_name] to the stack. It now contains [cotton.amount] [cotton_name].") + var/cottonAmt = 1 + round(seed.potency / 25) // cotton inhand we're holding + for(var/obj/item/grown/cotton/ctn in user.loc) // cotton on the floor + if(ctn.type != type) + continue + cottonAmt += 1 + round(ctn.seed.potency / 25) + qdel(ctn) + new cotton_type(user.drop_location(), cottonAmt) + // above code stolen from grass qdel(src) //reinforced mutated variant diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 8467d00124..e186364cff 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -92,6 +92,11 @@ return BULLET_ACT_HIT else if(istype(Proj , /obj/item/projectile/energy/florayield)) return myseed.bullet_act(Proj) + else if(istype(Proj , /obj/item/projectile/energy/florarevolution)) + if(myseed) + if(myseed.mutatelist.len > 0) + myseed.instability = (myseed.instability/2) + mutatespecie() else return ..() @@ -384,7 +389,6 @@ /obj/machinery/hydroponics/proc/hardmutate() mutate(4, 10, 2, 4, 50, 4, 10, 3) - /obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! if(!myseed || dead) return @@ -523,12 +527,13 @@ else if(istype(O, /obj/item/seeds) && !istype(O, /obj/item/seeds/sample)) if(!myseed) if(istype(O, /obj/item/seeds/kudzu)) - investigate_log("had Kudzu planted in it by [key_name(user)] at [AREACOORD(src)]","kudzu") + investigate_log("had Kudzu planted in it by [key_name(user)] at [AREACOORD(src)]", INVESTIGATE_BOTANY) if(!user.transferItemToLoc(O, src)) return to_chat(user, "You plant [O].") dead = FALSE myseed = O + investigate_log("planting: [user] planted [O] with traits [english_list(myseed)] and reagents [english_list_assoc(myseed.reagents_add)] and potency [myseed.potency]", INVESTIGATE_BOTANY) TRAY_NAME_UPDATE age = 1 plant_health = myseed.endurance @@ -600,7 +605,34 @@ desc = initial(desc) weedlevel = 0 //Has a side effect of cleaning up those nasty weeds update_icon() - + else if(istype(O, /obj/item/gun/energy/floragun)) + var/obj/item/gun/energy/floragun/flowergun = O + if(flowergun.cell.charge < flowergun.cell.maxcharge) + to_chat(user, "[flowergun] must be fully charged to lock in a mutation!") + return + if(!myseed) + to_chat(user, "[src] is empty!") + return + if(myseed.endurance <= 20) + to_chat(user, "[myseed.plantname] isn't hardy enough to sequence its mutation!") + return + if(!myseed.mutatelist) + to_chat(user, "[myseed.plantname] has nothing else to mutate into!") + return + else + var/list/fresh_mut_list = list() + for(var/muties in myseed.mutatelist) + var/obj/item/seeds/another_mut = new muties + fresh_mut_list[another_mut.plantname] = muties + var/locked_mutation = (input(user, "Select a mutation to lock.", "Plant Mutation Locks") as null|anything in sortList(fresh_mut_list)) + if(!user.canUseTopic(src, BE_CLOSE) || !locked_mutation) + return + myseed.mutatelist = list(fresh_mut_list[locked_mutation]) + myseed.endurance = (myseed.endurance/2) + flowergun.cell.use(flowergun.cell.charge) + flowergun.update_icon() + to_chat(user, "[myseed.plantname]'s mutation was set to [locked_mutation], depleting [flowergun]'s cell!") + return else return ..() diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 2dc80cd8fc..577635cd1c 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -24,7 +24,7 @@ var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested. var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways. var/growthstages = 6 // Amount of growth sprites the plant has. - var/instability = 5 //Chance that a plant will mutate in each stage of it's life. + var/instability = 5 //Chance that a plant will mutate in each stage of it's life. var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to CentCom. var/list/mutatelist = list() // The type of plants that this plant can mutate into. var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info. @@ -105,7 +105,7 @@ S.reagents_add = reagents_add.Copy() // Faster than grabbing the list from genes. return S -obj/item/seeds/proc/is_gene_forbidden(typepath) +/obj/item/seeds/proc/is_gene_forbidden(typepath) return (typepath in forbiddengenes) @@ -188,6 +188,8 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) ///The Number of products produced by the plant, typically the yield. var/product_count = getYield() + parent.investigate_log("manual harvest by [key_name(user)] of [getYield()] of [src], with seed traits [english_list(genes)] and reagents_add [english_list_assoc(reagents_add)] and potency [potency].", INVESTIGATE_BOTANY) + while(t_amount < product_count) var/obj/item/reagent_containers/food/snacks/grown/t_prod if(instability >= 30 && (seed_flags & MUTATE_EARLY) && LAZYLEN(mutatelist) && prob(instability/3)) diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index f90b584d76..92d2aa270f 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -378,7 +378,7 @@ a creative player the means to solve many problems. Circuits are held inside an // Checks if the target object is reachable. Useful for various manipulators and manipulator-like objects. -/obj/item/integrated_circuit/proc/check_target(atom/target, exclude_contents = FALSE, exclude_components = FALSE, exclude_self = FALSE) +/obj/item/integrated_circuit/proc/check_target(atom/target, exclude_contents = FALSE, exclude_components = FALSE, exclude_self = FALSE, exclude_outside = FALSE) if(!target) return FALSE @@ -394,7 +394,7 @@ a creative player the means to solve many problems. Circuits are held inside an if(target == assembly.battery) return FALSE - if(target.Adjacent(acting_object) && isturf(target.loc)) + if(!exclude_outside && target.Adjacent(acting_object) && isturf(target.loc)) return TRUE if(!exclude_contents && (target in acting_object.GetAllContents())) diff --git a/code/modules/integrated_electronics/subtypes/atmospherics.dm b/code/modules/integrated_electronics/subtypes/atmospherics.dm index 26ac3080de..d449775bd1 100644 --- a/code/modules/integrated_electronics/subtypes/atmospherics.dm +++ b/code/modules/integrated_electronics/subtypes/atmospherics.dm @@ -292,7 +292,7 @@ activate_pin(2) // Required for making the connector port script work -obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir() +/obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir() return air_contents diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index eac16d2950..e32f8daa2d 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -186,6 +186,8 @@ AM.forceMove(src) /obj/item/integrated_circuit/manipulation/grabber/proc/drop(obj/item/AM, turf/T = drop_location()) + if(!check_target(AM, FALSE, TRUE, TRUE, TRUE)) + return var/atom/A = get_object() A.investigate_log("dropped ([AM]) from [src].", INVESTIGATE_CIRCUIT) AM.forceMove(T) diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm index 96a732d08f..25fa7058fb 100644 --- a/code/modules/integrated_electronics/subtypes/weaponized.dm +++ b/code/modules/integrated_electronics/subtypes/weaponized.dm @@ -137,6 +137,10 @@ //Shooting Code: A.preparePixelProjectile(target, src) A.fire() + if(ismob(loc.loc)) + installed_gun.shoot_live_shot(loc.loc) + else + installed_gun.shoot_live_shot() //Shitcode, but we don't have much of a choice log_attack("[assembly] [REF(assembly)] has fired [installed_gun].") return A diff --git a/code/modules/keybindings/keybind/carbon.dm b/code/modules/keybindings/keybind/carbon.dm index 46cb5cd0ac..50ec29ff5e 100644 --- a/code/modules/keybindings/keybind/carbon.dm +++ b/code/modules/keybindings/keybind/carbon.dm @@ -60,3 +60,14 @@ /datum/keybinding/carbon/select_harm_intent/down(client/user) user.mob?.a_intent_change(INTENT_HARM) return TRUE + +/datum/keybinding/carbon/give + hotkey_keys = list("CtrlG") + name = "Give_Item" + full_name = "Give item" + description = "Give the item you're currently holding" + +/datum/keybinding/carbon/give/down(client/user) + var/mob/living/carbon/C = user.mob + C.give() + return TRUE diff --git a/code/modules/language/signlanguage.dm b/code/modules/language/signlanguage.dm new file mode 100644 index 0000000000..97705d4a4c --- /dev/null +++ b/code/modules/language/signlanguage.dm @@ -0,0 +1,12 @@ +/datum/language/signlanguage + name = "Space Sign Language" + desc = "Those who cannot speak can learn this instead." + speech_verb = "signs" + whisper_verb = "gestures" + key = "9" + flags = TONGUELESS_SPEECH + + syllables = list(".") + + icon_state = "ssl" + default_priority = 90 diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 9c39601b4e..6af1c2118c 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -522,7 +522,7 @@ max_charges = 1 item_flags = NEEDS_PERMIT | NOBLUDGEON w_class = WEIGHT_CLASS_BULKY - force = 18 + force = 15 /obj/item/ammo_casing/magic/hook name = "hook" @@ -536,11 +536,11 @@ icon_state = "hook" icon = 'icons/obj/lavaland/artefacts.dmi' pass_flags = PASSTABLE - damage = 25 - armour_penetration = 100 + damage = 15 + armour_penetration = 10 + knockdown = 5 damage_type = BRUTE hitsound = 'sound/effects/splat.ogg' - knockdown = 30 var/chain /obj/item/projectile/hook/fire(setAngle) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 0268d32a6b..d6c4dfae34 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -250,6 +250,8 @@ if(points) if(I) I.mining_points += points + if(usr.client) + usr.client.increment_progress("miner", points) points = 0 else to_chat(usr, "No ID detected.") diff --git a/code/modules/mining/point_bank.dm b/code/modules/mining/point_bank.dm index f18b62635f..f467b94de5 100644 --- a/code/modules/mining/point_bank.dm +++ b/code/modules/mining/point_bank.dm @@ -20,25 +20,6 @@ data["totalPoints"] = points return data -/obj/machinery/mineral/ore_redemption/ui_act(action, params) - if(..()) - return - switch(action) - if("Claim") - var/mob/M = usr - var/obj/item/card/id/I = M.get_idcard(TRUE) - if(points) - if(I) - I.mining_points += points - if(usr.client) - usr.client.increment_progress("miner", points) - points = 0 - else - to_chat(usr, "No ID detected.") - else - to_chat(usr, "No points to claim.") - return TRUE - /obj/machinery/point_bank/power_change() ..() update_icon() diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 435fd000c2..4afa7234f9 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -146,10 +146,58 @@ if(dbflags & DB_FLAG_AGE_CONFIRMATION_INCOMPLETE) //they have not completed age gate var/age_verification = age_gate() if(age_verification != 1) - client.add_system_note("Automated-Age-Gate", "Failed automatic age gate process") + client.add_system_note("Automated-Age-Gate", "Failed automatic age gate process.") //ban them and kick them - AddBan(client.ckey, client.computer_id, "SYSTEM BAN - Inputted date during join verification was under 18 years of age. Contact administration on discord for verification.", "SYSTEM", FALSE, null, client.address) + + //parameters used by sql line, easier to read: + var/bantype_str = "ADMIN_PERMABAN" + var/reason = "SYSTEM BAN - Inputted date during join verification was under 18 years of age. Contact administration on discord for verification." + var/duration = -1 + var/sql_ckey = sanitizeSQL(client.ckey) + var/computerid = client.computer_id + if(!computerid) + computerid = "0" + var/sql_computerid = sanitizeSQL(computerid) + var/ip = client.address + if(!ip) + ip = "0.0.0.0" + var/sql_ip = sanitizeSQL(ip) + + //parameter not used as there's no job but i want to fill out all parameters for the insert line + var/sql_job + + // these are typically the banning admin's, but it's the system so we leave them null, but they're still here for the sake of a full set of values + var/sql_a_ckey + var/sql_a_computerid + var/sql_a_ip + + // record all admins and non-admins online at the time + var/who + for(var/client/C in GLOB.clients) + if(!who) + who = "[C]" + else + who += ", [C]" + + var/adminwho + for(var/client/C in GLOB.admins) + if(!adminwho) + adminwho = "[C]" + else + adminwho += ", [C]" + + var/sql = "INSERT INTO [format_table_name("ban")] (`bantime`,`server_ip`,`server_port`,`round_id`,`bantype`,`reason`,`job`,`duration`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`) VALUES (Now(), INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]', '[GLOB.round_id]', '[bantype_str]', '[reason]', '[sql_job]', [(duration)?"[duration]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[sql_ckey]', '[sql_computerid]', INET_ATON('[sql_ip]'), '[sql_a_ckey]', '[sql_a_computerid]', INET_ATON('[sql_a_ip]'), '[who]', '[adminwho]')" + var/datum/DBQuery/query_add_ban = SSdbcore.NewQuery(sql) + qdel(query_add_ban) + + // announce this + message_admins("[html_encode(client.ckey)] has been banned for failing the automatic age gate.") + send2irc("[html_encode(client.ckey)] has been banned for failing the automatic age gate.") + + // removing the client disconnects them qdel(client) + + return FALSE else //they claim to be of age, so allow them to continue and update their flags diff --git a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm index 822fcf960d..d974672490 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm @@ -1,4 +1,4 @@ -datum/sprite_accessory/caps +/datum/sprite_accessory/caps icon = 'icons/mob/mutant_bodyparts.dmi' color_src = HAIR relevant_layers = list(BODY_ADJ_LAYER) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm index 55ab18c20c..0c22a85886 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -13,6 +13,10 @@ name = "Bald" icon_state = "bald" +/datum/sprite_accessory/hair/adhara + name = "Adhara" + icon_state = "hair_adhara" + /datum/sprite_accessory/hair/afro name = "Afro" icon_state = "hair_afro" @@ -29,6 +33,14 @@ name = "Ahoge" icon_state = "hair_antenna" +/datum/sprite_accessory/hair/amazon + name = "Amazon" + icon_state = "hair_amazon" + +/datum/sprite_accessory/hair/anita + name = "Anita" + icon_state = "hair_anita" + /datum/sprite_accessory/hair/balding name = "Balding Hair" icon_state = "hair_e" @@ -61,6 +73,18 @@ name = "Beehive 2" icon_state = "hair_beehive2" +/datum/sprite_accessory/hair/belenko + name = "Beleneko" + icon_state = "hair_belenko" + +/datum/sprite_accessory/hair/belenkotied + name = "Belenko (Tied)" + icon_state = "hair_belenkotied" + +/datum/sprite_accessory/hair/belle + name = "Belle" + icon_state = "hair_belle" + /datum/sprite_accessory/hair/bob name = "Bob Hair" icon_state = "hair_bob" @@ -309,6 +333,10 @@ name = "Flow Hair" icon_state = "hair_f" +/datum/sprite_accessory/hair/fluffy + name = "Fluffy" + icon_state = "hair_fluffy" + /datum/sprite_accessory/hair/fringetail name = "Fringe Tail" icon_state = "hair_fringetail" @@ -365,6 +393,10 @@ name = "Hitop" icon_state = "hair_hitop" +/datum/sprite_accessory/hair/inkling + name = "Inkling" + icon_state = "hair_inkling" + /datum/sprite_accessory/hair/jade name = "Jade" icon_state = "hair_jade" @@ -373,6 +405,10 @@ name = "Jensen" icon_state = "hair_jensen" +/datum/sprite_accessory/hair/jessica + name = "Jessica" + icon_state = "hair_jessica" + /datum/sprite_accessory/hair/joestar name = "Joestar" icon_state = "hair_joestar" @@ -389,6 +425,10 @@ name = "Kusanagi" icon_state = "hair_kusanagi" +/datum/sprite_accessory/hair/kleeia + name = "Kleeia" + icon_state = "hair_kleeia" + /datum/sprite_accessory/hair/long name = "Long Hair 1" icon_state = "hair_long" @@ -445,6 +485,10 @@ name = "Mohawk" icon_state = "hair_d" +/datum/sprite_accessory/hair/newyou + name = "New You" + icon_state = "hair_newyou" + /datum/sprite_accessory/hair/reversemohawk name = "Mohawk (Reverse)" icon_state = "hair_reversemohawk" @@ -575,6 +619,10 @@ name = "Ponytail (Side) 4" icon_state = "hair_sidetail4" +/datum/sprite_accessory/hair/sharptail + name = "Ponytail (Sharp)" + icon_state = "hair_sharptail" + /datum/sprite_accessory/hair/spikytail name = "Ponytail (Spiky)" icon_state = "hair_spikyponytail" @@ -679,6 +727,26 @@ name = "Skinhead" icon_state = "hair_skinhead" +/datum/sprite_accessory/hair/simple + name = "Simple" + icon_state = "hair_simple" + +/datum/sprite_accessory/hair/skrellvshort + name = "Skrell Replicant (Very Short)" + icon_state = "hair_skrellvshort" + +/datum/sprite_accessory/hair/skrellshort + name = "Skrell Replicant (Short)" + icon_state = "hair_skrellshort" + +/datum/sprite_accessory/hair/skrell + name = "Skrell Replicant (Average)" + icon_state = "hair_skrell" + +/datum/sprite_accessory/hair/skrelllong + name = "Skrell Replicant (Long)" + icon_state = "hair_skrelllong" + /datum/sprite_accessory/hair/sleaze name = "Sleaze" icon_state = "hair_sleaze" @@ -699,6 +767,10 @@ name = "Spiky 3" icon_state = "hair_spiky2" +/datum/sprite_accessory/hair/supernova + name = "Supernova" + icon_state = "hair_supernova" + /datum/sprite_accessory/hair/swept name = "Swept Back Hair" icon_state = "hair_swept" @@ -743,6 +815,10 @@ name = "Trimmed (Flat)" icon_state = "hair_trimflat" +/datum/sprite_accessory/hair/twincurls + name = "Twincurls" + icon_state = "hair_twincurls" + /datum/sprite_accessory/hair/twintails name = "Twintails" icon_state = "hair_twintail" @@ -787,6 +863,10 @@ name = "Very Short Over Eye (Alt)" icon_state = "hair_veryshortovereyealternate" +/datum/sprite_accessory/hair/vivi + name = "Vivi" + icon_state = "hair_vivi" + /datum/sprite_accessory/hair/volaju name = "Volaju" icon_state = "hair_volaju" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm index cd55a17e3c..78517b003e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm @@ -11,6 +11,11 @@ // please make sure they're sorted alphabetically and categorized +/datum/sprite_accessory/underwear/socks/garter + name = "Garter" + icon_state = "garter" + has_color = TRUE + /datum/sprite_accessory/underwear/socks/socks_knee name = "Knee-high" icon_state = "socks_knee" @@ -83,6 +88,10 @@ name = "Pantyhose" icon_state = "pantyhose" +/datum/sprite_accessory/underwear/socks/pantyhose_ripped + name = "Pantyhose - Ripped" + icon_state = "pantyhose_ripped" + /datum/sprite_accessory/underwear/socks/socks_short name = "Short" icon_state = "socks_short" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 6135d42569..a964be3f8a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -757,7 +757,7 @@ icon_state = "husky" matrixed_sections = MATRIX_RED_GREEN -datum/sprite_accessory/tails/mam_tails/insect +/datum/sprite_accessory/tails/mam_tails/insect name = "Insect" icon_state = "insect" matrixed_sections = MATRIX_RED diff --git a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm index 1be02c207e..364485fe8a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm @@ -343,6 +343,20 @@ icon_state = "fishnet_body" gender = FEMALE +/datum/sprite_accessory/underwear/top/shibari + name = "Shibari Ropes" + icon_state = "shibari" + gender = FEMALE + has_color = TRUE + covers_chest = FALSE + +/datum/sprite_accessory/underwear/top/shibari_sleeved + name = "Shibari Ropes - sleeves" + icon_state = "shibari_sleeves" + gender = FEMALE + has_color = TRUE + covers_chest = FALSE + /datum/sprite_accessory/underwear/top/swimsuit name = "Swimsuit Top" icon_state = "bra_swimming" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index dc53f9487f..783f55d12d 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -556,7 +556,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/list/dest = list() //List of possible destinations (mobs) var/target = null //Chosen target. - dest += getpois(mobs_only=1) //Fill list, prompt user with list + dest += getpois(mobs_only = TRUE) //Fill list, prompt user with list target = input("Please, select a player!", "Jump to Mob", null, null) as null|anything in dest if (!target)//Make sure we actually have a target @@ -893,7 +893,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if (!eye_name) return - var/mob/mob_eye = creatures[eye_name] + do_observe(creatures[eye_name]) + +/mob/dead/observer/proc/do_observe(mob/mob_eye) //Istype so we filter out points of interest that are not mobs if(client && mob_eye && istype(mob_eye)) client.eye = mob_eye diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index 3aa5f8e302..26494dcb34 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -1,5 +1,6 @@ /datum/orbit_menu var/mob/dead/observer/owner + var/auto_observe = FALSE /datum/orbit_menu/New(mob/dead/observer/new_owner) if(!istype(new_owner)) @@ -10,6 +11,7 @@ return GLOB.observer_state /datum/orbit_menu/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) if (!ui) ui = new(user, src, "Orbit") ui.open() @@ -18,15 +20,35 @@ if (..()) return - if (action == "orbit") - var/ref = params["ref"] - var/atom/movable/poi = (locate(ref) in GLOB.mob_list) || (locate(ref) in GLOB.poi_list) - if (poi != null) + switch(action) + if ("orbit") + var/ref = params["ref"] + var/atom/movable/poi = (locate(ref) in GLOB.mob_list) || (locate(ref) in GLOB.poi_list) + if (poi == null) + . = TRUE + return owner.ManualFollow(poi) + owner.reset_perspective(null) + if (auto_observe) + owner.do_observe(poi) + . = TRUE + if ("refresh") + update_static_data(owner, ui) + . = TRUE + if ("toggle_observe") + auto_observe = !auto_observe + if (auto_observe && owner.orbit_target) + owner.do_observe(owner.orbit_target) + else + owner.reset_perspective(null) /datum/orbit_menu/ui_data(mob/user) var/list/data = list() + data["auto_observe"] = auto_observe + return data +/datum/orbit_menu/ui_static_data(mob/user) + var/list/data = list() var/list/alive = list() var/list/antagonists = list() var/list/dead = list() @@ -34,7 +56,7 @@ var/list/misc = list() var/list/npcs = list() - var/list/pois = getpois(skip_mindless = 1) + var/list/pois = getpois(skip_mindless = TRUE, specify_dead_role = FALSE) for (var/name in pois) var/list/serialized = list() serialized["name"] = name @@ -80,7 +102,7 @@ data["npcs"] = npcs return data - + /datum/orbit_menu/ui_assets() . = ..() || list() . += get_asset_datum(/datum/asset/simple/orbit) diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index 09336d2fea..476bddded3 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -1,6 +1,6 @@ //This is the proc for gibbing a mob. Cannot gib ghosts. //added different sort of gibs and animations. N -/mob/proc/gib() +/mob/proc/gib(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion) return //This is the proc for turning a mob into ash. Mostly a copy of gib code (above). diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index e7ad67d240..f5970d9da2 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -4,7 +4,6 @@ gender = FEMALE //All xenos are girls!! dna = null faction = list(ROLE_ALIEN) - ventcrawler = VENTCRAWLER_ALWAYS sight = SEE_MOBS see_in_dark = 4 verb_say = "hisses" @@ -12,6 +11,10 @@ bubble_icon = "alien" type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab/xeno + /// Whether they can ventcrawl; this is set individually for 'humanoid' and 'royal' types + /// 'royal' types (Praetorian, Queen) cannot ventcrawl + var/can_ventcrawl + /// How much brute damage without armor piercing they do against mobs in melee var/meleeSlashHumanPower = 20 /// How much power they have for DefaultCombatKnockdown when attacking humans @@ -19,7 +22,6 @@ /// How much brute damage they do to simple animals var/meleeSlashSAPower = 35 - var/obj/item/card/id/wear_id = null // Fix for station bounced radios -- Skie var/has_fine_manipulation = 0 var/move_delay_add = 0 // movement delay to add @@ -40,6 +42,9 @@ create_internal_organs() + if(can_ventcrawl) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + . = ..() /mob/living/carbon/alien/create_internal_organs() diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index d0addbab21..0d2a1c0c59 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -20,6 +20,8 @@ bodyparts = list(/obj/item/bodypart/chest/alien, /obj/item/bodypart/head/alien, /obj/item/bodypart/l_arm/alien, /obj/item/bodypart/r_arm/alien, /obj/item/bodypart/r_leg/alien, /obj/item/bodypart/l_leg/alien) + can_ventcrawl = TRUE + //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/humanoid/Initialize() diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 91a61efea6..bcc83f14f9 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -2,7 +2,6 @@ //Common stuffs for Praetorian and Queen icon = 'icons/mob/alienqueen.dmi' status_flags = 0 - ventcrawler = VENTCRAWLER_NONE //pull over that ass too fat unique_name = 0 pixel_x = -16 bubble_icon = "alienroyal" @@ -10,6 +9,7 @@ layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper. butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 20, /obj/item/stack/sheet/animalhide/xeno = 3) + can_ventcrawl = FALSE meleeKnockdownPower = 125 meleeSlashHumanPower = 30 diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 8f0ef2b384..77c9a8c579 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -11,6 +11,8 @@ maxHealth = 25 health = 25 + can_ventcrawl = TRUE + var/amount_grown = 0 var/max_grown = 100 var/time_of_birth diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 45a0d82d2c..f143f6302d 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -434,6 +434,9 @@ legcuffed.forceMove(drop_location()) legcuffed = null I.dropped(src) + if(istype(I, /obj/item/restraints/legcuffs)) + var/obj/item/restraints/legcuffs/lgcf = I + lgcf.on_removed() update_inv_legcuffed() return else @@ -1229,3 +1232,25 @@ */ /mob/living/carbon/proc/get_biological_state() return BIO_FLESH_BONE + +/mob/living/carbon/altattackby(obj/item/W, mob/living/carbon/user, params) + if(user.incapacitated() || !user.Adjacent(src)) + return FALSE + if(W && user.a_intent == INTENT_HELP && W.can_give()) + user.give() + return TRUE + +/mob/living/carbon/verb/give_verb() + set src in oview(1) + set category = "IC" + set name = "Give" + + if(usr.incapacitated() || !usr.Adjacent(src)) + return + + if(!usr.get_active_held_item()) // Let me know if this has any problems -Yota + return + var/obj/item/I = usr.get_active_held_item() + var/mob/living/carbon/C = usr + if(I.can_give()) + C.give() diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index ee2f945b65..528848fb14 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -17,7 +17,7 @@ if(SSticker.mode) SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now -/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts) +/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion) var/atom/Tsec = drop_location() for(var/mob/M in src) if(M in stomach_contents) @@ -27,7 +27,7 @@ "You burst out of [src]!") ..() -/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts) +/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion) var/atom/Tsec = drop_location() if(!no_bodyparts) if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop. @@ -41,6 +41,8 @@ qdel(O) //so the brain isn't transfered to the head when the head drops. continue if(!(O.organ_flags & ORGAN_NO_DISMEMBERMENT) && check_zone(O.zone) == BODY_ZONE_CHEST) + if(was_explosion) + LAZYADD(O.acted_explosions, was_explosion.explosion_id) O.Remove() O.forceMove(Tsec) O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) @@ -50,13 +52,16 @@ if(I.organ_flags & ORGAN_NO_DISMEMBERMENT || (no_brain && istype(I, /obj/item/organ/brain)) || (no_organs && !istype(I, /obj/item/organ/brain))) qdel(I) continue + if(was_explosion) + LAZYADD(I.acted_explosions, was_explosion.explosion_id) I.Remove() I.forceMove(Tsec) I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) - -/mob/living/carbon/spread_bodyparts() +/mob/living/carbon/spread_bodyparts(no_brain, no_organs, datum/explosion/was_explosion) for(var/X in bodyparts) var/obj/item/bodypart/BP = X + if(was_explosion) + LAZYADD(BP.acted_explosions, was_explosion.explosion_id) BP.drop_limb() BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index df7ed66169..8660e115a6 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -281,11 +281,13 @@ dropItemToGround(pocket_item) if(!usr.can_hold_items() || !usr.put_in_hands(pocket_item)) pocket_item.forceMove(drop_location()) + log_combat(usr, src, "pickpocketed of item: [pocket_item]") else if(place_item) if(place_item.mob_can_equip(src, usr, pocket_id, FALSE, TRUE)) usr.temporarilyRemoveItemFromInventory(place_item, TRUE) equip_to_slot(place_item, pocket_id, TRUE) + log_combat(usr, src, "placed item [place_item] onto") //do nothing otherwise // Update strip window @@ -293,8 +295,9 @@ show_inv(usr) else // Display a warning if the user mocks up - if (!strip_silence) + if(!strip_silence) to_chat(src, "You feel your [pocket_side] pocket being fumbled with!") + log_combat(usr, src, "failed to [pocket_item ? "pickpocket item [pocket_item] from" : "place item [place_item] onto "]") if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY, null, FALSE)) // separate from first canusetopic @@ -938,43 +941,43 @@ admin_ticket_log(src, msg) /mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user) - if(pulling == target && grab_state >= GRAB_AGGRESSIVE && stat == CONSCIOUS) + var/GS_needed = istype(target, /mob/living/silicon/pai)? GRAB_PASSIVE : GRAB_AGGRESSIVE + if(pulling == target && grab_state >= GS_needed && stat == CONSCIOUS) //If they dragged themselves and we're currently aggressively grabbing them try to piggyback if(user == target && can_piggyback(target)) piggyback(target) return //If you dragged them to you and you're aggressively grabbing try to fireman carry them - else if(user != target) + else if(user == src) if(user.a_intent == INTENT_GRAB) fireman_carry(target) return . = ..() //src is the user that will be carrying, target is the mob to be carried -/mob/living/carbon/human/proc/can_piggyback(mob/living/carbon/target) - return (istype(target) && target.stat == CONSCIOUS) +/mob/living/carbon/human/proc/can_piggyback(mob/living/target) + return (iscarbon(target) || ispAI(target)) && target.stat == CONSCIOUS /mob/living/carbon/human/proc/can_be_firemanned(mob/living/carbon/target) - return (ishuman(target) && !CHECK_MOBILITY(target, MOBILITY_STAND)) + return (ishuman(target) && !CHECK_MOBILITY(target, MOBILITY_STAND)) || ispAI(target) /mob/living/carbon/human/proc/fireman_carry(mob/living/carbon/target) var/carrydelay = 50 //if you have latex you are faster at grabbing var/skills_space = "" //cobby told me to do this if(HAS_TRAIT(src, TRAIT_QUICKER_CARRY)) carrydelay = 30 - skills_space = "expertly" + skills_space = "expertly " else if(HAS_TRAIT(src, TRAIT_QUICK_CARRY)) carrydelay = 40 - skills_space = "quickly" + skills_space = "quickly " if(can_be_firemanned(target) && !incapacitated(FALSE, TRUE)) - visible_message("[src] starts [skills_space] lifting [target] onto their back..", + visible_message("[src] starts [skills_space]lifting [target] onto their back..", //Joe Medic starts quickly/expertly lifting Grey Tider onto their back.. - "[carrydelay < 35 ? "Using your gloves' nanochips, you" : "You"] [skills_space] start to lift [target] onto your back[carrydelay == 40 ? ", while assisted by the nanochips in your gloves.." : "..."]") + "[carrydelay < 35 ? "Using your gloves' nanochips, you" : "You"] [skills_space]start to lift [target] onto your back[carrydelay == 40 ? ", while assisted by the nanochips in your gloves.." : "..."]") //(Using your gloves' nanochips, you/You) ( /quickly/expertly) start to lift Grey Tider onto your back(, while assisted by the nanochips in your gloves../...) if(do_after(src, carrydelay, TRUE, target)) //Second check to make sure they're still valid to be carried if(can_be_firemanned(target) && !incapacitated(FALSE, TRUE)) - target.set_resting(FALSE, TRUE) buckle_mob(target, TRUE, TRUE, 90, 1, 0, TRUE) return visible_message("[src] fails to fireman carry [target]!") @@ -992,13 +995,13 @@ if(target.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) target.visible_message("[target] can't hang onto [src]!") return - buckle_mob(target, TRUE, TRUE, FALSE, 1, 2, FALSE) + buckle_mob(target, TRUE, TRUE, 0, 1, 2, FALSE) else visible_message("[target] fails to climb onto [src]!") else to_chat(target, "You can't piggyback ride [src] right now!") -/mob/living/carbon/human/buckle_mob(mob/living/target, force = FALSE, check_loc = TRUE, lying_buckle = FALSE, hands_needed = 0, target_hands_needed = 0, fireman = FALSE) +/mob/living/carbon/human/buckle_mob(mob/living/target, force = FALSE, check_loc = TRUE, lying_buckle = 0, hands_needed = 0, target_hands_needed = 0, fireman = FALSE) if(!force)//humans are only meant to be ridden through piggybacking and special cases return if(!is_type_in_typecache(target, can_ride_typecache)) @@ -1010,6 +1013,9 @@ riding_datum.ride_check_rider_restrained = TRUE if(buckled_mobs && ((target in buckled_mobs) || (buckled_mobs.len >= max_buckled_mobs)) || buckled) return + if(istype(target, /mob/living/silicon/pai)) + hands_needed = 1 + target_hands_needed = 0 var/equipped_hands_self var/equipped_hands_target if(hands_needed) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index a82151cc1d..772022a987 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -71,7 +71,7 @@ var/list/datum/bioware = list() var/creamed = FALSE //to use with creampie overlays - var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot)) + var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot, /mob/living/silicon/pai)) var/lastpuke = 0 var/account_id var/last_fire_update @@ -95,9 +95,10 @@ parry_efficiency_considered_successful = 0.01 parry_efficiency_to_counterattack = 0.01 parry_max_attacks = 3 - parry_cooldown = 30 - parry_failed_stagger_duration = 0 - parry_failed_clickcd_duration = 0.4 + parry_cooldown = 3 SECONDS + parry_failed_cooldown_duration = 1.5 SECONDS + parry_failed_stagger_duration = 1 SECONDS + parry_failed_clickcd_duration = 0.4 SECONDS parry_data = list( // yeah it's snowflake "UNARMED_PARRY_STAGGER" = 3 SECONDS, @@ -135,16 +136,16 @@ parry_imperfect_falloff_percent = 20 parry_efficiency_perfect = 100 parry_efficiency_perfect_override = list( - ATTACK_TYPE_PROJECTILE_TEXT = 60, + TEXT_ATTACK_TYPE_PROJECTILE = 60, ) parry_efficiency_considered_successful = 0.01 parry_efficiency_to_counterattack = 0.01 parry_max_attacks = INFINITY - parry_failed_cooldown_duration = 1.5 SECONDS - parry_failed_stagger_duration = 0 - parry_cooldown = 0 - parry_failed_clickcd_duration = 0.8 + parry_failed_cooldown_duration = 3 SECONDS + parry_failed_stagger_duration = 2 SECONDS + parry_cooldown = 3 SECONDS + parry_failed_clickcd_duration = 0.8 SECONDS parry_data = list( // yeah it's snowflake "UNARMED_PARRY_STAGGER" = 3 SECONDS, diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 94d7e84c6b..c3cdb3354f 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1425,8 +1425,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/damage = rand(user.dna.species.punchdamagelow, user.dna.species.punchdamagehigh) var/punchwoundbonus = user.dna.species.punchwoundbonus - var/puncherstam = user.getStaminaLoss() - var/puncherbrute = user.getBruteLoss() var/punchedstam = target.getStaminaLoss() var/punchedbrute = target.getBruteLoss() @@ -1434,7 +1432,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!SEND_SIGNAL(target, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) damage *= 1.2 if(!CHECK_MOBILITY(user, MOBILITY_STAND)) - damage *= 0.8 + damage *= 0.65 if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) damage *= 0.8 //END OF CITADEL CHANGES @@ -1446,19 +1444,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!affecting) //Maybe the bodypart is missing? Or things just went wrong.. affecting = target.get_bodypart(BODY_ZONE_CHEST) //target chest instead, as failsafe. Or hugbox? You decide. - var/miss_chance = 100//calculate the odds that a punch misses entirely. considers stamina and brute damage of the puncher. punches miss by default to prevent weird cases - if(attackchain_flags & ATTACK_IS_PARRY_COUNTERATTACK) - miss_chance = 0 - else - if(user.dna.species.punchdamagelow) - if(atk_verb == ATTACK_EFFECT_KICK) //kicks never miss (provided your species deals more than 0 damage) - miss_chance = 0 - else if(HAS_TRAIT(user, TRAIT_PUGILIST)) //pugilists, being good at Punching People, also never miss - miss_chance = 0 - else - miss_chance = min(10 + max(puncherstam * 0.5, puncherbrute * 0.5), 100) //probability of miss has a base of 10, and modified based on half brute total. Capped at max 100 to prevent weirdness in prob() - - if(!damage || !affecting || prob(miss_chance))//future-proofing for species that have 0 damage/weird cases where no zone is targeted + if(!damage || !affecting)//future-proofing for species that have 0 damage/weird cases where no zone is targeted playsound(target.loc, user.dna.species.miss_sound, 25, TRUE, -1) target.visible_message("[user]'s [atk_verb] misses [target]!", \ "You avoid [user]'s [atk_verb]!", "You hear a swoosh!", null, COMBAT_MESSAGE_RANGE, null, \ @@ -1796,12 +1782,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) "[M] attempted to touch you!", target = M, \ target_message = "You attempted to touch [H]!") return TRUE + if(M == H) + althelp(M, H, attacker_style) + return TRUE switch(M.a_intent) - if(INTENT_HELP) - if(M == H) - althelp(M, H, attacker_style) - return TRUE - return FALSE if(INTENT_DISARM) altdisarm(M, H, attacker_style) return TRUE @@ -1987,6 +1971,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.show_message("The radiation beam dissipates harmlessly through your body.") if(/obj/item/projectile/energy/florayield) H.show_message("The radiation beam dissipates harmlessly through your body.") + if(/obj/item/projectile/energy/florarevolution) + H.show_message("The radiation beam dissipates harmlessly through your body.") /datum/species/proc/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) // called before a projectile hit diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 7c35ade4f2..e0a9bcaa36 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -30,10 +30,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // /datum/species/dwarf/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() - var/dwarf_hair = pick("Beard (Dwarf)", "Beard (Very Long)", "Beard (Long)") //beard roullette var/mob/living/carbon/human/H = C - H.facial_hair_style = dwarf_hair - H.update_hair() H.AddElement(/datum/element/dwarfism, COMSIG_SPECIES_LOSS, src) RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) //We register handle_speech is being used. diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index ff0287d7b9..75aff774ce 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -801,11 +801,11 @@ /datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() - C.ventcrawler = VENTCRAWLER_NUDE + C.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /datum/species/golem/plastic/on_species_loss(mob/living/carbon/C) . = ..() - C.ventcrawler = initial(C.ventcrawler) + C.RemoveElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /datum/species/golem/bronze name = "Bronze Golem" diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index c25c5efb6c..697c3db35e 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -64,6 +64,11 @@ H.show_message("The radiation beam singes you!") if(/obj/item/projectile/energy/florayield) H.adjust_nutrition(30, NUTRITION_LEVEL_FULL) + if(/obj/item/projectile/energy/florarevolution) + H.show_message("The radiation beam leaves you feeling disoriented!") + H.Dizzy(15) + H.emote("flip") + H.emote("spin") /datum/species/pod/pseudo_weak name = "Anthromorphic Plant" diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 558fdc6594..5e07150ce6 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -169,7 +169,7 @@ if(istype(H, /mob/living/simple_animal)) var/mob/living/simple_animal/SA = H if((human_caster.blood_volume <= (BLOOD_VOLUME_BAD*human_caster.blood_ratio)) || (ventcrawl_nude_only && length(human_caster.get_equipped_items(include_pockets = TRUE)))) - SA.ventcrawler = FALSE + SA.RemoveElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) if(transfer_name) H.name = human_caster.name diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 96dab9e95d..e5ba022277 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -159,3 +159,57 @@ /mob/living/carbon/proc/get_holding_bodypart_of_item(obj/item/I) var/index = get_held_index_of_item(I) return index && hand_bodyparts[index] + +/** + * Proc called when giving an item to another player + * + * This handles creating an alert and adding an overlay to it + */ +/mob/living/carbon/proc/give(target) + var/obj/item/receiving = get_active_held_item() + if(!receiving) + to_chat(src, "You're not holding anything to give!") + return + visible_message("[src] is offering [receiving]", \ + "You offer [receiving]", null, 2) + var/mob/living/carbon/targets = list() + if(!target) + for(var/mob/living/carbon/C in orange(1, src)) + if(!CanReach(C)) + return + targets += C + else + targets += target + if(!targets) + return + for(var/mob/living/carbon/C in targets) + var/obj/screen/alert/give/G = C.throw_alert("[src]", /obj/screen/alert/give) + if(!G) + return + G.setup(C, src, receiving) + +/** + * Proc called when the player clicks the give alert + * + * Handles checking if the player taking the item has open slots and is in range of the giver + * Also deals with the actual transferring of the item to the players hands + * Arguments: + * * giver - The person giving the original item + * * I - The item being given by the giver + */ +/mob/living/carbon/proc/take(mob/living/carbon/giver, obj/item/I) + clear_alert("[giver]") + if(get_dist(src, giver) > 1) + to_chat(src, "[giver] is out of range! ") + return + if(!I || giver.get_active_held_item() != I) + to_chat(src, "[giver] is no longer holding the item they were offering! ") + return + if(!get_empty_held_indexes()) + to_chat(src, "You have no empty hands!") + return + if(!giver.temporarilyRemoveItemFromInventory(I)) + visible_message("[src] tries to hand over [I] but it's stuck to them....", \ + " You make a fool of yourself trying to give away an item stuck to your hands") + return + put_in_hands(I) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 1f3e0a1b81..d49059f839 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -6,7 +6,6 @@ icon_state = "" gender = NEUTER pass_flags = PASSTABLE - ventcrawler = VENTCRAWLER_NUDE mob_biotypes = MOB_ORGANIC|MOB_HUMANOID butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1) type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab/monkey @@ -29,6 +28,8 @@ create_bodyparts() create_internal_organs() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_NUDE) + . = ..() if (cubespawned) diff --git a/code/modules/mob/living/carbon/say.dm b/code/modules/mob/living/carbon/say.dm index 27d0e9cbaf..d75843a3e5 100644 --- a/code/modules/mob/living/carbon/say.dm +++ b/code/modules/mob/living/carbon/say.dm @@ -10,6 +10,8 @@ /mob/living/carbon/can_speak_vocal(message) if(silent) return 0 + if(get_message_language(message) == /datum/language/signlanguage && (handcuffed || (!src.get_bodypart(BODY_ZONE_L_ARM) && !src.get_bodypart(BODY_ZONE_R_ARM)) || get_num_held_items() == held_items.len)) + return 0 return ..() /mob/living/carbon/could_speak_language(datum/language/language) diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 688b0cf63e..be9cd0aabb 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -1,4 +1,4 @@ -/mob/living/gib(no_brain, no_organs, no_bodyparts) +/mob/living/gib(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion) var/prev_lying = lying if(stat != DEAD) death(1) @@ -6,22 +6,22 @@ if(!prev_lying) gib_animation() - spill_organs(no_brain, no_organs, no_bodyparts) + spill_organs(no_brain, no_organs, no_bodyparts, was_explosion) if(!no_bodyparts) - spread_bodyparts(no_brain, no_organs) + spread_bodyparts(no_brain, no_organs, was_explosion) for(var/X in implants) var/obj/item/implant/I = X qdel(I) - spawn_gibs(no_bodyparts) + spawn_gibs(no_bodyparts, null, was_explosion) qdel(src) /mob/living/proc/gib_animation() return -/mob/living/proc/spawn_gibs(with_bodyparts, atom/loc_override) +/mob/living/proc/spawn_gibs(with_bodyparts, atom/loc_override, datum/explosion/was_explosion) var/location = loc_override ? loc_override.drop_location() : drop_location() if(mob_biotypes & MOB_ROBOTIC) new /obj/effect/gibspawner/robot(location, src, get_static_viruses()) @@ -31,7 +31,7 @@ /mob/living/proc/spill_organs() return -/mob/living/proc/spread_bodyparts() +/mob/living/proc/spread_bodyparts(no_brain, no_organs, datum/explosion/was_explosion) return /mob/living/dust(just_ash, drop_items, force) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index fcc1d734a3..6aaa2cca87 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -866,7 +866,7 @@ if(istype(G)) strip_mod = G.strip_mod strip_silence = G.strip_silence - if (!strip_silence) + if(!strip_silence) who.visible_message("[src] tries to remove [who]'s [what.name].", \ "[src] tries to remove your [what.name].", target = src, target_message = "You try to remove [who]'s [what.name].") diff --git a/code/modules/mob/living/living_active_parry.dm b/code/modules/mob/living/living_active_parry.dm index 8d1ee38de6..c0423286c1 100644 --- a/code/modules/mob/living/living_active_parry.dm +++ b/code/modules/mob/living/living_active_parry.dm @@ -2,7 +2,7 @@ /** * Determines if we can actively parry. */ -/obj/item/proc/can_active_parry() +/obj/item/proc/can_active_parry(mob/user) return block_parry_data && (item_flags & ITEM_CAN_PARRY) /** @@ -29,7 +29,7 @@ var/datum/block_parry_data/data var/datum/tool var/method - if(using_item?.can_active_parry()) + if(using_item?.can_active_parry(src)) data = using_item.block_parry_data method = ITEM_PARRY tool = using_item @@ -50,9 +50,20 @@ using_item = backup method = ITEM_PARRY var/list/other_items = list() - if(SEND_SIGNAL(src, COMSIG_LIVING_ACTIVE_PARRY_START, method, tool, other_items) & COMPONENT_PREVENT_PARRY_START) + var/list/override = list() + if(SEND_SIGNAL(src, COMSIG_LIVING_ACTIVE_PARRY_START, method, tool, other_items, override) & COMPONENT_PREVENT_PARRY_START) to_chat(src, "Something is preventing you from parrying!") return + if(length(override)) + var/datum/thing = override[1] + var/_method = override[thing] + if(_method == ITEM_PARRY) + using_item = thing + method = ITEM_PARRY + data = using_item.block_parry_data + else if(_method == UNARMED_PARRY) + method = UNARMED_PARRY + data = thing if(!using_item && !method && length(other_items)) using_item = other_items[1] method = ITEM_PARRY @@ -94,7 +105,7 @@ */ /mob/living/proc/find_backup_parry_item() for(var/obj/item/I in held_items - get_active_held_item()) - if(I.can_active_parry()) + if(I.can_active_parry(src)) return I /** @@ -231,7 +242,7 @@ var/efficiency = data.get_parry_efficiency(attack_type, get_parry_time()) switch(parrying) if(ITEM_PARRY) - if(!active_parry_item.can_active_parry()) + if(!active_parry_item.can_active_parry(src)) return BLOCK_NONE . = active_parry_item.on_active_parry(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, get_parry_time()) if(UNARMED_PARRY) @@ -243,6 +254,18 @@ if(efficiency <= 0) // Do not allow automatically handled/standardized parries that increase damage for now. return . |= BLOCK_SHOULD_PARTIAL_MITIGATE + if(efficiency >= data.parry_efficiency_perfect) + . |= data.perfect_parry_block_return_flags + if(data.perfect_parry_block_return_list) + return_list |= data.perfect_parry_block_return_list + else if(efficiency >= data.parry_efficiency_considered_successful) + . |= data.imperfect_parry_block_return_flags + if(data.imperfect_parry_block_return_list) + return_list |= data.imperfect_parry_block_return_list + else + . |= data.failed_parry_block_return_flags + if(data.failed_parry_block_return_list) + return_list |= data.failed_parry_block_return_list if(isnull(return_list[BLOCK_RETURN_MITIGATION_PERCENT])) // if one of the on_active_parry procs overrode. We don't have to worry about interference since parries are the first thing checked in the [do_run_block()] sequence. return_list[BLOCK_RETURN_MITIGATION_PERCENT] = clamp(efficiency, 0, 100) // do not allow > 100% or < 0% for now. if((return_list[BLOCK_RETURN_MITIGATION_PERCENT] >= 100) || (damage <= 0)) diff --git a/code/modules/mob/living/living_blocking_parrying.dm b/code/modules/mob/living/living_blocking_parrying.dm index e290956873..9e974177e5 100644 --- a/code/modules/mob/living/living_blocking_parrying.dm +++ b/code/modules/mob/living/living_blocking_parrying.dm @@ -157,6 +157,16 @@ GLOBAL_LIST_EMPTY(block_parry_data) /// Parry cooldown post-parry if failed. This is ADDED to parry_cooldown!!! var/parry_failed_cooldown_duration = 0 SECONDS + // Advanced + /// Flags added to return value + var/perfect_parry_block_return_flags = NONE + var/imperfect_parry_block_return_flags = NONE + var/failed_parry_block_return_flags = NONE + /// List appended to block return + var/perfect_parry_block_return_list + var/imperfect_parry_block_return_list + var/failed_parry_block_return_list + /** * Quirky proc to get average of flags in list that are in attack_type because why is attack_type a flag. */ diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 742d4d8624..386f1174e1 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -81,7 +81,6 @@ var/bloodcrawl = 0 //0 No blood crawling, BLOODCRAWL for bloodcrawling, BLOODCRAWL_EAT for crawling+mob devour var/holder = null //The holder for blood crawling - var/ventcrawler = 0 //0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. var/mob_size = MOB_SIZE_HUMAN diff --git a/code/modules/mob/living/living_sprint.dm b/code/modules/mob/living/living_sprint.dm index 3ef67c9edd..728645c3eb 100644 --- a/code/modules/mob/living/living_sprint.dm +++ b/code/modules/mob/living/living_sprint.dm @@ -26,6 +26,8 @@ update_sprint_icon() /mob/living/proc/enable_sprint_mode(update_icon = TRUE) + if(!CONFIG_GET(flag/sprint_enabled)) + return if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) return ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE) @@ -61,6 +63,8 @@ update_sprint_icon() /mob/living/proc/user_toggle_intentional_sprint_mode() + if(!CONFIG_GET(flag/sprint_enabled)) + return var/old = (combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) if(old) if(combat_flags & COMBAT_FLAG_SPRINT_FORCED) diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 931f87eb7c..2b1c2de17a 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -17,10 +17,6 @@ if (isturf(T)) update_z(T.z) - //Vents - if(ventcrawler) - to_chat(src, "You can ventcrawl! Use alt+click on vents to quickly travel about the station.") - if(ranged_ability) ranged_ability.add_ranged_ability(src, "You currently have [ranged_ability] active!") if((vore_flags & VORE_INIT) && !(vore_flags & VOREPREF_INIT)) //Vore's been initialized, voreprefs haven't. If this triggers then that means that voreprefs failed to load due to the client being missing. diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 4c03e74d70..606daed0c5 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -329,7 +329,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( return 1 /mob/living/proc/can_speak_vocal(message) //Check AFTER handling of xeno and ling channels - if(HAS_TRAIT(src, TRAIT_MUTE)) + if(HAS_TRAIT(src, TRAIT_MUTE) && get_message_language(message) != /datum/language/signlanguage) return 0 if(is_muzzled()) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 823f759e67..e0e1d91ba9 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1039,3 +1039,6 @@ if(current && eyeobj) return eyeobj.emote(act, m_type, message, intentional, forced = TRUE) return ..() + +/mob/living/silicon/ai/zMove(dir, feedback = FALSE) + . = eyeobj.zMove(dir, feedback) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 17de811cdd..dcaa28b39c 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -94,6 +94,25 @@ if(ai.master_multicam) ai.master_multicam.refresh_view() +//it uses setLoc not forceMove, talks to the sillycone and not the camera mob +/mob/camera/aiEye/zMove(dir, feedback = FALSE) + if(dir != UP && dir != DOWN) + return FALSE + var/turf/target = get_step_multiz(src, dir) + if(!target) + if(feedback) + to_chat(ai, "There's nowhere to go in that direction!") + return FALSE + if(!canZMove(dir, target)) + if(feedback) + to_chat(ai, "You couldn't move there!") + return FALSE + setLoc(target, TRUE) + return TRUE + +/mob/camera/aiEye/canZMove(direction, turf/target) //cameras do not respect these FLOORS you speak so much of + return TRUE + /mob/camera/aiEye/Move() return 0 diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 2ab74664a3..4e33fba208 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -11,7 +11,7 @@ maxHealth = 500 layer = BELOW_MOB_LAYER var/obj/item/instrument/piano_synth/internal_instrument - silicon_privileges = PRIVILEDGES_PAI + silicon_privileges = PRIVILEGES_PAI var/network = "ss13" var/obj/machinery/camera/current = null @@ -143,6 +143,10 @@ custom_holoform.Grant(src) emitter_next_use = world.time + 10 SECONDS +/mob/living/silicon/pai/deployed/Initialize() + . = ..() + fold_out(TRUE) + /mob/living/silicon/pai/ComponentInitialize() . = ..() if(possible_chassis[chassis]) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 7c4125fbc6..4c83841809 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -923,7 +923,8 @@ /obj/item/cyborg_clamp, /obj/item/stack/marker_beacon, /obj/item/destTagger, - /obj/item/stack/packageWrap) + /obj/item/stack/packageWrap, + /obj/item/card/id/miningborg) emag_modules = list(/obj/item/borg/stun) ratvar_modules = list( /obj/item/clockwork/slab/cyborg/miner, diff --git a/code/modules/mob/living/silicon/robot/robot_sprint.dm b/code/modules/mob/living/silicon/robot/robot_sprint.dm index dff0d9dd0d..80adfe80fd 100644 --- a/code/modules/mob/living/silicon/robot/robot_sprint.dm +++ b/code/modules/mob/living/silicon/robot/robot_sprint.dm @@ -1,4 +1,7 @@ /mob/living/silicon/robot/default_toggle_sprint(shutdown = FALSE) + if(!CONFIG_GET(flag/sprint_enabled)) + disable_intentional_sprint_mode() + return var/current = (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) if(current || shutdown || !cell || (cell.charge < 25) || !cansprint) disable_intentional_sprint_mode() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 944b909463..b2b27c7d70 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -1,6 +1,6 @@ /mob/living/silicon gender = NEUTER - silicon_privileges = PRIVILEDGES_SILICON + silicon_privileges = PRIVILEGES_SILICON verb_say = "states" verb_ask = "queries" verb_exclaim = "declares" diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index bb7c437ca7..d3838a580f 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -15,7 +15,7 @@ maxbodytemp = INFINITY minbodytemp = 0 blood_volume = 0 - silicon_privileges = PRIVILEDGES_BOT + silicon_privileges = PRIVILEGES_BOT sentience_type = SENTIENCE_ARTIFICIAL status_flags = NONE //no default canpush verb_say = "states" diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index 0ba4023864..47173f10ea 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -335,6 +335,12 @@ /mob/living/simple_animal/bot/floorbot/proc/repair(turf/target_turf) + if(check_bot_working(target_turf)) + add_to_ignore(target_turf) + target = null + playsound(src, 'sound/effects/whistlereset.ogg', 50, TRUE) + return + if(isspaceturf(target_turf)) //Must be a hull breach or in line mode to continue. if(!is_hull_breach(target_turf) && !targetdirection) @@ -350,9 +356,9 @@ sleep(50) if(mode == BOT_REPAIRING && src.loc == target_turf) if(autotile) //Build the floor and include a tile. - target_turf.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR) - else //Build a hull plating without a floor tile. target_turf.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + else //Build a hull plating without a floor tile. + target_turf.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR) else var/turf/open/floor/F = target_turf @@ -366,7 +372,7 @@ if(mode == BOT_REPAIRING && F && src.loc == F) F.broken = 0 F.burnt = 0 - F.PlaceOnTop(/turf/open/floor/plasteel, flags = CHANGETURF_INHERIT_AIR) + F.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) if(replacetiles && F.type != initial(tiletype.turf_type) && specialtiles && !isplatingturf(F)) anchored = TRUE @@ -418,3 +424,14 @@ repair(A) else ..() + +/** + * Checks a given turf to see if another floorbot is there, working as well. + */ +/mob/living/simple_animal/bot/floorbot/proc/check_bot_working(turf/active_turf) + if(isturf(active_turf)) + for(var/mob/living/simple_animal/bot/floorbot/robot in active_turf) + if(robot.mode == BOT_REPAIRING) + return TRUE + return FALSE + diff --git a/code/modules/mob/living/simple_animal/friendly/bumbles.dm b/code/modules/mob/living/simple_animal/friendly/bumbles.dm index 0debb7b98c..6ed6d03b68 100644 --- a/code/modules/mob/living/simple_animal/friendly/bumbles.dm +++ b/code/modules/mob/living/simple_animal/friendly/bumbles.dm @@ -20,7 +20,6 @@ density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BEAST gold_core_spawnable = FRIENDLY_SPAWN @@ -35,6 +34,7 @@ /mob/living/simple_animal/pet/bumbles/Initialize() . = ..() add_verb(src, /mob/living/proc/lay_down) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/pet/bumbles/ComponentInitialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index bf4f45e283..1e6afd6044 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -20,7 +20,6 @@ density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BUG gold_core_spawnable = FRIENDLY_SPAWN @@ -33,6 +32,7 @@ . = ..() var/newcolor = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/butterfly/bee_friendly() return TRUE //treaty signed at the Beeneeva convention diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 71ae3b4c03..4594d27ecd 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -14,7 +14,6 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL mob_biotypes = MOB_ORGANIC|MOB_BEAST @@ -40,6 +39,7 @@ /mob/living/simple_animal/pet/cat/Initialize() . = ..() add_verb(src, /mob/living/proc/lay_down) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/pet/cat/ComponentInitialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index f33c179911..f65b2bab9b 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -22,7 +22,6 @@ response_harm_simple = "splat" speak_emote = list("chitters") density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY gold_core_spawnable = FRIENDLY_SPAWN verb_say = "chitters" @@ -32,6 +31,10 @@ var/squish_chance = 50 del_on_death = 1 +/mob/living/simple_animal/cockroach/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/cockroach/death(gibbed) if(SSticker.mode && SSticker.mode.station_was_nuked) //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes. return diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 7f3693f622..addbd493a5 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -21,12 +21,15 @@ stop_automated_movement = 1 friendly_verb_continuous = "pinches" friendly_verb_simple = "pinch" - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY var/obj/item/inventory_head var/obj/item/inventory_mask gold_core_spawnable = FRIENDLY_SPAWN +/mob/living/simple_animal/crab/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/crab/BiologicalLife(seconds, times_fired) if(!(. = ..())) return diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index a8c0e7d207..ecd5db3ccf 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -28,7 +28,6 @@ unsuitable_atmos_damage = 0 wander = 0 speed = 0 - ventcrawler = VENTCRAWLER_ALWAYS healable = 0 density = FALSE pass_flags = PASSTABLE | PASSMOB @@ -41,7 +40,7 @@ bubble_icon = "machine" initial_language_holder = /datum/language_holder/drone mob_size = MOB_SIZE_SMALL - silicon_privileges = PRIVILEDGES_DRONE + silicon_privileges = PRIVILEGES_DRONE damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) hud_possible = list(DIAG_STAT_HUD, DIAG_HUD, ANTAG_HUD) unique_name = TRUE @@ -101,6 +100,8 @@ for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diag_hud.add_to_hud(src) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/drone/ComponentInitialize() . = ..() if(can_be_held) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index 55339a02fd..22dbdd3db7 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -114,7 +114,6 @@ harm_intent_damage = 5 density = TRUE speed = 1 - ventcrawler = VENTCRAWLER_NONE faction = list("neutral", "ratvar") speak_emote = list("clanks", "clinks", "clunks", "clangs") verb_ask = "requests" diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 54184310a8..11d7884999 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -110,7 +110,7 @@ to_chat(src, "Your onboard antivirus has initiated lockdown. Motor servos are impaired, ventilation access is denied, and your display reports that you are hacked to all nearby.") hacked = TRUE mind.special_role = "hacked drone" - ventcrawler = VENTCRAWLER_NONE //Again, balance + RemoveElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) // balance speed = 1 //gotta go slow message_admins("[src] ([src.key]) became a hacked drone hellbent on [clockwork ? "serving Ratvar" : "destroying the station"]!") else @@ -125,7 +125,7 @@ to_chat(src, "Having been restored, your onboard antivirus reports the all-clear and you are able to perform all actions again.") hacked = FALSE mind.special_role = null - ventcrawler = initial(ventcrawler) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) speed = initial(speed) if(is_servant_of_ratvar(src)) remove_servant_of_ratvar(src, TRUE) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 51e7ee6c03..81925d922f 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -241,7 +241,6 @@ attack_verb_simple = "kick" health = 3 maxHealth = 3 - ventcrawler = VENTCRAWLER_ALWAYS var/amount_grown = 0 pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -253,6 +252,7 @@ . = ..() pixel_x = rand(-6, 6) pixel_y = rand(0, 10) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/chick/BiologicalLife(seconds, times_fired) if(!(. = ..())) @@ -296,7 +296,6 @@ attack_verb_simple = "kick" health = 15 maxHealth = 15 - ventcrawler = VENTCRAWLER_ALWAYS var/eggsleft = 0 var/eggsFertile = TRUE var/body_color @@ -322,6 +321,8 @@ pixel_y = rand(0, 10) ++chicken_count + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/chicken/Destroy() --chicken_count return ..() @@ -392,7 +393,6 @@ attack_verb_simple = "kick" health = 25 maxHealth = 25 - ventcrawler = VENTCRAWLER_ALWAYS var/eggsleft = 0 var/eggsFertile = TRUE pass_flags = PASSTABLE | PASSMOB @@ -412,6 +412,8 @@ . = ..() ++kiwi_count + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/kiwi/BiologicalLife(seconds, times_fired) if(!(. = ..())) return @@ -473,7 +475,6 @@ attack_verb_simple = "kick" health = 10 maxHealth = 10 - ventcrawler = VENTCRAWLER_ALWAYS var/amount_grown = 0 pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -486,6 +487,8 @@ pixel_x = rand(-6, 6) pixel_y = rand(0, 10) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/babyKiwi/BiologicalLife(seconds, times_fired) if(!(. = ..())) return diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index b9ff99b677..fd0095bf87 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -18,7 +18,6 @@ response_disarm_simple = "shoo" response_harm_continuous = "stomps on" response_harm_simple = "stomp on" - ventcrawler = VENTCRAWLER_ALWAYS density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL @@ -31,6 +30,7 @@ /mob/living/simple_animal/hostile/lizard/ComponentInitialize() . = ..() AddElement(/datum/element/mob_holder, worn_state = "lizard", inv_slots = ITEM_SLOT_HEAD) //you can hold lizards now. + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target? if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 51c903ee16..8348af43fa 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -22,7 +22,6 @@ response_harm_continuous = "splats" response_harm_simple = "splat" density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BEAST @@ -40,6 +39,7 @@ icon_state = "mouse_[body_color]" icon_living = "mouse_[body_color]" icon_dead = "mouse_[body_color]_dead" + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/mouse/proc/splat() src.health = 0 diff --git a/code/modules/mob/living/simple_animal/friendly/possum.dm b/code/modules/mob/living/simple_animal/friendly/possum.dm index 71fdbd1465..5e7ed572e2 100644 --- a/code/modules/mob/living/simple_animal/friendly/possum.dm +++ b/code/modules/mob/living/simple_animal/friendly/possum.dm @@ -22,12 +22,15 @@ response_harm_continuous = "stamps on" response_harm_simple = "stamp" density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BEAST gold_core_spawnable = FRIENDLY_SPAWN +/mob/living/simple_animal/opossum/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/opossum/poppy name = "Poppy the Safety Possum" desc = "Safety first!" diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index 4d20b927a6..61c735c7c1 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -30,7 +30,6 @@ response_harm_continuous = "steps on" response_harm_simple = "step on" faction = list("hostile") - ventcrawler = VENTCRAWLER_ALWAYS density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL @@ -39,6 +38,9 @@ obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE +/mob/living/simple_animal/hostile/retaliate/poison/snake/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/retaliate/poison/snake/ListTargets(atom/the_target) . = oview(vision_range, targets_from) //get list of things in vision range diff --git a/code/modules/mob/living/simple_animal/hostile/banana_spider.dm b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm index 259c0bc721..a88593ed74 100644 --- a/code/modules/mob/living/simple_animal/hostile/banana_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm @@ -22,7 +22,6 @@ speak_emote = list("chitters") mouse_opacity = 2 density = TRUE - ventcrawler = VENTCRAWLER_ALWAYS verb_say = "chitters" verb_ask = "chitters inquisitively" verb_exclaim = "chitters loudly" @@ -37,6 +36,8 @@ if(A) notify_ghosts("A banana spider has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/banana_spider/attack_ghost(mob/user) if(key) //please stop using src. without a good reason. return diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 1be90a07f8..c7772f780d 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -109,7 +109,7 @@ to_chat(user, "You strap the armor plating to [A] and sharpen [A.p_their()] claws with the nail filer. This was a great idea.") qdel(src) -mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Several functions used from it. +/mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Several functions used from it. name = "Terrygold" icon_state = "butterbear" icon_living = "butterbear" @@ -155,7 +155,7 @@ mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Seve to_chat(src, "Your name is now \"new_name\"!") name = new_name -mob/living/simple_animal/hostile/bear/butter/AttackingTarget() //Makes some attacks by the butter bear slip those who dare cross its path. +/mob/living/simple_animal/hostile/bear/butter/AttackingTarget() //Makes some attacks by the butter bear slip those who dare cross its path. if(isliving(target)) var/mob/living/L = target if((L.mobility_flags & MOBILITY_STAND)) diff --git a/code/modules/mob/living/simple_animal/hostile/bread.dm b/code/modules/mob/living/simple_animal/hostile/bread.dm index 317827028d..70c8b0c540 100644 --- a/code/modules/mob/living/simple_animal/hostile/bread.dm +++ b/code/modules/mob/living/simple_animal/hostile/bread.dm @@ -26,7 +26,6 @@ speak_emote = list("growls") mouse_opacity = 2 density = TRUE - ventcrawler = VENTCRAWLER_ALWAYS verb_say = "growls" verb_ask = "growls inquisitively" verb_exclaim = "growls loudly" @@ -38,6 +37,7 @@ var/area/A = get_area(src) if(A) notify_ghosts("A tumor bread has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/bread/attack_ghost(mob/user) if(key) //please stop using src. without a good reason. diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index bde5a19518..2349685a4e 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -44,7 +44,6 @@ var/busy = SPIDER_IDLE pass_flags = PASSTABLE move_to_delay = 6 - ventcrawler = VENTCRAWLER_ALWAYS attack_verb_continuous = "bites" attack_verb_simple = "bite" attack_sound = 'sound/weapons/bite.ogg' @@ -63,6 +62,8 @@ lay_web = new lay_web.Grant(src) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/poison/giant_spider/Destroy() QDEL_NULL(lay_web) return ..() @@ -389,7 +390,6 @@ name = "Wrap" panel = "Spider" active = FALSE - datum/action/spell_action/action = null desc = "Wrap something or someone in a cocoon. If it's a living being, you'll also consume them, allowing you to lay eggs." ranged_mousepointer = 'icons/effects/wrap_target.dmi' action_icon = 'icons/mob/actions/actions_animal.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index 850beeb099..5e34d17bb2 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -20,11 +20,14 @@ obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE speak_emote = list("squeaks") - ventcrawler = VENTCRAWLER_ALWAYS var/datum/mind/origin var/egg_lain = 0 gold_core_spawnable = NO_SPAWN //are you sure about this?? // CITADEL CHANGE, Yes. +/mob/living/simple_animal/hostile/headcrab/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/headcrab/proc/Infect(mob/living/carbon/victim) var/obj/item/organ/body_egg/changeling_egg/egg = new(victim) egg.Insert(victim) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 37eb9b7f67..95f8f2acc1 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -511,7 +511,7 @@ DestroyObjectsInDirection(direction) -mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with megafauna destroying everything around them +/mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with megafauna destroying everything around them if(environment_smash) EscapeConfinement() for(var/dir in GLOB.cardinals) diff --git a/code/modules/mob/living/simple_animal/hostile/killertomato.dm b/code/modules/mob/living/simple_animal/hostile/killertomato.dm index b86d5d87fc..d3d3dadd1e 100644 --- a/code/modules/mob/living/simple_animal/hostile/killertomato.dm +++ b/code/modules/mob/living/simple_animal/hostile/killertomato.dm @@ -22,10 +22,13 @@ attack_verb_continuous = "slams" attack_verb_simple = "slam" attack_sound = 'sound/weapons/punch1.ogg' - ventcrawler = VENTCRAWLER_ALWAYS faction = list("plants") atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 150 maxbodytemp = 500 gold_core_spawnable = HOSTILE_SPAWN + +/mob/living/simple_animal/hostile/killertomato/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index fa3a59a6b9..a584d34995 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -620,7 +620,6 @@ Difficulty: Very Hard density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY gold_core_spawnable = HOSTILE_SPAWN verb_say = "warps" @@ -648,6 +647,7 @@ Difficulty: Very Hard remove_verb(src, /mob/verb/me_verb) var/datum/atom_hud/medsensor = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] medsensor.add_hud_to(src) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/lightgeist/AttackingTarget() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 0ccc4525c7..e35220a920 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -27,7 +27,6 @@ friendly_verb_continuous = "pinches" friendly_verb_simple = "pinch" a_intent = INTENT_HELP - ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = FRIENDLY_SPAWN stat_attack = UNCONSCIOUS gender = NEUTER @@ -50,6 +49,7 @@ /mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize() udder = new() . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/asteroid/gutlunch/CanAttack(atom/the_target) // Gutlunch-specific version of CanAttack to handle stupid stat_exclusive = true crap so we don't have to do it for literally every single simple_animal/hostile except the two that spawn in lavaland if(isturf(the_target) || !the_target || the_target.type == /atom/movable/lighting_object) // bail out on invalids diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 11ce4f9214..ae0f5ea3ca 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -398,7 +398,6 @@ uniform = /obj/item/clothing/under/color/grey belt = /obj/item/tank/internals/emergency_oxygen mask = /obj/item/clothing/mask/gas - ears = /obj/item/radio/headset gloves = /obj/item/clothing/gloves/color/fyellow id = /obj/item/card/id/silver/reaper //looks cool and has a fancy name but only a 1% chance if(prob(99)) @@ -412,7 +411,7 @@ back = /obj/item/spear else if(prob(80)) //Now they dont always have a backpack back = /obj/item/storage/backpack - backpack_contents = list(/obj/item/stack/cable_coil = 1, /obj/item/assembly/flash = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) + backpack_contents = list(/obj/item/stack/cable_coil = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) if(prob(90)) r_pocket = /obj/item/kitchen/knife if(prob(60)) @@ -423,7 +422,6 @@ suit = /obj/item/clothing/suit/hooded/bee_costume shoes = /obj/item/clothing/shoes/sneakers/yellow gloves = /obj/item/clothing/gloves/color/yellow - ears = /obj/item/radio/headset belt = /obj/item/storage/belt/fannypack/yellow id_job = "Assisant" id = /obj/item/card/id diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 9101430ccc..f41746ea69 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -28,7 +28,6 @@ stat_attack = DEAD mouse_opacity = MOUSE_OPACITY_ICON speed = 1 - ventcrawler = VENTCRAWLER_ALWAYS robust_searching = 1 unique_name = 1 speak_emote = list("squeaks") @@ -41,6 +40,10 @@ var/static/mutable_appearance/cap_living //Where we store our cap icons so we dont generate them constantly to update our icon var/static/mutable_appearance/cap_dead +/mob/living/simple_animal/hostile/mushroom/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/mushroom/examine(mob/user) . = ..() if(health >= maxHealth) diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm index 77b2d4268a..77731f0ea4 100644 --- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm +++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm @@ -23,7 +23,6 @@ attack_verb_continuous = "slashes" attack_verb_simple = "slash" attack_sound = 'sound/weapons/punch1.ogg' - ventcrawler = VENTCRAWLER_ALWAYS unique_name = TRUE faction = list("rat") var/datum/action/cooldown/coffer @@ -42,6 +41,8 @@ key = C.key notify_ghosts("All rise for the rat king, ascendant to the throne in \the [get_area(src)].", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/regalrat/handle_automated_action() if(prob(20)) riot.Trigger() @@ -175,7 +176,6 @@ health = 15 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1) density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BEAST @@ -185,6 +185,7 @@ . = ..() SSmobs.cheeserats += src AddComponent(/datum/component/swarming) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/rat/Destroy() SSmobs.cheeserats -= src diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index 9045ccef51..cb1ee6c6f6 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -30,7 +30,6 @@ attack_sound = 'sound/weapons/bite.ogg' obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY movement_type = FLYING speak_emote = list("squeaks") @@ -38,11 +37,14 @@ var/min_oxy = 0 var/max_tox = 0 - //Space bats need no air to fly in. atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 +/mob/living/simple_animal/hostile/retaliate/bat/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/retaliate/bat/secbat name = "Security Bat" icon_state = "secbat" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index dec2159dc0..96418686d3 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -137,7 +137,6 @@ emote_see = list("honks", "sweats", "jiggles", "contemplates its existence") speak_chance = 5 dextrous = TRUE - ventcrawler = VENTCRAWLER_ALWAYS maxHealth = 140 health = 140 speed = -5 @@ -147,6 +146,10 @@ obj_damage = 5 loot = list(/obj/item/clothing/suit/hooded/bloated_human, /obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap) +/mob/living/simple_animal/hostile/retaliate/clown/fleshclown/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/retaliate/clown/longface name = "Longface" desc = "Often found walking into the bar." diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm index f0fe85008a..2433b45cc0 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm @@ -22,7 +22,6 @@ response_harm_continuous = "splats" response_harm_simple = "splat" density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS faction = list("hostile") attack_sound = 'sound/effects/reee.ogg' butcher_results = list(/obj/item/reagent_containers/food/snacks/nugget = 1) @@ -40,6 +39,7 @@ icon_living = "rare_frog" icon_dead = "rare_frog_dead" butcher_results = list(/obj/item/reagent_containers/food/snacks/nugget = 5) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/retaliate/frog/Crossed(AM as mob|obj) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index fdb088934c..cc5b0b8a75 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -190,5 +190,5 @@ * Arguments: * * datum/beam/vine - The vine to be removed from the list. */ -mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force) +/mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force) vines -= vine diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 06e336875a..d146bb855f 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -83,6 +83,8 @@ //Headset for Poly to yell at engineers :) var/obj/item/radio/headset/ears = null + /// spawns with headset + var/spawns_with_headset = FALSE //The thing the parrot is currently interested in. This gets used for items the parrot wants to pick up, mobs it wants to steal from, //mobs it wants to attack or mobs that have attacked it @@ -105,13 +107,14 @@ /mob/living/simple_animal/parrot/Initialize() . = ..() - if(!ears) - var/headset = pick(/obj/item/radio/headset/headset_sec, \ - /obj/item/radio/headset/headset_eng, \ - /obj/item/radio/headset/headset_med, \ - /obj/item/radio/headset/headset_sci, \ - /obj/item/radio/headset/headset_cargo) - ears = new headset(src) + if(spawns_with_headset) + if(!ears) + var/headset = pick(/obj/item/radio/headset/headset_sec, \ + /obj/item/radio/headset/headset_eng, \ + /obj/item/radio/headset/headset_med, \ + /obj/item/radio/headset/headset_sci, \ + /obj/item/radio/headset/headset_cargo) + ears = new headset(src) parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var @@ -881,6 +884,7 @@ speak = list("Poly wanna cracker!", ":e Check the crystal, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS ABOUT TO DELAMINATE CALL THE SHUTTLE") gold_core_spawnable = NO_SPAWN speak_chance = 3 + spawns_with_headset = TRUE var/memory_saved = FALSE var/rounds_survived = 0 var/longest_survival = 0 diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index ab59441572..06649ac7d6 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -4,7 +4,6 @@ icon_state = "grey baby slime" pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL - ventcrawler = VENTCRAWLER_ALWAYS gender = NEUTER var/is_adult = 0 var/docile = 0 @@ -108,6 +107,8 @@ AddComponent(/datum/component/footstep, FOOTSTEP_MOB_SLIME, 7.5) set_nutrition(rand(650, 800)) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/slime/Destroy() for (var/A in actions) var/datum/action/AC = A diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index 4c00fd0033..9ade9f097f 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list( //VENTCRAWLING -/mob/living/proc/handle_ventcrawl(atom/A) +/mob/living/proc/handle_ventcrawl(atom/A, ventcrawler) if(!ventcrawler || !Adjacent(A)) return . = TRUE //return value to stop the client from being shown the turf contents stat tab on alt-click. @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list( if(!client) return - if(iscarbon(src) && ventcrawler == VENTCRAWLER_NUDE) + if(iscarbon(src) && ventcrawler==VENTCRAWLER_NUDE) if(length(get_equipped_items(include_pockets = TRUE)) || get_num_held_items()) to_chat(src, "You can't crawl around in the ventilation ducts with items!") return diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 605f0a2d55..4b0f505067 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -408,7 +408,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return return TRUE -/atom/proc/hasSiliconAccessInArea(mob/user, flags = PRIVILEDGES_SILICON) +/atom/proc/hasSiliconAccessInArea(mob/user, flags = PRIVILEGES_SILICON) return user.silicon_privileges & (flags) || (user.siliconaccesstoggle && (get_area(src) in user.siliconaccessareas)) /mob/proc/toggleSiliconAccessArea(area/area) @@ -496,7 +496,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp colored_message = "[message]" else colored_message = "[message]" - + //This makes readability a bit better for admins. switch(message_type) if(LOG_WHISPER) @@ -507,7 +507,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp colored_message = "(ASAY) [colored_message]" if(LOG_EMOTE) colored_message = "(EMOTE) [colored_message]" - + var/list/timestamped_message = list("\[[TIME_STAMP("hh:mm:ss", FALSE)]\] [key_name(src)] [loc_name(src)] (Event #[LAZYLEN(logging[smessage_type])])" = colored_message) logging[smessage_type] += timestamped_message diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index c5c53dc876..94bf45c1b0 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -3,14 +3,14 @@ ////////////////////////////////////////////////////// /mob/proc/get_top_level_mob() - if(istype(src.loc,/mob)&&src.loc!=src) - var/mob/M=src.loc + if(ismob(src.loc) && src.loc != src) + var/mob/M = src.loc return M.get_top_level_mob() return src -proc/get_top_level_mob(var/mob/S) - if(istype(S.loc,/mob)&&S.loc!=S) - var/mob/M=S.loc +/proc/get_top_level_mob(mob/S) + if(ismob(S.loc) && S.loc != S) + var/mob/M = S.loc return M.get_top_level_mob() return S diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 3a7e270567..e49bd5162b 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -175,6 +175,7 @@ icon = null cut_overlays() invisibility = INVISIBILITY_MAXIMUM + new /obj/effect/temp_visual/monkeyify/humanify(loc) transformation_timer = addtimer(CALLBACK(src, .proc/finish_humanize, tr_flags), TRANSFORMATION_DURATION, TIMER_UNIQUE) @@ -202,6 +203,8 @@ var/mob/living/carbon/human/O = new( loc ) for(var/obj/item/C in O.loc) + if(C.anchored) + continue O.equip_to_appropriate_slot(C) dna.transfer_identity(O) diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index 6d45914add..3455547d20 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -175,7 +175,7 @@ if("PRG_edit") if(!computer || !authenticated || !target_id_card) return - var/new_name = params["name"] + var/new_name = reject_bad_name(params["name"]) if(!new_name) return target_id_card.registered_name = new_name @@ -190,7 +190,7 @@ return if(target == "Custom") - var/custom_name = params["custom_name"] + var/custom_name = reject_bad_name(params["custom_name"]) if(custom_name) target_id_card.assignment = custom_name target_id_card.update_label() diff --git a/code/modules/movespeed/modifiers/reagents.dm b/code/modules/movespeed/modifiers/reagents.dm index b6c2458670..1a03e8a602 100644 --- a/code/modules/movespeed/modifiers/reagents.dm +++ b/code/modules/movespeed/modifiers/reagents.dm @@ -12,3 +12,7 @@ /datum/movespeed_modifier/reagent/nitryl multiplicative_slowdown = -1 + +/datum/movespeed_modifier/reagent/meth + multiplicative_slowdown = -0.5 + absolute_max_tiles_per_second = 11 diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 20ec678e45..a00145f9dc 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -193,6 +193,13 @@ user.visible_message(ignition_message) add_fingerprint(user) fire_act(I.get_temperature()) +//I would have it become a paper plane before the throw, but that would risk runtimes +/obj/item/paper/DoRevenantThrowEffects(atom/target) + sleep(10) + if(HAS_TRAIT(src, TRAIT_SPOOKY_THROW)) + return + new /obj/item/paperplane(get_turf(src)) + qdel(src) /obj/item/paper/attackby(obj/item/P, mob/living/user, params) if(burn_paper_product_attackby_check(P, user)) diff --git a/code/modules/pool/pool_controller.dm b/code/modules/pool/pool_controller.dm index 17faa7a3e3..9f670de282 100644 --- a/code/modules/pool/pool_controller.dm +++ b/code/modules/pool/pool_controller.dm @@ -146,7 +146,7 @@ return reagents.clear_reagents() // This also reacts them. No nitroglycerin deathpools, sorry gamers :( - W.reagents.trans_to(reagents, max_beaker_transfer) + W.reagents.trans_to(reagents, max_beaker_transfer, log = "pool fill from reagent container") user.visible_message("[src] makes a slurping noise.", "All of the contents of [W] are quickly suctioned out by the machine! R.pH) && (pH <= 7)) || ((pH < R.pH) && (pH >= 7))) pH = (((pH - R.pH) / total_volume) * amount) + pH if(istype(my_atom, /obj/item/reagent_containers/)) @@ -987,6 +985,8 @@ amount = clamp(amount, 0, R.volume) R.volume -= amount update_total() + if(total_volume <= 0)//Because this can result in 0, I don't want it to crash. + pH = REAGENT_NORMAL_PH if(!safety)//So it does not handle reactions when it need not to handle_reactions() if(my_atom) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index d1c18f0510..22aadc06f4 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -24,9 +24,11 @@ circuit = /obj/item/circuitboard/machine/chem_dispenser var/obj/item/stock_parts/cell/cell var/powerefficiency = 0.0666666 + var/dispenceUnit = 5 var/amount = 30 var/recharge_amount = 10 var/recharge_counter = 0 + var/canStore = TRUE//If this can hold reagents or not var/mutable_appearance/beaker_overlay var/working_state = "dispenser_working" var/nopower_state = "dispenser_nopower" @@ -102,6 +104,7 @@ if(upgrade_reagents3) upgrade_reagents3 = sortList(upgrade_reagents3, /proc/cmp_reagents_asc) dispensable_reagents = sortList(dispensable_reagents, /proc/cmp_reagents_asc) + create_reagents(200, NO_REACT) update_icon() /obj/machinery/chem_dispenser/Destroy() @@ -190,24 +193,27 @@ data["amount"] = amount data["energy"] = cell.charge ? cell.charge * powerefficiency : "0" //To prevent NaN in the UI. data["maxEnergy"] = cell.maxcharge * powerefficiency + data["storedVol"] = reagents.total_volume + data["maxVol"] = reagents.maximum_volume data["isBeakerLoaded"] = beaker ? 1 : 0 + data["stepAmount"] = dispenceUnit + data["canStore"] = canStore var/beakerContents[0] var/beakerCurrentVolume = 0 if(beaker && beaker.reagents && beaker.reagents.reagent_list.len) for(var/datum/reagent/R in beaker.reagents.reagent_list) - beakerContents.Add(list(list("name" = R.name, "volume" = R.volume))) // list in a list because Byond merges the first list... + beakerContents.Add(list(list("name" = R.name, "id" = R.type, "volume" = round(R.volume, 0.01)))) // list in a list because Byond merges the first list... beakerCurrentVolume += R.volume data["beakerContents"] = beakerContents if (beaker) - data["beakerCurrentVolume"] = beakerCurrentVolume + data["beakerCurrentVolume"] = round(beakerCurrentVolume, 0.01) data["beakerMaxVolume"] = beaker.volume data["beakerTransferAmounts"] = beaker.possible_transfer_amounts - data["beakerCurrentpH"] = beaker.reagents.pH //pH accuracy for(var/obj/item/stock_parts/capacitor/C in component_parts) - data["partRating"]= 10**(C.rating-1) + data["beakerCurrentpH"] = round(beaker.reagents.pH, 10**-(C.rating+1)) else data["beakerCurrentVolume"] = null @@ -225,11 +231,17 @@ var/chemname = temp.name if(is_hallucinating && prob(5)) chemname = "[pick_list_replacements("hallucination.json", "chemicals")]" - chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name)))) + chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name), "pH" = temp.pH, "pHCol" = ConvertpHToCol(temp.pH)))) data["chemicals"] = chemicals data["recipes"] = saved_recipes data["recordingRecipe"] = recording_recipe + + var/storedContents[0] + if(reagents.total_volume) + for(var/datum/reagent/N in reagents.reagent_list) + storedContents.Add(list(list("name" = N.name, "id" = N.type, "volume" = N.volume))) + data["storedContents"] = storedContents return data /obj/machinery/chem_dispenser/ui_act(action, params) @@ -240,10 +252,9 @@ if(!is_operational() || QDELETED(beaker)) return var/target = text2num(params["target"]) - if(target in beaker.possible_transfer_amounts) - amount = target - work_animation() - . = TRUE + SetAmount(target) + work_animation() + . = TRUE if("dispense") if(!is_operational() || QDELETED(cell)) return @@ -269,10 +280,9 @@ if(!is_operational() || recording_recipe) return var/amount = text2num(params["amount"]) - if(beaker && (amount in beaker.possible_transfer_amounts)) - beaker.reagents.remove_all(amount) - work_animation() - . = TRUE + beaker.reagents.remove_all(amount) //This should be set correctly in "amount" + work_animation() + . = TRUE if("eject") replace_beaker(usr) . = TRUE @@ -350,6 +360,52 @@ recording_recipe = null . = TRUE + //Storing and unstoring reagents + if("store") + if(!is_operational() || QDELETED(cell)) + return + if(!beaker) + return + if(recording_recipe) + say("Cannot store while recording!") + return + if(beaker.reagents.fermiIsReacting) + say("Cannot store ongoing reactions!") + return + var/reagent = text2path(params["id"]) + var/datum/reagent/R = beaker.reagents.has_reagent(reagent) + var/potentialAmount = min(amount, R.volume) + if(reagents.total_volume+potentialAmount > reagents.maximum_volume) + say("Not enough storage space left!") + return + beaker.reagents.trans_id_to(src, R.type, potentialAmount) + work_animation() + . = TRUE + + if("unstore") + if(!is_operational() || QDELETED(cell)) + return + if(!beaker) + return + if(recording_recipe) + say("Cannot distribute while recording!") + return + var/reagent = text2path(params["id"]) + var/datum/reagent/R = reagents.has_reagent(reagent) + reagents.trans_id_to(beaker, R.type, amount) + work_animation() + . = TRUE + +/obj/machinery/chem_dispenser/proc/SetAmount(inputAmount) + if(inputAmount % 5 == 0) //Always allow 5u values + amount = inputAmount + return + inputAmount -= inputAmount % dispenceUnit + if(inputAmount == 0) //Prevent ghost entries in macros + amount = dispenceUnit + return + amount = inputAmount + /obj/machinery/chem_dispenser/attackby(obj/item/I, mob/user, params) if(default_unfasten_wrench(user, I)) return @@ -402,6 +458,8 @@ cell = P for(var/obj/item/stock_parts/matter_bin/M in component_parts) newpowereff += 0.0166666666*M.rating + if(reagents) + reagents.maximum_volume = 200*(M.rating) for(var/obj/item/stock_parts/capacitor/C in component_parts) recharge_amount *= C.rating for(var/obj/item/stock_parts/manipulator/M in component_parts) @@ -411,6 +469,15 @@ dispensable_reagents |= upgrade_reagents2 if(M.rating > 3) dispensable_reagents |= upgrade_reagents3 + switch(M.rating) + if(-INFINITY to 1) + dispenceUnit = 5 + if(2) + dispenceUnit = 3 + if(3) + dispenceUnit = 2 + if(4 to INFINITY) + dispenceUnit = 1 powerefficiency = round(newpowereff, 0.01) /obj/machinery/chem_dispenser/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) @@ -421,6 +488,8 @@ user.put_in_hands(B) if(new_beaker) beaker = new_beaker + if(amount > beaker.reagents.maximum_volume) + amount = beaker.reagents.maximum_volume else beaker = null update_icon() @@ -439,6 +508,32 @@ replace_beaker(user) return TRUE +/obj/machinery/chem_dispenser/proc/ConvertpHToCol(pH) + switch(pH) + if(-INFINITY to 1) + return "red" + if(1 to 2) + return "orange" + if(2 to 3) + return "average" + if(3 to 4) + return "yellow" + if(4 to 5) + return "olive" + if(5 to 6) + return "good" + if(6 to 8) + return "green" + if(8 to 9.5) + return "teal" + if(9.5 to 11) + return "blue" + if(11 to 12.5) + return "violet" + if(12.5 to INFINITY) + return "purple" + + /obj/machinery/chem_dispenser/drinks/Initialize() . = ..() AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE) @@ -466,6 +561,7 @@ b_o.pixel_x = rand(-9, 9) return b_o + /obj/machinery/chem_dispenser/drinks name = "soda dispenser" desc = "Contains a large reservoir of soft drinks." @@ -479,6 +575,7 @@ working_state = null nopower_state = null pass_flags = PASSTABLE + canStore = FALSE dispensable_reagents = list( /datum/reagent/water, /datum/reagent/consumable/ice, @@ -611,12 +708,14 @@ dispensable_reagents = list(/datum/reagent/toxin/mutagen) upgrade_reagents = null emagged_reagents = list(/datum/reagent/toxin/plasma) + canStore = FALSE /obj/machinery/chem_dispenser/mutagensaltpeter name = "botanical chemical dispenser" desc = "Creates and dispenses chemicals useful for botany." flags_1 = NODECONSTRUCT_1 + canStore = FALSE dispensable_reagents = list( /datum/reagent/toxin/mutagen, @@ -739,6 +838,7 @@ working_state = "minidispenser_working" nopower_state = "minidispenser_nopower" circuit = /obj/item/circuitboard/machine/chem_dispenser/apothecary + canStore = FALSE powerefficiency = 0.0833333 dispensable_reagents = list( //radium and stable plasma moved to upgrade tier 1 and 2, they've little to do with most medicines anyway. /datum/reagent/hydrogen, diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 8c3b9c7f99..cd8ee2d986 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -126,7 +126,7 @@ var beakerContents[0] if(beaker) for(var/datum/reagent/R in beaker.reagents.reagent_list) - beakerContents.Add(list(list("name" = R.name, "volume" = R.volume, "purity" = R.purity))) // list in a list because Byond merges the first list... + beakerContents.Add(list(list("name" = R.name, "volume" = round(R.volume, 0.01), "purity" = round(R.purity, 0.01)))) // list in a list because Byond merges the first list... data["beakerContents"] = beakerContents return data diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 89fdb52b2a..285ef70433 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -184,13 +184,13 @@ var/beakerContents[0] if(beaker) for(var/datum/reagent/R in beaker.reagents.reagent_list) - beakerContents.Add(list(list("name" = R.name, "id" = ckey(R.name), "volume" = R.volume))) // list in a list because Byond merges the first list... + beakerContents.Add(list(list("name" = R.name, "id" = R.type, "volume" = R.volume))) // list in a list because Byond merges the first list... data["beakerContents"] = beakerContents var/bufferContents[0] if(reagents.total_volume) for(var/datum/reagent/N in reagents.reagent_list) - bufferContents.Add(list(list("name" = N.name, "id" = ckey(N.name), "volume" = N.volume))) // ^ + bufferContents.Add(list(list("name" = N.name, "id" = N.type, "volume" = N.volume))) // ^ data["bufferContents"] = bufferContents //Calculated at init time as it never changes @@ -216,7 +216,7 @@ if(action == "transfer") if(!beaker) return FALSE - var/reagent = GLOB.name2reagent[params["id"]] + var/reagent = text2path(params["id"]) var/amount = text2num(params["amount"]) var/to_container = params["to"] // Custom amount @@ -386,7 +386,7 @@ if(action == "analyze") // var/datum/reagent/R = GLOB.name2reagent[params["id"]] - var/reagent = GLOB.name2reagent[params["id"]] + var/reagent = text2path(params["id"]) var/datum/reagent/R = GLOB.chemical_reagents_list[reagent] if(R) var/state = "Unknown" @@ -405,7 +405,7 @@ analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = R.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache) else fermianalyze = FALSE - analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold)) + analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = R.purity) screen = "analyze" return TRUE diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index a0de9f7a7f..aae21464b1 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2288,6 +2288,7 @@ All effects don't start immediately, but rather get worse over time; the rate is //Race-Base-Drinks// //////////////////// /datum/reagent/consumable/ethanol/species_drink + name = "Species Drink" var/species_required var/disgust = 26 boozepwr = 50 diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 1a8f6edcbe..f4f5b90398 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -504,6 +504,14 @@ glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." value = REAGENT_VALUE_COMMON +/datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/carbon/M) + M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) + return ..() + +/datum/reagent/consumable/nuka_cola/on_mob_end_metabolize(mob/living/carbon/M) + M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) + return ..() + /datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M) M.Jitter(20) M.set_drugginess(30) @@ -608,7 +616,7 @@ name = "Buzz Fuzz" description = "~A Hive of Flavour!~ NOTICE: Addicting." nutriment_factor = 0 - addiction_threshold = 26 //A can and a sip + addiction_threshold = 31 //A can and a sip color = "#8CFF00" // rgb: 135, 255, 0 taste_description = "carbonated honey and pollen" glass_icon_state = "buzz_fuzz" diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 0b44c33926..675502c5fb 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -174,11 +174,13 @@ ADD_TRAIT(L, TRAIT_IGNOREDAMAGESLOWDOWN, type) L.update_movespeed() ADD_TRAIT(L, TRAIT_TASED_RESISTANCE, type) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) /datum/reagent/drug/methamphetamine/on_mob_end_metabolize(mob/living/L) REMOVE_TRAIT(L, TRAIT_IGNOREDAMAGESLOWDOWN, type) L.update_movespeed() REMOVE_TRAIT(L, TRAIT_TASED_RESISTANCE, type) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) ..() /datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 7ab50884e0..e55286ed3f 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -272,10 +272,10 @@ overdose_threshold = 50 /datum/reagent/medicine/silver_sulfadiazine/reaction_obj(obj/O, reac_volume) - if(istype(O, /obj/item/stack/medical/gauze)) + if(istype(O, /obj/item/stack/medical/gauze/adv)) var/obj/item/stack/medical/gauze/G = O - reac_volume = min((reac_volume / 10), G.amount) - new/obj/item/stack/medical/mesh(get_turf(G), reac_volume) + reac_volume = min((reac_volume / 5), G.amount) + new /obj/item/stack/medical/mesh/five(get_turf(G), reac_volume) G.use(reac_volume) /datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) @@ -358,10 +358,10 @@ ..() /datum/reagent/medicine/styptic_powder/reaction_obj(obj/O, reac_volume) - if(istype(O, /obj/item/stack/medical/gauze)) + if(istype(O, /obj/item/stack/medical/gauze/adv)) var/obj/item/stack/medical/gauze/G = O - reac_volume = min((reac_volume / 10), G.amount) - new/obj/item/stack/medical/suture(get_turf(G), reac_volume) + reac_volume = min((reac_volume / 5), G.amount) + new /obj/item/stack/medical/suture/five(get_turf(G), reac_volume) G.use(reac_volume) /datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 17cde0611b..ba7f9a30d5 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2528,7 +2528,7 @@ M.adjustStaminaLoss(-0.25*REM) // the more wounds, the more stamina regen ..() -datum/reagent/eldritch +/datum/reagent/eldritch name = "Eldritch Essence" description = "Strange liquid that defies the laws of physics" taste_description = "Ag'hsj'saje'sh" @@ -2663,3 +2663,32 @@ datum/reagent/eldritch M.SetSleeping(0, 0) ..() +//Nerdy card reagents + +/datum/reagent/card_powder + var/rarity = "Stoopid" + +/datum/reagent/card_powder/blue + name = "Blue Card Powder" + rarity = "Rare" + color = "#00B7EF" // blue + +/datum/reagent/card_powder/purple + name = "Purple Card Powder" + rarity = "Epic" + color = "#DA00FF" // purple + +/datum/reagent/card_powder/yellow + name = "Yellow Crayon Powder" + rarity = "Legendary" + color = "#FFF200" // yellow + +/datum/reagent/card_powder/green + name = "Green Crayon Powder" + rarity = "Common" + color = "#A8E61D" // green + +/datum/reagent/card_powder/black + name = "Black Crayon Powder" + rarity = "Exodia" + color = "#1C1C1C" // not quite black diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 0d0a234afc..c9fbf6928a 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -783,6 +783,8 @@ value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M) + return ..() // until fixed - the rotations never stop +/* if(M.hud_used) if(current_cycle >= 20 && current_cycle%20 == 0) var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], @@ -800,6 +802,7 @@ for(var/whole_screen in screens) animate(whole_screen, transform = matrix(), time = 5, easing = QUAD_EASING) ..() +*/ /datum/reagent/toxin/skewium name = "Skewium" diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index d4d66af240..f2e9bd9e1a 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -116,7 +116,10 @@ holder.remove_reagent(id, added_volume*temp_ratio) if(St.purity < 1) St.volume *= St.purity + added_volume *= St.purity St.purity = 1 + if(!N) + return var/amount = clamp(0.002, 0, N.volume) N.volume -= amount St.data["grown_volume"] = St.data["grown_volume"] + added_volume diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 019394e3c8..93a422e2f2 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -881,3 +881,29 @@ results = list(/datum/reagent/carbon = 1) required_reagents = list(/datum/reagent/cellulose = 1) required_temp = 512 + +//Nerdy card shit + +/datum/chemical_reaction/card_powder/blue + name = "Blue Card Powder" + id = /datum/reagent/card_powder/blue + results = list(/datum/reagent/card_powder/blue = 1) + required_reagents = list(/datum/reagent/card_powder/green = 12) + +/datum/chemical_reaction/card_powder/purple + name = "Purple Card Powder" + id = /datum/reagent/card_powder/purple + results = list(/datum/reagent/card_powder/purple = 1) + required_reagents = list(/datum/reagent/card_powder/blue = 12) + +/datum/chemical_reaction/card_powder/yellow + name = "Yellow Card Powder" + id = /datum/reagent/card_powder/yellow + results = list(/datum/reagent/card_powder/yellow = 1) + required_reagents = list(/datum/reagent/card_powder/purple = 12) + +/datum/chemical_reaction/card_powder/black + name = "Black Card Powder" + id = /datum/reagent/card_powder/black + results = list(/datum/reagent/card_powder/black = 1) + required_reagents = list(/datum/reagent/card_powder/yellow = 12) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 98a117ea69..acfda85963 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -104,31 +104,44 @@ return ..() /obj/item/reagent_containers/blood/attack(mob/living/carbon/C, mob/user, def_zone) - if(user.a_intent == INTENT_HELP && reagents.total_volume > 0 && iscarbon(C) && user.a_intent == INTENT_HELP) - if(C.is_mouth_covered()) - to_chat(user, "You cant drink from the [src] while your mouth is covered.") - return - if(user != C) - user.visible_message("[user] forces [C] to drink from the [src].", \ - "You force [C] to drink from the [src]") - if(!do_mob(user, C, 50)) - return - else - if(!do_mob(user, C, 10)) - return + if(!iscarbon(C) || user.a_intent != INTENT_HELP || reagents.total_volume <= 0) + ..() - to_chat(user, "You take a sip from the [src].") - user.visible_message("[user] puts the [src] up to their mouth.") - if(reagents.total_volume <= 0) // Safety: In case you spam clicked the blood bag on yourself, and it is now empty (below will divide by zero) + if(C.is_mouth_covered()) + if(user != C) + to_chat(user, "You can't force [C] to drink from [src] while their mouth is covered.") return - var/gulp_size = 3 - var/fraction = min(gulp_size / reagents.total_volume, 1) - reagents.reaction(C, INGEST, fraction) //checkLiked(fraction, M) // Blood isn't food, sorry. - reagents.trans_to(C, gulp_size) - reagents.remove_reagent(src, 2) //Inneficency, so hey, IVs are usefull. - playsound(C.loc,'sound/items/drink.ogg', rand(10, 50), TRUE) + to_chat(user, "You can't drink from [src] while your mouth is covered.") return - ..() + + if(!user.CheckActionCooldown()) + return + if(user != C) + user.visible_message("[user] forces [C] to drink from [src].", \ + "You force [C] to drink from [src]") + user.DelayNextAction(50) + if(do_mob(user, C, 50)) + do_drink(C, user) + + else + user.DelayNextAction(10) + if(do_mob(user, C, 10)) + user.visible_message("[user] puts [src] up to their mouth.", \ + "You take a sip from [src].") + do_drink(C, user) + + +/obj/item/reagent_containers/blood/proc/do_drink(mob/living/carbon/C, mob/user) + if(reagents.total_volume <= 0) // Safety: In case you spam clicked the blood bag on yourself, and it is now empty (below will divide by zero) + to_chat(user, "...and notice [src] is empty.") + return + var/gulp_size = 3 + var/fraction = min(gulp_size / reagents.total_volume, 1) + reagents.reaction(C, INGEST, fraction) //checkLiked(fraction, M) // Blood isn't food, sorry. + reagents.remove_any(5) //Inneficency, so hey, IVs are usefull. + reagents.trans_to(C, gulp_size) + playsound(C.loc,'sound/items/drink.ogg', rand(10, 50), TRUE) + /obj/item/reagent_containers/blood/bluespace name = "bluespace blood pack" diff --git a/code/modules/reagents/reagent_containers/chem_pack.dm b/code/modules/reagents/reagent_containers/chem_pack.dm index 78ae1a3070..77d6067d3b 100644 --- a/code/modules/reagents/reagent_containers/chem_pack.dm +++ b/code/modules/reagents/reagent_containers/chem_pack.dm @@ -44,8 +44,7 @@ else . += "Alt-click to seal it." - -obj/item/reagent_containers/chem_pack/attack_self(mob/user) +/obj/item/reagent_containers/chem_pack/attack_self(mob/user) if(sealed) return ..() diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 3ed946d0c5..bad9417dc8 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -48,7 +48,7 @@ safe_thing.create_reagents(100, NONE, NO_REAGENTS_VALUE) reagents.reaction(safe_thing, TOUCH, fraction) - trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this) + trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this, log = "failed squirt") target.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", \ "[user] tries to squirt something into [target]'s eyes, but fails!") @@ -67,7 +67,7 @@ var/mob/M = target log_combat(user, M, "squirted", reagents.log_list()) - trans = src.reagents.trans_to(target, amount_per_transfer_from_this) + trans = src.reagents.trans_to(target, amount_per_transfer_from_this, log = "dropper drop") to_chat(user, "You transfer [trans] unit\s of the solution.") update_icon() @@ -81,7 +81,7 @@ to_chat(user, "[target] is empty!") return - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, log = "dropper fill") to_chat(user, "You fill [src] with [trans] unit\s of the solution.") diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 1f89af420e..143025aed1 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -41,7 +41,7 @@ if(M.reagents) var/trans = 0 if(!infinite) - trans = reagents.trans_to(M, amount_per_transfer_from_this, log = TRUE) + trans = reagents.trans_to(M, amount_per_transfer_from_this, log = "hypospray injection") else trans = reagents.copy_to(M, amount_per_transfer_from_this) @@ -427,7 +427,7 @@ var/fraction = min(vial.amount_per_transfer_from_this/vial.reagents.total_volume, 1) vial.reagents.reaction(L, method, fraction) - vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, log = TRUE) + vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, log = "hypospray fill") var/long_sound = vial.amount_per_transfer_from_this >= 15 playsound(loc, long_sound ? 'sound/items/hypospray_long.ogg' : pick('sound/items/hypospray.ogg','sound/items/hypospray2.ogg'), 50, 1, -1) to_chat(user, "You [fp_verb] [vial.amount_per_transfer_from_this] units of the solution. The hypospray's cartridge now contains [vial.reagents.total_volume] units.") diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm index 5d94e78809..8a6e2bf2e7 100644 --- a/code/modules/reagents/reagent_containers/rags.dm +++ b/code/modules/reagents/reagent_containers/rags.dm @@ -39,7 +39,7 @@ C.visible_message("[user] is trying to smother \the [C] with \the [src]!", "[user] is trying to smother you with \the [src]!", "You hear some struggling and muffled cries of surprise.") if(do_after(user, 20, target = C)) reagents.reaction(C, INGEST) - reagents.trans_to(C, 5, log = TRUE) + reagents.trans_to(C, 5, log = "rag smother") C.visible_message("[user] has smothered \the [C] with \the [src]!", "[user] has smothered you with \the [src]!", "You hear some struggling and a heavy breath taken.") log_combat(user, C, "smothered", log_object) else @@ -107,7 +107,7 @@ reagents.clear_reagents() else msg += "'s liquids into \the [target]" - reagents.trans_to(target, reagents.total_volume, log = TRUE) + reagents.trans_to(target, reagents.total_volume, log = "rag squeeze dry") to_chat(user, "[msg].") return TRUE diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index b106005a15..ef3a053027 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -141,7 +141,7 @@ update_icon() /obj/machinery/disposal/proc/can_stuff_mob_in(mob/living/target, mob/living/user, pushing = FALSE) - if(!pushing && !iscarbon(user) && !user.ventcrawler) //only carbon and ventcrawlers can climb into disposal by themselves. + if(!pushing && !iscarbon(user) && !(SEND_SIGNAL(user, COMSIG_CHECK_VENTCRAWL))) //only carbon and ventcrawlers can climb into disposal by themselves. if(iscyborg(user)) var/mob/living/silicon/robot/borg = user if (!borg.module || !borg.module.canDispose) diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 8c934d39a9..11dd29a416 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -324,8 +324,7 @@ desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life." id = "flora_gun" build_type = PROTOLATHE - materials = list(/datum/material/iron = 2000, /datum/material/glass = 500) - reagents_list = list(/datum/reagent/radium = 20) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 500, /datum/material/uranium = 2000) build_path = /obj/item/gun/energy/floragun category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 9b19516f26..f3e14993ed 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -236,7 +236,7 @@ duration = -1 alert_type = null -datum/status_effect/rebreathing/tick() +/datum/status_effect/rebreathing/tick() owner.adjustOxyLoss(-6, 0) //Just a bit more than normal breathing. /////////////////////////////////////////////////////// @@ -469,6 +469,10 @@ datum/status_effect/rebreathing/tick() qdel(src) return ..() +/datum/status_effect/stabilized/Destroy() + linked_extract = null + return ..() + /datum/status_effect/stabilized/null //This shouldn't ever happen, but just in case. id = "stabilizednull" @@ -524,7 +528,7 @@ datum/status_effect/rebreathing/tick() ADD_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus") return ..() -datum/status_effect/stabilized/blue/on_remove() +/datum/status_effect/stabilized/blue/on_remove() REMOVE_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus") return ..() @@ -884,7 +888,8 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/oil/tick() if(owner.stat == DEAD) explosion(get_turf(owner),1,2,4,flame_range = 5) - owner.remove_status_effect(/datum/status_effect/stabilized/oil) + qdel(linked_extract) + return return ..() /datum/status_effect/stabilized/black diff --git a/code/modules/ruins/lavalandruin_code/alien_nest.dm b/code/modules/ruins/lavalandruin_code/alien_nest.dm index d98a6bf5c1..c204102b1b 100644 --- a/code/modules/ruins/lavalandruin_code/alien_nest.dm +++ b/code/modules/ruins/lavalandruin_code/alien_nest.dm @@ -5,6 +5,24 @@ name = "alien drone" mob_name = "alien drone" +/obj/effect/mob_spawn/alien/corpse/humanoid/hunter + mob_type = /mob/living/carbon/alien/humanoid/hunter + death = TRUE + name = "alien hunter" + mob_name = "alien hunter" + +/obj/effect/mob_spawn/alien/corpse/humanoid/sentinel + mob_type = /mob/living/carbon/alien/humanoid/sentinel + death = TRUE + name = "alien sentinel" + mob_name = "alien sentinel" + +/obj/effect/mob_spawn/alien/corpse/humanoid/praetorian + mob_type = /mob/living/carbon/alien/humanoid/royal/praetorian + death = TRUE + name = "alien praetorian" + mob_name = "alien praetorian" + /obj/effect/mob_spawn/alien/corpse/humanoid/queen mob_type = /mob/living/carbon/alien/humanoid/royal/queen death = TRUE diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm index e389b32a94..7488bdd205 100644 --- a/code/modules/shuttle/spaceship_navigation_beacon.dm +++ b/code/modules/shuttle/spaceship_navigation_beacon.dm @@ -21,7 +21,7 @@ . = ..() SSshuttle.beacons |= src -obj/machinery/spaceship_navigation_beacon/emp_act() +/obj/machinery/spaceship_navigation_beacon/emp_act() locked = TRUE /obj/machinery/spaceship_navigation_beacon/Destroy() diff --git a/code/modules/smithing/finished_items.dm b/code/modules/smithing/finished_items.dm index 5db6b09452..20eaee8a08 100644 --- a/code/modules/smithing/finished_items.dm +++ b/code/modules/smithing/finished_items.dm @@ -231,7 +231,7 @@ /obj/item/melee/smith/twohand/katana name = "katana" - icon_state = "katana" + icon_state = "katana-s" overlay_state = "katanahilt" force = 7 wielded_mult = 2 diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 311c886c9d..f41f299439 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -36,6 +36,6 @@ log_combat(owner, null, "swallowed an implanted pill", target) if(target.reagents.total_volume) target.reagents.reaction(owner, INGEST) - target.reagents.trans_to(owner, target.reagents.total_volume, log = TRUE) + target.reagents.trans_to(owner, target.reagents.total_volume, log = "dental pill swallow") qdel(target) return 1 diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index a088eb2e4f..09f0a901a3 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -404,6 +404,7 @@ on_mob.set_light(1, 1, current_color_string) /obj/effect/abstract/eye_lighting + mouse_opacity = MOUSE_OPACITY_TRANSPARENT var/obj/item/organ/eyes/robotic/glow/parent /obj/effect/abstract/eye_lighting/Initialize() diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 6b3d47b587..aaa4e34f36 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -97,7 +97,7 @@ owner.set_heartattack(TRUE) failed = TRUE -obj/item/organ/heart/slime +/obj/item/organ/heart/slime name = "slime heart" desc = "It seems we've gotten to the slimy core of the matter." icon_state = "heart-s-on" @@ -221,7 +221,7 @@ obj/item/organ/heart/slime var/rid = /datum/reagent/medicine/epinephrine var/ramount = 10 -obj/item/organ/heart/cybernetic/upgraded/on_life() +/obj/item/organ/heart/cybernetic/upgraded/on_life() . = ..() if(!.) return diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index a3edfc2887..7cba3d358a 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -25,6 +25,7 @@ /datum/language/slime, /datum/language/vampiric, /datum/language/dwarf, + /datum/language/signlanguage, )) healing_factor = STANDARD_ORGAN_HEALING*5 //Fast!! decay_factor = STANDARD_ORGAN_DECAY/2 diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 47b504c86e..064abf1700 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -1,4 +1,5 @@ #define COOLDOWN_STUN 1200 +#define COOLDOWN_KNOCKDOWN 600 #define COOLDOWN_DAMAGE 600 #define COOLDOWN_MEME 300 #define COOLDOWN_NONE 100 @@ -213,7 +214,6 @@ var/static/regex/stun_words = regex("stop|wait|stand still|hold on|halt") var/static/regex/knockdown_words = regex("drop|fall|trip|knockdown") - var/static/regex/sleep_words = regex("sleep|slumber|rest") var/static/regex/vomit_words = regex("vomit|throw up|sick") var/static/regex/silence_words = regex("shut up|silence|be silent|ssh|quiet|hush") var/static/regex/hallucinate_words = regex("see the truth|hallucinate") @@ -264,26 +264,20 @@ cooldown = COOLDOWN_STUN for(var/V in listeners) var/mob/living/L = V - L.Stun(60 * power_multiplier) + L.Stagger(60 * power_multiplier) //KNOCKDOWN else if(findtext(message, knockdown_words)) - cooldown = COOLDOWN_STUN + cooldown = COOLDOWN_KNOCKDOWN for(var/V in listeners) var/mob/living/L = V - L.DefaultCombatKnockdown(60 * power_multiplier) - - //SLEEP - else if((findtext(message, sleep_words))) - cooldown = COOLDOWN_STUN - for(var/mob/living/carbon/C in listeners) - C.Sleeping(40 * power_multiplier) + L.DefaultCombatKnockdown() //VOMIT else if((findtext(message, vomit_words))) - cooldown = COOLDOWN_STUN + cooldown = COOLDOWN_DAMAGE for(var/mob/living/carbon/C in listeners) - C.vomit(10 * power_multiplier, distance = power_multiplier) + C.vomit(10 * power_multiplier, distance = power_multiplier, stun = FALSE) //SILENCE else if((findtext(message, silence_words))) diff --git a/code/modules/tcg/cards.dm b/code/modules/tcg/cards.dm new file mode 100644 index 0000000000..970aef0bba --- /dev/null +++ b/code/modules/tcg/cards.dm @@ -0,0 +1,714 @@ +#define TAPPED_ANGLE 90 +#define UNTAPPED_ANGLE 0 + +#define COMMON_SERIES list(/datum/tcg_card/pack_1, /datum/tcg_card/exodia) //So star cards don't drop + +/datum/tcg_card + var/name = "Stupid Coder" + var/desc = "A coder that fucked up this card. Report if you see this." + var/rules = "Tap this card. It will ahelp itself" + var/icon_state = "cardback" + var/pack = 'icons/obj/tcg/pack_1.dmi' + + var/mana_cost = 0 + var/attack = 0 + var/health = 0 + + var/faction = "Coderbus" + var/rarity = "Stoopid" + var/card_type = "Unit" + + var/obj/item/tcg_card/card + +/*Uncomment if you want to make the game automatic + +/datum/tcg_card/proc/Use(datum/tcg_card/affected_card, mob/living/user) + if(card_type == "Equipment") + affected_card.health += health + affected_card.attack += attack + to_chat(user, "You use [card] on [affected_card.card], upgrading it's stats.") + user.emote("uses [card] on [affected_card.card], upgrading it's stats.") //To get that visible emote. Useful if you want nice gameplay + else if (card_type == "Unit") + affected_card.health -= attack + health -= affected_card.attack + var/flavortext = "." + if(affected_card.health <= 0) + flavortext = ", killing [affected_card.card]!" + if(health <= 0) + flavortext = ", killing both [affected_card.card] and [card]!" + else + flavortext = ", killing [card] in the process!" + to_chat(user, "You attack [affected_card.card] with [card][flavortext]") + user.emote("attacks [affected_card.card] with [card][flavortext]") + +*/ + +/datum/tcg_card/proc/UseSelf(mob/living/user) + return + +/datum/tcg_card/proc/Tap(mob/living/user) //Actually runtimes on tap! Tapping is basically disabling a card for a turn in exchange for special effects + if(type == /datum/tcg_card) + log_runtime("[user] managed to get a blank TCG card.") + +/datum/tcg_card/proc/Untap(mob/living/user) + return + +/datum/tcg_card/proc/Reset(mob/living/user) + to_chat(user, "You reset [card]'s stats to original.") + mana_cost = initial(mana_cost) + rules = initial(rules) + health = initial(health) + attack = initial(attack) + faction = initial(faction) + +/obj/item/tcg_card + name = "TCG card" + desc = "A flipped TCG-branded card." + icon_state = "cardback" + icon = 'icons/obj/tcg/pack_1.dmi' + + var/datum_type = /datum/tcg_card + var/datum/tcg_card/card_datum + + w_class = WEIGHT_CLASS_TINY + + var/flipped = FALSE + var/tapped = FALSE + var/special = FALSE + var/illegal = FALSE + +/obj/item/tcg_card/special + special = TRUE + +/obj/item/tcg_card/examine(mob/user) + . = ..() + sleep(2) //So it prints this shit after the examine + if(flipped) + return + to_chat(user, "This card has following stats:") + to_chat(user, "Mana cost: [card_datum.mana_cost]") + to_chat(user, "Health: [card_datum.health]") + to_chat(user, "Attack: [card_datum.attack]") + to_chat(user, "Faction: [card_datum.faction]") + to_chat(user, "Rarity: [card_datum.rarity]") + to_chat(user, "Card Type: [card_datum.card_type]") + to_chat(user, "It's effect is: [card_datum.rules]") + if(illegal) + to_chat(user, "It's a low-quality copy of a real card. TCG Gaming Community won't probably accept it.") //Doesn't do crap, just for lulz + +/obj/item/tcg_card/openTip(location, control, params, user) //Overriding for nice UI + if(flipped) + return ..() + var/desc_content = "[desc]
\ + This card has following stats:
\ + Mana cost: [card_datum.mana_cost]
\ + Health: [card_datum.health]
\ + Attack: [card_datum.attack]
\ + Faction: [card_datum.faction]
\ + Rarity: [card_datum.rarity]
\ + Card Type: [card_datum.card_type]
\ + It's effect is: [card_datum.rules]" + openToolTip(user,src,params,title = name,content = desc_content,theme = "") + +/obj/item/tcg_card/New(loc, new_datum, illegal_card = FALSE) + . = ..() + if(!special) + datum_type = new_datum + card_datum = new datum_type + icon = card_datum.pack + icon_state = card_datum.icon_state + name = card_datum.name + desc = card_datum.desc + illegal = illegal_card + + switch(card_datum.rarity) + if("Common") + grind_results = list(/datum/reagent/card_powder/green = 1) + if("Rare") + grind_results = list(/datum/reagent/card_powder/blue = 1) + if("Epic") + grind_results = list(/datum/reagent/card_powder/purple = 1) + if("Legendary") + grind_results = list(/datum/reagent/card_powder/yellow = 1) + if("Exodia") + grind_results = list(/datum/reagent/card_powder/black = 1) + +/obj/item/tcg_card/attack_hand(mob/user) + var/list/possible_actions = list( + "Pick Up" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_pickup"), + "Tap" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_tap"), + "Flip" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_flip") + ) + var/result = show_radial_menu(user, src, possible_actions, require_near = TRUE, tooltips = TRUE) + switch(result) + if("Pick Up") + . = ..() + if("Flip") + flipped = !flipped + if(flipped) + icon_state = "cardback" + name = "TCG card" + desc = "A flipped TCG-branded card." + else + name = card_datum.name + desc = card_datum.desc + icon_state = card_datum.icon_state + if("Tap") + var/matrix/ntransform = matrix(transform) + if(tapped) + ntransform.TurnTo(TAPPED_ANGLE , UNTAPPED_ANGLE) + else + ntransform.TurnTo(UNTAPPED_ANGLE , TAPPED_ANGLE) + tapped = !tapped + animate(src, transform = ntransform, time = 2, easing = (EASE_IN|EASE_OUT)) + if(tapped) + card_datum.Tap(user) + else + card_datum.Untap(user) + +/obj/item/tcg_card/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/tcg_card)) + var/obj/item/tcg_card/second_card = I + if(loc == user && second_card.loc == user) + var/obj/item/tcgcard_hand/hand = new(get_turf(user)) + src.forceMove(hand) + second_card.forceMove(hand) + hand.cards.Add(src) + hand.cards.Add(second_card) + user.put_in_hands(hand) + hand.update_icon() + return ..() + var/obj/item/tcgcard_deck/new_deck = new /obj/item/tcgcard_deck(drop_location()) + new_deck.flipped = flipped + user.transferItemToLoc(second_card, new_deck)//Start a new pile with both cards, in the order of card placement. + user.transferItemToLoc(src, new_deck) + new_deck.update_icon_state() + user.put_in_hands(new_deck) + new_deck.update_icon() + if(istype(I, /obj/item/tcgcard_deck)) + var/obj/item/tcgcard_deck/old_deck = I + if(length(old_deck.contents) >= 30) + to_chat(user, "This pile has too many cards for a regular deck!") + return + user.transferItemToLoc(src, old_deck) + flipped = old_deck.flipped + old_deck.update_icon() + update_icon() + return ..() + +/obj/item/tcg_card/attack_self(mob/user) + var/list/possible_actions = list( + "Reset to Default" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_reset"), + "Change stats" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_change_stats") + ) + var/result = show_radial_menu(user, src, possible_actions, require_near = TRUE, tooltips = TRUE) + switch(result) + if("Reset to Default") + card_datum.Reset(user) + user.visible_message("[user] resets [src]'s stats.") + if("Change stats") + possible_actions = list( + "Health" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_health"), + "Attack" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_attack"), + "Mana" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_mana") + ) + result = show_radial_menu(user, src, possible_actions, require_near = TRUE, tooltips = TRUE) + switch(result) + if("Health") + card_datum.health = input(user, "What do you want health to be?", "Changing [src]'s health") as num|null + if("Attack") + card_datum.attack = input(user, "What do you want attack to be?", "Changing [src]'s attack") as num|null + if("Mana") + card_datum.mana_cost = input(user, "What do you want mana cost to be?", "Changing [src]'s mana cost") as num|null + user.visible_message("[user] changes [src]'s [result].") + +/obj/item/tcg_card/equipped(mob/user, slot, initial) + . = ..() + transform = matrix() + +/obj/item/tcg_card/dropped(mob/user, silent) + . = ..() + transform = matrix(0.5,0,0,0,0.5,0) + +/obj/item/cardpack + name = "Trading Card Pack: Coder" + desc = "Contains six complete fuckups by the coders. Report this on github please!" + icon = 'icons/obj/tcg/misc.dmi' + icon_state = "cardpack" + w_class = WEIGHT_CLASS_TINY + ///The card series to look in + var/list/series = list(/datum/tcg_card/pack_1, /datum/tcg_card/exodia) + ///Chance of the pack having a coin in it out of 10 + var/contains_coin = -1 + ///The amount of cards to draw from the rarity table + var/card_count = 5 + ///The rarity table, the set must contain at least one of each + var/list/rarity_table = list( + "Common" = 900, + "Rare" = 300, + "Epic" = 50, + "Legendary" = 3, + "Exodia" = 1) //Basically 0.1%, it doesn't have guar. rarity + ///The amount of cards to draw from the guarenteed rarity table + var/guaranteed_count = 1 + ///The guaranteed rarity table, acts about the same as the rarity table. it can have as many or as few raritys as you'd like + var/list/guar_rarity = list( + "Legendary" = 1, + "Epic" = 9, + "Rare" = 30) + + var/illegal = FALSE //Can cargo get it? + + custom_price = PRICE_EXPENSIVE + +/obj/item/cardpack/series_one + name = "Trading Card Pack: 2560 Core Set" + desc = "Contains six cards of varying rarity from the 2560 Core Set. Collect them all!" + icon_state = "cardpack" + series = list(/datum/tcg_card/pack_1, /datum/tcg_card/exodia) + contains_coin = 10 + +/obj/item/cardpack/syndicate //More cards. Perfect stuff for gaming gang + name = "Trading Card Pack: Nuclear Danger" + desc = "Contains twelve cards of varying rarity from 2560 Core Set and 2560 Nuclear Danger. This pack was stamped by Waffle Co." + icon_state = "cardpack_syndicate" + series = list(/datum/tcg_card/pack_1, /datum/tcg_card/pack_nuclear) + contains_coin = 100 + + card_count = 9 + guaranteed_count = 3 + + guar_rarity = list( //Better chances + "Legendary" = 5, + "Epic" = 10, + "Rare" = 30) + +/obj/item/cardpack/equipped(mob/user, slot, initial) + . = ..() + transform = matrix() + +/obj/item/cardpack/dropped(mob/user, silent) + . = ..() + transform = matrix(0.5,0,0,0,0.5,0) + +/obj/item/cardpack/attack_self(mob/user) + . = ..() + var/list/cards = buildCardListWithRarity(card_count, guaranteed_count) + var/obj/item/tcgcard_hand/hand = new(get_turf(user)) + for(var/template in cards) + var/obj/item/tcg_card/card = new(hand, template, illegal) + hand.cards.Add(card) + user.put_in_hands(hand) + hand.update_icon() + to_chat(user, "Wow! Check out these cards!
") + playsound(loc, 'sound/items/poster_ripped.ogg', 20, TRUE) + if(prob(contains_coin)) + to_chat(user, "...and it came with a flipper, too!
") + new /obj/item/coin/thunderdome(get_turf(user)) + new /obj/item/tcg_rules(get_turf(user)) + qdel(src) + +/obj/item/cardpack/proc/buildCardListWithRarity(card_cnt, rarity_cnt) + var/list/return_cards = list() + + var/list/cards = list() + for(var/card_type in series) + for(var/card in subtypesof(card_type)) + var/datum/tcg_card/new_card = new card() + if(new_card.name == "Stupid Coder") + continue + cards.Add(card) + qdel(new_card) + var/list/possible_cards = list() + var/list/rarity_cards = list("Exodia" = list(), "Legendary" = list(), "Epic" = list(), "Rare" = list(), "Common" = list()) + for(var/card in cards) + var/datum/tcg_card/new_card = new card() + if(new_card.name == "Stupid Coder") + continue + possible_cards[card] = rarity_table[new_card.rarity] + var/list/rarity_card_type = rarity_cards[new_card.rarity] + if(!rarity_card_type) + rarity_card_type = list() + rarity_card_type.Add(card) + rarity_cards[new_card.rarity] = rarity_card_type //FUCK CI + qdel(new_card) + + for(var/card_counter = 1 to card_count) + var/cardtype = pickweight(possible_cards) + return_cards.Add(cardtype) + + for(var/card_counter = 1 to guaranteed_count) + var/card_list = pickweight(guar_rarity) + return_cards.Add(pick(rarity_cards[card_list])) + + return return_cards + +/obj/item/coin/thunderdome + name = "Thunderdome Flipper" + desc = "A Thunderdome TCG flipper, for deciding who gets to go first. Also conveniently acts as a counter, for various purposes." + icon = 'icons/obj/tcg/misc.dmi' + icon_state = "coin_nanotrasen" + custom_materials = list(/datum/material/plastic = 400) + material_flags = NONE + sideslist = list("nanotrasen", "syndicate") + +/obj/item/coin/thunderdome/Initialize() + . = ..() + transform = matrix(0.5,0,0,0,0.5,0) + +/obj/item/coin/thunderdome/equipped(mob/user, slot, initial) + . = ..() + transform = matrix() + +/obj/item/coin/thunderdome/dropped(mob/user, silent) + . = ..() + transform = matrix(0.5,0,0,0,0.5,0) + +/obj/item/tcgcard_deck + name = "Trading Card Pile" + desc = "A stack of TCG cards." + icon = 'icons/obj/tcg/misc.dmi' + icon_state = "deck_up" + + var/flipped = FALSE + + var/static/radial_draw = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_draw") + var/static/radial_shuffle = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_shuffle") + var/static/radial_pickup = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_pickup") + +/obj/item/tcgcard_deck/Initialize() + . = ..() + LoadComponent(/datum/component/storage/concrete/tcg) + +/obj/item/tcgcard_deck/update_icon_state() + . = ..() + if(flipped) + switch(contents.len) + if(1 to 10) + icon_state = "deck_tcg_low" + if(11 to 20) + icon_state = "deck_tcg_half" + if(21 to INFINITY) + icon_state = "deck_tcg_full" + else + icon_state = "deck_up" + +/obj/item/tcgcard_deck/examine(mob/user) + . = ..() + . += "\The [src] has [contents.len] cards inside." + +/obj/item/tcgcard_deck/attack_hand(mob/user) + var/list/choices = list( + "Draw" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_draw"), + "Shuffle" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_shuffle"), + "Pickup" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_pickup"), + "Flip" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_flip"), + ) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + if(!check_menu(user)) + return + switch(choice) + if("Draw") + draw_card(user) + if("Shuffle") + shuffle_deck(user) + if("Pickup") + user.put_in_hands(src) + if("Flip") + flip_deck() + +/obj/item/tcgcard_deck/Destroy() + for(var/card in 1 to contents.len) + var/obj/item/tcg_card/stored_card = contents[card] + stored_card.forceMove(drop_location()) + . = ..() + +/obj/item/tcgcard_deck/proc/check_menu(mob/living/user) + if(!istype(user)) + return FALSE + if(user.incapacitated() || !user.Adjacent(src)) + return FALSE + return TRUE + +/obj/item/tcgcard_deck/attackby(obj/item/I, mob/living/user, params) + . = ..() + if(istype(I, /obj/item/tcg_card)) + if(contents.len > 30) + to_chat(user, "This pile has too many cards for a regular deck!") + return FALSE + var/obj/item/tcg_card/new_card = I + new_card.flipped = flipped + new_card.forceMove(src) + +/obj/item/tcgcard_deck/attack_self(mob/living/carbon/user) + shuffle_deck(user) + return ..() + +/obj/item/tcgcard_deck/proc/draw_card(mob/user) + if(!contents.len) + CRASH("A TCG deck was created with no cards inside of it.") + var/obj/item/tcg_card/drawn_card = contents[contents.len] + user.put_in_hands(drawn_card) + drawn_card.flipped = flipped //If it's a face down deck, it'll be drawn face down, if it's a face up pile you'll draw it face up. + drawn_card.update_icon_state() + user.visible_message("[user] draws a card from \the [src]!", \ + "You draw a card from \the [src]!") + if(contents.len <= 1) + var/obj/item/tcg_card/final_card = contents[1] + user.transferItemToLoc(final_card, drop_location()) + qdel(src) + +/obj/item/tcgcard_deck/proc/shuffle_deck(mob/user, visable = TRUE) + if(!contents) + return + contents = shuffle(contents) + if(user.active_storage) + user.active_storage.close(user) + if(visable) + user.visible_message("[user] shuffles \the [src]!", \ + "You shuffle \the [src]!") + +/obj/item/tcgcard_deck/proc/flip_deck() + flipped = !flipped + var/list/temp_deck = contents.Copy() + contents = reverseRange(temp_deck) + //Now flip the cards to their opposite positions. + for(var/a in 1 to contents.len) + var/obj/item/tcg_card/nu_card = contents[a] + nu_card.flipped = flipped + nu_card.update_icon_state() + update_icon_state() + +/obj/item/tcgcard_hand + name = "Trading Card Hand" + desc = "A hand full of TCG cards." + icon = 'icons/effects/effects.dmi' + icon_state = "nothing" + w_class = WEIGHT_CLASS_TINY + var/list/cards = list() + +/obj/item/tcgcard_hand/update_icon() + . = ..() + cut_overlays() + var/angular = length(cards) / 2 * -30 + 15 + for(var/obj/item/tcg_card/card in cards) + var/image/I = image(icon = card.icon, icon_state = card.icon_state) + var/matrix/ntransform = matrix(I.transform) + ntransform.TurnTo(angular, 0) + ntransform.Translate(sin(angular) * -15, cos(angular) * 15) + I.transform = ntransform + angular += 30 + overlays += I + +/obj/item/tcgcard_hand/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/tcg_card)) + var/obj/item/tcg_card/card = I + if(loc == user && card.loc == user) + card.forceMove(src) + cards.Add(card) + update_icon() + . = ..() + +/obj/item/tcgcard_hand/attack_hand(mob/living/carbon/user) + if(loc == user) + var/list/choices = list() + for(var/obj/item/tcg_card/card in cards) + choices[card] = image(icon = card.icon, icon_state = card.icon_state) + var/obj/item/tcg_card/choice = show_radial_menu(user, src, choices, require_near = TRUE, tooltips = TRUE) + if(choice) + choice.forceMove(get_turf(src)) + user.put_in_hands(choice) + cards.Remove(choice) + update_icon() + if(length(cards) == 0) + qdel(src) + return + . = ..() + +/obj/item/tcgcard_binder + name = "Trading Card Binder" + desc = "A TCG-branded card binder, specifically for your infinite collection of TCG cards!" + icon = 'icons/obj/tcg/misc.dmi' + icon_state = "binder" + + var/list/cards = list() + var/mode = 0 //If 1, will show all the cards even if you don't have em + +/obj/item/tcgcard_binder/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/tcg_card)) + var/obj/item/tcg_card/card = I + card.forceMove(src) + cards.Add(card) + . = ..() + +/obj/item/tcgcard_binder/attack_self(mob/living/carbon/user) + mode = !mode + to_chat(user, "[src] now shows you [mode ? "all the different cards" : "the cards you already have"].") + +/obj/item/tcgcard_binder/attack_hand(mob/living/carbon/user) + if(loc == user) + var/list/choices = list() + if(mode) + var/card_types = list() + + for(var/obj/item/tcg_card/card in cards) + card_types[card.datum_type] = card + + for(var/card_type in subtypesof(/datum/tcg_card)) + if(card_type in card_types) + var/obj/item/tcg_card/card = card_types[card_type] + choices[card] = image(icon = card.icon, icon_state = card.icon_state) + continue + + var/datum/tcg_card/card_dat = new card_type + if(card_dat.name == "Stupid Coder") + continue + var/image/I = image(icon = card_dat.pack, icon_state = card_dat.icon_state) + I.color = "#999999" + choices[card_dat.name] = I + qdel(card_dat) + else + for(var/obj/item/tcg_card/card in cards) + choices[card] = image(icon = card.icon, icon_state = card.icon_state) + var/obj/item/tcg_card/choice = show_radial_menu(user, src, choices, require_near = TRUE, tooltips = TRUE) + if(choice && (choice in cards)) + choice.forceMove(get_turf(src)) + user.put_in_hands(choice) + cards.Remove(choice) + + if(choice) + return + . = ..() + +/obj/item/tcgcard_binder/proc/check_for_exodia() + var/list/card_types = list() + for(var/obj/item/tcg_card/card in cards) + card_types.Add(card.datum_type) + + for(var/card_type in subtypesof(/datum/tcg_card)) + var/datum/tcg_card/card_dat = new card_type + + if(card_dat.name == "Eldritch Horror" && (card_type in card_types)) //We already have Exodia saved + qdel(card_dat) + return + + if(card_dat.name == "Stupid Coder" || card_dat.name == "Eldritch Horror") //It would be stupid if we require exodia or system cards to get exodia + continue + qdel(card_dat) + if(!(card_type in card_types)) + return + + var/obj/item/tcg_card/card = new(get_turf(src), /datum/tcg_card/exodia/exodia) + card.forceMove(src) + cards.Add(card) + +/obj/item/tcgcard_binder/full/Initialize() //For admemes. + . = ..() + for(var/cardtype in subtypesof(/datum/tcg_card)) + var/obj/item/tcg_card/card = new(get_turf(src), cardtype) + if(card.card_datum.name == "Stupid Coder") + qdel(card) + continue + card.forceMove(src) + cards.Add(card) + +/obj/item/tcg_rules + name = "TCG Rulebook" + desc = "A small rulebook containing a starter guide for TCG." + icon = 'icons/obj/tcg/misc.dmi' + icon_state = "deck_low" + w_class = WEIGHT_CLASS_TINY + +/obj/item/tcg_rules/examine(mob/user) + . = ..() + . += "*---------* \n\ + Welcome to the Exciting world of Tactical Card Game! Sponsored by Nanotrasen Edu-tainment Devision. \n \ + Core Rules: \n \ + Tactical Card Game (Also known as TCG) is a traditional trading card game. It's played between two players, each with a deck or collection of cards. \n \ + + Each player's deck contains up to 30 cards. Each player's hand can hold a maximum of 7 cards. At the end of your turn, if you have more than 7 cards, you must choose cards to discard to your discard pile until you have 7 cards. \n \ + To begin a match, both players must flip a coin to decide who goes first. The winner of the coin toss then decides if they go first or second. Before the match begins each player draws 5 cards each with the ability to mulligan cards from their hand facedown once (Basically, you get a first pass where you can replace cards in your hands back into your deck, shuffle your deck, then draw until you're back to 5). \n \ + Each player begins with 1 Max Mana to start with, which serves as the cost to playing cards. \n \ + + In order to play the TCG, a deck is required. As stated above, decks must contain up to 30 cards. \n \ + Additionally, to save cards you need to have a card binder on yourself to store the cards. When the shift ends, your cards will be automatically saved by integrated scanners in your card binder. \n \ + Finally, a stock of Thunderdome Flippers to use for coin tosses and counter effects is recommended- these can be obtained occasionally from cardpacks, but any coin will do. \n \ + + Win condition is simple - kill your opponent's hero by depleting all of their 20 lifeshards. \n \ + + Gameplay Phases: \n \ + + A single turn of the game goes as follows, and the order of card effects is very similar to other card games. Within a single turn, the following phases are gone through, in order, unless otherwise altered by a card effect. Turn Phases are the Draw Phase, Effect Phase 1, Play Phase, Combat Phase, Effect Phase 2, and the End Phase. \n \ + + During the draw phase, the player whose turn it is untaps all their cards, then draws a single card. They gain 1 Max Mana, and their Mana is refilled. Cards with missing health due to defending, attacking, or damage effects return to max health at the end of the draw phase. \n \ + During the First Effect Phase, this is when effects that take place at the start of your turn would occur. If an opponent's effect takes place at the start of your turn, their effects will always take place first, then yours, unless otherwise stated by a card effect. If an opponent's effect would cause you to lose the game, and your effects would prevent that condition from happening afterwards, you would lose the game. As a general roll, when it's your turn, your opponent's effects take place FIRST, then yours. \n \ + + During the Play Phase, this is when you can play, summon, or activate your own cards. Card Effects that don't state when they're activated MUST be activated during the Play Phase. Your opponent can also activate their own card effects in response to one of your actions during your play phase, if able. Any card played during the play phase can activate its effect as soon as it's played. More details within the Card Breakdown section. \n \ + + During the Battle Phase, a Unit Card is able to battle other Unit Cards, or attack their opponent once per turn. Neither player can attack on their first turn, and all cards that enter the field can attack as soon as they can, unless it is that player's first turn, or they are prevented by a card effect. More details within the Card Combat section. \n \ + + During the End Phase, end of turn effects will occur. If the active player has more than 7 cards in their hand by this point, this is when they must discard cards. All of the player's cards who used an effect at any point in the turn are refreshed, and able to use their effect again going into the opponent's turn. By the end of their turn, if the player has more than 7 cards, they must discard cards from their hand until 7 remain. \n \ + After all 5 phases have passed, the players turn officially ends, and the opponent begins their turn, starting anew from the draw phase. \n \ + + Card effects are typically limited to the turn that that card is played. For example, a card effect that provides a card +1/+1 attack/health would only last until the end of the turn, unless otherwise stated, OR if the card is an Equipment Card. More on those below. \n \ + + Card Breakdown: \n \ + + Within the game, there are 3 kinds of cards (So far), Unit, Equipment and Spell cards. \n \ + + Unit Cards. All Unit Cards have 4 core values to keep in mind, Attack, Health, Faction, and Summoning Cost. Attack serves as a card's offensive value in combat. Health serves as a card's defensive value in combat, and doubles as a card's health. Factions are groupings of cards that can often share effects and traits together. Summoning Cost is how much mana a card needs in order to be summoned. \n \ + + Equipment Cards. All Equipment Cards similarly to Unit Cards have Attack, Health, and Summon Cost values, but for equipment, these values are added to the attached card's values. Equipment can only be attached (Equip) to units, and they last until the unit dies, or otherwise leaves the field, following it's equipt card. If returned to the hand, send to the discard pile, or otherwise leaves the field, it is detatched from the equipt card. When a Equipment Card increases a card's attack or health, those effects stay on the equip card until the equipment is unequip or removed from the parent card. \n \ + If a card would have it's health decreased by having it's equip card removed, it's handled by having it's maximum health decreased, not it's current health. For example, lets say you had a card with 1/1 attack/health, and give it an equipment giving it +1/+2, then that card enters combat, dropping it down to 2/1. If by an opponent's card effect it lost that +1/+2 equipment now, it's stats would be 1/1 once again. If an equip card explicitly lowers a card's stats, it is possible for a card to be killed as a result, but drops in attack will always bottom out at 0 attack at any given time. \n \ + + Spell Cards. Spell Cards don't have attack or health values, instead, they activate their effects as soon as they are summoned and leave the field afterwards(if not stated otherwise). \n \ + + Card Subtypes: \n \ + + Card effects: \n \ + Asimov - Unit cannot attack units with Human subtype \n \ + Changeling - Unit posesses all the subtypes at the same time \n \ + Greytide - On summon, unit gains amount of power equal to amount of other units with Greytide for 1 turn \n \ + Holy - Unit can't be targeted by spells \n \ + Taunt - All opposing unit attacks must be directed towards the unit with Taunt. \n \ + First Strike - This unit attacks first. If attacked unit is dead, unit doesn't recieve damage from it. \n \ + Deadeye - This unit can always hit opponents, regardless of effects or immunities. \n \ + Squad Tactics - When this unit attacks an opponent's unit and defeats it in combat, the owner of the defeated card takes 1 lifeshard of damage from combat. \n \ + Immunity - The unit cannot be affected by card effects or combat of its immunity type. This includes both friendly and opposing effects. \n \ + Fury - The unit must attack at every possibility. \n \ + Blocker - The unit cannot declare attacks, but can defend. \n \ + Hivemind - The unit enters combat with a hivemind token on it. The first time this card would take damage, remove that token instead. This does not apply to instant removal effects, only points of damage. \n \ + Clockwork - The unit can copy a single keyword on another unit on the field, until they lose the clockwork keyword or leave the field. \n \ + + Card Combat: \n \ + + Card combat is determined as follows. On your turn, any non-tapped unit card with a positive attack power is capable of declaring an attack. Upon declaring an attack, you must state if you're attacking your opponent directly, or if you're going to attack a specific opponent's unit. Unless otherwise stated, cards can only attack or defend one time per turn. \n \ + + An attack against a unit healths as follows: Both units will do their power as damage to the opponent's unit's health. Damage is typically dealt at the same time, and if both units would kill each other through combat, both are destroyed at the same time. If One or both units would not be destroyed by combat, they would have their health reduced by the difference of their health minus their opponent's power, until the start of your next turn. If the attacker or defender has a keyword or effect that prevents them from attacking their opponent (Like silicon, immunity), then they are not able to attack, but may still defend against the opponent's attack. Once combat has healthd, all remaining participants become tapped. \n \ + + A direct attack healths as follows: The attacking unit declares an attack against the opponent's lifeshards. Your opponent may then declare a defender if one is available, who will then turn the combat into an attack against a unit for the purposes of combat that turn. If the attack is not blocked, and the direct attack connects, then your opponent loses a number of lifeshards equal to the attacking units power. " + +/obj/item/cardboard_card + name = "cardboard card cutout" + desc = "A small piece of cardboard shaped as a TCG card." + icon = 'icons/obj/tcg/misc.dmi' + icon_state = "template" + +/datum/reagent/card_powder/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/cardboard_card)) + var/list/possible_cards = list() + for(var/card_series in COMMON_SERIES) + for(var/card_type in subtypesof(card_series)) + var/datum/tcg_card/card = new card_type + if(card.rarity == rarity) + possible_cards.Add(card_type) + qdel(card) + if(length(possible_cards)) + new /obj/item/tcg_card(get_turf(O), pick(possible_cards), TRUE) + qdel(O) + + . = ..() + +#undef COMMON_SERIES +#undef TAPPED_ANGLE +#undef UNTAPPED_ANGLE diff --git a/code/modules/tcg/pack_1.dm b/code/modules/tcg/pack_1.dm new file mode 100644 index 0000000000..a3920fcdaa --- /dev/null +++ b/code/modules/tcg/pack_1.dm @@ -0,0 +1,1431 @@ +/datum/tcg_card/pack_1 + pack = 'icons/obj/tcg/pack_1.dmi' + +//COMMAND + +/datum/tcg_card/pack_1/captain + name = "Captain" + desc = "Nanotrasen hires a captain for every station. However, most of the time they just drink wishkey and secure the disk." + rules = "Human. Tap this card for 1 mana: inflict -1/-1 to an opposing creature card." + icon_state = "captain" + + mana_cost = 7 + attack = 5 + health = 5 + + faction = "Command" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_1/captain_hardsuit + name = "Apadyne Technologies Mk.2 R.I.O.T. Suit (Captain's Version)" + desc = "A heavily customised Apadyne Technologies Mk.2 R.I.O.T. Suit, rebuilt and refitted to Nanotrasen's highest standards for issue to Station Captains." + rules = "On equip: Equipped unit gains +1/+1 for one turn" + icon_state = "captain_hardsuit" + + mana_cost = 3 + attack = -1 + health = 5 + + faction = "Command" + rarity = "Legendary" + card_type = "Equipment" + +/datum/tcg_card/pack_1/hop + name = "Head of Personnel" + desc = "The head of the Cargo and Service Departments, guardian of all access, and Ian's lovable, yet dumb, sidekick." + rules = "Human. Blocker. Once per turn: A friendly card of your choice attacks twice." + icon_state = "hop" + + mana_cost = 7 + attack = 4 + health = 3 + + faction = "Command" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/ian_hop + name = "Head of Ians" + desc = "What can be better than a corgi? A corgi with all access and HoP's hat!" + rules = "On summon: Summon a Command unit for free." + icon_state = "hop_ian" + + mana_cost = 5 + attack = 0 + health = 4 + + faction = "Command" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_1/cmo + name = "Chief Medical Officer" + desc = "Head of the medical department, the CMO is expected to maintain the standards of his underlings." + rules = "Human. Whenever a Medical unit gains power, it gains +1 more." + icon_state = "cmo" + + mana_cost = 5 + attack = 4 + health = 4 + + faction = "Command" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/cmo_suit + name = "DeForest Medical Corporation 'Lifesaver' Carapace" + desc = "An advanced voidsuit designed for emergency medical personnel. Features include a built-in medical HUD and advanced medical gauntlets." + rules = "Tap this card: Re-equip 'DeForest Medical Corporation 'Lifesaver' Carapace' on a different friendly creature" + icon_state = "cmo_hardsuit" + + mana_cost = 3 + attack = 1 + health = 3 + + faction = "Command" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_1/hos + name = "Head of Security" + desc = "Nanotrasen hires most heads of staff based on their qualifications as being amicable, good at conflict resolution, ability to handle high-stakes situations, humanity, and desire to learn. Heads of Security only need a highschool degree." + rules = "Human. All opponent's cards cost 1 more until Head Of Security is removed from the battlefield." + icon_state = "hos" + + mana_cost = 7 + attack = 4 + health = 4 + + faction = "Command" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/hos_suit + name = "Apadyne Technologies 'Tyrant' Class Hardshell" + desc = "The distinctive shape of the Tyrant Class Hardshell is caused, in part, by the large amount of kevlar reinforcement and the ablative armour layer. Perhaps more importantly, it also looks rad." + rules = "Grant the equipped card Fury." + icon_state = "hos_hardsuit" + + mana_cost = 6 + attack = 4 + health = 2 + + faction = "Command" + rarity = "Epic" + card_type = "Equipment" + +/datum/tcg_card/pack_1/ce + name = "Chief Engineer" + desc = "The Chief Engineer is in charge of keeping the station powered and intact. Most of CE's usually fail this task." + rules = "Human. Protect a friendly card from one spell." + icon_state = "ce" + + mana_cost = 6 + attack = 3 + health = 6 + + faction = "Command" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/ce_suit + name = "Nakamura Engineering R.I.G.Suit (Advanced)" + desc = "An updated version of Nakamura Engineering's R.I.G.Suit fitted with advanced radiation shielding and extra armour." + rules = "On equip: Equipped creature is protected from one spell." + icon_state = "ce_hardsuit" + + mana_cost = 3 + attack = 0 + health = 3 + + faction = "Command" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_1/rd + name = "Research Director" + desc = "The Research Director is the head of the Science Division and is responsible for shockingly directing research." + rules = "Human. All Science card activate their effects twice." + icon_state = "rd" + + mana_cost = 7 + attack = 2 + health = 5 + + faction = "Command" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/rd_suit + name = "Nakamura Engineering B.O.M.B.Suit" + desc = "The Nakamura Engineering B.O.M.B.Suit is an innovative combination of a R.I.G.Suit and a bomb suit perfect for toxins research." + rules = "Reduces all incoming damage for 1. Does not work if damage is lethal." + icon_state = "rd_hardsuit" + + mana_cost = 3 + attack = 0 + health = 0 + + faction = "Command" + rarity = "Rare" + card_type = "Equipment" + + +//COMMAND END + +//SILICONS + +/datum/tcg_card/pack_1/ai + name = "AI" + desc = "The latest generation of NT's top secret artificial intelligence project this time with actual human brains in a jar! Don't tell the press though." + rules = "Asimov. All silicon cards gain +1/0 while this creature is alive." + icon_state = "ai" + + mana_cost = 5 + attack = 3 + health = 6 + + faction = "Silicon" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_1/pai + name = "Personal AI Device" + desc = "Personal AI Devices are able to take the form of many household pets to provide a homely sense of comfort and companionship to their owners." + rules = "Asimov. Taunt." + icon_state = "pai" + + mana_cost = 2 + attack = 1 + health = 1 + + faction = "Silicon" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg + name = "Cyborg" + desc = "Created as part of humanity's first foray into artificial intelligence the original cyborg models used organic parts in lieu of sophisticated artificial brains." + rules = "Asimov." + icon_state = "borg_basic" + + mana_cost = 2 + attack = 3 + health = 3 + + faction = "Silicon" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg_clown + name = "Cyborg (Clown Shell)" + desc = "The clown shell is a new development in cyborg technology designed to capture the joyous hijinks of the station clown in a notably more macabre and disturbing fashion." + rules = "Asimov. Taunt." + icon_state = "borg_clown" + + mana_cost = 2 + attack = 2 + health = 4 + + faction = "Silicon" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg_engi + name = "Cyborg (Engineering Shell)" + desc = "A common sight on Nanotrasen Stations Engineering Shells maintain critical station systems in hazardous conditions." + rules = "Asimov." + icon_state = "borg_engi" + + mana_cost = 2 + attack = 4 + health = 2 + + faction = "Silicon" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg_sec + name = "Cyborg (Security Shell)" + desc = "Following an incident in 2554 the Security Cyborg Shell was unilaterally phased out and replaced by the Peacekeeper. Nonetheless many units remain in service with various other organisations such as private militaries." + rules = "Asimov. Can attack humans, but deals only 1 damage." + icon_state = "borg_sec" + + mana_cost = 6 + attack = 4 + health = 2 + + faction = "Silicon" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg_sec + name = "Cyborg (Peacekeeper Shell)" + desc = "After the unilateral phasing out of Security Shells in 2554 following mass reports of cyborg-on-human violence the Peacekeeper Shell was introduced as a stopgap solution until the problems could be resolved." + rules = "Asimov. Tap this card: Restore 2 health for a friendly creature." + icon_state = "borg_peace" + + mana_cost = 2 + attack = 4 + health = 3 + + faction = "Silicon" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg_med + name = "Cyborg (Medical Shell)" + desc = "A state of the art medical shell for when biological life just can't take care of itself. Comes equipped with built-in surgical equipment and all the medicated lollipops you could ever want." + rules = "Asimov. Loses 1 power for every Human on opponent's field." + icon_state = "borg_med" + + mana_cost = 2 + attack = 4 + health = 3 + + faction = "Silicon" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg_service + name = "Cyborg (Service Shell)" + desc = "Sometimes a cyborg just needs to show a bit of flamboyance you know?" + rules = "Asimov. Gains +2/+2 when it's the only card on your field." + icon_state = "borg_service" + + mana_cost = 1 + attack = 0 + health = 1 + + faction = "Silicon" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg_janitor + name = "Cyborg (Custodial Shell)" + desc = "A powerful state of the act cleaning machine. They exist to eradicate stains snag garbage and replace lights forever. We are legally obligated by the Janitor's Union to state that these machines are no replacement for a flesh-and-blood janitor." + rules = "Asimov. After tapping this card, tap an opponent's Human card as well." + icon_state = "borg_janitor" + + mana_cost = 2 + attack = 1 + health = 3 + + faction = "Silicon" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/cyborg_miner + name = "Cyborg (Mining Shell)" + desc = "Fitted with a drill and tracks the Mining Shell is designed to hold up to the rigours of mining be that on the hellish surface of Indecipheres or in the silent vacuum of the asteroid belt." + rules = "Asimov. Gain 1 additional mana every turn." + icon_state = "borg_miner" + + mana_cost = 2 + attack = 3 + health = 1 + + faction = "Silicon" + rarity = "Rare" + card_type = "Unit" + +//SILICONS END + +//CIVILIANS + +/datum/tcg_card/pack_1/assistant + name = "Assistant" + desc = "The lowest ladder on the Nanotrasen Employment Ladder, Assistants are employed to help out with tasks deemed 'too menial for robots'." + rules = "Greytide." + icon_state = "assistant" + + mana_cost = 1 + attack = 1 + health = 1 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/greytider + name = "Greytider" + desc = "The lowest ladder on the Nanotrasen Employment Ladder, Assistants are employed to help out with tasks deemed 'too menial for robots'." + rules = "Greytide. Instead of getting +1/+1 on the first turn, get it permanently." + icon_state = "greytider" + + mana_cost = 1 + attack = 2 + health = 1 + + faction = "Civilian" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/bartender + name = "Bartender" + desc = "Prior to the introduction of on-station psychologists the Bartender served to alleviate many employees' woes and fears. Remember always drink responsibly." + rules = "" + icon_state = "bartender" + + mana_cost = 3 + attack = 3 + health = 2 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/botanist + name = "Botanist" + desc = "The Botanist is in charge of keeping the station's food supply happy healthy and preferably not laced with hallucinogens." + rules = "" + icon_state = "botanist" + + mana_cost = 1 + attack = 1 + health = 4 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/botanist + name = "Botanist" + desc = "The Botanist is in charge of keeping the station's food supply happy healthy and preferably not laced with hallucinogens." + rules = "" + icon_state = "botanist" + + mana_cost = 1 + attack = 1 + health = 4 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/chaplain + name = "Chaplain" + desc = "Every station should have it's own chaplain for religious purposes. Keyword is 'Should'." + rules = "Holy" + icon_state = "chaplain" + + mana_cost = 2 + attack = 2 + health = 3 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/inquisitor + name = "Inquisitor's Hardsuit" + desc = "Nanotrasen officially doesn't believe in ghosts magic or anything that can't be solved with science. When you see someone show up in one of these let that remind you of that fact." + rules = "Holy. First Strike." + icon_state = "inquisitor" + + mana_cost = 4 + attack = 2 + health = 2 + + faction = "Civilian" + rarity = "Epic" + card_type = "Equipment" + +/datum/tcg_card/pack_1/janitor + name = "Janitor" + desc = "A true testament to futility they clean and they clean and they clean knowing that there's no way they can clean it all. Yet they perservere knowing that without them the crew would simply give in to their base animalistic nature." + rules = "Taunt" + icon_state = "janitor" + + mana_cost = 1 + attack = 1 + health = 1 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/lawyer + name = "Lawyer" + desc = "Nanotrasen knows the value of a good lawyer. That's why they're all working hard at our home offices defending us from frivolous labor suits from lazy no-good employees who should be working hard instead of slacking off reading trading cards." + rules = "When an opponent attacks with a creature with 3 or more power this card gains Taunt." + icon_state = "lawyer" + + mana_cost = 2 + attack = 0 + health = 4 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/clown + name = "Clown" + desc = "Every Nanotrasen station has a clown on board as high command believes that a source of entertainment will reduce instances of murder-suicide on board Spinward Stations. The results of this hypothesis are as of yet unproven." + rules = "Taunt. When killed, attacking creature dies as well" + icon_state = "clown" + + mana_cost = 3 + attack = 2 + health = 4 + + faction = "Civilian" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/clown_hardsuit + name = "HONK Ltd. Entertainment Voidsuit" + desc = "The most advanced clown suit produced by HONK Ltd. the Entertainment Voidsuit is designed to withstand extreme conditions while still maintaining the aesthetic expected of clowns." + rules = "Give the equipped unit Taunt." + icon_state = "clown_hardsuit" + + mana_cost = 2 + attack = 1 + health = 5 + + faction = "Civilian" + rarity = "Legendary" + card_type = "Equipment" + +/datum/tcg_card/pack_1/mime + name = "Mime" + desc = "Si vous regardez attentivement dans les yeux d'un mime vous pouvez voir le tourment sans fin derrière leur façade silencieuse. C'est vraiment tragique." + rules = "Tap this card: Pick an opponent's card and nullify it's effect until it leaves play." + icon_state = "mime" + + mana_cost = 1 + attack = 2 + health = 1 + + faction = "Civilian" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/cook + name = "Cook" + desc = "Every Nanotrasen chef is trained in 3 cuisines of their choosing upon being hired alongside the closely guarded secret of Close Quarters Cooking." + rules = "First Strike. When attacked, gain +1/0." + icon_state = "cook" + + mana_cost = 3 + attack = 3 + health = 2 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/curator + name = "Curator" + desc = "In Nanotrasen polls the Curator has ranked as the most pointless job on station much to the ire of the Curator's union. Thankfully we don't have to listen to them." + rules = "On Summon: Draw a card. If it's a spell, discard it." + icon_state = "curator" + + mana_cost = 2 + attack = 1 + health = 1 + + faction = "Civilian" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/ian + name = "Ian" + desc = "This adorable corgi has become the defacto mascot of the Spinward Stations to many. He comes in many forms many sizes and many shapes but he's still just as lovable. Hand wash only." + rules = "Holy. Taunt." + icon_state = "ian" + + mana_cost = 3 + attack = 0 + health = 2 + + faction = "Civilian" + rarity = "Rare" + card_type = "Unit" + +//CIVILIAN END + +//SECURITY + +/datum/tcg_card/pack_1/sec_officer + name = "Security Officer" + desc = "Nanotrasen would like to remind all employees to support their station security team; remember the boys in red keep you safe!" + rules = "Squad Tactics." + icon_state = "officer" + + mana_cost = 3 + attack = 2 + health = 2 + + faction = "Security" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/warden + name = "Warden" + desc = "The Warden is tasked with the herculean (and futile) feat of defending the armory and brig and never leaving his post no matter the situation." + rules = "Squad Tactics. Blocker." + icon_state = "warden" + + mana_cost = 4 + attack = 2 + health = 4 + + faction = "Security" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/detective + name = "Security Officer" + desc = "Nanotrasen hires nothing but the best detectives to investigate crime on our stations. A penchant for cigarettes and outdated fashion isn't mandatory but is appreciated." + rules = "Deadeye." + icon_state = "detective" + + mana_cost = 5 + attack = 3 + health = 2 + + faction = "Security" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/officer_ethereal + name = "Security Officer(Ethereal)" + desc = "A trained officer with BlueShift equipment. Wait, is he a red boy or a blue boy?" + rules = "Squad Tactics. On summon: This character can't be attacked for the first turn." + icon_state = "officer_ethereal" + + mana_cost = 6 + attack = 4 + health = 4 + + faction = "Security" + rarity = "Rare" + card_type = "Unit" + +//SECURITY END + +//RESEARCH AND DEVELOPMENT + +/datum/tcg_card/pack_1/scientist + name = "Scientist" + desc = "Rumours that Nanotrasen hires 'mad scientists' are greatly exaggerated. Scientists are regularly screened to ensure that their insanity remains within acceptable limits." + rules = "When this card is targeted by an opponent's single target spell you gain 1 lifeshard." + icon_state = "scientist" + + mana_cost = 4 + attack = 1 + health = 2 + + faction = "Research" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/scientist_moth + name = "Scientist(Moth)" + desc = "Moths are a common sight in Nanotrasen research departments acting as integral ideas guys for new clothing designs and lighting innovations." + rules = "" + icon_state = "scientist_moth" + + mana_cost = 1 + attack = 2 + health = 2 + + faction = "Research" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/roboticist + name = "Roboticist" + desc = "The roboticist's work is as close as Nanotrasen legally allows its employees to come to necromancy." + rules = "If a Asimov card on your side of the field is destroyed you may pay 2 mana and tap this card: Return that card to your hand." + icon_state = "roboticist" + + mana_cost = 3 + attack = 2 + health = 2 + + faction = "Research" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/monkey + name = "Monkey" + desc = "Nanotrasen seeks to phase out animal testing by 2570 in accordance with new TerraGov legislation. This will be replaced with more ethical solutions such as computer simulations or experimentation on Assistants." + rules = "Greytide. This card is considered Human with a Geneticist on your side of the field." + icon_state = "monkey" + + mana_cost = 1 + attack = 1 + health = 1 + + faction = "Research" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/geneticist + name = "Geneticist" + desc = "Geneticists are tasked with manipulating human DNA to produce special effects. Nanotrasen maintains a strict 'no superhero' policy for mutations following the Superhero Civil War of 2150." + rules = "Tap this card and pay 3 mana: Give a friendly creature Human until this card leaves the field." + icon_state = "geneticist" + + mana_cost = 3 + attack = 3 + health = 4 + + faction = "Research" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/borgi + name = "Borgi Ian" + desc = "While Ian's cyborg costume is very convincing we at the NTED would like to remind all employees that Ian has not been experimented on." + rules = "Asimov. You may sacrifice this card in play: Summon a Silicon type card from your hand worth up to double this card's cost." + icon_state = "ian_robot" + + mana_cost = 2 + attack = 0 + health = 3 + + faction = "Research" + rarity = "Rare" + card_type = "Unit" + +//SCIENCE END + +//MEDICAL + +/datum/tcg_card/pack_1/doctor + name = "Medical Doctor" + desc = "Nanotrasen's doctors are well known for their ability to treat almost any ailment known to mankind... as well as causing a fair few in the process." + rules = "Tap this card: Select a card that has less attack than this card from your graveyard and summon it to your side of the field." + icon_state = "doctor" + + mana_cost = 3 + attack = 2 + health = 3 + + faction = "Medical" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/runtime + name = "Runtime" + desc = "Runtime is the CMO's personal feline companion and is well known for her laziness. It's said that opening a tin of tuna anywhere on the station will bring her running." + rules = "You may sacrifice this card: reduce the cost of summoning a Medical card this turn by 2 mana." + icon_state = "runtime" + + mana_cost = 3 + attack = 0 + health = 1 + + faction = "Medical" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/chemist + name = "Chemist" + desc = "Chemists are encouraged to not set up illicit methamphetamine factories on the company's dime." + rules = "Tap this card: flip a coin. If heads: a friendly Medical card gains 0/+2. If tails an opponents unit of your choice gains +2/0." + icon_state = "chemist" + + mana_cost = 2 + attack = 0 + health = 3 + + faction = "Medical" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/virologist + name = "Virologist" + desc = "Officially the virologist is present on station to deal with novel diseases and ailments that originate from deep space. As everyone knows this is not what the virologist actually does." + rules = "" + icon_state = "virologist" + + mana_cost = 3 + attack = 5 + health = 1 + + faction = "Medical" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/paramedic + name = "Paramedic" + desc = "Nanotrasen encourages all paramedics to think of others before themselves- if this means running through a plasma fire to save a colleague so be it." + rules = "Taunt, First Strike" + icon_state = "paramedic" + + mana_cost = 3 + attack = 2 + health = 3 + + faction = "Medical" + rarity = "Common" + card_type = "Unit" + +//MEDICAL END + +//ENGINEERING + +/datum/tcg_card/pack_1/engineer + name = "Station Engineer" + desc = "Station Engineers maintain the intricate and delicate web of machinery that keeps you and everyone else aboard your station alive. No pressure there then." + rules = "Tap this card: Reduce the first hit taken by an ally to zero." + icon_state = "engineer" + + mana_cost = 4 + attack = 2 + health = 2 + + faction = "Engineering" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/engi_hardsuit + name = "Nakamura Engineering's R.I.G.Suit" + desc = "Nakamura Engineering's R.I.G. is a hardsuit, specifically designed for engineers working in hostile enviroments. It features good armor and is rad-proof." + rules = "" + icon_state = "engineer_hardsuit" + + mana_cost = 2 + attack = 0 + health = 3 + + faction = "Engineering" + rarity = "Common" + card_type = "Equipment" + +/datum/tcg_card/pack_1/engineer_plasmaman + name = "Station Engineer (Plasmaman)" + desc = "The ever industrious plasmamen are well suited to engineering work due to their natural radiation resistance." + rules = "Immune to all spells except Security and Syndicate ones." + icon_state = "engineer_plasmeme" + + mana_cost = 5 + attack = 2 + health = 4 + + faction = "Engineering" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/atmos_tech + name = "Atmospheric Technician" + desc = "The Atmospheric Technicians are tasked with keeping the station's air clean breathable and most importantly devoid of plasma." + rules = "On Summon: Search your deck for an Engineering Spell card and add it to your hand. Shuffle your deck afterward." + icon_state = "atmos_tech" + + mana_cost = 4 + attack = 2 + health = 3 + + faction = "Engineering" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/atmos_hardsuit + name = "Nakamura Atmospherics's R.I.G.Suit" + desc = "Nakamura Atmospherics's R.I.G. is just an old modified Engineering R.I.G.Suit that lacks rad-protection. Some technicans painted it blue and now it's 'fireproof'." + rules = "Equipped creature gains immunity to engineering spells." + icon_state = "atmos_tech_hardsuit" + + mana_cost = 2 + attack = 0 + health = 2 + + faction = "Engineering" + rarity = "Rare" + card_type = "Equipment" + +//ENGINEERING END + +//CARGO + +/datum/tcg_card/pack_1/cargo_tech + name = "Cargo Technician" + desc = "The grunts of Cargo. Any reports that Cargo Technicians are frequently overcome by revolutionary fervour are exaggerated." + rules = "Once per turn: Give this card -1/0 and gain 1 mana." + icon_state = "cargo_tech" + + mana_cost = 2 + attack = 3 + health = 1 + + faction = "Cargo" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/shaft_miner + name = "Shaft Miner" + desc = "When the station needs materials these are the guys who risk their lives bravely pioneering the wastes of Indecipheres to bring them in." + rules = "Tap this card: Draw one card. If it's not a spell, discard it." + icon_state = "miner" + + mana_cost = 6 + attack = 6 + health = 4 + + faction = "Cargo" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/citrus + name = "Citrus" + desc = "Cargo's happy sloth pal. Known for his cute sweater and always getting in the way." + rules = "Taunt. Tap this card: Tap an opponent's card until the start of your next turn." + icon_state = "citrus" + + mana_cost = 2 + attack = 0 + health = 3 + + faction = "Cargo" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/quartermaster + name = "Quartermaster" + desc = "Every Nanotrasen station has a Quartermaster who controls the flow of cargo to and from the station and by extension to and from the hands of the crew. He's not given the distinction of being a head though. His job isn't hard enough." + rules = "Permanently tap this card. All cargo cards on your side gain +2/+2 until this card leaves the play." + icon_state = "quartermaster" + + mana_cost = 10 + attack = 4 + health = 4 + + faction = "Cargo" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/explorer + name = "Explorer" + desc = "The Nanotrasen Explorers Corps boldly goes where humanity has never gone before. Or would if they weren't buried under mounds of bureaucracy." + rules = "Tap this card: Flip a coin if heads gain 4 mana this turn, if tails tap this card for 2 turns." + icon_state = "explorer" + + mana_cost = 2 + attack = 3 + health = 3 + + faction = "Cargo" + rarity = "Legendary" + card_type = "Unit" + +//CARGO END + +//CENTCOM + +/datum/tcg_card/pack_1/intern + name = "Intern" + desc = "All Nanotrasen interns come with 3 things: A resume a desire to learn and vague promises that they're getting paid at some point. So don't be too rough on them." + rules = "First Strike. Greytide." + icon_state = "intern" + + mana_cost = 1 + attack = 1 + health = 1 + + faction = "Centcom" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/ert_command + name = "NT P.A.V. Suit (Command)" + desc = "Issued to members of Emergency Response Teams the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a sidearm holster and a sleek blue finish." + rules = "While equipped give the equipped unit Squad Tactics and First Strike." + icon_state = "ert_command" + + mana_cost = 2 + attack = 2 + health = 2 + + faction = "Centcom" + rarity = "Epic" + card_type = "Equipment" + +/datum/tcg_card/pack_1/ert_sec + name = "NT P.A.V. Suit (Security)" + desc = "Issued to members of Emergency Response Teams the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with bulletproof padding and an intimidating red finish." + rules = "While equipped give the equipped unit Squad Tactics." + icon_state = "ert_sec" + + mana_cost = 2 + attack = 2 + health = 1 + + faction = "Centcom" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_1/ert_med + name = "NT P.A.V. Suit (Medical)" + desc = "Issued to members of Emergency Response Teams the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a sterile coating and a calming white finish." + rules = "While equipped give the equipped unit Squad Tactics." + icon_state = "ert_med" + + mana_cost = 2 + attack = 1 + health = 2 + + faction = "Centcom" + rarity = "Common" + card_type = "Equipment" + +/datum/tcg_card/pack_1/ert_engi + name = "NT P.A.V. Suit (Engineering)" + desc = "Issued to members of Emergency Response Teams the P.A.V. Suit gives superior protection from any threat the galaxy can throw at it. This particular model is outfitted with a welding screen and a flashy yellow finish." + rules = "While equipped give the equipped unit Squad Tactics." + icon_state = "ert_engi" + + mana_cost = 1 + attack = 1 + health = 2 + + faction = "Centcom" + rarity = "Common" + card_type = "Equipment" + +/datum/tcg_card/pack_1/deathsquad + name = "Deathsquad Officer" + desc = "There were rumors about 'Deathsquads' killing station where something horrible happened, but we remind you that's it's just a lie." + rules = "Taunt. First Strike." + icon_state = "deathsquad" + + mana_cost = 8 + attack = 8 + health = 6 + + faction = "Centcom" + rarity = "Epic" + card_type = "Unit" + +//CENTCOM END + +//ANTAGONISTS + +/datum/tcg_card/pack_1/changeling + name = "Armored Changeling" + desc = "The strange creatures known as changelings have been known to develop natural armour as a defense mechanism when in combat." + rules = "Changeling." + icon_state = "changeling" + + mana_cost = 6 + attack = 2 + health = 8 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/chrono_legionare + name = "Chrono Legionare" + desc = "Currently in the earliest stages of development the Chrono Legionnaire project is expected to weaponise time itself." + rules = "If this card is destroyed or discarded flip 3 coins. If the result has 2 or more heads add this card back to your hand. Otherwise send it to your graveyard." + icon_state = "chrono_legionare" + + mana_cost = 4 + attack = 6 + health = 2 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_1/abductor_armor + name = "Combat Abductor Armor" + desc = "Recovered from the strange alien species known as the Abductors this armour is made from an extremely tough yet flexible material that has been dubbed as Alien Alloy by researchers." + rules = "Give equipped unit immunity to spells for 3 turns. Unequipped after 3 turns." + icon_state = "abductor" + + mana_cost = 6 + attack = 1 + health = 2 + + faction = "Syndicate" + rarity = "Common" + card_type = "Equipment" + +/datum/tcg_card/pack_1/wizard + name = "Wizard" + desc = "A strange men(or golem) wearing blue robes. For some reason, he looks like a total nerd." + rules = "Flip a coin every turn. If tails, deal 2 damage to any enemy unit except Holy ones. If heads, deal 2 damage to self." + icon_state = "wizard" + + mana_cost = 8 + attack = 6 + health = 4 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/abductor_armor + name = "Wizard Federation Standard Issue Hardsuit" + desc = "Seemingly reverse engineered from captured engineering hardsuits the iconic Wizard Federation Hardsuit is a spectacular melding of technology and magic." + rules = "On Equip: The equipped creature cannot attack targets with Holy." + icon_state = "wizard_hardsuit" + + mana_cost = 1 + attack = 3 + health = 1 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_1/swarmer + name = "Swarmer" + desc = "Leading researchers theorise that Swarmers were designed as some kind of vanguard for an alien invasion force which seemingly has never materialised." + rules = "Greytide." + icon_state = "swarmer" + + mana_cost = 1 + attack = 1 + health = 1 + + faction = "Syndicate" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/swarmer_beacon + name = "Swarmer Beacon" + desc = "A strange device that can construct swarmers." + rules = "Every turn: Draw a card. If it's a Swarmer, play it for free. Else, discard it." + icon_state = "swarmer_beacon" + + mana_cost = 4 + attack = 0 + health = 1 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_1/nukie + name = "Nuclear Operative" + desc = "The frontline grunts of the syndicate army Nuclear Operatives are typically well trained and equipped for their grim duty." + rules = "Squad Tactics." + icon_state = "nukie" + + mana_cost = 4 + attack = 4 + health = 2 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_1/nukie_elite + name = "Elite Syndicate Nuclear Stormtrooper" + desc = "The best of the best of the syndicate troops elite stormtroopers can be distinguished by their black armour. Shoot on sight ask questions later!" + rules = "Squad Tactics. Fury." + icon_state = "nukie_elite" + + mana_cost = 7 + attack = 5 + health = 5 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_1/clockwork_cultist + name = "Ratvarian Clockwork Cuirass" + desc = "Fashioned from paranormally reinforced brass the Ratvar Cult's clockwork armour is as beautiful as it is heretical." + rules = "While equipped give the equipped unit Clockwork." + icon_state = "clockwork_cultist" + + mana_cost = 4 + attack = 2 + health = 2 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_1/revenant + name = "Revenant" + desc = "The revenant is a spirit of pure hatred kept alive by drawing the life force of its enemies." + rules = "When a unit on dies Revenant gains 1/0." + icon_state = "revenant" + + mana_cost = 3 + attack = 2 + health = 3 + + faction = "Syndicate" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_1/angry_slime + name = "Crazy Slime" + desc = "An agressive slime who seeks blood. You totally should extinguish him." + rules = "When attacking, search your deck for Crazy Slime and add it to your hand. Shuffle your deck afterwards." + icon_state = "angry_slime" + + mana_cost = 2 + attack = 1 + health = 1 + + faction = "Syndicate" + rarity = "Common" + card_type = "Unit" + +//ANTAGONISTS END + +//SPELLS + +/datum/tcg_card/pack_1/adrenals + name = "Adrenals" + desc = "A potent mixture of stimulants designed to enhance a soldier's ability in the field. Technically illegal in Terragov territory but since when has that stopped anyone?" + rules = "Grant +2/+1 to a friendly unit." + icon_state = "adrenals" + + mana_cost = 1 + + faction = "Medical" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/defib + name = "Defibrillator" + desc = "A device that allows to re-start hearts using electricity. It also can be used as a weapon!" + rules = "Resurrect a friendly unit with 1 HP." + icon_state = "defib" + + mana_cost = 4 + + faction = "Medical" + rarity = "Rare" + card_type = "Spell" + +/datum/tcg_card/pack_1/morphine + name = "Morphine" + desc = "A sedative chemical that puts everyone who uses it into sleep." + rules = "Tap an enemy card without activating it's effect for 1 turn." + icon_state = "morphine" + + mana_cost = 2 + + faction = "Medical" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/bluespace + name = "Bluespace Flux" + desc = "Despite being a revolutionary new technology bluespace still has some... kinks that need sorted out." + rules = "Active for 3 turns. Every player can pay 2 mana to draw an additional card from their deck." + icon_state = "bluespace" + + mana_cost = 5 + + faction = "Research" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/bag_of_holding + name = "Bag Of Greed" + desc = "BAG OF GREED ALLOWS ME TO DRAW TWO MORE CARDS. I WILL START MY TURN BY PLAYING BAG OF GREED WHICH ALLOWS ME TO DRAW TWO MORE CARDS. I WILL PLAY THE EVENT CARD BAG OF GREED WHICH ALLOWS ME TO DRAW TWO NEW CARDS." + rules = "Draw 2 cards from your deck." + icon_state = "bag_of_holding" + + mana_cost = 3 + + faction = "Research" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/malfunction + name = "Glitch in the System" + desc = "Even a meticulously maintained AI system will eventually develop errors. Many are benign but some may cause unforeseen problems..." + rules = "Remove Asimov from one of your cards." + icon_state = "malfunction" + + mana_cost = 1 + + faction = "Research" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/botanist_plant + name = "Comitted Botanist" + desc = "When you've grown the plants nurtured the plants and harvested the plants there's only one place to go from there... becoming the plant." + rules = "Only usable when Botanist is on the field. This turn all service cards cost 2 mana less(but not below 1)." + icon_state = "botanist_plant" + + mana_cost = 4 + + faction = "Service" + rarity = "Rare" + card_type = "Spell" + +/datum/tcg_card/pack_1/gaia + name = "Ambrosia Gaia" + desc = "If Ambrosia is the gold of Botany the rare Gaia variety is the platinum. Almost nobody has seen this illusive plant with their own eyes." + rules = "During the draw phase you may sacrifice Ambrosia Gaia to gain 3 mana." + icon_state = "gaia" + + mana_cost = 0 + + faction = "Service" + rarity = "Legendary" + card_type = "Spell" + +/datum/tcg_card/pack_1/deep_fryer + name = "Deep Fryer" + desc = "God bless the United States of Space America." + rules = "Destroy an opponent's equipment card." + icon_state = "deep_fryer" + + mana_cost = 2 + + faction = "Service" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/bepis + name = "B.E.P.I.S." + desc = "God bless the United States of Space America." + rules = "Flip a coin. If heads, gain 2 mana. If tails, lose 2 mana." + icon_state = "bepis" + + mana_cost = 0 + + faction = "Cargo" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/economy_crash + name = "Economy Crash" + desc = "So cargo sold 20 canisters of miasma and now the galactic economy is experiencing what's known as 'a catastrophic collapse'." + rules = "All cards cost 1 more mana to play." + icon_state = "economy_crash" + + mana_cost = 2 + + faction = "Cargo" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/additional_supplies + name = "Additional Supplies" + desc = "Well, cargonia ordered 10 crates of buckshots and slugs. Looks like we need to dispose of them quickly." + rules = "For 3 turns, you draw an additional page every turn." + icon_state = "additional_supplies" + + mana_cost = 3 + + faction = "Cargo" + rarity = "Rare" + card_type = "Spell" + +/datum/tcg_card/pack_1/bsa_barrage + name = "BSA Barrage" + desc = "The officers at Centcom are well known for their ability to hit targets extremely accurately with their bluespace artillery especially when stupid pictures show up at their fax machine." + rules = "Destroy an opponent's unit. Deal 2 damage to all units on the field." + icon_state = "bsa_barrage" + + mana_cost = 4 + + faction = "Security" + rarity = "Rare" + card_type = "Spell" + +/datum/tcg_card/pack_1/reeducation + name = "Re-education" + desc = "Nobody ever seems to return from re-education. Probably best not to question it." + rules = "Deal 4 damage to an enemy's unit." + icon_state = "re-education" + + mana_cost = 2 + + faction = "Security" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/just_losses + name = "Justifiable Casualties" + desc = "The beat is hell. Officers die. The strongest they live." + rules = "Sacrifice two friendly creatures from the battlefield then summon a creature from your hand at no mana cost." + icon_state = "just_losses" + + mana_cost = 2 + + faction = "Security" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/sleeping_carp + name = "Sleeping Carp" + desc = "Created by the long-extinct Carp Monks of Space Tibet the Sleeping Carp style has been kept alive by dedicated practitioners and even found its way into the Syndicate's training regime." + rules = "Give a friendly unit +3/+1. Draw an additional card every turn while they are alive." + icon_state = "sleeping_carp" + + mana_cost = 6 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Spell" + +/datum/tcg_card/pack_1/tough_choices + name = "Tough Choices" + desc = "Every Nanotrasen employee will at some point be forced to make a tough choice. Make sure you make the right one!" + rules = "Draw the top three cards from your deck. Summon one at no cost and discard the other two." + icon_state = "tough_choices" + + mana_cost = 2 + + faction = "Syndicate" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_1/nuclear_explosion + name = "Nuclear Explosion" + desc = "The Gorlex Marauders are well known for their nuclear weapons and their nuke first second third and fourth policy with regards to deploying them." + rules = "Kill all units on the battlefield." + icon_state = "nuclear_explosion" + + mana_cost = 5 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Spell" + +/datum/tcg_card/pack_1/inducer + name = "Inducer" + desc = "The inducer is a marvelous piece of tech allowing the recharging of an internal cell without opening a machine." + rules = "Pay 3 lifeshards: Gain 3 mana this turn." + icon_state = "inducer" + + mana_cost = 0 + + faction = "Engineering" + rarity = "Rare" + card_type = "Spell" + +/datum/tcg_card/pack_1/plasmafire + name = "Atmospherics Incident" + desc = "Accidents happen." + rules = "For 3 turns, add -1/-1 to every unit." + icon_state = "plasmafire" + + mana_cost = 3 + + faction = "Engineering" + rarity = "Rare" + card_type = "Spell" + +/datum/tcg_card/pack_1/supermatter + name = "Supermatter" + desc = "A glowing crystal, made of hyper-pressurised plasma, widely known for it's radiation production." + rules = "Destroy an enemy's unit." + icon_state = "supermatter" + + mana_cost = 4 + + faction = "Engineering" + rarity = "Rare" + card_type = "Spell" diff --git a/code/modules/tcg/pack_nuclear.dm b/code/modules/tcg/pack_nuclear.dm new file mode 100644 index 0000000000..96ec174a4b --- /dev/null +++ b/code/modules/tcg/pack_nuclear.dm @@ -0,0 +1,483 @@ +/datum/tcg_card/pack_nuclear + pack = 'icons/obj/tcg/pack_nuclear.dmi' + +/datum/tcg_card/pack_nuclear/cayenne + name = "Cayenne" + desc = "A failed Syndicate experiment in weaponized space carp technology, it now serves as a lovable mascot." + rules = "Only playable when there are other Syndicate units on the field." + icon_state = "cayenne" + + mana_cost = 4 + attack = 4 + health = 3 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/esword + name = "Energy Sword" + desc = "Hard-light sword that doesn't leave burns. Don't ask questions." + rules = "" + icon_state = "esword" + + mana_cost = 3 + attack = 2 + health = 0 + + faction = "Syndicate" + rarity = "Common" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/stechkin + name = "Stechkin Pistol" + desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." + rules = "When equipping this card, flip it so opponent won't see it. Flip the card after the first attack." + icon_state = "stechkin" + + mana_cost = 2 + attack = 2 + health = 0 + + faction = "Syndicate" + rarity = "Common" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/c20r + name = "C-20R SMG" + desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." + rules = "After attack, flip a coin. If heads, leave the weapon. If tails, unequip this card." + icon_state = "c20r" + + mana_cost = 4 + attack = 4 + health = 0 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/l6saw + name = "L6 Saw LMG" + desc = "A heavily modified 1.95x129mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." + rules = "After equipped unit dies, this card goes to the bottom of draw deck" + icon_state = "l6saw" + + mana_cost = 8 + attack = 6 + health = 0 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/bulldog + name = "Bulldog Shotgun" + desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." + rules = "After attack, deal 1 damage to enemy units next to the attacked one." + icon_state = "bulldog" + + mana_cost = 3 + attack = 3 + health = 0 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/nuke_op_leader + name = "Nuclear Team Commander" + desc = "All commanders of elite nuclear teams are equipped with high-tier gear and weaponery. And, sometimes, gaming cards." + rules = "Squad Tactics. Give all Syndicate units on your side +1/0." + icon_state = "nuke_op_leader" + + mana_cost = 5 + attack = 3 + health = 4 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/nuke_op + name = "Nuclear Team Commander" + desc = "An unequipped nuclear operative, ready to buy some gear and go full ham!" + rules = "Squad Tactics. On summon: Search your deck for Syndicate equipment. Equip it on this unit. Shuffle it afterwards." + icon_state = "nuke_op" + + mana_cost = 3 + attack = 2 + health = 3 + + faction = "Syndicate" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/dark_gygax + name = "Dark Gygax" + desc = "A lightweight exosuit, painted in a dark scheme. This model appears to have some modifications." + rules = "Squad Tactics." + icon_state = "dark_gygax" + + mana_cost = 6 + attack = 8 + health = 4 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/mauler + name = "Mauler" + desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model. A perfect killing machine equipped with best weaponery in the world." + rules = "Squad Tactics. Deadeye." + icon_state = "mauler" + + mana_cost = 8 + attack = 8 + health = 8 + + faction = "Syndicate" + rarity = "Legendary" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/saboteur + name = "Syndicate Saboteur Cyborg" + desc = "A streamlined engineering cyborg, equipped with covert modules. Allows to sabotage all the systems you want without being suspicious." + rules = "Block the first spell your opponent plays against your hero." + icon_state = "saboteur" + + mana_cost = 3 + attack = 1 + health = 3 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/medic + name = "Syndicate Medical Cyborg" + desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities." + rules = "Each turn you can give one of your units 0/+1." + icon_state = "medic" + + mana_cost = 4 + attack = 1 + health = 2 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/combat + name = "Syndicate Assault Cyborg" + desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel." + rules = "Squad Tactics. Fury." + icon_state = "combat" + + mana_cost = 5 + attack = 4 + health = 4 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/emag + name = "Cryptographic Sequencer" + desc = "It's a card with a magnetic strip attached to some circuitry." + rules = "Convert an enemy silicon unit to your side." + icon_state = "emag" + + mana_cost = 4 + + faction = "Syndicate" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/bomb + name = "Syndicate Bomb" + desc = "A large and menacing device. Can be bolted down with a wrench." + rules = "Deal 6 damage to all units on the field after 2 turns." + icon_state = "bomb" + + mana_cost = 6 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/honkbomb + name = "H.O.N.K. Bomb" + desc = "A bomb filled to the brim with bananium and dehydrated clowns!" + rules = "Search your deck for up to 3 Clowns. Play them for free. Shuffle the deck afterwards." + icon_state = "honkbomb" + + mana_cost = 8 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/assault_pod + name = "Assault Pod" + desc = "Raining Steel. Nothing personnel, just disky." + rules = "Summon up to 3 units from your hand with 4 mana discount each." + icon_state = "assault_pod" + + mana_cost = 8 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/c4 + name = "C4" + desc = "A bunch of plastic explosives wired together." + rules = "Deal 2 damage to an enemy unit." + icon_state = "c4" + + mana_cost = 1 + + faction = "Syndicate" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/emp + name = "EMP Grenade" + desc = "A modern-looking grenade which creates a powerful EMP upon activation. Do not eat." + rules = "Deal 2 damage to an enemy silicon unit." + icon_state = "emp" + + mana_cost = 0 + + faction = "Syndicate" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/zombie + name = "Romerol Zombie" + desc = "A horrible abomination, resembling a dead human. Has green skin and red claws. Wait, is it blood dripping from them?" + rules = "After killing an enemy unit, search your deck for a Zombie and summon it for free." + icon_state = "zombie" + + mana_cost = 8 + attack = 4 + health = 3 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/north_star + name = "North Star Armbands" + desc = "The armbands of a deadly martial artist. Makes you pretty keen to put an end to evil in an extremely violent manner." + rules = "Equipped unit can attack twice per turn." + icon_state = "north_star" + + mana_cost = 4 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/fastdetonation + name = "Big-Ass Red Button" + desc = "A menacing red button. What could it do?" + rules = "Activate all spells that require several turns to occur." + icon_state = "fastdetonation" + + mana_cost = 2 + + faction = "Syndicate" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/rpg + name = "PML-9 Rocket Launcher" + desc = "A reusable rocket propelled grenade launcher. The words \"NT this way\" and an arrow have been written near the barrel." + rules = "When equipped unit attacks enemy units, flip a coin. If heads, destroy the unit. If tails, deal 1/2 damage instead of the full blow." + icon_state = "rpg" + + mana_cost = 8 + attack = 6 + + faction = "Syndicate" + rarity = "Legendary" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/darkhonk + name = "Dark H.O.N.K. Mech" + desc = "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. This one was painted black for maximum HONKing!" + rules = "Taunt. Squad Tactics. Blocker." + icon_state = "darkhonk" + + mana_cost = 8 + attack = 6 + health = 8 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/shielded_hardsuit + name = "Shielded Blood-red Hardsuit" + desc = "An advanced version of Gorlex Maradeurs' hardsuit with built-in energy shielding." + rules = "Give equipped unit First Strike." + icon_state = "shielded_hardsuit" + + mana_cost = 4 + attack = 0 + health = 4 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/nuclear_disk + name = "Nuclear Authentication Disk" + desc = "Better keep this safe." + rules = "Give equipped unit Taunt. After the equipped unit dies, re-equip this card to the killer." + icon_state = "nuclear_disk" + + mana_cost = 0 + attack = 1 + health = 1 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/buzzkill + name = "Buzzkill grenade" + desc = "A whole swarm of angry bees filled with deadly toxins. Nasty!" + rules = "Hivemind." + icon_state = "buzzkill" + + mana_cost = 4 + attack = 1 + health = 5 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/syndicate_minibomb + name = "Syndicate Minibomb" + desc = "A syndicate manufactured explosive used to sow destruction and chaos." + rules = "Deal 3 damage to an enemy unit and units adjacent to it." + icon_state = "syndicate_minibomb" + + mana_cost = 3 + + faction = "Syndicate" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/viscerator + name = "Viscerator" + desc = "A small yet deadly machine, designed to rip it's targets apart." + rules = "Gain +1/+1 for every other viscerator on field." + icon_state = "viscerator" + + mana_cost = 2 + attack = 3 + health = 1 + + faction = "Syndicate" + rarity = "Common" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + rules = "Give equipped unit Deadeye and First Strike." + icon_state = "cqc" + + mana_cost = 4 + attack = 4 + health = 3 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/holoparasite + name = "Holoparasite" + desc = "A mysterious being that stands by its charge, ever vigilant." + rules = "On summon: \"Link\" this unit to another unit. Whenever this unit takes damage, instead, transfer all damage to the linked unit." + icon_state = "holoparasite" + + mana_cost = 6 + attack = 8 + health = 0 + + faction = "Syndicate" + rarity = "Legendary" + card_type = "Unit" + +/datum/tcg_card/pack_nuclear/rapier + name = "Rapier" + desc = "An elegant plastitanium rapier with a diamond tip and coated in a specialized knockout poison." + rules = "" + icon_state = "rapier" + + mana_cost = 2 + attack = 3 + health = 0 + + faction = "Syndicate" + rarity = "Rare" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/sniper + name = "Sniper Rifle" + desc = "A long ranged weapon that does significant damage. No, you can't quickscope." + rules = "Give equipped unit Deadeye." + icon_state = "sniper" + + mana_cost = 6 + attack = 5 + health = 0 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/honksword + name = "Bananium Sword" + desc = "An elegant weapon, for a more \"civilized\" age." + rules = "Equipped unit does not deal damage. Instead, it taps the attacked card without activating it's effects." + icon_state = "honksword" + + mana_cost = 3 + attack = 0 + health = 0 + + faction = "Syndicate" + rarity = "Common" + card_type = "Equipment" + +/datum/tcg_card/pack_nuclear/mustache + name = "Mustache Grenade" + desc = "A handsomely-attired teargas grenade." + rules = "Unequip all enemy units. Unequipped equipment cards must be discarded." + icon_state = "mustache" + + mana_cost = 5 + + faction = "Syndicate" + rarity = "Common" + card_type = "Spell" + +/datum/tcg_card/pack_nuclear/taeclowndo + name = "Tae-Clown-Do" + desc = "A pair of clown shoes, infused with bananium. Rumors say that these can teach their wearer the art of Tae-Clown-Do." + rules = "Flip a coin. If heads, your enemy skips a turn. If tails, you skip a turn instead." + icon_state = "taeclowndo" + + mana_cost = 3 + + faction = "Syndicate" + rarity = "Epic" + card_type = "Spell" diff --git a/code/modules/tcg/pack_star.dm b/code/modules/tcg/pack_star.dm new file mode 100644 index 0000000000..4b8e32e631 --- /dev/null +++ b/code/modules/tcg/pack_star.dm @@ -0,0 +1,304 @@ +/datum/tcg_card/pack_star + pack = 'icons/obj/tcg/pack_star.dmi' + +/datum/tcg_card/pack_star/golem + name = "Adamantine Golem" + desc = "An adamantine golem, immune to magic and being able to coordinate other golems, has a great power in combat." + rules = "Holy. Taunt." + icon_state = "golem" + + mana_cost = 4 + attack = 4 + health = 5 + + faction = "Unique" + rarity = "Rare" + card_type = "Unit" + +/obj/item/tcg_card/special/golem + datum_type = /datum/tcg_card/pack_star/golem + +/datum/tcg_card/pack_star/xenomaid + name = "Lusty Xenomorph Maid" + desc = "Just a lusty xenomorph maid, nothing to see here." + rules = "Blocker. Each turn, gain -1/-1." + icon_state = "xenomaid" + + mana_cost = 3 + attack = 6 + health = 6 + + faction = "Unique" + rarity = "Epic" + card_type = "Unit" + +/obj/item/tcg_card/special/xenomaid + datum_type = /datum/tcg_card/pack_star/xenomaid + +/datum/tcg_card/pack_star/morph + name = "Morph" + desc = "A revolting, pulsating pile of flesh that can mimic everything it sees." + rules = "On summon: Copy stats of an opponent's card." + icon_state = "morph" + + mana_cost = 4 + attack = 0 + health = 1 + + faction = "Unique" + rarity = "Common" + card_type = "Unit" + +/obj/item/tcg_card/special/morph + datum_type = /datum/tcg_card/pack_star/morph + +/datum/tcg_card/pack_star/demonic_miner + name = "Demonic Miner" + desc = "An soul of extremely geared miner, driven crazy or possessed by the demonic forces here, either way a terrifying enemy." + rules = "Each turn: Deal 1 damage to all the creatures on the field." + icon_state = "demonic_miner" + + mana_cost = 7 + attack = 4 + health = 5 + + faction = "Unique" + rarity = "Rare" + card_type = "Unit" + +/obj/item/tcg_card/special/demonic_miner + datum_type = /datum/tcg_card/pack_star/demonic_miner + +/datum/tcg_card/pack_star/wendigo + name = "Wendigo" + desc = "A mythological man-eating legendary creature, you probably aren't going to survive this." + rules = "" + icon_state = "wendigo" + + mana_cost = 6 + attack = 5 + health = 3 + + faction = "Unique" + rarity = "Common" + card_type = "Unit" + +/obj/item/tcg_card/special/wendigo + datum_type = /datum/tcg_card/pack_star/wendigo + +/datum/tcg_card/pack_star/honk + name = "H.O.N.K. Mech" + desc = "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. Used to spread the fun and joy of life. HONK!" + rules = "Taunt." + icon_state = "honk" + + mana_cost = 8 + attack = 6 + health = 8 + + faction = "Unique" + rarity = "Epic" + card_type = "Unit" + +/obj/item/tcg_card/special/honk + datum_type = /datum/tcg_card/pack_star/honk + +/datum/tcg_card/pack_star/ratvar + name = "Clockwork Slab" + desc = "A link between clockwork servants and the Celestial Derelict. It contains information, recites scripture, and is Servant's most vital tool." + rules = "Equipped unit gains Clockwork and can't attack units with Holy." + icon_state = "ratvar" + + mana_cost = 2 + attack = 3 + health = 0 + + faction = "Unique" + rarity = "Common" + card_type = "Equipment" + +/obj/item/tcg_card/special/ratvar + datum_type = /datum/tcg_card/pack_star/ratvar + +/datum/tcg_card/pack_star/hierophant + name = "Hierophant Club" + desc = "The strange technology of this large club allows various nigh-magical feats. It used to beat you, but now you can set the beat." + rules = "Give equipped unit First Strike." + icon_state = "hierophant" + + mana_cost = 4 + attack = 2 + health = 0 + + faction = "Unique" + rarity = "Rare" + card_type = "Equipment" + +/obj/item/tcg_card/special/hierophant + datum_type = /datum/tcg_card/pack_star/hierophant + +/datum/tcg_card/pack_star/abductor + name = "Alien Gland" + desc = "A nausea-inducing hunk of twisting flesh and metal. These things are often found after people were abducted by grey-skinned aliens." + rules = "Each turn: Flip a coin. If heads, unit gain +1/+1. If tails, unit gains -2/-1." + icon_state = "abductor" + + mana_cost = 2 + attack = 0 + health = 0 + + faction = "Unique" + rarity = "Common" + card_type = "Equipment" + +/obj/item/tcg_card/special/abductor + datum_type = /datum/tcg_card/pack_star/abductor + +/datum/tcg_card/pack_star/space_carp + name = "Space Carp" + desc = "A failed weaponery experiment, looking like a ferocious, fang-bearing creature that resembles a fish." + rules = "" + icon_state = "space_carp" + + mana_cost = 1 + attack = 2 + health = 1 + + faction = "Unique" + rarity = "Common" + card_type = "Unit" + +/obj/item/tcg_card/special/space_carp + datum_type = /datum/tcg_card/pack_star/space_carp + +/datum/tcg_card/pack_star/spess_pirate + name = "Space Pirate" + desc = "Space Pirate does whatever he wants because he is free. Sadly, Space Rum insn't free." + rules = "On summon: Draw 2 cards. If there are no spells, discard them." + icon_state = "spess_pirate" + + mana_cost = 4 + attack = 3 + health = 2 + + faction = "Unique" + rarity = "Rare" + card_type = "Unit" + +/obj/item/tcg_card/special/spess_pirate + datum_type = /datum/tcg_card/pack_star/spess_pirate + +/datum/tcg_card/pack_star/gondola + name = "Gondola" + desc = "Gondola is the silent walker. Having no hands he embodies the Taoist principle of wu-wei (non-action) while his smiling facial expression shows his utter and complete acceptance of the world as it is. Its hide is extremely valuable." + rules = "Taunt. Holy." + icon_state = "gondola" + + mana_cost = 6 + attack = 0 + health = 6 + + faction = "Unique" + rarity = "Epic" + card_type = "Unit" + +/obj/item/tcg_card/special/gondola + datum_type = /datum/tcg_card/pack_star/gondola + +/datum/tcg_card/pack_star/phazon + name = "Phazon" + desc = "The pinnacle of scientific research and pride of Nanotrasen, Phazon uses cutting edge bluespace technology and expensive materials." + rules = "Whenever this unit takes damage, flip a coin. If heads, take no damage. If tails, take double damage." + icon_state = "phazon" + + mana_cost = 8 + attack = 5 + health = 7 + + faction = "Unique" + rarity = "Rare" + card_type = "Unit" + +/obj/item/tcg_card/special/phazon + datum_type = /datum/tcg_card/pack_star/phazon + +//Ultimate Exodia cards. I really, really doubt that someone will ever find them. + +/datum/tcg_card/exodia + pack = 'icons/obj/tcg/pack_star.dmi' + +/datum/tcg_card/exodia/exodia_singulo + name = "Singularity" + desc = "A monstrous gravitational singularity, pitch black(but not quiet) and very menacings." + rules = "This card doesn't leave field. At the end of each turn: Remove all the cards(except other Exodia cards) from the field." + icon_state = "exodia_singularity" + + mana_cost = 8 + + faction = "Exodia" + rarity = "Exodia" + card_type = "Spell" + +/datum/tcg_card/exodia/exodia_tesla + name = "Energy Orb" + desc = "An orb made out of hypercharged plasma. An ultimate bug zapper." + rules = "This card doesn't leave field. Every turn all units take 4 damage." + icon_state = "exodia_tesla" + + mana_cost = 8 + + faction = "Exodia" + rarity = "Exodia" + card_type = "Spell" + +/datum/tcg_card/exodia/exodia_narie + name = "Nar-Sie" + desc = "An avatar of the Nar-Sie, one of the Eldritch Gods." + rules = "This card doesn't leave field. Every turn all units take 1 damage and you restore 1 lifeshard." + icon_state = "exodia_narsie" + + mana_cost = 8 + + faction = "Exodia" + rarity = "Exodia" + card_type = "Spell" + +/datum/tcg_card/exodia/exodia_ratvar + name = "Ratvar" + desc = "Ratvar, the god of cogs and clockwork mechanisms, was trapped by Nar-Sie a long ago." + rules = "This card doesn't leave field. Every turn enemy hero recieves 2 lifeshard damage." + icon_state = "exodia_ratvar" + + mana_cost = 8 + + faction = "Exodia" + rarity = "Exodia" + card_type = "Spell" + +/datum/tcg_card/exodia/exodia + name = "Eldritch Horror" + desc = "The Eldritch Horror is a long forgotten demon that was the beginning of everything. Afterwards, his creations revolted and left him abadoned in endless void." + rules = "This card doesn't leave field. If all other 4 Exodia cards are on the field(Singularity, Energy Orb, Nar-Sie and Ratvar), the game is won." + icon_state = "exodia_eldritch" + + mana_cost = 8 + + faction = "Exodia" + rarity = "Unique" //No drop lads + card_type = "Spell" + +/obj/item/tcg_card/special/exodia_singulo + datum_type = /datum/tcg_card/exodia/exodia_singulo + +/obj/item/tcg_card/special/exodia_tesla + datum_type = /datum/tcg_card/exodia/exodia_tesla + +/obj/item/tcg_card/special/exodia_narie + datum_type = /datum/tcg_card/exodia/exodia_narie + +/obj/item/tcg_card/special/exodia_ratvar + datum_type = /datum/tcg_card/exodia/exodia_ratvar + +/obj/item/tcg_card/special/exodia + datum_type = /datum/tcg_card/exodia/exodia + diff --git a/code/modules/uplink/uplink_items/uplink_badass.dm b/code/modules/uplink/uplink_items/uplink_badass.dm index 43e5523bad..ec0ebf66d1 100644 --- a/code/modules/uplink/uplink_items/uplink_badass.dm +++ b/code/modules/uplink/uplink_items/uplink_badass.dm @@ -78,3 +78,16 @@ limited_stock = 1 cant_discount = TRUE include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/badass/gaming_cardpack + name = "TCG Card Operatives Bundle" + desc = "A bundle full of goodies required to work as a TCG Card Operative. A warm pajama, a mug of cocoa, a plushie and a two packs full of rare 2560 Core Set cards!" + item = /obj/item/storage/box/syndie_kit/sleepytime/cardpack + cost = 20 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/badass/cardpack + name = "TCG Nuclear Cardpack" + desc = "A cardpack filled with top-tier TCG cards." + item = /obj/item/cardpack/syndicate + cost = 4 diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index 6163e5722a..de15b16b68 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -104,3 +104,10 @@ desc = "An eyepatch that connects itself to your eye socket, enhancing your shooting to an impossible degree, allowing your bullets to ricochet far more often than usual." item = /obj/item/clothing/glasses/eyepatch/syndicate cost = 8 + +/datum/uplink_item/device_tools/ablative_armwraps + name = "Ablative Armwraps" + desc = "A pair of highly reinforced armwraps allowing the user to parry almost anything. Fully reflects projectiles, no downsides to failing, but is very hard to parry melee with." + cost = 6 + item = /obj/item/clothing/gloves/fingerless/ablative + exclude_modes = list(/datum/game_mode/nuclear) diff --git a/code/modules/uplink/uplink_items/uplink_stealth.dm b/code/modules/uplink/uplink_items/uplink_stealth.dm index ff6d66a483..1bd75fa2b1 100644 --- a/code/modules/uplink/uplink_items/uplink_stealth.dm +++ b/code/modules/uplink/uplink_items/uplink_stealth.dm @@ -102,6 +102,7 @@ along with slurred speech, aggression, and the ability to infect others with this agent." item = /obj/item/storage/box/syndie_kit/romerol cost = 25 + player_minimum = 25 cant_discount = TRUE exclude_modes = list(/datum/game_mode/nuclear) @@ -115,7 +116,7 @@ cost = 4 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) -datum/uplink_item/stealthy_weapons/taeclowndo_shoes +/datum/uplink_item/stealthy_weapons/taeclowndo_shoes name = "Tae-clown-do Shoes" desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." cost = 12 diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index b4490f715b..264d262a1d 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -120,7 +120,14 @@ /obj/item/clothing/ears/headphones = 2, /obj/item/clothing/head/wig/random = 3, /obj/item/clothing/suit/ran = 2, - /obj/item/clothing/head/ran = 2) + /obj/item/clothing/head/ran = 2, + /obj/item/clothing/mask/gas/timidcostume = 3, + /obj/item/clothing/suit/hooded/wintercoat/timidcostume = 3, + /obj/item/clothing/shoes/timidcostume = 3, + /obj/item/clothing/mask/gas/timidcostume/man = 3, + /obj/item/clothing/suit/hooded/wintercoat/timidcostume/man = 3, + /obj/item/clothing/shoes/timidcostume/man = 3, + ) contraband = list(/obj/item/clothing/suit/judgerobe = 1, /obj/item/clothing/head/powdered_wig = 1, /obj/item/gun/magic/wand = 2, diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 462d4b5cb5..707557ff73 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -21,6 +21,7 @@ /obj/item/clothing/suit/jacket/puffer/vest = 4, /obj/item/clothing/suit/jacket/puffer = 4, /obj/item/clothing/suit/hooded/cloak/david = 4, + /obj/item/clothing/neck/cancloak = 4, /obj/item/clothing/suit/bomber = 5, /obj/item/clothing/under/suit/turtle/teal = 3, /obj/item/clothing/under/suit/turtle/grey = 3, @@ -31,9 +32,26 @@ /obj/item/clothing/under/suit/burgundy = 3, /obj/item/clothing/under/suit/charcoal = 3, /obj/item/clothing/under/suit/white = 3, + /obj/item/clothing/under/suit/tan = 3, + /obj/item/clothing/under/suit/charismatic_suit = 3, /obj/item/clothing/under/costume/kilt = 3, + /obj/item/clothing/suit/suspenders = 3, /obj/item/clothing/under/misc/overalls = 3, /obj/item/clothing/under/suit/sl = 3, + /obj/item/clothing/accessory/sweater = 3, + /obj/item/clothing/accessory/sweater/pink = 3, + /obj/item/clothing/accessory/sweater/heart = 3, + /obj/item/clothing/accessory/sweater/blue = 3, + /obj/item/clothing/accessory/sweater/nt = 3, + /obj/item/clothing/accessory/sweater/mint = 3, + /obj/item/clothing/accessory/sweater/shoulderless = 3, + /obj/item/clothing/accessory/sweater/flower = 3, + /obj/item/clothing/accessory/turtleneck = 2, + /obj/item/clothing/accessory/turtleneck/red = 2, + /obj/item/clothing/accessory/turtleneck/comfy = 2, + /obj/item/clothing/accessory/turtleneck/tactifool = 2, + /obj/item/clothing/accessory/turtleneck/tactifool/green = 2, + /obj/item/clothing/accessory/turtleneck/tactifool/blue = 2, /obj/item/clothing/under/sweater = 3, /obj/item/clothing/under/sweater/black = 3, /obj/item/clothing/under/sweater/purple = 3, @@ -50,7 +68,14 @@ /obj/item/clothing/under/pants/black = 4, /obj/item/clothing/under/pants/tan = 4, /obj/item/clothing/under/pants/track = 3, + /obj/item/clothing/under/pants/polypants = 4, + /obj/item/clothing/accessory/suitjacket = 2, + /obj/item/clothing/accessory/suitjacket/charcoal = 2, + /obj/item/clothing/accessory/suitjacket/navy = 2, + /obj/item/clothing/accessory/suitjacket/burgundy = 2, + /obj/item/clothing/accessory/suitjacket/checkered = 2, /obj/item/clothing/suit/jacket/miljacket = 5, + /obj/item/clothing/suit/jacket/urbanjacket/polychromic = 5, /obj/item/clothing/under/suit/white_on_white/skirt = 2, /obj/item/clothing/under/rank/captain/suit/skirt = 2, /obj/item/clothing/under/rank/civilian/head_of_personnel/suit/skirt = 2, @@ -74,6 +99,12 @@ /obj/item/clothing/neck/stripedbluescarf = 3, /obj/item/clothing/neck/stripedgreenscarf = 3, /obj/item/clothing/accessory/waistcoat = 2, + /obj/item/clothing/accessory/waistcoat/red = 2, + /obj/item/clothing/accessory/waistcoat/grey = 2, + /obj/item/clothing/accessory/waistcoat/brown = 2, + /obj/item/clothing/accessory/waistcoat/sweatervest = 2, + /obj/item/clothing/accessory/waistcoat/sweatervest/blue = 2, + /obj/item/clothing/accessory/waistcoat/sweatervest/red = 2, /obj/item/clothing/under/dress/skirt = 3, /obj/item/clothing/under/dress/skirt/blue = 3, /obj/item/clothing/under/dress/skirt/red = 3, @@ -132,22 +163,22 @@ /obj/item/clothing/ears/headphones = 10, /obj/item/clothing/suit/apron/purple_bartender = 4, /obj/item/clothing/under/rank/civilian/bartender/purple = 4, + /* Commenting out until next Christmas or made automatic + /obj/item/clothing/accessory/sweater/uglyxmas = 3, /obj/item/clothing/under/costume/christmas = 3, /obj/item/clothing/under/costume/christmas/green = 3, /obj/item/clothing/under/costume/christmas/croptop = 3, /obj/item/clothing/under/costume/christmas/croptop/green = 3, - */ /obj/item/clothing/suit/hooded/wintercoat/christmascoatr = 3, /obj/item/clothing/suit/hooded/wintercoat/christmascoatg = 3, /obj/item/clothing/suit/hooded/wintercoat/christmascoatrg = 3, - /*Commenting out until next Christmas or made automatic /obj/item/clothing/head/christmashat = 3, /obj/item/clothing/head/christmashatg = 3, - */ /obj/item/clothing/shoes/winterboots/christmasbootsr = 3, /obj/item/clothing/shoes/winterboots/christmasbootsg = 3, /obj/item/clothing/shoes/winterboots/santaboots = 3, + */ /obj/item/clothing/head/cowboyhat = 3, /obj/item/clothing/head/cowboyhat/black = 3, /obj/item/clothing/head/cowboyhat/white = 3, @@ -161,7 +192,8 @@ /obj/item/clothing/under/costume/cheongsam/white = 3, /obj/item/clothing/under/costume/cheongsam/red = 3, /obj/item/storage/backpack/snail = 3) - contraband = list(/obj/item/clothing/under/syndicate/tacticool = 3, + contraband = list(/obj/item/clothing/accessory/turtleneck/tactifool/syndicate = 3, + /obj/item/clothing/under/syndicate/tacticool = 3, /obj/item/clothing/under/syndicate/tacticool/skirt = 3, /obj/item/clothing/mask/balaclava = 3, /obj/item/clothing/head/ushanka = 3, @@ -182,7 +214,9 @@ /obj/item/clothing/neck/necklace/dope = 5, /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5, /obj/item/clothing/under/misc/corporateuniform = 5, - /obj/item/clothing/suit/hooded/wintercoat/polychromic = 5) + /obj/item/clothing/suit/hooded/wintercoat/polychromic = 5, + /obj/item/clothing/suit/toggle/wbreakpoly/polychromic = 5, + /obj/item/clothing/shoes/sneakers/poly/polychromic = 10) refill_canister = /obj/item/vending_refill/clothing default_price = PRICE_CHEAP extra_price = PRICE_BELOW_NORMAL diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index 6c29b412e7..cea9c5ae70 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -7,7 +7,9 @@ /obj/item/storage/dice = 10, /obj/item/toy/cards/deck/cas = 3, /obj/item/toy/cards/deck/cas/black = 3, - /obj/item/toy/cards/deck/unum = 3) + /obj/item/toy/cards/deck/unum = 3, + /obj/item/cardpack/series_one = 10, + /obj/item/tcgcard_binder = 5) contraband = list(/obj/item/dice/fudge = 9) premium = list(/obj/item/melee/skateboard/pro = 3, /obj/item/melee/skateboard/hoverboard = 1) diff --git a/code/modules/vending/kinkmate.dm b/code/modules/vending/kinkmate.dm index 56d794e341..2316682e68 100644 --- a/code/modules/vending/kinkmate.dm +++ b/code/modules/vending/kinkmate.dm @@ -12,6 +12,7 @@ /obj/item/clothing/neck/petcollar = 5, /obj/item/clothing/neck/petcollar/choker = 5, /obj/item/clothing/neck/petcollar/leather = 5, + /obj/item/clothing/neck/necklace/cowbell = 5, /obj/item/restraints/handcuffs/fake/kinky = 5, /obj/item/clothing/glasses/sunglasses/blindfold = 4, /obj/item/clothing/mask/muzzle = 4, diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index e88cfe33a3..eebb07938b 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -207,6 +207,7 @@ product_ads = "You turn me TRUE, use defines!;0110001101101100011011110111010001101000011001010111001101101000011001010111001001100101" vend_reply = "Thank you for using the RoboDrobe!" products = list(/obj/item/clothing/glasses/hud/diagnostic = 3, + /obj/item/stack/medical/nanogel = 5, /obj/item/clothing/head/beret/robo = 3, /obj/item/clothing/under/rank/rnd/roboticist = 3, /obj/item/clothing/under/rank/rnd/roboticist/sleek = 3, diff --git a/config/game_options.txt b/config/game_options.txt index 3c53d9fecb..7776d87d4e 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -675,3 +675,6 @@ TURF_DIRT_THRESHOLD 100 ## Default alpha of dirt on spawn DIRT_ALPHA_STARTING 127 + +## Allows pAI custom holoforms +PAI_CUSTOM_HOLOFORMS diff --git a/html/changelog.html b/html/changelog.html index 8a1401744e..bdc642c889 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,896 +50,1042 @@ -->
-

04 October 2020

-

DeltaFire15 updated:

-
    -
  • Synths / IPCs are no longer wound immune.
  • -
  • Husked IPCs / Synths should now be rendered correctly.
  • -
  • Falling vendors now squish synths / IPCs' limbs again.
  • -
  • Synths and IPCs now do not have some fun roundstart oversights anymore.
  • -
  • Regenerate_limbs now works for carbons with the ROBOTIC_LIMBS trait.
  • -
  • Pacifists no longer counterattack on parries if that attack would be harmful.
  • -
  • Heretic sacrifices now husk with the reason of burn, and deal some additional damage.
  • -
  • Neovgre can no longer become invincible on clock tiles.
  • -
  • Plushlings no longer break when absorbing snowflake plushies.
  • -
-

Detective-Google updated:

-
    -
  • the snow cabin doors actually bolt now
  • -
+

19 February 2021

Putnam3145 updated:

    -
  • Ghosts are no longer incapable of going away.
  • -
-

monster860 updated:

-
    -
  • The slimeperson swap-body UI stays open when you switch bodies
  • +
  • Buzz Fuzz's addiction threshold is now a can and a sip as intended.

timothyteakettle updated:

    -
  • limb id entry in mutant bodyparts now supports switching to/from species with gendered body parts
  • -
  • the minimum brightness of mutant parts is now a define
  • +
  • staring into pierced realities is now logged
-

02 October 2020

-

ArcaneMusic, with minor tweaks by TheObserver-sys updated:

-
    -
  • Adds and modifies fertilizers, as well as a new stat, Instability.
  • -
  • Removes the rather disused functionality of irrigation hoses, temporarily disables circuit use on hydroponics trays.
  • -
  • Plant Analyzer have been upgraded. Using one in hand will now switch between a stat view of your plant, and a chemical view of your plant. tweak:Trays now accept and store reagents, as well as coming with an autogrow mode. However, these upgrades came at the cost of old self sufficiency, meaning you must attend to your plants a bit more often.
  • -
  • Earthsblood, while not being able to gild trays anymore, has been found to still be quite powerful as a fertilizer.
  • -
-

CoreFlare updated:

-
    -
  • Altcloaks! Available in loadout.
  • -
-

Detective-Google updated:

-
    -
  • a smattering of clothes from the RP server
  • -
  • detective wardrobe
  • -
-

EmeraldSundisk updated:

-
    -
  • Adds the "Skelter" space ruin
  • -
  • Creates a few new area designations for the Skelter
  • -
  • Cargo techs now have access to a "long pants" variant of their standard work uniform
  • -
  • Adds said uniform to CargoDrobes and the loadout menu
  • -
-

ItzGabby updated:

-
    -
  • Three new turf tiles.
  • -
  • Turf icons with multiple damage icons, with in-hand icons for each tile.
  • -
  • Edited the name and description to wooden.
  • -
-

LetterN updated:

-
    -
  • craftable railings
  • -
  • ports robust savefiles
  • -
-

MrJWhit updated:

-
    -
  • tweaked heavy suit dmi
  • -
  • Fixes drones not being able to quickslot items
  • -
-

Putnam3145 updated:

-
    -
  • New policy config for pyroclastic slimes.
  • -
  • SDGF clones now naked.
  • -
  • SDGF is now way more likely to make a clone that will align with the creator's goals, with purity, making it a better antagging tool.
  • -
  • SDGF clones now have the same traits as the original.
  • -
  • transfer_ckey now resets view, preventing things like SDGF clones with much larger view range.
  • -
  • Policy configs have been added for SDGF, currently unused: SDGF, SDGF_ALIGNED, SDGF_UNALIGNED.
  • -
  • Shivering now has thresholds and fever's thresholds now work.
  • -
  • Made allturfs setup actually set up all turfs.
  • -
  • Dynamic is now more aggressive with adding antags.
  • -
  • Fixes vore pref saving.
  • -
-

SandPoot updated:

-
    -
  • Fixes headslugs being unable to recover their human form.
  • -
-

Tupinambis updated:

-
    -
  • Adds methane and methyl bromide gases.
  • -
  • Minor gas name/desc changes to improve consistency
  • -
  • Ports the methyl bromide tank from bay. Adds two new canister sprites for the new gases and CH4 screen alerts.
  • -
  • fixed a mispelling in the wound armor value for the bounty hunter suit
  • -
-

dapnee updated:

-
    -
  • atrium, clinic, an extra office, a pseudo public mining area, two more deluxe dorms, micro beach, aux bathroom, two construction areas, mass driver, more intercoms
  • -
  • moved all of service, chapel, dorms, garden, holodeck to a different z-level, RnD is more open, maintenance is a bit more random, more firelocks, added more mine-able rock
  • -
  • fixed the buttons in xenobio, gave shutters to cargo's storage area, fixed holodeck so it works now, fixed some techfabs being lathes, added sensors to atmos tanks, more decals, couple more signs, little floral areas and sitting areas added to break up hallway monotony, mech chargers are no longer missing their consoles, whiteship won't crash into arrivals anymore while the area it takes up is more telegraphed, APC placement on AI sat entrance, missing wire node for the outer portion of the AI sat, civilian level now has a telecom relay
  • -
-

lolman360 updated:

-
    -
  • smonk machine runtimes
  • -
  • automatic hydro tray has a unique sprite now (fancy robot arm)
  • -
-

timothyteakettle updated:

-
    -
  • added luminescent and stargazer sprites as selectable body sprites for slimes
  • -
  • wound exponent lowered slightly from 1.225 to 1.2
  • -
  • wound exponent and limb damage multiplier are now config values
  • -
  • ipcs and synthlizards are now treated as actual robots, with robotic limbs, an extra organ, and better emp acts
  • -
  • surgeries for healing robotic limbs, and brain surgery for robotic heads
  • -
  • androids limbs now show up as intended
  • -
  • emps now work from 1-100 severity instead of 1/2 and the severity reduces as you move from the epicentre
  • -
-

zeroisthebiggay updated:

-
    -
  • ratvar gf is complete
  • -
- -

01 October 2020

+

18 February 2021

BlueWildrose updated:

    -
  • Slimepeople are given unique laughs and screams.
  • -
  • Adds "warbles", "chimpers", and "puffs" to the customizable speech verbs for character.
  • -
- -

29 September 2020

-

timothyteakettle updated:

-
    -
  • fixed a typo causing your right eye colour to save as the left eye colour
  • -
- -

28 September 2020

-

ArchieBeepBoop updated:

-
    -
  • Craftable Micro Powered Fans
  • -
-

Degirin2120 updated:

-
    -
  • Added engineering hazard jumpsuits, can be found in the engidrobe, comes in 3 varieties.
  • -
-

Putnam3145 updated:

-
    -
  • Added a brute-force check-every-single-tile step to SSair when it has enough time to run.
  • -
  • G fuid production is now much lower.
  • -
  • Supermatter sabotage objective's gone.
  • -
  • Subterfuge objectives are now all equally likely.
  • -
  • Replaced a "(hopefully) 1" with a "2"
  • -
  • Cryoing no longer unwins already-won objectives.
  • -
-

SiliconMain updated:

-
    -
  • Minor adjustment to material cost of long range atmos analyzer
  • -
-

Trilbyspaceclone updated:

-
    -
  • Most drinks now have some animation in them, from basic soda bubbles fizzing around to ice cubes bobbing just a bit.
  • -
-

Tupinambis updated:

-
    -
  • Ghost poly's color value is now a hex value instead of an oct value. This has been a thing for OVER FIVE YEARS
  • -
  • Updates TEG, Antimatter, Jetpack sprites (CO2 and Oxy from Eris).
  • -
  • Replaced old chair sprites with new ones ported and modified from eris.
  • -
  • Beds can now be placed both right and left.
  • -
  • Subtle changes to stool legs to give them more of a shine.
  • -
-

raspy-on-osu updated:

-
    -
  • TEG power generation
  • -
-

thakyZ updated:

-
    -
  • Added the ability to print the Light Replacer at the Engineering Protolathe
  • -
-

timothyteakettle updated:

-
    -
  • turrets can once again be broken
  • -
  • you can now have heterochromia and select individual eye colours
  • -
- -

27 September 2020

-

SiliconMain updated:

-
    -
  • Holograms made from projectors (atmos, engi, sec, medical, ect...) can no longer be contaminated by radiation
  • -
- -

26 September 2020

-

CoreFlare updated:

-
    -
  • IPC's can have hair. Why wasn't this added earlier. Use the bald hairstyle for no hair.
  • -
- -

25 September 2020

-

Putnam3145 updated:

-
    -
  • Removed a non-working proc that already had its functionality implemented in another proc in the same file.
  • -
- -

24 September 2020

-

Putnam3145 updated:

-
    -
  • Atmos is free.
  • -
- -

22 September 2020

-

Arturlang updated:

-
    -
  • TGUI Statpanel
  • -
-

YakumoChen updated:

-
    -
  • Mechsuits, robotics jumpsuits added to RoboDrobe
  • -
-

timothyteakettle updated:

-
    -
  • character previews should be more consistent now
  • -
- -

20 September 2020

-

DeltaFire15 updated:

-
    -
  • Sutures work on simplemobs again.
  • -
  • Attacking dismembered bodyparts now targets the chest instead, for weapons aswell as unarmed attacks.
  • -
-

MrJWhit updated:

-
    -
  • New sprites for chess pieces! You can craft them in-game with metal sheets.
  • -
-

silicons updated:

-
    -
  • hulks can smash again (walls no longer break their hands)
  • -
  • acid no longer degrades armor
  • -
- -

17 September 2020

-

DeltaFire15 updated:

-
    -
  • Failing the plushmium reaction can now create peculiar plushies, depending on reaction volume.
  • -
  • The mood-buff from petting a plushie now works properly again.
  • -
  • Fixed wacky necropolis loot chest behavior
  • -
-

EmeraldSundisk updated:

-
    -
  • Adds the Research Director's office to Omega Station
  • -
  • Adds 2 new solar arrays (and control rooms)
  • -
  • Adds some action figures that weren't there previously
  • -
  • The CMO's office now has a light switch
  • -
  • Slight readjustments to impacted areas
  • -
  • Readjusts the toxins air supply line to (ideally) be easier to service
  • -
  • Department camera consoles should now be able to actually check appropriate cameras
  • -
  • Xenobiology can now be locked down (by the Research Director)
  • -
-

MrJWhit updated:

-
    -
  • Adds a brain damage line
  • -
-

Putnam3145 updated:

-
    -
  • Your balls finally feel full, again.
  • -
-

timothyteakettle updated:

-
    -
  • due to changes in policy, and several lawsuits, Nanotrasen has been forced to allow disabled people to sign up
  • -
- -

16 September 2020

-

timothyteakettle updated:

-
    -
  • fixed an icon path
  • -
- -

12 September 2020

-

01 October 2020

-

BlueWildrose updated:

-
    -
  • Slimepeople are given unique laughs and screams.
  • -
  • Adds "warbles", "chimpers", and "puffs" to the customizable speech verbs for character.
  • -
- -

30 August 2020

-

raspy-on-osu updated:

-
    -
  • new explosion echoes
  • -
  • explosion echo range
  • -
  • 5 new explosion related sounds
  • -
- -

28 August 2020

-

EmeraldSundisk updated:

-
    -
  • Adds more paper to the library
  • -
  • The law office now has a desk window
  • -
  • Expands most of CogStation's exterior airlocks. Slightly adjusts surrounding areas to accommodate this.
  • -
  • Updates some of CogStation's paperwork
  • -
  • The rat in the morgue turned themselves into a possum. Funniest shit I've ever seen.
  • -
  • Adjusts some area designations so cameras should receive power properly
  • -
  • Cleans up an errant decal
  • +
  • Admins now receive messages regarding certain holodeck actions.

Hatterhat updated:

    -
  • Traitor holoparasites can now only be bought once, because apparently you can only have one active holopara.
  • -
  • PDA bombs can now only be bought once per uplink.
  • +
  • Free Golem Ship GPSes now start as disabled. Like they were supposed to.
-

lolman360 updated:

-
    -
  • atmos = radiation = chemistry.
  • -
-

shellspeed1 updated:

-
    -
  • Adds slow mode for iv drips
  • -
-

timothyteakettle updated:

-
    -
  • an ancient game over a thousand years old has re-emerged among crewmembers - rock paper scissors
  • -
  • customization features appear in alphabetical order where necessary
  • -
  • bokken do two more stamina damage now
  • -
  • you can now choose a body sprite as an anthromorph or anthromorphic insect, and can choose from aquatic/avian and apid respectively (and obviously back to the defaults too)
  • -
- -

27 August 2020

-

silicons updated:

-
    -
  • eyebeam lighting can only have 128 maximum HSV saturation now.
  • -
  • no more shotgun stripper clips in boxes.
  • -
  • goliath tentacles now do 20 damage to mechs at 25% ap
  • -
-

timothyteakettle updated:

-
    -
  • changing your character's gender won't randomize its hairstyle and facial hairstyle now
  • -
- -

26 August 2020

-

ancientpower updated:

-
    -
  • Ghosts can read newscasters by clicking on them.
  • -
-

silicons updated:

-
    -
  • hierophant vortex blasts now have 50% armor penetration vs mecha
  • -
  • ventcrawling now kicks off every attached/buckled mob, even for non humans.
  • -
- -

25 August 2020

-

Hatterhat updated:

-
    -
  • Insidious combat gloves have been replaced by insidious guerilla gloves. They're generally the same, except now you can tackle with them.
  • -
-

Literallynotpickles updated:

-
    -
  • You can now equip handheld crew monitors on all medical-related winter coats.
  • -
-

Putnam3145 updated:

-
    -
  • vore now ejects occupants on death
  • -
-

raspy-on-osu updated:

-
    -
  • Thermoelectric Generator power output
  • -
-

timothyteakettle updated:

-
    -
  • I.P.Cs now short their circuits when expressing emotion, causing sparks to appear around them.
  • -
- -

24 August 2020

-

MrJWhit updated:

-
    -
  • Fixes areas on expanded airlocks
  • -
-

silicons updated:

-
    -
  • wormhole jaunters work
  • -
  • wormhole jaunters no longer get interference from bags of holding
  • -
  • airlocks now only shock on pulse/wirecutters instead of on tgui panel open.
  • -
-

timothyteakettle updated:

-
    -
  • three new items are in the loadout for all donators
  • -
-

zeroisthebiggay updated:

-
    -
  • contraband black evening gloves in kinkvend
  • -
- -

23 August 2020

-

DeltaFire15 updated:

-
    -
  • silicons and clockies can now access APCs properly
  • -
-

EmeraldSundisk updated:

-
    -
  • Medbay now has a smartfridge for organ storage
  • -
  • Slight enhancements to the station's electrical wiring layout
  • -
  • Very small library renovation
  • -
  • Exterior airlocks have been given proper air systems for safety's sake
  • -
-

Ghommie updated:

-
    -
  • Stops shielded hardsuits from slowly turning the wearer into a big glowing ball of stacked energy shield overlays.
  • -
  • the shielding overlay is merely visual as result. Aim your clicks.
  • -
-

Ludox235 updated:

-
    -
  • no more 10 pop xenos (25pop now)
  • -
-

MrJWhit updated:

-
    -
  • Increases the majority of airlocks by 1 tile.
  • -
  • Minor adjustments to the TEG engine.
  • -
-

Putnam3145 updated:

-
    -
  • Simplemobs no longer count in dynamic.
  • -
  • "Story" storyteller no longer starts at a ludicrously low threat, always.
  • -
  • Blob threat now scales with coverage.
  • -
  • One person with their pref on no longer overpowers 40 people who might not even know there is one.
  • -
  • Negative-weight rulesets are no longer put into the list.
  • -
-

kiwedespars updated:

-
    -
  • removed durathread from armwraps recipe.
  • -
-

lolman360 updated:

-
    -
  • breath mask balaclava
  • -
-

timothyteakettle updated:

-
    -
  • lizards are now a recommended species for mam snouts
  • -
-

zeroisthebiggay updated:

-
    -
  • new sprites for the temporal katana
  • -
  • suiciding with the temporal katana omae wa mou shinderius you into the shadow realm
  • -
  • twilight isnt earrape
  • -
- -

22 August 2020

-

Time-Green (copypasta'd by lolman360) updated:

-
    -
  • plumbing
  • -
  • automatic hydro trays
  • -
- -

21 August 2020

LetterN updated:

    -
  • Updates and adds some of the tips
  • -
-

Putnam3145 updated:

-
    -
  • added reftracking as a compile flag
  • +
  • No more liver damage when you opt out of "hornychems"

SmArtKar updated:

    -
  • RSD limitation is now 500 tiles
  • -
  • Fixed broken RSD sprites
  • -
  • Removed that shuttle limit
  • +
  • Added a new TCG card game
  • +
+

dzahlus updated:

+
    +
  • Removed maroon objective due to toxic gameplay behaviour
  • +
+

shellspeed1 updated:

+
    +
  • floor bots place plating before tiles now.
  • +
  • gets rid of another tile duplication issue.
  • +
+

silicons updated:

+
    +
  • priviledge --> privilege
  • +
+ +

16 February 2021

+

silicons updated:

+
    +
  • sprint removal entry added, UI will revert to old UI while this is active.
  • +
+ +

15 February 2021

+

Adelphon updated:

+
    +
  • polychromatic shoes
  • +
  • polychromatic windbreaker
  • +
  • polychromatic canvas cloak
  • +
  • digitigrade charismatic suit texture
  • +
+

DeltaFire15 updated:

+
    +
  • Kneecapped pugilist parries somewhat.
  • +
  • Slightly nerfed default unarmed parries.
  • +
  • Slightly nerfed traitor armwrap parries.
  • +
  • Pugilist parries now cannot perfectly defend against projectiles, as they were supposed to.
  • +
  • Some parrying numbers that one would think were in seconds didn't have the SECONDS. I added those.
  • +
  • Clock cultists now yell alot less when invoking scripture.
  • +
+

dzahlus updated:

+
    +
  • Added new emote
  • +
  • added a new emote sound
  • +
+

silicons updated:

+
    +
  • people on the ground hit less hard in unarmed combat. rng miss remove from punches.
  • +
  • chat highlighting no longer drops half your entered words.
  • +
+ +

14 February 2021

+

DeltaFire15 updated:

+
    +
  • The antag panel now correctly shows the names of cultist / clockcult datum subtypes.
  • +
  • Adding clock cultists via the admin panel now works correctly.
  • +
  • Xeno larvae should now be able to ventcrawl again.
  • +
+

Hatterhat updated:

+
    +
  • Repairing sensors on jumpsuits now requires a fully-intact jumpsuit. Find some cloth.
  • +
  • Durathread armor kits now require you to have a fully-repaired jumpsuit, first, with no attachments.
  • +
  • Durathread armor kits now no longer weave the entirety of the jumpsuit armor universe into having armor.
  • +
+

TyrianTyrell updated:

+
    +
  • added a define for multilingual granted languages, and changed the multilingual trait to use it.
  • +
+ +

13 February 2021

+

Hatterhat updated:

+
    +
  • Energy bolas now take 2.5 seconds to remove and dissipate on removal.

timothyteakettle updated:

    -
  • two snouts can once again be chosen in customization
  • -
  • lizard snouts work again
  • +
  • migration error to version 39+ of savefiles is now logged instead of messaging all online admins in the chat
-

20 August 2020

-

DeltaFire15 updated:

-
    -
  • The cooking oil damage formula is no longer scuffed.
  • -
  • Changed the clockie help-link to lead to our own wiki.
  • -
-

Fikou updated:

-
    -
  • admins can now do html in ahelps properly
  • -
+

12 February 2021

Hatterhat updated:

    -
  • Pirate threats are now announced as "business propositions", and their arrivals are now also announced properly.
  • -
-

tiramisuapimancer updated:

-
    -
  • Ethereal hair is now their body color instead of accidentally white
  • -
- -

18 August 2020

-

DeltaFire15 updated:

-
    -
  • kindle cast time: 15ds -> 25ds
  • -
  • Moved the Belligerent Scripture to where it should be in the code
  • -
-

Detective-Google updated:

-
    -
  • glass floors
  • -
  • uncrowbarrable plasma floors tweak:disco inferno's plasma floors can no longer be crowbarred.
  • -
  • ghost cafe has funky fresh art
  • -
  • you can actually remove glass floors now
  • -
  • get_equipped_items is hopefully less gross
  • -
  • plasma cutters are no longer gay
  • -
-

Hatterhat updated:

-
    -
  • Slaughter demons (and laughter demons, being a subtype) are MOB_SIZE_LARGE, with one of the more immediate effects being able to mark them with a crusher and backstab them.
  • -
  • The funny blyat men have stumbled upon another surplus of Mosin-Nagants and are starting to pack them into crates again.
  • -
  • Vehicle riders can now, by default, get shot in the face and/or chest.
  • -
  • Adminspawn only .357 DumDum rounds! Because sometimes the other guy just really needs to hurt.
  • -
  • Bluespace beakers now have a chemical window through the side that shows chemical overlays.
  • -
  • Plant DNA manipulators now let you chuck things over them. Or they WOULD, if LETPASSTHROW worked half a damn.
  • -
-

LetterN updated:

-
    -
  • uplink implant states
  • -
  • tweaks how role assigning works
  • +
  • The ATVs on SnowCabin.dmm have been replaced with snowmobiles.

MrJWhit updated:

    -
  • Gives ashwalkers nightvision
  • -
  • Makes tesla blast people, not the environment, to save the server.
  • -
-

TheObserver-sys updated:

-
    -
  • moves Garlic sprites from growing.dmi to growing_vegetable.dmi
  • -
  • Removes the unused Electric Lime mutation, it just takes up space with no actual function nor sprites.
  • -
  • Gives Catnip growing sprites
  • -
  • Removes redundant images in growing.dmi
  • -
-

kiwedespars updated:

-
    -
  • 10 force to a fucking rubber cock.
  • -
-

lolman360 updated:

-
    -
  • shotgun stripper clip nerf. ammoboxes can now accept a load_delay that happens when they attack a magazine, internal or external.
  • -
-

ported from tg updated:

-
    -
  • bronze airlocks and windows can now be built
  • -
  • i also tweaked bronze flooring to be cheaper.
  • +
  • Random deltastation fixes.
  • +
  • Gives boxstation vault door actual vault door access

silicons updated:

    -
  • stamina draining projectiles without stamina for their primary damage type now has their stamina damage taken into account for shield blocking, rather than the block being done for free for that.
  • -
-

timothyteakettle updated:

-
    -
  • snowflake code tidyup
  • -
  • snowflake code for mutant bodypart selection has been rewritten to be ~14x shorter
  • -
  • meat type and horns can now be selected by any species
  • +
  • Voice of God - sleep removed, stun staggers instead, knockdown is faster but does not do stamina damage, vomit is faster but doesn't stun
-

17 August 2020

+

11 February 2021

+

Adelphon updated:

+
    +
  • Charismatic Suit
  • +
  • Urban Jacket
  • +

DeltaFire15 updated:

    -
  • Cogscarabs are no longer always Pogscarabs
  • -
-

Strazyplus updated:

-
    -
  • Added drakeborgs
  • -
  • Added drakeplushies
  • -
  • added drakeborg sprites
  • -
  • added drakeplushie sprites
  • -
  • changed some code - added drakeplushies to backpack loadout Removed duplicate voresleeper belly sprites from engdrake & jantidrake. [CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)
  • -
  • Added CC BY-NC-SA 3.0 license details to icon/mob/cyborg moved drakeborg.dmi to icon/mob/cyborg
  • -
- -

16 August 2020

-

kiwedespars updated:

-
    -
  • nerfed hypereut chaplain weapon.
  • -
  • 50% rng blockchance -> 0%
  • -
  • parry made much worse because it's an actual weapon and a roundstart one at that.
  • -
-

zeroisthebiggay updated:

-
    -
  • tips
  • -
- -

15 August 2020

-

LetterN updated:

-
    -
  • missing anomaly core icons
  • -
  • wrong state. blame the tg vertion i copied
  • -
-

silicons updated:

-
    -
  • the 8 rotation limit from clockwork chairs has been removed. please don't abuse this.
  • -
  • ethereals can now wear underwear
  • -
- -

14 August 2020

-

silicons updated:

-
    -
  • abductors can buy things
  • -
- -

13 August 2020

-

LetterN updated:

-
    -
  • Removes fermisleepers and reverts them to tg ones
  • -
- -

12 August 2020

-

DeltaFire15 updated:

-
    -
  • hellgun single-pack classification: goodies -> armory
  • -
-

Detective-Google updated:

-
    -
  • hallway table hallway table
  • -
-

Hatterhat updated:

-
    -
  • The temporal katana is now slightly more worthy of the 2 spell point cost, with a smaller, antimagic respecting timestop, less force, and no random blockchance. Society has progressed past the need for blockchance.
  • -
-

LetterN updated:

-
    -
  • Mafia Component
  • -
  • Fixed missing icons and handtele
  • +
  • Added nanogel to the robodrobe.

Putnam3145 updated:

    -
  • a whole lot of jank regarding funny part sprite display.
  • +
  • Config to keep unreadied players from mode voting
-

Toriate updated:

+

dzahlus updated:

    -
  • Opossums have migrated into the maintenance tunnels! Seek them out at your own peril!
  • +
  • fixes grenadelaunch.ogg being used where it shouldn't and makes mech weapons use correct sound
-

ancientpower updated:

+

keronshb updated:

    -
  • Doors added to the west side of box medbay to make things a bit more manageable.
  • -
-

kappa-sama updated:

-
    -
  • smuggler satchel cost 2->1
  • -
  • radio jammer cost 5->2
  • -
  • smuggler satchel uplink description now implies that persistence is disabled
  • -
-

lolman360 updated:

-
    -
  • renameable necklace (accessory, attaches to suit) and ring (glove slot.)
  • -
  • custom rename is now 2048 characters? i think it's characters.
  • -
-

silicons updated:

-
    -
  • You can now use anything as an emoji by doing :/obj/item/path/to/item:. This works for any /atom or subtype.
  • +
  • 10 > 30 second for Warp Implant cooldown
  • +
  • Comments out power sink objective.

timothyteakettle updated:

    -
  • syndicate agents now have access to mechanical aim enhancers which allow them to aim bullets to bounce off walls
  • -
  • ricochets work properly now for the bullets that support them
  • +
  • persistent blood should stop being invisible and alt clicking it shouldn't return the entire spritesheet
  • +
  • pickpocketing is now logged using log_combat

zeroisthebiggay updated:

    -
  • hair and some sechuds
  • -
  • ce hardsuit radproofing
  • +
  • the aesthetic sterile mask no longer hides faces so you can cosplay egirls and keep flavortexts
-

11 August 2020

-

Hatterhat updated:

+

09 February 2021

+

Chiirno updated:

    -
  • PDA uplinks can now steal from pens. Properly. Just make sure to have a pen in your PDA, first.
  • -
-

kappa-sama updated:

-
    -
  • tracer no longer gives you full stamheals per use
  • -
-

zeroisthebiggay updated:

-
    -
  • volaju two
  • -
- -

10 August 2020

-

Hatterhat updated:

-
    -
  • Parry counterattack text now shows up.
  • -
  • Sterilized gauze is now better at stopping bleeding, and applies slightly faster. Very slightly faster.
  • -
  • Ointment and sutures now hold more in a stack (12 and 15, respectively).
  • -
  • Sterilized gauze can now be made by just pouring 10u sterilizine onto standard medical gauze, instead of having to craft it. Why you had to craft it, I will honestly never know.
  • -
  • Proto-kinetic glaives are more expensive, stagger/cooldown on failed parries increased slightly, perfect parries required for counterattack.
  • -
  • New item: Temporal Katana. 2 points for wizards, timestops upon successful parry, bokken quickparry stats (100 force on melee counter!).
  • -
  • Also you can *smirk. This has no mechanical effect, other than being smug.
  • -
-

KeRSedChaplain updated:

-
    -
  • Added a guide for romerol usage
  • -
  • made infectious zombies not enter softcrit and take no stamina damage
  • -
-

LetterN updated:

-
    -
  • clocktheme color
  • -
  • Ports TGUI-4
  • -
-

Lynxless updated:

-
    -
  • Ports TG #51879
  • -
-

Owai-Seek updated:

-
    -
  • Meatballs now spawn raw from food processors.
  • -
-

Putnam3145 updated:

-
    -
  • Ethereals
  • -
  • (Hexa)crocin
  • -
  • (Hexa)camphor
  • -
  • Tweaked wording for marking tickets IC issue.
  • -
  • Rerolling your traitor goals will ONLY give you "proper" objectives.
  • -
-

Seris02 updated:

-
    -
  • borgs being able to select and use a module when it's too damaged
  • -
-

Sishen1542 updated:

-
    -
  • gave chairs active block/parry in exchange for removal of block_chance
  • -
  • replaces box whiteship tbaton with truncheon
  • -
-

kappa-sama updated:

-
    -
  • made the Dirty Magazines crate cost 4000 instead of 12000 credits
  • -
  • MODS I SPILLED MU JUICE HEJPPHRLP HELPJ JLEP HELP
  • -
-

silicons updated:

-
    -
  • player made areas are no longer valid for malf hacking
  • -
  • default space levels is 4 again.
  • -
  • rats now swarm instead of stacking on one spot.
  • -
  • getting hit by an explosion will now barely hard knockdown, but will leave you somewhat winded.
  • -
-

timothyteakettle updated:

-
    -
  • speech verbs copy through dna copying now
  • -
- -

09 August 2020

-

Hatterhat updated:

-
    -
  • Proto-kinetic glaives (not crushers) can parry now.
  • +
  • Adds clown waddle to clown shoes. Enhanced Clown Waddle Dampeners can be engaged in-hand with ctrl+click, _but why would you?_

MrJWhit updated:

    -
  • Adds a second shutter on the top of the hop line
  • +
  • Re-adds theater disposal outlet, and makes dorms disposal able to have things sent to it on boxstation.
  • +
+

TyrianTyrell updated:

+
    +
  • made default tongue able to speak signed language.
  • +
+

timothyteakettle updated:

+
    +
  • sentient viruses can now infect synths and ipcs
  • +
+ +

07 February 2021

+

Thalpy updated:

+
    +
  • Dispenser: Adds the ability to store a small amount of reagents in the machine itself for dispensing. Reacting recipies cannot be stored. Size of storage increases with bin size.
  • +
  • Dispenser: Allows reagents to be color coded by pH
  • +
  • Dispenser: Each reagent displays it's pH on hover
  • +
  • Dispenser: Allows the user to toggle between buttons and a radial dial
  • +
  • Dispenser: When the dispencer is upgraded it can dispense 5/3/2/1 volumes based on rating refactor: Dispenser: as it was before. This does not break recorded recipes.
  • +
  • Adds a round function to some numbers so they're not huge
  • +
  • The Chem master can now get purity for all reagents when analysed
  • +
  • Synthissue fixes
  • +
  • buffers now have a strong and weak variant. Weak can be dispensed, and strong can be created. Strong buffers are 6x more effective.
  • +
  • Some buffer pH edge calculation fixes
  • +
+

TyrianTyrell updated:

+
    +
  • added a signed language, that can't be used over the radio but can be used if you're mute. also added the multilingual trait.
  • +
  • hopefully added an icon for the signed language.
  • +
  • changed how some traits function slightly.
  • +
+

dzahlus updated:

+
    +
  • tweaked a few sounds
  • +
  • added a new weapon sounds
  • +
  • removed old weapon sounds
  • +
  • changed some sound related code

silicons updated:

    -
  • immovable rods no longer drop down chasms
  • -
  • fun removal: squeaking objects now have an 1 second cooldown between squeaks, and will have a 33% chance of interrupting any other squeaking object when Cross()ing, meaning no more ear-fuck conveyor belts.
  • +
  • syndicate ablative armwraps have been added.
-

08 August 2020

+

05 February 2021

+

SmArtKar updated:

+
    +
  • The orbit menu now has an Auto-Observe button! No more sifting through the lame observe menu to snoop in people's backpacks! Also, orbit menu now refreshes.
  • +
  • KAs are no longer getting broken when fired by a circuit
  • +
+

keronshb updated:

+
    +
  • Force and damage > 15 from 18/25
  • +
  • Knockdown put down to 5 from 30
  • +
  • Armor pen down to 10 from 100.
  • +
  • Makes cell chargers, charge faster.
  • +
+

raspy-on-osu updated:

+
    +
  • alien royals can no longer ventcrawl
  • +
+

shellspeed1 updated:

+
    +
  • There actually needs to be people for zombies to happen now.
  • +
+

timothyteakettle updated:

+
    +
  • dwarf facial hair is no longer randomised
  • +
+ +

03 February 2021

+

Hatterhat updated:

+
    +
  • The green energy sabre's sprite now respects proper handedness.
  • +
+ +

02 February 2021

+

silicons updated:

+
    +
  • pais can now be carried around piggybacking/fireman
  • +
  • Meth and Nuka Cola once again, speed you up.
  • +
+ +

31 January 2021

+

Putnam3145 updated:

+
    +
  • fermichem explosion EMPs don't cover the entire station
  • +
+ +

30 January 2021

+

timothyteakettle updated:

+
    +
  • adds 'clucks', 'caws' and 'gekkers' to the speech verb list
  • +
+

zeroisthebiggay updated:

+
    +
  • some more FUCKING hairs
  • +
  • uncodersprites the advanced extinguisher
  • +
+ +

29 January 2021

+

MrJWhit updated:

+
    +
  • Ported the QM, Captain, CMO, and HoS cloaks from beestation.
  • +
  • Removes excess air alarms from boxstation
  • +
+

TripleShades updated:

+
    +
  • fixes engineering secure storage being the wrong area because I fucked that up previously my bad
  • +
  • removes funny extra light switch under right surgery table in surgery oops
  • +
  • Added chairs to the corpse launch viewing area
  • +
  • Small garden plot for flowers for parity with other station Chapels
  • +
  • Plain Bible to glass tables in Chapel
  • +
  • Candles and Matchbox to glass tables in Chapel
  • +
  • More glass tables, with a chaplain figure and another spare bible.
  • +
  • Bookcase to Box Chapel for parity with other station Chapels
  • +
  • Minimoog to Box Chapel as substitute for a church organ
  • +
  • Holy department sign just below Chapel change: Expanded the corpse launching area to feel less congested change: Added windows to the corpse launch so you can look inside I guess? change: Moved flowers and burial garments to the corner next to the corpse launcher change: Box Chaplain's office door is moved over one change: Confessional is now connected to Chaplain's office for parity with other station Chapels change: Moved coffins over to old confessional location change: Box Chapel now has pews instead of stools change: Box Chapel Confessional is now lit instead of being nearly pitch black remove: Two coffins from Chapel
  • +
+

timothyteakettle updated:

+
    +
  • the miner bedsheet will now increment its progress when you redeem points from the ORM
  • +
  • you can add custom names and descriptions to item's on the loadout now
  • +
+

zeroisthebiggay updated:

+
    +
  • roundstart aesthetic sterile masks and roundstart paper masks
  • +
  • more accessory slot items
  • +
  • cowbell necklace happy 2021
  • +
  • shibari ropes & torn pantyhose
  • +
+ +

28 January 2021

+

silicons updated:

+
    +
  • colormates can now paint some mobs.
  • +
  • 1 dev explosions shouldn't delete brains anymore
  • +
+ +

27 January 2021

+

ArcaneMusic, ported by Hatterhat updated:

+
    +
  • Strike a hydroponics tray with a fully-charged floral somatoray to lock in a mutation.
  • +
  • Floral somatorays now have the ability to force a mutation in a plant. This should drain the cell in a single shot, but we'll see.
  • +
  • Somatorays now take uranium to craft instead of radium.
  • +
+

Arturlang updated:

+
    +
  • Actually adds a right click give option
  • +
  • Revenants can now clickdrag to throw stuff at people, with some items doing various things at the same time.
  • +

DeltaFire15 updated:

    -
  • Roundstart cultists now start with a replica fabricator - no brass though, make your own.
  • -
  • Kindle cast time: 10 > 15, mute after stun end: 2 > 5, slur after mute end: 3 > 5
  • -
  • The ratvarian spear no longer adds negative vitality under very specific circumstances.
  • -
  • The Ratvarian Spear can parry now! Short parries with low leeway, but low cooldown.
  • -
  • The brass claw, a implant-based weapon which gains combo on consecutive hits against the same target.
  • -
  • The sigil of rites, a sigil used to perform various rites with a cost of power and materials
  • -
  • The Rite of Advancement: Used to add a organ or cyberimplant to a clockie without need for surgery.
  • -
  • The Rite of Woundmending: Used to heal all wounds on another cultist, causing toxins damage in return.
  • -
  • The Rite of the Claw: Used to summon a brass claw implant. Maximum of 4 uses per round.
  • +
  • The woundmending rite no longer causes runtimes.
  • +
  • Ratvarian borgs can now use their tier-0 spells.
  • +
  • Ratvarian borgs can always use their assigned spells, if there is enough power.
  • +
  • The heretic antag panel now shows their sacrifices & current sacrifice targets.
  • +
  • The heretic roundend report now shows their sacrifices and nonsacrificed targets.
  • +
  • Living hearts can no longer select the same target as another living heart, removing a certain problem.

Hatterhat updated:

    -
  • You can now buy a toolbox's worth of Mosin-Nagant ammo for a fairly discounted price.
  • -
  • Revolvers from the dedicated kit now have reskinning capabilities.
  • -
  • You can now actually buy the riflery primer, which lets you pump shotguns and work the Mosin's bolt faster.
  • -
  • Bulldog slug magazines now have a unique sprite.
  • +
  • Department budget cards have been readded. TO THE CODE. NOT LOCKERS.
  • +
  • Also budget cards now look more like every other ID - see tgstation#55001.
  • +
  • One of the contractor tablet's payouts has been raised from a small payout to a medium payout.
  • +
  • The free golem ship's GPSes no longer start on. They were never meant to, but they did.
  • +
  • Headsets can't be found on most legion corpses now.
  • +
  • The flash on the assistant corpse is gone, too.
-

Ludox235 updated:

+

MrJWhit updated:

    -
  • Removed an abductee objective that told you to remove all oxygen.
  • -
  • Added a new abductee objective to replace the removed one.
  • +
  • Remaps some air alarms for sanity.
-

Sishen1542 updated:

+

SandPoot updated:

    -
  • 🅱️oneless
  • -
  • squishy slime emotes
  • +
  • The drop circuit can no longer drop things that are not inside it.
  • +
+

raspy-on-osu updated:

+
    +
  • bespoke ventcrawling element not detaching due to malformed call
  • +
+

shellspeed1 updated:

+
    +
  • Floorbots had had a software update, preventing them from dogpiling on their target as easily as they did before.
  • +
  • Floorbots will now play a small chime when stacked on top of each other to indicate that they're moving apart.

timothyteakettle updated:

    -
  • heparin makes you bleed half as much now
  • -
  • cuts make you bleed 25% less now
  • -
  • more items in the loadout and loadout has subcategories now for easier searching
  • +
  • blobs can use the 'me' verb
  • +
  • adminhelps and pms only sanitize once instead of twice
-

07 August 2020

-

dapnee updated:

+

25 January 2021

+

MrJWhit updated:

    -
  • fixed active tufs on some space ruins, murderdome VR, and a few on pubby, changed cargo autolathe to techfab, messed with pipe room leading to monastery.
  • +
  • Alien radio code
  • +
  • Microwave can now be cleaned by a damp rag as well as soap.
  • +
  • Removes some unused code, and improves some other code.
  • +
  • The AI has a verb to look up and down z-levels
  • +
  • Making a monkey into a human doesn't unanchor random things on the tile
  • +
  • Makes a few slight improvements to drinking code
  • +
  • Makes encryption keys be put in the hands of the user when able instead of being dropped on the floor when removed from headsets
-

lolman360 updated:

+

raspy-on-osu updated:

    -
  • vendors are now unanchored when tipped. it just fell over it's not bolted to the ground anymore.
  • -
  • podpeople no fat when sunbathing.
  • +
  • ventcrawling

silicons updated:

    -
  • explosions only recurse one level into storage before dropping 1 level per storage layer.
  • -
  • volumetric storage is now minimum 16 pixels per item because 8 was ridiculous
  • -
  • shieldbash balanace --> balance
  • -
  • attempting to send too long of an emote will now reflect it back to you instead of cutting it off and discarding the overflow.
  • -
  • holoparasites can now play music
  • -
  • lethal blood now causes damaging bleeding instead of outright gibbing
  • +
  • you can now shove yourself up in any intent, not just help.
-

06 August 2020

-

Auris456852 updated:

+

22 January 2021

+

Arturlang updated:

    -
  • Added B.O.O.P. Remote Control cartridges to the PTech.
  • +
  • Adds a way to give items to people, you can combat mode rightclick to offer it to one person, right click on people without mode and click the give verb, or use the hotkey CTRL G to offer it to everyone around you
  • +
+ +

21 January 2021

+

Acer202 updated:

+
    +
  • Main mining shuttle should no longer look at the public mining shuttle and attempt to dock ontop of it. Monastery shuttle should now function again.
  • +
+

Acer202, with minor help from The0bserver updated:

+
    +
  • After internal deliberation, CentCom has decided to run a limited reinstatement of public mining shuttles for use in more tried and true station classes. CentCom would like to remind you that this privilege is easily revoked, and that abuse may result in immediate detonation.
  • +
  • Restores the mining shuttle on Pubby, Box, Delta, Meta, and Lambda Station.
  • +
+

ArcaneMusic, The0bserver-sys updated:

+
    +
  • New from Hydrowear LLC: The Botanical Belt! This handy yellow belt lets you hold most of your botany gear, and a few beakers for reduced bag and floor clutter!
  • +
  • Gives Hydrotrays plumbing pipes automatically, allowing you to make a self sustaining tray via plumbing.
  • +
  • Gives Service access to Bluespace Beakers, at last, gives Cargo, Science, and Medical the ability to construct reinforced plungers for use on lavaland.
  • +
+

ArchieBeepBoop updated:

+
    +
  • Upgraded Advanced RTG Machine Preset
  • +
  • Outlet Injector Mapping Asset Layer Fix
  • +
  • Jacqueen and the Christmas tree should no longer spawn abstract things that can cause shittons of runtimes.
  • +
+

Arturlang updated:

+
    +
  • You can't tackle in nograv anymore
  • +
  • You cannot spam drink from blood bags anymore
  • +
  • Blood bag drinking inefficiency is now the right way, so you loose some of the blood drinking it straight
  • +
  • Handles more edge cases with construct soul returning
  • +
  • Being sacrificed by the cult no longer removes all hope of rescue.
  • +
  • Makes construct mind returning more robust
  • +
  • Prayers to admins now do a wee ding sound for all prayers, instead of just chaplains
  • +
  • Fixes the mint machine's UI
  • +
  • Hopefully fixes whitescreen issues for TGUI UI's by giving assets more time to get to the client
  • +
  • Fixes hijack implant APC UI, again
  • +
  • Comments out spaceman dmm do not sleeps for mob/proc/CommonClickOn, atom/proc/attack_hand, datum/proc/keyLoop and mob/living/proc/Life
  • +
  • Bloodsuckers tresspass ability can no longer work while they are not awake.
  • +
  • The cursed heart now only takes away half as much blood every loop, and can be used as long as you are alive, instead if only you are awake/able to use your hands
  • +
+

Bhijn updated:

+
    +
  • Changeling loudness is now determined as an average of all their abilities, rather than the sum
  • +
  • To compensate for this, blood tests now require a loudness value of 1 or higher to detect ling blood. Additionally, blood test explosions are now triggered only when the loudness value is higher than 2.
  • +
+

BlackMajor updated:

+
    +
  • Cyborg hypospray no longer injects if it means OD'ing while on help intent.
  • +
+

BlueWildrose updated:

+
    +
  • Nyctophobia quirk now has some light lag compensation.
  • +
  • Fixes cloning computer UI not updating when pressing certain buttons - also adds extra check for names to update a message
  • +
  • Removes oversized genitalia analysis from medical scanners, since huge dick and titty are no longer a problem anymore thanks to advancements in that kind of technology when it comes to chemical fun times growth.
  • +
  • Fixed species-specific drinks not giving a mood boost if you are that species.
  • +
  • You will now only unbuckle fireman-carried/piggybacked people on disarm or harm intent.
  • +
  • The traitor AI can no longer activate the doomsday device while carded.
  • +
  • Fixes noodle size appearance for 12+ inch members.
  • +
  • Fixed the subtle hotkey being weird with its input prompts.
  • +
  • Adds a subtler anti-ghost hotkey. Default key is 6.
  • +
  • No more straining when your cock or breasts are growing via incubus draft or succubus milk.
  • +
  • PubbyStation now has two Christmas Tree spawners.
  • +
  • You can now have a max-roundstart-dicksize-config inch long johnson before you start suffering blood loss and slowdowns instead of a 20 inch one.
  • +
  • Color Mates have been added to all stations (except Snaxi). Enjoy coloring your attire without having to bug science!
  • +
  • Polychromic hoodies that were obtained from the loadout have functional colorable hoods now.
  • +
  • Adds in timid woman/man costumes. Available at your autodrobe! Also adds in garters as some new socks.
  • +
  • Corrected the capitalization in gasmask concealment examine text
  • +
+

Chiirno updated:

+
    +
  • Added the paramedics EVA suit as a purchase from the cargo console.
  • +
  • Paramedics office and Surgery Storage Room
  • +
  • Remodeled the surgery room, as well as shrunk Morgue and Starboard Emergency Storage. Fiddled with some areas for better map edit clarity and fixed one runtime in Vacant Office A.
  • +
  • Added the paramedic closet sprite, a paramedic colored medical3 closet.
  • +
  • Added a paramedic closet, which is the standard medical3 closet with their suit, a pinpointer, and a crew monitor added.
  • +
  • Nightmare now deals additional damage to most light sources.
  • +
  • Nightmare now one-shots miners beacons and glowshrooms
  • +
  • Portable Chem Mixer now researchable from biotech node.
  • +
  • Chem masters can now dispense 20 instances of its outputs instead of 10.
  • +
+

Delams-The-SM updated:

+
    +
  • Added 3 new emotes *hiss *purr *meow
  • +
  • ported sounds from Citadel RP for *purr and *meow
  • +
  • fixed randomization of colors for things like mulligan and Stabilized green slime extract for matrixed body parts
  • +
+

DeltaFire15 updated:

+
    +
  • Biomechanical (hybrid) bodyparts now have access to wound-fixing surgeries.
  • +
  • A wound being fixed no longer just qdel()s surgeries connected to it.
  • +
  • Some robotic surgery steps are now a bit more clear.
  • +
  • Organs no longer get fed to people after successfully being inserted into them.
  • +
  • Not completing the do_after of a surgery no longer causes you to attack the target with whatever you were holding.
  • +
  • IPC cells & power cords are now printable after they are researched.
  • +
  • A new surgery, allowing revival of synths without a defib at hand.
  • +
  • Semi-permanent damage of Synth limbs caused by passing the damage threshold: 10 <- 15.
  • +
  • The embed removal surgery now has a version for Synths.
  • +
  • EMPs no longer hardstun Synths.
  • +
  • Portals no longer runtime because of incorrect args.
  • +
  • Abductors now can use experimental organ replacement surgery on robots / synthetics.
  • +
  • Fixes a minor incorrectness in ratvarian borg slabs (ratvar_act -> ui_act)
  • +
  • Changelings no longer double-deathgasp when activating the regen stasis ability while not dead.
  • +
  • People installing KA modkits in miner borgs is no longer broken.
  • +
  • Fixes the tail entwine messages displaying incorrectly.
  • +
  • Antagging / Deantagging Heretics now properly sets their special role.
  • +
  • The borg VTEC ability now actually gets removed when the upgrade is removed.
  • +
  • Supplypods shouldn't cause runtimes anymore, and shrapnel (pelletclouds) should work for them.
  • +
  • Robots (anyone with the robotic_organism trait) have toxins damage replaced with system corruption. See the PR for details.
  • +
  • Clockwork rites now support hiding specific rites from neutered servants.
  • +
  • AIs now only have to kill people once instead of permanently.
  • +
  • Scripture no longer sometimes eats part of its invocation.
  • +
  • APCs and silicons are now more susceptible to powerdrains (by the power_drain() proc, which is rare)
  • +
  • Void Volt has been modified from a chant to a singular pulse.
  • +
  • Robotpeople are now fully immune to the effects of alcohol (drunkness etc.)
  • +
  • Renames the alcohol intolerance trait in the code to make what it does more clear.
  • +
  • Self-fueling weldingtools recharge fuel properly again.
  • +
  • Brass welders now actually recharge faster than experimental ones.
  • +
  • Repeatable surgery steps can no longer cause an infinite loop if not completing the do_after
  • +
  • The Revenant self-revive ability is no longer broken.
  • +
  • Loot items mobs drop are no longer always failing to initialize.
  • +
  • Instant summons can no longer do wacky stuff with disposals (and nukes).
  • +
  • Objectives are no longer very broken.
  • +
  • Bloodcult stunhands now work against clockies like they were supposed to instead of hardstunning.
  • +
  • zeolites are now actual fermichems instead of being incredibly easy to make.
  • +
  • Using syringes / droppers on chem heaters with beakers in them works again.
  • +
  • Some edge cases causing issues with system corruption shouldn't be able to occur anymore.
  • +
  • Cyborg B.o.r.i.s. installation now checks for if the chest has a cell, just like how it does with MMIs.
  • +
  • The 'Your body is in a cloner' notification works again
  • +
  • Hijack implants should work properly again (or, at least better)
  • +
  • Liches are now good skeletons again instead of weak ones
  • +
  • The piratepad control cannot be destroyed again.
  • +
  • Pirates have received new supplies of jetpacks instead of useless oxygen tanks
  • +
  • Ratvarian AIs are once again able to show their linked borgs Ratvar's light
  • +
  • Hijackers are once again unable to detonate borgs without being adjacent to the console
  • +
  • Automated annoucement systems and gulag ore consoles no longer waste emag charges
  • +
  • Automated announcement systems once again can be remote controlled by non-AIs with silicon access
  • +
  • APCs being hijacked multiple times at once is no longer possible, preventing some issues
  • +
  • Recharging APCs no longer use 0.2% of the power they should be using.
  • +
  • APCs no longer always use as much power as they can for their cell, even if it is full.
  • +
  • Vampire shapeshifting should now behave as intended
  • +
  • Some synth damage stuff has been a bit rebalanced, see the PR for details.
  • +
  • Nanogel, available at medical and robotics, which fixes internal damage in sufficiently repaired robotic limbs.
  • +
  • Robotic Limbs now each have their own damage threshhold values
  • +
  • Robotic Limb damage threshholds are now seperated into threshhold itself and mindamage when passed balance; Hybrid limbs can now be injected with hypos, but not sprayed (Still not healed by chems)
  • +
  • Brain surgery has been tweaked back to allowing robotic limbs, blacklisting IPC brains instead.
  • +
  • Robot brain surgery can now be used on organic heads, if there is a IPC brain in them somehow.
  • +
  • The robot limb heal surgery can now be used even if the target's torso is not robotic, as long as they have robotic limbs
  • +
  • BODYPART_ROBOTIC / BODYPART_ORGANIC checks replaced with helper-procs whereever possible.
  • +
  • Added a BODYPART_HYBRID define for robotic bodyparts that behave organic in some regards.
  • +
  • The transmission sigil power drain works now
  • +
  • A certain lizard (totally not me) being stupid is no longer going to break regenerate_bodyparts
  • +
  • Combat mode now will not stay permanently disabled due to status effects not working as intended.
  • +
  • Attacking some certain objects no longer has no clickdelay.
  • +
  • the blacksmithing skill now works properly
  • +
  • Anvils cannot be interacted with with hammers whilst they are already being used
  • +
  • If someone has no gloves when interacting with heated ingots, they no longer ignore their effects.
  • +
  • A runtime caused by hallucinations is gone.
  • +
  • Cargo packs marked as 'no private buying' now actually register as such.
  • +
  • Fleshmend, Anatomic Panacea and bloodsucker healing now work for Synths / IPCs.
  • +
  • Medibots now ignore people they cannot help due to their biology.
  • +
  • get_damaged_bodyparts() is no longer broken.
  • +
  • Your target cryoing will no longer give you a free greentext.
  • +
  • Sleeper UI interactiveness now behaves correctly.
  • +
+

Detective-Google updated:

+
    +
  • arcade carpet
  • +
  • explosions now get broadcasted to deadchat.
  • +
  • Lick radial
  • +
  • Hilbert's jukebox works
  • +
  • arcade carpets now actually work
  • +
  • the snow taxi is no longer the slow taxi
  • +
+

ERP mains updated:

+
    +
  • Subtler Around Table is now a verb
  • +
+

EdgeLordExe, MoonFalcon updated:

+
    +
  • Ported a bunch of heretic-related tweaks and changes from tg
  • +
+

EmeraldSundisk updated:

+
    +
  • Adds a few new area designations primarily for CogStation, incorporates them into said map
  • +
  • Reorganizes some area designations for ease of use, along with renaming the central "Router" to "Routing Depot"
  • +
  • Fixes an incorrectly designated area in CogStation
  • +
  • Changes the area designations to be not varedited since the code didn't like that anymore
  • +
  • The cargo bay conveyor belts not only work with the shuttle now but go in the right direction to boot
  • +
  • Slight visual adjustments to cargo in light of this
  • +
  • The arcade's got RAD carpet now
  • +
  • Fixes the conveyor belt issues in Delta Station's cargo wing
  • +
  • Removes some of the dirt around the affected area (presumably they would have cleaned it up while working on it)
  • +
  • Adds a floor light to fix the "dark spot" cargo had
  • +
  • Adds a new "Computer Core" area designation for CogStation
  • +
  • Fixes some missing area strings
  • +
  • Replaces some firelocks with directional ones as to ensure desks/counters can still be accessed
  • +
  • The "Skelter ruin" now has stechkins as opposed to M1911s
  • +
  • Skelter's decorative bullet casings replaced to factor in the change in caliber
  • +
  • Skelter now has a combat knife and fluff note
  • +
+

Ghommie updated:

+
    +
  • You can access the mime / clown mask skins radial menu once again.
  • +
  • Dice bags no longer act like cardboard boxes.
  • +
  • Abductors should be no longer mute.
  • +
  • Item action buttons should now properly show the item current overlays, most times.
  • +
  • The blackbox should now go into your hand slot when pried out, rather than tumbling on the ground everytime.
  • +
  • The Quick Equip hotkey is now usable by all living mobs (so long they have hands and equipment slots)
  • +
+

Ghommie, porting PRs by MMMiracles and pireamaineach, credits to BlueWildrose too. updated:

+
    +
  • You can now draw on plasmaman helmets with a crayon to turn their frown upside-down.
  • +
  • Plasmaman helmets no longer hide your identity when worn by themselves.
  • +
  • Plasmaman helmets now have welding visors, which can't stack with their torches in the helmet and are visible.

Hatterhat updated:

    -
  • Proto-kinetic glaives! Essentially a proto-kinetic crusher with a different blade, handguard, and goliath hide grip. Expensive, but elegant.
  • -
  • Door charges no longer knock people out.
  • +
  • Energy sabre reskin for the energy sword - access via alt-click.
  • +
  • Alt-click reskins are fixed.
  • +
  • Defibrillators and their many, many overlays were moved to another .dmi.
  • +
  • You can now change the color of an energy sword via multitool. Not deswords. Yet.
  • +
  • The Syndicate appear to be issuing new revolver variants.
  • +
  • Basic sticky technology is now a roundstart tech. Advanced sticky technology is BEPIS-locked, though. Theoretically.
  • +
  • Non-smithed katanas (including the temporal katana) can now fit in the twin sheath.
  • +
  • Cotton and durathread processing by hand now acts like grass. Stand on a pile of cotton (or durathread) and use a single bundle from it.
  • +
  • Utility uniforms now comply with the "nonproper equipment names" thing.
  • +
  • The CapDrobe now allows the captain to get his own clothes for free. Probably.
  • +
  • All captains' clothes now offer 15 woundarmor, up from the 5. Because apparently only the suit and tie and its suitskirt subtype have this wound armor, which is dumb.
  • +
  • The nature interaction shuttle with the monkeys now has tiny fans on the airlocks in, because that's apparently a feature that was missing.
  • +
  • More bags have been added to department vendors.
  • +
  • Every roundstart species (and also ash walkers) now has flesh and bone that can be wounded.
  • +
  • Recipes for sutures, regen mesh, and sterilized gauze have been adjusted to be easier, mostly.
  • +
  • Sterilized gauze is better at absorbing blood and being a splint.
  • +
  • Energy sabres now have an off inhand.
  • +
  • The bone gauntlets should be slightly less murderously punchy on the fast punches mode.
  • +
  • RPEDs now drop their lowest part tier first when quick-emptied (used inhand).
  • +
  • Improvised gauzes can now be crafted in stacks up to 10, like their maximum stacksize implies they should be capable of doing.
  • +
  • Pouring sterilizine on gauze now takes the proper 5u per sterilized gauze instead of 10u.
  • +
  • Cryogenics now screams on common again when your fuckbuddy heads out.
  • +
  • Survival daggers! A slightly more expensive survival knife that comes with a brighter flashlight. On the blade.
  • +
  • Luxury pod capsules look different from normal capsules.
  • +
  • The wastes of Lavaland and the icy caverns of Snow Taxi rumble in unison.
  • +
  • Exosuits sold on the Supply shuttle no longer leave wreckages.
  • +
  • Apparently, shrink rays were buyable again, despite a PR having been made a while ago specifically for removing shrink rays. They're gone again.
  • +
  • Changeling bone gauntlets! They punch the shit out of people really good.
  • +
  • Guerilla gloves and gorilla gloves inherit the strip modifiers of their predecessors, because apparently they had those.
  • +
  • Pugilists now always hit the targeted limb and never miss.
  • +
  • The dock-silver standard set by Box and Meta has been enforced across maps in rotation (Delta, Pubby, Lambda).
  • +
  • The Box whiteship now has its missing tiny fan back.
  • +
  • The survival dagger light on the sprite now actually turns on and off.
  • +
  • The survival dagger in the glaive kit that can also be bought by itself is now better at butchering things.
-

Ludox235 updated:

+

HeroWithYay updated:

    -
  • You can now buy damaged AI upload modules in the traitor's uplink.
  • +
  • Changed description of Necrotizing Fasciitis symptom.
  • +
  • Wormhole Projector and Gravity Gun now require anomaly cores to function instead of firing pins.
-

Seris02 updated:

-
    -
  • fixed ghost chilis
  • -
-

Trilbyspaceclone updated:

-
    -
  • 4 New blends of tea have been shipped to the station, and how to make them has been leaked!
  • -
-

b1tt3r1n0 updated:

-
    -
  • Added the warp implant
  • -
-

dapnee updated:

-
    -
  • added a hallway to telecoms for engineers to get there on meta
  • -
-

kappa-sama updated:

-
    -
  • dildo circuit assemblies
  • -
-

lolman360 updated:

-
    -
  • The Tendril-Mother on Lavaland has remembered how to make ashwalkers who know how to speak Draconic again.
  • -
-

timothyteakettle updated:

-
    -
  • nanotrasen has decided to fire all disabled members of the security division and confiscate certain sentimental items from doctors
  • -
  • the custom tongue preference now passes through cloning so you spawn with your selected tongue
  • -
  • several changes to travelling traders so they look better and spawn slightly less often
  • -
-

zeroisthebiggay updated:

-
    -
  • nukies can buy holoparasites
  • -
- -

04 August 2020

-

Seris02 updated:

-
    -
  • lizard spines
  • -
-

timothyteakettle updated:

-
    -
  • due to further advancements in medical technology, you can now have holes poked into your body for fun and enjoyment
  • -
-

zeroisthebiggay updated:

-
    -
  • prefs for headpat wagging
  • -
- -

03 August 2020

KeRSedChaplain updated:

    -
  • fixed clockwork guardians being able to reflect ranged weapons
  • +
  • Resprited the brass claw
  • +
+

LetterN updated:

+
    +
  • 2 more ways to get up from z1
  • +
  • tweaked the z2 garden to be less blank
  • +
  • fixed telecomms pda log
  • +
  • Coin & Holochip support for slot machine
  • +
  • Stickybans are now saved in the DB too
  • +
  • Immersive ™ audio reverbs. (also adds multiz audio)
  • +
  • Semi-hardsync from TG
  • +
  • Updates rust-g
  • +
  • Uses git CI instead of travis/appveyor now
  • +
  • Updates git and build tests.
  • +
  • minimap text
  • +
  • ports cinematic upgrades

Linzolle updated:

    -
  • uv penlight no longer invisible
  • +
  • entertainment monitors no longer invisible
  • +
  • entertainment monitors now light up and display text when motion is detected in thunderdome
  • +
  • lizard snouts are no longer *slightly* lighter than they are supposed to be.
-

dapnee updated:

+

MrJWhit updated:

    -
  • active turfs on box and xenohive, maintenance bar APC not being stringed correctly, turned a monitor to face a direction that makes sense, changed tag of camera in gravgen being misnamed
  • +
  • Expanded space hermit base
  • +
  • Replaced engineering fuel tank with a large fuel tank
  • +
  • Changed access to sec suit storage from armory access in every map to other security access
  • +
  • Adds a space loop to every map in toxins
  • +
  • +
  • Added the ability for cargo to buy a large welding tank
  • +
  • Tweaked large tank reagent sprites to /tg/'s
  • +
  • Gives metastation toxins storage a scrubber and a vent
  • +
  • Updates suit storage info on Tip Of the Round.
  • +
  • Increased christmas event from 22th to 27th to 10th to 27th
  • +
  • Removes an opposum from the wall
  • +
  • Donut boxes show what's inside of them now
  • +
  • Updated meat icons
  • +
  • Canceling events gives more time to stop from 10 to 30
  • +
  • Fixes two chairs on one table
  • +
  • Removed the wires connecting the AI from the rest of the station on cogstation.
  • +
  • Fixes experimenter on cogstation.
  • +
  • Less pipes in the overall area in toxins on cogstation
  • +
  • Small fixes on security on boxstation
  • +
  • Updated jukebox sprite.
  • +
  • Fixes maint area in boxstation
  • +
  • Christmas starts on the 18th now
  • +
  • Adds a goose bar sign
  • +
  • Effects can no longer trigger landmines
  • +
  • Removes the screen flashing on climax.
  • +
  • Makes gas sensors fireproof.
  • +
  • A small bucket of random fixes,
  • +
  • Minor fixes to kilo
  • +
  • Porting garbage collection tweak from /tg/
  • +
  • Updates our dark gygax sprites to /tg/'s
  • +
  • Bugfix of a morph becoming an AI eye
  • +
  • Mining station oxygen locker on the cycling airlock starts out wrenched.
  • +
  • Nerf combat knife damage
  • +
  • Code improvement on ventcrawling
  • +
+

NT Cleaning Crews On Break updated:

+
    +
  • Most kinds of dirt, grime, and debris are now persistent. Get to work, jannies.
  • +
  • Dirt can now be removed by tile replacements. Other cleanable decals can't, though.
  • +
+

Putnam3145 updated:

+
    +
  • Replaces majority judgement with usual judgement.
  • +
  • Toilet loot spawners don't lag the server on server start with forced hard dels.
  • +
  • vore prefs save now
  • +
  • gear harness no longer magically covers up the body mechanically despite covering up nothing visually
  • +
  • Regen coma now puts into a coma even from crit or while unconscious.
  • +
  • Regen coma now properly weakens while asleep.
  • +
  • Multi-surgery unit test no longer fails at random.
  • +
  • Dwarf speech is no longer absolutely paranoid about word replacement.
  • +
  • Spontaneous brain trauma now requires minimum 5 players
  • +
  • Grab bag works as advertised.
  • +
  • Xeno threat in dynamic tripled.
  • +
  • Vote system #defines are now strings
  • +
  • Stat panel UI for ranked choice votes
  • +
  • A fallback for dynamic antag rolling that allows for it to just try between traitor, blood brothers, heretics, changeling, bloodsucker and devil until there are enough roundstart antags. This can also happen randomly anyway. Blood brothers and devil are disabled for now, but the code is there to enable them.
  • +
  • A new storyteller, "Grab Bag", that forces the above round type.
  • +
  • atmos subsystem no longer dies if there's too many gases
  • +
  • Emotes can properly be filtered for in TGUI.
  • +
  • Holofirelocks work now.
  • +
  • adminhelping no longer removes entire admin tab
  • +
  • end of round no longer removes entire admin tab
  • +
  • Fixed a runtime in every healing nanite program.
  • +
  • removed a unit test causing master to fail
  • +
  • Planetary atmos no longer does superconduction.
  • +
  • Dynamic vote no longer shows the none-storyteller.
  • +
  • You can now exit polycircuit input
  • +
  • Polycircuits now check for range
  • +
  • gear harness alt-click is now sane
  • +
  • rolldown() and toggle_jumpsuit_adjust() now no longer mix behavior-that-should-be-overridden and behavior-that-shouldn't-be-overridden in ways that make no sense.
  • +
  • Gear harness now covers nothing.
  • +
  • Chemical stuff now displays fermichem stuff properly
  • +
  • Rad collectors now get 1.25x as much energy from radiation
  • +
  • Rad collectors now put out 1.25x as much stored energy per tick
  • +
  • Above two rad collector changes give a total 56.25% power output increase
  • +
  • Zeolites now only generate 1/5 the heat when reacting and don't require a catalyst.
  • +
+

Ryll/Shaps updated:

+
    +
  • Fixed an issue with player logs becoming confused when someone triggers multiple events within one second (like being attacked by two people at the same time) that would cause holes in the logs
  • +
+

SandPoot updated:

+
    +
  • You can attack a pile of money on the floor with your id to put it all in quickly.
  • +
  • Changes the limb grower a lot.
  • +
  • "Limb" costs on limbgrower are actually displayed like it was meant to all along.
  • +
  • Swaps the gift static blacklist with a global list one.
  • +
+

SiliconMain updated:

+
    +
  • Engi department has gas masks in loadout
  • +
  • hololocks (which haven't worked for god knows how long) commented out until auxmos is merged
  • +
+

Sonic121x updated:

+
    +
  • alarm ert hardsuit sprite for naga and canine
  • +
  • adjust the naga ert hardsuit to cover the hand
  • +
  • cydonia hardsuit helmet
  • +
  • digi sprite uniform
  • +
  • digi leg suit
  • +
+

SpaceManiac updated:

+
    +
  • Fixed the maphook
  • +
+

Thalpy updated:

+
    +
  • fixes some bugs in jacqs code from edits to the codebase
  • +
+

The Grinch updated:

+
    +
  • infinite presents from hilbert hotel
  • +
+

TheObserver updated:

+
    +
  • Re-adds the rifle stock, and sets the improv shotgun to be as it was.
  • +
  • The maintenance rifle has been shelved - for now. Watch this space.
  • +
+

TheObserver-sys updated:

+
    +
  • Drake? Where's the dead fairygrass sprite?
  • +
+

TheSpaghetti updated:

+
    +
  • no more tumor bread double punctuation
  • +
+

Trilbyspaceclone updated:

+
    +
  • Zeolites now use gold rather then uranium for catalyst
  • +
  • Zeolites are not as hard to make ph wise
  • +
  • Making Zeolites heats up the beaker less allowing for better control
  • +
  • ASP 9mm and M1911 can now have suppressers added
  • +
  • Brass welders are 50% faster at refueling
  • +
  • redoes self fueling welders in the code to be less speggie
  • +
  • the corporate unifoms can now be gotton in the clothing mate vender
  • +
+

TripleShades updated:

+
    +
  • Firelock to Surgery Bay drapes change: Swapped Nanomed and Fire Alarm button locations in both Surgery Bays change: Removes the double mirror in both Surgery Bays to be a singular mirror change: Moved an intercom to not be doorstuck below Paramedical Office remove: One Surgery Observation Fire Alarm button
  • +
  • New Paramedic Office next to Genetics where the old Genetics Reception used to be change: Surgery, Surgery Observation, and Recovery Hall layout revamped drastically change: Maints below Surgery lowered by one tile to recover lost tile space from Surgery expansion
  • +
+

Tupinambis updated:

+
    +
  • Arachnids (spider people) with limited night vision, flash vulnerability, and webbing.
  • +
+

Vynzill updated:

+
    +
  • new gateway mission mapadd: jungleresort map
  • +
  • fixes high luminosity eyes
  • +
+

Xantholne updated:

+
    +
  • Fixed new birds changing back to basic parrot when sitting
  • +
  • New parrots from the RP server, can be found in Bird Crate in Cargo
  • +
  • You can now tuck disky into bed
  • +
  • You can now make beds by applying a bed sheet to them
  • +
  • You can now tuck in pai cards into bed
  • +
  • Added bed tucking element, can be added to any held object to allow tucking into beds
  • +
  • Twin Sword Sheaths have an equipment icon and icon when worn now and make a sound when sheathed/unsheathed
  • +
+

Yakumo Chen updated:

+
    +
  • Slime Jelly is no longer obtainable from slimepeople. Go ask Xenobio
  • +
+

YakumoChen updated:

+
    +
  • To lower production costs, Buzz Fuzz is now manufactured with Real™️ Synthetic honey.
  • +
+

Zandario updated:

+
    +
  • Added some framework for future species expansions, including clothing refitting.
  • +
  • Made majority of the relevant Species IDs and Categories pre-defined, also for easier expansion and use.
  • +
  • lum slime sprites work again
  • +
  • Slapped the Species Defines where relevant
  • +
+

corin9090 updated:

+
    +
  • The chaplain's prayer beads can now be worn on your belt slot
  • +
+

kappa-sama updated:

+
    +
  • super saiyan
  • +
  • ishotgun crafting recipe no longer requires plasteel and is slightly more convenient
  • +
  • ishotgun does 45 damage now instead of 40.5
  • +
  • s
  • +
  • A new spell for the wizard and his martial apprentices, the Inner Mantra technique. It makes you punch people really good and makes you durable, but drains your energy while it's active.
  • +
  • A self-buffing spell for valiant bubblegum slayers that is ultimately useless on lavaland and probably overpowered for miner antagonists. Go figure. At least all it does is let you punch hard while draining your health every second.
  • +
  • bubblegum now drops a book that makes you into an abusive father instead of a shotgun that plays like pre-nerf shotguns
  • +
  • a powerup and powerdown sound effect
  • +
  • two icons for two buff spells
  • +
+

keronshb updated:

+
    +
  • Allows Energy Bola to be caught
  • +
  • This also allows them to be dropped/picked up.
  • +
  • Adds a reduced stamina buffer for SCarp users
  • +
  • Gives SCarp users a better parry
  • +
  • Adds the SCarp bundle which includes a bo staff
  • +
  • Lets Carp costumes carry Bo Staffs
  • +
  • reduces the stamina damage of scarp slightly
  • +
  • reduced the blockchance of the bo staff
  • +
  • Adds more room to northwest maint
  • +
  • Adds a bridge between Atmos and the Turbine.
  • +
  • Blob Resource Tower to 2 points per instead of 1 point per.
  • +
  • Blob Factory Towers can be placed 5 tiles apart instead of 7.
  • +
  • Fixes Blobbernaut Factories consuming Factories if no naut is chosen.
  • +
  • Fixes Reflective Blobs
  • +
  • Re-adds the Clown Car to the clown uplink
  • +
  • 15 >16 TC cost
  • +
  • bonks on external airlocks
  • +
  • Fixes the parry data for scarp
  • +
+

kittycat2002 updated:

+
    +
  • set the name of /datum/reagent/consumable/ethanol/species_drink to Species Drink
  • +
+

kiwedespars updated:

+
    +
  • balanced bone gauntlets.
  • +
  • the robust dildo weapon now has sound.
  • +
+

necromanceranne updated:

+
    +
  • Fixes various sprites for bokken, as well as being unable to craft certain parts and duplicate entries.
  • +
  • Bokken now come in two lengths; full and wakizashi, and two varieties: wood and ironwood. They have different stats for all four.
  • +
  • Bokken require menu crafting and part construction, as well as more complicated materials.
  • +
  • Bokken (long and short) require wood, cloth and leather to craft with a hatchet and screwdriver.
  • +
  • Ironwood bokken (long and short) require ironcap logs, cloth and leather to craft with a hatchet, screwdriver and welder.
  • +
  • Twin sheathes can only fit a pair of blades (longsword + shortsword) or they can fit two shortswords.
  • +
  • Fixed a twin sheath runtime.
  • +
  • A lot of bokken related sprites received an overhaul. Added overlay sprites for weapons sheathed in the twin sheathes.
  • +
  • The extradimensional blade received improved sprites for inhands/back sprites.
  • +
  • You can now make all the variants of the bokken.
  • +
  • Removes a duplicate sprite.
  • +
  • Renames all instances of 'ironwood' to 'steelwood'.
  • +
  • Adds new roboticist labcoat sprites!
  • +
+

qwertyquerty updated:

+
    +
  • Flash the screen on climax
  • +
+

raspy-on-osu updated:

+
    +
  • salicylic acid
  • +
  • space heater heating range and power
  • +
  • windoor open length
  • +
+

shellspeed1 updated:

+
    +
  • Wings from Cit RP have been ported over
  • +
  • Moth wings from cit have been ported over
  • +
  • Cleaned up some pixels on existing moth wings.
  • +
  • Organized the lists for wings by if they are for moths or not and than by alphabetical.
  • +
  • Lings now have infinite space for DNA.
  • +
  • All xenomorph types have been added as corpses for mapping purposes
  • +
  • The dead xenomorphs in the lavaland xenomorph hive now have more variety.
  • +
  • Floor bots are now buildable with all toolboxes.
  • +
  • Xenomorph hybrids can now select wings ~~add: Xenomorph hybrids can now speak xenomorph~~
  • +
  • Xenomorph tongues are available for customization.
  • +
  • Mining borgs can claim points again
  • +
  • Construction bags have been added, use them to carry all sorts of construction bits.
  • +
  • A recipe has been added to cloth stacks to make material and construction bags.
  • +
  • Material bags and construction bags are now available in engineering lockers.
  • +
  • Adds the disposable sentry gun from tg for 11tc each.
  • +
  • The exofab can now print prosthetic limbs
  • +
  • The exofab was missing access to multiple cybernetic organs. This has now been rectified.
  • +
  • A new recipe for a spicy has been given to us by a strange business man.
  • +
  • The bluespace navigation gigabeacon design has been added to shuttle research for those wanting to take their ships around space more.
  • +
  • Xenomorph powers now list plasma cost in their description.

silicons updated:

    -
  • shoves have been buffed to apply a status effect rather than a 0.85 movespeed modifier, meaning repeatedly shoving someone now renews the debuff
  • -
  • shoves now stagger for 3.5 seconds.
  • -
  • war operatives now actually time 20 minutes since roundstart to depart instead of 15.
  • -
  • explosive stand bombs can now be examined from any distance
  • -
  • explosive stand bombs are now a component.
  • +
  • nanite resistances tweaked
  • +
  • new nanite programs added for locking the user out from being modified by consoles or antivirals.
  • +
  • anomalies no longer spawn in walls
  • +
  • Twitch Plays: Clown Car
  • +
  • pugilists can now parry
  • +
  • c4 can no longer gib mobs
  • +
  • medium screens are better now
  • +
  • text formatting now uses one character instead of two around the text to emphasize.
  • +
  • colormates
  • +
  • shoving yourself up now costs 50% more
  • +
  • dullahans enabled
  • +
  • tailed individuals can now target groin to intertwine tails on grab intent.
  • +
  • Clowns now have unpredictable effects on supermatter crystals when dusting from contact.
  • +
  • anyone new to the server is lucky enough to have their sprint default to toggle instead of hold
  • +
  • stamina crit is only removed when at or under 100 stamina, rather than 140. stamina crit threshold is still at 140.
  • +
  • luxury shuttle no longer has noteleport
  • +
  • now only poly gets a headset on spawn, not all birds.
  • +
  • the warp implant now actually warps you back 10 seconds. leaves a trail, though. now unlimited us.
  • +
  • things in DEATHCOMA do not deathgasp on death
  • +
  • Meth and changeling adrenals no longer ignore all slowdowns, rather damage slowdowns.
  • +
  • you can now be an angel using a magic mirror again
  • +
  • command headsets are 120% instead of 160%
  • +
  • no more emote italics
  • +
  • players can now respawn/return to lobby as a ghost after a 15 minute (default) delay and rejoin on another character with some/many restrictions
  • +
  • cryo now preserves everything
  • +
  • Magrifle ammo no longer glows.
  • +
  • temperature slowdown divisor nerfed to 35 from 20.
  • +
  • dna melt drops all items being destroying you
  • +
  • keybinds generate anti-collision bindings where necessary automatically now
  • +
  • changeling combat mutations rebalanced. most of them take chemicals to upkeep now.
  • +
  • set-pose has been added
  • +
  • temporary flavor text renamed to set pose, fully visible in examine
  • +
  • ninja gloves no longer hardstun
  • +
  • ninja gloves now cost half as much to use to compensate
  • +
  • simple mobs are now immune to radioactive contamination
  • +
+

timothyteakettle updated:

+
    +
  • time for memory loss message to show up when being revived is now correctly 300 seconds, instead of 30
  • +
  • the load away mission verb won't crash the server now
  • +
  • roundstart slimes can turn into puddles now
  • +
  • all gas masks (but welding + glass) can be alt clicked to show/hide identity
  • +
  • autosurgeons from travelling trader rewards now only have one use
  • +
  • fixes held items proccing crossed when passing someone
  • +
  • you can now get a family heirlooms based off your species instead of job
  • +
  • changeling stings retract upon turning into a slime puddle
  • +
  • you cannot transform into a slime puddle with a no drop item in your hands
  • +
  • slime puddles are now transparent and their colour looks more natural in comparison to the user
  • +
  • slime puddles are now even slower
  • +
  • slime puddles now get no protection from worn clothing
  • +
  • removes two debug messages left in from my prior eye customization pr
  • +
  • adds unlockable loadout items, corresponding category in loadouts, etc
  • +
  • added in-game age verification as an alternative to access requests
  • +
  • disabling adminhelp noises no longer disables looc
  • +
  • apids render now
  • +
  • you can now only entwine tails with people who have a tail
  • +
  • custom eyes and tongues now properly carry across cloning
  • +
  • re-adds the holoform verb for people who want to use it over going through the char list
  • +
  • eye sprites should look normal once more
  • +
  • licking people washes pie off their face
  • +
  • you can now pick your eye sprites from customization
  • +
  • looking at loadout equips loadout items on your preview image instead of job items
  • +
  • custom holoforms are now accessible through an action instead of through verbs
  • +
  • AI holoforms can now emote
  • +
  • cloning now correctly copies your blood colour, body sprite type and eye type
  • +
  • species with NOTRANSSTING cannot have envy's knife used on them
  • +
  • avian/digitigrade legs have been added for slimes
  • +
  • you can teleport bread
  • +
  • slime puddles are no longer layered down one layer
  • +
  • you cannot tackle with two paralysed arms
  • +
  • tackling with a single paralysed arm lowers your tackle roll by 2
  • +
  • circuits get pin data proc is sanitized when text is returned as data
  • +
  • loadout now has save slot support and colour choosing/saving for polychromic items
  • +
  • polychromic maid outfit
  • +
  • you can rebind communication hotkeys and they're the default now
  • +
  • you can now customize your size from 90% to 130%, going below 100% makes you have 10 less max health
  • +
  • *squeak
  • +
  • anthromorphic synth species
  • +
  • improvements to the automatic age gate
  • +
  • antag items are now of critical importance and wont fail to be placed on the character
  • +
  • a tonne of fixes to colourisation of parts, too many to name, including some sprite fixes
  • +
  • things now have their own individual primary/(secondary)/(tertiary) colours as required, and these can be modified by you
  • +
+

uomo91 updated:

+
    +
  • Fixed "Show All" tab in player panel logs being broken.
  • +
  • Whispers, OOC, and various other things display differently in logs, visually distinguishing them from say logs.
  • +
  • Player panel logs will now show all logs chronologically, so you'll see commingled say and attack logs if you're on the "Show All" tab, etc...
  • +
+

yorii updated:

+
    +
  • fixed botany rounding error that caused grass and other plants to misbehave
  • +
+

zeroisthebiggay updated:

+
    +
  • legion now drops chests
  • +
  • Traitor assistants can now purchase the patented POGBox! Put TC into it for even higher damage!
  • +
  • MEGAFAUNA DROPS ARE LAVAPROOF
  • +
  • cool codex cicatrix inhands
  • +
  • gravitokinetic stands from tg
  • +
  • buffs stands overall
  • +
  • protector stands no longer become tposing invisible apes sometimes
  • +
  • jacqueline spawns on boxstation
  • +
  • secsheath for your cool stunsword at your local security vendor. you gotta hack it first though.
  • +
  • fuck the r*d cr*ss
  • +
  • The legion megafauna has been reworked. The fight should now be both slightly harder and faster.
  • +
  • You can no longer cheese the colossus by being a sand golem and simply being immune.
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 99ffc455c3..4d9876efec 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -26243,7 +26243,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Ghommie: - bugfix: You can now actually gain wiring experience from using cable coils. - bugfix: Opening the View Skill Panel shouldn't trigger messages about insufficient - admin priviledges anymore. + admin privileges anymore. Yakumo Chen, kappa-sama: - rscdel: Removes improvised handguns - rscdel: removed handsaws, improvised gun barrels (you can use atmos pipes again) @@ -27524,3 +27524,1001 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: limb id entry in mutant bodyparts now supports switching to/from species with gendered body parts - tweak: the minimum brightness of mutant parts is now a define +2021-01-21: + Acer202: + - bugfix: Main mining shuttle should no longer look at the public mining shuttle + and attempt to dock ontop of it. Monastery shuttle should now function again. + Acer202, with minor help from The0bserver: + - rscadd: After internal deliberation, CentCom has decided to run a limited reinstatement + of public mining shuttles for use in more tried and true station classes. CentCom + would like to remind you that this privilege is easily revoked, and that abuse + may result in immediate detonation. + - rscadd: Restores the mining shuttle on Pubby, Box, Delta, Meta, and Lambda Station. + ArcaneMusic, The0bserver-sys: + - rscadd: 'New from Hydrowear LLC: The Botanical Belt! This handy yellow belt lets + you hold most of your botany gear, and a few beakers for reduced bag and floor + clutter!' + - tweak: Gives Hydrotrays plumbing pipes automatically, allowing you to make a self + sustaining tray via plumbing. + - tweak: Gives Service access to Bluespace Beakers, at last, gives Cargo, Science, + and Medical the ability to construct reinforced plungers for use on lavaland. + ArchieBeepBoop: + - rscadd: Upgraded Advanced RTG Machine Preset + - bugfix: Outlet Injector Mapping Asset Layer Fix + - bugfix: Jacqueen and the Christmas tree should no longer spawn abstract things + that can cause shittons of runtimes. + Arturlang: + - bugfix: You can't tackle in nograv anymore + - tweak: You cannot spam drink from blood bags anymore + - bugfix: Blood bag drinking inefficiency is now the right way, so you loose some + of the blood drinking it straight + - bugfix: Handles more edge cases with construct soul returning + - tweak: Being sacrificed by the cult no longer removes all hope of rescue. + - bugfix: Makes construct mind returning more robust + - tweak: Prayers to admins now do a wee ding sound for all prayers, instead of just + chaplains + - bugfix: Fixes the mint machine's UI + - bugfix: Hopefully fixes whitescreen issues for TGUI UI's by giving assets more + time to get to the client + - bugfix: Fixes hijack implant APC UI, again + - code_imp: Comments out spaceman dmm do not sleeps for mob/proc/CommonClickOn, + atom/proc/attack_hand, datum/proc/keyLoop and mob/living/proc/Life + - bugfix: Bloodsuckers tresspass ability can no longer work while they are not awake. + - tweak: The cursed heart now only takes away half as much blood every loop, and + can be used as long as you are alive, instead if only you are awake/able to + use your hands + Bhijn: + - tweak: Changeling loudness is now determined as an average of all their abilities, + rather than the sum + - tweak: To compensate for this, blood tests now require a loudness value of 1 or + higher to detect ling blood. Additionally, blood test explosions are now triggered + only when the loudness value is higher than 2. + BlackMajor: + - tweak: Cyborg hypospray no longer injects if it means OD'ing while on help intent. + BlueWildrose: + - tweak: Nyctophobia quirk now has some light lag compensation. + - bugfix: Fixes cloning computer UI not updating when pressing certain buttons - + also adds extra check for names to update a message + - rscdel: Removes oversized genitalia analysis from medical scanners, since huge + dick and titty are no longer a problem anymore thanks to advancements in that + kind of technology when it comes to chemical fun times growth. + - bugfix: Fixed species-specific drinks not giving a mood boost if you are that + species. + - tweak: You will now only unbuckle fireman-carried/piggybacked people on disarm + or harm intent. + - balance: The traitor AI can no longer activate the doomsday device while carded. + - bugfix: Fixes noodle size appearance for 12+ inch members. + - bugfix: Fixed the subtle hotkey being weird with its input prompts. + - rscadd: Adds a subtler anti-ghost hotkey. Default key is 6. + - tweak: No more straining when your cock or breasts are growing via incubus draft + or succubus milk. + - rscadd: PubbyStation now has two Christmas Tree spawners. + - tweak: You can now have a max-roundstart-dicksize-config inch long johnson before + you start suffering blood loss and slowdowns instead of a 20 inch one. + - rscadd: Color Mates have been added to all stations (except Snaxi). Enjoy coloring + your attire without having to bug science! + - bugfix: Polychromic hoodies that were obtained from the loadout have functional + colorable hoods now. + - rscadd: Adds in timid woman/man costumes. Available at your autodrobe! Also adds + in garters as some new socks. + - spellcheck: Corrected the capitalization in gasmask concealment examine text + Chiirno: + - rscadd: Added the paramedics EVA suit as a purchase from the cargo console. + - rscadd: Paramedics office and Surgery Storage Room + - tweak: Remodeled the surgery room, as well as shrunk Morgue and Starboard Emergency + Storage. Fiddled with some areas for better map edit clarity and fixed one runtime + in Vacant Office A. + - imageadd: Added the paramedic closet sprite, a paramedic colored medical3 closet. + - code_imp: Added a paramedic closet, which is the standard medical3 closet with + their suit, a pinpointer, and a crew monitor added. + - tweak: Nightmare now deals additional damage to most light sources. + - bugfix: Nightmare now one-shots miners beacons and glowshrooms + - bugfix: Portable Chem Mixer now researchable from biotech node. + - tweak: Chem masters can now dispense 20 instances of its outputs instead of 10. + Delams-The-SM: + - rscadd: Added 3 new emotes *hiss *purr *meow + - soundadd: ported sounds from Citadel RP for *purr and *meow + - bugfix: fixed randomization of colors for things like mulligan and Stabilized + green slime extract for matrixed body parts + DeltaFire15: + - balance: Biomechanical (hybrid) bodyparts now have access to wound-fixing surgeries. + - tweak: A wound being fixed no longer just qdel()s surgeries connected to it. + - tweak: Some robotic surgery steps are now a bit more clear. + - bugfix: Organs no longer get fed to people after successfully being inserted into + them. + - tweak: Not completing the do_after of a surgery no longer causes you to attack + the target with whatever you were holding. + - rscadd: IPC cells & power cords are now printable after they are researched. + - rscadd: A new surgery, allowing revival of synths without a defib at hand. + - balance: 'Semi-permanent damage of Synth limbs caused by passing the damage threshold: + 10 <- 15.' + - tweak: The embed removal surgery now has a version for Synths. + - balance: EMPs no longer hardstun Synths. + - bugfix: Portals no longer runtime because of incorrect args. + - tweak: Abductors now can use experimental organ replacement surgery on robots + / synthetics. + - bugfix: Fixes a minor incorrectness in ratvarian borg slabs (ratvar_act -> ui_act) + - bugfix: Changelings no longer double-deathgasp when activating the regen stasis + ability while not dead. + - bugfix: People installing KA modkits in miner borgs is no longer broken. + - bugfix: Fixes the tail entwine messages displaying incorrectly. + - bugfix: Antagging / Deantagging Heretics now properly sets their special role. + - bugfix: The borg VTEC ability now actually gets removed when the upgrade is removed. + - bugfix: Supplypods shouldn't cause runtimes anymore, and shrapnel (pelletclouds) + should work for them. + - rscadd: Robots (anyone with the robotic_organism trait) have toxins damage replaced + with system corruption. See the PR for details. + - code_imp: Clockwork rites now support hiding specific rites from neutered servants. + - tweak: AIs now only have to kill people once instead of permanently. + - bugfix: Scripture no longer sometimes eats part of its invocation. + - balance: APCs and silicons are now more susceptible to powerdrains (by the power_drain() + proc, which is rare) + - balance: Void Volt has been modified from a chant to a singular pulse. + - balance: Robotpeople are now fully immune to the effects of alcohol (drunkness + etc.) + - tweak: Renames the alcohol intolerance trait in the code to make what it does + more clear. + - bugfix: Self-fueling weldingtools recharge fuel properly again. + - bugfix: Brass welders now actually recharge faster than experimental ones. + - bugfix: Repeatable surgery steps can no longer cause an infinite loop if not completing + the do_after + - bugfix: The Revenant self-revive ability is no longer broken. + - bugfix: Loot items mobs drop are no longer always failing to initialize. + - tweak: Instant summons can no longer do wacky stuff with disposals (and nukes). + - bugfix: Objectives are no longer very broken. + - bugfix: Bloodcult stunhands now work against clockies like they were supposed + to instead of hardstunning. + - balance: zeolites are now actual fermichems instead of being incredibly easy to + make. + - bugfix: Using syringes / droppers on chem heaters with beakers in them works again. + - bugfix: Some edge cases causing issues with system corruption shouldn't be able + to occur anymore. + - bugfix: Cyborg B.o.r.i.s. installation now checks for if the chest has a cell, + just like how it does with MMIs. + - bugfix: The 'Your body is in a cloner' notification works again + - bugfix: Hijack implants should work properly again (or, at least better) + - bugfix: Liches are now good skeletons again instead of weak ones + - bugfix: The piratepad control cannot be destroyed again. + - bugfix: Pirates have received new supplies of jetpacks instead of useless oxygen + tanks + - bugfix: Ratvarian AIs are once again able to show their linked borgs Ratvar's + light + - bugfix: Hijackers are once again unable to detonate borgs without being adjacent + to the console + - bugfix: Automated annoucement systems and gulag ore consoles no longer waste emag + charges + - bugfix: Automated announcement systems once again can be remote controlled by + non-AIs with silicon access + - bugfix: APCs being hijacked multiple times at once is no longer possible, preventing + some issues + - bugfix: Recharging APCs no longer use 0.2% of the power they should be using. + - bugfix: APCs no longer always use as much power as they can for their cell, even + if it is full. + - bugfix: Vampire shapeshifting should now behave as intended + - balance: Some synth damage stuff has been a bit rebalanced, see the PR for details. + - rscadd: Nanogel, available at medical and robotics, which fixes internal damage + in sufficiently repaired robotic limbs. + - balance: Robotic Limbs now each have their own damage threshhold values + - balance: Robotic Limb damage threshholds are now seperated into threshhold itself + and mindamage when passed balance; Hybrid limbs can now be injected with hypos, + but not sprayed (Still not healed by chems) + - tweak: Brain surgery has been tweaked back to allowing robotic limbs, blacklisting + IPC brains instead. + - tweak: Robot brain surgery can now be used on organic heads, if there is a IPC + brain in them somehow. + - tweak: The robot limb heal surgery can now be used even if the target's torso + is not robotic, as long as they have robotic limbs + - refactor: BODYPART_ROBOTIC / BODYPART_ORGANIC checks replaced with helper-procs + whereever possible. + - code_imp: Added a BODYPART_HYBRID define for robotic bodyparts that behave organic + in some regards. + - bugfix: The transmission sigil power drain works now + - bugfix: A certain lizard (totally not me) being stupid is no longer going to break + regenerate_bodyparts + - bugfix: Combat mode now will not stay permanently disabled due to status effects + not working as intended. + - bugfix: Attacking some certain objects no longer has no clickdelay. + - bugfix: the blacksmithing skill now works properly + - tweak: Anvils cannot be interacted with with hammers whilst they are already being + used + - tweak: If someone has no gloves when interacting with heated ingots, they no longer + ignore their effects. + - bugfix: A runtime caused by hallucinations is gone. + - bugfix: Cargo packs marked as 'no private buying' now actually register as such. + - balance: Fleshmend, Anatomic Panacea and bloodsucker healing now work for Synths + / IPCs. + - tweak: Medibots now ignore people they cannot help due to their biology. + - bugfix: get_damaged_bodyparts() is no longer broken. + - bugfix: Your target cryoing will no longer give you a free greentext. + - bugfix: Sleeper UI interactiveness now behaves correctly. + Detective-Google: + - rscadd: arcade carpet + - rscadd: explosions now get broadcasted to deadchat. + - rscadd: Lick radial + - bugfix: Hilbert's jukebox works + - bugfix: arcade carpets now actually work + - tweak: the snow taxi is no longer the slow taxi + ERP mains: + - rscadd: Subtler Around Table is now a verb + EdgeLordExe, MoonFalcon: + - balance: Ported a bunch of heretic-related tweaks and changes from tg + EmeraldSundisk: + - rscadd: Adds a few new area designations primarily for CogStation, incorporates + them into said map + - tweak: Reorganizes some area designations for ease of use, along with renaming + the central "Router" to "Routing Depot" + - bugfix: Fixes an incorrectly designated area in CogStation + - bugfix: Changes the area designations to be not varedited since the code didn't + like that anymore + - bugfix: The cargo bay conveyor belts not only work with the shuttle now but go + in the right direction to boot + - tweak: Slight visual adjustments to cargo in light of this + - rscadd: The arcade's got RAD carpet now + - bugfix: Fixes the conveyor belt issues in Delta Station's cargo wing + - rscdel: Removes some of the dirt around the affected area (presumably they would + have cleaned it up while working on it) + - rscadd: Adds a floor light to fix the "dark spot" cargo had + - rscadd: Adds a new "Computer Core" area designation for CogStation + - bugfix: Fixes some missing area strings + - tweak: Replaces some firelocks with directional ones as to ensure desks/counters + can still be accessed + - balance: The "Skelter ruin" now has stechkins as opposed to M1911s + - tweak: Skelter's decorative bullet casings replaced to factor in the change in + caliber + - rscadd: Skelter now has a combat knife and fluff note + Ghommie: + - bugfix: You can access the mime / clown mask skins radial menu once again. + - bugfix: Dice bags no longer act like cardboard boxes. + - bugfix: Abductors should be no longer mute. + - bugfix: Item action buttons should now properly show the item current overlays, + most times. + - bugfix: The blackbox should now go into your hand slot when pried out, rather + than tumbling on the ground everytime. + - tweak: The Quick Equip hotkey is now usable by all living mobs (so long they have + hands and equipment slots) + Ghommie, porting PRs by MMMiracles and pireamaineach, credits to BlueWildrose too.: + - rscadd: You can now draw on plasmaman helmets with a crayon to turn their frown + upside-down. + - balance: Plasmaman helmets no longer hide your identity when worn by themselves. + - balance: Plasmaman helmets now have welding visors, which can't stack with their + torches in the helmet and are visible. + Hatterhat: + - rscadd: Energy sabre reskin for the energy sword - access via alt-click. + - bugfix: Alt-click reskins are fixed. + - tweak: Defibrillators and their many, many overlays were moved to another .dmi. + - tweak: You can now change the color of an energy sword via multitool. Not deswords. + Yet. + - imageadd: The Syndicate appear to be issuing new revolver variants. + - rscadd: Basic sticky technology is now a roundstart tech. Advanced sticky technology + is BEPIS-locked, though. Theoretically. + - tweak: Non-smithed katanas (including the temporal katana) can now fit in the + twin sheath. + - tweak: Cotton and durathread processing by hand now acts like grass. Stand on + a pile of cotton (or durathread) and use a single bundle from it. + - spellcheck: Utility uniforms now comply with the "nonproper equipment names" thing. + - bugfix: The CapDrobe now allows the captain to get his own clothes for free. Probably. + - tweak: All captains' clothes now offer 15 woundarmor, up from the 5. Because apparently + only the suit and tie and its suitskirt subtype have this wound armor, which + is dumb. + - rscadd: The nature interaction shuttle with the monkeys now has tiny fans on the + airlocks in, because that's apparently a feature that was missing. + - rscadd: More bags have been added to department vendors. + - balance: Every roundstart species (and also ash walkers) now has flesh and bone + that can be wounded. + - balance: Recipes for sutures, regen mesh, and sterilized gauze have been adjusted + to be easier, mostly. + - balance: Sterilized gauze is better at absorbing blood and being a splint. + - bugfix: Energy sabres now have an off inhand. + - balance: The bone gauntlets should be slightly less murderously punchy on the + fast punches mode. + - tweak: RPEDs now drop their lowest part tier first when quick-emptied (used inhand). + - tweak: Improvised gauzes can now be crafted in stacks up to 10, like their maximum + stacksize implies they should be capable of doing. + - bugfix: Pouring sterilizine on gauze now takes the proper 5u per sterilized gauze + instead of 10u. + - bugfix: Cryogenics now screams on common again when your fuckbuddy heads out. + - rscadd: Survival daggers! A slightly more expensive survival knife that comes + with a brighter flashlight. On the blade. + - tweak: Luxury pod capsules look different from normal capsules. + - rscadd: The wastes of Lavaland and the icy caverns of Snow Taxi rumble in unison. + - tweak: Exosuits sold on the Supply shuttle no longer leave wreckages. + - rscdel: Apparently, shrink rays were buyable again, despite a PR having been made + a while ago specifically for removing shrink rays. They're gone again. + - rscadd: Changeling bone gauntlets! They punch the shit out of people really good. + - tweak: Guerilla gloves and gorilla gloves inherit the strip modifiers of their + predecessors, because apparently they had those. + - balance: Pugilists now always hit the targeted limb and never miss. + - rscadd: The dock-silver standard set by Box and Meta has been enforced across + maps in rotation (Delta, Pubby, Lambda). + - bugfix: The Box whiteship now has its missing tiny fan back. + - bugfix: The survival dagger light on the sprite now actually turns on and off. + - balance: The survival dagger in the glaive kit that can also be bought by itself + is now better at butchering things. + HeroWithYay: + - bugfix: Changed description of Necrotizing Fasciitis symptom. + - tweak: Wormhole Projector and Gravity Gun now require anomaly cores to function + instead of firing pins. + KeRSedChaplain: + - imageadd: Resprited the brass claw + LetterN: + - rscadd: 2 more ways to get up from z1 + - tweak: tweaked the z2 garden to be less blank + - bugfix: fixed telecomms pda log + - rscadd: Coin & Holochip support for slot machine + - admin: Stickybans are now saved in the DB too + - soundadd: Immersive ™ audio reverbs. (also adds multiz audio) + - code_imp: Semi-hardsync from TG + - code_imp: Updates rust-g + - code_imp: Uses git CI instead of travis/appveyor now + - code_imp: Updates git and build tests. + - bugfix: minimap text + - code_imp: ports cinematic upgrades + Linzolle: + - bugfix: entertainment monitors no longer invisible + - rscadd: entertainment monitors now light up and display text when motion is detected + in thunderdome + - bugfix: lizard snouts are no longer *slightly* lighter than they are supposed + to be. + MrJWhit: + - rscadd: Expanded space hermit base + - tweak: Replaced engineering fuel tank with a large fuel tank + - tweak: Changed access to sec suit storage from armory access in every map to other + security access + - rscadd: Adds a space loop to every map in toxins + - rscadd: '' + - tweak: Added the ability for cargo to buy a large welding tank + - imageadd: Tweaked large tank reagent sprites to /tg/'s + - tweak: Gives metastation toxins storage a scrubber and a vent + - tweak: Updates suit storage info on Tip Of the Round. + - tweak: Increased christmas event from 22th to 27th to 10th to 27th + - tweak: Removes an opposum from the wall + - tweak: Donut boxes show what's inside of them now + - tweak: Updated meat icons + - admin: Canceling events gives more time to stop from 10 to 30 + - tweak: Fixes two chairs on one table + - tweak: Removed the wires connecting the AI from the rest of the station on cogstation. + - tweak: Fixes experimenter on cogstation. + - tweak: Less pipes in the overall area in toxins on cogstation + - tweak: Small fixes on security on boxstation + - tweak: Updated jukebox sprite. + - tweak: Fixes maint area in boxstation + - tweak: Christmas starts on the 18th now + - rscadd: Adds a goose bar sign + - bugfix: Effects can no longer trigger landmines + - rscdel: Removes the screen flashing on climax. + - rscadd: Makes gas sensors fireproof. + - tweak: A small bucket of random fixes, + - tweak: Minor fixes to kilo + - tweak: Porting garbage collection tweak from /tg/ + - tweak: Updates our dark gygax sprites to /tg/'s + - tweak: Bugfix of a morph becoming an AI eye + - tweak: Mining station oxygen locker on the cycling airlock starts out wrenched. + - balance: Nerf combat knife damage + - bugfix: Code improvement on ventcrawling + NT Cleaning Crews On Break: + - rscadd: Most kinds of dirt, grime, and debris are now persistent. Get to work, + jannies. + - rscadd: Dirt can now be removed by tile replacements. Other cleanable decals can't, + though. + Putnam3145: + - tweak: Replaces majority judgement with usual judgement. + - bugfix: Toilet loot spawners don't lag the server on server start with forced + hard dels. + - bugfix: vore prefs save now + - tweak: gear harness no longer magically covers up the body mechanically despite + covering up nothing visually + - balance: Regen coma now puts into a coma even from crit or while unconscious. + - bugfix: Regen coma now properly weakens while asleep. + - bugfix: Multi-surgery unit test no longer fails at random. + - refactor: Dwarf speech is no longer absolutely paranoid about word replacement. + - balance: Spontaneous brain trauma now requires minimum 5 players + - tweak: Grab bag works as advertised. + - balance: Xeno threat in dynamic tripled. + - code_imp: 'Vote system #defines are now strings' + - rscadd: Stat panel UI for ranked choice votes + - rscadd: A fallback for dynamic antag rolling that allows for it to just try between + traitor, blood brothers, heretics, changeling, bloodsucker and devil until there + are enough roundstart antags. This can also happen randomly anyway. Blood brothers + and devil are disabled for now, but the code is there to enable them. + - rscadd: A new storyteller, "Grab Bag", that forces the above round type. + - bugfix: atmos subsystem no longer dies if there's too many gases + - bugfix: Emotes can properly be filtered for in TGUI. + - bugfix: Holofirelocks work now. + - bugfix: adminhelping no longer removes entire admin tab + - bugfix: end of round no longer removes entire admin tab + - bugfix: Fixed a runtime in every healing nanite program. + - bugfix: removed a unit test causing master to fail + - tweak: Planetary atmos no longer does superconduction. + - bugfix: Dynamic vote no longer shows the none-storyteller. + - tweak: You can now exit polycircuit input + - bugfix: Polycircuits now check for range + - bugfix: gear harness alt-click is now sane + - code_imp: rolldown() and toggle_jumpsuit_adjust() now no longer mix behavior-that-should-be-overridden + and behavior-that-shouldn't-be-overridden in ways that make no sense. + - tweak: Gear harness now covers nothing. + - bugfix: Chemical stuff now displays fermichem stuff properly + - balance: Rad collectors now get 1.25x as much energy from radiation + - balance: Rad collectors now put out 1.25x as much stored energy per tick + - balance: Above two rad collector changes give a total 56.25% power output increase + - balance: Zeolites now only generate 1/5 the heat when reacting and don't require + a catalyst. + Ryll/Shaps: + - admin: Fixed an issue with player logs becoming confused when someone triggers + multiple events within one second (like being attacked by two people at the + same time) that would cause holes in the logs + SandPoot: + - tweak: You can attack a pile of money on the floor with your id to put it all + in quickly. + - refactor: Changes the limb grower a lot. + - bugfix: '"Limb" costs on limbgrower are actually displayed like it was meant to + all along.' + - code_imp: Swaps the gift static blacklist with a global list one. + SiliconMain: + - tweak: Engi department has gas masks in loadout + - tweak: hololocks (which haven't worked for god knows how long) commented out until + auxmos is merged + Sonic121x: + - rscadd: alarm ert hardsuit sprite for naga and canine + - tweak: adjust the naga ert hardsuit to cover the hand + - bugfix: cydonia hardsuit helmet + - rscadd: digi sprite uniform + - bugfix: digi leg suit + SpaceManiac: + - bugfix: Fixed the maphook + Thalpy: + - bugfix: fixes some bugs in jacqs code from edits to the codebase + The Grinch: + - rscdel: infinite presents from hilbert hotel + TheObserver: + - rscadd: Re-adds the rifle stock, and sets the improv shotgun to be as it was. + - rscdel: The maintenance rifle has been shelved - for now. Watch this space. + TheObserver-sys: + - bugfix: Drake? Where's the dead fairygrass sprite? + TheSpaghetti: + - bugfix: no more tumor bread double punctuation + Trilbyspaceclone: + - tweak: Zeolites now use gold rather then uranium for catalyst + - tweak: Zeolites are not as hard to make ph wise + - tweak: Making Zeolites heats up the beaker less allowing for better control + - tweak: ASP 9mm and M1911 can now have suppressers added + - balance: Brass welders are 50% faster at refueling + - code_imp: redoes self fueling welders in the code to be less speggie + - rscadd: the corporate unifoms can now be gotton in the clothing mate vender + TripleShades: + - rscadd: 'Firelock to Surgery Bay drapes change: Swapped Nanomed and Fire Alarm + button locations in both Surgery Bays change: Removes the double mirror in both + Surgery Bays to be a singular mirror change: Moved an intercom to not be doorstuck + below Paramedical Office remove: One Surgery Observation Fire Alarm button' + - rscadd: 'New Paramedic Office next to Genetics where the old Genetics Reception + used to be change: Surgery, Surgery Observation, and Recovery Hall layout revamped + drastically change: Maints below Surgery lowered by one tile to recover lost + tile space from Surgery expansion' + Tupinambis: + - rscadd: Arachnids (spider people) with limited night vision, flash vulnerability, + and webbing. + Vynzill: + - rscadd: 'new gateway mission mapadd: jungleresort map' + - bugfix: fixes high luminosity eyes + Xantholne: + - bugfix: Fixed new birds changing back to basic parrot when sitting + - rscadd: New parrots from the RP server, can be found in Bird Crate in Cargo + - rscadd: You can now tuck disky into bed + - rscadd: You can now make beds by applying a bed sheet to them + - rscadd: You can now tuck in pai cards into bed + - rscadd: Added bed tucking element, can be added to any held object to allow tucking + into beds + - bugfix: Twin Sword Sheaths have an equipment icon and icon when worn now and make + a sound when sheathed/unsheathed + Yakumo Chen: + - balance: Slime Jelly is no longer obtainable from slimepeople. Go ask Xenobio + YakumoChen: + - balance: "To lower production costs, Buzz Fuzz is now manufactured with Real\u2122\ + \uFE0F Synthetic honey." + Zandario: + - code_imp: Added some framework for future species expansions, including clothing + refitting. + - refactor: Made majority of the relevant Species IDs and Categories pre-defined, + also for easier expansion and use. + - bugfix: lum slime sprites work again + - code_imp: Slapped the Species Defines where relevant + corin9090: + - tweak: The chaplain's prayer beads can now be worn on your belt slot + kappa-sama: + - bugfix: super saiyan + - tweak: ishotgun crafting recipe no longer requires plasteel and is slightly more + convenient + - balance: ishotgun does 45 damage now instead of 40.5 + - rscadd: s + - tweak: s + - balance: s + - bugfix: s + - rscadd: A new spell for the wizard and his martial apprentices, the Inner Mantra + technique. It makes you punch people really good and makes you durable, but + drains your energy while it's active. + - rscadd: A self-buffing spell for valiant bubblegum slayers that is ultimately + useless on lavaland and probably overpowered for miner antagonists. Go figure. + At least all it does is let you punch hard while draining your health every + second. + - balance: bubblegum now drops a book that makes you into an abusive father instead + of a shotgun that plays like pre-nerf shotguns + - soundadd: a powerup and powerdown sound effect + - imageadd: two icons for two buff spells + keronshb: + - bugfix: Allows Energy Bola to be caught + - balance: This also allows them to be dropped/picked up. + - rscadd: Adds a reduced stamina buffer for SCarp users + - rscadd: Gives SCarp users a better parry + - rscadd: Adds the SCarp bundle which includes a bo staff + - rscadd: Lets Carp costumes carry Bo Staffs + - balance: reduces the stamina damage of scarp slightly + - balance: reduced the blockchance of the bo staff + - rscadd: Adds more room to northwest maint + - rscadd: Adds a bridge between Atmos and the Turbine. + - balance: Blob Resource Tower to 2 points per instead of 1 point per. + - balance: Blob Factory Towers can be placed 5 tiles apart instead of 7. + - bugfix: Fixes Blobbernaut Factories consuming Factories if no naut is chosen. + - bugfix: Fixes Reflective Blobs + - rscadd: Re-adds the Clown Car to the clown uplink + - balance: 15 >16 TC cost + - balance: bonks on external airlocks + - bugfix: Fixes the parry data for scarp + kittycat2002: + - rscadd: set the name of /datum/reagent/consumable/ethanol/species_drink to Species + Drink + kiwedespars: + - balance: balanced bone gauntlets. + - rscadd: the robust dildo weapon now has sound. + necromanceranne: + - bugfix: Fixes various sprites for bokken, as well as being unable to craft certain + parts and duplicate entries. + - rscadd: 'Bokken now come in two lengths; full and wakizashi, and two varieties: + wood and ironwood. They have different stats for all four.' + - rscadd: Bokken require menu crafting and part construction, as well as more complicated + materials. + - tweak: Bokken (long and short) require wood, cloth and leather to craft with a + hatchet and screwdriver. + - tweak: Ironwood bokken (long and short) require ironcap logs, cloth and leather + to craft with a hatchet, screwdriver and welder. + - balance: Twin sheathes can only fit a pair of blades (longsword + shortsword) + or they can fit two shortswords. + - bugfix: Fixed a twin sheath runtime. + - imageadd: A lot of bokken related sprites received an overhaul. Added overlay + sprites for weapons sheathed in the twin sheathes. + - imageadd: The extradimensional blade received improved sprites for inhands/back + sprites. + - bugfix: You can now make all the variants of the bokken. + - bugfix: Removes a duplicate sprite. + - tweak: Renames all instances of 'ironwood' to 'steelwood'. + - rscadd: Adds new roboticist labcoat sprites! + qwertyquerty: + - bugfix: Flash the screen on climax + raspy-on-osu: + - spellcheck: salicylic acid + - tweak: space heater heating range and power + - tweak: windoor open length + shellspeed1: + - rscadd: Wings from Cit RP have been ported over + - rscadd: Moth wings from cit have been ported over + - bugfix: Cleaned up some pixels on existing moth wings. + - tweak: Organized the lists for wings by if they are for moths or not and than + by alphabetical. + - balance: Lings now have infinite space for DNA. + - rscadd: All xenomorph types have been added as corpses for mapping purposes + - balance: The dead xenomorphs in the lavaland xenomorph hive now have more variety. + - tweak: Floor bots are now buildable with all toolboxes. + - rscadd: 'Xenomorph hybrids can now select wings ~~add: Xenomorph hybrids can now + speak xenomorph~~' + - rscadd: Xenomorph tongues are available for customization. + - rscadd: Mining borgs can claim points again + - rscadd: Construction bags have been added, use them to carry all sorts of construction + bits. + - rscadd: A recipe has been added to cloth stacks to make material and construction + bags. + - balance: Material bags and construction bags are now available in engineering + lockers. + - rscadd: Adds the disposable sentry gun from tg for 11tc each. + - rscadd: The exofab can now print prosthetic limbs + - bugfix: The exofab was missing access to multiple cybernetic organs. This has + now been rectified. + - rscadd: A new recipe for a spicy has been given to us by a strange business man. + - rscadd: The bluespace navigation gigabeacon design has been added to shuttle research + for those wanting to take their ships around space more. + - tweak: Xenomorph powers now list plasma cost in their description. + silicons: + - tweak: nanite resistances tweaked + - rscadd: new nanite programs added for locking the user out from being modified + by consoles or antivirals. + - rscdel: anomalies no longer spawn in walls + - rscadd: 'Twitch Plays: Clown Car' + - rscadd: pugilists can now parry + - balance: c4 can no longer gib mobs + - tweak: medium screens are better now + - tweak: text formatting now uses one character instead of two around the text to + emphasize. + - rscadd: colormates + - balance: shoving yourself up now costs 50% more + - bugfix: dullahans enabled + - rscadd: tailed individuals can now target groin to intertwine tails on grab intent. + - rscadd: Clowns now have unpredictable effects on supermatter crystals when dusting + from contact. + - tweak: anyone new to the server is lucky enough to have their sprint default to + toggle instead of hold + - balance: stamina crit is only removed when at or under 100 stamina, rather than + 140. stamina crit threshold is still at 140. + - tweak: luxury shuttle no longer has noteleport + - rscdel: now only poly gets a headset on spawn, not all birds. + - tweak: the warp implant now actually warps you back 10 seconds. leaves a trail, + though. now unlimited us. + - bugfix: things in DEATHCOMA do not deathgasp on death + - tweak: Meth and changeling adrenals no longer ignore all slowdowns, rather damage + slowdowns. + - rscadd: you can now be an angel using a magic mirror again + - tweak: command headsets are 120% instead of 160% + - bugfix: no more emote italics + - rscadd: players can now respawn/return to lobby as a ghost after a 15 minute (default) + delay and rejoin on another character with some/many restrictions + - rscadd: cryo now preserves everything + - bugfix: Magrifle ammo no longer glows. + - tweak: temperature slowdown divisor nerfed to 35 from 20. + - balance: dna melt drops all items being destroying you + - bugfix: keybinds generate anti-collision bindings where necessary automatically + now + - balance: changeling combat mutations rebalanced. most of them take chemicals to + upkeep now. + - rscadd: set-pose has been added + - tweak: temporary flavor text renamed to set pose, fully visible in examine + - bugfix: ninja gloves no longer hardstun + - balance: ninja gloves now cost half as much to use to compensate + - bugfix: simple mobs are now immune to radioactive contamination + timothyteakettle: + - bugfix: time for memory loss message to show up when being revived is now correctly + 300 seconds, instead of 30 + - bugfix: the load away mission verb won't crash the server now + - rscadd: roundstart slimes can turn into puddles now + - rscadd: all gas masks (but welding + glass) can be alt clicked to show/hide identity + - tweak: autosurgeons from travelling trader rewards now only have one use + - bugfix: fixes held items proccing crossed when passing someone + - tweak: you can now get a family heirlooms based off your species instead of job + - tweak: changeling stings retract upon turning into a slime puddle + - tweak: you cannot transform into a slime puddle with a no drop item in your hands + - tweak: slime puddles are now transparent and their colour looks more natural in + comparison to the user + - tweak: slime puddles are now even slower + - tweak: slime puddles now get no protection from worn clothing + - rscdel: removes two debug messages left in from my prior eye customization pr + - rscadd: adds unlockable loadout items, corresponding category in loadouts, etc + - rscadd: added in-game age verification as an alternative to access requests + - bugfix: disabling adminhelp noises no longer disables looc + - bugfix: apids render now + - bugfix: you can now only entwine tails with people who have a tail + - bugfix: custom eyes and tongues now properly carry across cloning + - rscadd: re-adds the holoform verb for people who want to use it over going through + the char list + - bugfix: eye sprites should look normal once more + - rscadd: licking people washes pie off their face + - rscadd: you can now pick your eye sprites from customization + - tweak: looking at loadout equips loadout items on your preview image instead of + job items + - tweak: custom holoforms are now accessible through an action instead of through + verbs + - tweak: AI holoforms can now emote + - tweak: cloning now correctly copies your blood colour, body sprite type and eye + type + - bugfix: species with NOTRANSSTING cannot have envy's knife used on them + - rscadd: avian/digitigrade legs have been added for slimes + - rscadd: you can teleport bread + - tweak: slime puddles are no longer layered down one layer + - tweak: you cannot tackle with two paralysed arms + - tweak: tackling with a single paralysed arm lowers your tackle roll by 2 + - bugfix: circuits get pin data proc is sanitized when text is returned as data + - rscadd: loadout now has save slot support and colour choosing/saving for polychromic + items + - rscadd: polychromic maid outfit + - rscadd: you can rebind communication hotkeys and they're the default now + - rscadd: you can now customize your size from 90% to 130%, going below 100% makes + you have 10 less max health + - rscadd: '*squeak' + - rscadd: anthromorphic synth species + - rscadd: improvements to the automatic age gate + - tweak: antag items are now of critical importance and wont fail to be placed on + the character + - bugfix: a tonne of fixes to colourisation of parts, too many to name, including + some sprite fixes + - rscadd: things now have their own individual primary/(secondary)/(tertiary) colours + as required, and these can be modified by you + uomo91: + - bugfix: Fixed "Show All" tab in player panel logs being broken. + - bugfix: Whispers, OOC, and various other things display differently in logs, visually + distinguishing them from say logs. + - refactor: Player panel logs will now show all logs chronologically, so you'll + see commingled say and attack logs if you're on the "Show All" tab, etc... + yorii: + - bugfix: fixed botany rounding error that caused grass and other plants to misbehave + zeroisthebiggay: + - bugfix: legion now drops chests + - rscadd: Traitor assistants can now purchase the patented POGBox! Put TC into it + for even higher damage! + - balance: MEGAFAUNA DROPS ARE LAVAPROOF + - imageadd: cool codex cicatrix inhands + - rscadd: gravitokinetic stands from tg + - balance: buffs stands overall + - bugfix: protector stands no longer become tposing invisible apes sometimes + - bugfix: jacqueline spawns on boxstation + - rscadd: secsheath for your cool stunsword at your local security vendor. you gotta + hack it first though. + - imageadd: fuck the r*d cr*ss + - rscadd: The legion megafauna has been reworked. The fight should now be both slightly + harder and faster. + - balance: You can no longer cheese the colossus by being a sand golem and simply + being immune. +2021-01-22: + Arturlang: + - rscadd: Adds a way to give items to people, you can combat mode rightclick to + offer it to one person, right click on people without mode and click the give + verb, or use the hotkey CTRL G to offer it to everyone around you +2021-01-25: + MrJWhit: + - bugfix: Alien radio code + - rscadd: Microwave can now be cleaned by a damp rag as well as soap. + - bugfix: Removes some unused code, and improves some other code. + - rscadd: The AI has a verb to look up and down z-levels + - bugfix: Making a monkey into a human doesn't unanchor random things on the tile + - bugfix: Makes a few slight improvements to drinking code + - tweak: Makes encryption keys be put in the hands of the user when able instead + of being dropped on the floor when removed from headsets + raspy-on-osu: + - refactor: ventcrawling + silicons: + - tweak: you can now shove yourself up in any intent, not just help. +2021-01-27: + ArcaneMusic, ported by Hatterhat: + - rscadd: Strike a hydroponics tray with a fully-charged floral somatoray to lock + in a mutation. + - rscadd: Floral somatorays now have the ability to force a mutation in a plant. + This should drain the cell in a single shot, but we'll see. + - balance: Somatorays now take uranium to craft instead of radium. + Arturlang: + - rscadd: Actually adds a right click give option + - rscadd: Revenants can now clickdrag to throw stuff at people, with some items + doing various things at the same time. + DeltaFire15: + - bugfix: The woundmending rite no longer causes runtimes. + - bugfix: Ratvarian borgs can now use their tier-0 spells. + - balance: Ratvarian borgs can always use their assigned spells, if there is enough + power. + - admin: The heretic antag panel now shows their sacrifices & current sacrifice + targets. + - tweak: The heretic roundend report now shows their sacrifices and nonsacrificed + targets. + - bugfix: Living hearts can no longer select the same target as another living heart, + removing a certain problem. + Hatterhat: + - tweak: Department budget cards have been readded. TO THE CODE. NOT LOCKERS. + - tweak: Also budget cards now look more like every other ID - see tgstation#55001. + - balance: One of the contractor tablet's payouts has been raised from a small payout + to a medium payout. + - balance: The free golem ship's GPSes no longer start on. They were never meant + to, but they did. + - rscdel: Headsets can't be found on most legion corpses now. + - rscdel: The flash on the assistant corpse is gone, too. + MrJWhit: + - tweak: Remaps some air alarms for sanity. + SandPoot: + - bugfix: The drop circuit can no longer drop things that are not inside it. + raspy-on-osu: + - bugfix: bespoke ventcrawling element not detaching due to malformed call + shellspeed1: + - bugfix: Floorbots had had a software update, preventing them from dogpiling on + their target as easily as they did before. + - soundadd: Floorbots will now play a small chime when stacked on top of each other + to indicate that they're moving apart. + timothyteakettle: + - rscadd: blobs can use the 'me' verb + - admin: adminhelps and pms only sanitize once instead of twice +2021-01-28: + silicons: + - rscadd: colormates can now paint some mobs. + - bugfix: 1 dev explosions shouldn't delete brains anymore +2021-01-29: + MrJWhit: + - tweak: Ported the QM, Captain, CMO, and HoS cloaks from beestation. + - rscdel: Removes excess air alarms from boxstation + TripleShades: + - bugfix: fixes engineering secure storage being the wrong area because I fucked + that up previously my bad + - bugfix: removes funny extra light switch under right surgery table in surgery + oops + - rscadd: Added chairs to the corpse launch viewing area + - rscadd: Small garden plot for flowers for parity with other station Chapels + - rscadd: Plain Bible to glass tables in Chapel + - rscadd: Candles and Matchbox to glass tables in Chapel + - rscadd: More glass tables, with a chaplain figure and another spare bible. + - rscadd: Bookcase to Box Chapel for parity with other station Chapels + - rscadd: Minimoog to Box Chapel as substitute for a church organ + - rscadd: 'Holy department sign just below Chapel change: Expanded the corpse launching + area to feel less congested change: Added windows to the corpse launch so you + can look inside I guess? change: Moved flowers and burial garments to the corner + next to the corpse launcher change: Box Chaplain''s office door is moved over + one change: Confessional is now connected to Chaplain''s office for parity with + other station Chapels change: Moved coffins over to old confessional location + change: Box Chapel now has pews instead of stools change: Box Chapel Confessional + is now lit instead of being nearly pitch black remove: Two coffins from Chapel' + timothyteakettle: + - bugfix: the miner bedsheet will now increment its progress when you redeem points + from the ORM + - rscadd: you can add custom names and descriptions to item's on the loadout now + zeroisthebiggay: + - rscadd: roundstart aesthetic sterile masks and roundstart paper masks + - rscadd: more accessory slot items + - rscadd: cowbell necklace happy 2021 + - rscadd: shibari ropes & torn pantyhose +2021-01-30: + timothyteakettle: + - rscadd: adds 'clucks', 'caws' and 'gekkers' to the speech verb list + zeroisthebiggay: + - rscadd: some more FUCKING hairs + - imageadd: uncodersprites the advanced extinguisher +2021-01-31: + Putnam3145: + - balance: fermichem explosion EMPs don't cover the entire station +2021-02-02: + silicons: + - rscadd: pais can now be carried around piggybacking/fireman + - balance: Meth and Nuka Cola once again, speed you up. +2021-02-03: + Hatterhat: + - bugfix: The green energy sabre's sprite now respects proper handedness. +2021-02-05: + SmArtKar: + - rscadd: The orbit menu now has an Auto-Observe button! No more sifting through + the lame observe menu to snoop in people's backpacks! Also, orbit menu now refreshes. + - bugfix: KAs are no longer getting broken when fired by a circuit + keronshb: + - balance: Force and damage > 15 from 18/25 + - balance: Knockdown put down to 5 from 30 + - balance: Armor pen down to 10 from 100. + - balance: Makes cell chargers, charge faster. + raspy-on-osu: + - bugfix: alien royals can no longer ventcrawl + shellspeed1: + - balance: There actually needs to be people for zombies to happen now. + timothyteakettle: + - rscadd: dwarf facial hair is no longer randomised +2021-02-07: + Thalpy: + - refactor: 'Dispenser: Adds the ability to store a small amount of reagents in + the machine itself for dispensing. Reacting recipies cannot be stored. Size + of storage increases with bin size.' + - refactor: 'Dispenser: Allows reagents to be color coded by pH' + - refactor: 'Dispenser: Each reagent displays it''s pH on hover' + - refactor: 'Dispenser: Allows the user to toggle between buttons and a radial dial' + - refactor: 'Dispenser: When the dispencer is upgraded it can dispense 5/3/2/1 volumes + based on rating refactor: Dispenser: as it was before. This does not break recorded + recipes.' + - tweak: Adds a round function to some numbers so they're not huge + - tweak: The Chem master can now get purity for all reagents when analysed + - bugfix: Synthissue fixes + - tweak: buffers now have a strong and weak variant. Weak can be dispensed, and + strong can be created. Strong buffers are 6x more effective. + - bugfix: Some buffer pH edge calculation fixes + TyrianTyrell: + - rscadd: added a signed language, that can't be used over the radio but can be + used if you're mute. also added the multilingual trait. + - imageadd: hopefully added an icon for the signed language. + - code_imp: changed how some traits function slightly. + dzahlus: + - tweak: tweaked a few sounds + - soundadd: added a new weapon sounds + - sounddel: removed old weapon sounds + - code_imp: changed some sound related code + silicons: + - rscadd: syndicate ablative armwraps have been added. +2021-02-09: + Chiirno: + - rscadd: Adds clown waddle to clown shoes. Enhanced Clown Waddle Dampeners can + be engaged in-hand with ctrl+click, _but why would you?_ + MrJWhit: + - rscadd: Re-adds theater disposal outlet, and makes dorms disposal able to have + things sent to it on boxstation. + TyrianTyrell: + - bugfix: made default tongue able to speak signed language. + timothyteakettle: + - balance: sentient viruses can now infect synths and ipcs +2021-02-11: + Adelphon: + - rscadd: Charismatic Suit + - rscadd: Urban Jacket + DeltaFire15: + - tweak: Added nanogel to the robodrobe. + Putnam3145: + - rscadd: Config to keep unreadied players from mode voting + dzahlus: + - bugfix: fixes grenadelaunch.ogg being used where it shouldn't and makes mech weapons + use correct sound + keronshb: + - balance: 10 > 30 second for Warp Implant cooldown + - rscdel: Comments out power sink objective. + timothyteakettle: + - bugfix: persistent blood should stop being invisible and alt clicking it shouldn't + return the entire spritesheet + - admin: pickpocketing is now logged using log_combat + zeroisthebiggay: + - tweak: the aesthetic sterile mask no longer hides faces so you can cosplay egirls + and keep flavortexts +2021-02-12: + Hatterhat: + - balance: The ATVs on SnowCabin.dmm have been replaced with snowmobiles. + MrJWhit: + - tweak: Random deltastation fixes. + - tweak: Gives boxstation vault door actual vault door access + silicons: + - balance: Voice of God - sleep removed, stun staggers instead, knockdown is faster + but does not do stamina damage, vomit is faster but doesn't stun +2021-02-13: + Hatterhat: + - balance: Energy bolas now take 2.5 seconds to remove and dissipate on removal. + timothyteakettle: + - admin: migration error to version 39+ of savefiles is now logged instead of messaging + all online admins in the chat +2021-02-14: + DeltaFire15: + - admin: The antag panel now correctly shows the names of cultist / clockcult datum + subtypes. + - bugfix: Adding clock cultists via the admin panel now works correctly. + - bugfix: Xeno larvae should now be able to ventcrawl again. + Hatterhat: + - tweak: Repairing sensors on jumpsuits now requires a fully-intact jumpsuit. Find + some cloth. + - tweak: Durathread armor kits now require you to have a fully-repaired jumpsuit, + first, with no attachments. + - bugfix: Durathread armor kits now no longer weave the entirety of the jumpsuit + armor universe into having armor. + TyrianTyrell: + - code_imp: added a define for multilingual granted languages, and changed the multilingual + trait to use it. +2021-02-15: + Adelphon: + - rscadd: polychromatic shoes + - rscadd: polychromatic windbreaker + - rscadd: polychromatic canvas cloak + - bugfix: digitigrade charismatic suit texture + DeltaFire15: + - balance: Kneecapped pugilist parries somewhat. + - balance: Slightly nerfed default unarmed parries. + - balance: Slightly nerfed traitor armwrap parries. + - bugfix: Pugilist parries now cannot perfectly defend against projectiles, as they + were supposed to. + - bugfix: Some parrying numbers that one would think were in seconds didn't have + the SECONDS. I added those. + - balance: Clock cultists now yell alot less when invoking scripture. + dzahlus: + - rscadd: Added new emote + - soundadd: added a new emote sound + silicons: + - balance: people on the ground hit less hard in unarmed combat. rng miss remove + from punches. + - bugfix: chat highlighting no longer drops half your entered words. +2021-02-16: + silicons: + - config: sprint removal entry added, UI will revert to old UI while this is active. +2021-02-18: + BlueWildrose: + - admin: Admins now receive messages regarding certain holodeck actions. + Hatterhat: + - bugfix: Free Golem Ship GPSes now start as disabled. Like they were supposed to. + LetterN: + - tweak: No more liver damage when you opt out of "hornychems" + SmArtKar: + - rscadd: Added a new TCG card game + dzahlus: + - rscdel: Removed maroon objective due to toxic gameplay behaviour + shellspeed1: + - bugfix: floor bots place plating before tiles now. + - bugfix: gets rid of another tile duplication issue. + silicons: + - spellcheck: priviledge --> privilege +2021-02-19: + Putnam3145: + - bugfix: Buzz Fuzz's addiction threshold is now a can and a sip as intended. + timothyteakettle: + - admin: staring into pierced realities is now logged diff --git a/html/changelogs/AutoChangeLog-pr-13014.yml b/html/changelogs/AutoChangeLog-pr-13014.yml deleted file mode 100644 index 861e797669..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13014.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscadd: "The wastes of Lavaland and the icy caverns of Snow Taxi rumble in unison." diff --git a/html/changelogs/AutoChangeLog-pr-13193.yml b/html/changelogs/AutoChangeLog-pr-13193.yml deleted file mode 100644 index 980a9366d8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13193.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "medium screens are better now" diff --git a/html/changelogs/AutoChangeLog-pr-13233.yml b/html/changelogs/AutoChangeLog-pr-13233.yml deleted file mode 100644 index 4366abec64..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13233.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscadd: "Changeling bone gauntlets! They punch the shit out of people really good." - - tweak: "Guerilla gloves and gorilla gloves inherit the strip modifiers of their predecessors, because apparently they had those." - - balance: "Pugilists now always hit the targeted limb and never miss." diff --git a/html/changelogs/AutoChangeLog-pr-13252.yml b/html/changelogs/AutoChangeLog-pr-13252.yml deleted file mode 100644 index 5de40bb80b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13252.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "looking at loadout equips loadout items on your preview image instead of job items" diff --git a/html/changelogs/AutoChangeLog-pr-13346.yml b/html/changelogs/AutoChangeLog-pr-13346.yml deleted file mode 100644 index 2e3d4e3280..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13346.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - refactor: "Dwarf speech is no longer absolutely paranoid about word replacement." diff --git a/html/changelogs/AutoChangeLog-pr-13349.yml b/html/changelogs/AutoChangeLog-pr-13349.yml deleted file mode 100644 index 2469b31ecd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13349.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LetterN" -delete-after: True -changes: - - code_imp: "Updates git and build tests." diff --git a/html/changelogs/AutoChangeLog-pr-13405.yml b/html/changelogs/AutoChangeLog-pr-13405.yml deleted file mode 100644 index 176e886b0d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13405.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "the warp implant now actually warps you back 10 seconds. leaves a trail, though. now unlimited us." diff --git a/html/changelogs/AutoChangeLog-pr-13444.yml b/html/changelogs/AutoChangeLog-pr-13444.yml deleted file mode 100644 index d24babda2e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13444.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "you can now get a family heirlooms based off your species instead of job" diff --git a/html/changelogs/AutoChangeLog-pr-13461.yml b/html/changelogs/AutoChangeLog-pr-13461.yml deleted file mode 100644 index e2397a7aa0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13461.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Detective-Google" -delete-after: True -changes: - - rscadd: "arcade carpet" diff --git a/html/changelogs/AutoChangeLog-pr-13472.yml b/html/changelogs/AutoChangeLog-pr-13472.yml deleted file mode 100644 index 8e8d043de6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13472.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "roundstart slimes can turn into puddles now" diff --git a/html/changelogs/AutoChangeLog-pr-13473.yml b/html/changelogs/AutoChangeLog-pr-13473.yml deleted file mode 100644 index aebdfbb3cb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13473.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Tupinambis" -delete-after: True -changes: - - rscadd: "Arachnids (spider people) with limited night vision, flash vulnerability, and webbing." diff --git a/html/changelogs/AutoChangeLog-pr-13479.yml b/html/changelogs/AutoChangeLog-pr-13479.yml deleted file mode 100644 index fcfe65a47e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13479.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "LetterN" -delete-after: True -changes: - - bugfix: "minimap text" - - code_imp: "ports cinematic upgrades" diff --git a/html/changelogs/AutoChangeLog-pr-13481.yml b/html/changelogs/AutoChangeLog-pr-13481.yml deleted file mode 100644 index f6049c552b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13481.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "the blacksmithing skill now works properly" - - tweak: "Anvils cannot be interacted with with hammers whilst they are already being used" - - tweak: "If someone has no gloves when interacting with heated ingots, they no longer ignore their effects." diff --git a/html/changelogs/AutoChangeLog-pr-13483.yml b/html/changelogs/AutoChangeLog-pr-13483.yml deleted file mode 100644 index 1db9304ffb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13483.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "The Revenant self-revive ability is no longer broken." diff --git a/html/changelogs/AutoChangeLog-pr-13487.yml b/html/changelogs/AutoChangeLog-pr-13487.yml deleted file mode 100644 index 4b0f92adfb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13487.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "People installing KA modkits in miner borgs is no longer broken." diff --git a/html/changelogs/AutoChangeLog-pr-13496.yml b/html/changelogs/AutoChangeLog-pr-13496.yml deleted file mode 100644 index 30308efaff..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13496.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Detective-Google" -delete-after: True -changes: - - rscadd: "explosions now get broadcasted to deadchat." diff --git a/html/changelogs/AutoChangeLog-pr-13497.yml b/html/changelogs/AutoChangeLog-pr-13497.yml deleted file mode 100644 index c5f569bad3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13497.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Zandario" -delete-after: True -changes: - - code_imp: "Added some framework for future species expansions, including clothing refitting." - - refactor: "Made majority of the relevant Species IDs and Categories pre-defined, also for easier expansion and use." diff --git a/html/changelogs/AutoChangeLog-pr-13498.yml b/html/changelogs/AutoChangeLog-pr-13498.yml deleted file mode 100644 index f956ee4b07..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13498.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Bhijn" -delete-after: True -changes: - - tweak: "Changeling loudness is now determined as an average of all their abilities, rather than the sum" - - tweak: "To compensate for this, blood tests now require a loudness value of 1 or higher to detect ling blood. Additionally, blood test explosions are now triggered only when the loudness value is higher than 2." diff --git a/html/changelogs/AutoChangeLog-pr-13499.yml b/html/changelogs/AutoChangeLog-pr-13499.yml deleted file mode 100644 index 804fa9fc34..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13499.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Toilet loot spawners don't lag the server on server start with forced hard dels." diff --git a/html/changelogs/AutoChangeLog-pr-13500.yml b/html/changelogs/AutoChangeLog-pr-13500.yml deleted file mode 100644 index 7ba1eb64f3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13500.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "LetterN" -delete-after: True -changes: - - rscadd: "2 more ways to get up from z1" - - tweak: "tweaked the z2 garden to be less blank" diff --git a/html/changelogs/AutoChangeLog-pr-13501.yml b/html/changelogs/AutoChangeLog-pr-13501.yml deleted file mode 100644 index dcdd868e37..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13501.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Holofirelocks work now." diff --git a/html/changelogs/AutoChangeLog-pr-13503.yml b/html/changelogs/AutoChangeLog-pr-13503.yml deleted file mode 100644 index c68eaf44f0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13503.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscadd: "Survival daggers! A slightly more expensive survival knife that comes with a brighter flashlight. On the blade." - - tweak: "Luxury pod capsules look different from normal capsules." diff --git a/html/changelogs/AutoChangeLog-pr-13504.yml b/html/changelogs/AutoChangeLog-pr-13504.yml deleted file mode 100644 index 7f59b120b6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13504.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - rscadd: "gravitokinetic stands from tg" - - balance: "buffs stands overall" - - bugfix: "protector stands no longer become tposing invisible apes sometimes" diff --git a/html/changelogs/AutoChangeLog-pr-13509.yml b/html/changelogs/AutoChangeLog-pr-13509.yml deleted file mode 100644 index e666a6b2a4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13509.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "EmeraldSundisk" -delete-after: True -changes: - - balance: "The \"Skelter ruin\" now has stechkins as opposed to M1911s" - - tweak: "Skelter's decorative bullet casings replaced to factor in the change in caliber" - - rscadd: "Skelter now has a combat knife and fluff note" diff --git a/html/changelogs/AutoChangeLog-pr-13511.yml b/html/changelogs/AutoChangeLog-pr-13511.yml deleted file mode 100644 index e819d8752d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13511.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - imageadd: "The Syndicate appear to be issuing new revolver variants." diff --git a/html/changelogs/AutoChangeLog-pr-13512.yml b/html/changelogs/AutoChangeLog-pr-13512.yml deleted file mode 100644 index f96f13a156..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13512.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - bugfix: "Cryogenics now screams on common again when your fuckbuddy heads out." diff --git a/html/changelogs/AutoChangeLog-pr-13513.yml b/html/changelogs/AutoChangeLog-pr-13513.yml deleted file mode 100644 index 0cff979e8c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13513.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "you can now pick your eye sprites from customization" diff --git a/html/changelogs/AutoChangeLog-pr-13514.yml b/html/changelogs/AutoChangeLog-pr-13514.yml deleted file mode 100644 index bd1605fb96..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13514.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Thalpy" -delete-after: True -changes: - - bugfix: "fixes some bugs in jacqs code from edits to the codebase" diff --git a/html/changelogs/AutoChangeLog-pr-13516.yml b/html/changelogs/AutoChangeLog-pr-13516.yml deleted file mode 100644 index 30e22f4f48..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13516.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "yorii" -delete-after: True -changes: - - bugfix: "fixed botany rounding error that caused grass and other plants to misbehave" diff --git a/html/changelogs/AutoChangeLog-pr-13517.yml b/html/changelogs/AutoChangeLog-pr-13517.yml deleted file mode 100644 index 8f29517058..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13517.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - bugfix: "simple mobs are now immune to radioactive contamination" diff --git a/html/changelogs/AutoChangeLog-pr-13518.yml b/html/changelogs/AutoChangeLog-pr-13518.yml deleted file mode 100644 index 565754f48b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13518.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheObserver-sys" -delete-after: True -changes: - - bugfix: "Drake? Where's the dead fairygrass sprite?" diff --git a/html/changelogs/AutoChangeLog-pr-13519.yml b/html/changelogs/AutoChangeLog-pr-13519.yml deleted file mode 100644 index 0c4978a7d8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13519.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Detective-Google" -delete-after: True -changes: - - rscadd: "Lick radial" diff --git a/html/changelogs/AutoChangeLog-pr-13521.yml b/html/changelogs/AutoChangeLog-pr-13521.yml deleted file mode 100644 index 77aca8c363..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13521.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - balance: "zeolites are now actual fermichems instead of being incredibly easy to make." - - bugfix: "Using syringes / droppers on chem heaters with beakers in them works again." diff --git a/html/changelogs/AutoChangeLog-pr-13523.yml b/html/changelogs/AutoChangeLog-pr-13523.yml deleted file mode 100644 index ac2019bb88..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13523.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Detective-Google" -delete-after: True -changes: - - bugfix: "arcade carpets now actually work" diff --git a/html/changelogs/AutoChangeLog-pr-13525.yml b/html/changelogs/AutoChangeLog-pr-13525.yml deleted file mode 100644 index eb441f04c3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13525.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Detective-Google" -delete-after: True -changes: - - bugfix: "Hilbert's jukebox works" diff --git a/html/changelogs/AutoChangeLog-pr-13526.yml b/html/changelogs/AutoChangeLog-pr-13526.yml deleted file mode 100644 index 104b76bd94..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13526.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "vore prefs save now" diff --git a/html/changelogs/AutoChangeLog-pr-13527.yml b/html/changelogs/AutoChangeLog-pr-13527.yml deleted file mode 100644 index 7e65116e83..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13527.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ArchieBeepBoop" -delete-after: True -changes: - - rscadd: "Upgraded Advanced RTG Machine Preset" diff --git a/html/changelogs/AutoChangeLog-pr-13528.yml b/html/changelogs/AutoChangeLog-pr-13528.yml deleted file mode 100644 index b7bd0d4618..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13528.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - balance: "Robotic Limbs now each have their own damage threshhold values" - - balance: "Robotic Limb damage threshholds are now seperated into threshhold itself and mindamage when passed -balance; Hybrid limbs can now be injected with hypos, but not sprayed (Still not healed by chems)" - - tweak: "Brain surgery has been tweaked back to allowing robotic limbs, blacklisting IPC brains instead." - - tweak: "Robot brain surgery can now be used on organic heads, if there is a IPC brain in them somehow." - - tweak: "The robot limb heal surgery can now be used even if the target's torso is not robotic, as long as they have robotic limbs" - - refactor: "BODYPART_ROBOTIC / BODYPART_ORGANIC checks replaced with helper-procs whereever possible." - - code_imp: "Added a BODYPART_HYBRID define for robotic bodyparts that behave organic in some regards." diff --git a/html/changelogs/AutoChangeLog-pr-13529.yml b/html/changelogs/AutoChangeLog-pr-13529.yml deleted file mode 100644 index 54f775b5c8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13529.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "Planetary atmos no longer does superconduction." diff --git a/html/changelogs/AutoChangeLog-pr-13530.yml b/html/changelogs/AutoChangeLog-pr-13530.yml deleted file mode 100644 index b99ed1c545..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13530.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscadd: "Clowns now have unpredictable effects on supermatter crystals when dusting from contact." diff --git a/html/changelogs/AutoChangeLog-pr-13531.yml b/html/changelogs/AutoChangeLog-pr-13531.yml deleted file mode 100644 index 3c138ef98d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13531.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "A certain lizard (totally not me) being stupid is no longer going to break regenerate_bodyparts" diff --git a/html/changelogs/AutoChangeLog-pr-13533.yml b/html/changelogs/AutoChangeLog-pr-13533.yml deleted file mode 100644 index 1ba14c689c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13533.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - rscadd: "A new recipe for a spicy has been given to us by a strange business man." diff --git a/html/changelogs/AutoChangeLog-pr-13535.yml b/html/changelogs/AutoChangeLog-pr-13535.yml deleted file mode 100644 index b020587eb8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13535.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscadd: "Energy sabre reskin for the energy sword - access via alt-click." - - bugfix: "Alt-click reskins are fixed." - - tweak: "Defibrillators and their many, many overlays were moved to another .dmi." - - tweak: "You can now change the color of an energy sword via multitool. Not deswords. Yet." diff --git a/html/changelogs/AutoChangeLog-pr-13539.yml b/html/changelogs/AutoChangeLog-pr-13539.yml deleted file mode 100644 index a1f3df4fd0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13539.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscdel: "removes two debug messages left in from my prior eye customization pr" diff --git a/html/changelogs/AutoChangeLog-pr-13540.yml b/html/changelogs/AutoChangeLog-pr-13540.yml deleted file mode 100644 index 0d7d9b8d2c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13540.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "ArcaneMusic, The0bserver-sys" -delete-after: True -changes: - - rscadd: "New from Hydrowear LLC: The Botanical Belt! This handy yellow belt lets you hold most of your botany gear, and a few beakers for reduced bag and floor clutter!" - - tweak: "Gives Hydrotrays plumbing pipes automatically, allowing you to make a self sustaining tray via plumbing." - - tweak: "Gives Service access to Bluespace Beakers, at last, gives Cargo, Science, and Medical the ability to construct reinforced plungers for use on lavaland." diff --git a/html/changelogs/AutoChangeLog-pr-13543.yml b/html/changelogs/AutoChangeLog-pr-13543.yml deleted file mode 100644 index be2cb215c9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13543.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - rscadd: "The legion megafauna has been reworked. The fight should now be both slightly harder and faster." - - balance: "You can no longer cheese the colossus by being a sand golem and simply being immune." diff --git a/html/changelogs/AutoChangeLog-pr-13544.yml b/html/changelogs/AutoChangeLog-pr-13544.yml deleted file mode 100644 index 61cf99090d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13544.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Portals no longer runtime because of incorrect args." diff --git a/html/changelogs/AutoChangeLog-pr-13547.yml b/html/changelogs/AutoChangeLog-pr-13547.yml deleted file mode 100644 index 0355a871d1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13547.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - rscadd: "secsheath for your cool stunsword at your local security vendor. you gotta hack it first though." diff --git a/html/changelogs/AutoChangeLog-pr-13549.yml b/html/changelogs/AutoChangeLog-pr-13549.yml deleted file mode 100644 index 5d46fbcb6c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13549.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - bugfix: "Fixes cloning computer UI not updating when pressing certain buttons - also adds extra check for names to update a message" diff --git a/html/changelogs/AutoChangeLog-pr-13552.yml b/html/changelogs/AutoChangeLog-pr-13552.yml deleted file mode 100644 index 1504d1d3a0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13552.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Multi-surgery unit test no longer fails at random." diff --git a/html/changelogs/AutoChangeLog-pr-13553.yml b/html/changelogs/AutoChangeLog-pr-13553.yml deleted file mode 100644 index 2759fa2754..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13553.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "eye sprites should look normal once more" diff --git a/html/changelogs/AutoChangeLog-pr-13554.yml b/html/changelogs/AutoChangeLog-pr-13554.yml deleted file mode 100644 index 3a14adff37..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13554.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Vynzill" -delete-after: True -changes: - - bugfix: "fixes high luminosity eyes" diff --git a/html/changelogs/AutoChangeLog-pr-13558.yml b/html/changelogs/AutoChangeLog-pr-13558.yml deleted file mode 100644 index 2a5b2dc576..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13558.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Zandario" -delete-after: True -changes: - - bugfix: "lum slime sprites work again" - - code_imp: "Slapped the Species Defines where relevant" diff --git a/html/changelogs/AutoChangeLog-pr-13561.yml b/html/changelogs/AutoChangeLog-pr-13561.yml deleted file mode 100644 index 097336bc3b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13561.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Your target cryoing will no longer give you a free greentext." diff --git a/html/changelogs/AutoChangeLog-pr-13562.yml b/html/changelogs/AutoChangeLog-pr-13562.yml deleted file mode 100644 index 7fabc05c7b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13562.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Vampire shapeshifting should now behave as intended" diff --git a/html/changelogs/AutoChangeLog-pr-13563.yml b/html/changelogs/AutoChangeLog-pr-13563.yml deleted file mode 100644 index c4c9b68c39..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13563.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "cloning now correctly copies your blood colour, body sprite type and eye type" diff --git a/html/changelogs/AutoChangeLog-pr-13566.yml b/html/changelogs/AutoChangeLog-pr-13566.yml deleted file mode 100644 index 14ee8755a9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13566.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - bugfix: "legion now drops chests" diff --git a/html/changelogs/AutoChangeLog-pr-13567.yml b/html/changelogs/AutoChangeLog-pr-13567.yml deleted file mode 100644 index d51db8e3b8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13567.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "changeling stings retract upon turning into a slime puddle" - - tweak: "you cannot transform into a slime puddle with a no drop item in your hands" - - tweak: "slime puddles are now transparent and their colour looks more natural in comparison to the user" - - tweak: "slime puddles are now even slower" - - tweak: "slime puddles now get no protection from worn clothing" diff --git a/html/changelogs/AutoChangeLog-pr-13570.yml b/html/changelogs/AutoChangeLog-pr-13570.yml deleted file mode 100644 index 6a4fb6af66..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13570.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Fixed a runtime in every healing nanite program." diff --git a/html/changelogs/AutoChangeLog-pr-13571.yml b/html/changelogs/AutoChangeLog-pr-13571.yml deleted file mode 100644 index 864967dffc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13571.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - bugfix: "Code improvement on ventcrawling" diff --git a/html/changelogs/AutoChangeLog-pr-13573.yml b/html/changelogs/AutoChangeLog-pr-13573.yml deleted file mode 100644 index 9bac0ce44d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13573.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "removed a unit test causing master to fail" diff --git a/html/changelogs/AutoChangeLog-pr-13575.yml b/html/changelogs/AutoChangeLog-pr-13575.yml deleted file mode 100644 index 164581b11f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13575.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - bugfix: "Fixed the subtle hotkey being weird with its input prompts." - - rscadd: "Adds a subtler anti-ghost hotkey. Default key is 6." diff --git a/html/changelogs/AutoChangeLog-pr-13576.yml b/html/changelogs/AutoChangeLog-pr-13576.yml deleted file mode 100644 index 9443b13dcb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13576.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Sonic121x" -delete-after: True -changes: - - rscadd: "digi sprite uniform" - - bugfix: "digi leg suit" diff --git a/html/changelogs/AutoChangeLog-pr-13577.yml b/html/changelogs/AutoChangeLog-pr-13577.yml deleted file mode 100644 index 7463a3ad39..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13577.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Chemical stuff now displays fermichem stuff properly" diff --git a/html/changelogs/AutoChangeLog-pr-13581.yml b/html/changelogs/AutoChangeLog-pr-13581.yml deleted file mode 100644 index 42db54450b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13581.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Ghommie, porting PRs by MMMiracles and pireamaineach, credits to BlueWildrose too." -delete-after: True -changes: - - rscadd: "You can now draw on plasmaman helmets with a crayon to turn their frown upside-down." - - balance: "Plasmaman helmets no longer hide your identity when worn by themselves." - - balance: "Plasmaman helmets now have welding visors, which can't stack with their torches in the helmet and are visible." diff --git a/html/changelogs/AutoChangeLog-pr-13582.yml b/html/changelogs/AutoChangeLog-pr-13582.yml deleted file mode 100644 index 78f8be1cd0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13582.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "a tonne of fixes to colourisation of parts, too many to name, including some sprite fixes" - - rscadd: "things now have their own individual primary/(secondary)/(tertiary) colours as required, and these can be modified by you" diff --git a/html/changelogs/AutoChangeLog-pr-13585.yml b/html/changelogs/AutoChangeLog-pr-13585.yml deleted file mode 100644 index 0369e0827f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13585.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - bugfix: "Fixed species-specific drinks not giving a mood boost if you are that species." diff --git a/html/changelogs/AutoChangeLog-pr-13586.yml b/html/changelogs/AutoChangeLog-pr-13586.yml deleted file mode 100644 index 5f61b1dc54..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13586.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "KeRSedChaplain" -delete-after: True -changes: - - imageadd: "Resprited the brass claw" diff --git a/html/changelogs/AutoChangeLog-pr-13587.yml b/html/changelogs/AutoChangeLog-pr-13587.yml deleted file mode 100644 index ea3f4c5efa..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13587.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Detective-Google" -delete-after: True -changes: - - tweak: "the snow taxi is no longer the slow taxi" diff --git a/html/changelogs/AutoChangeLog-pr-13588.yml b/html/changelogs/AutoChangeLog-pr-13588.yml deleted file mode 100644 index 7ab9d67bab..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13588.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Delams-The-SM" -delete-after: True -changes: - - rscadd: "Added 3 new emotes *hiss *purr *meow" - - soundadd: "ported sounds from Citadel RP for *purr and *meow" diff --git a/html/changelogs/AutoChangeLog-pr-13589.yml b/html/changelogs/AutoChangeLog-pr-13589.yml deleted file mode 100644 index 877012914e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13589.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "autosurgeons from travelling trader rewards now only have one use" diff --git a/html/changelogs/AutoChangeLog-pr-13592.yml b/html/changelogs/AutoChangeLog-pr-13592.yml deleted file mode 100644 index 76e12e8c89..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13592.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - rscadd: "Stat panel UI for ranked choice votes" diff --git a/html/changelogs/AutoChangeLog-pr-13593.yml b/html/changelogs/AutoChangeLog-pr-13593.yml deleted file mode 100644 index 08310f6013..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13593.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - code_imp: "Vote system #defines are now strings" diff --git a/html/changelogs/AutoChangeLog-pr-13598.yml b/html/changelogs/AutoChangeLog-pr-13598.yml deleted file mode 100644 index 7bef81fa1a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13598.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - bugfix: "Fixes hijack implant APC UI, again" diff --git a/html/changelogs/AutoChangeLog-pr-13599.yml b/html/changelogs/AutoChangeLog-pr-13599.yml deleted file mode 100644 index 3deea2b2be..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13599.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Delams-The-SM" -delete-after: True -changes: - - bugfix: "fixed randomization of colors for things like mulligan and Stabilized green slime extract for matrixed body parts" diff --git a/html/changelogs/AutoChangeLog-pr-13601.yml b/html/changelogs/AutoChangeLog-pr-13601.yml deleted file mode 100644 index 0cfb64b48b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13601.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "antag items are now of critical importance and wont fail to be placed on the character" diff --git a/html/changelogs/AutoChangeLog-pr-13602.yml b/html/changelogs/AutoChangeLog-pr-13602.yml deleted file mode 100644 index 24185b1792..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13602.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - rscadd: "A fallback for dynamic antag rolling that allows for it to just try between traitor, blood brothers, heretics, changeling, bloodsucker and devil until there are enough roundstart antags. This can also happen randomly anyway. Blood brothers and devil are disabled for now, but the code is there to enable them." - - rscadd: "A new storyteller, \"Grab Bag\", that forces the above round type." diff --git a/html/changelogs/AutoChangeLog-pr-13603.yml b/html/changelogs/AutoChangeLog-pr-13603.yml deleted file mode 100644 index 4fcff30da0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13603.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "kappa-sama" -delete-after: True -changes: - - tweak: "ishotgun crafting recipe no longer requires plasteel and is slightly more convenient" - - balance: "ishotgun does 45 damage now instead of 40.5" diff --git a/html/changelogs/AutoChangeLog-pr-13604.yml b/html/changelogs/AutoChangeLog-pr-13604.yml deleted file mode 100644 index 2ac141215b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13604.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - balance: "Brass welders are 50% faster at refueling" - - code_imp: "redoes self fueling welders in the code to be less speggie" diff --git a/html/changelogs/AutoChangeLog-pr-13605.yml b/html/changelogs/AutoChangeLog-pr-13605.yml deleted file mode 100644 index 707de17870..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13605.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - rscadd: "the corporate unifoms can now be gotton in the clothing mate vender" diff --git a/html/changelogs/AutoChangeLog-pr-13606.yml b/html/changelogs/AutoChangeLog-pr-13606.yml deleted file mode 100644 index 568f8cf7e6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13606.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "adminhelping no longer removes entire admin tab" - - bugfix: "end of round no longer removes entire admin tab" diff --git a/html/changelogs/AutoChangeLog-pr-13607.yml b/html/changelogs/AutoChangeLog-pr-13607.yml deleted file mode 100644 index 0ed47b1d44..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13607.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "polychromic maid outfit" diff --git a/html/changelogs/AutoChangeLog-pr-13608.yml b/html/changelogs/AutoChangeLog-pr-13608.yml deleted file mode 100644 index b7c0201cab..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13608.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SpaceManiac" -delete-after: True -changes: - - bugfix: "Fixed the maphook" diff --git a/html/changelogs/AutoChangeLog-pr-13610.yml b/html/changelogs/AutoChangeLog-pr-13610.yml deleted file mode 100644 index a3ca8e6f78..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13610.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "atmos subsystem no longer dies if there's too many gases" diff --git a/html/changelogs/AutoChangeLog-pr-13611.yml b/html/changelogs/AutoChangeLog-pr-13611.yml deleted file mode 100644 index d7e6e8f9a1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13611.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - rscadd: "Adds a space loop to every map in toxins" diff --git a/html/changelogs/AutoChangeLog-pr-13612.yml b/html/changelogs/AutoChangeLog-pr-13612.yml deleted file mode 100644 index 9a67ec5aa3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13612.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - rscadd: "Expanded space hermit base" diff --git a/html/changelogs/AutoChangeLog-pr-13616.yml b/html/changelogs/AutoChangeLog-pr-13616.yml deleted file mode 100644 index 3032d0331f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13616.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "You can access the mime / clown mask skins radial menu once again." diff --git a/html/changelogs/AutoChangeLog-pr-13617.yml b/html/changelogs/AutoChangeLog-pr-13617.yml deleted file mode 100644 index 532882eecc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13617.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "loadout now has save slot support and colour choosing/saving for polychromic items" diff --git a/html/changelogs/AutoChangeLog-pr-13618.yml b/html/changelogs/AutoChangeLog-pr-13618.yml deleted file mode 100644 index b301c39e6b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13618.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Vynzill" -delete-after: True -changes: - - rscadd: "new gateway mission -mapadd: jungleresort map" diff --git a/html/changelogs/AutoChangeLog-pr-13626.yml b/html/changelogs/AutoChangeLog-pr-13626.yml deleted file mode 100644 index fa5331e005..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13626.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - balance: "MEGAFAUNA DROPS ARE LAVAPROOF" diff --git a/html/changelogs/AutoChangeLog-pr-13627.yml b/html/changelogs/AutoChangeLog-pr-13627.yml deleted file mode 100644 index 087cbde3ae..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13627.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Dice bags no longer act like cardboard boxes." - - bugfix: "Abductors should be no longer mute." - - bugfix: "Item action buttons should now properly show the item current overlays, most times." - - bugfix: "The blackbox should now go into your hand slot when pried out, rather than tumbling on the ground everytime." - - tweak: "The Quick Equip hotkey is now usable by all living mobs (so long they have hands and equipment slots)" diff --git a/html/changelogs/AutoChangeLog-pr-13629.yml b/html/changelogs/AutoChangeLog-pr-13629.yml deleted file mode 100644 index 954f6972ec..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13629.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscdel: "anomalies no longer spawn in walls" diff --git a/html/changelogs/AutoChangeLog-pr-13630.yml b/html/changelogs/AutoChangeLog-pr-13630.yml deleted file mode 100644 index f7e80aaf9e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13630.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "you can now customize your size from 90% to 130%, going below 100% makes you have 10 less max health" diff --git a/html/changelogs/AutoChangeLog-pr-13632.yml b/html/changelogs/AutoChangeLog-pr-13632.yml deleted file mode 100644 index bf478ec97c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13632.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "time for memory loss message to show up when being revived is now correctly 300 seconds, instead of 30" diff --git a/html/changelogs/AutoChangeLog-pr-13633.yml b/html/changelogs/AutoChangeLog-pr-13633.yml deleted file mode 100644 index d9246cfff6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13633.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ArchieBeepBoop" -delete-after: True -changes: - - bugfix: "Outlet Injector Mapping Asset Layer Fix" diff --git a/html/changelogs/AutoChangeLog-pr-13635.yml b/html/changelogs/AutoChangeLog-pr-13635.yml deleted file mode 100644 index 21730d4cf5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13635.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - balance: "The bone gauntlets should be slightly less murderously punchy on the fast punches mode." diff --git a/html/changelogs/AutoChangeLog-pr-13636.yml b/html/changelogs/AutoChangeLog-pr-13636.yml deleted file mode 100644 index 75124f759f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13636.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SiliconMain" -delete-after: True -changes: - - tweak: "Engi department has gas masks in loadout" diff --git a/html/changelogs/AutoChangeLog-pr-13639.yml b/html/changelogs/AutoChangeLog-pr-13639.yml deleted file mode 100644 index a511d0a909..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13639.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - tweak: "ASP 9mm and M1911 can now have suppressers added" diff --git a/html/changelogs/AutoChangeLog-pr-13641.yml b/html/changelogs/AutoChangeLog-pr-13641.yml deleted file mode 100644 index b0c429da75..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13641.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - balance: "Nerf combat knife damage" diff --git a/html/changelogs/AutoChangeLog-pr-13644.yml b/html/changelogs/AutoChangeLog-pr-13644.yml deleted file mode 100644 index 71417788a7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13644.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - balance: "Biomechanical (hybrid) bodyparts now have access to wound-fixing surgeries." - - tweak: "A wound being fixed no longer just qdel()s surgeries connected to it." - - tweak: "Some robotic surgery steps are now a bit more clear." - - bugfix: "Organs no longer get fed to people after successfully being inserted into them." - - tweak: "Not completing the do_after of a surgery no longer causes you to attack the target with whatever you were holding." diff --git a/html/changelogs/AutoChangeLog-pr-13647.yml b/html/changelogs/AutoChangeLog-pr-13647.yml deleted file mode 100644 index b3211ee759..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13647.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - bugfix: "jacqueline spawns on boxstation" diff --git a/html/changelogs/AutoChangeLog-pr-13648.yml b/html/changelogs/AutoChangeLog-pr-13648.yml deleted file mode 100644 index 4148230385..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13648.yml +++ /dev/null @@ -1,13 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "The 'Your body is in a cloner' notification works again" - - bugfix: "Hijack implants should work properly again (or, at least better)" - - bugfix: "Liches are now good skeletons again instead of weak ones" - - bugfix: "The piratepad control cannot be destroyed again." - - bugfix: "Pirates have received new supplies of jetpacks instead of useless oxygen tanks" - - bugfix: "Ratvarian AIs are once again able to show their linked borgs Ratvar's light" - - bugfix: "Hijackers are once again unable to detonate borgs without being adjacent to the console" - - bugfix: "Automated annoucement systems and gulag ore consoles no longer waste emag charges" - - bugfix: "Automated announcement systems once again can be remote controlled by non-AIs with silicon access" - - bugfix: "APCs being hijacked multiple times at once is no longer possible, preventing some issues" diff --git a/html/changelogs/AutoChangeLog-pr-13653.yml b/html/changelogs/AutoChangeLog-pr-13653.yml deleted file mode 100644 index 2f920da353..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13653.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Minor fixes to kilo" diff --git a/html/changelogs/AutoChangeLog-pr-13654.yml b/html/changelogs/AutoChangeLog-pr-13654.yml deleted file mode 100644 index cb67c6e6be..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13654.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ArchieBeepBoop" -delete-after: True -changes: - - bugfix: "Jacqueen and the Christmas tree should no longer spawn abstract things that can cause shittons of runtimes." diff --git a/html/changelogs/AutoChangeLog-pr-13655.yml b/html/changelogs/AutoChangeLog-pr-13655.yml deleted file mode 100644 index 6e48c84054..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13655.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "fixes held items proccing crossed when passing someone" diff --git a/html/changelogs/AutoChangeLog-pr-13656.yml b/html/changelogs/AutoChangeLog-pr-13656.yml deleted file mode 100644 index 017f0d99c2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13656.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - admin: "Canceling events gives more time to stop from 10 to 30" diff --git a/html/changelogs/AutoChangeLog-pr-13657.yml b/html/changelogs/AutoChangeLog-pr-13657.yml deleted file mode 100644 index 6f445f6b71..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13657.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "The transmission sigil power drain works now" diff --git a/html/changelogs/AutoChangeLog-pr-13658.yml b/html/changelogs/AutoChangeLog-pr-13658.yml deleted file mode 100644 index 09b22d38ad..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13658.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Scripture no longer sometimes eats part of its invocation." - - balance: "APCs and silicons are now more susceptible to powerdrains (by the power_drain() proc, which is rare)" - - balance: "Void Volt has been modified from a chant to a singular pulse." diff --git a/html/changelogs/AutoChangeLog-pr-13659.yml b/html/changelogs/AutoChangeLog-pr-13659.yml deleted file mode 100644 index 85eee3b78d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13659.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "the load away mission verb won't crash the server now" diff --git a/html/changelogs/AutoChangeLog-pr-13661.yml b/html/changelogs/AutoChangeLog-pr-13661.yml deleted file mode 100644 index 81b5a735dc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13661.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "added in-game age verification as an alternative to access requests" diff --git a/html/changelogs/AutoChangeLog-pr-13662.yml b/html/changelogs/AutoChangeLog-pr-13662.yml deleted file mode 100644 index 6ac16937d8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13662.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscadd: "you can now be an angel using a magic mirror again" diff --git a/html/changelogs/AutoChangeLog-pr-13669.yml b/html/changelogs/AutoChangeLog-pr-13669.yml deleted file mode 100644 index c682500501..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13669.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - tweak: "Being sacrificed by the cult no longer removes all hope of rescue." diff --git a/html/changelogs/AutoChangeLog-pr-13670.yml b/html/changelogs/AutoChangeLog-pr-13670.yml deleted file mode 100644 index 594e459d5a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13670.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - tweak: "Floor bots are now buildable with all toolboxes." diff --git a/html/changelogs/AutoChangeLog-pr-13671.yml b/html/changelogs/AutoChangeLog-pr-13671.yml deleted file mode 100644 index 855028d9ed..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13671.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - code_imp: "Clockwork rites now support hiding specific rites from neutered servants." diff --git a/html/changelogs/AutoChangeLog-pr-13673.yml b/html/changelogs/AutoChangeLog-pr-13673.yml deleted file mode 100644 index 40b45d80f4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13673.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - bugfix: "Makes construct mind returning more robust" diff --git a/html/changelogs/AutoChangeLog-pr-13674.yml b/html/changelogs/AutoChangeLog-pr-13674.yml deleted file mode 100644 index ccbd96aeb4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13674.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "The borg VTEC ability now actually gets removed when the upgrade is removed." diff --git a/html/changelogs/AutoChangeLog-pr-13675.yml b/html/changelogs/AutoChangeLog-pr-13675.yml deleted file mode 100644 index d46d4490d3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13675.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Sleeper UI interactiveness now behaves correctly." diff --git a/html/changelogs/AutoChangeLog-pr-13676.yml b/html/changelogs/AutoChangeLog-pr-13676.yml deleted file mode 100644 index d584af38dc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13676.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Fixes a minor incorrectness in ratvarian borg slabs (ratvar_act -> ui_act)" diff --git a/html/changelogs/AutoChangeLog-pr-13678.yml b/html/changelogs/AutoChangeLog-pr-13678.yml deleted file mode 100644 index 261ecc3475..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13678.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - code_imp: "Comments out spaceman dmm do not sleeps for mob/proc/CommonClickOn, atom/proc/attack_hand, datum/proc/keyLoop and mob/living/proc/Life" diff --git a/html/changelogs/AutoChangeLog-pr-13679.yml b/html/changelogs/AutoChangeLog-pr-13679.yml deleted file mode 100644 index 37b9d287b0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13679.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - rscadd: "Robots (anyone with the robotic_organism trait) have toxins damage replaced with system corruption. See the PR for details." diff --git a/html/changelogs/AutoChangeLog-pr-13680.yml b/html/changelogs/AutoChangeLog-pr-13680.yml deleted file mode 100644 index a1e58ac3a5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13680.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "A runtime caused by hallucinations is gone." diff --git a/html/changelogs/AutoChangeLog-pr-13681.yml b/html/changelogs/AutoChangeLog-pr-13681.yml deleted file mode 100644 index c51a7b51b0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13681.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Supplypods shouldn't cause runtimes anymore, and shrapnel (pelletclouds) should work for them." diff --git a/html/changelogs/AutoChangeLog-pr-13682.yml b/html/changelogs/AutoChangeLog-pr-13682.yml deleted file mode 100644 index e5fececf4e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13682.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "EmeraldSundisk" -delete-after: True -changes: - - bugfix: "Changes the area designations to be not varedited since the code didn't like that anymore" - - bugfix: "The cargo bay conveyor belts not only work with the shuttle now but go in the right direction to boot" - - tweak: "Slight visual adjustments to cargo in light of this" - - rscadd: "The arcade's got RAD carpet now" diff --git a/html/changelogs/AutoChangeLog-pr-13683.yml b/html/changelogs/AutoChangeLog-pr-13683.yml deleted file mode 100644 index da7ecab5c6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13683.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SandPoot" -delete-after: True -changes: - - code_imp: "Swaps the gift static blacklist with a global list one." diff --git a/html/changelogs/AutoChangeLog-pr-13685.yml b/html/changelogs/AutoChangeLog-pr-13685.yml deleted file mode 100644 index 10d53c9065..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13685.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "uomo91" -delete-after: True -changes: - - bugfix: "Fixed \"Show All\" tab in player panel logs being broken." - - bugfix: "Whispers, OOC, and various other things display differently in logs, visually distinguishing them from say logs." - - refactor: "Player panel logs will now show all logs chronologically, so you'll see commingled say and attack logs if you're on the \"Show All\" tab, etc..." diff --git a/html/changelogs/AutoChangeLog-pr-13686.yml b/html/changelogs/AutoChangeLog-pr-13686.yml deleted file mode 100644 index 72f9a2bd54..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13686.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - bugfix: "Hopefully fixes whitescreen issues for TGUI UI's by giving assets more time to get to the client" diff --git a/html/changelogs/AutoChangeLog-pr-13687.yml b/html/changelogs/AutoChangeLog-pr-13687.yml deleted file mode 100644 index e2baddbd2a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13687.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscadd: "tailed individuals can now target groin to intertwine tails on grab intent." diff --git a/html/changelogs/AutoChangeLog-pr-13688.yml b/html/changelogs/AutoChangeLog-pr-13688.yml deleted file mode 100644 index 4013705549..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13688.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Repeatable surgery steps can no longer cause an infinite loop if not completing the do_after" diff --git a/html/changelogs/AutoChangeLog-pr-13689.yml b/html/changelogs/AutoChangeLog-pr-13689.yml deleted file mode 100644 index eb476895e7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13689.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Recharging APCs no longer use 0.2% of the power they should be using." - - bugfix: "APCs no longer always use as much power as they can for their cell, even if it is full." diff --git a/html/changelogs/AutoChangeLog-pr-13694.yml b/html/changelogs/AutoChangeLog-pr-13694.yml deleted file mode 100644 index 75a4bbb549..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13694.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Acer202, with minor help from The0bserver" -delete-after: True -changes: - - rscadd: "After internal deliberation, CentCom has decided to run a limited reinstatement of public mining shuttles for use in more tried and true station classes. CentCom would like to remind you that this privilege is easily revoked, and that abuse may result in immediate detonation." - - rscadd: "Restores the mining shuttle on Pubby, Box, Delta, Meta, and Lambda Station." diff --git a/html/changelogs/AutoChangeLog-pr-13695.yml b/html/changelogs/AutoChangeLog-pr-13695.yml deleted file mode 100644 index 551d1f4df5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13695.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - balance: "Lings now have infinite space for DNA." diff --git a/html/changelogs/AutoChangeLog-pr-13697.yml b/html/changelogs/AutoChangeLog-pr-13697.yml deleted file mode 100644 index 329a621c48..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13697.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - balance: "Spontaneous brain trauma now requires minimum 5 players" diff --git a/html/changelogs/AutoChangeLog-pr-13698.yml b/html/changelogs/AutoChangeLog-pr-13698.yml deleted file mode 100644 index 10072ba948..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13698.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "you can rebind communication hotkeys and they're the default now" diff --git a/html/changelogs/AutoChangeLog-pr-13699.yml b/html/changelogs/AutoChangeLog-pr-13699.yml deleted file mode 100644 index 5b2234224e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13699.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "nanite resistances tweaked" - - rscadd: "new nanite programs added for locking the user out from being modified by consoles or antivirals." diff --git a/html/changelogs/AutoChangeLog-pr-13702.yml b/html/changelogs/AutoChangeLog-pr-13702.yml deleted file mode 100644 index 24f79c7cda..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13702.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "gear harness no longer magically covers up the body mechanically despite covering up nothing visually" diff --git a/html/changelogs/AutoChangeLog-pr-13703.yml b/html/changelogs/AutoChangeLog-pr-13703.yml deleted file mode 100644 index fd3ba2198f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13703.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Dynamic vote no longer shows the none-storyteller." diff --git a/html/changelogs/AutoChangeLog-pr-13704.yml b/html/changelogs/AutoChangeLog-pr-13704.yml deleted file mode 100644 index 0ef8ca4a1d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13704.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Emotes can properly be filtered for in TGUI." diff --git a/html/changelogs/AutoChangeLog-pr-13705.yml b/html/changelogs/AutoChangeLog-pr-13705.yml deleted file mode 100644 index c1b366aeb7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13705.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - balance: "Rad collectors now get 1.25x as much energy from radiation" - - balance: "Rad collectors now put out 1.25x as much stored energy per tick" - - balance: "Above two rad collector changes give a total 56.25% power output increase" diff --git a/html/changelogs/AutoChangeLog-pr-13707.yml b/html/changelogs/AutoChangeLog-pr-13707.yml deleted file mode 100644 index a7dd977cca..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13707.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - balance: "Robotpeople are now fully immune to the effects of alcohol (drunkness etc.)" - - tweak: "Renames the alcohol intolerance trait in the code to make what it does more clear." diff --git a/html/changelogs/AutoChangeLog-pr-13711.yml b/html/changelogs/AutoChangeLog-pr-13711.yml deleted file mode 100644 index e6fde23e8c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13711.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - tweak: "Medibots now ignore people they cannot help due to their biology." - - bugfix: "get_damaged_bodyparts() is no longer broken." diff --git a/html/changelogs/AutoChangeLog-pr-13713.yml b/html/changelogs/AutoChangeLog-pr-13713.yml deleted file mode 100644 index 36228f10c5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13713.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "all gas masks (but welding + glass) can be alt clicked to show/hide identity" diff --git a/html/changelogs/AutoChangeLog-pr-13715.yml b/html/changelogs/AutoChangeLog-pr-13715.yml deleted file mode 100644 index 70b22a9bc9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13715.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Removes an opposum from the wall" diff --git a/html/changelogs/AutoChangeLog-pr-13717.yml b/html/changelogs/AutoChangeLog-pr-13717.yml deleted file mode 100644 index 268730c58e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13717.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Acer202" -delete-after: True -changes: - - bugfix: "Main mining shuttle should no longer look at the public mining shuttle and attempt to dock ontop of it. Monastery shuttle should now function again." diff --git a/html/changelogs/AutoChangeLog-pr-13719.yml b/html/changelogs/AutoChangeLog-pr-13719.yml deleted file mode 100644 index c676072a35..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13719.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - rscadd: "Construction bags have been added, use them to carry all sorts of construction bits." - - rscadd: "A recipe has been added to cloth stacks to make material and construction bags." - - balance: "Material bags and construction bags are now available in engineering lockers." diff --git a/html/changelogs/AutoChangeLog-pr-13721.yml b/html/changelogs/AutoChangeLog-pr-13721.yml deleted file mode 100644 index 44b3c7283c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13721.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Increased christmas event from 22th to 27th to 10th to 27th" diff --git a/html/changelogs/AutoChangeLog-pr-13725.yml b/html/changelogs/AutoChangeLog-pr-13725.yml deleted file mode 100644 index 5105de865e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13725.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - bugfix: "keybinds generate anti-collision bindings where necessary automatically now" diff --git a/html/changelogs/AutoChangeLog-pr-13733.yml b/html/changelogs/AutoChangeLog-pr-13733.yml deleted file mode 100644 index a10719fdc6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13733.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Fixes the tail entwine messages displaying incorrectly." diff --git a/html/changelogs/AutoChangeLog-pr-13734.yml b/html/changelogs/AutoChangeLog-pr-13734.yml deleted file mode 100644 index a4ea9fdfac..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13734.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - bugfix: "Fixes Reflective Blobs" diff --git a/html/changelogs/AutoChangeLog-pr-13736.yml b/html/changelogs/AutoChangeLog-pr-13736.yml deleted file mode 100644 index dfa5e7cb66..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13736.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - tweak: "Abductors now can use experimental organ replacement surgery on robots / synthetics." diff --git a/html/changelogs/AutoChangeLog-pr-13737.yml b/html/changelogs/AutoChangeLog-pr-13737.yml deleted file mode 100644 index 6c1121256f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13737.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "qwertyquerty" -delete-after: True -changes: - - bugfix: "Flash the screen on climax" diff --git a/html/changelogs/AutoChangeLog-pr-13738.yml b/html/changelogs/AutoChangeLog-pr-13738.yml deleted file mode 100644 index f34f9d505a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13738.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "EdgeLordExe, MoonFalcon" -delete-after: True -changes: - - balance: "Ported a bunch of heretic-related tweaks and changes from tg" diff --git a/html/changelogs/AutoChangeLog-pr-13739.yml b/html/changelogs/AutoChangeLog-pr-13739.yml deleted file mode 100644 index 6db29bf922..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13739.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "custom eyes and tongues now properly carry across cloning" diff --git a/html/changelogs/AutoChangeLog-pr-13740.yml b/html/changelogs/AutoChangeLog-pr-13740.yml deleted file mode 100644 index 2bbd9b877a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13740.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Linzolle" -delete-after: True -changes: - - bugfix: "lizard snouts are no longer *slightly* lighter than they are supposed to be." diff --git a/html/changelogs/AutoChangeLog-pr-13741.yml b/html/changelogs/AutoChangeLog-pr-13741.yml deleted file mode 100644 index c49015ab28..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13741.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Objectives are no longer very broken." diff --git a/html/changelogs/AutoChangeLog-pr-13743.yml b/html/changelogs/AutoChangeLog-pr-13743.yml deleted file mode 100644 index 00ff1a55bd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13743.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Linzolle" -delete-after: True -changes: - - bugfix: "entertainment monitors no longer invisible" - - rscadd: "entertainment monitors now light up and display text when motion is detected in thunderdome" diff --git a/html/changelogs/AutoChangeLog-pr-13745.yml b/html/changelogs/AutoChangeLog-pr-13745.yml deleted file mode 100644 index af6cb787b6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13745.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - bugfix: "Handles more edge cases with construct soul returning" diff --git a/html/changelogs/AutoChangeLog-pr-13746.yml b/html/changelogs/AutoChangeLog-pr-13746.yml deleted file mode 100644 index 73c7ab4058..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13746.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - rscadd: "Adds more room to northwest maint" - - rscadd: "Adds a bridge between Atmos and the Turbine." diff --git a/html/changelogs/AutoChangeLog-pr-13747.yml b/html/changelogs/AutoChangeLog-pr-13747.yml deleted file mode 100644 index f8b6111c08..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13747.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - rscadd: "" - - tweak: "Added the ability for cargo to buy a large welding tank" - - imageadd: "Tweaked large tank reagent sprites to /tg/'s" diff --git a/html/changelogs/AutoChangeLog-pr-13750.yml b/html/changelogs/AutoChangeLog-pr-13750.yml deleted file mode 100644 index a89abdd440..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13750.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "EmeraldSundisk" -delete-after: True -changes: - - bugfix: "Fixes the conveyor belt issues in Delta Station's cargo wing" - - rscdel: "Removes some of the dirt around the affected area (presumably they would have cleaned it up while working on it)" - - rscadd: "Adds a floor light to fix the \"dark spot\" cargo had" diff --git a/html/changelogs/AutoChangeLog-pr-13751.yml b/html/changelogs/AutoChangeLog-pr-13751.yml deleted file mode 100644 index 2d8c964a14..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13751.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "text formatting now uses one character instead of two around the text to emphasize." diff --git a/html/changelogs/AutoChangeLog-pr-13752.yml b/html/changelogs/AutoChangeLog-pr-13752.yml deleted file mode 100644 index 2175ed469b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13752.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - balance: "stamina crit is only removed when at or under 100 stamina, rather than 140. stamina crit threshold is still at 140." diff --git a/html/changelogs/AutoChangeLog-pr-13753.yml b/html/changelogs/AutoChangeLog-pr-13753.yml deleted file mode 100644 index e752df79a0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13753.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - balance: "shoving yourself up now costs 50% more" diff --git a/html/changelogs/AutoChangeLog-pr-13755.yml b/html/changelogs/AutoChangeLog-pr-13755.yml deleted file mode 100644 index e50cd0199f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13755.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscadd: "colormates" diff --git a/html/changelogs/AutoChangeLog-pr-13757.yml b/html/changelogs/AutoChangeLog-pr-13757.yml deleted file mode 100644 index a36e67943e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13757.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "improvements to the automatic age gate" diff --git a/html/changelogs/AutoChangeLog-pr-13758.yml b/html/changelogs/AutoChangeLog-pr-13758.yml deleted file mode 100644 index fc4adc1614..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13758.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "custom holoforms are now accessible through an action instead of through verbs" - - tweak: "AI holoforms can now emote" diff --git a/html/changelogs/AutoChangeLog-pr-13761.yml b/html/changelogs/AutoChangeLog-pr-13761.yml deleted file mode 100644 index c8ab365fe3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13761.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - balance: "dna melt drops all items being destroying you" diff --git a/html/changelogs/AutoChangeLog-pr-13762.yml b/html/changelogs/AutoChangeLog-pr-13762.yml deleted file mode 100644 index 841e4d91c0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13762.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "luxury shuttle no longer has noteleport" diff --git a/html/changelogs/AutoChangeLog-pr-13763.yml b/html/changelogs/AutoChangeLog-pr-13763.yml deleted file mode 100644 index 68eeaf1022..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13763.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - tweak: "RPEDs now drop their lowest part tier first when quick-emptied (used inhand)." diff --git a/html/changelogs/AutoChangeLog-pr-13764.yml b/html/changelogs/AutoChangeLog-pr-13764.yml deleted file mode 100644 index 514705fd78..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13764.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - tweak: "Exosuits sold on the Supply shuttle no longer leave wreckages." diff --git a/html/changelogs/AutoChangeLog-pr-13765.yml b/html/changelogs/AutoChangeLog-pr-13765.yml deleted file mode 100644 index 7ca1695d0f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13765.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Updated jukebox sprite." diff --git a/html/changelogs/AutoChangeLog-pr-13766.yml b/html/changelogs/AutoChangeLog-pr-13766.yml deleted file mode 100644 index 8ba317afed..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13766.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Updates our dark gygax sprites to /tg/'s" diff --git a/html/changelogs/AutoChangeLog-pr-13767.yml b/html/changelogs/AutoChangeLog-pr-13767.yml deleted file mode 100644 index 2d38af77e3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13767.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Updated meat icons" diff --git a/html/changelogs/AutoChangeLog-pr-13769.yml b/html/changelogs/AutoChangeLog-pr-13769.yml deleted file mode 100644 index 04d1cbc11c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13769.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - rscadd: "Adds a goose bar sign" diff --git a/html/changelogs/AutoChangeLog-pr-13771.yml b/html/changelogs/AutoChangeLog-pr-13771.yml deleted file mode 100644 index e450508681..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13771.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Donut boxes show what's inside of them now" diff --git a/html/changelogs/AutoChangeLog-pr-13772.yml b/html/changelogs/AutoChangeLog-pr-13772.yml deleted file mode 100644 index 109360cace..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13772.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscadd: "players can now respawn/return to lobby as a ghost after a 15 minute (default) delay and rejoin on another character with some/many restrictions" - - rscadd: "cryo now preserves everything" diff --git a/html/changelogs/AutoChangeLog-pr-13773.yml b/html/changelogs/AutoChangeLog-pr-13773.yml deleted file mode 100644 index 498ac42561..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13773.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Trilbyspaceclone" -delete-after: True -changes: - - tweak: "Zeolites now use gold rather then uranium for catalyst" - - tweak: "Zeolites are not as hard to make ph wise" - - tweak: "Making Zeolites heats up the beaker less allowing for better control" diff --git a/html/changelogs/AutoChangeLog-pr-13774.yml b/html/changelogs/AutoChangeLog-pr-13774.yml deleted file mode 100644 index ea3af475f2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13774.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - rscadd: "Re-adds the Clown Car to the clown uplink" - - balance: "15 >16 TC cost" - - balance: "bonks on external airlocks" diff --git a/html/changelogs/AutoChangeLog-pr-13776.yml b/html/changelogs/AutoChangeLog-pr-13776.yml deleted file mode 100644 index 773aae9745..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13776.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - tweak: "AIs now only have to kill people once instead of permanently." diff --git a/html/changelogs/AutoChangeLog-pr-13777.yml b/html/changelogs/AutoChangeLog-pr-13777.yml deleted file mode 100644 index 0013a93ef5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13777.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "The Grinch" -delete-after: True -changes: - - rscdel: "infinite presents from hilbert hotel" diff --git a/html/changelogs/AutoChangeLog-pr-13784.yml b/html/changelogs/AutoChangeLog-pr-13784.yml deleted file mode 100644 index df8cf7ad57..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13784.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - bugfix: "Effects can no longer trigger landmines" diff --git a/html/changelogs/AutoChangeLog-pr-13785.yml b/html/changelogs/AutoChangeLog-pr-13785.yml deleted file mode 100644 index 973fb3f74e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13785.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "Grab bag works as advertised." - - balance: "Xeno threat in dynamic tripled." diff --git a/html/changelogs/AutoChangeLog-pr-13790.yml b/html/changelogs/AutoChangeLog-pr-13790.yml deleted file mode 100644 index 45ebf00ee7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13790.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Replaced engineering fuel tank with a large fuel tank" - - tweak: "Changed access to sec suit storage from armory access in every map to other security access" diff --git a/html/changelogs/AutoChangeLog-pr-13796.yml b/html/changelogs/AutoChangeLog-pr-13796.yml deleted file mode 100644 index 827cbf7443..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13796.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - rscadd: "Adds a reduced stamina buffer for SCarp users" - - rscadd: "Gives SCarp users a better parry" - - rscadd: "Adds the SCarp bundle which includes a bo staff" - - rscadd: "Lets Carp costumes carry Bo Staffs" - - balance: "reduces the stamina damage of scarp slightly" - - balance: "reduced the blockchance of the bo staff" diff --git a/html/changelogs/AutoChangeLog-pr-13799.yml b/html/changelogs/AutoChangeLog-pr-13799.yml deleted file mode 100644 index 4f8168aa45..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13799.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - bugfix: "ninja gloves no longer hardstun" - - balance: "ninja gloves now cost half as much to use to compensate" diff --git a/html/changelogs/AutoChangeLog-pr-13801.yml b/html/changelogs/AutoChangeLog-pr-13801.yml deleted file mode 100644 index e33b6f4056..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13801.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "SandPoot" -delete-after: True -changes: - - refactor: "Changes the limb grower a lot." - - bugfix: "\"Limb\" costs on limbgrower are actually displayed like it was meant to all along." diff --git a/html/changelogs/AutoChangeLog-pr-13803.yml b/html/changelogs/AutoChangeLog-pr-13803.yml deleted file mode 100644 index 68791ea87a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13803.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - balance: "The traitor AI can no longer activate the doomsday device while carded." diff --git a/html/changelogs/AutoChangeLog-pr-13804.yml b/html/changelogs/AutoChangeLog-pr-13804.yml deleted file mode 100644 index 6b6d56dc5c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13804.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "circuits get pin data proc is sanitized when text is returned as data" diff --git a/html/changelogs/AutoChangeLog-pr-13808.yml b/html/changelogs/AutoChangeLog-pr-13808.yml deleted file mode 100644 index fc97da6161..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13808.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "You can now exit polycircuit input" - - bugfix: "Polycircuits now check for range" diff --git a/html/changelogs/AutoChangeLog-pr-13809.yml b/html/changelogs/AutoChangeLog-pr-13809.yml deleted file mode 100644 index d63ee33ff1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13809.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "Gear harness now covers nothing." diff --git a/html/changelogs/AutoChangeLog-pr-13811.yml b/html/changelogs/AutoChangeLog-pr-13811.yml deleted file mode 100644 index da2691d8f5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13811.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlackMajor" -delete-after: True -changes: - - tweak: "Cyborg hypospray no longer injects if it means OD'ing while on help intent." diff --git a/html/changelogs/AutoChangeLog-pr-13813.yml b/html/changelogs/AutoChangeLog-pr-13813.yml deleted file mode 100644 index ce283eb788..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13813.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "command headsets are 120% instead of 160%" - - bugfix: "no more emote italics" diff --git a/html/changelogs/AutoChangeLog-pr-13814.yml b/html/changelogs/AutoChangeLog-pr-13814.yml deleted file mode 100644 index 9bd0be5ac0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13814.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xantholne" -delete-after: True -changes: - - bugfix: "Twin Sword Sheaths have an equipment icon and icon when worn now and make a sound when sheathed/unsheathed" diff --git a/html/changelogs/AutoChangeLog-pr-13815.yml b/html/changelogs/AutoChangeLog-pr-13815.yml deleted file mode 100644 index 630ca9d7f7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13815.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Yakumo Chen" -delete-after: True -changes: - - balance: "Slime Jelly is no longer obtainable from slimepeople. Go ask Xenobio" diff --git a/html/changelogs/AutoChangeLog-pr-13819.yml b/html/changelogs/AutoChangeLog-pr-13819.yml deleted file mode 100644 index 77b1ec9a3d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13819.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - bugfix: "The survival dagger light on the sprite now actually turns on and off." - - balance: "The survival dagger in the glaive kit that can also be bought by itself is now better at butchering things." diff --git a/html/changelogs/AutoChangeLog-pr-13822.yml b/html/changelogs/AutoChangeLog-pr-13822.yml deleted file mode 100644 index 743bdb500b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13822.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Bloodcult stunhands now work against clockies like they were supposed to instead of hardstunning." diff --git a/html/changelogs/AutoChangeLog-pr-13823.yml b/html/changelogs/AutoChangeLog-pr-13823.yml deleted file mode 100644 index 35d70339f7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13823.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Christmas starts on the 18th now" diff --git a/html/changelogs/AutoChangeLog-pr-13825.yml b/html/changelogs/AutoChangeLog-pr-13825.yml deleted file mode 100644 index ae82c1cd8e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13825.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "raspy-on-osu" -delete-after: True -changes: - - tweak: "windoor open length" diff --git a/html/changelogs/AutoChangeLog-pr-13826.yml b/html/changelogs/AutoChangeLog-pr-13826.yml deleted file mode 100644 index 959dc738b1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13826.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "LetterN" -delete-after: True -changes: - - rscadd: "Coin & Holochip support for slot machine" - - admin: "Stickybans are now saved in the DB too" - - soundadd: "Immersive ™ audio reverbs. (also adds multiz audio)" - - code_imp: "Semi-hardsync from TG" - - code_imp: "Updates rust-g" - - code_imp: "Uses git CI instead of travis/appveyor now" diff --git a/html/changelogs/AutoChangeLog-pr-13828.yml b/html/changelogs/AutoChangeLog-pr-13828.yml deleted file mode 100644 index 282b8a01e0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13828.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "you can now only entwine tails with people who have a tail" diff --git a/html/changelogs/AutoChangeLog-pr-13830.yml b/html/changelogs/AutoChangeLog-pr-13830.yml deleted file mode 100644 index c126670246..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13830.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "apids render now" diff --git a/html/changelogs/AutoChangeLog-pr-13832.yml b/html/changelogs/AutoChangeLog-pr-13832.yml deleted file mode 100644 index 756edb7657..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13832.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - bugfix: "Bloodsuckers tresspass ability can no longer work while they are not awake." diff --git a/html/changelogs/AutoChangeLog-pr-13833.yml b/html/changelogs/AutoChangeLog-pr-13833.yml deleted file mode 100644 index 8312c7a5a3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13833.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kiwedespars" -delete-after: True -changes: - - balance: "balanced bone gauntlets." diff --git a/html/changelogs/AutoChangeLog-pr-13834.yml b/html/changelogs/AutoChangeLog-pr-13834.yml deleted file mode 100644 index 46cedff5d5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13834.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - rscadd: "Traitor assistants can now purchase the patented POGBox! Put TC into it for even higher damage!" diff --git a/html/changelogs/AutoChangeLog-pr-13835.yml b/html/changelogs/AutoChangeLog-pr-13835.yml deleted file mode 100644 index 0ac90921c3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13835.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscadd: "pugilists can now parry" diff --git a/html/changelogs/AutoChangeLog-pr-13837.yml b/html/changelogs/AutoChangeLog-pr-13837.yml deleted file mode 100644 index eda0b77a83..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13837.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "anyone new to the server is lucky enough to have their sprint default to toggle instead of hold" diff --git a/html/changelogs/AutoChangeLog-pr-13838.yml b/html/changelogs/AutoChangeLog-pr-13838.yml deleted file mode 100644 index deff5913b3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13838.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - bugfix: "things in DEATHCOMA do not deathgasp on death" diff --git a/html/changelogs/AutoChangeLog-pr-13844.yml b/html/changelogs/AutoChangeLog-pr-13844.yml deleted file mode 100644 index cd1f7a25d4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13844.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - bugfix: "Fixes the mint machine's UI" diff --git a/html/changelogs/AutoChangeLog-pr-13845.yml b/html/changelogs/AutoChangeLog-pr-13845.yml deleted file mode 100644 index d10485ae9f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13845.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - bugfix: "dullahans enabled" diff --git a/html/changelogs/AutoChangeLog-pr-13846.yml b/html/changelogs/AutoChangeLog-pr-13846.yml deleted file mode 100644 index 68e013acf0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13846.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - balance: "Fleshmend, Anatomic Panacea and bloodsucker healing now work for Synths / IPCs." diff --git a/html/changelogs/AutoChangeLog-pr-13850.yml b/html/changelogs/AutoChangeLog-pr-13850.yml deleted file mode 100644 index 64c47ade40..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13850.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Self-fueling weldingtools recharge fuel properly again." - - bugfix: "Brass welders now actually recharge faster than experimental ones." diff --git a/html/changelogs/AutoChangeLog-pr-13855.yml b/html/changelogs/AutoChangeLog-pr-13855.yml deleted file mode 100644 index 0eed195acd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13855.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Chiirno" -delete-after: True -changes: - - rscadd: "Paramedics office and Surgery Storage Room" - - tweak: "Remodeled the surgery room, as well as shrunk Morgue and Starboard Emergency Storage. -Fiddled with some areas for better map edit clarity and fixed one runtime in Vacant Office A." - - imageadd: "Added the paramedic closet sprite, a paramedic colored medical3 closet." - - code_imp: "Added a paramedic closet, which is the standard medical3 closet with their suit, a pinpointer, and a crew monitor added." diff --git a/html/changelogs/AutoChangeLog-pr-13856.yml b/html/changelogs/AutoChangeLog-pr-13856.yml deleted file mode 100644 index 583fb38cc2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13856.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "gear harness alt-click is now sane" - - code_imp: "rolldown() and toggle_jumpsuit_adjust() now no longer mix behavior-that-should-be-overridden and behavior-that-shouldn't-be-overridden in ways that make no sense." diff --git a/html/changelogs/AutoChangeLog-pr-13859.yml b/html/changelogs/AutoChangeLog-pr-13859.yml deleted file mode 100644 index 2d6dc5c25a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13859.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "adds unlockable loadout items, corresponding category in loadouts, etc" diff --git a/html/changelogs/AutoChangeLog-pr-13867.yml b/html/changelogs/AutoChangeLog-pr-13867.yml deleted file mode 100644 index dd1e44e64c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13867.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - balance: "Zeolites now only generate 1/5 the heat when reacting and don't require a catalyst." diff --git a/html/changelogs/AutoChangeLog-pr-13869.yml b/html/changelogs/AutoChangeLog-pr-13869.yml deleted file mode 100644 index 5d4ca4817c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13869.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "slime puddles are no longer layered down one layer" - - tweak: "you cannot tackle with two paralysed arms" - - tweak: "tackling with a single paralysed arm lowers your tackle roll by 2" diff --git a/html/changelogs/AutoChangeLog-pr-13870.yml b/html/changelogs/AutoChangeLog-pr-13870.yml deleted file mode 100644 index 820c524224..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13870.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - bugfix: "Magrifle ammo no longer glows." diff --git a/html/changelogs/AutoChangeLog-pr-13871.yml b/html/changelogs/AutoChangeLog-pr-13871.yml deleted file mode 100644 index f667abe816..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13871.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "NT Cleaning Crews On Break" -delete-after: True -changes: - - rscadd: "Most kinds of dirt, grime, and debris are now persistent. Get to work, jannies." - - rscadd: "Dirt can now be removed by tile replacements. Other cleanable decals can't, though." diff --git a/html/changelogs/AutoChangeLog-pr-13873.yml b/html/changelogs/AutoChangeLog-pr-13873.yml deleted file mode 100644 index 320a5b69a4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13873.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - tweak: "Nyctophobia quirk now has some light lag compensation." diff --git a/html/changelogs/AutoChangeLog-pr-13881.yml b/html/changelogs/AutoChangeLog-pr-13881.yml deleted file mode 100644 index 0ad2d3afc8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13881.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - rscadd: "PubbyStation now has two Christmas Tree spawners." diff --git a/html/changelogs/AutoChangeLog-pr-13882.yml b/html/changelogs/AutoChangeLog-pr-13882.yml deleted file mode 100644 index fe545bdc23..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13882.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ERP mains" -delete-after: True -changes: - - rscadd: "Subtler Around Table is now a verb" diff --git a/html/changelogs/AutoChangeLog-pr-13883.yml b/html/changelogs/AutoChangeLog-pr-13883.yml deleted file mode 100644 index 884adafffe..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13883.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscadd: "set-pose has been added" - - tweak: "temporary flavor text renamed to set pose, fully visible in examine" diff --git a/html/changelogs/AutoChangeLog-pr-13884.yml b/html/changelogs/AutoChangeLog-pr-13884.yml deleted file mode 100644 index f2b9233690..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13884.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscadd: "The dock-silver standard set by Box and Meta has been enforced across maps in rotation (Delta, Pubby, Lambda)." - - bugfix: "The Box whiteship now has its missing tiny fan back." diff --git a/html/changelogs/AutoChangeLog-pr-13885.yml b/html/changelogs/AutoChangeLog-pr-13885.yml deleted file mode 100644 index 88c23d30f1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13885.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "raspy-on-osu" -delete-after: True -changes: - - tweak: "space heater heating range and power" diff --git a/html/changelogs/AutoChangeLog-pr-13887.yml b/html/changelogs/AutoChangeLog-pr-13887.yml deleted file mode 100644 index 83069a4e64..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13887.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "HeroWithYay" -delete-after: True -changes: - - bugfix: "Changed description of Necrotizing Fasciitis symptom." diff --git a/html/changelogs/AutoChangeLog-pr-13892.yml b/html/changelogs/AutoChangeLog-pr-13892.yml deleted file mode 100644 index 976b395826..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13892.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - balance: "changeling combat mutations rebalanced. most of them take chemicals to upkeep now." diff --git a/html/changelogs/AutoChangeLog-pr-13893.yml b/html/changelogs/AutoChangeLog-pr-13893.yml deleted file mode 100644 index 9eb7a3f79d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13893.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "Meth and changeling adrenals no longer ignore all slowdowns, rather damage slowdowns." diff --git a/html/changelogs/AutoChangeLog-pr-13894.yml b/html/changelogs/AutoChangeLog-pr-13894.yml deleted file mode 100644 index 31e1e66328..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13894.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - tweak: "temperature slowdown divisor nerfed to 35 from 20." diff --git a/html/changelogs/AutoChangeLog-pr-13896.yml b/html/changelogs/AutoChangeLog-pr-13896.yml deleted file mode 100644 index f733efa09d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13896.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Sonic121x" -delete-after: True -changes: - - rscadd: "alarm ert hardsuit sprite for naga and canine" - - tweak: "adjust the naga ert hardsuit to cover the hand" - - bugfix: "cydonia hardsuit helmet" diff --git a/html/changelogs/AutoChangeLog-pr-13897.yml b/html/changelogs/AutoChangeLog-pr-13897.yml deleted file mode 100644 index 05637b0908..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13897.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - bugfix: "Allows Energy Bola to be caught" - - balance: "This also allows them to be dropped/picked up." diff --git a/html/changelogs/AutoChangeLog-pr-13898.yml b/html/changelogs/AutoChangeLog-pr-13898.yml deleted file mode 100644 index cb4e0fd52d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13898.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - balance: "Regen coma now puts into a coma even from crit or while unconscious." - - bugfix: "Regen coma now properly weakens while asleep." diff --git a/html/changelogs/AutoChangeLog-pr-13900.yml b/html/changelogs/AutoChangeLog-pr-13900.yml deleted file mode 100644 index a25c8af1ed..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13900.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xantholne" -delete-after: True -changes: - - rscadd: "New parrots from the RP server, can be found in Bird Crate in Cargo" diff --git a/html/changelogs/AutoChangeLog-pr-13902.yml b/html/changelogs/AutoChangeLog-pr-13902.yml deleted file mode 100644 index ca548d816f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13902.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "avian/digitigrade legs have been added for slimes" diff --git a/html/changelogs/AutoChangeLog-pr-13903.yml b/html/changelogs/AutoChangeLog-pr-13903.yml deleted file mode 100644 index fd66c4b0c6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13903.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Changelings no longer double-deathgasp when activating the regen stasis ability while not dead." diff --git a/html/changelogs/AutoChangeLog-pr-13904.yml b/html/changelogs/AutoChangeLog-pr-13904.yml deleted file mode 100644 index 90f7d77e17..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13904.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - tweak: "Instant summons can no longer do wacky stuff with disposals (and nukes)." diff --git a/html/changelogs/AutoChangeLog-pr-13905.yml b/html/changelogs/AutoChangeLog-pr-13905.yml deleted file mode 100644 index 16b464bc20..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13905.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - imageadd: "cool codex cicatrix inhands" diff --git a/html/changelogs/AutoChangeLog-pr-13909.yml b/html/changelogs/AutoChangeLog-pr-13909.yml deleted file mode 100644 index e4f0f1e401..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13909.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - rscadd: "Twitch Plays: Clown Car" diff --git a/html/changelogs/AutoChangeLog-pr-13911.yml b/html/changelogs/AutoChangeLog-pr-13911.yml deleted file mode 100644 index 9e96103b2b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13911.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "raspy-on-osu" -delete-after: True -changes: - - spellcheck: "salicylic acid" diff --git a/html/changelogs/AutoChangeLog-pr-13913.yml b/html/changelogs/AutoChangeLog-pr-13913.yml deleted file mode 100644 index a25e054a6f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13913.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - bugfix: "Fixes the parry data for scarp" diff --git a/html/changelogs/AutoChangeLog-pr-13914.yml b/html/changelogs/AutoChangeLog-pr-13914.yml deleted file mode 100644 index b9efe2a893..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13914.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "EmeraldSundisk" -delete-after: True -changes: - - rscadd: "Adds a few new area designations primarily for CogStation, incorporates them into said map" - - tweak: "Reorganizes some area designations for ease of use, along with renaming the central \"Router\" to \"Routing Depot\"" - - bugfix: "Fixes an incorrectly designated area in CogStation" diff --git a/html/changelogs/AutoChangeLog-pr-13915.yml b/html/changelogs/AutoChangeLog-pr-13915.yml deleted file mode 100644 index 2853dcb9ad..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13915.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xantholne" -delete-after: True -changes: - - bugfix: "Fixed new birds changing back to basic parrot when sitting" diff --git a/html/changelogs/AutoChangeLog-pr-13916.yml b/html/changelogs/AutoChangeLog-pr-13916.yml deleted file mode 100644 index 0ec04707a5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13916.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "re-adds the holoform verb for people who want to use it over going through the char list" diff --git a/html/changelogs/AutoChangeLog-pr-13917.yml b/html/changelogs/AutoChangeLog-pr-13917.yml deleted file mode 100644 index 5eabd640f7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13917.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "*squeak" diff --git a/html/changelogs/AutoChangeLog-pr-13924.yml b/html/changelogs/AutoChangeLog-pr-13924.yml deleted file mode 100644 index 71092c567d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13924.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SandPoot" -delete-after: True -changes: - - tweak: "You can attack a pile of money on the floor with your id to put it all in quickly." diff --git a/html/changelogs/AutoChangeLog-pr-13926.yml b/html/changelogs/AutoChangeLog-pr-13926.yml deleted file mode 100644 index 4e92bacdb4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13926.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - rscdel: "Removes the screen flashing on climax." diff --git a/html/changelogs/AutoChangeLog-pr-13930.yml b/html/changelogs/AutoChangeLog-pr-13930.yml deleted file mode 100644 index 282f3fa30a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13930.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Small fixes on security on boxstation" diff --git a/html/changelogs/AutoChangeLog-pr-13931.yml b/html/changelogs/AutoChangeLog-pr-13931.yml deleted file mode 100644 index fd903f2d6e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13931.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - rscadd: "Adds the disposable sentry gun from tg for 11tc each." diff --git a/html/changelogs/AutoChangeLog-pr-13932.yml b/html/changelogs/AutoChangeLog-pr-13932.yml deleted file mode 100644 index 955d9f5741..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13932.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - tweak: "Xenomorph powers now list plasma cost in their description." diff --git a/html/changelogs/AutoChangeLog-pr-13934.yml b/html/changelogs/AutoChangeLog-pr-13934.yml deleted file mode 100644 index 74f8ece6fc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13934.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - rscadd: "The bluespace navigation gigabeacon design has been added to shuttle research for those wanting to take their ships around space more." diff --git a/html/changelogs/AutoChangeLog-pr-13936.yml b/html/changelogs/AutoChangeLog-pr-13936.yml deleted file mode 100644 index 9b15d2232a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13936.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - bugfix: "Polychromic hoodies that were obtained from the loadout have functional colorable hoods now." diff --git a/html/changelogs/AutoChangeLog-pr-13938.yml b/html/changelogs/AutoChangeLog-pr-13938.yml deleted file mode 100644 index 34d76a190b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13938.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "anthromorphic synth species" diff --git a/html/changelogs/AutoChangeLog-pr-13940.yml b/html/changelogs/AutoChangeLog-pr-13940.yml deleted file mode 100644 index 60cbcc9a19..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13940.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Chiirno" -delete-after: True -changes: - - rscadd: "Added the paramedics EVA suit as a purchase from the cargo console." diff --git a/html/changelogs/AutoChangeLog-pr-13941.yml b/html/changelogs/AutoChangeLog-pr-13941.yml deleted file mode 100644 index 5a72376ebb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13941.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Chiirno" -delete-after: True -changes: - - bugfix: "Portable Chem Mixer now researchable from biotech node." diff --git a/html/changelogs/AutoChangeLog-pr-13943.yml b/html/changelogs/AutoChangeLog-pr-13943.yml deleted file mode 100644 index 405d6b0d93..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13943.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - spellcheck: "Utility uniforms now comply with the \"nonproper equipment names\" thing." - - bugfix: "The CapDrobe now allows the captain to get his own clothes for free. Probably." - - tweak: "All captains' clothes now offer 15 woundarmor, up from the 5. Because apparently only the suit and tie and its suitskirt subtype have this wound armor, which is dumb." diff --git a/html/changelogs/AutoChangeLog-pr-13945.yml b/html/changelogs/AutoChangeLog-pr-13945.yml deleted file mode 100644 index 91b8bb9498..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13945.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - rscadd: "IPC cells & power cords are now printable after they are researched." diff --git a/html/changelogs/AutoChangeLog-pr-13946.yml b/html/changelogs/AutoChangeLog-pr-13946.yml deleted file mode 100644 index d7f3e15024..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13946.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ryll/Shaps" -delete-after: True -changes: - - admin: "Fixed an issue with player logs becoming confused when someone triggers multiple events within one second (like being attacked by two people at the same time) that would cause holes in the logs" diff --git a/html/changelogs/AutoChangeLog-pr-13947.yml b/html/changelogs/AutoChangeLog-pr-13947.yml deleted file mode 100644 index 0388efc701..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13947.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Chiirno" -delete-after: True -changes: - - tweak: "Chem masters can now dispense 20 instances of its outputs instead of 10." diff --git a/html/changelogs/AutoChangeLog-pr-13948.yml b/html/changelogs/AutoChangeLog-pr-13948.yml deleted file mode 100644 index 73c5ba6b1a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13948.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: "necromanceranne" -delete-after: True -changes: - - rscadd: "Bokken now come in two lengths; full and wakizashi, and two varieties: wood and ironwood. They have different stats for all four." - - rscadd: "Bokken require menu crafting and part construction, as well as more complicated materials." - - tweak: "Bokken (long and short) require wood, cloth and leather to craft with a hatchet and screwdriver." - - tweak: "Ironwood bokken (long and short) require ironcap logs, cloth and leather to craft with a hatchet, screwdriver and welder." - - balance: "Twin sheathes can only fit a pair of blades (longsword + shortsword) or they can fit two shortswords." - - bugfix: "Fixed a twin sheath runtime." - - imageadd: "A lot of bokken related sprites received an overhaul. Added overlay sprites for weapons sheathed in the twin sheathes." - - imageadd: "The extradimensional blade received improved sprites for inhands/back sprites." diff --git a/html/changelogs/AutoChangeLog-pr-13950.yml b/html/changelogs/AutoChangeLog-pr-13950.yml deleted file mode 100644 index 28affe7ebe..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13950.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "TripleShades" -delete-after: True -changes: - - rscadd: "New Paramedic Office next to Genetics where the old Genetics Reception used to be -change: Surgery, Surgery Observation, and Recovery Hall layout revamped drastically -change: Maints below Surgery lowered by one tile to recover lost tile space from Surgery expansion" diff --git a/html/changelogs/AutoChangeLog-pr-13951.yml b/html/changelogs/AutoChangeLog-pr-13951.yml deleted file mode 100644 index fe3ac84523..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13951.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - tweak: "You can now have a max-roundstart-dicksize-config inch long johnson before you start suffering blood loss and slowdowns instead of a 20 inch one." diff --git a/html/changelogs/AutoChangeLog-pr-13954.yml b/html/changelogs/AutoChangeLog-pr-13954.yml deleted file mode 100644 index a8751d66ca..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13954.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "EmeraldSundisk" -delete-after: True -changes: - - rscadd: "Adds a new \"Computer Core\" area designation for CogStation" - - bugfix: "Fixes some missing area strings" - - tweak: "Replaces some firelocks with directional ones as to ensure desks/counters can still be accessed" diff --git a/html/changelogs/AutoChangeLog-pr-13955.yml b/html/changelogs/AutoChangeLog-pr-13955.yml deleted file mode 100644 index 1d43dd6b95..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13955.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Chiirno" -delete-after: True -changes: - - tweak: "Nightmare now deals additional damage to most light sources." - - bugfix: "Nightmare now one-shots miners beacons and glowshrooms" diff --git a/html/changelogs/AutoChangeLog-pr-13959.yml b/html/changelogs/AutoChangeLog-pr-13959.yml deleted file mode 100644 index 1303768344..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13959.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "necromanceranne" -delete-after: True -changes: - - bugfix: "You can now make all the variants of the bokken." - - bugfix: "Removes a duplicate sprite." - - tweak: "Renames all instances of 'ironwood' to 'steelwood'." diff --git a/html/changelogs/AutoChangeLog-pr-13961.yml b/html/changelogs/AutoChangeLog-pr-13961.yml deleted file mode 100644 index f0a6cc267d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13961.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Removed the wires connecting the AI from the rest of the station on cogstation." - - tweak: "Fixes experimenter on cogstation." - - tweak: "Less pipes in the overall area in toxins on cogstation" diff --git a/html/changelogs/AutoChangeLog-pr-13963.yml b/html/changelogs/AutoChangeLog-pr-13963.yml deleted file mode 100644 index 8a1e923aa0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13963.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "necromanceranne" -delete-after: True -changes: - - rscadd: "Adds new roboticist labcoat sprites!" diff --git a/html/changelogs/AutoChangeLog-pr-13965.yml b/html/changelogs/AutoChangeLog-pr-13965.yml deleted file mode 100644 index 69f5a90122..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13965.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "Xantholne" -delete-after: True -changes: - - rscadd: "You can now tuck disky into bed" - - rscadd: "You can now make beds by applying a bed sheet to them" - - rscadd: "You can now tuck in pai cards into bed" - - rscadd: "Added bed tucking element, can be added to any held object to allow tucking into beds" diff --git a/html/changelogs/AutoChangeLog-pr-13967.yml b/html/changelogs/AutoChangeLog-pr-13967.yml deleted file mode 100644 index d2e580b531..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13967.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - balance: "Blob Resource Tower to 2 points per instead of 1 point per." - - balance: "Blob Factory Towers can be placed 5 tiles apart instead of 7." - - bugfix: "Fixes Blobbernaut Factories consuming Factories if no naut is chosen." diff --git a/html/changelogs/AutoChangeLog-pr-13968.yml b/html/changelogs/AutoChangeLog-pr-13968.yml deleted file mode 100644 index e3ce9e4615..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13968.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - tweak: "Prayers to admins now do a wee ding sound for all prayers, instead of just chaplains" diff --git a/html/changelogs/AutoChangeLog-pr-13970.yml b/html/changelogs/AutoChangeLog-pr-13970.yml deleted file mode 100644 index 54d8d9992d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13970.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "TripleShades" -delete-after: True -changes: - - rscadd: "Firelock to Surgery Bay drapes -change: Swapped Nanomed and Fire Alarm button locations in both Surgery Bays -change: Removes the double mirror in both Surgery Bays to be a singular mirror -change: Moved an intercom to not be doorstuck below Paramedical Office -remove: One Surgery Observation Fire Alarm button" diff --git a/html/changelogs/AutoChangeLog-pr-13972.yml b/html/changelogs/AutoChangeLog-pr-13972.yml deleted file mode 100644 index fdfdd4786d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13972.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Fixes maint area in boxstation" diff --git a/html/changelogs/AutoChangeLog-pr-13975.yml b/html/changelogs/AutoChangeLog-pr-13975.yml deleted file mode 100644 index ff643cd19c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13975.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - imageadd: "fuck the r*d cr*ss" diff --git a/html/changelogs/AutoChangeLog-pr-13976.yml b/html/changelogs/AutoChangeLog-pr-13976.yml deleted file mode 100644 index dac85f8e9a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13976.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "you can teleport bread" diff --git a/html/changelogs/AutoChangeLog-pr-13978.yml b/html/changelogs/AutoChangeLog-pr-13978.yml deleted file mode 100644 index 94c19edec4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13978.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - balance: "c4 can no longer gib mobs" diff --git a/html/changelogs/AutoChangeLog-pr-13980.yml b/html/changelogs/AutoChangeLog-pr-13980.yml deleted file mode 100644 index 6838ba48a2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13980.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - rscadd: "Makes gas sensors fireproof." diff --git a/html/changelogs/AutoChangeLog-pr-13983.yml b/html/changelogs/AutoChangeLog-pr-13983.yml deleted file mode 100644 index ba0bf62e6a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13983.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - rscadd: "Xenomorph hybrids can now select wings -~~add: Xenomorph hybrids can now speak xenomorph~~" - - rscadd: "Xenomorph tongues are available for customization." diff --git a/html/changelogs/AutoChangeLog-pr-13988.yml b/html/changelogs/AutoChangeLog-pr-13988.yml deleted file mode 100644 index 262e5f804f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13988.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Cargo packs marked as 'no private buying' now actually register as such." diff --git a/html/changelogs/AutoChangeLog-pr-13993.yml b/html/changelogs/AutoChangeLog-pr-13993.yml deleted file mode 100644 index d99ed0e0d1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13993.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arturlang" -delete-after: True -changes: - - tweak: "The cursed heart now only takes away half as much blood every loop, and can be used as long as you are alive, instead if only you are awake/able to use your hands" diff --git a/html/changelogs/AutoChangeLog-pr-13995.yml b/html/changelogs/AutoChangeLog-pr-13995.yml deleted file mode 100644 index e58ee3103c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13995.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Attacking some certain objects no longer has no clickdelay." diff --git a/html/changelogs/AutoChangeLog-pr-13996.yml b/html/changelogs/AutoChangeLog-pr-13996.yml deleted file mode 100644 index 5bea075460..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13996.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Bugfix of a morph becoming an AI eye" diff --git a/html/changelogs/AutoChangeLog-pr-13997.yml b/html/changelogs/AutoChangeLog-pr-13997.yml deleted file mode 100644 index 354f66010a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13997.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Porting garbage collection tweak from /tg/" diff --git a/html/changelogs/AutoChangeLog-pr-14001.yml b/html/changelogs/AutoChangeLog-pr-14001.yml deleted file mode 100644 index 31c9e560ab..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14001.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Fixes two chairs on one table" diff --git a/html/changelogs/AutoChangeLog-pr-14005.yml b/html/changelogs/AutoChangeLog-pr-14005.yml deleted file mode 100644 index 253f4e137a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14005.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Loot items mobs drop are no longer always failing to initialize." diff --git a/html/changelogs/AutoChangeLog-pr-14006.yml b/html/changelogs/AutoChangeLog-pr-14006.yml deleted file mode 100644 index 519ad32752..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14006.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Cyborg B.o.r.i.s. installation now checks for if the chest has a cell, just like how it does with MMIs." diff --git a/html/changelogs/AutoChangeLog-pr-14007.yml b/html/changelogs/AutoChangeLog-pr-14007.yml deleted file mode 100644 index 498aa6b807..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14007.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Antagging / Deantagging Heretics now properly sets their special role." diff --git a/html/changelogs/AutoChangeLog-pr-14008.yml b/html/changelogs/AutoChangeLog-pr-14008.yml deleted file mode 100644 index 836eefd99a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14008.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheSpaghetti" -delete-after: True -changes: - - bugfix: "no more tumor bread double punctuation" diff --git a/html/changelogs/AutoChangeLog-pr-14009.yml b/html/changelogs/AutoChangeLog-pr-14009.yml deleted file mode 100644 index 03a1ca39dd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14009.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - rscadd: "Wings from Cit RP have been ported over" - - rscadd: "Moth wings from cit have been ported over" - - bugfix: "Cleaned up some pixels on existing moth wings." - - tweak: "Organized the lists for wings by if they are for moths or not and than by alphabetical." diff --git a/html/changelogs/AutoChangeLog-pr-14010.yml b/html/changelogs/AutoChangeLog-pr-14010.yml deleted file mode 100644 index 643f28dc99..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14010.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - rscadd: "The exofab can now print prosthetic limbs" - - bugfix: "The exofab was missing access to multiple cybernetic organs. This has now been rectified." diff --git a/html/changelogs/AutoChangeLog-pr-14014.yml b/html/changelogs/AutoChangeLog-pr-14014.yml deleted file mode 100644 index ac29b1567b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14014.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "necromanceranne" -delete-after: True -changes: - - bugfix: "Fixes various sprites for bokken, as well as being unable to craft certain parts and duplicate entries." diff --git a/html/changelogs/AutoChangeLog-pr-14015.yml b/html/changelogs/AutoChangeLog-pr-14015.yml deleted file mode 100644 index fe507d0a1e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14015.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - balance: "Some synth damage stuff has been a bit rebalanced, see the PR for details." diff --git a/html/changelogs/AutoChangeLog-pr-14016.yml b/html/changelogs/AutoChangeLog-pr-14016.yml deleted file mode 100644 index 1aab587190..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14016.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "disabling adminhelp noises no longer disables looc" diff --git a/html/changelogs/AutoChangeLog-pr-14019.yml b/html/changelogs/AutoChangeLog-pr-14019.yml deleted file mode 100644 index 37bdd52948..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14019.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "species with NOTRANSSTING cannot have envy's knife used on them" diff --git a/html/changelogs/AutoChangeLog-pr-14021.yml b/html/changelogs/AutoChangeLog-pr-14021.yml deleted file mode 100644 index aab94ae724..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14021.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Combat mode now will not stay permanently disabled due to status effects not working as intended." diff --git a/html/changelogs/AutoChangeLog-pr-14025.yml b/html/changelogs/AutoChangeLog-pr-14025.yml deleted file mode 100644 index 6db185baa3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14025.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - rscadd: "A new surgery, allowing revival of synths without a defib at hand." - - balance: "Semi-permanent damage of Synth limbs caused by passing the damage threshold: 10 <- 15." - - tweak: "The embed removal surgery now has a version for Synths." - - balance: "EMPs no longer hardstun Synths." diff --git a/html/changelogs/AutoChangeLog-pr-14026.yml b/html/changelogs/AutoChangeLog-pr-14026.yml deleted file mode 100644 index 1ae9cb5c28..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14026.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - bugfix: "Fixes noodle size appearance for 12+ inch members." diff --git a/html/changelogs/AutoChangeLog-pr-14029.yml b/html/changelogs/AutoChangeLog-pr-14029.yml deleted file mode 100644 index 2d4e0cdb17..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14029.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "HeroWithYay" -delete-after: True -changes: - - tweak: "Wormhole Projector and Gravity Gun now require anomaly cores to function instead of firing pins." diff --git a/html/changelogs/AutoChangeLog-pr-14030.yml b/html/changelogs/AutoChangeLog-pr-14030.yml deleted file mode 100644 index 9d4ee2647b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14030.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "Replaces majority judgement with usual judgement." diff --git a/html/changelogs/AutoChangeLog-pr-14032.yml b/html/changelogs/AutoChangeLog-pr-14032.yml deleted file mode 100644 index 67f0a80f83..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14032.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "kappa-sama" -delete-after: True -changes: - - rscadd: "A new spell for the wizard and his martial apprentices, the Inner Mantra technique. It makes you punch people really good and makes you durable, but drains your energy while it's active." - - rscadd: "A self-buffing spell for valiant bubblegum slayers that is ultimately useless on lavaland and probably overpowered for miner antagonists. Go figure. At least all it does is let you punch hard while draining your health every second." - - balance: "bubblegum now drops a book that makes you into an abusive father instead of a shotgun that plays like pre-nerf shotguns" - - soundadd: "a powerup and powerdown sound effect" - - imageadd: "two icons for two buff spells" diff --git a/html/changelogs/AutoChangeLog-pr-14033.yml b/html/changelogs/AutoChangeLog-pr-14033.yml deleted file mode 100644 index db6a6b0691..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14033.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - rscadd: "Color Mates have been added to all stations (except Snaxi). Enjoy coloring your attire without having to bug science!" diff --git a/html/changelogs/AutoChangeLog-pr-14034.yml b/html/changelogs/AutoChangeLog-pr-14034.yml deleted file mode 100644 index ecd0d4ca10..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14034.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Some edge cases causing issues with system corruption shouldn't be able to occur anymore." diff --git a/html/changelogs/AutoChangeLog-pr-14035.yml b/html/changelogs/AutoChangeLog-pr-14035.yml deleted file mode 100644 index b8690368a3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14035.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SiliconMain" -delete-after: True -changes: - - tweak: "hololocks (which haven't worked for god knows how long) commented out until auxmos is merged" diff --git a/html/changelogs/AutoChangeLog-pr-14036.yml b/html/changelogs/AutoChangeLog-pr-14036.yml deleted file mode 100644 index a2bb654233..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14036.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - tweak: "You will now only unbuckle fireman-carried/piggybacked people on disarm or harm intent." diff --git a/html/changelogs/AutoChangeLog-pr-14037.yml b/html/changelogs/AutoChangeLog-pr-14037.yml deleted file mode 100644 index b105b5e19a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14037.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - rscadd: "Nanogel, available at medical and robotics, which fixes internal damage in sufficiently repaired robotic limbs." diff --git a/html/changelogs/AutoChangeLog-pr-14038.yml b/html/changelogs/AutoChangeLog-pr-14038.yml deleted file mode 100644 index 906f6f7053..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14038.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscadd: "The nature interaction shuttle with the monkeys now has tiny fans on the airlocks in, because that's apparently a feature that was missing." - - rscadd: "More bags have been added to department vendors." - - balance: "Every roundstart species (and also ash walkers) now has flesh and bone that can be wounded." - - balance: "Recipes for sutures, regen mesh, and sterilized gauze have been adjusted to be easier, mostly." - - balance: "Sterilized gauze is better at absorbing blood and being a splint." - - bugfix: "Energy sabres now have an off inhand." diff --git a/html/changelogs/AutoChangeLog-pr-14039.yml b/html/changelogs/AutoChangeLog-pr-14039.yml deleted file mode 100644 index a799003a02..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14039.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscadd: "Basic sticky technology is now a roundstart tech. Advanced sticky technology is BEPIS-locked, though. Theoretically." diff --git a/html/changelogs/AutoChangeLog-pr-14040.yml b/html/changelogs/AutoChangeLog-pr-14040.yml deleted file mode 100644 index 6202f0b3e1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14040.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LetterN" -delete-after: True -changes: - - bugfix: "fixed telecomms pda log" diff --git a/html/changelogs/AutoChangeLog-pr-14042.yml b/html/changelogs/AutoChangeLog-pr-14042.yml deleted file mode 100644 index a924ff582f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14042.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kiwedespars" -delete-after: True -changes: - - rscadd: "the robust dildo weapon now has sound." diff --git a/html/changelogs/AutoChangeLog-pr-14043.yml b/html/changelogs/AutoChangeLog-pr-14043.yml deleted file mode 100644 index 03a347724f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14043.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "licking people washes pie off their face" diff --git a/html/changelogs/AutoChangeLog-pr-14044.yml b/html/changelogs/AutoChangeLog-pr-14044.yml deleted file mode 100644 index e19b6266a7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14044.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "corin9090" -delete-after: True -changes: - - tweak: "The chaplain's prayer beads can now be worn on your belt slot" diff --git a/html/changelogs/AutoChangeLog-pr-14048.yml b/html/changelogs/AutoChangeLog-pr-14048.yml deleted file mode 100644 index b7b1448b37..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14048.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Updates suit storage info on Tip Of the Round." diff --git a/html/changelogs/AutoChangeLog-pr-14054.yml b/html/changelogs/AutoChangeLog-pr-14054.yml deleted file mode 100644 index 406e6b2713..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14054.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "TheObserver" -delete-after: True -changes: - - rscadd: "Re-adds the rifle stock, and sets the improv shotgun to be as it was." - - rscdel: "The maintenance rifle has been shelved - for now. Watch this space." diff --git a/html/changelogs/AutoChangeLog-pr-14055.yml b/html/changelogs/AutoChangeLog-pr-14055.yml deleted file mode 100644 index 95baa857fa..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14055.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BlueWildrose" -delete-after: True -changes: - - tweak: "No more straining when your cock or breasts are growing via incubus draft or succubus milk." diff --git a/html/changelogs/AutoChangeLog-pr-14060.yml b/html/changelogs/AutoChangeLog-pr-14060.yml deleted file mode 100644 index f9750fc9be..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14060.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - rscdel: "Apparently, shrink rays were buyable again, despite a PR having been made a while ago specifically for removing shrink rays. They're gone again." diff --git a/html/changelogs/AutoChangeLog-pr-14061.yml b/html/changelogs/AutoChangeLog-pr-14061.yml deleted file mode 100644 index c10eded1df..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14061.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - tweak: "Improvised gauzes can now be crafted in stacks up to 10, like their maximum stacksize implies they should be capable of doing." - - bugfix: "Pouring sterilizine on gauze now takes the proper 5u per sterilized gauze instead of 10u." diff --git a/html/changelogs/AutoChangeLog-pr-14062.yml b/html/changelogs/AutoChangeLog-pr-14062.yml deleted file mode 100644 index 84e40850ec..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14062.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kappa-sama" -delete-after: True -changes: - - bugfix: "super saiyan" diff --git a/html/changelogs/AutoChangeLog-pr-14065.yml b/html/changelogs/AutoChangeLog-pr-14065.yml deleted file mode 100644 index 96a0a7cb3a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14065.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "A small bucket of random fixes," diff --git a/html/changelogs/AutoChangeLog-pr-14070.yml b/html/changelogs/AutoChangeLog-pr-14070.yml deleted file mode 100644 index f9a694c6ff..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14070.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "YakumoChen" -delete-after: True -changes: - - balance: "To lower production costs, Buzz Fuzz is now manufactured with Real™️ Synthetic honey." diff --git a/html/changelogs/AutoChangeLog-pr-14082.yml b/html/changelogs/AutoChangeLog-pr-14082.yml deleted file mode 100644 index c65f417894..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14082.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "kappa-sama" -delete-after: True -changes: - - rscadd: "s" - - tweak: "s" - - balance: "s" - - bugfix: "s" diff --git a/html/changelogs/AutoChangeLog-pr-14089.yml b/html/changelogs/AutoChangeLog-pr-14089.yml deleted file mode 100644 index 4a473d6fa7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14089.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - tweak: "Mining station oxygen locker on the cycling airlock starts out wrenched." diff --git a/html/changelogs/AutoChangeLog-pr-14256.yml b/html/changelogs/AutoChangeLog-pr-14256.yml new file mode 100644 index 0000000000..2515417160 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14256.yml @@ -0,0 +1,5 @@ +author: "Adelphon" +delete-after: True +changes: + - rscadd: "polychromic pants" + - tweak: "urban coat made polychromic" diff --git a/icons/effects/footprints.dmi b/icons/effects/footprints.dmi index 69207097c0..3e00a4a080 100644 Binary files a/icons/effects/footprints.dmi and b/icons/effects/footprints.dmi differ diff --git a/icons/mob/clothing/accessories.dmi b/icons/mob/clothing/accessories.dmi index 743ed03f48..3d1f58743c 100644 Binary files a/icons/mob/clothing/accessories.dmi and b/icons/mob/clothing/accessories.dmi differ diff --git a/icons/mob/clothing/custom_w.dmi b/icons/mob/clothing/custom_w.dmi index 10f7c5080a..440e5aefe6 100644 Binary files a/icons/mob/clothing/custom_w.dmi and b/icons/mob/clothing/custom_w.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 67d1849ef6..d93543805b 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/feet_digi.dmi b/icons/mob/clothing/feet_digi.dmi index f798850ee7..43244e99b9 100644 Binary files a/icons/mob/clothing/feet_digi.dmi and b/icons/mob/clothing/feet_digi.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index b95c377e12..406b0fe62a 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 4b0c56c4d2..23b981031c 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index ecc6e2dd2c..7d9433525a 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/mask_muzzled.dmi b/icons/mob/clothing/mask_muzzled.dmi index a1404cfbce..8ca05969bf 100644 Binary files a/icons/mob/clothing/mask_muzzled.dmi and b/icons/mob/clothing/mask_muzzled.dmi differ diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 084a2c3649..3214cc73ba 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 6098b8342a..dadb2ea963 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/suit_digi.dmi b/icons/mob/clothing/suit_digi.dmi index 5c361feb5f..f80cb4a426 100644 Binary files a/icons/mob/clothing/suit_digi.dmi and b/icons/mob/clothing/suit_digi.dmi differ diff --git a/icons/mob/clothing/underwear.dmi b/icons/mob/clothing/underwear.dmi index 8cf1144a68..71461e21e8 100644 Binary files a/icons/mob/clothing/underwear.dmi and b/icons/mob/clothing/underwear.dmi differ diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index 7bd7de82c7..325f04cede 100644 Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/mob/clothing/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi index 61c464ef1d..98ec436b86 100644 Binary files a/icons/mob/clothing/uniform_digi.dmi and b/icons/mob/clothing/uniform_digi.dmi differ diff --git a/icons/mob/hair.dmi b/icons/mob/hair.dmi index 6dfa78fcff..6ecaad55a5 100644 Binary files a/icons/mob/hair.dmi and b/icons/mob/hair.dmi differ diff --git a/icons/mob/inhands/64x64_lefthand.dmi b/icons/mob/inhands/64x64_lefthand.dmi index 6dc8d82753..95106e3dbf 100644 Binary files a/icons/mob/inhands/64x64_lefthand.dmi and b/icons/mob/inhands/64x64_lefthand.dmi differ diff --git a/icons/mob/inhands/64x64_righthand.dmi b/icons/mob/inhands/64x64_righthand.dmi index ca87f74a6f..2c1909108b 100644 Binary files a/icons/mob/inhands/64x64_righthand.dmi and b/icons/mob/inhands/64x64_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 0a82845910..6f747f1265 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 abfbb18f84..af14ba7784 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 8716c3627f..e5c3c2f5c9 100644 Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/icons/mob/radial.dmi b/icons/mob/radial.dmi index cfdd0e549a..e681069131 100644 Binary files a/icons/mob/radial.dmi and b/icons/mob/radial.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index 13a0725b05..1bd94f2424 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 index 510adc97b4..e452ca687b 100644 Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi index 1178588ee7..5f31a65ffa 100644 Binary files a/icons/obj/clothing/belt_overlays.dmi and b/icons/obj/clothing/belt_overlays.dmi differ diff --git a/icons/obj/clothing/cloaks.dmi b/icons/obj/clothing/cloaks.dmi index cc5f4f3392..90997bf80a 100644 Binary files a/icons/obj/clothing/cloaks.dmi and b/icons/obj/clothing/cloaks.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 0feb6a75db..629b989520 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index ee6cf90597..9fa3e527ca 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 106195e968..acd64bb424 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index c4c9c94f48..d7e0c9c24b 100644 Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index d3e4c0f7e9..aee67da199 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 6ddac703a0..da3dbe6115 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 17e52b60c9..4ad3d4124f 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/custom.dmi b/icons/obj/custom.dmi index 77b2d114b9..a768e6a35d 100644 Binary files a/icons/obj/custom.dmi and b/icons/obj/custom.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index 7e7e4a644b..158c95ee5d 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 119e612c40..978ffbda27 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 94568b8633..740c64b1dc 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/smith.dmi b/icons/obj/smith.dmi index cbd6b9e85e..19e12dec86 100644 Binary files a/icons/obj/smith.dmi and b/icons/obj/smith.dmi differ diff --git a/icons/obj/tcg/misc.dmi b/icons/obj/tcg/misc.dmi new file mode 100644 index 0000000000..0fc4d3ecce Binary files /dev/null and b/icons/obj/tcg/misc.dmi differ diff --git a/icons/obj/tcg/pack_1.dmi b/icons/obj/tcg/pack_1.dmi new file mode 100644 index 0000000000..1a9952b91b Binary files /dev/null and b/icons/obj/tcg/pack_1.dmi differ diff --git a/icons/obj/tcg/pack_nuclear.dmi b/icons/obj/tcg/pack_nuclear.dmi new file mode 100644 index 0000000000..84f94890ef Binary files /dev/null and b/icons/obj/tcg/pack_nuclear.dmi differ diff --git a/icons/obj/tcg/pack_star.dmi b/icons/obj/tcg/pack_star.dmi new file mode 100644 index 0000000000..273f4c62ef Binary files /dev/null and b/icons/obj/tcg/pack_star.dmi differ diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index d58dda7f7d..ec4ec38015 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -537,4 +537,9 @@ path = /obj/item/clothing/suit/custom/exo ckeywhitelist = list("jesterz7") +/datum/gear/donator/choker + name = "NT Choker" + slot = SLOT_NECK + path = /obj/item/clothing/neck/petcollar/choker + ckeywhitelist = list("trigillass") diff --git a/modular_citadel/code/modules/client/loadout/_loadout.dm b/modular_citadel/code/modules/client/loadout/_loadout.dm index 2a7b77bd47..5f895c4805 100644 --- a/modular_citadel/code/modules/client/loadout/_loadout.dm +++ b/modular_citadel/code/modules/client/loadout/_loadout.dm @@ -53,7 +53,7 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids) var/path //item-to-spawn path var/cost = 1 //normally, each loadout costs a single point. var/geargroupID //defines the ID that the gear inherits from the config - var/loadout_flags = 0 + var/loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION var/list/loadout_initial_colors = list() //NEW DONATOR SYTSEM STUFF diff --git a/modular_citadel/code/modules/client/loadout/head.dm b/modular_citadel/code/modules/client/loadout/head.dm index fd03e2279f..d1c2c69b99 100644 --- a/modular_citadel/code/modules/client/loadout/head.dm +++ b/modular_citadel/code/modules/client/loadout/head.dm @@ -15,6 +15,18 @@ name = "Black beret" path = /obj/item/clothing/head/beret/black +/datum/gear/head/redberet + name = "Red beret" + path = /obj/item/clothing/head/beret + +/datum/gear/head/purpleberet + name = "Purple beret" + path = /obj/item/clothing/head/beret/purple + +/datum/gear/head/blueberet + name = "Blue beret" + path = /obj/item/clothing/head/beret/blue + /datum/gear/head/flatcap name = "Flat cap" path = /obj/item/clothing/head/flatcap diff --git a/modular_citadel/code/modules/client/loadout/mask.dm b/modular_citadel/code/modules/client/loadout/mask.dm index 9468c9303d..576b29cddc 100644 --- a/modular_citadel/code/modules/client/loadout/mask.dm +++ b/modular_citadel/code/modules/client/loadout/mask.dm @@ -20,3 +20,14 @@ path = /obj/item/clothing/mask/gas cost = 2 restricted_roles = list("Chief Engineer", "Atmospheric Technician", "Station Engineer") //*shrug + +/datum/gear/mask/sterile + name = "Aesthetic sterile mask" + path = /obj/item/clothing/mask/surgical/aesthetic + cost = 2 + +/datum/gear/mask/paper + name = "Paper mask" + path = /obj/item/clothing/mask/paper + cost = 2 + diff --git a/modular_citadel/code/modules/client/loadout/neck.dm b/modular_citadel/code/modules/client/loadout/neck.dm index 7c3c11f25c..7c9bafc86d 100644 --- a/modular_citadel/code/modules/client/loadout/neck.dm +++ b/modular_citadel/code/modules/client/loadout/neck.dm @@ -30,6 +30,10 @@ name = "Choker" path = /obj/item/clothing/neck/petcollar/choker +/datum/gear/neck/cowbell + name = "Cowbell collar" + path = /obj/item/clothing/neck/necklace/cowbell + /datum/gear/neck/scarf name = "White scarf" subcategory = LOADOUT_SUBCATEGORY_NECK_SCARVES @@ -86,7 +90,7 @@ /datum/gear/neck/polycloak name = "Polychromatic Cloak" path = /obj/item/clothing/neck/cloak/polychromic - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#FFFFFF", "#808080") /datum/gear/neck/altpolycloak @@ -94,3 +98,9 @@ path = /obj/item/clothing/neck/cloak/alt/polychromic loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#676767", "#4C4C4C") + +/datum/gear/neck/cancloak + name = "Canvas Cloak" + path = /obj/item/clothing/neck/cancloak/polychromic + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_initial_colors = list("#585858", "#373737", "#BEBEBE") diff --git a/modular_citadel/code/modules/client/loadout/shoes.dm b/modular_citadel/code/modules/client/loadout/shoes.dm index 76d7305971..e2b3916ae0 100644 --- a/modular_citadel/code/modules/client/loadout/shoes.dm +++ b/modular_citadel/code/modules/client/loadout/shoes.dm @@ -34,6 +34,12 @@ name = "White shoes" path = /obj/item/clothing/shoes/sneakers/white +/datum/gear/shoes/poly + name = "Polychromic shoes" + path = /obj/item/clothing/shoes/sneakers/poly/polychromic + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_initial_colors = list("#FFFFFF", "#1D1D1D") + /datum/gear/shoes/gildedcuffs name = "Gilded leg wraps" path= /obj/item/clothing/shoes/wraps diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 7c21ed84d0..52e83aee32 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -101,9 +101,16 @@ name = "Polychromic winter coat" path = /obj/item/clothing/suit/hooded/wintercoat/polychromic cost = 4 //too many people with neon green coats is hard on the eyes - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#6A6964", "#C4B8A6", "#0000FF") +/datum/gear/suit/coat/wbreakpoly + name = "Polychromic windbreaker" + path = /obj/item/clothing/suit/toggle/wbreakpoly/polychromic + cost = 4 + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_initial_colors = list("#464F65", "#916035", "#474747") + /datum/gear/suit/coat/med name = "Medical winter coat" path = /obj/item/clothing/suit/hooded/wintercoat/medical @@ -159,6 +166,13 @@ path = /obj/item/clothing/suit/jacket/miljacket subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS +/datum/gear/suit/urbanjacket + name = "Urban Jacket" + path = /obj/item/clothing/suit/jacket/urbanjacket/polychromic + subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_initial_colors = list("#26321D", "#CBBDAF", "#292929") + /datum/gear/suit/ianshirt name = "Ian Shirt" path = /obj/item/clothing/suit/ianshirt diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index b76e223f25..1484f257a4 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -32,6 +32,10 @@ name = "Tan suit" path = /obj/item/clothing/under/suit/tan +/datum/gear/uniform/suit/charismatic_suit + name = "Charismatic suit" + path = /obj/item/clothing/under/suit/charismatic_suit + /datum/gear/uniform/suit/white name = "White suit" path = /obj/item/clothing/under/suit/white @@ -47,7 +51,7 @@ /datum/gear/uniform/maidcostume/polychromic name = "Polychromic maid costume" path = /obj/item/clothing/under/rank/civilian/janitor/maid/polychromic - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#000000") /datum/gear/uniform/mailmanuniform @@ -166,6 +170,13 @@ name = "Tan Pants" path = /obj/item/clothing/under/pants/tan +/datum/gear/uniform/pants/polypants + name = "Polychromic Pants" + path = /obj/item/clothing/under/pants/polypants/polychromic + cost = 2 + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_initial_colors = list("#75634F", "#3D3D3D", "#575757") + /datum/gear/uniform/pants/track name = "Track Pants" path = /obj/item/clothing/under/pants/track @@ -229,49 +240,49 @@ name = "Polychromic Jumpsuit" path = /obj/item/clothing/under/misc/polyjumpsuit cost = 2 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#808080", "#353535") /datum/gear/uniform/skirt/poly name = "Polychromic Jumpskirt" path = /obj/item/clothing/under/dress/skirt/polychromic cost = 2 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#F08080", "#808080") /datum/gear/uniform/suit/poly name = "Polychromic Button-up Shirt" path = /obj/item/clothing/under/misc/poly_shirt cost = 3 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#353535", "#353535") /datum/gear/uniform/skirt/poly/pleated name = "Polychromic Pleated Sweaterskirt" path = /obj/item/clothing/under/dress/skirt/polychromic/pleated cost = 3 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#8CC6FF", "#808080", "#FF3535") /datum/gear/uniform/polykilt name = "Polychromic Kilt" path = /obj/item/clothing/under/costume/kilt/polychromic cost = 3 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#F08080") /datum/gear/uniform/shorts/poly name = "Polychromic Shorts" path = /obj/item/clothing/under/misc/polyshorts cost = 3 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#353535", "#808080", "#808080") /datum/gear/uniform/shorts/poly/athletic name = "Polychromic Athletic Shorts" path = /obj/item/clothing/under/shorts/polychromic cost = 2 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#F08080") /datum/gear/uniform/hopcasual diff --git a/modular_citadel/code/modules/clothing/trek.dm b/modular_citadel/code/modules/clothing/trek.dm index f7e8b6778e..dd02a6d0f8 100644 --- a/modular_citadel/code/modules/clothing/trek.dm +++ b/modular_citadel/code/modules/clothing/trek.dm @@ -51,58 +51,58 @@ blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|ARMS allowed = list( - /obj/item/tank/internals/emergency_oxygen, - /obj/item/flashlight, - /obj/item/analyzer, - /obj/item/radio, - /obj/item/gun, - /obj/item/melee/baton, - /obj/item/restraints/handcuffs, - /obj/item/reagent_containers/hypospray, - /obj/item/hypospray, - /obj/item/healthanalyzer, - /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/glass/bottle/vial, - /obj/item/reagent_containers/glass/beaker, - /obj/item/storage/pill_bottle, - /obj/item/taperecorder) + /obj/item/tank/internals/emergency_oxygen, + /obj/item/flashlight, + /obj/item/analyzer, + /obj/item/radio, + /obj/item/gun, + /obj/item/melee/baton, + /obj/item/restraints/handcuffs, + /obj/item/reagent_containers/hypospray, + /obj/item/hypospray, + /obj/item/healthanalyzer, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/glass/bottle/vial, + /obj/item/reagent_containers/glass/beaker, + /obj/item/storage/pill_bottle, + /obj/item/taperecorder) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - var/unbuttoned = 0 + var/unbuttoned = FALSE - verb/toggle() - set name = "Toggle coat buttons" - set category = "Object" - set src in usr +/obj/item/clothing/suit/storage/fluff/fedcoat/verb/toggle() + set name = "Toggle coat buttons" + set category = "Object" + set src in usr - var/mob/living/L = usr - if(!istype(L) || !CHECK_MOBILITY(L, MOBILITY_USE)) - return FALSE + var/mob/living/L = usr + if(!istype(L) || !CHECK_MOBILITY(L, MOBILITY_USE)) + return FALSE - switch(unbuttoned) - if(0) - icon_state = "[initial(icon_state)]_open" - item_state = "[initial(item_state)]_open" - unbuttoned = 1 - to_chat(usr,"You unbutton the coat.") - if(1) - icon_state = "[initial(icon_state)]" - item_state = "[initial(item_state)]" - unbuttoned = 0 - to_chat(usr,"You button up the coat.") - usr.update_inv_wear_suit() + switch(unbuttoned) + if(FALSE) + icon_state = "[initial(icon_state)]_open" + item_state = "[initial(item_state)]_open" + unbuttoned = TRUE + to_chat(usr,"You unbutton the coat.") + if(TRUE) + icon_state = "[initial(icon_state)]" + item_state = "[initial(item_state)]" + unbuttoned = FALSE + to_chat(usr,"You button up the coat.") + usr.update_inv_wear_suit() - //Variants +//Variants /obj/item/clothing/suit/storage/fluff/fedcoat/medsci - icon_state = "fedblue" - item_state = "fedblue" + icon_state = "fedblue" + item_state = "fedblue" /obj/item/clothing/suit/storage/fluff/fedcoat/eng - icon_state = "fedeng" - item_state = "fedeng" + icon_state = "fedeng" + item_state = "fedeng" /obj/item/clothing/suit/storage/fluff/fedcoat/capt - icon_state = "fedcapt" - item_state = "fedcapt" + icon_state = "fedcapt" + item_state = "fedcapt" //"modern" ones for fancy @@ -124,18 +124,18 @@ ) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - //Variants +//Variants /obj/item/clothing/suit/storage/fluff/modernfedcoat/medsci - icon_state = "fedmodernblue" - item_state = "fedmodernblue" + icon_state = "fedmodernblue" + item_state = "fedmodernblue" /obj/item/clothing/suit/storage/fluff/modernfedcoat/eng - icon_state = "fedmoderneng" - item_state = "fedmoderneng" + icon_state = "fedmoderneng" + item_state = "fedmoderneng" /obj/item/clothing/suit/storage/fluff/modernfedcoat/sec - icon_state = "fedmodernsec" - item_state = "fedmodernsec" + icon_state = "fedmodernsec" + item_state = "fedmodernsec" /obj/item/clothing/head/caphat/formal/fedcover name = "Federation Officer's Cap" @@ -146,22 +146,22 @@ mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "fedcapofficer" - //Variants +//Variants /obj/item/clothing/head/caphat/formal/fedcover/medsci - icon_state = "fedcapsci" - item_state = "fedcapsci" + icon_state = "fedcapsci" + item_state = "fedcapsci" /obj/item/clothing/head/caphat/formal/fedcover/eng - icon_state = "fedcapeng" - item_state = "fedcapeng" + icon_state = "fedcapeng" + item_state = "fedcapeng" /obj/item/clothing/head/caphat/formal/fedcover/sec - icon_state = "fedcapsec" - item_state = "fedcapsec" + icon_state = "fedcapsec" + item_state = "fedcapsec" /obj/item/clothing/head/caphat/formal/fedcover/black - icon_state = "fedcapblack" - item_state = "fedcapblack" + icon_state = "fedcapblack" + item_state = "fedcapblack" //orvilike caps /obj/item/clothing/head/kepi/orvi diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 4ef5a91a92..3c208608c0 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -585,3 +585,12 @@ icon = 'icons/obj/custom.dmi' mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE + +/obj/item/clothing/neck/petcollar/choker + name = "NT Choker" + desc = "NT property since January 21st, 2562." + icon = 'icons/obj/custom.dmi' + icon_state = "choker" + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' + item_state = "choker" + tagname = null diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index f7911def84..3eb656f65a 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -300,3 +300,24 @@ user.nextsoundemote = world.time + 7 var/sound = pick('sound/voice/slime_squish.ogg') playsound(user, sound, 50, 1, -1) + +/datum/emote/living/pain + key = "pain" + key_third_person = "cries out in pain!" + message = "cries out in pain!" + emote_type = EMOTE_AUDIBLE + muzzle_ignore = FALSE + restraint_check = FALSE + +/datum/emote/living/pain/run_emote(mob/living/user, params) + if(!(. = ..())) + return + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + var/sound + if(user.gender == MALE) + sound = pick('modular_citadel/sound/voice/human_male_pain_1.ogg', 'modular_citadel/sound/voice/human_male_pain_2.ogg', 'modular_citadel/sound/voice/human_male_pain_3.ogg', 'modular_citadel/sound/voice/human_male_pain_rare.ogg') + else + sound = pick('modular_citadel/sound/voice/human_female_pain_1.ogg', 'modular_citadel/sound/voice/human_female_pain_2.ogg', 'modular_citadel/sound/voice/human_female_pain_3.ogg') + playsound(user, sound, 50, 0, 0) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm index c2bf251de9..5a3f149dbb 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm @@ -9,7 +9,7 @@ item_state = "arg" slot_flags = 0 mag_type = /obj/item/ammo_box/magazine/m556 //Uses the m90gl's magazine, just like the NT-ARG - fire_sound = 'sound/weapons/gunshot_smg.ogg' + fire_sound = 'sound/weapons/rifleshot.ogg' can_suppress = 0 burst_size = 6 //in line with XCOMEU stats. This can fire 5 bursts from a full magazine. fire_delay = 1 @@ -85,23 +85,20 @@ ///projectiles/// -/obj/item/projectile/bullet/cflechetteap //shreds armor +/obj/item/projectile/bullet/cflechetteap //shreds armor but no wounds name = "flechette (armor piercing)" - damage = 8 - armour_penetration = 80 + damage = 15 + armour_penetration = 100 + wound_bonus = -100 -/obj/item/projectile/bullet/cflechettes //shreds flesh and forces bleeding +/obj/item/projectile/bullet/cflechettes //causes wounds fast but is heavily countered by armor name = "flechette (serrated)" damage = 15 dismemberment = 10 - armour_penetration = -80 - -/obj/item/projectile/bullet/cflechettes/on_hit(atom/target, blocked = FALSE) - if((blocked != 100) && iscarbon(target)) - var/mob/living/carbon/C = target - C.bleed(10) - return ..() - + wound_bonus = 15 + sharpness = SHARP_EDGED + wound_falloff_tile = 0 + ///ammo casings (CASELESS AMMO CASINGS WOOOOOOOO)/// /obj/item/ammo_casing/caseless/flechetteap @@ -148,7 +145,7 @@ slot_flags = 0 pin = /obj/item/firing_pin/implant/pindicate mag_type = /obj/item/ammo_box/magazine/flechette - fire_sound = 'sound/weapons/gunshot_smg.ogg' + fire_sound = 'sound/weapons/rifleshot.ogg' can_suppress = 0 burst_size = 5 fire_delay = 1 @@ -168,15 +165,19 @@ ///unique variant/// -/obj/item/projectile/bullet/cflechetteshredder +/obj/item/projectile/bullet/cflechetteshredder //you only get this with a 30TC bundle,5 magazines, as such this should be the superior ammotype name = "flechette (shredder)" - damage = 5 - dismemberment = 40 + damage = 10 + dismemberment = 50 + wound_bonus = 50 + armour_penetration = 100 + sharpness = SHARP_EDGED + wound_falloff_tile = 0 /obj/item/ammo_casing/caseless/flechetteshredder name = "flechette (shredder)" desc = "A serrated flechette made of a special alloy that forms a monofilament edge." - projectile_type = /obj/item/projectile/bullet/cflechettes + projectile_type = /obj/item/projectile/bullet/cflechetteshredder /obj/item/ammo_box/magazine/flechette/shredder name = "flechette magazine (shredder)" @@ -185,7 +186,7 @@ /obj/item/gun/ballistic/automatic/flechette/shredder name = "\improper CX Shredder" - desc = "A flechette launching machine pistol made of ultra-light CFRP optimized for firing serrated monofillament flechettes." + desc = "A flechette launching machine pistol made of ultra-light CFRP optimized for firing serrated monofilament flechettes." w_class = WEIGHT_CLASS_SMALL spread = 15 recoil = 0.1 diff --git a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm index 65609f5830..9a8ee4bab1 100644 --- a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm @@ -2,7 +2,7 @@ The Recolourable Energy Gun *////////////////////////////////////////////////////////////////////////////////////////////// -obj/item/gun/energy/e_gun/cx +/obj/item/gun/energy/e_gun/cx name = "\improper CX Model D Energy Gun" desc = "An overpriced hybrid energy gun with two settings: disable, and kill. Manufactured by CX Armories. Has a polychromic coating." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' @@ -14,18 +14,18 @@ obj/item/gun/energy/e_gun/cx flight_y_offset = 10 var/body_color = "#252528" -obj/item/gun/energy/e_gun/cx/ComponentInitialize() +/obj/item/gun/energy/e_gun/cx/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) -obj/item/gun/energy/e_gun/cx/update_overlays() +/obj/item/gun/energy/e_gun/cx/update_overlays() . = ..() var/mutable_appearance/body_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "cxegun_body") if(body_color) body_overlay.color = body_color . += body_overlay -obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) +/obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) . = ..() if(!in_range(src, user)) //Basic checks to prevent abuse return @@ -39,7 +39,7 @@ obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) update_icon() -obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) +/obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(isinhands) var/mutable_appearance/body_inhand = mutable_appearance(icon_file, "cxe_body") diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm index 2e5f3b8994..9870a2cd36 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -54,13 +54,8 @@ return..() var/mob/living/carbon/human/H = M - //If they've opted out, then route processing though liver. + //If they've opted out, ignore and return early. if(!(H.client?.prefs.cit_toggles & BREAST_ENLARGEMENT)) - var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER) - if(L) - L.applyOrganDamage(0.25) - else - H.adjustToxLoss(1) return..() var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) //otherwise proceed as normal @@ -85,9 +80,6 @@ /datum/reagent/fermi/breast_enlarger/overdose_process(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders. if(!(M.client?.prefs.cit_toggles & FORCED_FEM)) - var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - if(L) - L.applyOrganDamage(0.25) return ..() var/obj/item/organ/genital/penis/P = M.getorganslot(ORGAN_SLOT_PENIS) @@ -122,9 +114,6 @@ /datum/reagent/fermi/BEsmaller/on_mob_life(mob/living/carbon/M) var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) if(!(M.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) || !B) - var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - if(L) - L.applyOrganDamage(-0.25) return ..() B.modify_size(-0.05) return ..() @@ -203,11 +192,6 @@ return ..() var/mob/living/carbon/human/H = M if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT)) - var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER) - if(L) - L.applyOrganDamage(0.25) - else - H.adjustToxLoss(1) return ..() var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) //otherwise proceed as normal @@ -226,10 +210,8 @@ /datum/reagent/fermi/penis_enlarger/overdose_process(mob/living/carbon/human/M) //Turns you into a male if female and ODing, doesn't touch nonbinary and object genders. if(!istype(M)) return ..() + // let's not kill them if they didn't consent. if(!(M.client?.prefs.cit_toggles & FORCED_MASC)) - var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - if(L) - L.applyOrganDamage(0.25) return..() var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) @@ -266,9 +248,6 @@ var/mob/living/carbon/human/H = M var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT) || !P) - var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - if(L) - L.applyOrganDamage(-0.25) return..() P.modify_size(-0.1) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 1801986ebe..c6fae2ff8f 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -216,7 +216,6 @@ ..() /datum/reagent/fermi/nanite_b_gone/overdose_process(mob/living/carbon/C) - //var/component/nanites/N = M.GetComponent(/datum/component/nanites) var/datum/component/nanites/N = C.GetComponent(/datum/component/nanites) if(prob(5)) to_chat(C, "The residual voltage from the nanites causes you to seize up!") @@ -230,7 +229,7 @@ N.adjust_nanites(-10*cached_purity) ..() -datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) +/datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) for(var/active_obj in react_objs) if(O == active_obj) return @@ -335,39 +334,75 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) holder.clear_reagents() /datum/reagent/fermi/acidic_buffer - name = "Acidic buffer" + name = "Strong acidic buffer" description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another." color = "#fbc314" pH = 0 + chemical_flags = REAGENT_FORCEONNEW can_synth = TRUE + var/strength = 1.5 //Consumes self on addition and shifts pH /datum/reagent/fermi/acidic_buffer/on_new(datapH) + if(!holder) + return ..() + if(holder.reagents_holder_flags & NO_REACT) + return..() if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return ..() data = datapH if(LAZYLEN(holder.reagent_list) == 1) return ..() - holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume)) + if(holder.pH < pH) + holder.my_atom.visible_message("The beaker fizzes as the buffer is added, to no effect.") + playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) + return ..() + holder.pH = clamp((((holder.pH * (holder.total_volume-(volume*strength)))+(pH * (volume*strength)) )/holder.total_volume), 0, 14) //This is BEFORE removal holder.my_atom.visible_message("The beaker fizzes as the pH changes!") playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) ..() +/datum/reagent/fermi/acidic_buffer/weak + name = "Acidic buffer" + description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another." + color = "#fbf344" + pH = 4 + can_synth = TRUE + strength = 0.25 + /datum/reagent/fermi/basic_buffer - name = "Basic buffer" + name = "Strong basic buffer" description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another." color = "#3853a4" pH = 14 + chemical_flags = REAGENT_FORCEONNEW can_synth = TRUE + var/strength = 1.5 + +/datum/reagent/fermi/basic_buffer/weak + name = "Basic buffer" + description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another." + color = "#5873c4" + pH = 10 + can_synth = TRUE + strength = 0.25 /datum/reagent/fermi/basic_buffer/on_new(datapH) + if(!holder) + return ..() + if(holder.reagents_holder_flags & NO_REACT) + return..() if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return ..() data = datapH if(LAZYLEN(holder.reagent_list) == 1) return ..() - holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume)) + if(holder.pH > pH) + holder.my_atom.visible_message("The beaker froths as the buffer is added, to no effect.") + playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) + return ..() + holder.pH = clamp((((holder.pH * (holder.total_volume-(volume*strength)))+(pH * (volume*strength)) )/holder.total_volume), 0, 14) //This is BEFORE removal holder.my_atom.visible_message("The beaker froths as the pH changes!") playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 21f525088c..c144fa9196 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -93,9 +93,8 @@ e.set_up(round((volume/28)*(pH-9)), T, 0, 0) e.start() - if(!ImpureTot == 0) //If impure, v.small emp (0.6 or less) - ImpureTot *= volume - empulse(T, volume, 1) + if(ImpureTot) //If impure, v.small emp (0.6 or less) + empulse(T, ImpureTot, 1) my_atom.reagents.clear_reagents() //just in case return diff --git a/modular_citadel/icons/ui/screen_clockwork.dmi b/modular_citadel/icons/ui/screen_clockwork.dmi index 3a7ba8338f..82fd91026b 100644 Binary files a/modular_citadel/icons/ui/screen_clockwork.dmi and b/modular_citadel/icons/ui/screen_clockwork.dmi differ diff --git a/modular_citadel/icons/ui/screen_midnight.dmi b/modular_citadel/icons/ui/screen_midnight.dmi index fc446a411c..8990650347 100644 Binary files a/modular_citadel/icons/ui/screen_midnight.dmi and b/modular_citadel/icons/ui/screen_midnight.dmi differ diff --git a/modular_citadel/icons/ui/screen_operative.dmi b/modular_citadel/icons/ui/screen_operative.dmi index 9383b94718..9a784fb14a 100644 Binary files a/modular_citadel/icons/ui/screen_operative.dmi and b/modular_citadel/icons/ui/screen_operative.dmi differ diff --git a/modular_citadel/icons/ui/screen_plasmafire.dmi b/modular_citadel/icons/ui/screen_plasmafire.dmi index 97e577c7bd..9a546cad6e 100644 Binary files a/modular_citadel/icons/ui/screen_plasmafire.dmi and b/modular_citadel/icons/ui/screen_plasmafire.dmi differ diff --git a/modular_citadel/icons/ui/screen_slimecore.dmi b/modular_citadel/icons/ui/screen_slimecore.dmi index 8f45ff3f76..22f97207df 100644 Binary files a/modular_citadel/icons/ui/screen_slimecore.dmi and b/modular_citadel/icons/ui/screen_slimecore.dmi differ diff --git a/modular_citadel/sound/voice/human_female_pain_1.ogg b/modular_citadel/sound/voice/human_female_pain_1.ogg new file mode 100644 index 0000000000..f697996e56 Binary files /dev/null and b/modular_citadel/sound/voice/human_female_pain_1.ogg differ diff --git a/modular_citadel/sound/voice/human_female_pain_2.ogg b/modular_citadel/sound/voice/human_female_pain_2.ogg new file mode 100644 index 0000000000..aa2eaba352 Binary files /dev/null and b/modular_citadel/sound/voice/human_female_pain_2.ogg differ diff --git a/modular_citadel/sound/voice/human_female_pain_3.ogg b/modular_citadel/sound/voice/human_female_pain_3.ogg new file mode 100644 index 0000000000..c21d462ba5 Binary files /dev/null and b/modular_citadel/sound/voice/human_female_pain_3.ogg differ diff --git a/modular_citadel/sound/voice/human_male_pain_1.ogg b/modular_citadel/sound/voice/human_male_pain_1.ogg new file mode 100644 index 0000000000..0dbedfe7e8 Binary files /dev/null and b/modular_citadel/sound/voice/human_male_pain_1.ogg differ diff --git a/modular_citadel/sound/voice/human_male_pain_2.ogg b/modular_citadel/sound/voice/human_male_pain_2.ogg new file mode 100644 index 0000000000..6f4a314c5c Binary files /dev/null and b/modular_citadel/sound/voice/human_male_pain_2.ogg differ diff --git a/modular_citadel/sound/voice/human_male_pain_3.ogg b/modular_citadel/sound/voice/human_male_pain_3.ogg new file mode 100644 index 0000000000..7b13505345 Binary files /dev/null and b/modular_citadel/sound/voice/human_male_pain_3.ogg differ diff --git a/modular_citadel/sound/voice/human_male_pain_rare.ogg b/modular_citadel/sound/voice/human_male_pain_rare.ogg new file mode 100644 index 0000000000..73a5da2faf Binary files /dev/null and b/modular_citadel/sound/voice/human_male_pain_rare.ogg differ diff --git a/modular_citadel/sound/voice/pain emote credits.txt b/modular_citadel/sound/voice/pain emote credits.txt new file mode 100644 index 0000000000..10b0c205df --- /dev/null +++ b/modular_citadel/sound/voice/pain emote credits.txt @@ -0,0 +1 @@ +pain emote sound ported from https://gitlab.com/cmdevs/colonial-warfare \ No newline at end of file diff --git a/sound/effects/whistlereset.ogg b/sound/effects/whistlereset.ogg new file mode 100644 index 0000000000..cf55c06ca8 Binary files /dev/null and b/sound/effects/whistlereset.ogg differ diff --git a/sound/weapons/LaserSlugv3.ogg b/sound/weapons/LaserSlugv3.ogg index 0c3de3d4fd..759774c5c9 100644 Binary files a/sound/weapons/LaserSlugv3.ogg and b/sound/weapons/LaserSlugv3.ogg differ diff --git a/sound/weapons/ParticleBlaster.ogg b/sound/weapons/ParticleBlaster.ogg index ae0ae165f9..c52282aaab 100644 Binary files a/sound/weapons/ParticleBlaster.ogg and b/sound/weapons/ParticleBlaster.ogg differ diff --git a/sound/weapons/beam_sniper.ogg b/sound/weapons/beam_sniper.ogg index 0bd7b89c8d..257df1c545 100644 Binary files a/sound/weapons/beam_sniper.ogg and b/sound/weapons/beam_sniper.ogg differ diff --git a/sound/weapons/grenadelaunch.ogg b/sound/weapons/grenadelaunch.ogg index 4662058f28..6a9020f737 100644 Binary files a/sound/weapons/grenadelaunch.ogg and b/sound/weapons/grenadelaunch.ogg differ diff --git a/sound/weapons/gunshot_smg_alt.ogg b/sound/weapons/gunshot_smg_alt.ogg new file mode 100644 index 0000000000..373c1ea4ba Binary files /dev/null and b/sound/weapons/gunshot_smg_alt.ogg differ diff --git a/sound/weapons/gunshotshotgunshot.ogg b/sound/weapons/gunshotshotgunshot.ogg new file mode 100644 index 0000000000..7c513184ec Binary files /dev/null and b/sound/weapons/gunshotshotgunshot.ogg differ diff --git a/sound/weapons/lmgshot.ogg b/sound/weapons/lmgshot.ogg new file mode 100644 index 0000000000..a895e59aa2 Binary files /dev/null and b/sound/weapons/lmgshot.ogg differ diff --git a/sound/weapons/magpistol.ogg b/sound/weapons/magpistol.ogg index 4b94aa1e0a..96eb22c77d 100644 Binary files a/sound/weapons/magpistol.ogg and b/sound/weapons/magpistol.ogg differ diff --git a/sound/weapons/magrifle.ogg b/sound/weapons/magrifle.ogg index 67d6500a6c..1c10ea6b0e 100644 Binary files a/sound/weapons/magrifle.ogg and b/sound/weapons/magrifle.ogg differ diff --git a/sound/weapons/noscope.ogg b/sound/weapons/noscope.ogg new file mode 100644 index 0000000000..84c607fe03 Binary files /dev/null and b/sound/weapons/noscope.ogg differ diff --git a/sound/weapons/plasma_cutter.ogg b/sound/weapons/plasma_cutter.ogg index ba95317cc1..d555110afa 100644 Binary files a/sound/weapons/plasma_cutter.ogg and b/sound/weapons/plasma_cutter.ogg differ diff --git a/sound/weapons/revolvershot.ogg b/sound/weapons/revolvershot.ogg new file mode 100644 index 0000000000..ac6caaf247 Binary files /dev/null and b/sound/weapons/revolvershot.ogg differ diff --git a/sound/weapons/rifleshot.ogg b/sound/weapons/rifleshot.ogg new file mode 100644 index 0000000000..3bc70a7914 Binary files /dev/null and b/sound/weapons/rifleshot.ogg differ diff --git a/sound/weapons/rocketlaunch.ogg b/sound/weapons/rocketlaunch.ogg index 6972eda044..42a99c7518 100644 Binary files a/sound/weapons/rocketlaunch.ogg and b/sound/weapons/rocketlaunch.ogg differ diff --git a/sound/weapons/woodbonk.ogg b/sound/weapons/woodbonk.ogg new file mode 100644 index 0000000000..5fbadb104d Binary files /dev/null and b/sound/weapons/woodbonk.ogg differ diff --git a/tgstation.dme b/tgstation.dme index c069e0fdca..000bb0cf52 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -292,6 +292,7 @@ #include "code\controllers\configuration\entries\fail2topic.dm" #include "code\controllers\configuration\entries\game_options.dm" #include "code\controllers\configuration\entries\general.dm" +#include "code\controllers\configuration\entries\logging.dm" #include "code\controllers\configuration\entries\persistence.dm" #include "code\controllers\configuration\entries\plushies.dm" #include "code\controllers\configuration\entries\policy.dm" @@ -503,6 +504,7 @@ #include "code\datums\components\twohanded.dm" #include "code\datums\components\uplink.dm" #include "code\datums\components\virtual_reality.dm" +#include "code\datums\components\waddling.dm" #include "code\datums\components\wearertargeting.dm" #include "code\datums\components\wet_floor.dm" #include "code\datums\components\crafting\crafting.dm" @@ -535,6 +537,7 @@ #include "code\datums\components\storage\concrete\rped.dm" #include "code\datums\components\storage\concrete\special.dm" #include "code\datums\components\storage\concrete\stack.dm" +#include "code\datums\components\storage\concrete\tcg.dm" #include "code\datums\diseases\_disease.dm" #include "code\datums\diseases\_MobProcs.dm" #include "code\datums\diseases\anxiety.dm" @@ -619,6 +622,7 @@ #include "code\datums\elements\tactical.dm" #include "code\datums\elements\update_icon_blocker.dm" #include "code\datums\elements\update_icon_updates_onmob.dm" +#include "code\datums\elements\ventcrawling.dm" #include "code\datums\elements\wuv.dm" #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" @@ -2333,6 +2337,7 @@ #include "code\modules\language\mushroom.dm" #include "code\modules\language\narsian.dm" #include "code\modules\language\ratvarian.dm" +#include "code\modules\language\signlanguage.dm" #include "code\modules\language\slime.dm" #include "code\modules\language\swarmer.dm" #include "code\modules\language\sylvan.dm" @@ -3487,6 +3492,10 @@ #include "code\modules\surgery\organs\tails.dm" #include "code\modules\surgery\organs\tongue.dm" #include "code\modules\surgery\organs\vocal_cords.dm" +#include "code\modules\tcg\cards.dm" +#include "code\modules\tcg\pack_1.dm" +#include "code\modules\tcg\pack_nuclear.dm" +#include "code\modules\tcg\pack_star.dm" #include "code\modules\tgchat\message.dm" #include "code\modules\tgchat\to_chat.dm" #include "code\modules\tgs\includes.dm" diff --git a/tgui/packages/tgui-panel/chat/renderer.js b/tgui/packages/tgui-panel/chat/renderer.js index 10b1c6e024..f16ed9046a 100644 --- a/tgui/packages/tgui-panel/chat/renderer.js +++ b/tgui/packages/tgui-panel/chat/renderer.js @@ -176,7 +176,7 @@ class ChatRenderer { this.highlightColor = null; return; } - const allowedRegex = /^[a-z0-9_\-\s]+$/ig; + const allowedRegex = /^[a-z0-9_\-\s]+$/i; // citadel update - ig changed to i for flags, to fix issues with highlighting only working for every other word. const lines = String(text) .split(',') .map(str => str.trim()) diff --git a/tgui/packages/tgui/interfaces/ChemDispenser.js b/tgui/packages/tgui/interfaces/ChemDispenser.js index 0724a9e85f..23498caf34 100644 --- a/tgui/packages/tgui/interfaces/ChemDispenser.js +++ b/tgui/packages/tgui/interfaces/ChemDispenser.js @@ -1,13 +1,20 @@ import { toFixed } from 'common/math'; import { toTitleCase } from 'common/string'; import { Fragment } from 'inferno'; -import { useBackend } from '../backend'; -import { AnimatedNumber, Box, Button, Icon, LabeledList, ProgressBar, Section } from '../components'; +import { useBackend, useLocalState } from '../backend'; +import { AnimatedNumber, Box, Button, Icon, LabeledList, ProgressBar, Section, Table, NumberInput } from '../components'; import { Window } from '../layouts'; export const ChemDispenser = (props, context) => { const { act, data } = useBackend(context); const recording = !!data.recordingRecipe; + const [hasCol, setHasCol] = useLocalState( + context, 'fs_title', false); + const [modeToggle, setModeToggle] = useLocalState( + context, 'mode_toggle', true); + const { + storedContents = [], + } = data; // TODO: Change how this piece of shit is built on server side // It has to be a list, not a fucking OBJECT! const recipes = Object.keys(data.recipes) @@ -28,17 +35,27 @@ export const ChemDispenser = (props, context) => { return (
- - Recording - - )}> + buttons={ + [(recording && ( + + + Recording + + )), +
( -
+ {!!data.canStore && ( +
+ Transfer amount: + + u + + }> + + {toFixed(data.storedVol) + ' units / ' + data.maxVol + ' units'} + + + {storedContents.map(chemical => ( + + ))} + +
+ )}
{ {recording && 'Virtual beaker' || data.isBeakerLoaded - && ( - - - /{data.beakerMaxVolume} units - - ) + && ( + + + /{data.beakerMaxVolume} units + + ) || 'No beaker'} { {(!data.isBeakerLoaded && !recording) && 'N/A' || beakerContents.length === 0 && 'Nothing'} - {beakerContents.map(chemical => ( - - - {' '} - units of {chemical.name} - - ))} + + {beakerContents.map(chemical => ( + + ))} + pH: @@ -196,3 +260,60 @@ export const ChemDispenser = (props, context) => { ); }; + + +const ChemicalBuffer = Table; + +const ChemicalBufferEntry = (props, context) => { + const { act, data } = useBackend(context); + const { chemical, transferTo } = props; + return ( + + + + {` units of ${chemical.name}`} + + +
{antagonists.length > 0 && ( @@ -161,7 +183,7 @@ export const Orbit = (props, context) => { )} -
+
{alive .filter(searchFor(searchText)) .sort(compareNumberedText) @@ -174,7 +196,7 @@ export const Orbit = (props, context) => {
diff --git a/tgui/packages/tgui/package.json b/tgui/packages/tgui/package.json index 15e2974f9b..3b0e881bed 100644 --- a/tgui/packages/tgui/package.json +++ b/tgui/packages/tgui/package.json @@ -7,7 +7,7 @@ "dompurify": "^2.0.12", "inferno": "^7.4.2", "inferno-vnode-flags": "^7.4.2", - "marked": "^1.1.0", + "marked": "^2.0.0", "tgui-dev-server": "workspace:*", "tgui-polyfill": "workspace:*" } diff --git a/tgui/public/tgui-common.chunk.js b/tgui/public/tgui-common.chunk.js index 781757f34b..897d260546 100644 --- a/tgui/public/tgui-common.chunk.js +++ b/tgui/public/tgui-common.chunk.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[function(e,t,n){"use strict";t.__esModule=!0;var r=n(448);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(t[e]=r[e])}))},function(e,t,n){"use strict";t.__esModule=!0,t.TimeDisplay=t.Tooltip=t.Tabs=t.TextArea=t.Table=t.Slider=t.Section=t.ProgressBar=t.NumberInput=t.NoticeBox=t.Modal=t.LabeledList=t.LabeledControls=t.Knob=t.Input=t.Icon=t.Grid=t.Flex=t.Dropdown=t.DraggableControl=t.Divider=t.Dimmer=t.ColorBox=t.Collapsible=t.Chart=t.ByondUi=t.Button=t.Box=t.BlockQuote=t.AnimatedNumber=void 0;var r=n(138);t.AnimatedNumber=r.AnimatedNumber;var o=n(463);t.BlockQuote=o.BlockQuote;var i=n(17);t.Box=i.Box;var a=n(191);t.Button=a.Button;var c=n(465);t.ByondUi=c.ByondUi;var u=n(467);t.Chart=u.Chart;var s=n(468);t.Collapsible=s.Collapsible;var l=n(469);t.ColorBox=l.ColorBox;var f=n(193);t.Dimmer=f.Dimmer;var d=n(194);t.Divider=d.Divider;var p=n(139);t.DraggableControl=p.DraggableControl;var h=n(470);t.Dropdown=h.Dropdown;var g=n(195);t.Flex=g.Flex;var v=n(471);t.Grid=v.Grid;var m=n(103);t.Icon=m.Icon;var y=n(197);t.Input=y.Input;var b=n(472);t.Knob=b.Knob;var x=n(473);t.LabeledControls=x.LabeledControls;var w=n(198);t.LabeledList=w.LabeledList;var _=n(474);t.Modal=_.Modal;var E=n(475);t.NoticeBox=E.NoticeBox;var k=n(140);t.NumberInput=k.NumberInput;var S=n(476);t.ProgressBar=S.ProgressBar;var C=n(477);t.Section=C.Section;var N=n(478);t.Slider=N.Slider;var A=n(196);t.Table=A.Table;var T=n(479);t.TextArea=T.TextArea;var O=n(480);t.Tabs=O.Tabs;var I=n(192);t.Tooltip=I.Tooltip;var M=n(481);t.TimeDisplay=M.TimeDisplay},function(e,t,n){"use strict";(function(e){t.__esModule=!0,t.useSharedState=t.useLocalState=t.useBackend=t.selectBackend=t.sendAct=t.sendMessage=t.backendMiddleware=t.backendReducer=t.backendSuspendSuccess=t.backendSuspendStart=t.backendSetSharedState=t.backendUpdate=void 0;var r=n(99),o=n(188),i=n(189),a=n(29),c=n(136);var u=(0,a.createLogger)("backend"),s=function(e){return{type:"backend/update",payload:e}};t.backendUpdate=s;var l=function(e,t){return{type:"backend/setSharedState",payload:{key:e,nextState:t}}};t.backendSetSharedState=l;t.backendSuspendStart=function(){return{type:"backend/suspendStart"}};var f=function(){return{type:"backend/suspendSuccess",payload:{timestamp:Date.now()}}};t.backendSuspendSuccess=f;var d={config:{},data:{},shared:{},suspended:Date.now(),suspending:!1};t.backendReducer=function(e,t){void 0===e&&(e=d);var n=t.type,r=t.payload;if("backend/update"===n){var o=Object.assign({},e.config,r.config),i=Object.assign({},e.data,r.static_data,r.data),a=Object.assign({},e.shared);if(r.shared)for(var c=0,u=Object.keys(r.shared);c=0||(o[n]=e[n]);return o}(t,["payload"]),o=Object.assign({tgui:1,window_id:window.__windowId__},r);null!==n&&n!==undefined&&(o.payload=JSON.stringify(n)),Byond.topic(o)};t.sendMessage=p;var h=function(e,t){void 0===t&&(t={}),"object"!=typeof t||null===t||Array.isArray(t)?u.error("Payload for act() must be an object, got this:",t):p({type:"act/"+e,payload:t})};t.sendAct=h;var g=function(e){return e.backend||{}};t.selectBackend=g;t.useBackend=function(e){var t=e.store,n=g(t.getState());return Object.assign({},n,{act:h})};t.useLocalState=function(e,t,n){var r,o=e.store,i=null!=(r=g(o.getState()).shared)?r:{},a=t in i?i[t]:n;return[a,function(e){o.dispatch(l(t,"function"==typeof e?e(a):e))}]};t.useSharedState=function(e,t,n){var r,o=e.store,i=null!=(r=g(o.getState()).shared)?r:{},a=t in i?i[t]:n;return[a,function(e){p({type:"setSharedState",key:t,value:JSON.stringify("function"==typeof e?e(a):e)||""})}]}}).call(this,n(101).setImmediate)},function(e,t,n){"use strict";t.__esModule=!0,t.Window=t.Pane=t.NtosWindow=t.Layout=void 0;var r=n(141);t.Layout=r.Layout;var o=n(482);t.NtosWindow=o.NtosWindow;var i=n(483);t.Pane=i.Pane;var a=n(199);t.Window=a.Window},function(e,t,n){"use strict";var r=n(7),o=n(23).f,i=n(32),a=n(25),c=n(109),u=n(152),s=n(70);e.exports=function(e,t){var n,l,f,d,p,h=e.target,g=e.global,v=e.stat;if(n=g?r:v?r[h]||c(h,{}):(r[h]||{}).prototype)for(l in t){if(d=t[l],f=e.noTargetGet?(p=o(n,l))&&p.value:n[l],!s(g?l:h+(v?".":"#")+l,e.forced)&&f!==undefined){if(typeof d==typeof f)continue;u(d,f)}(e.sham||f&&f.sham)&&i(d,"sham",!0),a(n,l,d,e)}}},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";t.__esModule=!0,t.canRender=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;nn?n:e};t.clamp01=function(e){return e<0?0:e>1?1:e};t.scale=function(e,t,n){return(e-t)/(n-t)};t.round=function(e,t){return!e||isNaN(e)?e:(t|=0,i=(e*=n=Math.pow(10,t))>0|-(e<0),o=Math.abs(e%1)>=.4999999999854481,r=Math.floor(e),o&&(e=r+(i>0)),(o?e:Math.round(e))/n);var n,r,o,i};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(Math.max(t,0))};var r=function(e,t){return t&&e>=t[0]&&e<=t[1]};t.inRange=r;t.keyOfMatchingRange=function(e,t){for(var n=0,o=Object.keys(t);n0?o(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r,o=n(123),i=n(10),a=n(7),c=n(8),u=n(20),s=n(84),l=n(32),f=n(25),d=n(16).f,p=n(42),h=n(55),g=n(15),v=n(67),m=a.Int8Array,y=m&&m.prototype,b=a.Uint8ClampedArray,x=b&&b.prototype,w=m&&p(m),_=y&&p(y),E=Object.prototype,k=E.isPrototypeOf,S=g("toStringTag"),C=v("TYPED_ARRAY_TAG"),N=o&&!!h&&"Opera"!==s(a.opera),A=!1,T={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},O=function(e){var t=s(e);return"DataView"===t||u(T,t)},I=function(e){return c(e)&&u(T,s(e))};for(r in T)a[r]||(N=!1);if((!N||"function"!=typeof w||w===Function.prototype)&&(w=function(){throw TypeError("Incorrect invocation")},N))for(r in T)a[r]&&h(a[r],w);if((!N||!_||_===E)&&(_=w.prototype,N))for(r in T)a[r]&&h(a[r].prototype,_);if(N&&p(x)!==_&&h(x,_),i&&!u(_,S))for(r in A=!0,d(_,S,{get:function(){return c(this)?this[C]:undefined}}),T)a[r]&&l(a[r],C,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:N,TYPED_ARRAY_TAG:A&&C,aTypedArray:function(e){if(I(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(h){if(k.call(w,e))return e}else for(var t in T)if(u(T,r)){var n=a[t];if(n&&(e===n||k.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(i){if(n)for(var r in T){var o=a[r];o&&u(o.prototype,e)&&delete o.prototype[e]}_[e]&&!n||f(_,e,n?t:N&&y[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,o;if(i){if(h){if(n)for(r in T)(o=a[r])&&u(o,e)&&delete o[e];if(w[e]&&!n)return;try{return f(w,e,n?t:N&&m[e]||t)}catch(c){}}for(r in T)!(o=a[r])||o[e]&&!n||f(o,e,t)}},isView:O,isTypedArray:I,TypedArray:w,TypedArrayPrototype:_}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.uniqBy=t.reduce=t.sortBy=t.map=t.filter=t.toKeyedArray=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var r in e)t.call(e,r)&&n.push(e[r]);return n}return[]};t.toKeyedArray=function(e,t){return void 0===t&&(t="key"),r((function(e,n){var r;return Object.assign(((r={})[t]=n,r),e)}))(e)};t.filter=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],r=0;rc)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&(t.style=u),t};t.computeBoxProps=v;var m=function(e){var t=e.textColor||e.color,n=e.backgroundColor;return(0,r.classes)([s(t)&&"color-"+t,s(n)&&"color-bg-"+n])};t.computeBoxClassName=m;var y=function(e){var t=e.as,n=void 0===t?"div":t,r=e.className,a=e.children,c=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["as","className","children"]);if("function"==typeof a)return a(v(e));var u="string"==typeof r?r+" "+m(c):m(c),s=v(c);return(0,o.createVNode)(i.VNodeFlags.HtmlElement,n,u,a,i.ChildFlags.UnknownChildren,s)};t.Box=y,y.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";var r=n(24);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";function r(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",apos:"'"};return e.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/&#?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/&#x?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,n){"use strict";var r=n(53),o=n(66),i=n(18),a=n(12),c=n(72),u=[].push,s=function(e){var t=1==e,n=2==e,s=3==e,l=4==e,f=6==e,d=5==e||f;return function(p,h,g,v){for(var m,y,b=i(p),x=o(b),w=r(h,g,3),_=a(x.length),E=0,k=v||c,S=t?k(p,_):n?k(p,0):undefined;_>E;E++)if((d||E in x)&&(y=w(m=x[E],E,b),e))if(t)S[E]=y;else if(y)switch(e){case 3:return!0;case 5:return m;case 6:return E;case 2:u.call(S,m)}else if(l)return!1;return f?-1:s||l?l:S}};e.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},function(e,t,n){"use strict";t.__esModule=!0,t.useSelector=t.useDispatch=t.createAction=t.combineReducers=t.applyMiddleware=t.createStore=void 0;var r=n(30);function o(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?o-1:0),a=1;a1?t-1:0),r=1;r2?n-2:0),o=2;o=i){var a=[t].concat(r).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;Byond.topic({tgui:1,window_id:window.__windowId__,type:"log",ns:t,message:a})}},s=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?o-1:0),c=1;c1?r-1:0),i=1;i"+a+""}},function(e,t,n){"use strict";var r=n(5);e.exports=function(e){return r((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"CentCom",freq:1337,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"AI Private",freq:1447,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var r=[{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"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),o=r.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return o&&o.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=r.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,n){"use strict";var r=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:r)(e)}},function(e,t,n){"use strict";t.__esModule=!0,t.formatDb=t.formatMoney=t.formatPower=t.formatSiUnit=void 0;var r=n(9),o=["f","p","n","\u03bc","m"," ","k","M","G","T","P","E","Z","Y"],i=o.indexOf(" "),a=function(e,t,n){if(void 0===t&&(t=-i),void 0===n&&(n=""),"number"!=typeof e||!Number.isFinite(e))return e;var a=Math.floor(Math.log10(e)),c=Math.floor(Math.max(3*t,a)),u=Math.floor(a/3),s=Math.floor(c/3),l=(0,r.clamp)(i+s,0,o.length),f=o[l],d=e/Math.pow(1e3,s),p=u>t?2+3*s-c:0;return((0,r.toFixed)(d,p)+" "+f+n).trim()};t.formatSiUnit=a;t.formatPower=function(e,t){return void 0===t&&(t=0),a(e,t,"W")};t.formatMoney=function(e,t){if(void 0===t&&(t=0),!Number.isFinite(e))return e;var n=(0,r.round)(e,t);t>0&&(n=(0,r.toFixed)(e,t));var o=(n=String(n)).length,i=n.indexOf(".");-1===i&&(i=o);for(var a="",c=0;c0&&c=0?"+":t<0?"\u2013":"",o=Math.abs(t);return n+(o=o===Infinity?"Inf":(0,r.toFixed)(o,2))+" dB"}},function(e,t,n){"use strict";var r=n(8);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r=n(153),o=n(7),i=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?i(r[e])||i(o[e]):r[e]&&r[e][t]||o[e]&&o[e][t]}},function(e,t,n){"use strict";var r=n(20),o=n(18),i=n(82),a=n(122),c=i("IE_PROTO"),u=Object.prototype;e.exports=a?Object.getPrototypeOf:function(e){return e=o(e),r(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r=n(5);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){throw 1},1)}))}},function(e,t,n){"use strict";var r=n(11),o=n(27),i=n(15)("species");e.exports=function(e,t){var n,a=r(e).constructor;return a===undefined||(n=r(a)[i])==undefined?t:o(n)}},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(10),a=n(134),c=n(13),u=n(87),s=n(60),l=n(51),f=n(32),d=n(12),p=n(168),h=n(182),g=n(40),v=n(20),m=n(84),y=n(8),b=n(48),x=n(55),w=n(52).f,_=n(183),E=n(21).forEach,k=n(59),S=n(16),C=n(23),N=n(33),A=n(89),T=N.get,O=N.set,I=S.f,M=C.f,L=Math.round,V=o.RangeError,R=u.ArrayBuffer,P=u.DataView,B=c.NATIVE_ARRAY_BUFFER_VIEWS,D=c.TYPED_ARRAY_TAG,F=c.TypedArray,j=c.TypedArrayPrototype,K=c.aTypedArrayConstructor,z=c.isTypedArray,Y=function(e,t){for(var n=0,r=t.length,o=new(K(e))(r);r>n;)o[n]=t[n++];return o},U=function(e,t){I(e,t,{get:function(){return T(this)[t]}})},$=function(e){var t;return e instanceof R||"ArrayBuffer"==(t=m(e))||"SharedArrayBuffer"==t},H=function(e,t){return z(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},W=function(e,t){return H(e,t=g(t,!0))?l(2,e[t]):M(e,t)},q=function(e,t,n){return!(H(e,t=g(t,!0))&&y(n)&&v(n,"value"))||v(n,"get")||v(n,"set")||n.configurable||v(n,"writable")&&!n.writable||v(n,"enumerable")&&!n.enumerable?I(e,t,n):(e[t]=n.value,e)};i?(B||(C.f=W,S.f=q,U(j,"buffer"),U(j,"byteOffset"),U(j,"byteLength"),U(j,"length")),r({target:"Object",stat:!0,forced:!B},{getOwnPropertyDescriptor:W,defineProperty:q}),e.exports=function(e,t,n){var i=e.match(/\d+$/)[0]/8,c=e+(n?"Clamped":"")+"Array",u="get"+e,l="set"+e,g=o[c],v=g,m=v&&v.prototype,S={},C=function(e,t){I(e,t,{get:function(){return function(e,t){var n=T(e);return n.view[u](t*i+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,r){var o=T(e);n&&(r=(r=L(r))<0?0:r>255?255:255&r),o.view[l](t*i+o.byteOffset,r,!0)}(this,t,e)},enumerable:!0})};B?a&&(v=t((function(e,t,n,r){return s(e,v,c),A(y(t)?$(t)?r!==undefined?new g(t,h(n,i),r):n!==undefined?new g(t,h(n,i)):new g(t):z(t)?Y(v,t):_.call(v,t):new g(p(t)),e,v)})),x&&x(v,F),E(w(g),(function(e){e in v||f(v,e,g[e])})),v.prototype=m):(v=t((function(e,t,n,r){s(e,v,c);var o,a,u,l=0,f=0;if(y(t)){if(!$(t))return z(t)?Y(v,t):_.call(v,t);o=t,f=h(n,i);var g=t.byteLength;if(r===undefined){if(g%i)throw V("Wrong length");if((a=g-f)<0)throw V("Wrong length")}else if((a=d(r)*i)+f>g)throw V("Wrong length");u=a/i}else u=p(t),o=new R(a=u*i);for(O(e,{buffer:o,byteOffset:f,byteLength:a,length:u,view:new P(o)});l"+e+"<\/script>"},h=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(o){}var e,t;h=r?function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t}(r):((t=s("iframe")).style.display="none",u.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(p("document.F=Object")),e.close(),e.F);for(var n=a.length;n--;)delete h.prototype[a[n]];return h()};c[f]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(d.prototype=o(e),n=new d,d.prototype=null,n[f]=e):n=h(),t===undefined?n:i(n,t)}},function(e,t,n){"use strict";var r=n(16).f,o=n(20),i=n(15)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=n(15),o=n(48),i=n(16),a=r("unscopables"),c=Array.prototype;c[a]==undefined&&i.f(c,a,{configurable:!0,value:o(null)}),e.exports=function(e){c[a][e]=!0}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var r=n(154),o=n(113).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){"use strict";var r=n(27);e.exports=function(e,t,n){if(r(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var r=n(40),o=n(16),i=n(51);e.exports=function(e,t,n){var a=r(t);a in e?o.f(e,a,i(0,n)):e[a]=n}},function(e,t,n){"use strict";var r=n(11),o=n(166);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),t?e.call(n,i):n.__proto__=i,n}}():undefined)},function(e,t,n){"use strict";var r=n(68),o=n(8),i=n(20),a=n(16).f,c=n(67),u=n(76),s=c("meta"),l=0,f=Object.isExtensible||function(){return!0},d=function(e){a(e,s,{value:{objectID:"O"+ ++l,weakData:{}}})},p=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,s)){if(!f(e))return"F";if(!t)return"E";d(e)}return e[s].objectID},getWeakData:function(e,t){if(!i(e,s)){if(!f(e))return!0;if(!t)return!1;d(e)}return e[s].weakData},onFreeze:function(e){return u&&p.REQUIRED&&f(e)&&!i(e,s)&&d(e),e}};r[s]=!0},function(e,t,n){"use strict";t.__esModule=!0,t.removeScrollableNode=t.addScrollableNode=t.canStealFocus=t.setupGlobalEvents=t.globalEvents=void 0;var r=n(185),o=n(78),i=(n(29),new r.EventEmitter);t.globalEvents=i;var a,c=!1;t.setupGlobalEvents=function(e){void 0===e&&(e={}),c=!!e.ignoreWindowFocus};var u=!0,s=function y(e,t){c?u=!0:(a&&(clearTimeout(a),a=null),t?a=setTimeout((function(){return y(e)})):u!==e&&(u=e,i.emit(e?"window-focus":"window-blur"),i.emit("window-focus-change",e)))},l=null,f=function(e){var t=String(e.tagName).toLowerCase();return"input"===t||"textarea"===t};t.canStealFocus=f;var d=function b(){l&&(l.removeEventListener("blur",b),l=null)},p=null,h=null,g=[];t.addScrollableNode=function(e){g.push(e)};t.removeScrollableNode=function(e){var t=g.indexOf(e);t>=0&&g.splice(t,1)};window.addEventListener("mousemove",(function(e){var t=e.target;t!==h&&(h=t,function(e){if(!l&&u)for(var t=document.body;e&&e!==t;){if(g.includes(e)){if(e.contains(p))return;return p=e,void e.focus()}e=e.parentNode}}(t))})),window.addEventListener("focusin",(function(e){if(h=null,p=e.target,s(!0),f(e.target))return t=e.target,d(),void(l=t).addEventListener("blur",d);var t})),window.addEventListener("focusout",(function(e){h=null,s(!1,!0)})),window.addEventListener("blur",(function(e){h=null,s(!1,!0)})),window.addEventListener("beforeunload",(function(e){s(!1)}));var v={},m=function(){function e(e,t,n){this.event=e,this.type=t,this.code=window.event?e.which:e.keyCode,this.ctrl=e.ctrlKey,this.shift=e.shiftKey,this.alt=e.altKey,this.repeat=!!n}var t=e.prototype;return t.hasModifierKeys=function(){return this.ctrl||this.alt||this.shift},t.isModifierKey=function(){return this.code===o.KEY_CTRL||this.code===o.KEY_SHIFT||this.code===o.KEY_ALT},t.isDown=function(){return"keydown"===this.type},t.isUp=function(){return"keyup"===this.type},t.toString=function(){return 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>=o.KEY_F1&&this.code<=o.KEY_F12?this._str+="F"+(this.code-111):this._str+="["+this.code+"]"),this._str},e}();document.addEventListener("keydown",(function(e){if(!f(e.target)){var t=e.keyCode,n=new m(e,"keydown",v[t]);i.emit("keydown",n),i.emit("key",n),v[t]=!0}})),document.addEventListener("keyup",(function(e){if(!f(e.target)){var t=e.keyCode,n=new m(e,"keyup");i.emit("keyup",n),i.emit("key",n),v[t]=!1}}))},function(e,t,n){"use strict";var r=n(37);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){"use strict";var r=n(41),o=n(16),i=n(15),a=n(10),c=i("species");e.exports=function(e){var t=r(e),n=o.f;a&&t&&!t[c]&&n(t,c,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},function(e,t,n){"use strict";var r=n(11),o=n(118),i=n(12),a=n(53),c=n(119),u=n(162),s=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,l,f){var d,p,h,g,v,m,y,b=a(t,n,l?2:1);if(f)d=e;else{if("function"!=typeof(p=c(e)))throw TypeError("Target is not iterable");if(o(p)){for(h=0,g=i(e.length);g>h;h++)if((v=l?b(r(y=e[h])[0],y[1]):b(e[h]))&&v instanceof s)return v;return new s(!1)}d=p.call(e)}for(m=d.next;!(y=m.call(d)).done;)if("object"==typeof(v=u(d,b,y.value,l))&&v&&v instanceof s)return v;return new s(!1)}).stop=function(e){return new s(!0,e)}},function(e,t,n){"use strict";var r=n(24),o="["+n(91)+"]",i=RegExp("^"+o+o+"*"),a=RegExp(o+o+"*$"),c=function(e){return function(t){var n=String(r(t));return 1&e&&(n=n.replace(i,"")),2&e&&(n=n.replace(a,"")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},function(e,t,n){"use strict";t.__esModule=!0,t.assetMiddleware=t.resolveAsset=void 0;var r=[/v4shim/i],o={};t.resolveAsset=function(e){return o[e]||e};t.assetMiddleware=function(e){return function(e){return function(t){var n=t.type,i=t.payload;if("asset/stylesheet"!==n)if("asset/mappings"!==n)e(t);else for(var a=function(){var e=u[c];if(r.some((function(t){return t.test(e)})))return"continue";var t=i[e],n=e.split(".").pop();o[e]=t,"css"===n&&Byond.loadCss(t),"js"===n&&Byond.loadJs(t)},c=0,u=Object.keys(i);cl;)if((c=u[l++])!=c)return!0}else for(;s>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t,n){"use strict";var r=n(5),o=/#|\.prototype\./,i=function(e,t){var n=c[a(e)];return n==s||n!=u&&("function"==typeof t?r(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},c=i.data={},u=i.NATIVE="N",s=i.POLYFILL="P";e.exports=i},function(e,t,n){"use strict";var r=n(154),o=n(113);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){"use strict";var r=n(8),o=n(58),i=n(15)("species");e.exports=function(e,t){var n;return o(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var r=n(5),o=n(15),i=n(116),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(25);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},function(e,t,n){"use strict";var r=n(5);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var r=n(11);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";t.__esModule=!0,t.KEY_QUOTE=t.KEY_RIGHT_BRACKET=t.KEY_BACKSLASH=t.KEY_LEFT_BRACKET=t.KEY_SLASH=t.KEY_PERIOD=t.KEY_MINUS=t.KEY_COMMA=t.KEY_EQUAL=t.KEY_SEMICOLON=t.KEY_F12=t.KEY_F11=t.KEY_F10=t.KEY_F9=t.KEY_F8=t.KEY_F7=t.KEY_F6=t.KEY_F5=t.KEY_F4=t.KEY_F3=t.KEY_F2=t.KEY_F1=t.KEY_Z=t.KEY_Y=t.KEY_X=t.KEY_W=t.KEY_V=t.KEY_U=t.KEY_T=t.KEY_S=t.KEY_R=t.KEY_Q=t.KEY_P=t.KEY_O=t.KEY_N=t.KEY_M=t.KEY_L=t.KEY_K=t.KEY_J=t.KEY_I=t.KEY_H=t.KEY_G=t.KEY_F=t.KEY_E=t.KEY_D=t.KEY_C=t.KEY_B=t.KEY_A=t.KEY_9=t.KEY_8=t.KEY_7=t.KEY_6=t.KEY_5=t.KEY_4=t.KEY_3=t.KEY_2=t.KEY_1=t.KEY_0=t.KEY_DELETE=t.KEY_INSERT=t.KEY_DOWN=t.KEY_RIGHT=t.KEY_UP=t.KEY_LEFT=t.KEY_HOME=t.KEY_END=t.KEY_PAGEDOWN=t.KEY_PAGEUP=t.KEY_SPACE=t.KEY_ESCAPE=t.KEY_CAPSLOCK=t.KEY_PAUSE=t.KEY_ALT=t.KEY_CTRL=t.KEY_SHIFT=t.KEY_ENTER=t.KEY_TAB=t.KEY_BACKSPACE=void 0;t.KEY_BACKSPACE=8;t.KEY_TAB=9;t.KEY_ENTER=13;t.KEY_SHIFT=16;t.KEY_CTRL=17;t.KEY_ALT=18;t.KEY_PAUSE=19;t.KEY_CAPSLOCK=20;t.KEY_ESCAPE=27;t.KEY_SPACE=32;t.KEY_PAGEUP=33;t.KEY_PAGEDOWN=34;t.KEY_END=35;t.KEY_HOME=36;t.KEY_LEFT=37;t.KEY_UP=38;t.KEY_RIGHT=39;t.KEY_DOWN=40;t.KEY_INSERT=45;t.KEY_DELETE=46;t.KEY_0=48;t.KEY_1=49;t.KEY_2=50;t.KEY_3=51;t.KEY_4=52;t.KEY_5=53;t.KEY_6=54;t.KEY_7=55;t.KEY_8=56;t.KEY_9=57;t.KEY_A=65;t.KEY_B=66;t.KEY_C=67;t.KEY_D=68;t.KEY_E=69;t.KEY_F=70;t.KEY_G=71;t.KEY_H=72;t.KEY_I=73;t.KEY_J=74;t.KEY_K=75;t.KEY_L=76;t.KEY_M=77;t.KEY_N=78;t.KEY_O=79;t.KEY_P=80;t.KEY_Q=81;t.KEY_R=82;t.KEY_S=83;t.KEY_T=84;t.KEY_U=85;t.KEY_V=86;t.KEY_W=87;t.KEY_X=88;t.KEY_Y=89;t.KEY_Z=90;t.KEY_F1=112;t.KEY_F2=113;t.KEY_F3=114;t.KEY_F4=115;t.KEY_F5=116;t.KEY_F6=117;t.KEY_F7=118;t.KEY_F8=119;t.KEY_F9=120;t.KEY_F10=121;t.KEY_F11=122;t.KEY_F12=123;t.KEY_SEMICOLON=186;t.KEY_EQUAL=187;t.KEY_COMMA=188;t.KEY_MINUS=189;t.KEY_PERIOD=190;t.KEY_SLASH=191;t.KEY_LEFT_BRACKET=219;t.KEY_BACKSLASH=220;t.KEY_RIGHT_BRACKET=221;t.KEY_QUOTE=222},function(e,t,n){"use strict";function r(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(s){return void n(s)}c.done?t(u):Promise.resolve(u).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var a=e.apply(t,n);function c(e){r(a,o,i,c,u,"next",e)}function u(e){r(a,o,i,c,u,"throw",e)}c(undefined)}))}}t.__esModule=!0,t.storage=t.IMPL_INDEXED_DB=t.IMPL_LOCAL_STORAGE=t.IMPL_MEMORY=void 0;t.IMPL_MEMORY=0;t.IMPL_LOCAL_STORAGE=1;t.IMPL_INDEXED_DB=2;var i=function(e){return function(){try{return Boolean(e())}catch(t){return!1}}},a=i((function(){return window.localStorage&&window.localStorage.getItem})),c=i((function(){return(window.indexedDB||window.msIndexedDB)&&(window.IDBTransaction||window.msIDBTransaction)})),u=function(){function e(){this.impl=0,this.store={}}var t=e.prototype;return t.get=function(e){return this.store[e]},t.set=function(e,t){this.store[e]=t},t.remove=function(e){this.store[e]=undefined},t.clear=function(){this.store={}},e}(),s=function(){function e(){this.impl=1}var t=e.prototype;return t.get=function(e){var t=localStorage.getItem(e);if("string"==typeof t)return JSON.parse(t)},t.set=function(e,t){localStorage.setItem(e,JSON.stringify(t))},t.remove=function(e){localStorage.removeItem(e)},t.clear=function(){localStorage.clear()},e}(),l=function(){function e(){this.impl=2,this.dbPromise=new Promise((function(e,t){var n=(window.indexedDB||window.msIndexedDB).open("tgui-citadel-main",1);n.onupgradeneeded=function(){try{n.result.createObjectStore("storage-v1")}catch(e){t(new Error("Failed to upgrade IDB: "+n.error))}},n.onsuccess=function(){return e(n.result)},n.onerror=function(){t(new Error("Failed to open IDB: "+n.error))}}))}var t=e.prototype;return t.getStore=function(e){return this.dbPromise.then((function(t){return t.transaction("storage-v1",e).objectStore("storage-v1")}))},t.get=function(){var e=o(regeneratorRuntime.mark((function t(e){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getStore("readonly");case 2:return n=t.sent,t.abrupt("return",new Promise((function(t,r){var o=n.get(e);o.onsuccess=function(){return t(o.result)},o.onerror=function(){return r(o.error)}})));case 4:case"end":return t.stop()}}),t,this)})));return function(t){return e.apply(this,arguments)}}(),t.set=function(){var e=o(regeneratorRuntime.mark((function t(e,n){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return null===n&&(n=undefined),t.next=3,this.getStore("readwrite");case 3:t.sent.put(n,e);case 5:case"end":return t.stop()}}),t,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.remove=function(){var e=o(regeneratorRuntime.mark((function t(e){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getStore("readwrite");case 2:t.sent["delete"](e);case 4:case"end":return t.stop()}}),t,this)})));return function(t){return e.apply(this,arguments)}}(),t.clear=function(){var e=o(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getStore("readwrite");case 2:e.sent.clear();case 4:case"end":return e.stop()}}),t,this)})));return function(){return e.apply(this,arguments)}}(),e}(),f=new(function(){function e(){this.backendPromise=o(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!c()){e.next=10;break}return e.prev=1,t=new l,e.next=5,t.dbPromise;case 5:return e.abrupt("return",t);case 8:e.prev=8,e.t0=e["catch"](1);case 10:if(!a()){e.next=12;break}return e.abrupt("return",new s);case 12:return e.abrupt("return",new u);case 13:case"end":return e.stop()}}),e,null,[[1,8]])})))()}var t=e.prototype;return t.get=function(){var e=o(regeneratorRuntime.mark((function t(e){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.backendPromise;case 2:return n=t.sent,t.abrupt("return",n.get(e));case 4:case"end":return t.stop()}}),t,this)})));return function(t){return e.apply(this,arguments)}}(),t.set=function(){var e=o(regeneratorRuntime.mark((function t(e,n){var r;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.backendPromise;case 2:return r=t.sent,t.abrupt("return",r.set(e,n));case 4:case"end":return t.stop()}}),t,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.remove=function(){var e=o(regeneratorRuntime.mark((function t(e){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.backendPromise;case 2:return n=t.sent,t.abrupt("return",n.remove(e));case 4:case"end":return t.stop()}}),t,this)})));return function(t){return e.apply(this,arguments)}}(),t.clear=function(){var e=o(regeneratorRuntime.mark((function t(){var e;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.backendPromise;case 2:return e=t.sent,t.abrupt("return",e.clear());case 4:case"end":return t.stop()}}),t,this)})));return function(){return e.apply(this,arguments)}}(),e}());t.storage=f},,function(e,t,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);t.f=i?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},function(e,t,n){"use strict";var r=n(111),o=n(67),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e,t,n){"use strict";var r=n(41);e.exports=r("navigator","userAgent")||""},function(e,t,n){"use strict";var r=n(120),o=n(37),i=n(15)("toStringTag"),a="Arguments"==o(function(){return arguments}());e.exports=r?o:function(e){var t,n,r;return e===undefined?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),i))?n:a?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},function(e,t,n){"use strict";var r=n(15)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},"return":function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(c){}return n}},function(e,t,n){"use strict";var r=n(27),o=n(18),i=n(66),a=n(12),c=function(e){return function(t,n,c,u){r(n);var s=o(t),l=i(s),f=a(s.length),d=e?f-1:0,p=e?-1:1;if(c<2)for(;;){if(d in l){u=l[d],d+=p;break}if(d+=p,e?d<0:f<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:f>d;d+=p)d in l&&(u=n(u,l[d],d,s));return u}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var r=n(7),o=n(10),i=n(123),a=n(32),c=n(75),u=n(5),s=n(60),l=n(38),f=n(12),d=n(168),p=n(268),h=n(42),g=n(55),v=n(52).f,m=n(16).f,y=n(117),b=n(49),x=n(33),w=x.get,_=x.set,E=r.ArrayBuffer,k=E,S=r.DataView,C=S&&S.prototype,N=Object.prototype,A=r.RangeError,T=p.pack,O=p.unpack,I=function(e){return[255&e]},M=function(e){return[255&e,e>>8&255]},L=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},V=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},R=function(e){return T(e,23,4)},P=function(e){return T(e,52,8)},B=function(e,t){m(e.prototype,t,{get:function(){return w(this)[t]}})},D=function(e,t,n,r){var o=d(n),i=w(e);if(o+t>i.byteLength)throw A("Wrong index");var a=w(i.buffer).bytes,c=o+i.byteOffset,u=a.slice(c,c+t);return r?u:u.reverse()},F=function(e,t,n,r,o,i){var a=d(n),c=w(e);if(a+t>c.byteLength)throw A("Wrong index");for(var u=w(c.buffer).bytes,s=a+c.byteOffset,l=r(+o),f=0;fY;)(j=z[Y++])in k||a(k,j,E[j]);K.constructor=k}g&&h(C)!==N&&g(C,N);var U=new S(new k(2)),$=C.setInt8;U.setInt8(0,2147483648),U.setInt8(1,2147483649),!U.getInt8(0)&&U.getInt8(1)||c(C,{setInt8:function(e,t){$.call(this,e,t<<24>>24)},setUint8:function(e,t){$.call(this,e,t<<24>>24)}},{unsafe:!0})}else k=function(e){s(this,k,"ArrayBuffer");var t=d(e);_(this,{bytes:y.call(new Array(t),0),byteLength:t}),o||(this.byteLength=t)},S=function(e,t,n){s(this,S,"DataView"),s(e,k,"DataView");var r=w(e).byteLength,i=l(t);if(i<0||i>r)throw A("Wrong offset");if(i+(n=n===undefined?r-i:f(n))>r)throw A("Wrong length");_(this,{buffer:e,byteLength:n,byteOffset:i}),o||(this.buffer=e,this.byteLength=n,this.byteOffset=i)},o&&(B(k,"byteLength"),B(S,"buffer"),B(S,"byteLength"),B(S,"byteOffset")),c(S.prototype,{getInt8:function(e){return D(this,1,e)[0]<<24>>24},getUint8:function(e){return D(this,1,e)[0]},getInt16:function(e){var t=D(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=D(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return V(D(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return V(D(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return O(D(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return O(D(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){F(this,1,e,I,t)},setUint8:function(e,t){F(this,1,e,I,t)},setInt16:function(e,t){F(this,2,e,M,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){F(this,2,e,M,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){F(this,4,e,L,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){F(this,4,e,L,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){F(this,4,e,R,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){F(this,8,e,P,t,arguments.length>2?arguments[2]:undefined)}});b(k,"ArrayBuffer"),b(S,"DataView"),e.exports={ArrayBuffer:k,DataView:S}},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(70),a=n(25),c=n(56),u=n(61),s=n(60),l=n(8),f=n(5),d=n(85),p=n(49),h=n(89);e.exports=function(e,t,n){var g=-1!==e.indexOf("Map"),v=-1!==e.indexOf("Weak"),m=g?"set":"add",y=o[e],b=y&&y.prototype,x=y,w={},_=function(e){var t=b[e];a(b,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(v&&!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return v&&!l(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(v&&!l(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(i(e,"function"!=typeof y||!(v||b.forEach&&!f((function(){(new y).entries().next()})))))x=n.getConstructor(t,e,g,m),c.REQUIRED=!0;else if(i(e,!0)){var E=new x,k=E[m](v?{}:-0,1)!=E,S=f((function(){E.has(1)})),C=d((function(e){new y(e)})),N=!v&&f((function(){for(var e=new y,t=5;t--;)e[m](t,t);return!e.has(-0)}));C||((x=t((function(t,n){s(t,x,e);var r=h(new y,t,x);return n!=undefined&&u(n,r[m],r,g),r}))).prototype=b,b.constructor=x),(S||N)&&(_("delete"),_("has"),g&&_("get")),(N||k)&&_(m),v&&b.clear&&delete b.clear}return w[e]=x,r({global:!0,forced:x!=y},w),p(x,e),v||n.setStrong(x,e,g),x}},function(e,t,n){"use strict";var r=n(8),o=n(55);e.exports=function(e,t,n){var i,a;return o&&"function"==typeof(i=t.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(e,a),e}},function(e,t,n){"use strict";var r=Math.expm1,o=Math.exp;e.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:o(e)-1}:r},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var r=n(43),o=n(7),i=n(5);e.exports=r||!i((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete o[e]}))},function(e,t,n){"use strict";var r=n(8),o=n(37),i=n(15)("match");e.exports=function(e){var t;return r(e)&&((t=e[i])!==undefined?!!t:"RegExp"==o(e))}},function(e,t,n){"use strict";var r=n(5);function o(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=r((function(){var e=o("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),t.BROKEN_CARET=r((function(){var e=o("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},function(e,t,n){"use strict";var r,o,i=n(77),a=n(94),c=RegExp.prototype.exec,u=String.prototype.replace,s=c,l=(r=/a/,o=/b*/g,c.call(r,"a"),c.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),f=a.UNSUPPORTED_Y||a.BROKEN_CARET,d=/()??/.exec("")[1]!==undefined;(l||d||f)&&(s=function(e){var t,n,r,o,a=this,s=f&&a.sticky,p=i.call(a),h=a.source,g=0,v=e;return s&&(-1===(p=p.replace("y","")).indexOf("g")&&(p+="g"),v=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==e[a.lastIndex-1])&&(h="(?: "+h+")",v=" "+v,g++),n=new RegExp("^(?:"+h+")",p)),d&&(n=new RegExp("^"+h+"$(?!\\s)",p)),l&&(t=a.lastIndex),r=c.call(s?n:a,v),s?r?(r.input=r.input.slice(g),r[0]=r[0].slice(g),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:l&&r&&(a.lastIndex=a.global?r.index+r[0].length:t),d&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o")})),l="$0"==="a".replace(/./,"$0"),f=i("replace"),d=!!/./[f]&&""===/./[f]("a","$0"),p=!o((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,f){var h=i(e),g=!o((function(){var t={};return t[h]=function(){return 7},7!=""[e](t)})),v=g&&!o((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return t=!0,null},n[h](""),!t}));if(!g||!v||"replace"===e&&(!s||!l||d)||"split"===e&&!p){var m=/./[h],y=n(h,""[e],(function(e,t,n,r,o){return t.exec===a?g&&!o?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:l,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:d}),b=y[0],x=y[1];r(String.prototype,e,b),r(RegExp.prototype,h,2==t?function(e,t){return x.call(e,this,t)}:function(e){return x.call(e,this)})}f&&c(RegExp.prototype[h],"sham",!0)}},function(e,t,n){"use strict";var r=n(130).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},function(e,t,n){"use strict";var r=n(37),o=n(95);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var i=n.call(e,t);if("object"!=typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(e))throw TypeError("RegExp#exec called on incompatible receiver");return o.call(e,t)}},function(e,t,n){"use strict";var r;t.__esModule=!0,t.perf=void 0;null==(r=window.performance)||r.now;var o={mark:function(e,t){0},measure:function(e,t){}};t.perf=o},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=t.sendMessage=t.subscribe=void 0;var r=[];t.subscribe=function(e){return r.push(e)};t.sendMessage=function(e){};t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(459),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||void 0,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||void 0}).call(this,n(107))},function(e,t,n){"use strict";t.__esModule=!0,t.vecNormalize=t.vecLength=t.vecInverse=t.vecScale=t.vecDivide=t.vecMultiply=t.vecSubtract=t.vecAdd=void 0;var r=n(14),o=function(e,t){return e+t},i=function(e,t){return e-t},a=function(e,t){return e*t},c=function(e,t){return e/t};t.vecAdd=function(){for(var e=arguments.length,t=new Array(e),n=0;n=0||(o[n]=e[n]);return o}(e,["name","size","spin","className","style","rotation"]);n&&(l["font-size"]=100*n+"%"),"number"==typeof f&&(l.transform="rotate("+f+"deg)");var p=a.test(t),h=t.replace(a,"");return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({as:"i",className:(0,o.classes)([u,p?"far":"fas","fa-"+h,c&&"fa-spin"]),style:l},d)))};t.Icon=c,c.defaultHooks=o.pureComponentHooks},,,,function(e,t,n){"use strict";var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(o){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,n){"use strict";var r=n(7),o=n(8),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,n){"use strict";var r=n(7),o=n(32);e.exports=function(e,t){try{o(r,e,t)}catch(n){r[e]=t}return t}},function(e,t,n){"use strict";var r=n(150),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return o.call(e)}),e.exports=r.inspectSource},function(e,t,n){"use strict";var r=n(43),o=n(150);(e.exports=function(e,t){return o[e]||(o[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.6.5",mode:r?"pure":"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){"use strict";var r=n(41),o=n(52),i=n(114),a=n(11);e.exports=r("Reflect","ownKeys")||function(e){var t=o.f(a(e)),n=i.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var r=n(5);e.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},function(e,t,n){"use strict";var r,o,i=n(7),a=n(83),c=i.process,u=c&&c.versions,s=u&&u.v8;s?o=(r=s.split("."))[0]+r[1]:a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=r[1]),e.exports=o&&+o},function(e,t,n){"use strict";var r=n(18),o=n(47),i=n(12);e.exports=function(e){for(var t=r(this),n=i(t.length),a=arguments.length,c=o(a>1?arguments[1]:undefined,n),u=a>2?arguments[2]:undefined,s=u===undefined?n:o(u,n);s>c;)t[c++]=e;return t}},function(e,t,n){"use strict";var r=n(15),o=n(74),i=r("iterator"),a=Array.prototype;e.exports=function(e){return e!==undefined&&(o.Array===e||a[i]===e)}},function(e,t,n){"use strict";var r=n(84),o=n(74),i=n(15)("iterator");e.exports=function(e){if(e!=undefined)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){"use strict";var r={};r[n(15)("toStringTag")]="z",e.exports="[object z]"===String(r)},function(e,t,n){"use strict";var r=n(4),o=n(164),i=n(42),a=n(55),c=n(49),u=n(32),s=n(25),l=n(15),f=n(43),d=n(74),p=n(165),h=p.IteratorPrototype,g=p.BUGGY_SAFARI_ITERATORS,v=l("iterator"),m=function(){return this};e.exports=function(e,t,n,l,p,y,b){o(n,t,l);var x,w,_,E=function(e){if(e===p&&A)return A;if(!g&&e in C)return C[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},k=t+" Iterator",S=!1,C=e.prototype,N=C[v]||C["@@iterator"]||p&&C[p],A=!g&&N||E(p),T="Array"==t&&C.entries||N;if(T&&(x=i(T.call(new e)),h!==Object.prototype&&x.next&&(f||i(x)===h||(a?a(x,h):"function"!=typeof x[v]&&u(x,v,m)),c(x,k,!0,!0),f&&(d[k]=m))),"values"==p&&N&&"values"!==N.name&&(S=!0,A=function(){return N.call(this)}),f&&!b||C[v]===A||u(C,v,A),d[t]=A,p)if(w={values:E("values"),keys:y?A:E("keys"),entries:E("entries")},b)for(_ in w)(g||S||!(_ in C))&&s(C,_,w[_]);else r({target:t,proto:!0,forced:g||S},w);return w}},function(e,t,n){"use strict";var r=n(5);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},function(e,t,n){"use strict";var r=n(12),o=n(125),i=n(24),a=Math.ceil,c=function(e){return function(t,n,c){var u,s,l=String(i(t)),f=l.length,d=c===undefined?" ":String(c),p=r(n);return p<=f||""==d?l:(u=p-f,(s=o.call(d,a(u/d.length))).length>u&&(s=s.slice(0,u)),e?l+s:s+l)}};e.exports={start:c(!1),end:c(!0)}},function(e,t,n){"use strict";var r=n(38),o=n(24);e.exports="".repeat||function(e){var t=String(o(this)),n="",i=r(e);if(i<0||i==Infinity)throw RangeError("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(t+=t))1&i&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var r,o,i,a=n(7),c=n(5),u=n(37),s=n(53),l=n(157),f=n(108),d=n(177),p=a.location,h=a.setImmediate,g=a.clearImmediate,v=a.process,m=a.MessageChannel,y=a.Dispatch,b=0,x={},w=function(e){if(x.hasOwnProperty(e)){var t=x[e];delete x[e],t()}},_=function(e){return function(){w(e)}},E=function(e){w(e.data)},k=function(e){a.postMessage(e+"",p.protocol+"//"+p.host)};h&&g||(h=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return x[++b]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},r(b),b},g=function(e){delete x[e]},"process"==u(v)?r=function(e){v.nextTick(_(e))}:y&&y.now?r=function(e){y.now(_(e))}:m&&!d?(i=(o=new m).port2,o.port1.onmessage=E,r=s(i.postMessage,i,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||c(k)||"file:"===p.protocol?r="onreadystatechange"in f("script")?function(e){l.appendChild(f("script")).onreadystatechange=function(){l.removeChild(this),w(e)}}:function(e){setTimeout(_(e),0)}:(r=k,a.addEventListener("message",E,!1))),e.exports={set:h,clear:g}},function(e,t,n){"use strict";var r=n(27),o=function(e){var t,n;this.promise=new e((function(e,r){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},function(e,t,n){"use strict";var r=n(4),o=n(95);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(e,t,n){"use strict";var r=n(38),o=n(24),i=function(e){return function(t,n){var i,a,c=String(o(t)),u=r(n),s=c.length;return u<0||u>=s?e?"":undefined:(i=c.charCodeAt(u))<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?e?c.charAt(u):i:e?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};e.exports={codeAt:i(!1),charAt:i(!0)}},function(e,t,n){"use strict";var r=n(93);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var r=n(15)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(o){}}return!1}},function(e,t,n){"use strict";var r=n(5),o=n(91);e.exports=function(e){return r((function(){return!!o[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||o[e].name!==e}))}},function(e,t,n){"use strict";var r=n(7),o=n(5),i=n(85),a=n(13).NATIVE_ARRAY_BUFFER_VIEWS,c=r.ArrayBuffer,u=r.Int8Array;e.exports=!a||!o((function(){u(1)}))||!o((function(){new u(-1)}))||!i((function(e){new u,new u(null),new u(1.5),new u(e)}),!0)||o((function(){return 1!==new u(new c(2),1,undefined).length}))},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotKeys=t.releaseHeldKeys=t.releaseHotKey=t.acquireHotKey=void 0;var r=n(78),o=n(57),i=(0,n(29).createLogger)("hotkeys"),a={},c=[r.KEY_ESCAPE,r.KEY_ENTER,r.KEY_SPACE,r.KEY_TAB,r.KEY_CTRL,r.KEY_SHIFT,r.KEY_F5],u={},s=function(e){if(!e.ctrl||e.code!==r.KEY_F5&&e.code!==r.KEY_R){if(!(e.ctrl&&e.code===r.KEY_F||e.event.defaultPrevented||e.isModifierKey()||c.includes(e.code))){var t,n=16===(t=e.code)?"Shift":17===t?"Ctrl":18===t?"Alt":33===t?"Northeast":34===t?"Southeast":35===t?"Southwest":36===t?"Northwest":37===t?"West":38===t?"North":39===t?"East":40===t?"South":45===t?"Insert":46===t?"Delete":t>=48&&t<=57||t>=65&&t<=90?String.fromCharCode(t):t>=96&&t<=105?"Numpad"+(t-96):t>=112&&t<=123?"F"+(t-111):188===t?",":189===t?"-":190===t?".":void 0;if(n){var o=a[n];if(o)return i.debug("macro",o),Byond.command(o);if(e.isDown()&&!u[n]){u[n]=!0;var s='KeyDown "'+n+'"';return i.debug(s),Byond.command(s)}if(e.isUp()&&u[n]){u[n]=!1;var l='KeyUp "'+n+'"';return i.debug(l),Byond.command(l)}}}}else location.reload()};t.acquireHotKey=function(e){c.push(e)};t.releaseHotKey=function(e){var t=c.indexOf(e);t>=0&&c.splice(t,1)};var l=function(){for(var e=0,t=Object.keys(u);e0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props,r=t.value,o=t.dragMatrix;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:c(e,o),value:r,internalValue:r}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,r=t.dragging,o=t.value,i=n.props.onDrag;r&&i&&i(e,o)}),n.props.updateRate||400),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,r=t.minValue,i=t.maxValue,a=t.step,u=t.stepPixelSize,s=t.dragMatrix;n.setState((function(t){var n=Object.assign({},t),l=c(e,s)-n.origin;if(t.dragging){var f=Number.isFinite(r)?r%a:0;n.internalValue=(0,o.clamp)(n.internalValue+l*a/u,r-a,i+a),n.value=(0,o.clamp)(n.internalValue-n.internalValue%a+f,r,i),n.origin=c(e,s)}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,r=t.onChange,o=t.onDrag,i=n.state,a=i.dragging,c=i.value,u=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!a,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),a)n.suppressFlicker(),r&&r(e,c),o&&o(e,c);else if(n.inputRef){var s=n.inputRef.current;s.value=u;try{s.focus(),s.select()}catch(l){}}},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.state,n=t.dragging,i=t.editing,c=t.value,u=t.suppressingFlicker,s=this.props,l=s.animated,f=s.value,d=s.unit,p=s.minValue,h=s.maxValue,g=s.format,v=s.onChange,m=s.onDrag,y=s.children,b=s.height,x=s.lineHeight,w=s.fontSize,_=f;(n||u)&&(_=c);var E=function(e){return e+(d?" "+d:"")},k=l&&!n&&!u&&(0,r.createComponentVNode)(2,a.AnimatedNumber,{value:_,format:g,children:E})||E(g?g(_):_),S=(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:i?undefined:"none",height:b,"line-height":x,"font-size":w},onBlur:function(t){if(i){var n=(0,o.clamp)(parseFloat(t.target.value),p,h);Number.isNaN(n)?e.setState({editing:!1}):(e.setState({editing:!1,value:n}),e.suppressFlicker(),v&&v(t,n),m&&m(t,n))}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,o.clamp)(parseFloat(t.target.value),p,h);return Number.isNaN(n)?void e.setState({editing:!1}):(e.setState({editing:!1,value:n}),e.suppressFlicker(),v&&v(t,n),void(m&&m(t,n)))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef);return y({dragging:n,editing:i,value:f,displayValue:_,displayElement:k,inputElement:S,handleDragStart:this.handleDragStart})},i}(r.Component);t.DraggableControl=u,u.defaultHooks=i.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50,dragMatrix:[1,0]}},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var r=n(0),o=n(9),i=n(6),a=n(138),c=n(17);var u=function(e){var t,n;function u(t){var n;n=e.call(this,t)||this;var i=t.value;return n.inputRef=(0,r.createRef)(),n.state={value:i,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,r=t.dragging,o=t.value,i=n.props.onDrag;r&&i&&i(e,o)}),n.props.updateRate||400),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,r=t.minValue,i=t.maxValue,a=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),u=n.origin-e.screenY;if(t.dragging){var s=Number.isFinite(r)?r%a:0;n.internalValue=(0,o.clamp)(n.internalValue+u*a/c,r-a,i+a),n.value=(0,o.clamp)(n.internalValue-n.internalValue%a+s,r,i),n.origin=e.screenY}else Math.abs(u)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,r=t.onChange,o=t.onDrag,i=n.state,a=i.dragging,c=i.value,u=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!a,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),a)n.suppressFlicker(),r&&r(e,c),o&&o(e,c);else if(n.inputRef){var s=n.inputRef.current;s.value=u;try{s.focus(),s.select()}catch(l){}}},n}return n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,u.prototype.render=function(){var e=this,t=this.state,n=t.dragging,u=t.editing,s=t.value,l=t.suppressingFlicker,f=this.props,d=f.className,p=f.fluid,h=f.animated,g=f.value,v=f.unit,m=f.minValue,y=f.maxValue,b=f.height,x=f.width,w=f.lineHeight,_=f.fontSize,E=f.format,k=f.onChange,S=f.onDrag,C=g;(n||l)&&(C=s);var N=function(e){return(0,r.createVNode)(1,"div","NumberInput__content",e+(v?" "+v:""),0,{unselectable:Byond.IS_LTE_IE8})},A=h&&!n&&!l&&(0,r.createComponentVNode)(2,a.AnimatedNumber,{value:C,format:E,children:N})||N(E?E(C):C);return(0,r.createComponentVNode)(2,c.Box,{className:(0,i.classes)(["NumberInput",p&&"NumberInput--fluid",d]),minWidth:x,minHeight:b,lineHeight:w,fontSize:_,onMouseDown:this.handleDragStart,children:[(0,r.createVNode)(1,"div","NumberInput__barContainer",(0,r.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,o.clamp)((C-m)/(y-m)*100,0,100)+"%"}}),2),A,(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:u?undefined:"none",height:b,"line-height":w,"font-size":_},onBlur:function(t){if(u){var n=(0,o.clamp)(parseFloat(t.target.value),m,y);Number.isNaN(n)?e.setState({editing:!1}):(e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),S&&S(t,n))}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,o.clamp)(parseFloat(t.target.value),m,y);return Number.isNaN(n)?void e.setState({editing:!1}):(e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),void(S&&S(t,n)))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},u}(r.Component);t.NumberInput=u,u.defaultHooks=i.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";t.__esModule=!0,t.Layout=void 0;var r=n(0),o=n(6),i=n(17),a=n(57);function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var u=function(e){var t=e.className,n=e.theme,a=void 0===n?"nanotrasen":n,u=e.children,s=c(e,["className","theme","children"]);return(0,r.createVNode)(1,"div","theme-"+a,(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Layout",t].concat((0,i.computeBoxClassName)(s))),u,0,Object.assign({},(0,i.computeBoxProps)(s)))),2)};t.Layout=u;var s=function(e){var t=e.className,n=e.scrollable,a=e.children,u=c(e,["className","scrollable","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Layout__content",n&&"Layout__content--scrollable",t].concat((0,i.computeBoxClassName)(u))),a,0,Object.assign({},(0,i.computeBoxProps)(u))))};s.defaultHooks={onComponentDidMount:function(e){return(0,a.addScrollableNode)(e)},onComponentWillUnmount:function(e){return(0,a.removeScrollableNode)(e)}},u.Content=s},,,,,,,function(e,t,n){"use strict";n(223),n(224),n(225),n(226),n(227),n(228),n(229),n(230),n(231),n(232),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(242),n(243),n(244),n(245),n(246),n(247),n(249),n(251),n(252),n(253),n(163),n(254),n(255),n(256),n(257),n(258),n(259),n(260),n(261),n(262),n(263),n(264),n(265),n(266),n(267),n(269),n(270),n(271),n(272),n(273),n(275),n(276),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(291),n(292),n(293),n(295),n(296),n(297),n(298),n(299),n(300),n(301),n(302),n(303),n(304),n(305),n(306),n(307),n(309),n(310),n(311),n(312),n(313),n(314),n(316),n(317),n(319),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(345),n(346),n(347),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(129),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389),n(390),n(391),n(392),n(393),n(394),n(395),n(396),n(397),n(398),n(399),n(400),n(401),n(403),n(404),n(405),n(406),n(407),n(408),n(409),n(410),n(411),n(412),n(413),n(414),n(415),n(416),n(417),n(418),n(419),n(420),n(421),n(422),n(423),n(424),n(425),n(426),n(427),n(428),n(429),n(430),n(431),n(432),n(433),n(434),n(435),n(436),n(437),n(438),n(439),n(440),n(441),n(442),n(443),n(444),n(445),n(446)},function(e,t,n){"use strict";var r=n(10),o=n(5),i=n(108);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var r=n(7),o=n(109),i=r["__core-js_shared__"]||o("__core-js_shared__",{});e.exports=i},function(e,t,n){"use strict";var r=n(7),o=n(110),i=r.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},function(e,t,n){"use strict";var r=n(20),o=n(112),i=n(23),a=n(16);e.exports=function(e,t){for(var n=o(t),c=a.f,u=i.f,s=0;su;)r(c,n=t[u++])&&(~i(s,n)||s.push(n));return s}},function(e,t,n){"use strict";var r=n(115);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var r=n(10),o=n(16),i=n(11),a=n(71);e.exports=r?Object.defineProperties:function(e,t){i(e);for(var n,r=a(t),c=r.length,u=0;c>u;)o.f(e,n=r[u++],t[n]);return e}},function(e,t,n){"use strict";var r=n(41);e.exports=r("document","documentElement")},function(e,t,n){"use strict";var r=n(31),o=n(52).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?function(e){try{return o(e)}catch(t){return a.slice()}}(e):o(r(e))}},function(e,t,n){"use strict";var r=n(15);t.f=r},function(e,t,n){"use strict";var r=n(18),o=n(47),i=n(12),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),c=i(n.length),u=o(e,c),s=o(t,c),l=arguments.length>2?arguments[2]:undefined,f=a((l===undefined?c:o(l,c))-s,c-u),d=1;for(s0;)s in n?n[u]=n[s]:delete n[u],u+=d,s+=d;return n}},function(e,t,n){"use strict";var r=n(58),o=n(12),i=n(53);e.exports=function a(e,t,n,c,u,s,l,f){for(var d,p=u,h=0,g=!!l&&i(l,f,3);h0&&r(d))p=a(e,t,d,o(d.length),p,s-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[p]=d}p++}h++}return p}},function(e,t,n){"use strict";var r=n(11);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(a){var i=e["return"];throw i!==undefined&&r(i.call(e)),a}}},function(e,t,n){"use strict";var r=n(31),o=n(50),i=n(74),a=n(33),c=n(121),u=a.set,s=a.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){u(this,{type:"Array Iterator",target:r(e),index:0,kind:t})}),(function(){var e=s(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(e,t,n){"use strict";var r=n(165).IteratorPrototype,o=n(48),i=n(51),a=n(49),c=n(74),u=function(){return this};e.exports=function(e,t,n){var s=t+" Iterator";return e.prototype=o(r,{next:i(1,n)}),a(e,s,!1,!0),c[s]=u,e}},function(e,t,n){"use strict";var r,o,i,a=n(42),c=n(32),u=n(20),s=n(15),l=n(43),f=s("iterator"),d=!1;[].keys&&("next"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):d=!0),r==undefined&&(r={}),l||u(r,f)||c(r,f,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:d}},function(e,t,n){"use strict";var r=n(8);e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var r=n(31),o=n(38),i=n(12),a=n(44),c=n(28),u=Math.min,s=[].lastIndexOf,l=!!s&&1/[1].lastIndexOf(1,-0)<0,f=a("lastIndexOf"),d=c("indexOf",{ACCESSORS:!0,1:0}),p=l||!f||!d;e.exports=p?function(e){if(l)return s.apply(this,arguments)||0;var t=r(this),n=i(t.length),a=n-1;for(arguments.length>1&&(a=u(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:s},function(e,t,n){"use strict";var r=n(38),o=n(12);e.exports=function(e){if(e===undefined)return 0;var t=r(e),n=o(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var r=n(27),o=n(8),i=[].slice,a={},c=function(e,t,n){if(!(t in a)){for(var r=[],o=0;o1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!m(this,e)}}),i(l.prototype,n?{get:function(e){var t=m(this,e);return t&&t.value},set:function(e,t){return v(this,0===e?0:e,t)}}:{add:function(e){return v(this,e=0===e?0:e,e)}}),f&&r(l.prototype,"size",{get:function(){return p(this).size}}),l},setStrong:function(e,t,n){var r=t+" Iterator",o=g(t),i=g(r);s(e,t,(function(e,t){h(this,{type:r,target:e,state:o(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),l(t)}}},function(e,t,n){"use strict";var r=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:r(1+e)}},function(e,t,n){"use strict";var r=n(8),o=Math.floor;e.exports=function(e){return!r(e)&&isFinite(e)&&o(e)===e}},function(e,t,n){"use strict";var r=n(7),o=n(62).trim,i=n(91),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+"08")||22!==a(i+"0x16");e.exports=u?function(e,t){var n=o(String(e));return a(n,t>>>0||(c.test(n)?16:10))}:a},function(e,t,n){"use strict";var r=n(10),o=n(71),i=n(31),a=n(81).f,c=function(e){return function(t){for(var n,c=i(t),u=o(c),s=u.length,l=0,f=[];s>l;)n=u[l++],r&&!a.call(c,n)||f.push(e?[n,c[n]]:c[n]);return f}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var r=n(7);e.exports=r.Promise},function(e,t,n){"use strict";var r=n(83);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},function(e,t,n){"use strict";var r,o,i,a,c,u,s,l,f=n(7),d=n(23).f,p=n(37),h=n(127).set,g=n(177),v=f.MutationObserver||f.WebKitMutationObserver,m=f.process,y=f.Promise,b="process"==p(m),x=d(f,"queueMicrotask"),w=x&&x.value;w||(r=function(){var e,t;for(b&&(e=m.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(n){throw o?a():i=undefined,n}}i=undefined,e&&e.enter()},b?a=function(){m.nextTick(r)}:v&&!g?(c=!0,u=document.createTextNode(""),new v(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):y&&y.resolve?(s=y.resolve(undefined),l=s.then,a=function(){l.call(s,r)}):a=function(){h.call(f,r)}),e.exports=w||function(e){var t={fn:e,next:undefined};i&&(i.next=t),o||(o=t,a()),i=t}},function(e,t,n){"use strict";var r=n(11),o=n(8),i=n(128);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var r=n(83);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(r)},function(e,t,n){"use strict";var r=n(402);e.exports=function(e,t){var n=r(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var r=n(18),o=n(12),i=n(119),a=n(118),c=n(53),u=n(13).aTypedArrayConstructor;e.exports=function(e){var t,n,s,l,f,d,p=r(e),h=arguments.length,g=h>1?arguments[1]:undefined,v=g!==undefined,m=i(p);if(m!=undefined&&!a(m))for(d=(f=m.call(p)).next,p=[];!(l=d.call(f)).done;)p.push(l.value);for(v&&h>2&&(g=c(g,arguments[2],2)),n=o(p.length),s=new(u(this))(n),t=0;n>t;t++)s[t]=v?g(p[t],t):p[t];return s}},function(e,t,n){"use strict";var r=n(75),o=n(56).getWeakData,i=n(11),a=n(8),c=n(60),u=n(61),s=n(21),l=n(20),f=n(33),d=f.set,p=f.getterFor,h=s.find,g=s.findIndex,v=0,m=function(e){return e.frozen||(e.frozen=new y)},y=function(){this.entries=[]},b=function(e,t){return h(e.entries,(function(e){return e[0]===t}))};y.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var n=b(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=g(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,s){var f=e((function(e,r){c(e,f,t),d(e,{type:t,id:v++,frozen:undefined}),r!=undefined&&u(r,e[s],e,n)})),h=p(t),g=function(e,t,n){var r=h(e),a=o(i(t),!0);return!0===a?m(r).set(t,n):a[r.id]=n,e};return r(f.prototype,{"delete":function(e){var t=h(this);if(!a(e))return!1;var n=o(e);return!0===n?m(t)["delete"](e):n&&l(n,t.id)&&delete n[t.id]},has:function(e){var t=h(this);if(!a(e))return!1;var n=o(e);return!0===n?m(t).has(e):n&&l(n,t.id)}}),r(f.prototype,n?{get:function(e){var t=h(this);if(a(e)){var n=o(e);return!0===n?m(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return g(this,e,t)}}:{add:function(e){return g(this,e,!0)}}),f}}},function(e,t,n){"use strict";t.__esModule=!0,t.EventEmitter=void 0;var r=function(){function e(){this.listeners={}}var t=e.prototype;return t.on=function(e,t){this.listeners[e]=this.listeners[e]||[],this.listeners[e].push(t)},t.off=function(e,t){var n=this.listeners[e];if(!n)throw new Error('There is no listeners for "'+e+'"');this.listeners[e]=n.filter((function(e){return e!==t}))},t.emit=function(e){var t=this.listeners[e];if(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;ou&&(o[a]=u-t[a],i=!0)}return[i,o]};t.dragStartHandler=function(e){d.log("drag start"),h=!0,u=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",T),document.addEventListener("mouseup",A),T(e)};var A=function M(e){d.log("drag end"),T(e),document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",M),h=!1,k()},T=function(e){h&&(e.preventDefault(),b((0,o.vecAdd)([e.screenX,e.screenY],u)))};t.resizeStartHandler=function(e,t){return function(n){s=[e,t],d.log("resize start",s),g=!0,u=[window.screenLeft-n.screenX,window.screenTop-n.screenY],l=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",I),document.addEventListener("mouseup",O),I(n)}};var O=function L(e){d.log("resize end",f),I(e),document.removeEventListener("mousemove",I),document.removeEventListener("mouseup",L),g=!1,k()},I=function(e){g&&(e.preventDefault(),(f=(0,o.vecAdd)(l,(0,o.vecMultiply)(s,(0,o.vecAdd)([e.screenX,e.screenY],(0,o.vecInverse)([window.screenLeft,window.screenTop]),u,[1,1]))))[0]=Math.max(f[0],150),f[1]=Math.max(f[1],50),x(f))}},function(e,t,n){"use strict";t.__esModule=!0,t.focusWindow=t.focusMap=void 0;t.focusMap=function(){Byond.winset("mapwindow.map",{focus:!0})};t.focusWindow=function(){Byond.winset(window.__windowId__,{focus:!0})}},function(e,t,n){"use strict";t.__esModule=!0,t.selectDebug=void 0;t.selectDebug=function(e){return e.debug}},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var r=n(0),o=n(6),i=n(135),a=n(29),c=n(17),u=n(103),s=n(192);function l(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function f(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var d=(0,a.createLogger)("Button"),p=function(e){var t=e.className,n=e.fluid,a=e.icon,l=e.iconRotation,p=e.iconSpin,h=e.color,g=e.disabled,v=e.selected,m=e.tooltip,y=e.tooltipPosition,b=e.ellipsis,x=e.compact,w=e.circular,_=e.content,E=e.children,k=e.onclick,S=e.onClick,C=f(e,["className","fluid","icon","iconRotation","iconSpin","color","disabled","selected","tooltip","tooltipPosition","ellipsis","compact","circular","content","children","onclick","onClick"]),N=!(!_&&!E);return k&&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"),(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.Box,Object.assign({className:(0,o.classes)(["Button",n&&"Button--fluid",g&&"Button--disabled",v&&"Button--selected",N&&"Button--hasContent",b&&"Button--ellipsis",w&&"Button--circular",x&&"Button--compact",h&&"string"==typeof h?"Button--color--"+h:"Button--color--default",t]),tabIndex:!g&&"0",unselectable:Byond.IS_LTE_IE8,onClick:function(e){!g&&S&&S(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;if(t===i.KEY_SPACE||t===i.KEY_ENTER)return e.preventDefault(),void(!g&&S&&S(e));t!==i.KEY_ESCAPE||e.preventDefault()}},C,{children:[a&&(0,r.createComponentVNode)(2,u.Icon,{name:a,rotation:l,spin:p}),_,E,m&&(0,r.createComponentVNode)(2,s.Tooltip,{content:m,position:y})]})))};t.Button=p,p.defaultHooks=o.pureComponentHooks;var h=function(e){var t=e.checked,n=f(e,["checked"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,p,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=h,p.Checkbox=h;var g=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}l(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmContent,o=void 0===n?"Confirm?":n,i=t.confirmColor,a=void 0===i?"bad":i,c=t.confirmIcon,u=t.icon,s=t.color,l=t.content,d=t.onClick,h=f(t,["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,p,Object.assign({content:this.state.clickedOnce?o:l,icon:this.state.clickedOnce?c:u,color:this.state.clickedOnce?a:s,onClick:function(){return e.state.clickedOnce?d():e.setClickedOnce(!0)}},h)))},t}(r.Component);t.ButtonConfirm=g,p.Confirm=g;var v=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,r.createRef)(),t.state={inInput:!1},t}l(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,a=t.content,l=t.icon,d=t.iconRotation,p=t.iconSpin,h=t.tooltip,g=t.tooltipPosition,v=t.color,m=void 0===v?"default":v,y=(t.placeholder,t.maxLength,f(t,["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","placeholder","maxLength"]));return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.Box,Object.assign({className:(0,o.classes)(["Button",n&&"Button--fluid","Button--color--"+m])},y,{onClick:function(){return e.setInInput(!0)},children:[l&&(0,r.createComponentVNode)(2,u.Icon,{name:l,rotation:d,spin:p}),(0,r.createVNode)(1,"div",null,a,0),(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef),h&&(0,r.createComponentVNode)(2,s.Tooltip,{content:h,position:g})]})))},t}(r.Component);t.ButtonInput=v,p.Input=v},function(e,t,n){"use strict";t.__esModule=!0,t.Tooltip=void 0;var r=n(0),o=n(6);t.Tooltip=function(e){var t=e.content,n=e.position,i=void 0===n?"bottom":n,a="string"==typeof t&&t.length>35;return(0,r.createVNode)(1,"div",(0,o.classes)(["Tooltip",a&&"Tooltip--long",i&&"Tooltip--"+i]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var r=n(0),o=n(6),i=n(17);t.Dimmer=function(e){var t=e.className,n=e.children,a=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["Dimmer"].concat(t))},a,{children:(0,r.createVNode)(1,"div","Dimmer__inner",n,0)})))}},function(e,t,n){"use strict";t.__esModule=!0,t.Divider=void 0;var r=n(0),o=n(6);t.Divider=function(e){var t=e.vertical,n=e.hidden;return(0,r.createVNode)(1,"div",(0,o.classes)(["Divider",n&&"Divider--hidden",t?"Divider--vertical":"Divider--horizontal"]))}},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var r=n(0),o=n(6),i=n(17);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t=e.className,n=e.direction,r=e.wrap,i=e.align,c=e.justify,u=e.inline,s=e.spacing,l=void 0===s?0:s,f=a(e,["className","direction","wrap","align","justify","inline","spacing"]);return Object.assign({className:(0,o.classes)(["Flex",Byond.IS_LTE_IE10&&("column"===n?"Flex--iefix--column":"Flex--iefix"),u&&"Flex--inline",l>0&&"Flex--spacing--"+l,t]),style:Object.assign({},f.style,{"flex-direction":n,"flex-wrap":r,"align-items":i,"justify-content":c})},f)};t.computeFlexProps=c;var u=function(e){return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({},c(e))))};t.Flex=u,u.defaultHooks=o.pureComponentHooks;var s=function(e){var t=e.className,n=e.style,r=e.grow,c=e.order,u=e.shrink,s=e.basis,l=void 0===s?e.width:s,f=e.align,d=a(e,["className","style","grow","order","shrink","basis","align"]);return Object.assign({className:(0,o.classes)(["Flex__item",Byond.IS_LTE_IE10&&"Flex__item--iefix",Byond.IS_LTE_IE10&&r>0&&"Flex__item--iefix--grow",t]),style:Object.assign({},n,{"flex-grow":r,"flex-shrink":u,"flex-basis":(0,i.unit)(l),order:c,"align-self":f})},d)};t.computeFlexItemProps=s;var l=function(e){return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({},s(e))))};t.FlexItem=l,l.defaultHooks=o.pureComponentHooks,u.Item=l},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var r=n(0),o=n(6),i=n(17);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t=e.className,n=e.collapsing,c=e.children,u=a(e,["className","collapsing","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"table",(0,o.classes)(["Table",n&&"Table--collapsing",t,(0,i.computeBoxClassName)(u)]),(0,r.createVNode)(1,"tbody",null,c,0),2,Object.assign({},(0,i.computeBoxProps)(u))))};t.Table=c,c.defaultHooks=o.pureComponentHooks;var u=function(e){var t=e.className,n=e.header,c=a(e,["className","header"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"tr",(0,o.classes)(["Table__row",n&&"Table__row--header",t,(0,i.computeBoxClassName)(e)]),null,1,Object.assign({},(0,i.computeBoxProps)(c))))};t.TableRow=u,u.defaultHooks=o.pureComponentHooks;var s=function(e){var t=e.className,n=e.collapsing,c=e.header,u=a(e,["className","collapsing","header"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"td",(0,o.classes)(["Table__cell",n&&"Table__cell--collapsing",c&&"Table__cell--header",t,(0,i.computeBoxClassName)(e)]),null,1,Object.assign({},(0,i.computeBoxProps)(u))))};t.TableCell=s,s.defaultHooks=o.pureComponentHooks,c.Row=u,c.Cell=s},function(e,t,n){"use strict";t.__esModule=!0,t.Input=t.toInputValue=void 0;var r=n(0),o=n(6),i=n(17),a=n(78);function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var u=function(e){return"number"!=typeof e&&"string"!=typeof e?"":String(e)};t.toInputValue=u;var s=function(e){var t,n;function s(){var t;return(t=e.call(this)||this).inputRef=(0,r.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,r=t.props.onInput;n||t.setEditing(!0),r&&r(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,r=t.props.onChange;n&&(t.setEditing(!1),r&&r(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,r=n.onInput,o=n.onChange,i=n.onEnter;return e.keyCode===a.KEY_ENTER?(t.setEditing(!1),o&&o(e,e.target.value),r&&r(e,e.target.value),i&&i(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):e.keyCode===a.KEY_ESCAPE?(t.setEditing(!1),e.target.value=u(t.props.value),void e.target.blur()):void 0},t}n=e,(t=s).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var l=s.prototype;return l.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=u(e)),this.props.autoFocus&&setTimeout((function(){return t.focus()}),1)},l.componentDidUpdate=function(e,t){var n=this.state.editing,r=e.value,o=this.props.value,i=this.inputRef.current;i&&!n&&r!==o&&(i.value=u(o))},l.setEditing=function(e){this.setState({editing:e})},l.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,a=c(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder"]),u=a.className,s=a.fluid,l=a.monospace,f=c(a,["className","fluid","monospace"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["Input",s&&"Input--fluid",l&&"Input--monospace",u])},f,{children:[(0,r.createVNode)(1,"div","Input__baseline",".",16),(0,r.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},s}(r.Component);t.Input=s},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var r=n(0),o=n(6),i=n(17),a=n(194),c=function(e){var t=e.children;return(0,r.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=c,c.defaultHooks=o.pureComponentHooks;var u=function(e){var t=e.className,n=e.label,a=e.labelColor,c=void 0===a?"label":a,u=e.color,s=e.textAlign,l=e.buttons,f=e.content,d=e.children;return(0,r.createVNode)(1,"tr",(0,o.classes)(["LabeledList__row",t]),[(0,r.createComponentVNode)(2,i.Box,{as:"td",color:c,className:(0,o.classes)(["LabeledList__cell","LabeledList__label"]),children:n?n+":":null}),(0,r.createComponentVNode)(2,i.Box,{as:"td",color:u,textAlign:s,className:(0,o.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:l?undefined:2,children:[f,d]}),l&&(0,r.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",l,0)],0)};t.LabeledListItem=u,u.defaultHooks=o.pureComponentHooks;var s=function(e){var t=e.size?(0,i.unit)(Math.max(0,e.size-1)):0;return(0,r.createVNode)(1,"tr","LabeledList__row",(0,r.createVNode)(1,"td",null,(0,r.createComponentVNode)(2,a.Divider),2,{colSpan:3,style:{"padding-top":t,"padding-bottom":t}}),2)};t.LabeledListDivider=s,s.defaultHooks=o.pureComponentHooks,c.Item=u,c.Divider=s},function(e,t,n){"use strict";t.__esModule=!0,t.Window=void 0;var r=n(0),o=n(6),i=n(22),a=n(19),c=n(2),u=n(1),s=n(36),l=n(137),f=(n(200),n(188)),d=n(29),p=n(141);var h=(0,d.createLogger)("Window"),g=[400,600],v=function(e){var t,n;function u(){return e.apply(this,arguments)||this}n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=u.prototype;return d.componentDidMount=function(){var e,t=(0,c.useBackend)(this.context),n=t.config;if(!t.suspended){h.log("mounting");var r=Object.assign({size:g},n.window);this.props.width&&this.props.height&&(r.size=[this.props.width,this.props.height]),(null==(e=n.window)?void 0:e.key)&&(0,f.setWindowKey)(n.window.key),(0,f.recallWindowGeometry)(r)}},d.render=function(){var e,t=this.props,n=t.resizable,u=t.theme,d=t.title,g=t.children,v=(0,c.useBackend)(this.context),m=v.config,b=v.suspended,x=(0,l.useDebug)(this.context).debugLayout,w=(0,i.useDispatch)(this.context),_=null==(e=m.window)?void 0:e.fancy,E=m.user&&(m.user.observer?m.status=0||(o[n]=e[n]);return o}(e,["className","fitted","children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,p.Layout.Content,Object.assign({className:(0,o.classes)(["Window__content",t])},a,{children:n&&i||(0,r.createVNode)(1,"div","Window__contentPadding",i,0)})))};var m=function(e){switch(e){case s.UI_INTERACTIVE:return"good";case s.UI_UPDATE:return"average";case s.UI_DISABLED:default:return"bad"}},y=function(e,t){var n=e.className,c=e.title,s=e.status,l=e.fancy,f=e.onDragStart,d=e.onClose;(0,i.useDispatch)(t);return(0,r.createVNode)(1,"div",(0,o.classes)(["TitleBar",n]),[s===undefined&&(0,r.createComponentVNode)(2,u.Icon,{className:"TitleBar__statusIcon",name:"tools",opacity:.5})||(0,r.createComponentVNode)(2,u.Icon,{className:"TitleBar__statusIcon",color:m(s),name:"eye"}),(0,r.createVNode)(1,"div","TitleBar__title","string"==typeof c&&c===c.toLowerCase()&&(0,a.toTitleCase)(c)||c,0),(0,r.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return l&&f(e)}}),!1,!!l&&(0,r.createVNode)(1,"div","TitleBar__close TitleBar__clickable",Byond.IS_LTE_IE8?"x":"\xd7",0,{onclick:d})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.openExternalBrowser=t.toggleDebugLayout=t.toggleKitchenSink=void 0;var r=n(22),o=(0,r.createAction)("debug/toggleKitchenSink");t.toggleKitchenSink=o;var i=(0,r.createAction)("debug/toggleDebugLayout");t.toggleDebugLayout=i;var a=(0,r.createAction)("debug/openExternalBrowser");t.openExternalBrowser=a},,,,function(e,t,n){"use strict";t.__esModule=!0,t.createUuid=void 0;t.createUuid=function(){var e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:3&n|8).toString(16)}))}},,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(41),a=n(43),c=n(10),u=n(115),s=n(155),l=n(5),f=n(20),d=n(58),p=n(8),h=n(11),g=n(18),v=n(31),m=n(40),y=n(51),b=n(48),x=n(71),w=n(52),_=n(158),E=n(114),k=n(23),S=n(16),C=n(81),N=n(32),A=n(25),T=n(111),O=n(82),I=n(68),M=n(67),L=n(15),V=n(159),R=n(26),P=n(49),B=n(33),D=n(21).forEach,F=O("hidden"),j=L("toPrimitive"),K=B.set,z=B.getterFor("Symbol"),Y=Object.prototype,U=o.Symbol,$=i("JSON","stringify"),H=k.f,W=S.f,q=_.f,G=C.f,X=T("symbols"),Z=T("op-symbols"),Q=T("string-to-symbol-registry"),J=T("symbol-to-string-registry"),ee=T("wks"),te=o.QObject,ne=!te||!te.prototype||!te.prototype.findChild,re=c&&l((function(){return 7!=b(W({},"a",{get:function(){return W(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=H(Y,t);r&&delete Y[t],W(e,t,n),r&&e!==Y&&W(Y,t,r)}:W,oe=function(e,t){var n=X[e]=b(U.prototype);return K(n,{type:"Symbol",tag:e,description:t}),c||(n.description=t),n},ie=s?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof U},ae=function(e,t,n){e===Y&&ae(Z,t,n),h(e);var r=m(t,!0);return h(n),f(X,r)?(n.enumerable?(f(e,F)&&e[F][r]&&(e[F][r]=!1),n=b(n,{enumerable:y(0,!1)})):(f(e,F)||W(e,F,y(1,{})),e[F][r]=!0),re(e,r,n)):W(e,r,n)},ce=function(e,t){h(e);var n=v(t),r=x(n).concat(de(n));return D(r,(function(t){c&&!se.call(n,t)||ae(e,t,n[t])})),e},ue=function(e,t){return t===undefined?b(e):ce(b(e),t)},se=function(e){var t=m(e,!0),n=G.call(this,t);return!(this===Y&&f(X,t)&&!f(Z,t))&&(!(n||!f(this,t)||!f(X,t)||f(this,F)&&this[F][t])||n)},le=function(e,t){var n=v(e),r=m(t,!0);if(n!==Y||!f(X,r)||f(Z,r)){var o=H(n,r);return!o||!f(X,r)||f(n,F)&&n[F][r]||(o.enumerable=!0),o}},fe=function(e){var t=q(v(e)),n=[];return D(t,(function(e){f(X,e)||f(I,e)||n.push(e)})),n},de=function(e){var t=e===Y,n=q(t?Z:v(e)),r=[];return D(n,(function(e){!f(X,e)||t&&!f(Y,e)||r.push(X[e])})),r};(u||(A((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor");var e=arguments.length&&arguments[0]!==undefined?String(arguments[0]):undefined,t=M(e),n=function r(e){this===Y&&r.call(Z,e),f(this,F)&&f(this[F],t)&&(this[F][t]=!1),re(this,t,y(1,e))};return c&&ne&&re(Y,t,{configurable:!0,set:n}),oe(t,e)}).prototype,"toString",(function(){return z(this).tag})),A(U,"withoutSetter",(function(e){return oe(M(e),e)})),C.f=se,S.f=ae,k.f=le,w.f=_.f=fe,E.f=de,V.f=function(e){return oe(L(e),e)},c&&(W(U.prototype,"description",{configurable:!0,get:function(){return z(this).description}}),a||A(Y,"propertyIsEnumerable",se,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:U}),D(x(ee),(function(e){R(e)})),r({target:"Symbol",stat:!0,forced:!u},{"for":function(e){var t=String(e);if(f(Q,t))return Q[t];var n=U(t);return Q[t]=n,J[n]=t,n},keyFor:function(e){if(!ie(e))throw TypeError(e+" is not a symbol");if(f(J,e))return J[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),r({target:"Object",stat:!0,forced:!u,sham:!c},{create:ue,defineProperty:ae,defineProperties:ce,getOwnPropertyDescriptor:le}),r({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:fe,getOwnPropertySymbols:de}),r({target:"Object",stat:!0,forced:l((function(){E.f(1)}))},{getOwnPropertySymbols:function(e){return E.f(g(e))}}),$)&&r({target:"JSON",stat:!0,forced:!u||l((function(){var e=U();return"[null]"!=$([e])||"{}"!=$({a:e})||"{}"!=$(Object(e))}))},{stringify:function(e,t,n){for(var r,o=[e],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=t,(p(t)||e!==undefined)&&!ie(e))return d(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!ie(t))return t}),o[1]=t,$.apply(null,o)}});U.prototype[j]||N(U.prototype,j,U.prototype.valueOf),P(U,"Symbol"),I[F]=!0},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(7),a=n(20),c=n(8),u=n(16).f,s=n(152),l=i.Symbol;if(o&&"function"==typeof l&&(!("description"in l.prototype)||l().description!==undefined)){var f={},d=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof d?new l(e):e===undefined?l():l(e);return""===e&&(f[t]=!0),t};s(d,l);var p=d.prototype=l.prototype;p.constructor=d;var h=p.toString,g="Symbol(test)"==String(l("test")),v=/^Symbol\((.*)\)[^)]+$/;u(p,"description",{configurable:!0,get:function(){var e=c(this)?this.valueOf():this,t=h.call(e);if(a(f,e))return"";var n=g?t.slice(7,-1):t.replace(v,"$1");return""===n?undefined:n}}),r({global:!0,forced:!0},{Symbol:d})}},function(e,t,n){"use strict";n(26)("asyncIterator")},function(e,t,n){"use strict";n(26)("hasInstance")},function(e,t,n){"use strict";n(26)("isConcatSpreadable")},function(e,t,n){"use strict";n(26)("iterator")},function(e,t,n){"use strict";n(26)("match")},function(e,t,n){"use strict";n(26)("matchAll")},function(e,t,n){"use strict";n(26)("replace")},function(e,t,n){"use strict";n(26)("search")},function(e,t,n){"use strict";n(26)("species")},function(e,t,n){"use strict";n(26)("split")},function(e,t,n){"use strict";n(26)("toPrimitive")},function(e,t,n){"use strict";n(26)("toStringTag")},function(e,t,n){"use strict";n(26)("unscopables")},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(58),a=n(8),c=n(18),u=n(12),s=n(54),l=n(72),f=n(73),d=n(15),p=n(116),h=d("isConcatSpreadable"),g=p>=51||!o((function(){var e=[];return e[h]=!1,e.concat()[0]!==e})),v=f("concat"),m=function(e){if(!a(e))return!1;var t=e[h];return t!==undefined?!!t:i(e)};r({target:"Array",proto:!0,forced:!g||!v},{concat:function(e){var t,n,r,o,i,a=c(this),f=l(a,0),d=0;for(t=-1,r=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");s(f,d++,i)}return f.length=d,f}})},function(e,t,n){"use strict";var r=n(4),o=n(160),i=n(50);r({target:"Array",proto:!0},{copyWithin:o}),i("copyWithin")},function(e,t,n){"use strict";var r=n(4),o=n(21).every,i=n(44),a=n(28),c=i("every"),u=a("every");r({target:"Array",proto:!0,forced:!c||!u},{every:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(117),i=n(50);r({target:"Array",proto:!0},{fill:o}),i("fill")},function(e,t,n){"use strict";var r=n(4),o=n(21).filter,i=n(73),a=n(28),c=i("filter"),u=a("filter");r({target:"Array",proto:!0,forced:!c||!u},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(21).find,i=n(50),a=n(28),c=!0,u=a("find");"find"in[]&&Array(1).find((function(){c=!1})),r({target:"Array",proto:!0,forced:c||!u},{find:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("find")},function(e,t,n){"use strict";var r=n(4),o=n(21).findIndex,i=n(50),a=n(28),c=!0,u=a("findIndex");"findIndex"in[]&&Array(1).findIndex((function(){c=!1})),r({target:"Array",proto:!0,forced:c||!u},{findIndex:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("findIndex")},function(e,t,n){"use strict";var r=n(4),o=n(161),i=n(18),a=n(12),c=n(38),u=n(72);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=i(this),n=a(t.length),r=u(t,0);return r.length=o(r,t,t,n,0,e===undefined?1:c(e)),r}})},function(e,t,n){"use strict";var r=n(4),o=n(161),i=n(18),a=n(12),c=n(27),u=n(72);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=i(this),r=a(n.length);return c(e),(t=u(n,0)).length=o(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var r=n(4),o=n(248);r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},function(e,t,n){"use strict";var r=n(21).forEach,o=n(44),i=n(28),a=o("forEach"),c=i("forEach");e.exports=a&&c?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}},function(e,t,n){"use strict";var r=n(4),o=n(250);r({target:"Array",stat:!0,forced:!n(85)((function(e){Array.from(e)}))},{from:o})},function(e,t,n){"use strict";var r=n(53),o=n(18),i=n(162),a=n(118),c=n(12),u=n(54),s=n(119);e.exports=function(e){var t,n,l,f,d,p,h=o(e),g="function"==typeof this?this:Array,v=arguments.length,m=v>1?arguments[1]:undefined,y=m!==undefined,b=s(h),x=0;if(y&&(m=r(m,v>2?arguments[2]:undefined,2)),b==undefined||g==Array&&a(b))for(n=new g(t=c(h.length));t>x;x++)p=y?m(h[x],x):h[x],u(n,x,p);else for(d=(f=b.call(h)).next,n=new g;!(l=d.call(f)).done;x++)p=y?i(f,m,[l.value,x],!0):l.value,u(n,x,p);return n.length=x,n}},function(e,t,n){"use strict";var r=n(4),o=n(69).includes,i=n(50);r({target:"Array",proto:!0,forced:!n(28)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("includes")},function(e,t,n){"use strict";var r=n(4),o=n(69).indexOf,i=n(44),a=n(28),c=[].indexOf,u=!!c&&1/[1].indexOf(1,-0)<0,s=i("indexOf"),l=a("indexOf",{ACCESSORS:!0,1:0});r({target:"Array",proto:!0,forced:u||!s||!l},{indexOf:function(e){return u?c.apply(this,arguments)||0:o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(4)({target:"Array",stat:!0},{isArray:n(58)})},function(e,t,n){"use strict";var r=n(4),o=n(66),i=n(31),a=n(44),c=[].join,u=o!=Object,s=a("join",",");r({target:"Array",proto:!0,forced:u||!s},{join:function(e){return c.call(i(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var r=n(4),o=n(167);r({target:"Array",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},function(e,t,n){"use strict";var r=n(4),o=n(21).map,i=n(73),a=n(28),c=i("map"),u=a("map");r({target:"Array",proto:!0,forced:!c||!u},{map:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(54);r({target:"Array",stat:!0,forced:o((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)i(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var r=n(4),o=n(86).left,i=n(44),a=n(28),c=i("reduce"),u=a("reduce",{1:0});r({target:"Array",proto:!0,forced:!c||!u},{reduce:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(86).right,i=n(44),a=n(28),c=i("reduceRight"),u=a("reduce",{1:0});r({target:"Array",proto:!0,forced:!c||!u},{reduceRight:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(8),i=n(58),a=n(47),c=n(12),u=n(31),s=n(54),l=n(15),f=n(73),d=n(28),p=f("slice"),h=d("slice",{ACCESSORS:!0,0:0,1:2}),g=l("species"),v=[].slice,m=Math.max;r({target:"Array",proto:!0,forced:!p||!h},{slice:function(e,t){var n,r,l,f=u(this),d=c(f.length),p=a(e,d),h=a(t===undefined?d:t,d);if(i(f)&&("function"!=typeof(n=f.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[g])&&(n=undefined):n=undefined,n===Array||n===undefined))return v.call(f,p,h);for(r=new(n===undefined?Array:n)(m(h-p,0)),l=0;p1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(27),i=n(18),a=n(5),c=n(44),u=[],s=u.sort,l=a((function(){u.sort(undefined)})),f=a((function(){u.sort(null)})),d=c("sort");r({target:"Array",proto:!0,forced:l||!f||!d},{sort:function(e){return e===undefined?s.call(i(this)):s.call(i(this),o(e))}})},function(e,t,n){"use strict";n(59)("Array")},function(e,t,n){"use strict";var r=n(4),o=n(47),i=n(38),a=n(12),c=n(18),u=n(72),s=n(54),l=n(73),f=n(28),d=l("splice"),p=f("splice",{ACCESSORS:!0,0:0,1:2}),h=Math.max,g=Math.min;r({target:"Array",proto:!0,forced:!d||!p},{splice:function(e,t){var n,r,l,f,d,p,v=c(this),m=a(v.length),y=o(e,m),b=arguments.length;if(0===b?n=r=0:1===b?(n=0,r=m-y):(n=b-2,r=g(h(i(t),0),m-y)),m+n-r>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(l=u(v,r),f=0;fm-r+n;f--)delete v[f-1]}else if(n>r)for(f=m-r;f>y;f--)p=f+n-1,(d=f+r-1)in v?v[p]=v[d]:delete v[p];for(f=0;f>1,g=23===t?o(2,-24)-o(2,-77):0,v=e<0||0===e&&1/e<0?1:0,m=0;for((e=r(e))!=e||e===1/0?(s=e!=e?1:0,u=p):(u=i(a(e)/c),e*(l=o(2,-u))<1&&(u--,l*=2),(e+=u+h>=1?g/l:g*o(2,1-h))*l>=2&&(u++,l/=2),u+h>=p?(s=0,u=p):u+h>=1?(s=(e*l-1)*o(2,t),u+=h):(s=e*o(2,h-1)*o(2,t),u=0));t>=8;f[m++]=255&s,s/=256,t-=8);for(u=u<0;f[m++]=255&u,u/=256,d-=8);return f[--m]|=128*v,f},unpack:function(e,t){var n,r=e.length,i=8*r-t-1,a=(1<>1,u=i-7,s=r-1,l=e[s--],f=127&l;for(l>>=7;u>0;f=256*f+e[s],s--,u-=8);for(n=f&(1<<-u)-1,f>>=-u,u+=t;u>0;n=256*n+e[s],s--,u-=8);if(0===f)f=1-c;else{if(f===a)return n?NaN:l?-1/0:1/0;n+=o(2,t),f-=c}return(l?-1:1)*n*o(2,f-t)}}},function(e,t,n){"use strict";var r=n(4),o=n(13);r({target:"ArrayBuffer",stat:!0,forced:!o.NATIVE_ARRAY_BUFFER_VIEWS},{isView:o.isView})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(87),a=n(11),c=n(47),u=n(12),s=n(45),l=i.ArrayBuffer,f=i.DataView,d=l.prototype.slice;r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o((function(){return!new l(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(d!==undefined&&t===undefined)return d.call(a(this),e);for(var n=a(this).byteLength,r=c(e,n),o=c(t===undefined?n:t,n),i=new(s(this,l))(u(o-r)),p=new f(this),h=new f(i),g=0;r9999?"+":"";return n+o(i(e),n?6:4,0)+"-"+o(this.getUTCMonth()+1,2,0)+"-"+o(this.getUTCDate(),2,0)+"T"+o(this.getUTCHours(),2,0)+":"+o(this.getUTCMinutes(),2,0)+":"+o(this.getUTCSeconds(),2,0)+"."+o(t,3,0)+"Z"}:u},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(18),a=n(40);r({target:"Date",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),n=a(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var r=n(32),o=n(277),i=n(15)("toPrimitive"),a=Date.prototype;i in a||r(a,i,o)},function(e,t,n){"use strict";var r=n(11),o=n(40);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return o(r(this),"number"!==e)}},function(e,t,n){"use strict";var r=n(25),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+""!="Invalid Date"&&r(o,"toString",(function(){var e=a.call(this);return e==e?i.call(this):"Invalid Date"}))},function(e,t,n){"use strict";n(4)({target:"Function",proto:!0},{bind:n(169)})},function(e,t,n){"use strict";var r=n(8),o=n(16),i=n(42),a=n(15)("hasInstance"),c=Function.prototype;a in c||o.f(c,a,{value:function(e){if("function"!=typeof this||!r(e))return!1;if(!r(this.prototype))return e instanceof this;for(;e=i(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var r=n(10),o=n(16).f,i=Function.prototype,a=i.toString,c=/^\s*function ([^ (]*)/;r&&!("name"in i)&&o(i,"name",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(e){return""}}})},function(e,t,n){"use strict";n(4)({global:!0},{globalThis:n(7)})},function(e,t,n){"use strict";var r=n(4),o=n(41),i=n(5),a=o("JSON","stringify"),c=/[\uD800-\uDFFF]/g,u=/^[\uD800-\uDBFF]$/,s=/^[\uDC00-\uDFFF]$/,l=function(e,t,n){var r=n.charAt(t-1),o=n.charAt(t+1);return u.test(e)&&!s.test(o)||s.test(e)&&!u.test(r)?"\\u"+e.charCodeAt(0).toString(16):e},f=i((function(){return'"\\udf06\\ud834"'!==a("\udf06\ud834")||'"\\udead"'!==a("\udead")}));a&&r({target:"JSON",stat:!0,forced:f},{stringify:function(e,t,n){var r=a.apply(null,arguments);return"string"==typeof r?r.replace(c,l):r}})},function(e,t,n){"use strict";var r=n(7);n(49)(r.JSON,"JSON",!0)},function(e,t,n){"use strict";var r=n(88),o=n(170);e.exports=r("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),o)},function(e,t,n){"use strict";var r=n(4),o=n(171),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?a(e)+u:o(e-1+c(e-1)*c(e+1))}})},function(e,t,n){"use strict";var r=n(4),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:"Math",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function c(e){return isFinite(e=+e)&&0!=e?e<0?-c(-e):i(e+a(e*e+1)):e}})},function(e,t,n){"use strict";var r=n(4),o=Math.atanh,i=Math.log;r({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:i((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var r=n(4),o=n(126),i=Math.abs,a=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){return o(e=+e)*a(i(e),1/3)}})},function(e,t,n){"use strict";var r=n(4),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-o(i(e+.5)*a):32}})},function(e,t,n){"use strict";var r=n(4),o=n(90),i=Math.cosh,a=Math.abs,c=Math.E;r({target:"Math",stat:!0,forced:!i||i(710)===Infinity},{cosh:function(e){var t=o(a(e)-1)+1;return(t+1/(t*c*c))*(c/2)}})},function(e,t,n){"use strict";var r=n(4),o=n(90);r({target:"Math",stat:!0,forced:o!=Math.expm1},{expm1:o})},function(e,t,n){"use strict";n(4)({target:"Math",stat:!0},{fround:n(294)})},function(e,t,n){"use strict";var r=n(126),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),s=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=o(e),l=r(e);return iu||n!=n?l*Infinity:l*n}},function(e,t,n){"use strict";var r=n(4),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:"Math",stat:!0,forced:!!o&&o(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,r,o=0,c=0,u=arguments.length,s=0;c0?(r=n/s)*r:n;return s===Infinity?Infinity:s*a(o)}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=Math.imul;r({target:"Math",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var n=+e,r=+t,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var r=n(4),o=Math.log,i=Math.LOG10E;r({target:"Math",stat:!0},{log10:function(e){return o(e)*i}})},function(e,t,n){"use strict";n(4)({target:"Math",stat:!0},{log1p:n(171)})},function(e,t,n){"use strict";var r=n(4),o=Math.log,i=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return o(e)/i}})},function(e,t,n){"use strict";n(4)({target:"Math",stat:!0},{sign:n(126)})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(90),a=Math.abs,c=Math.exp,u=Math.E;r({target:"Math",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return a(e=+e)<1?(i(e)-i(-e))/2:(c(e-1)-c(-e-1))*(u/2)}})},function(e,t,n){"use strict";var r=n(4),o=n(90),i=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=o(e=+e),n=o(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(i(e)+i(-e))}})},function(e,t,n){"use strict";n(49)(Math,"Math",!0)},function(e,t,n){"use strict";var r=n(4),o=Math.ceil,i=Math.floor;r({target:"Math",stat:!0},{trunc:function(e){return(e>0?i:o)(e)}})},function(e,t,n){"use strict";var r=n(10),o=n(7),i=n(70),a=n(25),c=n(20),u=n(37),s=n(89),l=n(40),f=n(5),d=n(48),p=n(52).f,h=n(23).f,g=n(16).f,v=n(62).trim,m=o.Number,y=m.prototype,b="Number"==u(d(y)),x=function(e){var t,n,r,o,i,a,c,u,s=l(e,!1);if("string"==typeof s&&s.length>2)if(43===(t=(s=v(s)).charCodeAt(0))||45===t){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,c=0;co)return NaN;return parseInt(i,r)}return+s};if(i("Number",!m(" 0o1")||!m("0b1")||m("+0x1"))){for(var w,_=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof _&&(b?f((function(){y.valueOf.call(n)})):"Number"!=u(n))?s(new m(x(t)),n,_):x(t)},E=r?p(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),k=0;E.length>k;k++)c(m,w=E[k])&&!c(_,w)&&g(_,w,h(m,w));_.prototype=y,y.constructor=_,a(o,"Number",_)}},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{isFinite:n(308)})},function(e,t,n){"use strict";var r=n(7).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{isInteger:n(172)})},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var r=n(4),o=n(172),i=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return o(e)&&i(e)<=9007199254740991}})},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var r=n(4),o=n(315);r({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},function(e,t,n){"use strict";var r=n(7),o=n(62).trim,i=n(91),a=r.parseFloat,c=1/a(i+"-0")!=-Infinity;e.exports=c?function(e){var t=o(String(e)),n=a(t);return 0===n&&"-"==t.charAt(0)?-0:n}:a},function(e,t,n){"use strict";var r=n(4),o=n(173);r({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},function(e,t,n){"use strict";var r=n(4),o=n(38),i=n(318),a=n(125),c=n(5),u=1..toFixed,s=Math.floor,l=function f(e,t,n){return 0===t?n:t%2==1?f(e,t-1,n*e):f(e*e,t/2,n)};r({target:"Number",proto:!0,forced:u&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(e){var t,n,r,c,u=i(this),f=o(e),d=[0,0,0,0,0,0],p="",h="0",g=function(e,t){for(var n=-1,r=t;++n<6;)r+=e*d[n],d[n]=r%1e7,r=s(r/1e7)},v=function(e){for(var t=6,n=0;--t>=0;)n+=d[t],d[t]=s(n/e),n=n%e*1e7},m=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==d[e]){var n=String(d[e]);t=""===t?n:t+a.call("0",7-n.length)+n}return t};if(f<0||f>20)throw RangeError("Incorrect fraction digits");if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(p="-",u=-u),u>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(u*l(2,69,1))-69)<0?u*l(2,-t,1):u/l(2,t,1),n*=4503599627370496,(t=52-t)>0){for(g(0,n),r=f;r>=7;)g(1e7,0),r-=7;for(g(l(10,r,1),0),r=t-1;r>=23;)v(1<<23),r-=23;v(1<0?p+((c=h.length)<=f?"0."+a.call("0",f-c)+h:h.slice(0,c-f)+"."+h.slice(c-f)):p+h}})},function(e,t,n){"use strict";var r=n(37);e.exports=function(e){if("number"!=typeof e&&"Number"!=r(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var r=n(4),o=n(320);r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},function(e,t,n){"use strict";var r=n(10),o=n(5),i=n(71),a=n(114),c=n(81),u=n(18),s=n(66),l=Object.assign,f=Object.defineProperty;e.exports=!l||o((function(){if(r&&1!==l({b:1},l(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||"abcdefghijklmnopqrst"!=i(l({},t)).join("")}))?function(e,t){for(var n=u(e),o=arguments.length,l=1,f=a.f,d=c.f;o>l;)for(var p,h=s(arguments[l++]),g=f?i(h).concat(f(h)):i(h),v=g.length,m=0;v>m;)p=g[m++],r&&!d.call(h,p)||(n[p]=h[p]);return n}:l},function(e,t,n){"use strict";n(4)({target:"Object",stat:!0,sham:!n(10)},{create:n(48)})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(92),a=n(18),c=n(27),u=n(16);o&&r({target:"Object",proto:!0,forced:i},{__defineGetter__:function(e,t){u.f(a(this),e,{get:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var r=n(4),o=n(10);r({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperties:n(156)})},function(e,t,n){"use strict";var r=n(4),o=n(10);r({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperty:n(16).f})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(92),a=n(18),c=n(27),u=n(16);o&&r({target:"Object",proto:!0,forced:i},{__defineSetter__:function(e,t){u.f(a(this),e,{set:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var r=n(4),o=n(174).entries;r({target:"Object",stat:!0},{entries:function(e){return o(e)}})},function(e,t,n){"use strict";var r=n(4),o=n(76),i=n(5),a=n(8),c=n(56).onFreeze,u=Object.freeze;r({target:"Object",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(e){return u&&a(e)?u(c(e)):e}})},function(e,t,n){"use strict";var r=n(4),o=n(61),i=n(54);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return o(e,(function(e,n){i(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(31),a=n(23).f,c=n(10),u=o((function(){a(1)}));r({target:"Object",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(e,t){return a(i(e),t)}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(112),a=n(31),c=n(23),u=n(54);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),o=c.f,s=i(r),l={},f=0;s.length>f;)(n=o(r,t=s[f++]))!==undefined&&u(l,t,n);return l}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(158).f;r({target:"Object",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(18),a=n(42),c=n(122);r({target:"Object",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(e){return a(i(e))}})},function(e,t,n){"use strict";n(4)({target:"Object",stat:!0},{is:n(175)})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(8),a=Object.isExtensible;r({target:"Object",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(e){return!!i(e)&&(!a||a(e))}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(8),a=Object.isFrozen;r({target:"Object",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(e){return!i(e)||!!a&&a(e)}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(8),a=Object.isSealed;r({target:"Object",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(e){return!i(e)||!!a&&a(e)}})},function(e,t,n){"use strict";var r=n(4),o=n(18),i=n(71);r({target:"Object",stat:!0,forced:n(5)((function(){i(1)}))},{keys:function(e){return i(o(e))}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(92),a=n(18),c=n(40),u=n(42),s=n(23).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupGetter__:function(e){var t,n=a(this),r=c(e,!0);do{if(t=s(n,r))return t.get}while(n=u(n))}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(92),a=n(18),c=n(40),u=n(42),s=n(23).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupSetter__:function(e){var t,n=a(this),r=c(e,!0);do{if(t=s(n,r))return t.set}while(n=u(n))}})},function(e,t,n){"use strict";var r=n(4),o=n(8),i=n(56).onFreeze,a=n(76),c=n(5),u=Object.preventExtensions;r({target:"Object",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(e){return u&&o(e)?u(i(e)):e}})},function(e,t,n){"use strict";var r=n(4),o=n(8),i=n(56).onFreeze,a=n(76),c=n(5),u=Object.seal;r({target:"Object",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(e){return u&&o(e)?u(i(e)):e}})},function(e,t,n){"use strict";n(4)({target:"Object",stat:!0},{setPrototypeOf:n(55)})},function(e,t,n){"use strict";var r=n(120),o=n(25),i=n(344);r||o(Object.prototype,"toString",i,{unsafe:!0})},function(e,t,n){"use strict";var r=n(120),o=n(84);e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},function(e,t,n){"use strict";var r=n(4),o=n(174).values;r({target:"Object",stat:!0},{values:function(e){return o(e)}})},function(e,t,n){"use strict";var r=n(4),o=n(173);r({global:!0,forced:parseInt!=o},{parseInt:o})},function(e,t,n){"use strict";var r,o,i,a,c=n(4),u=n(43),s=n(7),l=n(41),f=n(176),d=n(25),p=n(75),h=n(49),g=n(59),v=n(8),m=n(27),y=n(60),b=n(37),x=n(110),w=n(61),_=n(85),E=n(45),k=n(127).set,S=n(178),C=n(179),N=n(348),A=n(128),T=n(180),O=n(33),I=n(70),M=n(15),L=n(116),V=M("species"),R="Promise",P=O.get,B=O.set,D=O.getterFor(R),F=f,j=s.TypeError,K=s.document,z=s.process,Y=l("fetch"),U=A.f,$=U,H="process"==b(z),W=!!(K&&K.createEvent&&s.dispatchEvent),q=I(R,(function(){if(!(x(F)!==String(F))){if(66===L)return!0;if(!H&&"function"!=typeof PromiseRejectionEvent)return!0}if(u&&!F.prototype["finally"])return!0;if(L>=51&&/native code/.test(F))return!1;var e=F.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[V]=t,!(e.then((function(){}))instanceof t)})),G=q||!_((function(e){F.all(e)["catch"]((function(){}))})),X=function(e){var t;return!(!v(e)||"function"!=typeof(t=e.then))&&t},Z=function(e,t,n){if(!t.notified){t.notified=!0;var r=t.reactions;S((function(){for(var o=t.value,i=1==t.state,a=0;r.length>a;){var c,u,s,l=r[a++],f=i?l.ok:l.fail,d=l.resolve,p=l.reject,h=l.domain;try{f?(i||(2===t.rejection&&te(e,t),t.rejection=1),!0===f?c=o:(h&&h.enter(),c=f(o),h&&(h.exit(),s=!0)),c===l.promise?p(j("Promise-chain cycle")):(u=X(c))?u.call(c,d,p):d(c)):p(o)}catch(g){h&&!s&&h.exit(),p(g)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&J(e,t)}))}},Q=function(e,t,n){var r,o;W?((r=K.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),s.dispatchEvent(r)):r={promise:t,reason:n},(o=s["on"+e])?o(r):"unhandledrejection"===e&&N("Unhandled promise rejection",n)},J=function(e,t){k.call(s,(function(){var n,r=t.value;if(ee(t)&&(n=T((function(){H?z.emit("unhandledRejection",r,e):Q("unhandledrejection",e,r)})),t.rejection=H||ee(t)?2:1,n.error))throw n.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e,t){k.call(s,(function(){H?z.emit("rejectionHandled",e):Q("rejectionhandled",e,t.value)}))},ne=function(e,t,n,r){return function(o){e(t,n,o,r)}},re=function(e,t,n,r){t.done||(t.done=!0,r&&(t=r),t.value=n,t.state=2,Z(e,t,!0))},oe=function ie(e,t,n,r){if(!t.done){t.done=!0,r&&(t=r);try{if(e===n)throw j("Promise can't be resolved itself");var o=X(n);o?S((function(){var r={done:!1};try{o.call(n,ne(ie,e,r,t),ne(re,e,r,t))}catch(i){re(e,r,i,t)}})):(t.value=n,t.state=1,Z(e,t,!1))}catch(i){re(e,{done:!1},i,t)}}};q&&(F=function(e){y(this,F,R),m(e),r.call(this);var t=P(this);try{e(ne(oe,this,t),ne(re,this,t))}catch(n){re(this,t,n)}},(r=function(e){B(this,{type:R,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:undefined})}).prototype=p(F.prototype,{then:function(e,t){var n=D(this),r=U(E(this,F));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=H?z.domain:undefined,n.parent=!0,n.reactions.push(r),0!=n.state&&Z(this,n,!1),r.promise},"catch":function(e){return this.then(undefined,e)}}),o=function(){var e=new r,t=P(e);this.promise=e,this.resolve=ne(oe,e,t),this.reject=ne(re,e,t)},A.f=U=function(e){return e===F||e===i?new o(e):$(e)},u||"function"!=typeof f||(a=f.prototype.then,d(f.prototype,"then",(function(e,t){var n=this;return new F((function(e,t){a.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof Y&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return C(F,Y.apply(s,arguments))}}))),c({global:!0,wrap:!0,forced:q},{Promise:F}),h(F,R,!1,!0),g(R),i=l(R),c({target:R,stat:!0,forced:q},{reject:function(e){var t=U(this);return t.reject.call(undefined,e),t.promise}}),c({target:R,stat:!0,forced:u||q},{resolve:function(e){return C(u&&this===i?F:this,e)}}),c({target:R,stat:!0,forced:G},{all:function(e){var t=this,n=U(t),r=n.resolve,o=n.reject,i=T((function(){var n=m(t.resolve),i=[],a=0,c=1;w(e,(function(e){var u=a++,s=!1;i.push(undefined),c++,n.call(t,e).then((function(e){s||(s=!0,i[u]=e,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(e){var t=this,n=U(t),r=n.reject,o=T((function(){var o=m(t.resolve);w(e,(function(e){o.call(t,e).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";var r=n(4),o=n(27),i=n(128),a=n(180),c=n(61);r({target:"Promise",stat:!0},{allSettled:function(e){var t=this,n=i.f(t),r=n.resolve,u=n.reject,s=a((function(){var n=o(t.resolve),i=[],a=0,u=1;c(e,(function(e){var o=a++,c=!1;i.push(undefined),u++,n.call(t,e).then((function(e){c||(c=!0,i[o]={status:"fulfilled",value:e},--u||r(i))}),(function(e){c||(c=!0,i[o]={status:"rejected",reason:e},--u||r(i))}))})),--u||r(i)}));return s.error&&u(s.value),n.promise}})},function(e,t,n){"use strict";var r=n(4),o=n(43),i=n(176),a=n(5),c=n(41),u=n(45),s=n(179),l=n(25);r({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=u(this,c("Promise")),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then((function(){return n}))}:e,n?function(n){return s(t,e()).then((function(){throw n}))}:e)}}),o||"function"!=typeof i||i.prototype["finally"]||l(i.prototype,"finally",c("Promise").prototype["finally"])},function(e,t,n){"use strict";var r=n(4),o=n(41),i=n(27),a=n(11),c=n(5),u=o("Reflect","apply"),s=Function.apply;r({target:"Reflect",stat:!0,forced:!c((function(){u((function(){}))}))},{apply:function(e,t,n){return i(e),a(n),u?u(e,t,n):s.call(e,t,n)}})},function(e,t,n){"use strict";var r=n(4),o=n(41),i=n(27),a=n(11),c=n(8),u=n(48),s=n(169),l=n(5),f=o("Reflect","construct"),d=l((function(){function e(){}return!(f((function(){}),[],e)instanceof e)})),p=!l((function(){f((function(){}))})),h=d||p;r({target:"Reflect",stat:!0,forced:h,sham:h},{construct:function(e,t){i(e),a(t);var n=arguments.length<3?e:i(arguments[2]);if(p&&!d)return f(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return r.push.apply(r,t),new(s.apply(e,r))}var o=n.prototype,l=u(c(o)?o:Object.prototype),h=Function.apply.call(e,l,t);return c(h)?h:l}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(11),a=n(40),c=n(16);r({target:"Reflect",stat:!0,forced:n(5)((function(){Reflect.defineProperty(c.f({},1,{value:1}),1,{value:2})})),sham:!o},{defineProperty:function(e,t,n){i(e);var r=a(t,!0);i(n);try{return c.f(e,r,n),!0}catch(o){return!1}}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=n(23).f;r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=i(o(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var r=n(4),o=n(8),i=n(11),a=n(20),c=n(23),u=n(42);r({target:"Reflect",stat:!0},{get:function s(e,t){var n,r,l=arguments.length<3?e:arguments[2];return i(e)===l?e[t]:(n=c.f(e,t))?a(n,"value")?n.value:n.get===undefined?undefined:n.get.call(l):o(r=u(e))?s(r,t,l):void 0}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(11),a=n(23);r({target:"Reflect",stat:!0,sham:!o},{getOwnPropertyDescriptor:function(e,t){return a.f(i(e),t)}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=n(42);r({target:"Reflect",stat:!0,sham:!n(122)},{getPrototypeOf:function(e){return i(o(e))}})},function(e,t,n){"use strict";n(4)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=Object.isExtensible;r({target:"Reflect",stat:!0},{isExtensible:function(e){return o(e),!i||i(e)}})},function(e,t,n){"use strict";n(4)({target:"Reflect",stat:!0},{ownKeys:n(112)})},function(e,t,n){"use strict";var r=n(4),o=n(41),i=n(11);r({target:"Reflect",stat:!0,sham:!n(76)},{preventExtensions:function(e){i(e);try{var t=o("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=n(8),a=n(20),c=n(5),u=n(16),s=n(23),l=n(42),f=n(51);r({target:"Reflect",stat:!0,forced:c((function(){var e=u.f({},"a",{configurable:!0});return!1!==Reflect.set(l(e),"a",1,e)}))},{set:function d(e,t,n){var r,c,p=arguments.length<4?e:arguments[3],h=s.f(o(e),t);if(!h){if(i(c=l(e)))return d(c,t,n,p);h=f(0)}if(a(h,"value")){if(!1===h.writable||!i(p))return!1;if(r=s.f(p,t)){if(r.get||r.set||!1===r.writable)return!1;r.value=n,u.f(p,t,r)}else u.f(p,t,f(0,n));return!0}return h.set!==undefined&&(h.set.call(p,n),!0)}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=n(166),a=n(55);a&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){o(e),i(t);try{return a(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var r=n(10),o=n(7),i=n(70),a=n(89),c=n(16).f,u=n(52).f,s=n(93),l=n(77),f=n(94),d=n(25),p=n(5),h=n(33).set,g=n(59),v=n(15)("match"),m=o.RegExp,y=m.prototype,b=/a/g,x=/a/g,w=new m(b)!==b,_=f.UNSUPPORTED_Y;if(r&&i("RegExp",!w||_||p((function(){return x[v]=!1,m(b)!=b||m(x)==x||"/a/i"!=m(b,"i")})))){for(var E=function(e,t){var n,r=this instanceof E,o=s(e),i=t===undefined;if(!r&&o&&e.constructor===E&&i)return e;w?o&&!i&&(e=e.source):e instanceof E&&(i&&(t=l.call(e)),e=e.source),_&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=a(w?new m(e,t):m(e,t),r?this:y,E);return _&&n&&h(c,{sticky:n}),c},k=function(e){e in E||c(E,e,{configurable:!0,get:function(){return m[e]},set:function(t){m[e]=t}})},S=u(m),C=0;S.length>C;)k(S[C++]);y.constructor=E,E.prototype=y,d(o,"RegExp",E)}g("RegExp")},function(e,t,n){"use strict";var r=n(10),o=n(16),i=n(77),a=n(94).UNSUPPORTED_Y;r&&("g"!=/./g.flags||a)&&o.f(RegExp.prototype,"flags",{configurable:!0,get:i})},function(e,t,n){"use strict";var r=n(10),o=n(94).UNSUPPORTED_Y,i=n(16).f,a=n(33).get,c=RegExp.prototype;r&&o&&i(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this===c)return undefined;if(this instanceof RegExp)return!!a(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}})},function(e,t,n){"use strict";n(129);var r,o,i=n(4),a=n(8),c=(r=!1,(o=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&r),u=/./.test;i({target:"RegExp",proto:!0,forced:!c},{test:function(e){if("function"!=typeof this.exec)return u.call(this,e);var t=this.exec(e);if(null!==t&&!a(t))throw new Error("RegExp exec method returned something other than an Object or null");return!!t}})},function(e,t,n){"use strict";var r=n(25),o=n(11),i=n(5),a=n(77),c=RegExp.prototype,u=c.toString,s=i((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),l="toString"!=u.name;(s||l)&&r(RegExp.prototype,"toString",(function(){var e=o(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in c)?a.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var r=n(88),o=n(170);e.exports=r("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),o)},function(e,t,n){"use strict";var r=n(4),o=n(130).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return o(this,e)}})},function(e,t,n){"use strict";var r,o=n(4),i=n(23).f,a=n(12),c=n(131),u=n(24),s=n(132),l=n(43),f="".endsWith,d=Math.min,p=s("endsWith");o({target:"String",proto:!0,forced:!!(l||p||(r=i(String.prototype,"endsWith"),!r||r.writable))&&!p},{endsWith:function(e){var t=String(u(this));c(e);var n=arguments.length>1?arguments[1]:undefined,r=a(t.length),o=n===undefined?r:d(a(n),r),i=String(e);return f?f.call(t,i,o):t.slice(o-i.length,o)===i}})},function(e,t,n){"use strict";var r=n(4),o=n(47),i=String.fromCharCode,a=String.fromCodePoint;r({target:"String",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,a=0;r>a;){if(t=+arguments[a++],o(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?i(t):i(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var r=n(4),o=n(131),i=n(24);r({target:"String",proto:!0,forced:!n(132)("includes")},{includes:function(e){return!!~String(i(this)).indexOf(o(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(130).charAt,o=n(33),i=n(121),a=o.set,c=o.getterFor("String Iterator");i(String,"String",(function(e){a(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,o=t.index;return o>=n.length?{value:undefined,done:!0}:(e=r(n,o),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var r=n(96),o=n(11),i=n(12),a=n(24),c=n(97),u=n(98);r("match",1,(function(e,t,n){return[function(t){var n=a(this),r=t==undefined?undefined:t[e];return r!==undefined?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var a=o(e),s=String(this);if(!a.global)return u(a,s);var l=a.unicode;a.lastIndex=0;for(var f,d=[],p=0;null!==(f=u(a,s));){var h=String(f[0]);d[p]=h,""===h&&(a.lastIndex=c(s,i(a.lastIndex),l)),p++}return 0===p?null:d}]}))},function(e,t,n){"use strict";var r=n(4),o=n(164),i=n(24),a=n(12),c=n(27),u=n(11),s=n(37),l=n(93),f=n(77),d=n(32),p=n(5),h=n(15),g=n(45),v=n(97),m=n(33),y=n(43),b=h("matchAll"),x=m.set,w=m.getterFor("RegExp String Iterator"),_=RegExp.prototype,E=_.exec,k="".matchAll,S=!!k&&!p((function(){"a".matchAll(/./)})),C=o((function(e,t,n,r){x(this,{type:"RegExp String Iterator",regexp:e,string:t,global:n,unicode:r,done:!1})}),"RegExp String",(function(){var e=w(this);if(e.done)return{value:undefined,done:!0};var t=e.regexp,n=e.string,r=function(e,t){var n,r=e.exec;if("function"==typeof r){if("object"!=typeof(n=r.call(e,t)))throw TypeError("Incorrect exec result");return n}return E.call(e,t)}(t,n);return null===r?{value:undefined,done:e.done=!0}:e.global?(""==String(r[0])&&(t.lastIndex=v(n,a(t.lastIndex),e.unicode)),{value:r,done:!1}):(e.done=!0,{value:r,done:!1})})),N=function(e){var t,n,r,o,i,c,s=u(this),l=String(e);return t=g(s,RegExp),(n=s.flags)===undefined&&s instanceof RegExp&&!("flags"in _)&&(n=f.call(s)),r=n===undefined?"":String(n),o=new t(t===RegExp?s.source:s,r),i=!!~r.indexOf("g"),c=!!~r.indexOf("u"),o.lastIndex=a(s.lastIndex),new C(o,l,i,c)};r({target:"String",proto:!0,forced:S},{matchAll:function(e){var t,n,r,o=i(this);if(null!=e){if(l(e)&&!~String(i("flags"in _?e.flags:f.call(e))).indexOf("g"))throw TypeError("`.matchAll` does not allow non-global regexes");if(S)return k.apply(o,arguments);if((n=e[b])===undefined&&y&&"RegExp"==s(e)&&(n=N),null!=n)return c(n).call(e,o)}else if(S)return k.apply(o,arguments);return t=String(o),r=new RegExp(e,"g"),y?N.call(r,t):r[b](t)}}),y||b in _||d(_,b,N)},function(e,t,n){"use strict";var r=n(4),o=n(124).end;r({target:"String",proto:!0,forced:n(181)},{padEnd:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(124).start;r({target:"String",proto:!0,forced:n(181)},{padStart:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(31),i=n(12);r({target:"String",stat:!0},{raw:function(e){for(var t=o(e.raw),n=i(t.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(t[c++])),c]*>)/g,g=/\$([$&'`]|\d\d?)/g;r("replace",2,(function(e,t,n,r){var v=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,m=r.REPLACE_KEEPS_$0,y=v?"$":"$0";return[function(n,r){var o=u(this),i=n==undefined?undefined:n[e];return i!==undefined?i.call(n,o,r):t.call(String(o),n,r)},function(e,r){if(!v&&m||"string"==typeof r&&-1===r.indexOf(y)){var i=n(t,e,this,r);if(i.done)return i.value}var u=o(e),p=String(this),h="function"==typeof r;h||(r=String(r));var g=u.global;if(g){var x=u.unicode;u.lastIndex=0}for(var w=[];;){var _=l(u,p);if(null===_)break;if(w.push(_),!g)break;""===String(_[0])&&(u.lastIndex=s(p,a(u.lastIndex),x))}for(var E,k="",S=0,C=0;C=S&&(k+=p.slice(S,A)+L,S=A+N.length)}return k+p.slice(S)}];function b(e,n,r,o,a,c){var u=r+e.length,s=o.length,l=g;return a!==undefined&&(a=i(a),l=h),t.call(c,l,(function(t,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(u);case"<":c=a[i.slice(1,-1)];break;default:var l=+i;if(0===l)return t;if(l>s){var f=p(l/10);return 0===f?t:f<=s?o[f-1]===undefined?i.charAt(1):o[f-1]+i.charAt(1):t}c=o[l-1]}return c===undefined?"":c}))}}))},function(e,t,n){"use strict";var r=n(96),o=n(11),i=n(24),a=n(175),c=n(98);r("search",1,(function(e,t,n){return[function(t){var n=i(this),r=t==undefined?undefined:t[e];return r!==undefined?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=o(e),u=String(this),s=i.lastIndex;a(s,0)||(i.lastIndex=0);var l=c(i,u);return a(i.lastIndex,s)||(i.lastIndex=s),null===l?-1:l.index}]}))},function(e,t,n){"use strict";var r=n(96),o=n(93),i=n(11),a=n(24),c=n(45),u=n(97),s=n(12),l=n(98),f=n(95),d=n(5),p=[].push,h=Math.min,g=!d((function(){return!RegExp(4294967295,"y")}));r("split",2,(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=String(a(this)),i=n===undefined?4294967295:n>>>0;if(0===i)return[];if(e===undefined)return[r];if(!o(e))return t.call(r,e,i);for(var c,u,s,l=[],d=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),h=0,g=new RegExp(e.source,d+"g");(c=f.call(g,r))&&!((u=g.lastIndex)>h&&(l.push(r.slice(h,c.index)),c.length>1&&c.index=i));)g.lastIndex===c.index&&g.lastIndex++;return h===r.length?!s&&g.test("")||l.push(""):l.push(r.slice(h)),l.length>i?l.slice(0,i):l}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var o=a(this),i=t==undefined?undefined:t[e];return i!==undefined?i.call(t,o,n):r.call(String(o),t,n)},function(e,o){var a=n(r,e,this,o,r!==t);if(a.done)return a.value;var f=i(e),d=String(this),p=c(f,RegExp),v=f.unicode,m=(f.ignoreCase?"i":"")+(f.multiline?"m":"")+(f.unicode?"u":"")+(g?"y":"g"),y=new p(g?f:"^(?:"+f.source+")",m),b=o===undefined?4294967295:o>>>0;if(0===b)return[];if(0===d.length)return null===l(y,d)?[d]:[];for(var x=0,w=0,_=[];w1?arguments[1]:undefined,t.length)),r=String(e);return f?f.call(t,r,n):t.slice(n,n+r.length)===r}})},function(e,t,n){"use strict";var r=n(4),o=n(62).trim;r({target:"String",proto:!0,forced:n(133)("trim")},{trim:function(){return o(this)}})},function(e,t,n){"use strict";var r=n(4),o=n(62).end,i=n(133)("trimEnd"),a=i?function(){return o(this)}:"".trimEnd;r({target:"String",proto:!0,forced:i},{trimEnd:a,trimRight:a})},function(e,t,n){"use strict";var r=n(4),o=n(62).start,i=n(133)("trimStart"),a=i?function(){return o(this)}:"".trimStart;r({target:"String",proto:!0,forced:i},{trimStart:a,trimLeft:a})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("anchor")},{anchor:function(e){return o(this,"a","name",e)}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("big")},{big:function(){return o(this,"big","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("blink")},{blink:function(){return o(this,"blink","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("bold")},{bold:function(){return o(this,"b","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("fixed")},{fixed:function(){return o(this,"tt","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("fontcolor")},{fontcolor:function(e){return o(this,"font","color",e)}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("fontsize")},{fontsize:function(e){return o(this,"font","size",e)}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("italics")},{italics:function(){return o(this,"i","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("link")},{link:function(e){return o(this,"a","href",e)}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("small")},{small:function(){return o(this,"small","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("strike")},{strike:function(){return o(this,"strike","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("sub")},{sub:function(){return o(this,"sub","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("sup")},{sup:function(){return o(this,"sup","","")}})},function(e,t,n){"use strict";n(46)("Float32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";var r=n(38);e.exports=function(e){var t=r(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(46)("Float64",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Int8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Int16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Int32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}),!0)},function(e,t,n){"use strict";n(46)("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Uint32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";var r=n(13),o=n(160),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("copyWithin",(function(e,t){return o.call(i(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).every,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(117),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("fill",(function(e){return o.apply(i(this),arguments)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).filter,i=n(45),a=r.aTypedArray,c=r.aTypedArrayConstructor;(0,r.exportTypedArrayMethod)("filter",(function(e){for(var t=o(a(this),e,arguments.length>1?arguments[1]:undefined),n=i(this,this.constructor),r=0,u=t.length,s=new(c(n))(u);u>r;)s[r]=t[r++];return s}))},function(e,t,n){"use strict";var r=n(13),o=n(21).find,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).findIndex,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).forEach,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",(function(e){o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(134);(0,n(13).exportTypedArrayStaticMethod)("from",n(183),r)},function(e,t,n){"use strict";var r=n(13),o=n(69).includes,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(69).indexOf,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=n(13),i=n(163),a=n(15)("iterator"),c=r.Uint8Array,u=i.values,s=i.keys,l=i.entries,f=o.aTypedArray,d=o.exportTypedArrayMethod,p=c&&c.prototype[a],h=!!p&&("values"==p.name||p.name==undefined),g=function(){return u.call(f(this))};d("entries",(function(){return l.call(f(this))})),d("keys",(function(){return s.call(f(this))})),d("values",g,!h),d(a,g,!h)},function(e,t,n){"use strict";var r=n(13),o=r.aTypedArray,i=r.exportTypedArrayMethod,a=[].join;i("join",(function(e){return a.apply(o(this),arguments)}))},function(e,t,n){"use strict";var r=n(13),o=n(167),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",(function(e){return o.apply(i(this),arguments)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).map,i=n(45),a=r.aTypedArray,c=r.aTypedArrayConstructor;(0,r.exportTypedArrayMethod)("map",(function(e){return o(a(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(c(i(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var r=n(13),o=n(134),i=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(i(this))(t);t>e;)n[e]=arguments[e++];return n}),o)},function(e,t,n){"use strict";var r=n(13),o=n(86).left,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",(function(e){return o(i(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(86).right,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",(function(e){return o(i(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=r.aTypedArray,i=r.exportTypedArrayMethod,a=Math.floor;i("reverse",(function(){for(var e,t=o(this).length,n=a(t/2),r=0;r1?arguments[1]:undefined,1),n=this.length,r=a(e),c=o(r.length),s=0;if(c+t>n)throw RangeError("Wrong length");for(;si;)l[i]=n[i++];return l}),i((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var r=n(13),o=n(21).some,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=r.aTypedArray,i=r.exportTypedArrayMethod,a=[].sort;i("sort",(function(e){return a.call(o(this),e)}))},function(e,t,n){"use strict";var r=n(13),o=n(12),i=n(47),a=n(45),c=r.aTypedArray;(0,r.exportTypedArrayMethod)("subarray",(function(e,t){var n=c(this),r=n.length,u=i(e,r);return new(a(n,n.constructor))(n.buffer,n.byteOffset+u*n.BYTES_PER_ELEMENT,o((t===undefined?r:i(t,r))-u))}))},function(e,t,n){"use strict";var r=n(7),o=n(13),i=n(5),a=r.Int8Array,c=o.aTypedArray,u=o.exportTypedArrayMethod,s=[].toLocaleString,l=[].slice,f=!!a&&i((function(){s.call(new a(1))}));u("toLocaleString",(function(){return s.apply(f?l.call(c(this)):c(this),arguments)}),i((function(){return[1,2].toLocaleString()!=new a([1,2]).toLocaleString()}))||!i((function(){a.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var r=n(13).exportTypedArrayMethod,o=n(5),i=n(7).Uint8Array,a=i&&i.prototype||{},c=[].toString,u=[].join;o((function(){c.call({})}))&&(c=function(){return u.call(this)});var s=a.toString!=c;r("toString",c,s)},function(e,t,n){"use strict";var r,o=n(7),i=n(75),a=n(56),c=n(88),u=n(184),s=n(8),l=n(33).enforce,f=n(151),d=!o.ActiveXObject&&"ActiveXObject"in o,p=Object.isExtensible,h=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},g=e.exports=c("WeakMap",h,u);if(f&&d){r=u.getConstructor(h,"WeakMap",!0),a.REQUIRED=!0;var v=g.prototype,m=v["delete"],y=v.has,b=v.get,x=v.set;i(v,{"delete":function(e){if(s(e)&&!p(e)){var t=l(this);return t.frozen||(t.frozen=new r),m.call(this,e)||t.frozen["delete"](e)}return m.call(this,e)},has:function(e){if(s(e)&&!p(e)){var t=l(this);return t.frozen||(t.frozen=new r),y.call(this,e)||t.frozen.has(e)}return y.call(this,e)},get:function(e){if(s(e)&&!p(e)){var t=l(this);return t.frozen||(t.frozen=new r),y.call(this,e)?b.call(this,e):t.frozen.get(e)}return b.call(this,e)},set:function(e,t){if(s(e)&&!p(e)){var n=l(this);n.frozen||(n.frozen=new r),y.call(this,e)?x.call(this,e,t):n.frozen.set(e,t)}else x.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(88)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(184))},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(127);r({global:!0,bind:!0,enumerable:!0,forced:!o.setImmediate||!o.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(178),a=n(37),c=o.process,u="process"==a(c);r({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=u&&c.domain;i(t?t.bind(e):e)}})},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(83),a=[].slice,c=function(e){return function(t,n){var r=arguments.length>2,o=r?a.call(arguments,2):undefined;return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,o)}:t,n)}};r({global:!0,bind:!0,forced:/MSIE .\./.test(i)},{setTimeout:c(o.setTimeout),setInterval:c(o.setInterval)})},function(e,t,n){"use strict";var r=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(C){c=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof f?t:f,i=Object.create(o.prototype),a=new E(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return S()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=x(a,n);if(c){if(c===l)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=s(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===l)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}(e,n,a),i}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(C){return{type:"throw",arg:C}}}e.wrap=u;var l={};function f(){}function d(){}function p(){}var h={};h[o]=function(){return this};var g=Object.getPrototypeOf,v=g&&g(g(k([])));v&&v!==t&&n.call(v,o)&&(h=v);var m=p.prototype=f.prototype=Object.create(h);function y(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var r;this._invoke=function(o,i){function a(){return new t((function(r,a){!function c(r,o,i,a){var u=s(e[r],e,o);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){c("next",e,i,a)}),(function(e){c("throw",e,i,a)})):t.resolve(f).then((function(e){l.value=e,i(l)}),(function(e){return c("throw",e,i,a)}))}a(u.arg)}(o,i,r,a)}))}return r=r?r.then(a,a):a()}}function x(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator["return"]&&(t.method="return",t.arg=void 0,x(e,t),"throw"===t.method))return l;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var r=s(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,l;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,l):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,l)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function k(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),_(n),l}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;_(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:k(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}(e.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";!function(t,n){var r,o,i=t.html5||{},a=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,c=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,u=0,s={};function l(){var e=h.elements;return"string"==typeof e?e.split(" "):e}function f(e){var t=s[e._html5shiv];return t||(t={},u++,e._html5shiv=u,s[u]=t),t}function d(e,t,r){return t||(t=n),o?t.createElement(e):(r||(r=f(t)),!(i=r.cache[e]?r.cache[e].cloneNode():c.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e)).canHaveChildren||a.test(e)||i.tagUrn?i:r.frag.appendChild(i));var i}function p(e){e||(e=n);var t=f(e);return!h.shivCSS||r||t.hasCSS||(t.hasCSS=!!function(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x",r.insertBefore(n.lastChild,r.firstChild)}(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),o||function(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return h.shivMethods?d(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/[\w\-:]+/g,(function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'}))+");return n}")(h,t.frag)}(e,t),e}!function(){try{var e=n.createElement("a");e.innerHTML="",r="hidden"in e,o=1==e.childNodes.length||function(){n.createElement("a");var e=n.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(t){r=!0,o=!0}}();var h={elements:i.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:"3.7.3",shivCSS:!1!==i.shivCSS,supportsUnknownElements:o,shivMethods:!1!==i.shivMethods,type:"default",shivDocument:p,createElement:d,createDocumentFragment:function(e,t){if(e||(e=n),o)return e.createDocumentFragment();for(var r=(t=t||f(e)).frag.cloneNode(),i=0,a=l(),c=a.length;i3?c(a):null,b=String(a.key),x=String(a.char),w=a.location,_=a.keyCode||(a.keyCode=b)&&b.charCodeAt(0)||0,E=a.charCode||(a.charCode=x)&&x.charCodeAt(0)||0,k=a.bubbles,S=a.cancelable,C=a.repeat,N=a.locale,A=a.view||e;if(a.which||(a.which=a.keyCode),"initKeyEvent"in d)d.initKeyEvent(t,k,S,A,p,g,h,v,_,E);else if(0>>0),t=Element.prototype,n=t.querySelector,r=t.querySelectorAll;function o(t,n,r){t.setAttribute(e,null);var o=n.call(t,String(r).replace(/(^|,\s*)(:scope([ >]|$))/g,(function(t,n,r,o){return n+"["+e+"]"+(o||" ")})));return t.removeAttribute(e),o}t.querySelector=function(e){return o(this,n,e)},t.querySelectorAll=function(e){return o(this,r,e)}}()}}(window),function(e){var t=e.WeakMap||function(){var e,t=0,n=!1,r=!1;function o(t,o,i){r=i,n=!1,e=undefined,t.dispatchEvent(o)}function i(e){this.value=e}function c(){t++,this.__ce__=new a("@DOMMap:"+t+Math.random())}return i.prototype.handleEvent=function(t){n=!0,r?t.currentTarget.removeEventListener(t.type,this,!1):e=this.value},c.prototype={constructor:c,"delete":function(e){return o(e,this.__ce__,!0),n},get:function(t){o(t,this.__ce__,!1);var n=e;return e=undefined,n},has:function(e){return o(e,this.__ce__,!1),n},set:function(e,t){return o(e,this.__ce__,!0),e.addEventListener(this.__ce__.type,new i(t),!1),this}},c}();function n(){}function r(e,t,n){function o(e){o.once&&(e.currentTarget.removeEventListener(e.type,t,o),o.removed=!0),o.passive&&(e.preventDefault=r.preventDefault),"function"==typeof o.callback?o.callback.call(this,e):o.callback&&o.callback.handleEvent(e),o.passive&&delete e.preventDefault}return o.type=e,o.callback=t,o.capture=!!n.capture,o.passive=!!n.passive,o.once=!!n.once,o.removed=!1,o}n.prototype=(Object.create||Object)(null),r.preventDefault=function(){};var o,i,a=e.CustomEvent,c=e.dispatchEvent,u=e.addEventListener,s=e.removeEventListener,l=0,f=function(){l++},d=[].indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},p=function(e){return"".concat(e.capture?"1":"0",e.passive?"1":"0",e.once?"1":"0")};try{u("_",f,{once:!0}),c(new a("_")),c(new a("_")),s("_",f,{once:!0})}catch(h){}1!==l&&(i=new t,o=function(e){if(e){var t=e.prototype;t.addEventListener=function(e){return function(t,o,a){if(a&&"boolean"!=typeof a){var c,u,s,l=i.get(this),f=p(a);l||i.set(this,l=new n),t in l||(l[t]={handler:[],wrap:[]}),u=l[t],(c=d.call(u.handler,o))<0?(c=u.handler.push(o)-1,u.wrap[c]=s=new n):s=u.wrap[c],f in s||(s[f]=r(t,o,a),e.call(this,t,s[f],s[f].capture))}else e.call(this,t,o,a)}}(t.addEventListener),t.removeEventListener=function(e){return function(t,n,r){if(r&&"boolean"!=typeof r){var o,a,c,u,s=i.get(this);if(s&&t in s&&(c=s[t],-1<(a=d.call(c.handler,n))&&(o=p(r))in(u=c.wrap[a]))){for(o in e.call(this,t,u[o],u[o].capture),delete u[o],u)return;c.handler.splice(a,1),c.wrap.splice(a,1),0===c.handler.length&&delete s[t]}}else e.call(this,t,n,r)}}(t.removeEventListener)}},e.EventTarget?o(EventTarget):(o(e.Text),o(e.Element||e.HTMLElement),o(e.HTMLDocument),o(e.Window||{prototype:e}),o(e.XMLHttpRequest)))}(window)},function(e,t,n){"use strict";!function(e){if("undefined"!=typeof e.setAttribute){var t=function(e){return e.replace(/-[a-z]/g,(function(e){return e[1].toUpperCase()}))};e.setProperty=function(e,n){var r=t(e);if(!n)return this.removeAttribute(r);var o=String(n);return this.setAttribute(r,o)},e.getPropertyValue=function(e){var n=t(e);return this.getAttribute(n)||null},e.removeProperty=function(e){var n=t(e),r=this.getAttribute(n);return this.removeAttribute(n),r}}}(CSSStyleDeclaration.prototype)},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},,function(e,t,n){"use strict";t.__esModule=!0,t._CI=Ae,t._HI=B,t._M=Te,t._MCCC=Le,t._ME=Ie,t._MFCC=Ve,t._MP=Ce,t._MR=ye,t.__render=Fe,t.createComponentVNode=function(e,t,n,r,o){var a=new T(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),r,function(e,t,n){var r=(32768&e?t.render:t).defaultProps;if(i(r))return n;if(i(n))return l(r,null);return N(n,r)}(e,t,n),function(e,t,n){if(4&e)return n;var r=(32768&e?t.render:t).defaultHooks;if(i(r))return n;if(i(n))return r;return N(n,r)}(e,t,o),t);k.createVNode&&k.createVNode(a);return a},t.createFragment=M,t.createPortal=function(e,t){var n=B(e);return O(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,r,o){e||(e=t),je(n,e,r,o)}},t.createTextVNode=I,t.createVNode=O,t.directClone=L,t.findDOMfromVNode=b,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case"$F":return 8192;default:return 1}},t.linkEvent=function(e,t){if(c(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&i(e.children)&&P(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?l(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=je,t.rerender=He,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var r=Array.isArray;function o(e){var t=typeof e;return"string"===t||"number"===t}function i(e){return null==e}function a(e){return null===e||!1===e||!0===e||void 0===e}function c(e){return"function"==typeof e}function u(e){return"string"==typeof e}function s(e){return null===e}function l(e,t){var n={};if(e)for(var r in e)n[r]=e[r];if(t)for(var o in t)n[o]=t[o];return n}function f(e){return!s(e)&&"object"==typeof e}var d={};t.EMPTY_OBJ=d;function p(e){return e.substr(2).toLowerCase()}function h(e,t){e.appendChild(t)}function g(e,t,n){s(n)?h(e,t):e.insertBefore(t,n)}function v(e,t){e.removeChild(t)}function m(e){for(var t=0;t0,h=s(d),g=u(d)&&"$"===d[0];p||h||g?(n=n||t.slice(0,l),(p||g)&&(f=L(f)),(h||g)&&(f.key="$"+l),n.push(f)):n&&n.push(f),f.flags|=65536}}i=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=L(t)),i=2;return e.children=n,e.childFlags=i,e}function B(e){return a(e)||o(e)?I(e,null):r(e)?M(e,0,null):16384&e.flags?L(e):e}var D="http://www.w3.org/1999/xlink",F="http://www.w3.org/XML/1998/namespace",j={"xlink:actuate":D,"xlink:arcrole":D,"xlink:href":D,"xlink:role":D,"xlink:show":D,"xlink:title":D,"xlink:type":D,"xml:base":F,"xml:lang":F,"xml:space":F};function K(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var z=K(0),Y=K(null),U=K(!0);function $(e,t){var n=t.$EV;return n||(n=t.$EV=K(null)),n[e]||1==++z[e]&&(Y[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?W(t,!0,e,Z(t)):t.stopPropagation()}}(e):function(e){return function(t){W(t,!1,e,Z(t))}}(e);return document.addEventListener(p(e),t),t}(e)),n}function H(e,t){var n=t.$EV;n&&n[e]&&(0==--z[e]&&(document.removeEventListener(p(e),Y[e]),Y[e]=null),n[e]=null)}function W(e,t,n,r){var o=function(e){return c(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&o.disabled)return;var i=o.$EV;if(i){var a=i[n];if(a&&(r.dom=o,a.event?a.event(a.data,e):a(e),e.cancelBubble))return}o=o.parentNode}while(!s(o))}function q(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function G(){return this.defaultPrevented}function X(){return this.cancelBubble}function Z(e){var t={dom:document};return e.isDefaultPrevented=G,e.isPropagationStopped=X,e.stopPropagation=q,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function Q(e,t,n){if(e[t]){var r=e[t];r.event?r.event(r.data,n):r(n)}else{var o=t.toLowerCase();e[o]&&e[o](n)}}function J(e,t){var n=function(n){var r=this.$V;if(r){var o=r.props||d,i=r.dom;if(u(e))Q(o,e,n);else for(var a=0;a-1&&t.options[a]&&(c=t.options[a].value),n&&i(c)&&(c=e.defaultValue),ae(r,c)}}var se,le,fe=J("onInput",pe),de=J("onChange");function pe(e,t,n){var r=e.value,o=t.value;if(i(r)){if(n){var a=e.defaultValue;i(a)||a===o||(t.defaultValue=a,t.value=a)}}else o!==r&&(t.defaultValue=r,t.value=r)}function he(e,t,n,r,o,i){64&e?ie(r,n):256&e?ue(r,n,o,t):128&e&&pe(r,n,o),i&&(n.$V=t)}function ge(e,t,n){64&e?function(e,t){te(t.type)?(ee(e,"change",re),ee(e,"click",oe)):ee(e,"input",ne)}(t,n):256&e?function(e){ee(e,"change",ce)}(t):128&e&&function(e,t){ee(e,"input",fe),t.onChange&&ee(e,"change",de)}(t,n)}function ve(e){return e.type&&te(e.type)?!i(e.checked):!i(e.value)}function me(e){e&&!A(e,null)&&e.current&&(e.current=null)}function ye(e,t,n){e&&(c(e)||void 0!==e.current)&&n.push((function(){A(e,t)||void 0===e.current||(e.current=t)}))}function be(e,t){xe(e),x(e,t)}function xe(e){var t,n=e.flags,r=e.children;if(481&n){t=e.ref;var o=e.props;me(t);var a=e.childFlags;if(!s(o))for(var u=Object.keys(o),l=0,f=u.length;l0;for(var c in a&&(i=ve(n))&&ge(t,r,n),n)Se(c,null,n[c],r,o,i,null);a&&he(t,e,r,n,!0,i)}function Ne(e,t,n){var r=B(e.render(t,e.state,n)),o=n;return c(e.getChildContext)&&(o=l(n,e.getChildContext())),e.$CX=o,r}function Ae(e,t,n,r,o,i){var a=new t(n,r),u=a.$N=Boolean(t.getDerivedStateFromProps||a.getSnapshotBeforeUpdate);if(a.$SVG=o,a.$L=i,e.children=a,a.$BS=!1,a.context=r,a.props===d&&(a.props=n),u)a.state=_(a,n,a.state);else if(c(a.componentWillMount)){a.$BR=!0,a.componentWillMount();var l=a.$PS;if(!s(l)){var f=a.state;if(s(f))a.state=l;else for(var p in l)f[p]=l[p];a.$PS=null}a.$BR=!1}return a.$LI=Ne(a,n,r),a}function Te(e,t,n,r,o,i){var a=e.flags|=16384;481&a?Ie(e,t,n,r,o,i):4&a?function(e,t,n,r,o,i){var a=Ae(e,e.type,e.props||d,n,r,i);Te(a.$LI,t,a.$CX,r,o,i),Le(e.ref,a,i)}(e,t,n,r,o,i):8&a?(!function(e,t,n,r,o,i){Te(e.children=B(function(e,t){return 32768&e.flags?e.type.render(e.props||d,e.ref,t):e.type(e.props||d,t)}(e,n)),t,n,r,o,i)}(e,t,n,r,o,i),Ve(e,i)):512&a||16&a?Oe(e,t,o):8192&a?function(e,t,n,r,o,i){var a=e.children,c=e.childFlags;12&c&&0===a.length&&(c=e.childFlags=2,a=e.children=V());2===c?Te(a,n,o,r,o,i):Me(a,n,t,r,o,i)}(e,n,t,r,o,i):1024&a&&function(e,t,n,r,o){Te(e.children,e.ref,t,!1,null,o);var i=V();Oe(i,n,r),e.dom=i.dom}(e,n,t,o,i)}function Oe(e,t,n){var r=e.dom=document.createTextNode(e.children);s(t)||g(t,r,n)}function Ie(e,t,n,r,o,a){var c=e.flags,u=e.props,l=e.className,f=e.children,d=e.childFlags,p=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,r=r||(32&c)>0);if(i(l)||""===l||(r?p.setAttribute("class",l):p.className=l),16===d)S(p,f);else if(1!==d){var h=r&&"foreignObject"!==e.type;2===d?(16384&f.flags&&(e.children=f=L(f)),Te(f,p,n,h,null,a)):8!==d&&4!==d||Me(f,p,n,h,null,a)}s(t)||g(t,p,o),s(u)||Ce(e,c,u,p,r),ye(e.ref,p,a)}function Me(e,t,n,r,o,i){for(var a=0;a0,s!==l){var h=s||d;if((c=l||d)!==d)for(var g in(f=(448&o)>0)&&(p=ve(c)),c){var v=h[g],m=c[g];v!==m&&Se(g,v,m,u,r,p,e)}if(h!==d)for(var y in h)i(c[y])&&!i(h[y])&&Se(y,h[y],null,u,r,p,e)}var b=t.children,x=t.className;e.className!==x&&(i(x)?u.removeAttribute("class"):r?u.setAttribute("class",x):u.className=x);4096&o?function(e,t){e.textContent!==t&&(e.textContent=t)}(u,b):Pe(e.childFlags,t.childFlags,e.children,b,u,n,r&&"foreignObject"!==t.type,null,e,a);f&&he(o,t,u,c,!1,p);var w=t.ref,_=e.ref;_!==w&&(me(_),ye(w,u,a))}(e,t,r,o,p,f):4&p?function(e,t,n,r,o,i,a){var u=t.children=e.children;if(s(u))return;u.$L=a;var f=t.props||d,p=t.ref,h=e.ref,g=u.state;if(!u.$N){if(c(u.componentWillReceiveProps)){if(u.$BR=!0,u.componentWillReceiveProps(f,r),u.$UN)return;u.$BR=!1}s(u.$PS)||(g=l(g,u.$PS),u.$PS=null)}Be(u,g,f,n,r,o,!1,i,a),h!==p&&(me(h),ye(p,u,a))}(e,t,n,r,o,u,f):8&p?function(e,t,n,r,o,a,u){var s=!0,l=t.props||d,f=t.ref,p=e.props,h=!i(f),g=e.children;h&&c(f.onComponentShouldUpdate)&&(s=f.onComponentShouldUpdate(p,l));if(!1!==s){h&&c(f.onComponentWillUpdate)&&f.onComponentWillUpdate(p,l);var v=t.type,m=B(32768&t.flags?v.render(l,f,r):v(l,r));Re(g,m,n,r,o,a,u),t.children=m,h&&c(f.onComponentDidUpdate)&&f.onComponentDidUpdate(p,l)}else t.children=g}(e,t,n,r,o,u,f):16&p?function(e,t){var n=t.children,r=t.dom=e.dom;n!==e.children&&(r.nodeValue=n)}(e,t):512&p?t.dom=e.dom:8192&p?function(e,t,n,r,o,i){var a=e.children,c=t.children,u=e.childFlags,s=t.childFlags,l=null;12&s&&0===c.length&&(s=t.childFlags=2,c=t.children=V());var f=0!=(2&s);if(12&u){var d=a.length;(8&u&&8&s||f||!f&&c.length>d)&&(l=b(a[d-1],!1).nextSibling)}Pe(u,s,a,c,n,r,o,l,e,i)}(e,t,n,r,o,f):function(e,t,n,r){var o=e.ref,i=t.ref,c=t.children;if(Pe(e.childFlags,t.childFlags,e.children,c,o,n,!1,null,e,r),t.dom=e.dom,o!==i&&!a(c)){var u=c.dom;v(o,u),h(i,u)}}(e,t,r,f)}function Pe(e,t,n,r,o,i,a,c,u,s){switch(e){case 2:switch(t){case 2:Re(n,r,o,i,a,c,s);break;case 1:be(n,o);break;case 16:xe(n),S(o,r);break;default:!function(e,t,n,r,o,i){xe(e),Me(t,n,r,o,b(e,!0),i),x(e,n)}(n,r,o,i,a,s)}break;case 1:switch(t){case 2:Te(r,o,i,a,c,s);break;case 1:break;case 16:S(o,r);break;default:Me(r,o,i,a,c,s)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:S(n,t))}(n,r,o);break;case 2:_e(o),Te(r,o,i,a,c,s);break;case 1:_e(o);break;default:_e(o),Me(r,o,i,a,c,s)}break;default:switch(t){case 16:we(n),S(o,r);break;case 2:Ee(o,u,n),Te(r,o,i,a,c,s);break;case 1:Ee(o,u,n);break;default:var l=0|n.length,f=0|r.length;0===l?f>0&&Me(r,o,i,a,c,s):0===f?Ee(o,u,n):8===t&&8===e?function(e,t,n,r,o,i,a,c,u,s){var l,f,d=i-1,p=a-1,h=0,g=e[h],v=t[h];e:{for(;g.key===v.key;){if(16384&v.flags&&(t[h]=v=L(v)),Re(g,v,n,r,o,c,s),e[h]=v,++h>d||h>p)break e;g=e[h],v=t[h]}for(g=e[d],v=t[p];g.key===v.key;){if(16384&v.flags&&(t[p]=v=L(v)),Re(g,v,n,r,o,c,s),e[d]=v,d--,p--,h>d||h>p)break e;g=e[d],v=t[p]}}if(h>d){if(h<=p)for(f=(l=p+1)p)for(;h<=d;)be(e[h++],n);else!function(e,t,n,r,o,i,a,c,u,s,l,f,d){var p,h,g,v=0,m=c,y=c,x=i-c+1,_=a-c+1,E=new Int32Array(_+1),k=x===r,S=!1,C=0,N=0;if(o<4||(x|_)<32)for(v=m;v<=i;++v)if(p=e[v],N<_){for(c=y;c<=a;c++)if(h=t[c],p.key===h.key){if(E[c-y]=v+1,k)for(k=!1;mc?S=!0:C=c,16384&h.flags&&(t[c]=h=L(h)),Re(p,h,u,n,s,l,d),++N;break}!k&&c>a&&be(p,u)}else k||be(p,u);else{var A={};for(v=y;v<=a;++v)A[t[v].key]=v;for(v=m;v<=i;++v)if(p=e[v],N<_)if(void 0!==(c=A[p.key])){if(k)for(k=!1;v>m;)be(e[m++],u);E[c-y]=v+1,C>c?S=!0:C=c,16384&(h=t[c]).flags&&(t[c]=h=L(h)),Re(p,h,u,n,s,l,d),++N}else k||be(p,u);else k||be(p,u)}if(k)Ee(u,f,e),Me(t,u,n,s,l,d);else if(S){var T=function(e){var t=0,n=0,r=0,o=0,i=0,a=0,c=0,u=e.length;u>De&&(De=u,se=new Int32Array(u),le=new Int32Array(u));for(;n>1]]0&&(le[n]=se[i-1]),se[i]=n)}i=o+1;var s=new Int32Array(i);a=se[i-1];for(;i-- >0;)s[i]=a,a=le[a],se[i]=0;return s}(E);for(c=T.length-1,v=_-1;v>=0;v--)0===E[v]?(16384&(h=t[C=v+y]).flags&&(t[C]=h=L(h)),Te(h,u,n,s,(g=C+1)=0;v--)0===E[v]&&(16384&(h=t[C=v+y]).flags&&(t[C]=h=L(h)),Te(h,u,n,s,(g=C+1)a?a:i,d=0;da)for(d=f;d1)for(var n=1;n=0||(o[n]=e[n]);return o}(e,["className"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var r,o;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=r,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(r||(t.VNodeFlags=r={})),t.ChildFlags=o,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(o||(t.ChildFlags=o={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ByondUi=void 0;var r=n(0),o=n(6),i=n(466),a=n(29),c=n(17);function u(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var s=(0,a.createLogger)("ByondUi"),l=[];window.addEventListener("beforeunload",(function(){for(var e=0;e=0||(o[n]=e[n]);return o}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),v=this.state.viewBox,m=function(e,t,n,r){if(0===e.length)return[];var i=(0,o.zipWith)(Math.min).apply(void 0,e),a=(0,o.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(i[0]=n[0],a[0]=n[1]),r!==undefined&&(i[1]=r[0],a[1]=r[1]),(0,o.map)((function(e){return(0,o.zipWith)((function(e,t,n,r){return(e-t)/(n-t)*r}))(e,i,a,t)}))(e)}(i,v,c,u);if(m.length>0){var y=m[0],b=m[m.length-1];m.push([v[0]+h,b[1]]),m.push([v[0]+h,-h]),m.push([-h,-h]),m.push([-h,y[1]])}var x=function(e){for(var t="",n=0;n=0||(o[n]=e[n]);return o}(t,["children","color","title","buttons"]);return(0,r.createComponentVNode)(2,o.Box,{mb:1,children:[(0,r.createVNode)(1,"div","Table",[(0,r.createVNode)(1,"div","Table__cell",(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Button,Object.assign({fluid:!0,color:u,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},f,{children:s}))),2),l&&(0,r.createVNode)(1,"div","Table__cell Table__cell--collapsing",l,0)],0),n&&(0,r.createComponentVNode)(2,o.Box,{mt:1,children:a})]})},a}(r.Component);t.Collapsible=a},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var r=n(0),o=n(6),i=n(17);var a=function(e){var t=e.content,n=(e.children,e.className),a=e.color,c=e.backgroundColor,u=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["content","children","className","color","backgroundColor"]);return u.color=t?null:"transparent",u.backgroundColor=a||c,(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["ColorBox",n,(0,i.computeBoxClassName)(u)]),t||".",0,Object.assign({},(0,i.computeBoxProps)(u))))};t.ColorBox=a,a.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var r=n(0),o=n(6),i=n(17),a=n(103);function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var u=function(e){var t,n;function u(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var s=u.prototype;return s.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},s.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},s.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},s.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,r.createComponentVNode)(2,i.Box,{className:"Dropdown__menuentry",onClick:function(){e.setSelected(t)},children:t},t)}));return n.length?n:"No Options Found"},s.render=function(){var e=this,t=this.props,n=t.color,u=void 0===n?"default":n,s=t.over,l=t.noscroll,f=t.nochevron,d=t.width,p=(t.onClick,t.selected,t.disabled),h=c(t,["color","over","noscroll","nochevron","width","onClick","selected","disabled"]),g=h.className,v=c(h,["className"]),m=s?!this.state.open:this.state.open,y=this.state.open?(0,r.createVNode)(1,"div",(0,o.classes)([l?"Dropdown__menu-noscroll":"Dropdown__menu",s&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:d}},null,(function(t){e.menuRef=t})):null;return(0,r.createVNode)(1,"div","Dropdown",[(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({width:d,className:(0,o.classes)(["Dropdown__control","Button","Button--color--"+u,p&&"Button--disabled",g])},v,{onClick:function(){p&&!e.state.open||e.setOpen(!e.state.open)},children:[(0,r.createVNode)(1,"span","Dropdown__selected-text",this.state.selected,0),!!f||(0,r.createVNode)(1,"span","Dropdown__arrow-button",(0,r.createComponentVNode)(2,a.Icon,{name:m?"chevron-up":"chevron-down"}),2)]}))),y],0)},u}(r.Component);t.Dropdown=u},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var r=n(0),o=n(196),i=n(6);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t=e.children,n=a(e,["children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Table,Object.assign({},n,{children:(0,r.createComponentVNode)(2,o.Table.Row,{children:t})})))};t.Grid=c,c.defaultHooks=i.pureComponentHooks;var u=function(e){var t=e.size,n=void 0===t?1:t,i=e.style,c=a(e,["size","style"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},i)},c)))};t.GridColumn=u,c.defaultHooks=i.pureComponentHooks,c.Column=u},function(e,t,n){"use strict";t.__esModule=!0,t.Knob=void 0;var r=n(0),o=n(9),i=n(6),a=n(17),c=n(139),u=n(140);t.Knob=function(e){if(Byond.IS_LTE_IE8)return(0,r.normalizeProps)((0,r.createComponentVNode)(2,u.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,s=e.maxValue,l=e.minValue,f=e.onChange,d=e.onDrag,p=e.step,h=e.stepPixelSize,g=e.suppressFlicker,v=e.unit,m=e.value,y=e.className,b=e.style,x=e.fillValue,w=e.color,_=e.ranges,E=void 0===_?{}:_,k=e.size,S=void 0===k?1:k,C=e.bipolar,N=(e.children,function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","style","fillValue","color","ranges","size","bipolar","children"]));return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.DraggableControl,Object.assign({dragMatrix:[0,-1]},{animated:t,format:n,maxValue:s,minValue:l,onChange:f,onDrag:d,step:p,stepPixelSize:h,suppressFlicker:g,unit:v,value:m},{children:function(e){var t=e.dragging,n=(e.editing,e.value),c=e.displayValue,u=e.displayElement,f=e.inputElement,d=e.handleDragStart,p=(0,o.scale)(null!=x?x:c,l,s),h=(0,o.scale)(c,l,s),g=w||(0,o.keyOfMatchingRange)(null!=x?x:n,E)||"default",v=270*(h-.5);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["Knob","Knob--color--"+g,C&&"Knob--bipolar",y,(0,a.computeBoxClassName)(N)]),[(0,r.createVNode)(1,"div","Knob__circle",(0,r.createVNode)(1,"div","Knob__cursorBox",(0,r.createVNode)(1,"div","Knob__cursor"),2,{style:{transform:"rotate("+v+"deg)"}}),2),t&&(0,r.createVNode)(1,"div","Knob__popupValue",u,0),(0,r.createVNode)(32,"svg","Knob__ring Knob__ringTrackPivot",(0,r.createVNode)(32,"circle","Knob__ringTrack",null,1,{cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),(0,r.createVNode)(32,"svg","Knob__ring Knob__ringFillPivot",(0,r.createVNode)(32,"circle","Knob__ringFill",null,1,{style:{"stroke-dashoffset":((C?2.75:2)-1.5*p)*Math.PI*50},cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),f],0,Object.assign({},(0,a.computeBoxProps)(Object.assign({style:Object.assign({"font-size":S+"em"},b)},N)),{onMouseDown:d})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledControls=void 0;var r=n(0),o=n(195);function i(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var a=function(e){var t=e.children,n=i(e,["children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Flex,Object.assign({mx:-.5,align:"stretch",justify:"space-between"},n,{children:t})))};t.LabeledControls=a;a.Item=function(e){var t=e.label,n=e.children,a=i(e,["label","children"]);return(0,r.createComponentVNode)(2,o.Flex.Item,{mx:1,children:(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Flex,Object.assign({minWidth:"52px",height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},a,{children:[(0,r.createComponentVNode)(2,o.Flex.Item),(0,r.createComponentVNode)(2,o.Flex.Item,{children:n}),(0,r.createComponentVNode)(2,o.Flex.Item,{color:"label",children:t})]})))})}},function(e,t,n){"use strict";t.__esModule=!0,t.Modal=void 0;var r=n(0),o=n(6),i=n(17),a=n(193);t.Modal=function(e){var t=e.className,n=e.children,c=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","children"]);return(0,r.createComponentVNode)(2,a.Dimmer,{children:(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Modal",t,(0,i.computeBoxClassName)(c)]),n,0,Object.assign({},(0,i.computeBoxProps)(c))))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var r=n(0),o=n(6),i=n(17);var a=function(e){var t=e.className,n=e.color,a=e.info,c=(e.warning,e.success),u=e.danger,s=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","color","info","warning","success","danger"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["NoticeBox",n&&"NoticeBox--color--"+n,a&&"NoticeBox--type--info",c&&"NoticeBox--type--success",u&&"NoticeBox--type--danger",t])},s)))};t.NoticeBox=a,a.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var r=n(0),o=n(9),i=n(6),a=n(17);var c=function(e){var t=e.className,n=e.value,c=e.minValue,u=void 0===c?0:c,s=e.maxValue,l=void 0===s?1:s,f=e.color,d=e.ranges,p=void 0===d?{}:d,h=e.children,g=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","value","minValue","maxValue","color","ranges","children"]),v=(0,o.scale)(n,u,l),m=h!==undefined,y=f||(0,o.keyOfMatchingRange)(n,p)||"default";return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["ProgressBar","ProgressBar--color--"+y,t,(0,a.computeBoxClassName)(g)]),[(0,r.createVNode)(1,"div","ProgressBar__fill ProgressBar__fill--animated",null,1,{style:{width:100*(0,o.clamp01)(v)+"%"}}),(0,r.createVNode)(1,"div","ProgressBar__content",m?h:(0,o.toFixed)(100*v)+"%",0)],4,Object.assign({},(0,a.computeBoxProps)(g))))};t.ProgressBar=c,c.defaultHooks=i.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var r=n(0),o=n(6),i=n(57),a=n(17);var c=function(e){var t,n;function c(t){var n;return(n=e.call(this,t)||this).ref=(0,r.createRef)(),n.scrollable=t.scrollable,n}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=c.prototype;return u.componentDidMount=function(){this.scrollable&&(0,i.addScrollableNode)(this.ref.current)},u.componentWillUnmount=function(){this.scrollable&&(0,i.removeScrollableNode)(this.ref.current)},u.render=function(){var e=this.props,t=e.className,n=e.title,i=e.level,c=void 0===i?1:i,u=e.buttons,s=e.fill,l=e.fitted,f=e.scrollable,d=e.children,p=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","title","level","buttons","fill","fitted","scrollable","children"]),h=(0,o.canRender)(n)||(0,o.canRender)(u),g=(0,o.canRender)(d);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Section","Section--level--"+c,Byond.IS_LTE_IE8&&"Section--iefix",s&&"Section--fill",l&&"Section--fitted",f&&"Section--scrollable",t].concat((0,a.computeBoxClassName)(p))),[h&&(0,r.createVNode)(1,"div","Section__title",[(0,r.createVNode)(1,"span","Section__titleText",n,0),(0,r.createVNode)(1,"div","Section__buttons",u,0)],4),l&&d||g&&(0,r.createVNode)(1,"div","Section__content",d,0)],0,Object.assign({},(0,a.computeBoxProps)(p)),null,this.ref))},c}(r.Component);t.Section=c},function(e,t,n){"use strict";t.__esModule=!0,t.Slider=void 0;var r=n(0),o=n(9),i=n(6),a=n(17),c=n(139),u=n(140);t.Slider=function(e){if(Byond.IS_LTE_IE8)return(0,r.normalizeProps)((0,r.createComponentVNode)(2,u.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,s=e.maxValue,l=e.minValue,f=e.onChange,d=e.onDrag,p=e.step,h=e.stepPixelSize,g=e.suppressFlicker,v=e.unit,m=e.value,y=e.className,b=e.fillValue,x=e.color,w=e.ranges,_=void 0===w?{}:w,E=e.children,k=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","fillValue","color","ranges","children"]),S=E!==undefined;return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.DraggableControl,Object.assign({dragMatrix:[1,0]},{animated:t,format:n,maxValue:s,minValue:l,onChange:f,onDrag:d,step:p,stepPixelSize:h,suppressFlicker:g,unit:v,value:m},{children:function(e){var t=e.dragging,n=(e.editing,e.value),c=e.displayValue,u=e.displayElement,f=e.inputElement,d=e.handleDragStart,p=b!==undefined&&null!==b,h=((0,o.scale)(n,l,s),(0,o.scale)(null!=b?b:c,l,s)),g=(0,o.scale)(c,l,s),v=x||(0,o.keyOfMatchingRange)(null!=b?b:n,_)||"default";return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["Slider","ProgressBar","ProgressBar--color--"+v,y,(0,a.computeBoxClassName)(k)]),[(0,r.createVNode)(1,"div",(0,i.classes)(["ProgressBar__fill",p&&"ProgressBar__fill--animated"]),null,1,{style:{width:100*(0,o.clamp01)(h)+"%",opacity:.4}}),(0,r.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,o.clamp01)(Math.min(h,g))+"%"}}),(0,r.createVNode)(1,"div","Slider__cursorOffset",[(0,r.createVNode)(1,"div","Slider__cursor"),(0,r.createVNode)(1,"div","Slider__pointer"),t&&(0,r.createVNode)(1,"div","Slider__popupValue",u,0)],0,{style:{width:100*(0,o.clamp01)(g)+"%"}}),(0,r.createVNode)(1,"div","ProgressBar__content",S?E:u,0),f],0,Object.assign({},(0,a.computeBoxProps)(k),{onMouseDown:d})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.TextArea=void 0;var r=n(0),o=n(6),i=n(17),a=n(197),c=n(78);function u(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var s=function(e){var t,n;function s(t,n){var o;(o=e.call(this,t,n)||this).textareaRef=(0,r.createRef)(),o.fillerRef=(0,r.createRef)(),o.state={editing:!1};var i=t.dontUseTabForIndent,u=void 0!==i&&i;return o.handleOnInput=function(e){var t=o.state.editing,n=o.props.onInput;t||o.setEditing(!0),n&&n(e,e.target.value)},o.handleOnChange=function(e){var t=o.state.editing,n=o.props.onChange;t&&o.setEditing(!1),n&&n(e,e.target.value)},o.handleKeyPress=function(e){var t=o.state.editing,n=o.props.onKeyPress;t||o.setEditing(!0),n&&n(e,e.target.value)},o.handleKeyDown=function(e){var t=o.state.editing,n=o.props.onKeyDown;if(e.keyCode===c.KEY_ESCAPE)return o.setEditing(!1),e.target.value=(0,a.toInputValue)(o.props.value),void e.target.blur();if((t||o.setEditing(!0),!u)&&9===(e.keyCode||e.which)){e.preventDefault();var r=e.target,i=r.value,s=r.selectionStart,l=r.selectionEnd;e.target.value=i.substring(0,s)+"\t"+i.substring(l),e.target.selectionEnd=s+1}n&&n(e,e.target.value)},o.handleFocus=function(e){o.state.editing||o.setEditing(!0)},o.handleBlur=function(e){var t=o.state.editing,n=o.props.onChange;t&&(o.setEditing(!1),n&&n(e,e.target.value))},o}n=e,(t=s).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var l=s.prototype;return l.componentDidMount=function(){var e=this.props.value,t=this.textareaRef.current;t&&(t.value=(0,a.toInputValue)(e))},l.componentDidUpdate=function(e,t){var n=this.state.editing,r=e.value,o=this.props.value,i=this.textareaRef.current;i&&!n&&r!==o&&(i.value=(0,a.toInputValue)(o))},l.setEditing=function(e){this.setState({editing:e})},l.getValue=function(){return this.textareaRef.current&&this.textareaRef.current.value},l.render=function(){var e=this.props,t=(e.onChange,e.onKeyDown,e.onKeyPress,e.onInput,e.onFocus,e.onBlur,e.onEnter,e.value,e.placeholder),n=u(e,["onChange","onKeyDown","onKeyPress","onInput","onFocus","onBlur","onEnter","value","placeholder"]),a=n.className,c=n.fluid,s=u(n,["className","fluid"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["TextArea",c&&"TextArea--fluid",a])},s,{children:(0,r.createVNode)(128,"textarea","TextArea__textarea",null,1,{placeholder:t,onChange:this.handleOnChange,onKeyDown:this.handleKeyDown,onKeyPress:this.handleKeyPress,onInput:this.handleOnInput,onFocus:this.handleFocus,onBlur:this.handleBlur},null,this.textareaRef)})))},s}(r.Component);t.TextArea=s},function(e,t,n){"use strict";t.__esModule=!0,t.Tabs=void 0;var r=n(0),o=n(6),i=n(17),a=n(103);function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var u=function(e){var t=e.className,n=e.vertical,a=e.fluid,u=e.children,s=c(e,["className","vertical","fluid","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Tabs",n?"Tabs--vertical":"Tabs--horizontal",a&&"Tabs--fluid",t,(0,i.computeBoxClassName)(s)]),u,0,Object.assign({},(0,i.computeBoxProps)(s))))};t.Tabs=u;u.Tab=function(e){var t=e.className,n=e.selected,u=e.color,s=e.icon,l=e.leftSlot,f=e.rightSlot,d=e.children,p=c(e,["className","selected","color","icon","leftSlot","rightSlot","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Tab","Tabs__Tab","Tab--color--"+u,n&&"Tab--selected",t].concat((0,i.computeBoxClassName)(p))),[(0,o.canRender)(l)&&(0,r.createVNode)(1,"div","Tab__left",l,0)||!!s&&(0,r.createVNode)(1,"div","Tab__left",(0,r.createComponentVNode)(2,a.Icon,{name:s}),2),(0,r.createVNode)(1,"div","Tab__text",d,0),(0,o.canRender)(f)&&(0,r.createVNode)(1,"div","Tab__right",f,0)],0,Object.assign({},(0,i.computeBoxProps)(p))))}},function(e,t,n){"use strict";t.__esModule=!0,t.TimeDisplay=void 0;var r=n(9),o=n(0);var i=function(e){return"number"==typeof e&&Number.isFinite(e)&&!Number.isNaN(e)},a=function(e){var t,n;function o(t){var n;return(n=e.call(this,t)||this).timer=null,n.last_seen_value=undefined,n.state={value:0},i(t.value)&&(n.state.value=Number(t.value),n.last_seen_value=Number(t.value)),n}n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var a=o.prototype;return a.componentDidUpdate=function(){var e=this;this.props.auto!==undefined&&(clearInterval(this.timer),this.timer=setInterval((function(){return e.tick()}),1e3))},a.tick=function(){var e=Number(this.state.value);this.props.value!==this.last_seen_value&&(this.last_seen_value=this.props.value,e=this.props.value);var t="up"===this.props.auto?10:-10,n=Math.max(0,e+t);this.setState({value:n})},a.componentDidMount=function(){var e=this;this.props.auto!==undefined&&(this.timer=setInterval((function(){return e.tick()}),1e3))},a.componentWillUnmount=function(){clearInterval(this.timer)},a.render=function(){var e=this.state.value;if(!i(e))return this.state.value||null;var t=(0,r.toFixed)(Math.floor(e/10%60)).padStart(2,"0"),n=(0,r.toFixed)(Math.floor(e/600%60)).padStart(2,"0");return(0,r.toFixed)(Math.floor(e/36e3%24)).padStart(2,"0")+":"+n+":"+t},o}(o.Component);t.TimeDisplay=a},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWindow=void 0;var r=n(0),o=n(63),i=n(2),a=n(1),c=n(199),u=function(e,t){var n=e.title,u=e.width,s=void 0===u?575:u,l=e.height,f=void 0===l?700:l,d=e.resizable,p=e.theme,h=void 0===p?"ntos":p,g=e.children,v=(0,i.useBackend)(t),m=v.act,y=v.data,b=y.PC_device_theme,x=y.PC_batteryicon,w=y.PC_showbatteryicon,_=y.PC_batterypercent,E=y.PC_ntneticon,k=y.PC_apclinkicon,S=y.PC_stationtime,C=y.PC_programheaders,N=void 0===C?[]:C,A=y.PC_showexitprogram;return(0,r.createComponentVNode)(2,c.Window,{title:n,width:s,height:f,theme:h,resizable:d,children:(0,r.createVNode)(1,"div","NtosWindow",[(0,r.createVNode)(1,"div","NtosWindow__header NtosHeader",[(0,r.createVNode)(1,"div","NtosHeader__left",[(0,r.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:2,children:S}),(0,r.createComponentVNode)(2,a.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:["ntos"===b&&"NtOS","syndicate"===b&&"Syndix"]})],4),(0,r.createVNode)(1,"div","NtosHeader__right",[N.map((function(e){return(0,r.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,r.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,o.resolveAsset)(e.icon)})},e.icon)})),(0,r.createComponentVNode)(2,a.Box,{inline:!0,children:E&&(0,r.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,o.resolveAsset)(E)})}),!!w&&x&&(0,r.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:[x&&(0,r.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,o.resolveAsset)(x)}),_&&_]}),k&&(0,r.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,r.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,o.resolveAsset)(k)})}),!!A&&(0,r.createComponentVNode)(2,a.Button,{width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return m("PC_minimize")}}),!!A&&(0,r.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return m("PC_exit")}}),!A&&(0,r.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return m("PC_shutdown")}})],0)],4),g],0)})};t.NtosWindow=u;u.Content=function(e){return(0,r.createVNode)(1,"div","NtosWindow__content",(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.Window.Content,Object.assign({},e))),2)}},function(e,t,n){"use strict";t.__esModule=!0,t.Pane=void 0;var r=n(0),o=n(6),i=n(2),a=n(1),c=n(137),u=n(141);function s(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var l=function(e,t){var n=e.theme,l=e.children,f=e.className,d=s(e,["theme","children","className"]),p=(0,i.useBackend)(t).suspended,h=(0,c.useDebug)(t).debugLayout;return(0,r.normalizeProps)((0,r.createComponentVNode)(2,u.Layout,Object.assign({className:(0,o.classes)(["Window",f]),theme:n},d,{children:(0,r.createComponentVNode)(2,a.Box,{fillPositionedParent:!0,className:h&&"debug-layout",children:!p&&l})})))};t.Pane=l;l.Content=function(e){var t=e.className,n=e.fitted,i=e.children,a=s(e,["className","fitted","children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,u.Layout.Content,Object.assign({className:(0,o.classes)(["Window__content",t])},a,{children:n&&i||(0,r.createVNode)(1,"div","Window__contentPadding",i,0)})))}},function(e,t,n){"use strict";t.__esModule=!0,t.relayMiddleware=t.debugMiddleware=void 0;var r=n(78),o=n(57),i=n(135),a=n(200),c=["backend/update","chat/message"];t.debugMiddleware=function(e){return(0,i.acquireHotKey)(r.KEY_F11),(0,i.acquireHotKey)(r.KEY_F12),o.globalEvents.on("keydown",(function(t){t.code===r.KEY_F11&&e.dispatch((0,a.toggleDebugLayout)()),t.code===r.KEY_F12&&e.dispatch((0,a.toggleKitchenSink)()),t.ctrl&&t.alt&&t.code===r.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(e){return function(t){return e(t)}}};t.relayMiddleware=function(e){var t=n(100),u="?external"===location.search;return u?t.subscribe((function(t){var n=t.type,r=t.payload;"relay"===n&&r.windowId===window.__windowId__&&e.dispatch(Object.assign({},r.action,{relayed:!0}))})):((0,i.acquireHotKey)(r.KEY_F10),o.globalEvents.on("keydown",(function(t){t===r.KEY_F10&&e.dispatch((0,a.openExternalBrowser)())}))),function(e){return function(n){var r=n.type,o=(n.payload,n.relayed);if(r!==a.openExternalBrowser.type)return!c.includes(r)||o||u||t.sendMessage({type:"relay",payload:{windowId:window.__windowId__,action:n}}),e(n);window.open(location.href+"?external","_blank")}}}},function(e,t,n){"use strict";t.__esModule=!0,t.debugReducer=void 0;t.debugReducer=function(e,t){void 0===e&&(e={});var n=t.type;t.payload;return"debug/toggleKitchenSink"===n?Object.assign({},e,{kitchenSink:!e.kitchenSink}):"debug/toggleDebugLayout"===n?Object.assign({},e,{debugLayout:!e.debugLayout}):e}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";e.exports=function(){var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,r=Object.freeze,o=Object.seal,i=Object.create,a="undefined"!=typeof Reflect&&Reflect,c=a.apply,u=a.construct;c||(c=function(e,t,n){return e.apply(t,n)}),r||(r=function(e){return e}),o||(o=function(e){return e}),u||(u=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?n-1:0),o=1;o/gm),V=o(/^data-[\-\w.\u00B7-\uFFFF]/),R=o(/^aria-[\-\w]+$/),P=o(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),B=o(/^(?:\w+script|data):/i),D=o(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function j(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&arguments[0]!==undefined?arguments[0]:K(),t=function(e){return Y(e)};if(t.version="2.2.2",t.removed=[],!e||!e.document||9!==e.document.nodeType)return t.isSupported=!1,t;var n=e.document,o=e.document,i=e.DocumentFragment,a=e.HTMLTemplateElement,c=e.Node,u=e.NodeFilter,s=e.NamedNodeMap,x=s===undefined?e.NamedNodeMap||e.MozNamedAttrMap:s,U=e.Text,$=e.Comment,H=e.DOMParser,W=e.trustedTypes;if("function"==typeof a){var q=o.createElement("template");q.content&&q.content.ownerDocument&&(o=q.content.ownerDocument)}var G=z(W,n),X=G&&Ae?G.createHTML(""):"",Z=o,Q=Z.implementation,J=Z.createNodeIterator,ee=Z.getElementsByTagName,te=Z.createDocumentFragment,ne=n.importNode,re={};try{re=_(o).documentMode?o.documentMode:{}}catch(Qe){}var oe={};t.isSupported=Q&&"undefined"!=typeof Q.createHTMLDocument&&9!==re;var ie=M,ae=L,ce=V,ue=R,se=B,le=D,fe=P,de=null,pe=w({},[].concat(j(E),j(k),j(S),j(C),j(N))),he=null,ge=w({},[].concat(j(A),j(T),j(O),j(I))),ve=null,me=null,ye=!0,be=!0,xe=!1,we=!1,_e=!1,Ee=!1,ke=!1,Se=!1,Ce=!1,Ne=!0,Ae=!1,Te=!0,Oe=!0,Ie=!1,Me={},Le=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","plaintext","script","style","svg","template","thead","title","video","xmp"]),Ve=null,Re=w({},["audio","video","img","source","image","track"]),Pe=null,Be=w({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),De=null,Fe=o.createElement("form"),je=function(e){De&&De===e||(e&&"object"===(void 0===e?"undefined":F(e))||(e={}),e=_(e),de="ALLOWED_TAGS"in e?w({},e.ALLOWED_TAGS):pe,he="ALLOWED_ATTR"in e?w({},e.ALLOWED_ATTR):ge,Pe="ADD_URI_SAFE_ATTR"in e?w(_(Be),e.ADD_URI_SAFE_ATTR):Be,Ve="ADD_DATA_URI_TAGS"in e?w(_(Re),e.ADD_DATA_URI_TAGS):Re,ve="FORBID_TAGS"in e?w({},e.FORBID_TAGS):{},me="FORBID_ATTR"in e?w({},e.FORBID_ATTR):{},Me="USE_PROFILES"in e&&e.USE_PROFILES,ye=!1!==e.ALLOW_ARIA_ATTR,be=!1!==e.ALLOW_DATA_ATTR,xe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,we=e.SAFE_FOR_TEMPLATES||!1,_e=e.WHOLE_DOCUMENT||!1,Se=e.RETURN_DOM||!1,Ce=e.RETURN_DOM_FRAGMENT||!1,Ne=!1!==e.RETURN_DOM_IMPORT,Ae=e.RETURN_TRUSTED_TYPE||!1,ke=e.FORCE_BODY||!1,Te=!1!==e.SANITIZE_DOM,Oe=!1!==e.KEEP_CONTENT,Ie=e.IN_PLACE||!1,fe=e.ALLOWED_URI_REGEXP||fe,we&&(be=!1),Ce&&(Se=!0),Me&&(de=w({},[].concat(j(N))),he=[],!0===Me.html&&(w(de,E),w(he,A)),!0===Me.svg&&(w(de,k),w(he,T),w(he,I)),!0===Me.svgFilters&&(w(de,S),w(he,T),w(he,I)),!0===Me.mathMl&&(w(de,C),w(he,O),w(he,I))),e.ADD_TAGS&&(de===pe&&(de=_(de)),w(de,e.ADD_TAGS)),e.ADD_ATTR&&(he===ge&&(he=_(he)),w(he,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&w(Pe,e.ADD_URI_SAFE_ATTR),Oe&&(de["#text"]=!0),_e&&w(de,["html","head","body"]),de.table&&(w(de,["tbody"]),delete ve.tbody),r&&r(e),De=e)},Ke=function(e){d(t.removed,{element:e});try{e.parentNode.removeChild(e)}catch(Qe){e.outerHTML=X}},ze=function(e,n){try{d(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch(Qe){d(t.removed,{attribute:null,from:n})}n.removeAttribute(e)},Ye=function(e){var t=void 0,n=void 0;if(ke)e=""+e;else{var r=h(e,/^[\r\n\t ]+/);n=r&&r[0]}var i=G?G.createHTML(e):e;try{t=(new H).parseFromString(i,"text/html")}catch(Qe){}if(!t||!t.documentElement){var a=(t=Q.createHTMLDocument("")).body;a.parentNode.removeChild(a.parentNode.firstElementChild),a.outerHTML=i}return e&&n&&t.body.insertBefore(o.createTextNode(n),t.body.childNodes[0]||null),ee.call(t,_e?"html":"body")[0]},Ue=function(e){return J.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,(function(){return u.FILTER_ACCEPT}),!1)},$e=function(e){return!(e instanceof U||e instanceof $||"string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof x&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI)},He=function(e){return"object"===(void 0===c?"undefined":F(c))?e instanceof c:e&&"object"===(void 0===e?"undefined":F(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},We=function(e,n,r){oe[e]&&l(oe[e],(function(e){e.call(t,n,r,De)}))},qe=function(e){var n=void 0;if(We("beforeSanitizeElements",e,null),$e(e))return Ke(e),!0;if(h(e.nodeName,/[\u0080-\uFFFF]/))return Ke(e),!0;var r=p(e.nodeName);if(We("uponSanitizeElement",e,{tagName:r,allowedTags:de}),("svg"===r||"math"===r)&&0!==e.querySelectorAll("p, br, form, table").length)return Ke(e),!0;if(!He(e.firstElementChild)&&(!He(e.content)||!He(e.content.firstElementChild))&&y(/<[!/\w]/g,e.innerHTML)&&y(/<[!/\w]/g,e.textContent))return Ke(e),!0;if(!de[r]||ve[r]){if(Oe&&!Le[r]&&"function"==typeof e.insertAdjacentHTML)try{var o=e.innerHTML;e.insertAdjacentHTML("AfterEnd",G?G.createHTML(o):o)}catch(Qe){}return Ke(e),!0}return"noscript"!==r&&"noembed"!==r||!y(/<\/no(script|embed)/i,e.innerHTML)?(we&&3===e.nodeType&&(n=e.textContent,n=g(n,ie," "),n=g(n,ae," "),e.textContent!==n&&(d(t.removed,{element:e.cloneNode()}),e.textContent=n)),We("afterSanitizeElements",e,null),!1):(Ke(e),!0)},Ge=function(e,t,n){if(Te&&("id"===t||"name"===t)&&(n in o||n in Fe))return!1;if(be&&y(ce,t));else if(ye&&y(ue,t));else{if(!he[t]||me[t])return!1;if(Pe[t]);else if(y(fe,g(n,le,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(n,"data:")||!Ve[e])if(xe&&!y(se,g(n,le,"")));else if(n)return!1}return!0},Xe=function(e){var n=void 0,r=void 0,o=void 0,i=void 0;We("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var c={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:he};for(i=a.length;i--;){var u=n=a[i],s=u.name,l=u.namespaceURI;if(r=m(n.value),o=p(s),c.attrName=o,c.attrValue=r,c.keepAttr=!0,c.forceKeepAttr=undefined,We("uponSanitizeAttribute",e,c),r=c.attrValue,!c.forceKeepAttr&&(ze(s,e),c.keepAttr))if(y(/\/>/i,r))ze(s,e);else{we&&(r=g(r,ie," "),r=g(r,ae," "));var d=e.nodeName.toLowerCase();if(Ge(d,o,r))try{l?e.setAttributeNS(l,s,r):e.setAttribute(s,r),f(t.removed)}catch(Qe){}}}We("afterSanitizeAttributes",e,null)}},Ze=function Je(e){var t=void 0,n=Ue(e);for(We("beforeSanitizeShadowDOM",e,null);t=n.nextNode();)We("uponSanitizeShadowNode",t,null),qe(t)||(t.content instanceof i&&Je(t.content),Xe(t));We("afterSanitizeShadowDOM",e,null)};return t.sanitize=function(r,o){var a=void 0,u=void 0,s=void 0,l=void 0,f=void 0;if(r||(r="\x3c!--\x3e"),"string"!=typeof r&&!He(r)){if("function"!=typeof r.toString)throw b("toString is not a function");if("string"!=typeof(r=r.toString()))throw b("dirty is not a string, aborting")}if(!t.isSupported){if("object"===F(e.toStaticHTML)||"function"==typeof e.toStaticHTML){if("string"==typeof r)return e.toStaticHTML(r);if(He(r))return e.toStaticHTML(r.outerHTML)}return r}if(Ee||je(o),t.removed=[],"string"==typeof r&&(Ie=!1),Ie);else if(r instanceof c)1===(u=(a=Ye("\x3c!----\x3e")).ownerDocument.importNode(r,!0)).nodeType&&"BODY"===u.nodeName||"HTML"===u.nodeName?a=u:a.appendChild(u);else{if(!Se&&!we&&!_e&&-1===r.indexOf("<"))return G&&Ae?G.createHTML(r):r;if(!(a=Ye(r)))return Se?null:X}a&&ke&&Ke(a.firstChild);for(var d=Ue(Ie?r:a);s=d.nextNode();)3===s.nodeType&&s===l||qe(s)||(s.content instanceof i&&Ze(s.content),Xe(s),l=s);if(l=null,Ie)return r;if(Se){if(Ce)for(f=te.call(a.ownerDocument);a.firstChild;)f.appendChild(a.firstChild);else f=a;return Ne&&(f=ne.call(n,f,!0)),f}var p=_e?a.outerHTML:a.innerHTML;return we&&(p=g(p,ie," "),p=g(p,ae," ")),G&&Ae?G.createHTML(p):p},t.setConfig=function(e){je(e),Ee=!0},t.clearConfig=function(){De=null,Ee=!1},t.isValidAttribute=function(e,t,n){De||je({});var r=p(e),o=p(t);return Ge(r,o,n)},t.addHook=function(e,t){"function"==typeof t&&(oe[e]=oe[e]||[],d(oe[e],t))},t.removeHook=function(e){oe[e]&&f(oe[e])},t.removeHooks=function(e){oe[e]&&(oe[e]=[])},t.removeAllHooks=function(){oe={}},t}()}()},function(e,t,n){"use strict";e.exports=function(){function e(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}var r=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:t,changeDefaults:function(t){e.exports.defaults=t}}})),o=(r.defaults,r.getDefaults,r.changeDefaults,/[&<>"']/),i=/[&<>"']/g,a=/[<>"']|&(?!#?\w+;)/,c=/[<>"']|&(?!#?\w+;)/g,u={"&":"&","<":"<",">":">",'"':""","'":"'"},s=function(e){return u[e]},l=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function f(e){return e.replace(l,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var d=/(^|[^\[])\^/g,p=/[^\w:]/g,h=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i,g={},v=/^[^:]+:\/*[^/]*$/,m=/^([^:]+:)[\s\S]*$/,y=/^([^:]+:\/*[^/]*)[\s\S]*$/;function b(e,t){g[" "+e]||(v.test(e)?g[" "+e]=e+"/":g[" "+e]=x(e,"/",!0));var n=-1===(e=g[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(m,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(y,"$1")+t:e+t}function x(e,t,n){var r=e.length;if(0===r)return"";for(var o=0;o=0&&"\\"===n[o];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.length1?{type:"space",raw:t[0]}:{raw:"\n"}},t.code=function(e,t){var n=this.rules.block.code.exec(e);if(n){var r=t[t.length-1];if(r&&"paragraph"===r.type)return{raw:n[0],text:n[0].trimRight()};var o=n[0].replace(/^ {4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?o:E(o,"\n")}}},t.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=function(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var r=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=r.length?e.slice(r.length):e})).join("\n")}(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:r}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[1].length,text:t[2]}},t.nptable=function(e){var t=this.rules.block.nptable.exec(e);if(t){var n={type:"table",header:k(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(n.header.length===n.align.length){var r,o=n.align.length;for(r=0;r ?/gm,"");return{type:"blockquote",raw:t[0],text:n}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){for(var n,r,o,i,a,c,u,s=t[0],l=t[2],f=l.length>1,d=")"===l[l.length-1],p={type:"list",raw:s,ordered:f,start:f?+l.slice(0,-1):"",loose:!1,items:[]},h=t[0].match(this.rules.block.item),g=!1,v=h.length,m=0;m1||this.options.smartLists&&o!==l)&&(i=h.slice(m+1).join("\n"),p.raw=p.raw.substring(0,p.raw.length-i.length),m=v-1)),a=g||/\n\n(?!\s*$)/.test(n),m!==v-1&&(g="\n"===n.charAt(n.length-1),a||(a=g)),a&&(p.loose=!0),c=/^\[[ xX]\] /.test(n),u=undefined,c&&(u=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,"")),p.items.push({type:"list_item",raw:s,task:c,checked:u,loose:a,text:n});return p}},t.html=function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):S(t[0]):t[0]}},t.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},t.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:k(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var r,o=n.align.length;for(r=0;r/i.test(r[0])&&(t=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:r[0],inLink:t,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):S(r[0]):r[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=C(t[2],"()");if(n>-1){var r=(0===t[0].indexOf("!")?5:4)+t[1].length+n;t[2]=t[2].substring(0,n),t[0]=t[0].substring(0,r).trim(),t[3]=""}var o=t[2],i="";if(this.options.pedantic){var a=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);a?(o=a[1],i=a[3]):i=""}else i=t[3]?t[3].slice(1,-1):"";return N(t,{href:(o=o.trim().replace(/^<([\s\S]*)>$/,"$1"))?o.replace(this.rules.inline._escapes,"$1"):o,title:i?i.replace(this.rules.inline._escapes,"$1"):i},t[0])}},t.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=t[r.toLowerCase()])||!r.href){var o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return N(n,r,n[0])}},t.strong=function(e,t,n){void 0===n&&(n="");var r=this.rules.inline.strong.start.exec(e);if(r&&(!r[1]||r[1]&&(""===n||this.rules.inline.punctuation.exec(n)))){t=t.slice(-1*e.length);var o,i="**"===r[0]?this.rules.inline.strong.endAst:this.rules.inline.strong.endUnd;for(i.lastIndex=0;null!=(r=i.exec(t));)if(o=this.rules.inline.strong.middle.exec(t.slice(0,r.index+3)))return{type:"strong",raw:e.slice(0,o[0].length),text:e.slice(2,o[0].length-2)}}},t.em=function(e,t,n){void 0===n&&(n="");var r=this.rules.inline.em.start.exec(e);if(r&&(!r[1]||r[1]&&(""===n||this.rules.inline.punctuation.exec(n)))){t=t.slice(-1*e.length);var o,i="*"===r[0]?this.rules.inline.em.endAst:this.rules.inline.em.endUnd;for(i.lastIndex=0;null!=(r=i.exec(t));)if(o=this.rules.inline.em.middle.exec(t.slice(0,r.index+2)))return{type:"em",raw:e.slice(0,o[0].length),text:e.slice(1,o[0].length-1)}}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),r=/[^ ]/.test(n),o=n.startsWith(" ")&&n.endsWith(" ");return r&&o&&(n=n.substring(1,n.length-1)),n=S(n,!0),{type:"codespan",raw:t[0],text:n}}},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[1]}},t.autolink=function(e,t){var n,r,o=this.rules.inline.autolink.exec(e);if(o)return r="@"===o[2]?"mailto:"+(n=S(this.options.mangle?t(o[1]):o[1])):n=S(o[1]),{type:"link",raw:o[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}},t.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,o;if("@"===n[2])o="mailto:"+(r=S(this.options.mangle?t(n[0]):n[0]));else{var i;do{i=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(i!==n[0]);r=S(n[0]),o="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}},t.inlineText=function(e,t,n){var r,o=this.rules.inline.text.exec(e);if(o)return r=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):S(o[0]):o[0]:S(this.options.smartypants?n(o[0]):o[0]),{type:"text",raw:o[0],text:r}},e}(),T=w.noopTest,O=w.edit,I=w.merge,M={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:T,table:T,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};M.def=O(M.def).replace("label",M._label).replace("title",M._title).getRegex(),M.bullet=/(?:[*+-]|\d{1,9}[.)])/,M.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,M.item=O(M.item,"gm").replace(/bull/g,M.bullet).getRegex(),M.list=O(M.list).replace(/bull/g,M.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+M.def.source+")").getRegex(),M._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",M._comment=//,M.html=O(M.html,"i").replace("comment",M._comment).replace("tag",M._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),M.paragraph=O(M._paragraph).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",M._tag).getRegex(),M.blockquote=O(M.blockquote).replace("paragraph",M.paragraph).getRegex(),M.normal=I({},M),M.gfm=I({},M.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),M.gfm.nptable=O(M.gfm.nptable).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",M._tag).getRegex(),M.gfm.table=O(M.gfm.table).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",M._tag).getRegex(),M.pedantic=I({},M.normal,{html:O("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",M._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:T,paragraph:O(M.normal._paragraph).replace("hr",M.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",M.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var L={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:T,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",strong:{start:/^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,middle:/^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,endAst:/[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation\s]|$))/,endUnd:/[^\s]__(?!_)(?:(?=[punctuation\s])|$)/},em:{start:/^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,middle:/^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,endAst:/[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation\s]|$))/,endUnd:/[^\s]_(?!_)(?:(?=[punctuation\s])|$)/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:T,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};L.punctuation=O(L.punctuation).replace(/punctuation/g,L._punctuation).getRegex(),L._blockSkip="\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>",L._overlapSkip="__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*",L.em.start=O(L.em.start).replace(/punctuation/g,L._punctuation).getRegex(),L.em.middle=O(L.em.middle).replace(/punctuation/g,L._punctuation).replace(/overlapSkip/g,L._overlapSkip).getRegex(),L.em.endAst=O(L.em.endAst,"g").replace(/punctuation/g,L._punctuation).getRegex(),L.em.endUnd=O(L.em.endUnd,"g").replace(/punctuation/g,L._punctuation).getRegex(),L.strong.start=O(L.strong.start).replace(/punctuation/g,L._punctuation).getRegex(),L.strong.middle=O(L.strong.middle).replace(/punctuation/g,L._punctuation).replace(/blockSkip/g,L._blockSkip).getRegex(),L.strong.endAst=O(L.strong.endAst,"g").replace(/punctuation/g,L._punctuation).getRegex(),L.strong.endUnd=O(L.strong.endUnd,"g").replace(/punctuation/g,L._punctuation).getRegex(),L.blockSkip=O(L._blockSkip,"g").getRegex(),L.overlapSkip=O(L._overlapSkip,"g").getRegex(),L._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,L._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,L._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,L.autolink=O(L.autolink).replace("scheme",L._scheme).replace("email",L._email).getRegex(),L._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,L.tag=O(L.tag).replace("comment",M._comment).replace("attribute",L._attribute).getRegex(),L._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,L._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,L._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,L.link=O(L.link).replace("label",L._label).replace("href",L._href).replace("title",L._title).getRegex(),L.reflink=O(L.reflink).replace("label",L._label).getRegex(),L.reflinkSearch=O(L.reflinkSearch,"g").replace("reflink",L.reflink).replace("nolink",L.nolink).getRegex(),L.normal=I({},L),L.pedantic=I({},L.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:O(/^!?\[(label)\]\((.*?)\)/).replace("label",L._label).getRegex(),reflink:O(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",L._label).getRegex()}),L.gfm=I({},L.normal,{escape:O(L.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}var j=function(){function t(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||R,this.options.tokenizer=this.options.tokenizer||new A,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var t={block:P.normal,inline:B.normal};this.options.pedantic?(t.block=P.pedantic,t.inline=B.pedantic):this.options.gfm&&(t.block=P.gfm,this.options.breaks?t.inline=B.breaks:t.inline=B.gfm),this.tokenizer.rules=t}t.lex=function(e,n){return new t(n).lex(e)};var n,r,o,i=t.prototype;return i.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens},i.blockTokens=function(e,t,n){var r,o,i,a;for(void 0===t&&(t=[]),void 0===n&&(n=!0),e=e.replace(/^ +$/gm,"");e;)if(r=this.tokenizer.space(e))e=e.substring(r.raw.length),r.type&&t.push(r);else if(r=this.tokenizer.code(e,t))e=e.substring(r.raw.length),r.type?t.push(r):((a=t[t.length-1]).raw+="\n"+r.raw,a.text+="\n"+r.text);else if(r=this.tokenizer.fences(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.heading(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.nptable(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.hr(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.blockquote(e))e=e.substring(r.raw.length),r.tokens=this.blockTokens(r.text,[],n),t.push(r);else if(r=this.tokenizer.list(e)){for(e=e.substring(r.raw.length),i=r.items.length,o=0;o0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(c));)u.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;e;)if(i=this.tokenizer.escape(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.tag(e,n,r))e=e.substring(i.raw.length),n=i.inLink,r=i.inRawBlock,t.push(i);else if(i=this.tokenizer.link(e))e=e.substring(i.raw.length),"link"===i.type&&(i.tokens=this.inlineTokens(i.text,[],!0,r)),t.push(i);else if(i=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(i.raw.length),"link"===i.type&&(i.tokens=this.inlineTokens(i.text,[],!0,r)),t.push(i);else if(i=this.tokenizer.strong(e,c,o))e=e.substring(i.raw.length),i.tokens=this.inlineTokens(i.text,[],n,r),t.push(i);else if(i=this.tokenizer.em(e,c,o))e=e.substring(i.raw.length),i.tokens=this.inlineTokens(i.text,[],n,r),t.push(i);else if(i=this.tokenizer.codespan(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.br(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.del(e))e=e.substring(i.raw.length),i.tokens=this.inlineTokens(i.text,[],n,r),t.push(i);else if(i=this.tokenizer.autolink(e,F))e=e.substring(i.raw.length),t.push(i);else if(n||!(i=this.tokenizer.url(e,F))){if(i=this.tokenizer.inlineText(e,r,D))e=e.substring(i.raw.length),o=i.raw.slice(-1),t.push(i);else if(e){var s="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent)break;throw new Error(s)}}else e=e.substring(i.raw.length),t.push(i);return t},n=t,o=[{key:"rules",get:function(){return{block:P,inline:B}}}],(r=null)&&e(n.prototype,r),o&&e(n,o),t}(),K=r.defaults,z=w.cleanUrl,Y=w.escape,U=function(){function e(e){this.options=e||K}var t=e.prototype;return t.code=function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,r);null!=o&&o!==e&&(n=!0,e=o)}return r?'
'+(n?e:Y(e,!0))+"
\n":"
"+(n?e:Y(e,!0))+"
\n"},t.blockquote=function(e){return"
\n"+e+"
\n"},t.html=function(e){return e},t.heading=function(e,t,n,r){return this.options.headerIds?"'+e+"\n":""+e+"\n"},t.hr=function(){return this.options.xhtml?"
\n":"
\n"},t.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},t.listitem=function(e){return"
  • "+e+"
  • \n"},t.checkbox=function(e){return" "},t.paragraph=function(e){return"

    "+e+"

    \n"},t.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},t.tablerow=function(e){return"\n"+e+"\n"},t.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},t.strong=function(e){return""+e+""},t.em=function(e){return""+e+""},t.codespan=function(e){return""+e+""},t.br=function(){return this.options.xhtml?"
    ":"
    "},t.del=function(e){return""+e+""},t.link=function(e,t,n){if(null===(e=z(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"},t.image=function(e,t,n){if(null===(e=z(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">"},t.text=function(e){return e},e}(),$=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),H=function(){function e(){this.seen={}}return e.prototype.slug=function(e){var t=e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},e}(),W=r.defaults,q=w.unescape,G=function(){function e(e){this.options=e||W,this.options.renderer=this.options.renderer||new U,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new $,this.slugger=new H}e.parse=function(t,n){return new e(n).parse(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var n,r,o,i,a,c,u,s,l,f,d,p,h,g,v,m,y,b,x="",w=e.length;for(n=0;n0&&"text"===v.tokens[0].type?(v.tokens[0].text=b+" "+v.tokens[0].text,v.tokens[0].tokens&&v.tokens[0].tokens.length>0&&"text"===v.tokens[0].tokens[0].type&&(v.tokens[0].tokens[0].text=b+" "+v.tokens[0].tokens[0].text)):v.tokens.unshift({type:"text",text:b}):g+=b),g+=this.parse(v.tokens,h),l+=this.renderer.listitem(g,y,m);x+=this.renderer.list(l,d,p);continue;case"html":x+=this.renderer.html(f.text);continue;case"paragraph":x+=this.renderer.paragraph(this.parseInline(f.tokens));continue;case"text":for(l=f.tokens?this.parseInline(f.tokens):f.text;n+1An error occurred:

    "+Q(u.message+"",!0)+"
    ";throw u}}return ne.options=ne.setOptions=function(e){return X(ne.defaults,e),ee(ne.defaults),ne},ne.getDefaults=J,ne.defaults=te,ne.use=function(e){var t=X({},e);if(e.renderer&&function(){var n=ne.defaults.renderer||new U,r=function(t){var r=n[t];n[t]=function(){for(var o=arguments.length,i=new Array(o),a=0;a=0||(o[n]=e[n]);return o}(t,["payload"]),o=Object.assign({tgui:1,window_id:window.__windowId__},r);null!==n&&n!==undefined&&(o.payload=JSON.stringify(n)),Byond.topic(o)};t.sendMessage=p;var h=function(e,t){void 0===t&&(t={}),"object"!=typeof t||null===t||Array.isArray(t)?c.error("Payload for act() must be an object, got this:",t):p({type:"act/"+e,payload:t})};t.sendAct=h;var g=function(e){return e.backend||{}};t.selectBackend=g;t.useBackend=function(e){var t=e.store,n=g(t.getState());return Object.assign({},n,{act:h})};t.useLocalState=function(e,t,n){var r,o=e.store,i=null!=(r=g(o.getState()).shared)?r:{},u=t in i?i[t]:n;return[u,function(e){o.dispatch(l(t,"function"==typeof e?e(u):e))}]};t.useSharedState=function(e,t,n){var r,o=e.store,i=null!=(r=g(o.getState()).shared)?r:{},u=t in i?i[t]:n;return[u,function(e){p({type:"setSharedState",key:t,value:JSON.stringify("function"==typeof e?e(u):e)||""})}]}}).call(this,n(101).setImmediate)},function(e,t,n){"use strict";t.__esModule=!0,t.Window=t.Pane=t.NtosWindow=t.Layout=void 0;var r=n(141);t.Layout=r.Layout;var o=n(482);t.NtosWindow=o.NtosWindow;var i=n(483);t.Pane=i.Pane;var u=n(199);t.Window=u.Window},function(e,t,n){"use strict";var r=n(7),o=n(23).f,i=n(32),u=n(25),a=n(109),c=n(152),s=n(70);e.exports=function(e,t){var n,l,f,d,p,h=e.target,g=e.global,v=e.stat;if(n=g?r:v?r[h]||a(h,{}):(r[h]||{}).prototype)for(l in t){if(d=t[l],f=e.noTargetGet?(p=o(n,l))&&p.value:n[l],!s(g?l:h+(v?".":"#")+l,e.forced)&&f!==undefined){if(typeof d==typeof f)continue;c(d,f)}(e.sham||f&&f.sham)&&i(d,"sham",!0),u(n,l,d,e)}}},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";t.__esModule=!0,t.canRender=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;nn?n:e};t.clamp01=function(e){return e<0?0:e>1?1:e};t.scale=function(e,t,n){return(e-t)/(n-t)};t.round=function(e,t){return!e||isNaN(e)?e:(t|=0,i=(e*=n=Math.pow(10,t))>0|-(e<0),o=Math.abs(e%1)>=.4999999999854481,r=Math.floor(e),o&&(e=r+(i>0)),(o?e:Math.round(e))/n);var n,r,o,i};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(Math.max(t,0))};var r=function(e,t){return t&&e>=t[0]&&e<=t[1]};t.inRange=r;t.keyOfMatchingRange=function(e,t){for(var n=0,o=Object.keys(t);n0?o(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r,o=n(123),i=n(10),u=n(7),a=n(8),c=n(20),s=n(84),l=n(32),f=n(25),d=n(16).f,p=n(42),h=n(55),g=n(15),v=n(67),m=u.Int8Array,y=m&&m.prototype,b=u.Uint8ClampedArray,E=b&&b.prototype,D=m&&p(m),x=y&&p(y),w=Object.prototype,C=w.isPrototypeOf,_=g("toStringTag"),A=v("TYPED_ARRAY_TAG"),k=o&&!!h&&"Opera"!==s(u.opera),S=!1,F={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},N=function(e){var t=s(e);return"DataView"===t||c(F,t)},T=function(e){return a(e)&&c(F,s(e))};for(r in F)u[r]||(k=!1);if((!k||"function"!=typeof D||D===Function.prototype)&&(D=function(){throw TypeError("Incorrect invocation")},k))for(r in F)u[r]&&h(u[r],D);if((!k||!x||x===w)&&(x=D.prototype,k))for(r in F)u[r]&&h(u[r].prototype,x);if(k&&p(E)!==x&&h(E,x),i&&!c(x,_))for(r in S=!0,d(x,_,{get:function(){return a(this)?this[A]:undefined}}),F)u[r]&&l(u[r],A,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:k,TYPED_ARRAY_TAG:S&&A,aTypedArray:function(e){if(T(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(h){if(C.call(D,e))return e}else for(var t in F)if(c(F,r)){var n=u[t];if(n&&(e===n||C.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(i){if(n)for(var r in F){var o=u[r];o&&c(o.prototype,e)&&delete o.prototype[e]}x[e]&&!n||f(x,e,n?t:k&&y[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,o;if(i){if(h){if(n)for(r in F)(o=u[r])&&c(o,e)&&delete o[e];if(D[e]&&!n)return;try{return f(D,e,n?t:k&&m[e]||t)}catch(a){}}for(r in F)!(o=u[r])||o[e]&&!n||f(o,e,t)}},isView:N,isTypedArray:T,TypedArray:D,TypedArrayPrototype:x}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.uniqBy=t.reduce=t.sortBy=t.map=t.filter=t.toKeyedArray=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var r in e)t.call(e,r)&&n.push(e[r]);return n}return[]};t.toKeyedArray=function(e,t){return void 0===t&&(t="key"),r((function(e,n){var r;return Object.assign(((r={})[t]=n,r),e)}))(e)};t.filter=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],r=0;ra)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&(t.style=c),t};t.computeBoxProps=v;var m=function(e){var t=e.textColor||e.color,n=e.backgroundColor;return(0,r.classes)([s(t)&&"color-"+t,s(n)&&"color-bg-"+n])};t.computeBoxClassName=m;var y=function(e){var t=e.as,n=void 0===t?"div":t,r=e.className,u=e.children,a=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["as","className","children"]);if("function"==typeof u)return u(v(e));var c="string"==typeof r?r+" "+m(a):m(a),s=v(a);return(0,o.createVNode)(i.VNodeFlags.HtmlElement,n,c,u,i.ChildFlags.UnknownChildren,s)};t.Box=y,y.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";var r=n(24);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";function r(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",apos:"'"};return e.replace(/
    /gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/&#?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/&#x?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,n){"use strict";var r=n(53),o=n(66),i=n(18),u=n(12),a=n(72),c=[].push,s=function(e){var t=1==e,n=2==e,s=3==e,l=4==e,f=6==e,d=5==e||f;return function(p,h,g,v){for(var m,y,b=i(p),E=o(b),D=r(h,g,3),x=u(E.length),w=0,C=v||a,_=t?C(p,x):n?C(p,0):undefined;x>w;w++)if((d||w in E)&&(y=D(m=E[w],w,b),e))if(t)_[w]=y;else if(y)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:c.call(_,m)}else if(l)return!1;return f?-1:s||l?l:_}};e.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},function(e,t,n){"use strict";t.__esModule=!0,t.useSelector=t.useDispatch=t.createAction=t.combineReducers=t.applyMiddleware=t.createStore=void 0;var r=n(30);function o(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?o-1:0),u=1;u1?t-1:0),r=1;r2?n-2:0),o=2;o=i){var u=[t].concat(r).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;Byond.topic({tgui:1,window_id:window.__windowId__,type:"log",ns:t,message:u})}},s=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?o-1:0),a=1;a1?r-1:0),i=1;i"+u+""}},function(e,t,n){"use strict";var r=n(5);e.exports=function(e){return r((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"CentCom",freq:1337,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"AI Private",freq:1447,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var r=[{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"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),o=r.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return o&&o.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=r.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,n){"use strict";var r=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:r)(e)}},function(e,t,n){"use strict";t.__esModule=!0,t.formatDb=t.formatMoney=t.formatPower=t.formatSiUnit=void 0;var r=n(9),o=["f","p","n","\u03bc","m"," ","k","M","G","T","P","E","Z","Y"],i=o.indexOf(" "),u=function(e,t,n){if(void 0===t&&(t=-i),void 0===n&&(n=""),"number"!=typeof e||!Number.isFinite(e))return e;var u=Math.floor(Math.log10(e)),a=Math.floor(Math.max(3*t,u)),c=Math.floor(u/3),s=Math.floor(a/3),l=(0,r.clamp)(i+s,0,o.length),f=o[l],d=e/Math.pow(1e3,s),p=c>t?2+3*s-a:0;return((0,r.toFixed)(d,p)+" "+f+n).trim()};t.formatSiUnit=u;t.formatPower=function(e,t){return void 0===t&&(t=0),u(e,t,"W")};t.formatMoney=function(e,t){if(void 0===t&&(t=0),!Number.isFinite(e))return e;var n=(0,r.round)(e,t);t>0&&(n=(0,r.toFixed)(e,t));var o=(n=String(n)).length,i=n.indexOf(".");-1===i&&(i=o);for(var u="",a=0;a0&&a=0?"+":t<0?"\u2013":"",o=Math.abs(t);return n+(o=o===Infinity?"Inf":(0,r.toFixed)(o,2))+" dB"}},function(e,t,n){"use strict";var r=n(8);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r=n(153),o=n(7),i=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?i(r[e])||i(o[e]):r[e]&&r[e][t]||o[e]&&o[e][t]}},function(e,t,n){"use strict";var r=n(20),o=n(18),i=n(82),u=n(122),a=i("IE_PROTO"),c=Object.prototype;e.exports=u?Object.getPrototypeOf:function(e){return e=o(e),r(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?c:null}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r=n(5);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){throw 1},1)}))}},function(e,t,n){"use strict";var r=n(11),o=n(27),i=n(15)("species");e.exports=function(e,t){var n,u=r(e).constructor;return u===undefined||(n=r(u)[i])==undefined?t:o(n)}},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(10),u=n(134),a=n(13),c=n(87),s=n(60),l=n(51),f=n(32),d=n(12),p=n(168),h=n(182),g=n(40),v=n(20),m=n(84),y=n(8),b=n(48),E=n(55),D=n(52).f,x=n(183),w=n(21).forEach,C=n(59),_=n(16),A=n(23),k=n(33),S=n(89),F=k.get,N=k.set,T=_.f,B=A.f,I=Math.round,O=o.RangeError,M=c.ArrayBuffer,L=c.DataView,V=a.NATIVE_ARRAY_BUFFER_VIEWS,P=a.TYPED_ARRAY_TAG,R=a.TypedArray,j=a.TypedArrayPrototype,K=a.aTypedArrayConstructor,z=a.isTypedArray,Y=function(e,t){for(var n=0,r=t.length,o=new(K(e))(r);r>n;)o[n]=t[n++];return o},U=function(e,t){T(e,t,{get:function(){return F(this)[t]}})},$=function(e){var t;return e instanceof M||"ArrayBuffer"==(t=m(e))||"SharedArrayBuffer"==t},H=function(e,t){return z(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},W=function(e,t){return H(e,t=g(t,!0))?l(2,e[t]):B(e,t)},q=function(e,t,n){return!(H(e,t=g(t,!0))&&y(n)&&v(n,"value"))||v(n,"get")||v(n,"set")||n.configurable||v(n,"writable")&&!n.writable||v(n,"enumerable")&&!n.enumerable?T(e,t,n):(e[t]=n.value,e)};i?(V||(A.f=W,_.f=q,U(j,"buffer"),U(j,"byteOffset"),U(j,"byteLength"),U(j,"length")),r({target:"Object",stat:!0,forced:!V},{getOwnPropertyDescriptor:W,defineProperty:q}),e.exports=function(e,t,n){var i=e.match(/\d+$/)[0]/8,a=e+(n?"Clamped":"")+"Array",c="get"+e,l="set"+e,g=o[a],v=g,m=v&&v.prototype,_={},A=function(e,t){T(e,t,{get:function(){return function(e,t){var n=F(e);return n.view[c](t*i+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,r){var o=F(e);n&&(r=(r=I(r))<0?0:r>255?255:255&r),o.view[l](t*i+o.byteOffset,r,!0)}(this,t,e)},enumerable:!0})};V?u&&(v=t((function(e,t,n,r){return s(e,v,a),S(y(t)?$(t)?r!==undefined?new g(t,h(n,i),r):n!==undefined?new g(t,h(n,i)):new g(t):z(t)?Y(v,t):x.call(v,t):new g(p(t)),e,v)})),E&&E(v,R),w(D(g),(function(e){e in v||f(v,e,g[e])})),v.prototype=m):(v=t((function(e,t,n,r){s(e,v,a);var o,u,c,l=0,f=0;if(y(t)){if(!$(t))return z(t)?Y(v,t):x.call(v,t);o=t,f=h(n,i);var g=t.byteLength;if(r===undefined){if(g%i)throw O("Wrong length");if((u=g-f)<0)throw O("Wrong length")}else if((u=d(r)*i)+f>g)throw O("Wrong length");c=u/i}else c=p(t),o=new M(u=c*i);for(N(e,{buffer:o,byteOffset:f,byteLength:u,length:c,view:new L(o)});l"+e+"<\/script>"},h=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(o){}var e,t;h=r?function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t}(r):((t=s("iframe")).style.display="none",c.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(p("document.F=Object")),e.close(),e.F);for(var n=u.length;n--;)delete h.prototype[u[n]];return h()};a[f]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(d.prototype=o(e),n=new d,d.prototype=null,n[f]=e):n=h(),t===undefined?n:i(n,t)}},function(e,t,n){"use strict";var r=n(16).f,o=n(20),i=n(15)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=n(15),o=n(48),i=n(16),u=r("unscopables"),a=Array.prototype;a[u]==undefined&&i.f(a,u,{configurable:!0,value:o(null)}),e.exports=function(e){a[u][e]=!0}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var r=n(154),o=n(113).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){"use strict";var r=n(27);e.exports=function(e,t,n){if(r(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var r=n(40),o=n(16),i=n(51);e.exports=function(e,t,n){var u=r(t);u in e?o.f(e,u,i(0,n)):e[u]=n}},function(e,t,n){"use strict";var r=n(11),o=n(166);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),t?e.call(n,i):n.__proto__=i,n}}():undefined)},function(e,t,n){"use strict";var r=n(68),o=n(8),i=n(20),u=n(16).f,a=n(67),c=n(76),s=a("meta"),l=0,f=Object.isExtensible||function(){return!0},d=function(e){u(e,s,{value:{objectID:"O"+ ++l,weakData:{}}})},p=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,s)){if(!f(e))return"F";if(!t)return"E";d(e)}return e[s].objectID},getWeakData:function(e,t){if(!i(e,s)){if(!f(e))return!0;if(!t)return!1;d(e)}return e[s].weakData},onFreeze:function(e){return c&&p.REQUIRED&&f(e)&&!i(e,s)&&d(e),e}};r[s]=!0},function(e,t,n){"use strict";t.__esModule=!0,t.removeScrollableNode=t.addScrollableNode=t.canStealFocus=t.setupGlobalEvents=t.globalEvents=void 0;var r=n(185),o=n(78),i=(n(29),new r.EventEmitter);t.globalEvents=i;var u,a=!1;t.setupGlobalEvents=function(e){void 0===e&&(e={}),a=!!e.ignoreWindowFocus};var c=!0,s=function y(e,t){a?c=!0:(u&&(clearTimeout(u),u=null),t?u=setTimeout((function(){return y(e)})):c!==e&&(c=e,i.emit(e?"window-focus":"window-blur"),i.emit("window-focus-change",e)))},l=null,f=function(e){var t=String(e.tagName).toLowerCase();return"input"===t||"textarea"===t};t.canStealFocus=f;var d=function b(){l&&(l.removeEventListener("blur",b),l=null)},p=null,h=null,g=[];t.addScrollableNode=function(e){g.push(e)};t.removeScrollableNode=function(e){var t=g.indexOf(e);t>=0&&g.splice(t,1)};window.addEventListener("mousemove",(function(e){var t=e.target;t!==h&&(h=t,function(e){if(!l&&c)for(var t=document.body;e&&e!==t;){if(g.includes(e)){if(e.contains(p))return;return p=e,void e.focus()}e=e.parentNode}}(t))})),window.addEventListener("focusin",(function(e){if(h=null,p=e.target,s(!0),f(e.target))return t=e.target,d(),void(l=t).addEventListener("blur",d);var t})),window.addEventListener("focusout",(function(e){h=null,s(!1,!0)})),window.addEventListener("blur",(function(e){h=null,s(!1,!0)})),window.addEventListener("beforeunload",(function(e){s(!1)}));var v={},m=function(){function e(e,t,n){this.event=e,this.type=t,this.code=window.event?e.which:e.keyCode,this.ctrl=e.ctrlKey,this.shift=e.shiftKey,this.alt=e.altKey,this.repeat=!!n}var t=e.prototype;return t.hasModifierKeys=function(){return this.ctrl||this.alt||this.shift},t.isModifierKey=function(){return this.code===o.KEY_CTRL||this.code===o.KEY_SHIFT||this.code===o.KEY_ALT},t.isDown=function(){return"keydown"===this.type},t.isUp=function(){return"keyup"===this.type},t.toString=function(){return 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>=o.KEY_F1&&this.code<=o.KEY_F12?this._str+="F"+(this.code-111):this._str+="["+this.code+"]"),this._str},e}();document.addEventListener("keydown",(function(e){if(!f(e.target)){var t=e.keyCode,n=new m(e,"keydown",v[t]);i.emit("keydown",n),i.emit("key",n),v[t]=!0}})),document.addEventListener("keyup",(function(e){if(!f(e.target)){var t=e.keyCode,n=new m(e,"keyup");i.emit("keyup",n),i.emit("key",n),v[t]=!1}}))},function(e,t,n){"use strict";var r=n(37);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){"use strict";var r=n(41),o=n(16),i=n(15),u=n(10),a=i("species");e.exports=function(e){var t=r(e),n=o.f;u&&t&&!t[a]&&n(t,a,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},function(e,t,n){"use strict";var r=n(11),o=n(118),i=n(12),u=n(53),a=n(119),c=n(162),s=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,l,f){var d,p,h,g,v,m,y,b=u(t,n,l?2:1);if(f)d=e;else{if("function"!=typeof(p=a(e)))throw TypeError("Target is not iterable");if(o(p)){for(h=0,g=i(e.length);g>h;h++)if((v=l?b(r(y=e[h])[0],y[1]):b(e[h]))&&v instanceof s)return v;return new s(!1)}d=p.call(e)}for(m=d.next;!(y=m.call(d)).done;)if("object"==typeof(v=c(d,b,y.value,l))&&v&&v instanceof s)return v;return new s(!1)}).stop=function(e){return new s(!0,e)}},function(e,t,n){"use strict";var r=n(24),o="["+n(91)+"]",i=RegExp("^"+o+o+"*"),u=RegExp(o+o+"*$"),a=function(e){return function(t){var n=String(r(t));return 1&e&&(n=n.replace(i,"")),2&e&&(n=n.replace(u,"")),n}};e.exports={start:a(1),end:a(2),trim:a(3)}},function(e,t,n){"use strict";t.__esModule=!0,t.assetMiddleware=t.resolveAsset=void 0;var r=[/v4shim/i],o={};t.resolveAsset=function(e){return o[e]||e};t.assetMiddleware=function(e){return function(e){return function(t){var n=t.type,i=t.payload;if("asset/stylesheet"!==n)if("asset/mappings"!==n)e(t);else for(var u=function(){var e=c[a];if(r.some((function(t){return t.test(e)})))return"continue";var t=i[e],n=e.split(".").pop();o[e]=t,"css"===n&&Byond.loadCss(t),"js"===n&&Byond.loadJs(t)},a=0,c=Object.keys(i);al;)if((a=c[l++])!=a)return!0}else for(;s>l;l++)if((e||l in c)&&c[l]===n)return e||l||0;return!e&&-1}};e.exports={includes:u(!0),indexOf:u(!1)}},function(e,t,n){"use strict";var r=n(5),o=/#|\.prototype\./,i=function(e,t){var n=a[u(e)];return n==s||n!=c&&("function"==typeof t?r(t):!!t)},u=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},a=i.data={},c=i.NATIVE="N",s=i.POLYFILL="P";e.exports=i},function(e,t,n){"use strict";var r=n(154),o=n(113);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){"use strict";var r=n(8),o=n(58),i=n(15)("species");e.exports=function(e,t){var n;return o(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var r=n(5),o=n(15),i=n(116),u=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[u]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(25);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},function(e,t,n){"use strict";var r=n(5);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var r=n(11);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";t.__esModule=!0,t.KEY_QUOTE=t.KEY_RIGHT_BRACKET=t.KEY_BACKSLASH=t.KEY_LEFT_BRACKET=t.KEY_SLASH=t.KEY_PERIOD=t.KEY_MINUS=t.KEY_COMMA=t.KEY_EQUAL=t.KEY_SEMICOLON=t.KEY_F12=t.KEY_F11=t.KEY_F10=t.KEY_F9=t.KEY_F8=t.KEY_F7=t.KEY_F6=t.KEY_F5=t.KEY_F4=t.KEY_F3=t.KEY_F2=t.KEY_F1=t.KEY_Z=t.KEY_Y=t.KEY_X=t.KEY_W=t.KEY_V=t.KEY_U=t.KEY_T=t.KEY_S=t.KEY_R=t.KEY_Q=t.KEY_P=t.KEY_O=t.KEY_N=t.KEY_M=t.KEY_L=t.KEY_K=t.KEY_J=t.KEY_I=t.KEY_H=t.KEY_G=t.KEY_F=t.KEY_E=t.KEY_D=t.KEY_C=t.KEY_B=t.KEY_A=t.KEY_9=t.KEY_8=t.KEY_7=t.KEY_6=t.KEY_5=t.KEY_4=t.KEY_3=t.KEY_2=t.KEY_1=t.KEY_0=t.KEY_DELETE=t.KEY_INSERT=t.KEY_DOWN=t.KEY_RIGHT=t.KEY_UP=t.KEY_LEFT=t.KEY_HOME=t.KEY_END=t.KEY_PAGEDOWN=t.KEY_PAGEUP=t.KEY_SPACE=t.KEY_ESCAPE=t.KEY_CAPSLOCK=t.KEY_PAUSE=t.KEY_ALT=t.KEY_CTRL=t.KEY_SHIFT=t.KEY_ENTER=t.KEY_TAB=t.KEY_BACKSPACE=void 0;t.KEY_BACKSPACE=8;t.KEY_TAB=9;t.KEY_ENTER=13;t.KEY_SHIFT=16;t.KEY_CTRL=17;t.KEY_ALT=18;t.KEY_PAUSE=19;t.KEY_CAPSLOCK=20;t.KEY_ESCAPE=27;t.KEY_SPACE=32;t.KEY_PAGEUP=33;t.KEY_PAGEDOWN=34;t.KEY_END=35;t.KEY_HOME=36;t.KEY_LEFT=37;t.KEY_UP=38;t.KEY_RIGHT=39;t.KEY_DOWN=40;t.KEY_INSERT=45;t.KEY_DELETE=46;t.KEY_0=48;t.KEY_1=49;t.KEY_2=50;t.KEY_3=51;t.KEY_4=52;t.KEY_5=53;t.KEY_6=54;t.KEY_7=55;t.KEY_8=56;t.KEY_9=57;t.KEY_A=65;t.KEY_B=66;t.KEY_C=67;t.KEY_D=68;t.KEY_E=69;t.KEY_F=70;t.KEY_G=71;t.KEY_H=72;t.KEY_I=73;t.KEY_J=74;t.KEY_K=75;t.KEY_L=76;t.KEY_M=77;t.KEY_N=78;t.KEY_O=79;t.KEY_P=80;t.KEY_Q=81;t.KEY_R=82;t.KEY_S=83;t.KEY_T=84;t.KEY_U=85;t.KEY_V=86;t.KEY_W=87;t.KEY_X=88;t.KEY_Y=89;t.KEY_Z=90;t.KEY_F1=112;t.KEY_F2=113;t.KEY_F3=114;t.KEY_F4=115;t.KEY_F5=116;t.KEY_F6=117;t.KEY_F7=118;t.KEY_F8=119;t.KEY_F9=120;t.KEY_F10=121;t.KEY_F11=122;t.KEY_F12=123;t.KEY_SEMICOLON=186;t.KEY_EQUAL=187;t.KEY_COMMA=188;t.KEY_MINUS=189;t.KEY_PERIOD=190;t.KEY_SLASH=191;t.KEY_LEFT_BRACKET=219;t.KEY_BACKSLASH=220;t.KEY_RIGHT_BRACKET=221;t.KEY_QUOTE=222},function(e,t,n){"use strict";function r(e,t,n,r,o,i,u){try{var a=e[i](u),c=a.value}catch(s){return void n(s)}a.done?t(c):Promise.resolve(c).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var u=e.apply(t,n);function a(e){r(u,o,i,a,c,"next",e)}function c(e){r(u,o,i,a,c,"throw",e)}a(undefined)}))}}t.__esModule=!0,t.storage=t.IMPL_INDEXED_DB=t.IMPL_LOCAL_STORAGE=t.IMPL_MEMORY=void 0;t.IMPL_MEMORY=0;t.IMPL_LOCAL_STORAGE=1;t.IMPL_INDEXED_DB=2;var i=function(e){return function(){try{return Boolean(e())}catch(t){return!1}}},u=i((function(){return window.localStorage&&window.localStorage.getItem})),a=i((function(){return(window.indexedDB||window.msIndexedDB)&&(window.IDBTransaction||window.msIDBTransaction)})),c=function(){function e(){this.impl=0,this.store={}}var t=e.prototype;return t.get=function(e){return this.store[e]},t.set=function(e,t){this.store[e]=t},t.remove=function(e){this.store[e]=undefined},t.clear=function(){this.store={}},e}(),s=function(){function e(){this.impl=1}var t=e.prototype;return t.get=function(e){var t=localStorage.getItem(e);if("string"==typeof t)return JSON.parse(t)},t.set=function(e,t){localStorage.setItem(e,JSON.stringify(t))},t.remove=function(e){localStorage.removeItem(e)},t.clear=function(){localStorage.clear()},e}(),l=function(){function e(){this.impl=2,this.dbPromise=new Promise((function(e,t){var n=(window.indexedDB||window.msIndexedDB).open("tgui-citadel-main",1);n.onupgradeneeded=function(){try{n.result.createObjectStore("storage-v1")}catch(e){t(new Error("Failed to upgrade IDB: "+n.error))}},n.onsuccess=function(){return e(n.result)},n.onerror=function(){t(new Error("Failed to open IDB: "+n.error))}}))}var t=e.prototype;return t.getStore=function(e){return this.dbPromise.then((function(t){return t.transaction("storage-v1",e).objectStore("storage-v1")}))},t.get=function(){var e=o(regeneratorRuntime.mark((function t(e){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getStore("readonly");case 2:return n=t.sent,t.abrupt("return",new Promise((function(t,r){var o=n.get(e);o.onsuccess=function(){return t(o.result)},o.onerror=function(){return r(o.error)}})));case 4:case"end":return t.stop()}}),t,this)})));return function(t){return e.apply(this,arguments)}}(),t.set=function(){var e=o(regeneratorRuntime.mark((function t(e,n){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return null===n&&(n=undefined),t.next=3,this.getStore("readwrite");case 3:t.sent.put(n,e);case 5:case"end":return t.stop()}}),t,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.remove=function(){var e=o(regeneratorRuntime.mark((function t(e){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.getStore("readwrite");case 2:t.sent["delete"](e);case 4:case"end":return t.stop()}}),t,this)})));return function(t){return e.apply(this,arguments)}}(),t.clear=function(){var e=o(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getStore("readwrite");case 2:e.sent.clear();case 4:case"end":return e.stop()}}),t,this)})));return function(){return e.apply(this,arguments)}}(),e}(),f=new(function(){function e(){this.backendPromise=o(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!a()){e.next=10;break}return e.prev=1,t=new l,e.next=5,t.dbPromise;case 5:return e.abrupt("return",t);case 8:e.prev=8,e.t0=e["catch"](1);case 10:if(!u()){e.next=12;break}return e.abrupt("return",new s);case 12:return e.abrupt("return",new c);case 13:case"end":return e.stop()}}),e,null,[[1,8]])})))()}var t=e.prototype;return t.get=function(){var e=o(regeneratorRuntime.mark((function t(e){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.backendPromise;case 2:return n=t.sent,t.abrupt("return",n.get(e));case 4:case"end":return t.stop()}}),t,this)})));return function(t){return e.apply(this,arguments)}}(),t.set=function(){var e=o(regeneratorRuntime.mark((function t(e,n){var r;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.backendPromise;case 2:return r=t.sent,t.abrupt("return",r.set(e,n));case 4:case"end":return t.stop()}}),t,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.remove=function(){var e=o(regeneratorRuntime.mark((function t(e){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.backendPromise;case 2:return n=t.sent,t.abrupt("return",n.remove(e));case 4:case"end":return t.stop()}}),t,this)})));return function(t){return e.apply(this,arguments)}}(),t.clear=function(){var e=o(regeneratorRuntime.mark((function t(){var e;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.backendPromise;case 2:return e=t.sent,t.abrupt("return",e.clear());case 4:case"end":return t.stop()}}),t,this)})));return function(){return e.apply(this,arguments)}}(),e}());t.storage=f},,function(e,t,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);t.f=i?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},function(e,t,n){"use strict";var r=n(111),o=n(67),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e,t,n){"use strict";var r=n(41);e.exports=r("navigator","userAgent")||""},function(e,t,n){"use strict";var r=n(120),o=n(37),i=n(15)("toStringTag"),u="Arguments"==o(function(){return arguments}());e.exports=r?o:function(e){var t,n,r;return e===undefined?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),i))?n:u?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},function(e,t,n){"use strict";var r=n(15)("iterator"),o=!1;try{var i=0,u={next:function(){return{done:!!i++}},"return":function(){o=!0}};u[r]=function(){return this},Array.from(u,(function(){throw 2}))}catch(a){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(a){}return n}},function(e,t,n){"use strict";var r=n(27),o=n(18),i=n(66),u=n(12),a=function(e){return function(t,n,a,c){r(n);var s=o(t),l=i(s),f=u(s.length),d=e?f-1:0,p=e?-1:1;if(a<2)for(;;){if(d in l){c=l[d],d+=p;break}if(d+=p,e?d<0:f<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:f>d;d+=p)d in l&&(c=n(c,l[d],d,s));return c}};e.exports={left:a(!1),right:a(!0)}},function(e,t,n){"use strict";var r=n(7),o=n(10),i=n(123),u=n(32),a=n(75),c=n(5),s=n(60),l=n(38),f=n(12),d=n(168),p=n(268),h=n(42),g=n(55),v=n(52).f,m=n(16).f,y=n(117),b=n(49),E=n(33),D=E.get,x=E.set,w=r.ArrayBuffer,C=w,_=r.DataView,A=_&&_.prototype,k=Object.prototype,S=r.RangeError,F=p.pack,N=p.unpack,T=function(e){return[255&e]},B=function(e){return[255&e,e>>8&255]},I=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},O=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},M=function(e){return F(e,23,4)},L=function(e){return F(e,52,8)},V=function(e,t){m(e.prototype,t,{get:function(){return D(this)[t]}})},P=function(e,t,n,r){var o=d(n),i=D(e);if(o+t>i.byteLength)throw S("Wrong index");var u=D(i.buffer).bytes,a=o+i.byteOffset,c=u.slice(a,a+t);return r?c:c.reverse()},R=function(e,t,n,r,o,i){var u=d(n),a=D(e);if(u+t>a.byteLength)throw S("Wrong index");for(var c=D(a.buffer).bytes,s=u+a.byteOffset,l=r(+o),f=0;fY;)(j=z[Y++])in C||u(C,j,w[j]);K.constructor=C}g&&h(A)!==k&&g(A,k);var U=new _(new C(2)),$=A.setInt8;U.setInt8(0,2147483648),U.setInt8(1,2147483649),!U.getInt8(0)&&U.getInt8(1)||a(A,{setInt8:function(e,t){$.call(this,e,t<<24>>24)},setUint8:function(e,t){$.call(this,e,t<<24>>24)}},{unsafe:!0})}else C=function(e){s(this,C,"ArrayBuffer");var t=d(e);x(this,{bytes:y.call(new Array(t),0),byteLength:t}),o||(this.byteLength=t)},_=function(e,t,n){s(this,_,"DataView"),s(e,C,"DataView");var r=D(e).byteLength,i=l(t);if(i<0||i>r)throw S("Wrong offset");if(i+(n=n===undefined?r-i:f(n))>r)throw S("Wrong length");x(this,{buffer:e,byteLength:n,byteOffset:i}),o||(this.buffer=e,this.byteLength=n,this.byteOffset=i)},o&&(V(C,"byteLength"),V(_,"buffer"),V(_,"byteLength"),V(_,"byteOffset")),a(_.prototype,{getInt8:function(e){return P(this,1,e)[0]<<24>>24},getUint8:function(e){return P(this,1,e)[0]},getInt16:function(e){var t=P(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=P(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return O(P(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return O(P(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return N(P(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return N(P(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){R(this,1,e,T,t)},setUint8:function(e,t){R(this,1,e,T,t)},setInt16:function(e,t){R(this,2,e,B,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){R(this,2,e,B,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){R(this,4,e,I,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){R(this,4,e,I,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){R(this,4,e,M,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){R(this,8,e,L,t,arguments.length>2?arguments[2]:undefined)}});b(C,"ArrayBuffer"),b(_,"DataView"),e.exports={ArrayBuffer:C,DataView:_}},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(70),u=n(25),a=n(56),c=n(61),s=n(60),l=n(8),f=n(5),d=n(85),p=n(49),h=n(89);e.exports=function(e,t,n){var g=-1!==e.indexOf("Map"),v=-1!==e.indexOf("Weak"),m=g?"set":"add",y=o[e],b=y&&y.prototype,E=y,D={},x=function(e){var t=b[e];u(b,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(v&&!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return v&&!l(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(v&&!l(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(i(e,"function"!=typeof y||!(v||b.forEach&&!f((function(){(new y).entries().next()})))))E=n.getConstructor(t,e,g,m),a.REQUIRED=!0;else if(i(e,!0)){var w=new E,C=w[m](v?{}:-0,1)!=w,_=f((function(){w.has(1)})),A=d((function(e){new y(e)})),k=!v&&f((function(){for(var e=new y,t=5;t--;)e[m](t,t);return!e.has(-0)}));A||((E=t((function(t,n){s(t,E,e);var r=h(new y,t,E);return n!=undefined&&c(n,r[m],r,g),r}))).prototype=b,b.constructor=E),(_||k)&&(x("delete"),x("has"),g&&x("get")),(k||C)&&x(m),v&&b.clear&&delete b.clear}return D[e]=E,r({global:!0,forced:E!=y},D),p(E,e),v||n.setStrong(E,e,g),E}},function(e,t,n){"use strict";var r=n(8),o=n(55);e.exports=function(e,t,n){var i,u;return o&&"function"==typeof(i=t.constructor)&&i!==n&&r(u=i.prototype)&&u!==n.prototype&&o(e,u),e}},function(e,t,n){"use strict";var r=Math.expm1,o=Math.exp;e.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:o(e)-1}:r},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var r=n(43),o=n(7),i=n(5);e.exports=r||!i((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete o[e]}))},function(e,t,n){"use strict";var r=n(8),o=n(37),i=n(15)("match");e.exports=function(e){var t;return r(e)&&((t=e[i])!==undefined?!!t:"RegExp"==o(e))}},function(e,t,n){"use strict";var r=n(5);function o(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=r((function(){var e=o("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),t.BROKEN_CARET=r((function(){var e=o("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},function(e,t,n){"use strict";var r,o,i=n(77),u=n(94),a=RegExp.prototype.exec,c=String.prototype.replace,s=a,l=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),f=u.UNSUPPORTED_Y||u.BROKEN_CARET,d=/()??/.exec("")[1]!==undefined;(l||d||f)&&(s=function(e){var t,n,r,o,u=this,s=f&&u.sticky,p=i.call(u),h=u.source,g=0,v=e;return s&&(-1===(p=p.replace("y","")).indexOf("g")&&(p+="g"),v=String(e).slice(u.lastIndex),u.lastIndex>0&&(!u.multiline||u.multiline&&"\n"!==e[u.lastIndex-1])&&(h="(?: "+h+")",v=" "+v,g++),n=new RegExp("^(?:"+h+")",p)),d&&(n=new RegExp("^"+h+"$(?!\\s)",p)),l&&(t=u.lastIndex),r=a.call(s?n:u,v),s?r?(r.input=r.input.slice(g),r[0]=r[0].slice(g),r.index=u.lastIndex,u.lastIndex+=r[0].length):u.lastIndex=0:l&&r&&(u.lastIndex=u.global?r.index+r[0].length:t),d&&r&&r.length>1&&c.call(r[0],n,(function(){for(o=1;o")})),l="$0"==="a".replace(/./,"$0"),f=i("replace"),d=!!/./[f]&&""===/./[f]("a","$0"),p=!o((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,f){var h=i(e),g=!o((function(){var t={};return t[h]=function(){return 7},7!=""[e](t)})),v=g&&!o((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return t=!0,null},n[h](""),!t}));if(!g||!v||"replace"===e&&(!s||!l||d)||"split"===e&&!p){var m=/./[h],y=n(h,""[e],(function(e,t,n,r,o){return t.exec===u?g&&!o?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:l,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:d}),b=y[0],E=y[1];r(String.prototype,e,b),r(RegExp.prototype,h,2==t?function(e,t){return E.call(e,this,t)}:function(e){return E.call(e,this)})}f&&a(RegExp.prototype[h],"sham",!0)}},function(e,t,n){"use strict";var r=n(130).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},function(e,t,n){"use strict";var r=n(37),o=n(95);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var i=n.call(e,t);if("object"!=typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(e))throw TypeError("RegExp#exec called on incompatible receiver");return o.call(e,t)}},function(e,t,n){"use strict";var r;t.__esModule=!0,t.perf=void 0;null==(r=window.performance)||r.now;var o={mark:function(e,t){0},measure:function(e,t){}};t.perf=o},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=t.sendMessage=t.subscribe=void 0;var r=[];t.subscribe=function(e){return r.push(e)};t.sendMessage=function(e){};t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(459),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||void 0,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||void 0}).call(this,n(107))},function(e,t,n){"use strict";t.__esModule=!0,t.vecNormalize=t.vecLength=t.vecInverse=t.vecScale=t.vecDivide=t.vecMultiply=t.vecSubtract=t.vecAdd=void 0;var r=n(14),o=function(e,t){return e+t},i=function(e,t){return e-t},u=function(e,t){return e*t},a=function(e,t){return e/t};t.vecAdd=function(){for(var e=arguments.length,t=new Array(e),n=0;n=0||(o[n]=e[n]);return o}(e,["name","size","spin","className","style","rotation"]);n&&(l["font-size"]=100*n+"%"),"number"==typeof f&&(l.transform="rotate("+f+"deg)");var p=u.test(t),h=t.replace(u,"");return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({as:"i",className:(0,o.classes)([c,p?"far":"fas","fa-"+h,a&&"fa-spin"]),style:l},d)))};t.Icon=a,a.defaultHooks=o.pureComponentHooks},,,,function(e,t,n){"use strict";var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(o){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,n){"use strict";var r=n(7),o=n(8),i=r.document,u=o(i)&&o(i.createElement);e.exports=function(e){return u?i.createElement(e):{}}},function(e,t,n){"use strict";var r=n(7),o=n(32);e.exports=function(e,t){try{o(r,e,t)}catch(n){r[e]=t}return t}},function(e,t,n){"use strict";var r=n(150),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return o.call(e)}),e.exports=r.inspectSource},function(e,t,n){"use strict";var r=n(43),o=n(150);(e.exports=function(e,t){return o[e]||(o[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.6.5",mode:r?"pure":"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){"use strict";var r=n(41),o=n(52),i=n(114),u=n(11);e.exports=r("Reflect","ownKeys")||function(e){var t=o.f(u(e)),n=i.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var r=n(5);e.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},function(e,t,n){"use strict";var r,o,i=n(7),u=n(83),a=i.process,c=a&&a.versions,s=c&&c.v8;s?o=(r=s.split("."))[0]+r[1]:u&&(!(r=u.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=u.match(/Chrome\/(\d+)/))&&(o=r[1]),e.exports=o&&+o},function(e,t,n){"use strict";var r=n(18),o=n(47),i=n(12);e.exports=function(e){for(var t=r(this),n=i(t.length),u=arguments.length,a=o(u>1?arguments[1]:undefined,n),c=u>2?arguments[2]:undefined,s=c===undefined?n:o(c,n);s>a;)t[a++]=e;return t}},function(e,t,n){"use strict";var r=n(15),o=n(74),i=r("iterator"),u=Array.prototype;e.exports=function(e){return e!==undefined&&(o.Array===e||u[i]===e)}},function(e,t,n){"use strict";var r=n(84),o=n(74),i=n(15)("iterator");e.exports=function(e){if(e!=undefined)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){"use strict";var r={};r[n(15)("toStringTag")]="z",e.exports="[object z]"===String(r)},function(e,t,n){"use strict";var r=n(4),o=n(164),i=n(42),u=n(55),a=n(49),c=n(32),s=n(25),l=n(15),f=n(43),d=n(74),p=n(165),h=p.IteratorPrototype,g=p.BUGGY_SAFARI_ITERATORS,v=l("iterator"),m=function(){return this};e.exports=function(e,t,n,l,p,y,b){o(n,t,l);var E,D,x,w=function(e){if(e===p&&S)return S;if(!g&&e in A)return A[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},C=t+" Iterator",_=!1,A=e.prototype,k=A[v]||A["@@iterator"]||p&&A[p],S=!g&&k||w(p),F="Array"==t&&A.entries||k;if(F&&(E=i(F.call(new e)),h!==Object.prototype&&E.next&&(f||i(E)===h||(u?u(E,h):"function"!=typeof E[v]&&c(E,v,m)),a(E,C,!0,!0),f&&(d[C]=m))),"values"==p&&k&&"values"!==k.name&&(_=!0,S=function(){return k.call(this)}),f&&!b||A[v]===S||c(A,v,S),d[t]=S,p)if(D={values:w("values"),keys:y?S:w("keys"),entries:w("entries")},b)for(x in D)(g||_||!(x in A))&&s(A,x,D[x]);else r({target:t,proto:!0,forced:g||_},D);return D}},function(e,t,n){"use strict";var r=n(5);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},function(e,t,n){"use strict";var r=n(12),o=n(125),i=n(24),u=Math.ceil,a=function(e){return function(t,n,a){var c,s,l=String(i(t)),f=l.length,d=a===undefined?" ":String(a),p=r(n);return p<=f||""==d?l:(c=p-f,(s=o.call(d,u(c/d.length))).length>c&&(s=s.slice(0,c)),e?l+s:s+l)}};e.exports={start:a(!1),end:a(!0)}},function(e,t,n){"use strict";var r=n(38),o=n(24);e.exports="".repeat||function(e){var t=String(o(this)),n="",i=r(e);if(i<0||i==Infinity)throw RangeError("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(t+=t))1&i&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var r,o,i,u=n(7),a=n(5),c=n(37),s=n(53),l=n(157),f=n(108),d=n(177),p=u.location,h=u.setImmediate,g=u.clearImmediate,v=u.process,m=u.MessageChannel,y=u.Dispatch,b=0,E={},D=function(e){if(E.hasOwnProperty(e)){var t=E[e];delete E[e],t()}},x=function(e){return function(){D(e)}},w=function(e){D(e.data)},C=function(e){u.postMessage(e+"",p.protocol+"//"+p.host)};h&&g||(h=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return E[++b]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},r(b),b},g=function(e){delete E[e]},"process"==c(v)?r=function(e){v.nextTick(x(e))}:y&&y.now?r=function(e){y.now(x(e))}:m&&!d?(i=(o=new m).port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):!u.addEventListener||"function"!=typeof postMessage||u.importScripts||a(C)||"file:"===p.protocol?r="onreadystatechange"in f("script")?function(e){l.appendChild(f("script")).onreadystatechange=function(){l.removeChild(this),D(e)}}:function(e){setTimeout(x(e),0)}:(r=C,u.addEventListener("message",w,!1))),e.exports={set:h,clear:g}},function(e,t,n){"use strict";var r=n(27),o=function(e){var t,n;this.promise=new e((function(e,r){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},function(e,t,n){"use strict";var r=n(4),o=n(95);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(e,t,n){"use strict";var r=n(38),o=n(24),i=function(e){return function(t,n){var i,u,a=String(o(t)),c=r(n),s=a.length;return c<0||c>=s?e?"":undefined:(i=a.charCodeAt(c))<55296||i>56319||c+1===s||(u=a.charCodeAt(c+1))<56320||u>57343?e?a.charAt(c):i:e?a.slice(c,c+2):u-56320+(i-55296<<10)+65536}};e.exports={codeAt:i(!1),charAt:i(!0)}},function(e,t,n){"use strict";var r=n(93);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var r=n(15)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(o){}}return!1}},function(e,t,n){"use strict";var r=n(5),o=n(91);e.exports=function(e){return r((function(){return!!o[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||o[e].name!==e}))}},function(e,t,n){"use strict";var r=n(7),o=n(5),i=n(85),u=n(13).NATIVE_ARRAY_BUFFER_VIEWS,a=r.ArrayBuffer,c=r.Int8Array;e.exports=!u||!o((function(){c(1)}))||!o((function(){new c(-1)}))||!i((function(e){new c,new c(null),new c(1.5),new c(e)}),!0)||o((function(){return 1!==new c(new a(2),1,undefined).length}))},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotKeys=t.releaseHeldKeys=t.releaseHotKey=t.acquireHotKey=void 0;var r=n(78),o=n(57),i=(0,n(29).createLogger)("hotkeys"),u={},a=[r.KEY_ESCAPE,r.KEY_ENTER,r.KEY_SPACE,r.KEY_TAB,r.KEY_CTRL,r.KEY_SHIFT,r.KEY_F5],c={},s=function(e){if(!e.ctrl||e.code!==r.KEY_F5&&e.code!==r.KEY_R){if(!(e.ctrl&&e.code===r.KEY_F||e.event.defaultPrevented||e.isModifierKey()||a.includes(e.code))){var t,n=16===(t=e.code)?"Shift":17===t?"Ctrl":18===t?"Alt":33===t?"Northeast":34===t?"Southeast":35===t?"Southwest":36===t?"Northwest":37===t?"West":38===t?"North":39===t?"East":40===t?"South":45===t?"Insert":46===t?"Delete":t>=48&&t<=57||t>=65&&t<=90?String.fromCharCode(t):t>=96&&t<=105?"Numpad"+(t-96):t>=112&&t<=123?"F"+(t-111):188===t?",":189===t?"-":190===t?".":void 0;if(n){var o=u[n];if(o)return i.debug("macro",o),Byond.command(o);if(e.isDown()&&!c[n]){c[n]=!0;var s='KeyDown "'+n+'"';return i.debug(s),Byond.command(s)}if(e.isUp()&&c[n]){c[n]=!1;var l='KeyUp "'+n+'"';return i.debug(l),Byond.command(l)}}}}else location.reload()};t.acquireHotKey=function(e){a.push(e)};t.releaseHotKey=function(e){var t=a.indexOf(e);t>=0&&a.splice(t,1)};var l=function(){for(var e=0,t=Object.keys(c);e0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props,r=t.value,o=t.dragMatrix;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:a(e,o),value:r,internalValue:r}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,r=t.dragging,o=t.value,i=n.props.onDrag;r&&i&&i(e,o)}),n.props.updateRate||400),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,r=t.minValue,i=t.maxValue,u=t.step,c=t.stepPixelSize,s=t.dragMatrix;n.setState((function(t){var n=Object.assign({},t),l=a(e,s)-n.origin;if(t.dragging){var f=Number.isFinite(r)?r%u:0;n.internalValue=(0,o.clamp)(n.internalValue+l*u/c,r-u,i+u),n.value=(0,o.clamp)(n.internalValue-n.internalValue%u+f,r,i),n.origin=a(e,s)}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,r=t.onChange,o=t.onDrag,i=n.state,u=i.dragging,a=i.value,c=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!u,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),u)n.suppressFlicker(),r&&r(e,a),o&&o(e,a);else if(n.inputRef){var s=n.inputRef.current;s.value=c;try{s.focus(),s.select()}catch(l){}}},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.state,n=t.dragging,i=t.editing,a=t.value,c=t.suppressingFlicker,s=this.props,l=s.animated,f=s.value,d=s.unit,p=s.minValue,h=s.maxValue,g=s.format,v=s.onChange,m=s.onDrag,y=s.children,b=s.height,E=s.lineHeight,D=s.fontSize,x=f;(n||c)&&(x=a);var w=function(e){return e+(d?" "+d:"")},C=l&&!n&&!c&&(0,r.createComponentVNode)(2,u.AnimatedNumber,{value:x,format:g,children:w})||w(g?g(x):x),_=(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:i?undefined:"none",height:b,"line-height":E,"font-size":D},onBlur:function(t){if(i){var n=(0,o.clamp)(parseFloat(t.target.value),p,h);Number.isNaN(n)?e.setState({editing:!1}):(e.setState({editing:!1,value:n}),e.suppressFlicker(),v&&v(t,n),m&&m(t,n))}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,o.clamp)(parseFloat(t.target.value),p,h);return Number.isNaN(n)?void e.setState({editing:!1}):(e.setState({editing:!1,value:n}),e.suppressFlicker(),v&&v(t,n),void(m&&m(t,n)))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef);return y({dragging:n,editing:i,value:f,displayValue:x,displayElement:C,inputElement:_,handleDragStart:this.handleDragStart})},i}(r.Component);t.DraggableControl=c,c.defaultHooks=i.pureComponentHooks,c.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50,dragMatrix:[1,0]}},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var r=n(0),o=n(9),i=n(6),u=n(138),a=n(17);var c=function(e){var t,n;function c(t){var n;n=e.call(this,t)||this;var i=t.value;return n.inputRef=(0,r.createRef)(),n.state={value:i,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,r=t.dragging,o=t.value,i=n.props.onDrag;r&&i&&i(e,o)}),n.props.updateRate||400),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,r=t.minValue,i=t.maxValue,u=t.step,a=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),c=n.origin-e.screenY;if(t.dragging){var s=Number.isFinite(r)?r%u:0;n.internalValue=(0,o.clamp)(n.internalValue+c*u/a,r-u,i+u),n.value=(0,o.clamp)(n.internalValue-n.internalValue%u+s,r,i),n.origin=e.screenY}else Math.abs(c)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,r=t.onChange,o=t.onDrag,i=n.state,u=i.dragging,a=i.value,c=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!u,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),u)n.suppressFlicker(),r&&r(e,a),o&&o(e,a);else if(n.inputRef){var s=n.inputRef.current;s.value=c;try{s.focus(),s.select()}catch(l){}}},n}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=this,t=this.state,n=t.dragging,c=t.editing,s=t.value,l=t.suppressingFlicker,f=this.props,d=f.className,p=f.fluid,h=f.animated,g=f.value,v=f.unit,m=f.minValue,y=f.maxValue,b=f.height,E=f.width,D=f.lineHeight,x=f.fontSize,w=f.format,C=f.onChange,_=f.onDrag,A=g;(n||l)&&(A=s);var k=function(e){return(0,r.createVNode)(1,"div","NumberInput__content",e+(v?" "+v:""),0,{unselectable:Byond.IS_LTE_IE8})},S=h&&!n&&!l&&(0,r.createComponentVNode)(2,u.AnimatedNumber,{value:A,format:w,children:k})||k(w?w(A):A);return(0,r.createComponentVNode)(2,a.Box,{className:(0,i.classes)(["NumberInput",p&&"NumberInput--fluid",d]),minWidth:E,minHeight:b,lineHeight:D,fontSize:x,onMouseDown:this.handleDragStart,children:[(0,r.createVNode)(1,"div","NumberInput__barContainer",(0,r.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,o.clamp)((A-m)/(y-m)*100,0,100)+"%"}}),2),S,(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:c?undefined:"none",height:b,"line-height":D,"font-size":x},onBlur:function(t){if(c){var n=(0,o.clamp)(parseFloat(t.target.value),m,y);Number.isNaN(n)?e.setState({editing:!1}):(e.setState({editing:!1,value:n}),e.suppressFlicker(),C&&C(t,n),_&&_(t,n))}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,o.clamp)(parseFloat(t.target.value),m,y);return Number.isNaN(n)?void e.setState({editing:!1}):(e.setState({editing:!1,value:n}),e.suppressFlicker(),C&&C(t,n),void(_&&_(t,n)))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},c}(r.Component);t.NumberInput=c,c.defaultHooks=i.pureComponentHooks,c.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";t.__esModule=!0,t.Layout=void 0;var r=n(0),o=n(6),i=n(17),u=n(57);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t=e.className,n=e.theme,u=void 0===n?"nanotrasen":n,c=e.children,s=a(e,["className","theme","children"]);return(0,r.createVNode)(1,"div","theme-"+u,(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Layout",t].concat((0,i.computeBoxClassName)(s))),c,0,Object.assign({},(0,i.computeBoxProps)(s)))),2)};t.Layout=c;var s=function(e){var t=e.className,n=e.scrollable,u=e.children,c=a(e,["className","scrollable","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Layout__content",n&&"Layout__content--scrollable",t].concat((0,i.computeBoxClassName)(c))),u,0,Object.assign({},(0,i.computeBoxProps)(c))))};s.defaultHooks={onComponentDidMount:function(e){return(0,u.addScrollableNode)(e)},onComponentWillUnmount:function(e){return(0,u.removeScrollableNode)(e)}},c.Content=s},,,,,,,function(e,t,n){"use strict";n(223),n(224),n(225),n(226),n(227),n(228),n(229),n(230),n(231),n(232),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(242),n(243),n(244),n(245),n(246),n(247),n(249),n(251),n(252),n(253),n(163),n(254),n(255),n(256),n(257),n(258),n(259),n(260),n(261),n(262),n(263),n(264),n(265),n(266),n(267),n(269),n(270),n(271),n(272),n(273),n(275),n(276),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(291),n(292),n(293),n(295),n(296),n(297),n(298),n(299),n(300),n(301),n(302),n(303),n(304),n(305),n(306),n(307),n(309),n(310),n(311),n(312),n(313),n(314),n(316),n(317),n(319),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(345),n(346),n(347),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(129),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389),n(390),n(391),n(392),n(393),n(394),n(395),n(396),n(397),n(398),n(399),n(400),n(401),n(403),n(404),n(405),n(406),n(407),n(408),n(409),n(410),n(411),n(412),n(413),n(414),n(415),n(416),n(417),n(418),n(419),n(420),n(421),n(422),n(423),n(424),n(425),n(426),n(427),n(428),n(429),n(430),n(431),n(432),n(433),n(434),n(435),n(436),n(437),n(438),n(439),n(440),n(441),n(442),n(443),n(444),n(445),n(446)},function(e,t,n){"use strict";var r=n(10),o=n(5),i=n(108);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var r=n(7),o=n(109),i=r["__core-js_shared__"]||o("__core-js_shared__",{});e.exports=i},function(e,t,n){"use strict";var r=n(7),o=n(110),i=r.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},function(e,t,n){"use strict";var r=n(20),o=n(112),i=n(23),u=n(16);e.exports=function(e,t){for(var n=o(t),a=u.f,c=i.f,s=0;sc;)r(a,n=t[c++])&&(~i(s,n)||s.push(n));return s}},function(e,t,n){"use strict";var r=n(115);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var r=n(10),o=n(16),i=n(11),u=n(71);e.exports=r?Object.defineProperties:function(e,t){i(e);for(var n,r=u(t),a=r.length,c=0;a>c;)o.f(e,n=r[c++],t[n]);return e}},function(e,t,n){"use strict";var r=n(41);e.exports=r("document","documentElement")},function(e,t,n){"use strict";var r=n(31),o=n(52).f,i={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return u&&"[object Window]"==i.call(e)?function(e){try{return o(e)}catch(t){return u.slice()}}(e):o(r(e))}},function(e,t,n){"use strict";var r=n(15);t.f=r},function(e,t,n){"use strict";var r=n(18),o=n(47),i=n(12),u=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),a=i(n.length),c=o(e,a),s=o(t,a),l=arguments.length>2?arguments[2]:undefined,f=u((l===undefined?a:o(l,a))-s,a-c),d=1;for(s0;)s in n?n[c]=n[s]:delete n[c],c+=d,s+=d;return n}},function(e,t,n){"use strict";var r=n(58),o=n(12),i=n(53);e.exports=function u(e,t,n,a,c,s,l,f){for(var d,p=c,h=0,g=!!l&&i(l,f,3);h0&&r(d))p=u(e,t,d,o(d.length),p,s-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[p]=d}p++}h++}return p}},function(e,t,n){"use strict";var r=n(11);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(u){var i=e["return"];throw i!==undefined&&r(i.call(e)),u}}},function(e,t,n){"use strict";var r=n(31),o=n(50),i=n(74),u=n(33),a=n(121),c=u.set,s=u.getterFor("Array Iterator");e.exports=a(Array,"Array",(function(e,t){c(this,{type:"Array Iterator",target:r(e),index:0,kind:t})}),(function(){var e=s(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(e,t,n){"use strict";var r=n(165).IteratorPrototype,o=n(48),i=n(51),u=n(49),a=n(74),c=function(){return this};e.exports=function(e,t,n){var s=t+" Iterator";return e.prototype=o(r,{next:i(1,n)}),u(e,s,!1,!0),a[s]=c,e}},function(e,t,n){"use strict";var r,o,i,u=n(42),a=n(32),c=n(20),s=n(15),l=n(43),f=s("iterator"),d=!1;[].keys&&("next"in(i=[].keys())?(o=u(u(i)))!==Object.prototype&&(r=o):d=!0),r==undefined&&(r={}),l||c(r,f)||a(r,f,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:d}},function(e,t,n){"use strict";var r=n(8);e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var r=n(31),o=n(38),i=n(12),u=n(44),a=n(28),c=Math.min,s=[].lastIndexOf,l=!!s&&1/[1].lastIndexOf(1,-0)<0,f=u("lastIndexOf"),d=a("indexOf",{ACCESSORS:!0,1:0}),p=l||!f||!d;e.exports=p?function(e){if(l)return s.apply(this,arguments)||0;var t=r(this),n=i(t.length),u=n-1;for(arguments.length>1&&(u=c(u,o(arguments[1]))),u<0&&(u=n+u);u>=0;u--)if(u in t&&t[u]===e)return u||0;return-1}:s},function(e,t,n){"use strict";var r=n(38),o=n(12);e.exports=function(e){if(e===undefined)return 0;var t=r(e),n=o(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var r=n(27),o=n(8),i=[].slice,u={},a=function(e,t,n){if(!(t in u)){for(var r=[],o=0;o1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!m(this,e)}}),i(l.prototype,n?{get:function(e){var t=m(this,e);return t&&t.value},set:function(e,t){return v(this,0===e?0:e,t)}}:{add:function(e){return v(this,e=0===e?0:e,e)}}),f&&r(l.prototype,"size",{get:function(){return p(this).size}}),l},setStrong:function(e,t,n){var r=t+" Iterator",o=g(t),i=g(r);s(e,t,(function(e,t){h(this,{type:r,target:e,state:o(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),l(t)}}},function(e,t,n){"use strict";var r=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:r(1+e)}},function(e,t,n){"use strict";var r=n(8),o=Math.floor;e.exports=function(e){return!r(e)&&isFinite(e)&&o(e)===e}},function(e,t,n){"use strict";var r=n(7),o=n(62).trim,i=n(91),u=r.parseInt,a=/^[+-]?0[Xx]/,c=8!==u(i+"08")||22!==u(i+"0x16");e.exports=c?function(e,t){var n=o(String(e));return u(n,t>>>0||(a.test(n)?16:10))}:u},function(e,t,n){"use strict";var r=n(10),o=n(71),i=n(31),u=n(81).f,a=function(e){return function(t){for(var n,a=i(t),c=o(a),s=c.length,l=0,f=[];s>l;)n=c[l++],r&&!u.call(a,n)||f.push(e?[n,a[n]]:a[n]);return f}};e.exports={entries:a(!0),values:a(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var r=n(7);e.exports=r.Promise},function(e,t,n){"use strict";var r=n(83);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},function(e,t,n){"use strict";var r,o,i,u,a,c,s,l,f=n(7),d=n(23).f,p=n(37),h=n(127).set,g=n(177),v=f.MutationObserver||f.WebKitMutationObserver,m=f.process,y=f.Promise,b="process"==p(m),E=d(f,"queueMicrotask"),D=E&&E.value;D||(r=function(){var e,t;for(b&&(e=m.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(n){throw o?u():i=undefined,n}}i=undefined,e&&e.enter()},b?u=function(){m.nextTick(r)}:v&&!g?(a=!0,c=document.createTextNode(""),new v(r).observe(c,{characterData:!0}),u=function(){c.data=a=!a}):y&&y.resolve?(s=y.resolve(undefined),l=s.then,u=function(){l.call(s,r)}):u=function(){h.call(f,r)}),e.exports=D||function(e){var t={fn:e,next:undefined};i&&(i.next=t),o||(o=t,u()),i=t}},function(e,t,n){"use strict";var r=n(11),o=n(8),i=n(128);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var r=n(83);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(r)},function(e,t,n){"use strict";var r=n(402);e.exports=function(e,t){var n=r(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var r=n(18),o=n(12),i=n(119),u=n(118),a=n(53),c=n(13).aTypedArrayConstructor;e.exports=function(e){var t,n,s,l,f,d,p=r(e),h=arguments.length,g=h>1?arguments[1]:undefined,v=g!==undefined,m=i(p);if(m!=undefined&&!u(m))for(d=(f=m.call(p)).next,p=[];!(l=d.call(f)).done;)p.push(l.value);for(v&&h>2&&(g=a(g,arguments[2],2)),n=o(p.length),s=new(c(this))(n),t=0;n>t;t++)s[t]=v?g(p[t],t):p[t];return s}},function(e,t,n){"use strict";var r=n(75),o=n(56).getWeakData,i=n(11),u=n(8),a=n(60),c=n(61),s=n(21),l=n(20),f=n(33),d=f.set,p=f.getterFor,h=s.find,g=s.findIndex,v=0,m=function(e){return e.frozen||(e.frozen=new y)},y=function(){this.entries=[]},b=function(e,t){return h(e.entries,(function(e){return e[0]===t}))};y.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var n=b(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=g(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,s){var f=e((function(e,r){a(e,f,t),d(e,{type:t,id:v++,frozen:undefined}),r!=undefined&&c(r,e[s],e,n)})),h=p(t),g=function(e,t,n){var r=h(e),u=o(i(t),!0);return!0===u?m(r).set(t,n):u[r.id]=n,e};return r(f.prototype,{"delete":function(e){var t=h(this);if(!u(e))return!1;var n=o(e);return!0===n?m(t)["delete"](e):n&&l(n,t.id)&&delete n[t.id]},has:function(e){var t=h(this);if(!u(e))return!1;var n=o(e);return!0===n?m(t).has(e):n&&l(n,t.id)}}),r(f.prototype,n?{get:function(e){var t=h(this);if(u(e)){var n=o(e);return!0===n?m(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return g(this,e,t)}}:{add:function(e){return g(this,e,!0)}}),f}}},function(e,t,n){"use strict";t.__esModule=!0,t.EventEmitter=void 0;var r=function(){function e(){this.listeners={}}var t=e.prototype;return t.on=function(e,t){this.listeners[e]=this.listeners[e]||[],this.listeners[e].push(t)},t.off=function(e,t){var n=this.listeners[e];if(!n)throw new Error('There is no listeners for "'+e+'"');this.listeners[e]=n.filter((function(e){return e!==t}))},t.emit=function(e){var t=this.listeners[e];if(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;oc&&(o[u]=c-t[u],i=!0)}return[i,o]};t.dragStartHandler=function(e){d.log("drag start"),h=!0,c=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",F),document.addEventListener("mouseup",S),F(e)};var S=function B(e){d.log("drag end"),F(e),document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",B),h=!1,C()},F=function(e){h&&(e.preventDefault(),b((0,o.vecAdd)([e.screenX,e.screenY],c)))};t.resizeStartHandler=function(e,t){return function(n){s=[e,t],d.log("resize start",s),g=!0,c=[window.screenLeft-n.screenX,window.screenTop-n.screenY],l=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",T),document.addEventListener("mouseup",N),T(n)}};var N=function I(e){d.log("resize end",f),T(e),document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",I),g=!1,C()},T=function(e){g&&(e.preventDefault(),(f=(0,o.vecAdd)(l,(0,o.vecMultiply)(s,(0,o.vecAdd)([e.screenX,e.screenY],(0,o.vecInverse)([window.screenLeft,window.screenTop]),c,[1,1]))))[0]=Math.max(f[0],150),f[1]=Math.max(f[1],50),E(f))}},function(e,t,n){"use strict";t.__esModule=!0,t.focusWindow=t.focusMap=void 0;t.focusMap=function(){Byond.winset("mapwindow.map",{focus:!0})};t.focusWindow=function(){Byond.winset(window.__windowId__,{focus:!0})}},function(e,t,n){"use strict";t.__esModule=!0,t.selectDebug=void 0;t.selectDebug=function(e){return e.debug}},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var r=n(0),o=n(6),i=n(135),u=n(29),a=n(17),c=n(103),s=n(192);function l(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function f(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var d=(0,u.createLogger)("Button"),p=function(e){var t=e.className,n=e.fluid,u=e.icon,l=e.iconRotation,p=e.iconSpin,h=e.color,g=e.disabled,v=e.selected,m=e.tooltip,y=e.tooltipPosition,b=e.ellipsis,E=e.compact,D=e.circular,x=e.content,w=e.children,C=e.onclick,_=e.onClick,A=f(e,["className","fluid","icon","iconRotation","iconSpin","color","disabled","selected","tooltip","tooltipPosition","ellipsis","compact","circular","content","children","onclick","onClick"]),k=!(!x&&!w);return C&&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"),(0,r.normalizeProps)((0,r.createComponentVNode)(2,a.Box,Object.assign({className:(0,o.classes)(["Button",n&&"Button--fluid",g&&"Button--disabled",v&&"Button--selected",k&&"Button--hasContent",b&&"Button--ellipsis",D&&"Button--circular",E&&"Button--compact",h&&"string"==typeof h?"Button--color--"+h:"Button--color--default",t]),tabIndex:!g&&"0",unselectable:Byond.IS_LTE_IE8,onClick:function(e){!g&&_&&_(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;if(t===i.KEY_SPACE||t===i.KEY_ENTER)return e.preventDefault(),void(!g&&_&&_(e));t!==i.KEY_ESCAPE||e.preventDefault()}},A,{children:[u&&(0,r.createComponentVNode)(2,c.Icon,{name:u,rotation:l,spin:p}),x,w,m&&(0,r.createComponentVNode)(2,s.Tooltip,{content:m,position:y})]})))};t.Button=p,p.defaultHooks=o.pureComponentHooks;var h=function(e){var t=e.checked,n=f(e,["checked"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,p,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=h,p.Checkbox=h;var g=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}l(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmContent,o=void 0===n?"Confirm?":n,i=t.confirmColor,u=void 0===i?"bad":i,a=t.confirmIcon,c=t.icon,s=t.color,l=t.content,d=t.onClick,h=f(t,["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,p,Object.assign({content:this.state.clickedOnce?o:l,icon:this.state.clickedOnce?a:c,color:this.state.clickedOnce?u:s,onClick:function(){return e.state.clickedOnce?d():e.setClickedOnce(!0)}},h)))},t}(r.Component);t.ButtonConfirm=g,p.Confirm=g;var v=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,r.createRef)(),t.state={inInput:!1},t}l(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,u=t.content,l=t.icon,d=t.iconRotation,p=t.iconSpin,h=t.tooltip,g=t.tooltipPosition,v=t.color,m=void 0===v?"default":v,y=(t.placeholder,t.maxLength,f(t,["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","placeholder","maxLength"]));return(0,r.normalizeProps)((0,r.createComponentVNode)(2,a.Box,Object.assign({className:(0,o.classes)(["Button",n&&"Button--fluid","Button--color--"+m])},y,{onClick:function(){return e.setInInput(!0)},children:[l&&(0,r.createComponentVNode)(2,c.Icon,{name:l,rotation:d,spin:p}),(0,r.createVNode)(1,"div",null,u,0),(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef),h&&(0,r.createComponentVNode)(2,s.Tooltip,{content:h,position:g})]})))},t}(r.Component);t.ButtonInput=v,p.Input=v},function(e,t,n){"use strict";t.__esModule=!0,t.Tooltip=void 0;var r=n(0),o=n(6);t.Tooltip=function(e){var t=e.content,n=e.position,i=void 0===n?"bottom":n,u="string"==typeof t&&t.length>35;return(0,r.createVNode)(1,"div",(0,o.classes)(["Tooltip",u&&"Tooltip--long",i&&"Tooltip--"+i]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var r=n(0),o=n(6),i=n(17);t.Dimmer=function(e){var t=e.className,n=e.children,u=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["Dimmer"].concat(t))},u,{children:(0,r.createVNode)(1,"div","Dimmer__inner",n,0)})))}},function(e,t,n){"use strict";t.__esModule=!0,t.Divider=void 0;var r=n(0),o=n(6);t.Divider=function(e){var t=e.vertical,n=e.hidden;return(0,r.createVNode)(1,"div",(0,o.classes)(["Divider",n&&"Divider--hidden",t?"Divider--vertical":"Divider--horizontal"]))}},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var r=n(0),o=n(6),i=n(17);function u(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var a=function(e){var t=e.className,n=e.direction,r=e.wrap,i=e.align,a=e.justify,c=e.inline,s=e.spacing,l=void 0===s?0:s,f=u(e,["className","direction","wrap","align","justify","inline","spacing"]);return Object.assign({className:(0,o.classes)(["Flex",Byond.IS_LTE_IE10&&("column"===n?"Flex--iefix--column":"Flex--iefix"),c&&"Flex--inline",l>0&&"Flex--spacing--"+l,t]),style:Object.assign({},f.style,{"flex-direction":n,"flex-wrap":r,"align-items":i,"justify-content":a})},f)};t.computeFlexProps=a;var c=function(e){return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({},a(e))))};t.Flex=c,c.defaultHooks=o.pureComponentHooks;var s=function(e){var t=e.className,n=e.style,r=e.grow,a=e.order,c=e.shrink,s=e.basis,l=void 0===s?e.width:s,f=e.align,d=u(e,["className","style","grow","order","shrink","basis","align"]);return Object.assign({className:(0,o.classes)(["Flex__item",Byond.IS_LTE_IE10&&"Flex__item--iefix",Byond.IS_LTE_IE10&&r>0&&"Flex__item--iefix--grow",t]),style:Object.assign({},n,{"flex-grow":r,"flex-shrink":c,"flex-basis":(0,i.unit)(l),order:a,"align-self":f})},d)};t.computeFlexItemProps=s;var l=function(e){return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({},s(e))))};t.FlexItem=l,l.defaultHooks=o.pureComponentHooks,c.Item=l},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var r=n(0),o=n(6),i=n(17);function u(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var a=function(e){var t=e.className,n=e.collapsing,a=e.children,c=u(e,["className","collapsing","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"table",(0,o.classes)(["Table",n&&"Table--collapsing",t,(0,i.computeBoxClassName)(c)]),(0,r.createVNode)(1,"tbody",null,a,0),2,Object.assign({},(0,i.computeBoxProps)(c))))};t.Table=a,a.defaultHooks=o.pureComponentHooks;var c=function(e){var t=e.className,n=e.header,a=u(e,["className","header"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"tr",(0,o.classes)(["Table__row",n&&"Table__row--header",t,(0,i.computeBoxClassName)(e)]),null,1,Object.assign({},(0,i.computeBoxProps)(a))))};t.TableRow=c,c.defaultHooks=o.pureComponentHooks;var s=function(e){var t=e.className,n=e.collapsing,a=e.header,c=u(e,["className","collapsing","header"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"td",(0,o.classes)(["Table__cell",n&&"Table__cell--collapsing",a&&"Table__cell--header",t,(0,i.computeBoxClassName)(e)]),null,1,Object.assign({},(0,i.computeBoxProps)(c))))};t.TableCell=s,s.defaultHooks=o.pureComponentHooks,a.Row=c,a.Cell=s},function(e,t,n){"use strict";t.__esModule=!0,t.Input=t.toInputValue=void 0;var r=n(0),o=n(6),i=n(17),u=n(78);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){return"number"!=typeof e&&"string"!=typeof e?"":String(e)};t.toInputValue=c;var s=function(e){var t,n;function s(){var t;return(t=e.call(this)||this).inputRef=(0,r.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,r=t.props.onInput;n||t.setEditing(!0),r&&r(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,r=t.props.onChange;n&&(t.setEditing(!1),r&&r(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,r=n.onInput,o=n.onChange,i=n.onEnter;return e.keyCode===u.KEY_ENTER?(t.setEditing(!1),o&&o(e,e.target.value),r&&r(e,e.target.value),i&&i(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):e.keyCode===u.KEY_ESCAPE?(t.setEditing(!1),e.target.value=c(t.props.value),void e.target.blur()):void 0},t}n=e,(t=s).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var l=s.prototype;return l.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=c(e)),this.props.autoFocus&&setTimeout((function(){return t.focus()}),1)},l.componentDidUpdate=function(e,t){var n=this.state.editing,r=e.value,o=this.props.value,i=this.inputRef.current;i&&!n&&r!==o&&(i.value=c(o))},l.setEditing=function(e){this.setState({editing:e})},l.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,u=a(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder"]),c=u.className,s=u.fluid,l=u.monospace,f=a(u,["className","fluid","monospace"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["Input",s&&"Input--fluid",l&&"Input--monospace",c])},f,{children:[(0,r.createVNode)(1,"div","Input__baseline",".",16),(0,r.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},s}(r.Component);t.Input=s},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var r=n(0),o=n(6),i=n(17),u=n(194),a=function(e){var t=e.children;return(0,r.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=a,a.defaultHooks=o.pureComponentHooks;var c=function(e){var t=e.className,n=e.label,u=e.labelColor,a=void 0===u?"label":u,c=e.color,s=e.textAlign,l=e.buttons,f=e.content,d=e.children;return(0,r.createVNode)(1,"tr",(0,o.classes)(["LabeledList__row",t]),[(0,r.createComponentVNode)(2,i.Box,{as:"td",color:a,className:(0,o.classes)(["LabeledList__cell","LabeledList__label"]),children:n?n+":":null}),(0,r.createComponentVNode)(2,i.Box,{as:"td",color:c,textAlign:s,className:(0,o.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:l?undefined:2,children:[f,d]}),l&&(0,r.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",l,0)],0)};t.LabeledListItem=c,c.defaultHooks=o.pureComponentHooks;var s=function(e){var t=e.size?(0,i.unit)(Math.max(0,e.size-1)):0;return(0,r.createVNode)(1,"tr","LabeledList__row",(0,r.createVNode)(1,"td",null,(0,r.createComponentVNode)(2,u.Divider),2,{colSpan:3,style:{"padding-top":t,"padding-bottom":t}}),2)};t.LabeledListDivider=s,s.defaultHooks=o.pureComponentHooks,a.Item=c,a.Divider=s},function(e,t,n){"use strict";t.__esModule=!0,t.Window=void 0;var r=n(0),o=n(6),i=n(22),u=n(19),a=n(2),c=n(1),s=n(36),l=n(137),f=(n(200),n(188)),d=n(29),p=n(141);var h=(0,d.createLogger)("Window"),g=[400,600],v=function(e){var t,n;function c(){return e.apply(this,arguments)||this}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=c.prototype;return d.componentDidMount=function(){var e,t=(0,a.useBackend)(this.context),n=t.config;if(!t.suspended){h.log("mounting");var r=Object.assign({size:g},n.window);this.props.width&&this.props.height&&(r.size=[this.props.width,this.props.height]),(null==(e=n.window)?void 0:e.key)&&(0,f.setWindowKey)(n.window.key),(0,f.recallWindowGeometry)(r)}},d.render=function(){var e,t=this.props,n=t.resizable,c=t.theme,d=t.title,g=t.children,v=(0,a.useBackend)(this.context),m=v.config,b=v.suspended,E=(0,l.useDebug)(this.context).debugLayout,D=(0,i.useDispatch)(this.context),x=null==(e=m.window)?void 0:e.fancy,w=m.user&&(m.user.observer?m.status=0||(o[n]=e[n]);return o}(e,["className","fitted","children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,p.Layout.Content,Object.assign({className:(0,o.classes)(["Window__content",t])},u,{children:n&&i||(0,r.createVNode)(1,"div","Window__contentPadding",i,0)})))};var m=function(e){switch(e){case s.UI_INTERACTIVE:return"good";case s.UI_UPDATE:return"average";case s.UI_DISABLED:default:return"bad"}},y=function(e,t){var n=e.className,a=e.title,s=e.status,l=e.fancy,f=e.onDragStart,d=e.onClose;(0,i.useDispatch)(t);return(0,r.createVNode)(1,"div",(0,o.classes)(["TitleBar",n]),[s===undefined&&(0,r.createComponentVNode)(2,c.Icon,{className:"TitleBar__statusIcon",name:"tools",opacity:.5})||(0,r.createComponentVNode)(2,c.Icon,{className:"TitleBar__statusIcon",color:m(s),name:"eye"}),(0,r.createVNode)(1,"div","TitleBar__title","string"==typeof a&&a===a.toLowerCase()&&(0,u.toTitleCase)(a)||a,0),(0,r.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return l&&f(e)}}),!1,!!l&&(0,r.createVNode)(1,"div","TitleBar__close TitleBar__clickable",Byond.IS_LTE_IE8?"x":"\xd7",0,{onclick:d})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.openExternalBrowser=t.toggleDebugLayout=t.toggleKitchenSink=void 0;var r=n(22),o=(0,r.createAction)("debug/toggleKitchenSink");t.toggleKitchenSink=o;var i=(0,r.createAction)("debug/toggleDebugLayout");t.toggleDebugLayout=i;var u=(0,r.createAction)("debug/openExternalBrowser");t.openExternalBrowser=u},,,,function(e,t,n){"use strict";t.__esModule=!0,t.createUuid=void 0;t.createUuid=function(){var e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:3&n|8).toString(16)}))}},,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(41),u=n(43),a=n(10),c=n(115),s=n(155),l=n(5),f=n(20),d=n(58),p=n(8),h=n(11),g=n(18),v=n(31),m=n(40),y=n(51),b=n(48),E=n(71),D=n(52),x=n(158),w=n(114),C=n(23),_=n(16),A=n(81),k=n(32),S=n(25),F=n(111),N=n(82),T=n(68),B=n(67),I=n(15),O=n(159),M=n(26),L=n(49),V=n(33),P=n(21).forEach,R=N("hidden"),j=I("toPrimitive"),K=V.set,z=V.getterFor("Symbol"),Y=Object.prototype,U=o.Symbol,$=i("JSON","stringify"),H=C.f,W=_.f,q=x.f,G=A.f,X=F("symbols"),Z=F("op-symbols"),Q=F("string-to-symbol-registry"),J=F("symbol-to-string-registry"),ee=F("wks"),te=o.QObject,ne=!te||!te.prototype||!te.prototype.findChild,re=a&&l((function(){return 7!=b(W({},"a",{get:function(){return W(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=H(Y,t);r&&delete Y[t],W(e,t,n),r&&e!==Y&&W(Y,t,r)}:W,oe=function(e,t){var n=X[e]=b(U.prototype);return K(n,{type:"Symbol",tag:e,description:t}),a||(n.description=t),n},ie=s?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof U},ue=function(e,t,n){e===Y&&ue(Z,t,n),h(e);var r=m(t,!0);return h(n),f(X,r)?(n.enumerable?(f(e,R)&&e[R][r]&&(e[R][r]=!1),n=b(n,{enumerable:y(0,!1)})):(f(e,R)||W(e,R,y(1,{})),e[R][r]=!0),re(e,r,n)):W(e,r,n)},ae=function(e,t){h(e);var n=v(t),r=E(n).concat(de(n));return P(r,(function(t){a&&!se.call(n,t)||ue(e,t,n[t])})),e},ce=function(e,t){return t===undefined?b(e):ae(b(e),t)},se=function(e){var t=m(e,!0),n=G.call(this,t);return!(this===Y&&f(X,t)&&!f(Z,t))&&(!(n||!f(this,t)||!f(X,t)||f(this,R)&&this[R][t])||n)},le=function(e,t){var n=v(e),r=m(t,!0);if(n!==Y||!f(X,r)||f(Z,r)){var o=H(n,r);return!o||!f(X,r)||f(n,R)&&n[R][r]||(o.enumerable=!0),o}},fe=function(e){var t=q(v(e)),n=[];return P(t,(function(e){f(X,e)||f(T,e)||n.push(e)})),n},de=function(e){var t=e===Y,n=q(t?Z:v(e)),r=[];return P(n,(function(e){!f(X,e)||t&&!f(Y,e)||r.push(X[e])})),r};(c||(S((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor");var e=arguments.length&&arguments[0]!==undefined?String(arguments[0]):undefined,t=B(e),n=function r(e){this===Y&&r.call(Z,e),f(this,R)&&f(this[R],t)&&(this[R][t]=!1),re(this,t,y(1,e))};return a&&ne&&re(Y,t,{configurable:!0,set:n}),oe(t,e)}).prototype,"toString",(function(){return z(this).tag})),S(U,"withoutSetter",(function(e){return oe(B(e),e)})),A.f=se,_.f=ue,C.f=le,D.f=x.f=fe,w.f=de,O.f=function(e){return oe(I(e),e)},a&&(W(U.prototype,"description",{configurable:!0,get:function(){return z(this).description}}),u||S(Y,"propertyIsEnumerable",se,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:U}),P(E(ee),(function(e){M(e)})),r({target:"Symbol",stat:!0,forced:!c},{"for":function(e){var t=String(e);if(f(Q,t))return Q[t];var n=U(t);return Q[t]=n,J[n]=t,n},keyFor:function(e){if(!ie(e))throw TypeError(e+" is not a symbol");if(f(J,e))return J[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),r({target:"Object",stat:!0,forced:!c,sham:!a},{create:ce,defineProperty:ue,defineProperties:ae,getOwnPropertyDescriptor:le}),r({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:fe,getOwnPropertySymbols:de}),r({target:"Object",stat:!0,forced:l((function(){w.f(1)}))},{getOwnPropertySymbols:function(e){return w.f(g(e))}}),$)&&r({target:"JSON",stat:!0,forced:!c||l((function(){var e=U();return"[null]"!=$([e])||"{}"!=$({a:e})||"{}"!=$(Object(e))}))},{stringify:function(e,t,n){for(var r,o=[e],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=t,(p(t)||e!==undefined)&&!ie(e))return d(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!ie(t))return t}),o[1]=t,$.apply(null,o)}});U.prototype[j]||k(U.prototype,j,U.prototype.valueOf),L(U,"Symbol"),T[R]=!0},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(7),u=n(20),a=n(8),c=n(16).f,s=n(152),l=i.Symbol;if(o&&"function"==typeof l&&(!("description"in l.prototype)||l().description!==undefined)){var f={},d=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof d?new l(e):e===undefined?l():l(e);return""===e&&(f[t]=!0),t};s(d,l);var p=d.prototype=l.prototype;p.constructor=d;var h=p.toString,g="Symbol(test)"==String(l("test")),v=/^Symbol\((.*)\)[^)]+$/;c(p,"description",{configurable:!0,get:function(){var e=a(this)?this.valueOf():this,t=h.call(e);if(u(f,e))return"";var n=g?t.slice(7,-1):t.replace(v,"$1");return""===n?undefined:n}}),r({global:!0,forced:!0},{Symbol:d})}},function(e,t,n){"use strict";n(26)("asyncIterator")},function(e,t,n){"use strict";n(26)("hasInstance")},function(e,t,n){"use strict";n(26)("isConcatSpreadable")},function(e,t,n){"use strict";n(26)("iterator")},function(e,t,n){"use strict";n(26)("match")},function(e,t,n){"use strict";n(26)("matchAll")},function(e,t,n){"use strict";n(26)("replace")},function(e,t,n){"use strict";n(26)("search")},function(e,t,n){"use strict";n(26)("species")},function(e,t,n){"use strict";n(26)("split")},function(e,t,n){"use strict";n(26)("toPrimitive")},function(e,t,n){"use strict";n(26)("toStringTag")},function(e,t,n){"use strict";n(26)("unscopables")},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(58),u=n(8),a=n(18),c=n(12),s=n(54),l=n(72),f=n(73),d=n(15),p=n(116),h=d("isConcatSpreadable"),g=p>=51||!o((function(){var e=[];return e[h]=!1,e.concat()[0]!==e})),v=f("concat"),m=function(e){if(!u(e))return!1;var t=e[h];return t!==undefined?!!t:i(e)};r({target:"Array",proto:!0,forced:!g||!v},{concat:function(e){var t,n,r,o,i,u=a(this),f=l(u,0),d=0;for(t=-1,r=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");s(f,d++,i)}return f.length=d,f}})},function(e,t,n){"use strict";var r=n(4),o=n(160),i=n(50);r({target:"Array",proto:!0},{copyWithin:o}),i("copyWithin")},function(e,t,n){"use strict";var r=n(4),o=n(21).every,i=n(44),u=n(28),a=i("every"),c=u("every");r({target:"Array",proto:!0,forced:!a||!c},{every:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(117),i=n(50);r({target:"Array",proto:!0},{fill:o}),i("fill")},function(e,t,n){"use strict";var r=n(4),o=n(21).filter,i=n(73),u=n(28),a=i("filter"),c=u("filter");r({target:"Array",proto:!0,forced:!a||!c},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(21).find,i=n(50),u=n(28),a=!0,c=u("find");"find"in[]&&Array(1).find((function(){a=!1})),r({target:"Array",proto:!0,forced:a||!c},{find:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("find")},function(e,t,n){"use strict";var r=n(4),o=n(21).findIndex,i=n(50),u=n(28),a=!0,c=u("findIndex");"findIndex"in[]&&Array(1).findIndex((function(){a=!1})),r({target:"Array",proto:!0,forced:a||!c},{findIndex:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("findIndex")},function(e,t,n){"use strict";var r=n(4),o=n(161),i=n(18),u=n(12),a=n(38),c=n(72);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=i(this),n=u(t.length),r=c(t,0);return r.length=o(r,t,t,n,0,e===undefined?1:a(e)),r}})},function(e,t,n){"use strict";var r=n(4),o=n(161),i=n(18),u=n(12),a=n(27),c=n(72);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=i(this),r=u(n.length);return a(e),(t=c(n,0)).length=o(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var r=n(4),o=n(248);r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},function(e,t,n){"use strict";var r=n(21).forEach,o=n(44),i=n(28),u=o("forEach"),a=i("forEach");e.exports=u&&a?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}},function(e,t,n){"use strict";var r=n(4),o=n(250);r({target:"Array",stat:!0,forced:!n(85)((function(e){Array.from(e)}))},{from:o})},function(e,t,n){"use strict";var r=n(53),o=n(18),i=n(162),u=n(118),a=n(12),c=n(54),s=n(119);e.exports=function(e){var t,n,l,f,d,p,h=o(e),g="function"==typeof this?this:Array,v=arguments.length,m=v>1?arguments[1]:undefined,y=m!==undefined,b=s(h),E=0;if(y&&(m=r(m,v>2?arguments[2]:undefined,2)),b==undefined||g==Array&&u(b))for(n=new g(t=a(h.length));t>E;E++)p=y?m(h[E],E):h[E],c(n,E,p);else for(d=(f=b.call(h)).next,n=new g;!(l=d.call(f)).done;E++)p=y?i(f,m,[l.value,E],!0):l.value,c(n,E,p);return n.length=E,n}},function(e,t,n){"use strict";var r=n(4),o=n(69).includes,i=n(50);r({target:"Array",proto:!0,forced:!n(28)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("includes")},function(e,t,n){"use strict";var r=n(4),o=n(69).indexOf,i=n(44),u=n(28),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,s=i("indexOf"),l=u("indexOf",{ACCESSORS:!0,1:0});r({target:"Array",proto:!0,forced:c||!s||!l},{indexOf:function(e){return c?a.apply(this,arguments)||0:o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(4)({target:"Array",stat:!0},{isArray:n(58)})},function(e,t,n){"use strict";var r=n(4),o=n(66),i=n(31),u=n(44),a=[].join,c=o!=Object,s=u("join",",");r({target:"Array",proto:!0,forced:c||!s},{join:function(e){return a.call(i(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var r=n(4),o=n(167);r({target:"Array",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},function(e,t,n){"use strict";var r=n(4),o=n(21).map,i=n(73),u=n(28),a=i("map"),c=u("map");r({target:"Array",proto:!0,forced:!a||!c},{map:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(54);r({target:"Array",stat:!0,forced:o((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)i(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var r=n(4),o=n(86).left,i=n(44),u=n(28),a=i("reduce"),c=u("reduce",{1:0});r({target:"Array",proto:!0,forced:!a||!c},{reduce:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(86).right,i=n(44),u=n(28),a=i("reduceRight"),c=u("reduce",{1:0});r({target:"Array",proto:!0,forced:!a||!c},{reduceRight:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(8),i=n(58),u=n(47),a=n(12),c=n(31),s=n(54),l=n(15),f=n(73),d=n(28),p=f("slice"),h=d("slice",{ACCESSORS:!0,0:0,1:2}),g=l("species"),v=[].slice,m=Math.max;r({target:"Array",proto:!0,forced:!p||!h},{slice:function(e,t){var n,r,l,f=c(this),d=a(f.length),p=u(e,d),h=u(t===undefined?d:t,d);if(i(f)&&("function"!=typeof(n=f.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[g])&&(n=undefined):n=undefined,n===Array||n===undefined))return v.call(f,p,h);for(r=new(n===undefined?Array:n)(m(h-p,0)),l=0;p1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(27),i=n(18),u=n(5),a=n(44),c=[],s=c.sort,l=u((function(){c.sort(undefined)})),f=u((function(){c.sort(null)})),d=a("sort");r({target:"Array",proto:!0,forced:l||!f||!d},{sort:function(e){return e===undefined?s.call(i(this)):s.call(i(this),o(e))}})},function(e,t,n){"use strict";n(59)("Array")},function(e,t,n){"use strict";var r=n(4),o=n(47),i=n(38),u=n(12),a=n(18),c=n(72),s=n(54),l=n(73),f=n(28),d=l("splice"),p=f("splice",{ACCESSORS:!0,0:0,1:2}),h=Math.max,g=Math.min;r({target:"Array",proto:!0,forced:!d||!p},{splice:function(e,t){var n,r,l,f,d,p,v=a(this),m=u(v.length),y=o(e,m),b=arguments.length;if(0===b?n=r=0:1===b?(n=0,r=m-y):(n=b-2,r=g(h(i(t),0),m-y)),m+n-r>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(l=c(v,r),f=0;fm-r+n;f--)delete v[f-1]}else if(n>r)for(f=m-r;f>y;f--)p=f+n-1,(d=f+r-1)in v?v[p]=v[d]:delete v[p];for(f=0;f>1,g=23===t?o(2,-24)-o(2,-77):0,v=e<0||0===e&&1/e<0?1:0,m=0;for((e=r(e))!=e||e===1/0?(s=e!=e?1:0,c=p):(c=i(u(e)/a),e*(l=o(2,-c))<1&&(c--,l*=2),(e+=c+h>=1?g/l:g*o(2,1-h))*l>=2&&(c++,l/=2),c+h>=p?(s=0,c=p):c+h>=1?(s=(e*l-1)*o(2,t),c+=h):(s=e*o(2,h-1)*o(2,t),c=0));t>=8;f[m++]=255&s,s/=256,t-=8);for(c=c<0;f[m++]=255&c,c/=256,d-=8);return f[--m]|=128*v,f},unpack:function(e,t){var n,r=e.length,i=8*r-t-1,u=(1<>1,c=i-7,s=r-1,l=e[s--],f=127&l;for(l>>=7;c>0;f=256*f+e[s],s--,c-=8);for(n=f&(1<<-c)-1,f>>=-c,c+=t;c>0;n=256*n+e[s],s--,c-=8);if(0===f)f=1-a;else{if(f===u)return n?NaN:l?-1/0:1/0;n+=o(2,t),f-=a}return(l?-1:1)*n*o(2,f-t)}}},function(e,t,n){"use strict";var r=n(4),o=n(13);r({target:"ArrayBuffer",stat:!0,forced:!o.NATIVE_ARRAY_BUFFER_VIEWS},{isView:o.isView})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(87),u=n(11),a=n(47),c=n(12),s=n(45),l=i.ArrayBuffer,f=i.DataView,d=l.prototype.slice;r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o((function(){return!new l(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(d!==undefined&&t===undefined)return d.call(u(this),e);for(var n=u(this).byteLength,r=a(e,n),o=a(t===undefined?n:t,n),i=new(s(this,l))(c(o-r)),p=new f(this),h=new f(i),g=0;r9999?"+":"";return n+o(i(e),n?6:4,0)+"-"+o(this.getUTCMonth()+1,2,0)+"-"+o(this.getUTCDate(),2,0)+"T"+o(this.getUTCHours(),2,0)+":"+o(this.getUTCMinutes(),2,0)+":"+o(this.getUTCSeconds(),2,0)+"."+o(t,3,0)+"Z"}:c},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(18),u=n(40);r({target:"Date",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),n=u(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var r=n(32),o=n(277),i=n(15)("toPrimitive"),u=Date.prototype;i in u||r(u,i,o)},function(e,t,n){"use strict";var r=n(11),o=n(40);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return o(r(this),"number"!==e)}},function(e,t,n){"use strict";var r=n(25),o=Date.prototype,i=o.toString,u=o.getTime;new Date(NaN)+""!="Invalid Date"&&r(o,"toString",(function(){var e=u.call(this);return e==e?i.call(this):"Invalid Date"}))},function(e,t,n){"use strict";n(4)({target:"Function",proto:!0},{bind:n(169)})},function(e,t,n){"use strict";var r=n(8),o=n(16),i=n(42),u=n(15)("hasInstance"),a=Function.prototype;u in a||o.f(a,u,{value:function(e){if("function"!=typeof this||!r(e))return!1;if(!r(this.prototype))return e instanceof this;for(;e=i(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var r=n(10),o=n(16).f,i=Function.prototype,u=i.toString,a=/^\s*function ([^ (]*)/;r&&!("name"in i)&&o(i,"name",{configurable:!0,get:function(){try{return u.call(this).match(a)[1]}catch(e){return""}}})},function(e,t,n){"use strict";n(4)({global:!0},{globalThis:n(7)})},function(e,t,n){"use strict";var r=n(4),o=n(41),i=n(5),u=o("JSON","stringify"),a=/[\uD800-\uDFFF]/g,c=/^[\uD800-\uDBFF]$/,s=/^[\uDC00-\uDFFF]$/,l=function(e,t,n){var r=n.charAt(t-1),o=n.charAt(t+1);return c.test(e)&&!s.test(o)||s.test(e)&&!c.test(r)?"\\u"+e.charCodeAt(0).toString(16):e},f=i((function(){return'"\\udf06\\ud834"'!==u("\udf06\ud834")||'"\\udead"'!==u("\udead")}));u&&r({target:"JSON",stat:!0,forced:f},{stringify:function(e,t,n){var r=u.apply(null,arguments);return"string"==typeof r?r.replace(a,l):r}})},function(e,t,n){"use strict";var r=n(7);n(49)(r.JSON,"JSON",!0)},function(e,t,n){"use strict";var r=n(88),o=n(170);e.exports=r("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),o)},function(e,t,n){"use strict";var r=n(4),o=n(171),i=Math.acosh,u=Math.log,a=Math.sqrt,c=Math.LN2;r({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?u(e)+c:o(e-1+a(e-1)*a(e+1))}})},function(e,t,n){"use strict";var r=n(4),o=Math.asinh,i=Math.log,u=Math.sqrt;r({target:"Math",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function a(e){return isFinite(e=+e)&&0!=e?e<0?-a(-e):i(e+u(e*e+1)):e}})},function(e,t,n){"use strict";var r=n(4),o=Math.atanh,i=Math.log;r({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:i((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var r=n(4),o=n(126),i=Math.abs,u=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){return o(e=+e)*u(i(e),1/3)}})},function(e,t,n){"use strict";var r=n(4),o=Math.floor,i=Math.log,u=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-o(i(e+.5)*u):32}})},function(e,t,n){"use strict";var r=n(4),o=n(90),i=Math.cosh,u=Math.abs,a=Math.E;r({target:"Math",stat:!0,forced:!i||i(710)===Infinity},{cosh:function(e){var t=o(u(e)-1)+1;return(t+1/(t*a*a))*(a/2)}})},function(e,t,n){"use strict";var r=n(4),o=n(90);r({target:"Math",stat:!0,forced:o!=Math.expm1},{expm1:o})},function(e,t,n){"use strict";n(4)({target:"Math",stat:!0},{fround:n(294)})},function(e,t,n){"use strict";var r=n(126),o=Math.abs,i=Math.pow,u=i(2,-52),a=i(2,-23),c=i(2,127)*(2-a),s=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=o(e),l=r(e);return ic||n!=n?l*Infinity:l*n}},function(e,t,n){"use strict";var r=n(4),o=Math.hypot,i=Math.abs,u=Math.sqrt;r({target:"Math",stat:!0,forced:!!o&&o(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,r,o=0,a=0,c=arguments.length,s=0;a0?(r=n/s)*r:n;return s===Infinity?Infinity:s*u(o)}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=Math.imul;r({target:"Math",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var n=+e,r=+t,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var r=n(4),o=Math.log,i=Math.LOG10E;r({target:"Math",stat:!0},{log10:function(e){return o(e)*i}})},function(e,t,n){"use strict";n(4)({target:"Math",stat:!0},{log1p:n(171)})},function(e,t,n){"use strict";var r=n(4),o=Math.log,i=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return o(e)/i}})},function(e,t,n){"use strict";n(4)({target:"Math",stat:!0},{sign:n(126)})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(90),u=Math.abs,a=Math.exp,c=Math.E;r({target:"Math",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return u(e=+e)<1?(i(e)-i(-e))/2:(a(e-1)-a(-e-1))*(c/2)}})},function(e,t,n){"use strict";var r=n(4),o=n(90),i=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=o(e=+e),n=o(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(i(e)+i(-e))}})},function(e,t,n){"use strict";n(49)(Math,"Math",!0)},function(e,t,n){"use strict";var r=n(4),o=Math.ceil,i=Math.floor;r({target:"Math",stat:!0},{trunc:function(e){return(e>0?i:o)(e)}})},function(e,t,n){"use strict";var r=n(10),o=n(7),i=n(70),u=n(25),a=n(20),c=n(37),s=n(89),l=n(40),f=n(5),d=n(48),p=n(52).f,h=n(23).f,g=n(16).f,v=n(62).trim,m=o.Number,y=m.prototype,b="Number"==c(d(y)),E=function(e){var t,n,r,o,i,u,a,c,s=l(e,!1);if("string"==typeof s&&s.length>2)if(43===(t=(s=v(s)).charCodeAt(0))||45===t){if(88===(n=s.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(s.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+s}for(u=(i=s.slice(2)).length,a=0;ao)return NaN;return parseInt(i,r)}return+s};if(i("Number",!m(" 0o1")||!m("0b1")||m("+0x1"))){for(var D,x=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof x&&(b?f((function(){y.valueOf.call(n)})):"Number"!=c(n))?s(new m(E(t)),n,x):E(t)},w=r?p(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),C=0;w.length>C;C++)a(m,D=w[C])&&!a(x,D)&&g(x,D,h(m,D));x.prototype=y,y.constructor=x,u(o,"Number",x)}},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{isFinite:n(308)})},function(e,t,n){"use strict";var r=n(7).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{isInteger:n(172)})},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var r=n(4),o=n(172),i=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return o(e)&&i(e)<=9007199254740991}})},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(4)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var r=n(4),o=n(315);r({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},function(e,t,n){"use strict";var r=n(7),o=n(62).trim,i=n(91),u=r.parseFloat,a=1/u(i+"-0")!=-Infinity;e.exports=a?function(e){var t=o(String(e)),n=u(t);return 0===n&&"-"==t.charAt(0)?-0:n}:u},function(e,t,n){"use strict";var r=n(4),o=n(173);r({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},function(e,t,n){"use strict";var r=n(4),o=n(38),i=n(318),u=n(125),a=n(5),c=1..toFixed,s=Math.floor,l=function f(e,t,n){return 0===t?n:t%2==1?f(e,t-1,n*e):f(e*e,t/2,n)};r({target:"Number",proto:!0,forced:c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!a((function(){c.call({})}))},{toFixed:function(e){var t,n,r,a,c=i(this),f=o(e),d=[0,0,0,0,0,0],p="",h="0",g=function(e,t){for(var n=-1,r=t;++n<6;)r+=e*d[n],d[n]=r%1e7,r=s(r/1e7)},v=function(e){for(var t=6,n=0;--t>=0;)n+=d[t],d[t]=s(n/e),n=n%e*1e7},m=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==d[e]){var n=String(d[e]);t=""===t?n:t+u.call("0",7-n.length)+n}return t};if(f<0||f>20)throw RangeError("Incorrect fraction digits");if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(p="-",c=-c),c>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(c*l(2,69,1))-69)<0?c*l(2,-t,1):c/l(2,t,1),n*=4503599627370496,(t=52-t)>0){for(g(0,n),r=f;r>=7;)g(1e7,0),r-=7;for(g(l(10,r,1),0),r=t-1;r>=23;)v(1<<23),r-=23;v(1<0?p+((a=h.length)<=f?"0."+u.call("0",f-a)+h:h.slice(0,a-f)+"."+h.slice(a-f)):p+h}})},function(e,t,n){"use strict";var r=n(37);e.exports=function(e){if("number"!=typeof e&&"Number"!=r(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var r=n(4),o=n(320);r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},function(e,t,n){"use strict";var r=n(10),o=n(5),i=n(71),u=n(114),a=n(81),c=n(18),s=n(66),l=Object.assign,f=Object.defineProperty;e.exports=!l||o((function(){if(r&&1!==l({b:1},l(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||"abcdefghijklmnopqrst"!=i(l({},t)).join("")}))?function(e,t){for(var n=c(e),o=arguments.length,l=1,f=u.f,d=a.f;o>l;)for(var p,h=s(arguments[l++]),g=f?i(h).concat(f(h)):i(h),v=g.length,m=0;v>m;)p=g[m++],r&&!d.call(h,p)||(n[p]=h[p]);return n}:l},function(e,t,n){"use strict";n(4)({target:"Object",stat:!0,sham:!n(10)},{create:n(48)})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(92),u=n(18),a=n(27),c=n(16);o&&r({target:"Object",proto:!0,forced:i},{__defineGetter__:function(e,t){c.f(u(this),e,{get:a(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var r=n(4),o=n(10);r({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperties:n(156)})},function(e,t,n){"use strict";var r=n(4),o=n(10);r({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperty:n(16).f})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(92),u=n(18),a=n(27),c=n(16);o&&r({target:"Object",proto:!0,forced:i},{__defineSetter__:function(e,t){c.f(u(this),e,{set:a(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var r=n(4),o=n(174).entries;r({target:"Object",stat:!0},{entries:function(e){return o(e)}})},function(e,t,n){"use strict";var r=n(4),o=n(76),i=n(5),u=n(8),a=n(56).onFreeze,c=Object.freeze;r({target:"Object",stat:!0,forced:i((function(){c(1)})),sham:!o},{freeze:function(e){return c&&u(e)?c(a(e)):e}})},function(e,t,n){"use strict";var r=n(4),o=n(61),i=n(54);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return o(e,(function(e,n){i(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(31),u=n(23).f,a=n(10),c=o((function(){u(1)}));r({target:"Object",stat:!0,forced:!a||c,sham:!a},{getOwnPropertyDescriptor:function(e,t){return u(i(e),t)}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(112),u=n(31),a=n(23),c=n(54);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(e){for(var t,n,r=u(e),o=a.f,s=i(r),l={},f=0;s.length>f;)(n=o(r,t=s[f++]))!==undefined&&c(l,t,n);return l}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(158).f;r({target:"Object",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(18),u=n(42),a=n(122);r({target:"Object",stat:!0,forced:o((function(){u(1)})),sham:!a},{getPrototypeOf:function(e){return u(i(e))}})},function(e,t,n){"use strict";n(4)({target:"Object",stat:!0},{is:n(175)})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(8),u=Object.isExtensible;r({target:"Object",stat:!0,forced:o((function(){u(1)}))},{isExtensible:function(e){return!!i(e)&&(!u||u(e))}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(8),u=Object.isFrozen;r({target:"Object",stat:!0,forced:o((function(){u(1)}))},{isFrozen:function(e){return!i(e)||!!u&&u(e)}})},function(e,t,n){"use strict";var r=n(4),o=n(5),i=n(8),u=Object.isSealed;r({target:"Object",stat:!0,forced:o((function(){u(1)}))},{isSealed:function(e){return!i(e)||!!u&&u(e)}})},function(e,t,n){"use strict";var r=n(4),o=n(18),i=n(71);r({target:"Object",stat:!0,forced:n(5)((function(){i(1)}))},{keys:function(e){return i(o(e))}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(92),u=n(18),a=n(40),c=n(42),s=n(23).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupGetter__:function(e){var t,n=u(this),r=a(e,!0);do{if(t=s(n,r))return t.get}while(n=c(n))}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(92),u=n(18),a=n(40),c=n(42),s=n(23).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupSetter__:function(e){var t,n=u(this),r=a(e,!0);do{if(t=s(n,r))return t.set}while(n=c(n))}})},function(e,t,n){"use strict";var r=n(4),o=n(8),i=n(56).onFreeze,u=n(76),a=n(5),c=Object.preventExtensions;r({target:"Object",stat:!0,forced:a((function(){c(1)})),sham:!u},{preventExtensions:function(e){return c&&o(e)?c(i(e)):e}})},function(e,t,n){"use strict";var r=n(4),o=n(8),i=n(56).onFreeze,u=n(76),a=n(5),c=Object.seal;r({target:"Object",stat:!0,forced:a((function(){c(1)})),sham:!u},{seal:function(e){return c&&o(e)?c(i(e)):e}})},function(e,t,n){"use strict";n(4)({target:"Object",stat:!0},{setPrototypeOf:n(55)})},function(e,t,n){"use strict";var r=n(120),o=n(25),i=n(344);r||o(Object.prototype,"toString",i,{unsafe:!0})},function(e,t,n){"use strict";var r=n(120),o=n(84);e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},function(e,t,n){"use strict";var r=n(4),o=n(174).values;r({target:"Object",stat:!0},{values:function(e){return o(e)}})},function(e,t,n){"use strict";var r=n(4),o=n(173);r({global:!0,forced:parseInt!=o},{parseInt:o})},function(e,t,n){"use strict";var r,o,i,u,a=n(4),c=n(43),s=n(7),l=n(41),f=n(176),d=n(25),p=n(75),h=n(49),g=n(59),v=n(8),m=n(27),y=n(60),b=n(37),E=n(110),D=n(61),x=n(85),w=n(45),C=n(127).set,_=n(178),A=n(179),k=n(348),S=n(128),F=n(180),N=n(33),T=n(70),B=n(15),I=n(116),O=B("species"),M="Promise",L=N.get,V=N.set,P=N.getterFor(M),R=f,j=s.TypeError,K=s.document,z=s.process,Y=l("fetch"),U=S.f,$=U,H="process"==b(z),W=!!(K&&K.createEvent&&s.dispatchEvent),q=T(M,(function(){if(!(E(R)!==String(R))){if(66===I)return!0;if(!H&&"function"!=typeof PromiseRejectionEvent)return!0}if(c&&!R.prototype["finally"])return!0;if(I>=51&&/native code/.test(R))return!1;var e=R.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[O]=t,!(e.then((function(){}))instanceof t)})),G=q||!x((function(e){R.all(e)["catch"]((function(){}))})),X=function(e){var t;return!(!v(e)||"function"!=typeof(t=e.then))&&t},Z=function(e,t,n){if(!t.notified){t.notified=!0;var r=t.reactions;_((function(){for(var o=t.value,i=1==t.state,u=0;r.length>u;){var a,c,s,l=r[u++],f=i?l.ok:l.fail,d=l.resolve,p=l.reject,h=l.domain;try{f?(i||(2===t.rejection&&te(e,t),t.rejection=1),!0===f?a=o:(h&&h.enter(),a=f(o),h&&(h.exit(),s=!0)),a===l.promise?p(j("Promise-chain cycle")):(c=X(a))?c.call(a,d,p):d(a)):p(o)}catch(g){h&&!s&&h.exit(),p(g)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&J(e,t)}))}},Q=function(e,t,n){var r,o;W?((r=K.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),s.dispatchEvent(r)):r={promise:t,reason:n},(o=s["on"+e])?o(r):"unhandledrejection"===e&&k("Unhandled promise rejection",n)},J=function(e,t){C.call(s,(function(){var n,r=t.value;if(ee(t)&&(n=F((function(){H?z.emit("unhandledRejection",r,e):Q("unhandledrejection",e,r)})),t.rejection=H||ee(t)?2:1,n.error))throw n.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e,t){C.call(s,(function(){H?z.emit("rejectionHandled",e):Q("rejectionhandled",e,t.value)}))},ne=function(e,t,n,r){return function(o){e(t,n,o,r)}},re=function(e,t,n,r){t.done||(t.done=!0,r&&(t=r),t.value=n,t.state=2,Z(e,t,!0))},oe=function ie(e,t,n,r){if(!t.done){t.done=!0,r&&(t=r);try{if(e===n)throw j("Promise can't be resolved itself");var o=X(n);o?_((function(){var r={done:!1};try{o.call(n,ne(ie,e,r,t),ne(re,e,r,t))}catch(i){re(e,r,i,t)}})):(t.value=n,t.state=1,Z(e,t,!1))}catch(i){re(e,{done:!1},i,t)}}};q&&(R=function(e){y(this,R,M),m(e),r.call(this);var t=L(this);try{e(ne(oe,this,t),ne(re,this,t))}catch(n){re(this,t,n)}},(r=function(e){V(this,{type:M,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:undefined})}).prototype=p(R.prototype,{then:function(e,t){var n=P(this),r=U(w(this,R));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=H?z.domain:undefined,n.parent=!0,n.reactions.push(r),0!=n.state&&Z(this,n,!1),r.promise},"catch":function(e){return this.then(undefined,e)}}),o=function(){var e=new r,t=L(e);this.promise=e,this.resolve=ne(oe,e,t),this.reject=ne(re,e,t)},S.f=U=function(e){return e===R||e===i?new o(e):$(e)},c||"function"!=typeof f||(u=f.prototype.then,d(f.prototype,"then",(function(e,t){var n=this;return new R((function(e,t){u.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof Y&&a({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return A(R,Y.apply(s,arguments))}}))),a({global:!0,wrap:!0,forced:q},{Promise:R}),h(R,M,!1,!0),g(M),i=l(M),a({target:M,stat:!0,forced:q},{reject:function(e){var t=U(this);return t.reject.call(undefined,e),t.promise}}),a({target:M,stat:!0,forced:c||q},{resolve:function(e){return A(c&&this===i?R:this,e)}}),a({target:M,stat:!0,forced:G},{all:function(e){var t=this,n=U(t),r=n.resolve,o=n.reject,i=F((function(){var n=m(t.resolve),i=[],u=0,a=1;D(e,(function(e){var c=u++,s=!1;i.push(undefined),a++,n.call(t,e).then((function(e){s||(s=!0,i[c]=e,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise},race:function(e){var t=this,n=U(t),r=n.reject,o=F((function(){var o=m(t.resolve);D(e,(function(e){o.call(t,e).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";var r=n(4),o=n(27),i=n(128),u=n(180),a=n(61);r({target:"Promise",stat:!0},{allSettled:function(e){var t=this,n=i.f(t),r=n.resolve,c=n.reject,s=u((function(){var n=o(t.resolve),i=[],u=0,c=1;a(e,(function(e){var o=u++,a=!1;i.push(undefined),c++,n.call(t,e).then((function(e){a||(a=!0,i[o]={status:"fulfilled",value:e},--c||r(i))}),(function(e){a||(a=!0,i[o]={status:"rejected",reason:e},--c||r(i))}))})),--c||r(i)}));return s.error&&c(s.value),n.promise}})},function(e,t,n){"use strict";var r=n(4),o=n(43),i=n(176),u=n(5),a=n(41),c=n(45),s=n(179),l=n(25);r({target:"Promise",proto:!0,real:!0,forced:!!i&&u((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=c(this,a("Promise")),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then((function(){return n}))}:e,n?function(n){return s(t,e()).then((function(){throw n}))}:e)}}),o||"function"!=typeof i||i.prototype["finally"]||l(i.prototype,"finally",a("Promise").prototype["finally"])},function(e,t,n){"use strict";var r=n(4),o=n(41),i=n(27),u=n(11),a=n(5),c=o("Reflect","apply"),s=Function.apply;r({target:"Reflect",stat:!0,forced:!a((function(){c((function(){}))}))},{apply:function(e,t,n){return i(e),u(n),c?c(e,t,n):s.call(e,t,n)}})},function(e,t,n){"use strict";var r=n(4),o=n(41),i=n(27),u=n(11),a=n(8),c=n(48),s=n(169),l=n(5),f=o("Reflect","construct"),d=l((function(){function e(){}return!(f((function(){}),[],e)instanceof e)})),p=!l((function(){f((function(){}))})),h=d||p;r({target:"Reflect",stat:!0,forced:h,sham:h},{construct:function(e,t){i(e),u(t);var n=arguments.length<3?e:i(arguments[2]);if(p&&!d)return f(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return r.push.apply(r,t),new(s.apply(e,r))}var o=n.prototype,l=c(a(o)?o:Object.prototype),h=Function.apply.call(e,l,t);return a(h)?h:l}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(11),u=n(40),a=n(16);r({target:"Reflect",stat:!0,forced:n(5)((function(){Reflect.defineProperty(a.f({},1,{value:1}),1,{value:2})})),sham:!o},{defineProperty:function(e,t,n){i(e);var r=u(t,!0);i(n);try{return a.f(e,r,n),!0}catch(o){return!1}}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=n(23).f;r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=i(o(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var r=n(4),o=n(8),i=n(11),u=n(20),a=n(23),c=n(42);r({target:"Reflect",stat:!0},{get:function s(e,t){var n,r,l=arguments.length<3?e:arguments[2];return i(e)===l?e[t]:(n=a.f(e,t))?u(n,"value")?n.value:n.get===undefined?undefined:n.get.call(l):o(r=c(e))?s(r,t,l):void 0}})},function(e,t,n){"use strict";var r=n(4),o=n(10),i=n(11),u=n(23);r({target:"Reflect",stat:!0,sham:!o},{getOwnPropertyDescriptor:function(e,t){return u.f(i(e),t)}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=n(42);r({target:"Reflect",stat:!0,sham:!n(122)},{getPrototypeOf:function(e){return i(o(e))}})},function(e,t,n){"use strict";n(4)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=Object.isExtensible;r({target:"Reflect",stat:!0},{isExtensible:function(e){return o(e),!i||i(e)}})},function(e,t,n){"use strict";n(4)({target:"Reflect",stat:!0},{ownKeys:n(112)})},function(e,t,n){"use strict";var r=n(4),o=n(41),i=n(11);r({target:"Reflect",stat:!0,sham:!n(76)},{preventExtensions:function(e){i(e);try{var t=o("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=n(8),u=n(20),a=n(5),c=n(16),s=n(23),l=n(42),f=n(51);r({target:"Reflect",stat:!0,forced:a((function(){var e=c.f({},"a",{configurable:!0});return!1!==Reflect.set(l(e),"a",1,e)}))},{set:function d(e,t,n){var r,a,p=arguments.length<4?e:arguments[3],h=s.f(o(e),t);if(!h){if(i(a=l(e)))return d(a,t,n,p);h=f(0)}if(u(h,"value")){if(!1===h.writable||!i(p))return!1;if(r=s.f(p,t)){if(r.get||r.set||!1===r.writable)return!1;r.value=n,c.f(p,t,r)}else c.f(p,t,f(0,n));return!0}return h.set!==undefined&&(h.set.call(p,n),!0)}})},function(e,t,n){"use strict";var r=n(4),o=n(11),i=n(166),u=n(55);u&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){o(e),i(t);try{return u(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var r=n(10),o=n(7),i=n(70),u=n(89),a=n(16).f,c=n(52).f,s=n(93),l=n(77),f=n(94),d=n(25),p=n(5),h=n(33).set,g=n(59),v=n(15)("match"),m=o.RegExp,y=m.prototype,b=/a/g,E=/a/g,D=new m(b)!==b,x=f.UNSUPPORTED_Y;if(r&&i("RegExp",!D||x||p((function(){return E[v]=!1,m(b)!=b||m(E)==E||"/a/i"!=m(b,"i")})))){for(var w=function(e,t){var n,r=this instanceof w,o=s(e),i=t===undefined;if(!r&&o&&e.constructor===w&&i)return e;D?o&&!i&&(e=e.source):e instanceof w&&(i&&(t=l.call(e)),e=e.source),x&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var a=u(D?new m(e,t):m(e,t),r?this:y,w);return x&&n&&h(a,{sticky:n}),a},C=function(e){e in w||a(w,e,{configurable:!0,get:function(){return m[e]},set:function(t){m[e]=t}})},_=c(m),A=0;_.length>A;)C(_[A++]);y.constructor=w,w.prototype=y,d(o,"RegExp",w)}g("RegExp")},function(e,t,n){"use strict";var r=n(10),o=n(16),i=n(77),u=n(94).UNSUPPORTED_Y;r&&("g"!=/./g.flags||u)&&o.f(RegExp.prototype,"flags",{configurable:!0,get:i})},function(e,t,n){"use strict";var r=n(10),o=n(94).UNSUPPORTED_Y,i=n(16).f,u=n(33).get,a=RegExp.prototype;r&&o&&i(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this===a)return undefined;if(this instanceof RegExp)return!!u(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}})},function(e,t,n){"use strict";n(129);var r,o,i=n(4),u=n(8),a=(r=!1,(o=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&r),c=/./.test;i({target:"RegExp",proto:!0,forced:!a},{test:function(e){if("function"!=typeof this.exec)return c.call(this,e);var t=this.exec(e);if(null!==t&&!u(t))throw new Error("RegExp exec method returned something other than an Object or null");return!!t}})},function(e,t,n){"use strict";var r=n(25),o=n(11),i=n(5),u=n(77),a=RegExp.prototype,c=a.toString,s=i((function(){return"/a/b"!=c.call({source:"a",flags:"b"})})),l="toString"!=c.name;(s||l)&&r(RegExp.prototype,"toString",(function(){var e=o(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in a)?u.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var r=n(88),o=n(170);e.exports=r("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),o)},function(e,t,n){"use strict";var r=n(4),o=n(130).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return o(this,e)}})},function(e,t,n){"use strict";var r,o=n(4),i=n(23).f,u=n(12),a=n(131),c=n(24),s=n(132),l=n(43),f="".endsWith,d=Math.min,p=s("endsWith");o({target:"String",proto:!0,forced:!!(l||p||(r=i(String.prototype,"endsWith"),!r||r.writable))&&!p},{endsWith:function(e){var t=String(c(this));a(e);var n=arguments.length>1?arguments[1]:undefined,r=u(t.length),o=n===undefined?r:d(u(n),r),i=String(e);return f?f.call(t,i,o):t.slice(o-i.length,o)===i}})},function(e,t,n){"use strict";var r=n(4),o=n(47),i=String.fromCharCode,u=String.fromCodePoint;r({target:"String",stat:!0,forced:!!u&&1!=u.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,u=0;r>u;){if(t=+arguments[u++],o(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?i(t):i(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var r=n(4),o=n(131),i=n(24);r({target:"String",proto:!0,forced:!n(132)("includes")},{includes:function(e){return!!~String(i(this)).indexOf(o(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(130).charAt,o=n(33),i=n(121),u=o.set,a=o.getterFor("String Iterator");i(String,"String",(function(e){u(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=a(this),n=t.string,o=t.index;return o>=n.length?{value:undefined,done:!0}:(e=r(n,o),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var r=n(96),o=n(11),i=n(12),u=n(24),a=n(97),c=n(98);r("match",1,(function(e,t,n){return[function(t){var n=u(this),r=t==undefined?undefined:t[e];return r!==undefined?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var u=o(e),s=String(this);if(!u.global)return c(u,s);var l=u.unicode;u.lastIndex=0;for(var f,d=[],p=0;null!==(f=c(u,s));){var h=String(f[0]);d[p]=h,""===h&&(u.lastIndex=a(s,i(u.lastIndex),l)),p++}return 0===p?null:d}]}))},function(e,t,n){"use strict";var r=n(4),o=n(164),i=n(24),u=n(12),a=n(27),c=n(11),s=n(37),l=n(93),f=n(77),d=n(32),p=n(5),h=n(15),g=n(45),v=n(97),m=n(33),y=n(43),b=h("matchAll"),E=m.set,D=m.getterFor("RegExp String Iterator"),x=RegExp.prototype,w=x.exec,C="".matchAll,_=!!C&&!p((function(){"a".matchAll(/./)})),A=o((function(e,t,n,r){E(this,{type:"RegExp String Iterator",regexp:e,string:t,global:n,unicode:r,done:!1})}),"RegExp String",(function(){var e=D(this);if(e.done)return{value:undefined,done:!0};var t=e.regexp,n=e.string,r=function(e,t){var n,r=e.exec;if("function"==typeof r){if("object"!=typeof(n=r.call(e,t)))throw TypeError("Incorrect exec result");return n}return w.call(e,t)}(t,n);return null===r?{value:undefined,done:e.done=!0}:e.global?(""==String(r[0])&&(t.lastIndex=v(n,u(t.lastIndex),e.unicode)),{value:r,done:!1}):(e.done=!0,{value:r,done:!1})})),k=function(e){var t,n,r,o,i,a,s=c(this),l=String(e);return t=g(s,RegExp),(n=s.flags)===undefined&&s instanceof RegExp&&!("flags"in x)&&(n=f.call(s)),r=n===undefined?"":String(n),o=new t(t===RegExp?s.source:s,r),i=!!~r.indexOf("g"),a=!!~r.indexOf("u"),o.lastIndex=u(s.lastIndex),new A(o,l,i,a)};r({target:"String",proto:!0,forced:_},{matchAll:function(e){var t,n,r,o=i(this);if(null!=e){if(l(e)&&!~String(i("flags"in x?e.flags:f.call(e))).indexOf("g"))throw TypeError("`.matchAll` does not allow non-global regexes");if(_)return C.apply(o,arguments);if((n=e[b])===undefined&&y&&"RegExp"==s(e)&&(n=k),null!=n)return a(n).call(e,o)}else if(_)return C.apply(o,arguments);return t=String(o),r=new RegExp(e,"g"),y?k.call(r,t):r[b](t)}}),y||b in x||d(x,b,k)},function(e,t,n){"use strict";var r=n(4),o=n(124).end;r({target:"String",proto:!0,forced:n(181)},{padEnd:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(124).start;r({target:"String",proto:!0,forced:n(181)},{padStart:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(4),o=n(31),i=n(12);r({target:"String",stat:!0},{raw:function(e){for(var t=o(e.raw),n=i(t.length),r=arguments.length,u=[],a=0;n>a;)u.push(String(t[a++])),a]*>)/g,g=/\$([$&'`]|\d\d?)/g;r("replace",2,(function(e,t,n,r){var v=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,m=r.REPLACE_KEEPS_$0,y=v?"$":"$0";return[function(n,r){var o=c(this),i=n==undefined?undefined:n[e];return i!==undefined?i.call(n,o,r):t.call(String(o),n,r)},function(e,r){if(!v&&m||"string"==typeof r&&-1===r.indexOf(y)){var i=n(t,e,this,r);if(i.done)return i.value}var c=o(e),p=String(this),h="function"==typeof r;h||(r=String(r));var g=c.global;if(g){var E=c.unicode;c.lastIndex=0}for(var D=[];;){var x=l(c,p);if(null===x)break;if(D.push(x),!g)break;""===String(x[0])&&(c.lastIndex=s(p,u(c.lastIndex),E))}for(var w,C="",_=0,A=0;A=_&&(C+=p.slice(_,S)+I,_=S+k.length)}return C+p.slice(_)}];function b(e,n,r,o,u,a){var c=r+e.length,s=o.length,l=g;return u!==undefined&&(u=i(u),l=h),t.call(a,l,(function(t,i){var a;switch(i.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(c);case"<":a=u[i.slice(1,-1)];break;default:var l=+i;if(0===l)return t;if(l>s){var f=p(l/10);return 0===f?t:f<=s?o[f-1]===undefined?i.charAt(1):o[f-1]+i.charAt(1):t}a=o[l-1]}return a===undefined?"":a}))}}))},function(e,t,n){"use strict";var r=n(96),o=n(11),i=n(24),u=n(175),a=n(98);r("search",1,(function(e,t,n){return[function(t){var n=i(this),r=t==undefined?undefined:t[e];return r!==undefined?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=o(e),c=String(this),s=i.lastIndex;u(s,0)||(i.lastIndex=0);var l=a(i,c);return u(i.lastIndex,s)||(i.lastIndex=s),null===l?-1:l.index}]}))},function(e,t,n){"use strict";var r=n(96),o=n(93),i=n(11),u=n(24),a=n(45),c=n(97),s=n(12),l=n(98),f=n(95),d=n(5),p=[].push,h=Math.min,g=!d((function(){return!RegExp(4294967295,"y")}));r("split",2,(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=String(u(this)),i=n===undefined?4294967295:n>>>0;if(0===i)return[];if(e===undefined)return[r];if(!o(e))return t.call(r,e,i);for(var a,c,s,l=[],d=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),h=0,g=new RegExp(e.source,d+"g");(a=f.call(g,r))&&!((c=g.lastIndex)>h&&(l.push(r.slice(h,a.index)),a.length>1&&a.index=i));)g.lastIndex===a.index&&g.lastIndex++;return h===r.length?!s&&g.test("")||l.push(""):l.push(r.slice(h)),l.length>i?l.slice(0,i):l}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var o=u(this),i=t==undefined?undefined:t[e];return i!==undefined?i.call(t,o,n):r.call(String(o),t,n)},function(e,o){var u=n(r,e,this,o,r!==t);if(u.done)return u.value;var f=i(e),d=String(this),p=a(f,RegExp),v=f.unicode,m=(f.ignoreCase?"i":"")+(f.multiline?"m":"")+(f.unicode?"u":"")+(g?"y":"g"),y=new p(g?f:"^(?:"+f.source+")",m),b=o===undefined?4294967295:o>>>0;if(0===b)return[];if(0===d.length)return null===l(y,d)?[d]:[];for(var E=0,D=0,x=[];D1?arguments[1]:undefined,t.length)),r=String(e);return f?f.call(t,r,n):t.slice(n,n+r.length)===r}})},function(e,t,n){"use strict";var r=n(4),o=n(62).trim;r({target:"String",proto:!0,forced:n(133)("trim")},{trim:function(){return o(this)}})},function(e,t,n){"use strict";var r=n(4),o=n(62).end,i=n(133)("trimEnd"),u=i?function(){return o(this)}:"".trimEnd;r({target:"String",proto:!0,forced:i},{trimEnd:u,trimRight:u})},function(e,t,n){"use strict";var r=n(4),o=n(62).start,i=n(133)("trimStart"),u=i?function(){return o(this)}:"".trimStart;r({target:"String",proto:!0,forced:i},{trimStart:u,trimLeft:u})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("anchor")},{anchor:function(e){return o(this,"a","name",e)}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("big")},{big:function(){return o(this,"big","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("blink")},{blink:function(){return o(this,"blink","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("bold")},{bold:function(){return o(this,"b","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("fixed")},{fixed:function(){return o(this,"tt","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("fontcolor")},{fontcolor:function(e){return o(this,"font","color",e)}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("fontsize")},{fontsize:function(e){return o(this,"font","size",e)}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("italics")},{italics:function(){return o(this,"i","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("link")},{link:function(e){return o(this,"a","href",e)}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("small")},{small:function(){return o(this,"small","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("strike")},{strike:function(){return o(this,"strike","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("sub")},{sub:function(){return o(this,"sub","","")}})},function(e,t,n){"use strict";var r=n(4),o=n(34);r({target:"String",proto:!0,forced:n(35)("sup")},{sup:function(){return o(this,"sup","","")}})},function(e,t,n){"use strict";n(46)("Float32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";var r=n(38);e.exports=function(e){var t=r(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(46)("Float64",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Int8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Int16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Int32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}),!0)},function(e,t,n){"use strict";n(46)("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(46)("Uint32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";var r=n(13),o=n(160),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("copyWithin",(function(e,t){return o.call(i(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).every,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(117),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("fill",(function(e){return o.apply(i(this),arguments)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).filter,i=n(45),u=r.aTypedArray,a=r.aTypedArrayConstructor;(0,r.exportTypedArrayMethod)("filter",(function(e){for(var t=o(u(this),e,arguments.length>1?arguments[1]:undefined),n=i(this,this.constructor),r=0,c=t.length,s=new(a(n))(c);c>r;)s[r]=t[r++];return s}))},function(e,t,n){"use strict";var r=n(13),o=n(21).find,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).findIndex,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).forEach,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",(function(e){o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(134);(0,n(13).exportTypedArrayStaticMethod)("from",n(183),r)},function(e,t,n){"use strict";var r=n(13),o=n(69).includes,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(69).indexOf,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=n(13),i=n(163),u=n(15)("iterator"),a=r.Uint8Array,c=i.values,s=i.keys,l=i.entries,f=o.aTypedArray,d=o.exportTypedArrayMethod,p=a&&a.prototype[u],h=!!p&&("values"==p.name||p.name==undefined),g=function(){return c.call(f(this))};d("entries",(function(){return l.call(f(this))})),d("keys",(function(){return s.call(f(this))})),d("values",g,!h),d(u,g,!h)},function(e,t,n){"use strict";var r=n(13),o=r.aTypedArray,i=r.exportTypedArrayMethod,u=[].join;i("join",(function(e){return u.apply(o(this),arguments)}))},function(e,t,n){"use strict";var r=n(13),o=n(167),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",(function(e){return o.apply(i(this),arguments)}))},function(e,t,n){"use strict";var r=n(13),o=n(21).map,i=n(45),u=r.aTypedArray,a=r.aTypedArrayConstructor;(0,r.exportTypedArrayMethod)("map",(function(e){return o(u(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(a(i(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var r=n(13),o=n(134),i=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(i(this))(t);t>e;)n[e]=arguments[e++];return n}),o)},function(e,t,n){"use strict";var r=n(13),o=n(86).left,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",(function(e){return o(i(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=n(86).right,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",(function(e){return o(i(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=r.aTypedArray,i=r.exportTypedArrayMethod,u=Math.floor;i("reverse",(function(){for(var e,t=o(this).length,n=u(t/2),r=0;r1?arguments[1]:undefined,1),n=this.length,r=u(e),a=o(r.length),s=0;if(a+t>n)throw RangeError("Wrong length");for(;si;)l[i]=n[i++];return l}),i((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var r=n(13),o=n(21).some,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(13),o=r.aTypedArray,i=r.exportTypedArrayMethod,u=[].sort;i("sort",(function(e){return u.call(o(this),e)}))},function(e,t,n){"use strict";var r=n(13),o=n(12),i=n(47),u=n(45),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("subarray",(function(e,t){var n=a(this),r=n.length,c=i(e,r);return new(u(n,n.constructor))(n.buffer,n.byteOffset+c*n.BYTES_PER_ELEMENT,o((t===undefined?r:i(t,r))-c))}))},function(e,t,n){"use strict";var r=n(7),o=n(13),i=n(5),u=r.Int8Array,a=o.aTypedArray,c=o.exportTypedArrayMethod,s=[].toLocaleString,l=[].slice,f=!!u&&i((function(){s.call(new u(1))}));c("toLocaleString",(function(){return s.apply(f?l.call(a(this)):a(this),arguments)}),i((function(){return[1,2].toLocaleString()!=new u([1,2]).toLocaleString()}))||!i((function(){u.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var r=n(13).exportTypedArrayMethod,o=n(5),i=n(7).Uint8Array,u=i&&i.prototype||{},a=[].toString,c=[].join;o((function(){a.call({})}))&&(a=function(){return c.call(this)});var s=u.toString!=a;r("toString",a,s)},function(e,t,n){"use strict";var r,o=n(7),i=n(75),u=n(56),a=n(88),c=n(184),s=n(8),l=n(33).enforce,f=n(151),d=!o.ActiveXObject&&"ActiveXObject"in o,p=Object.isExtensible,h=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},g=e.exports=a("WeakMap",h,c);if(f&&d){r=c.getConstructor(h,"WeakMap",!0),u.REQUIRED=!0;var v=g.prototype,m=v["delete"],y=v.has,b=v.get,E=v.set;i(v,{"delete":function(e){if(s(e)&&!p(e)){var t=l(this);return t.frozen||(t.frozen=new r),m.call(this,e)||t.frozen["delete"](e)}return m.call(this,e)},has:function(e){if(s(e)&&!p(e)){var t=l(this);return t.frozen||(t.frozen=new r),y.call(this,e)||t.frozen.has(e)}return y.call(this,e)},get:function(e){if(s(e)&&!p(e)){var t=l(this);return t.frozen||(t.frozen=new r),y.call(this,e)?b.call(this,e):t.frozen.get(e)}return b.call(this,e)},set:function(e,t){if(s(e)&&!p(e)){var n=l(this);n.frozen||(n.frozen=new r),y.call(this,e)?E.call(this,e,t):n.frozen.set(e,t)}else E.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(88)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(184))},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(127);r({global:!0,bind:!0,enumerable:!0,forced:!o.setImmediate||!o.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(178),u=n(37),a=o.process,c="process"==u(a);r({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=c&&a.domain;i(t?t.bind(e):e)}})},function(e,t,n){"use strict";var r=n(4),o=n(7),i=n(83),u=[].slice,a=function(e){return function(t,n){var r=arguments.length>2,o=r?u.call(arguments,2):undefined;return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,o)}:t,n)}};r({global:!0,bind:!0,forced:/MSIE .\./.test(i)},{setTimeout:a(o.setTimeout),setInterval:a(o.setInterval)})},function(e,t,n){"use strict";var r=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",u=r.toStringTag||"@@toStringTag";function a(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{a({},"")}catch(A){a=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof f?t:f,i=Object.create(o.prototype),u=new w(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return _()}for(n.method=o,n.arg=i;;){var u=n.delegate;if(u){var a=E(u,n);if(a){if(a===l)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=s(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,u),i}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(A){return{type:"throw",arg:A}}}e.wrap=c;var l={};function f(){}function d(){}function p(){}var h={};h[o]=function(){return this};var g=Object.getPrototypeOf,v=g&&g(g(C([])));v&&v!==t&&n.call(v,o)&&(h=v);var m=p.prototype=f.prototype=Object.create(h);function y(e){["next","throw","return"].forEach((function(t){a(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var r;this._invoke=function(o,i){function u(){return new t((function(r,u){!function a(r,o,i,u){var c=s(e[r],e,o);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){a("next",e,i,u)}),(function(e){a("throw",e,i,u)})):t.resolve(f).then((function(e){l.value=e,i(l)}),(function(e){return a("throw",e,i,u)}))}u(c.arg)}(o,i,r,u)}))}return r=r?r.then(u,u):u()}}function E(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator["return"]&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method))return l;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var r=s(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,l;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,l):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,l)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function w(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function C(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--o){var i=this.tryEntries[o],u=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(a&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),l}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;x(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:C(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}(e.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";!function(t,n){var r,o,i=t.html5||{},u=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,a=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,c=0,s={};function l(){var e=h.elements;return"string"==typeof e?e.split(" "):e}function f(e){var t=s[e._html5shiv];return t||(t={},c++,e._html5shiv=c,s[c]=t),t}function d(e,t,r){return t||(t=n),o?t.createElement(e):(r||(r=f(t)),!(i=r.cache[e]?r.cache[e].cloneNode():a.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e)).canHaveChildren||u.test(e)||i.tagUrn?i:r.frag.appendChild(i));var i}function p(e){e||(e=n);var t=f(e);return!h.shivCSS||r||t.hasCSS||(t.hasCSS=!!function(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x",r.insertBefore(n.lastChild,r.firstChild)}(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),o||function(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return h.shivMethods?d(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/[\w\-:]+/g,(function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'}))+");return n}")(h,t.frag)}(e,t),e}!function(){try{var e=n.createElement("a");e.innerHTML="",r="hidden"in e,o=1==e.childNodes.length||function(){n.createElement("a");var e=n.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(t){r=!0,o=!0}}();var h={elements:i.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:"3.7.3",shivCSS:!1!==i.shivCSS,supportsUnknownElements:o,shivMethods:!1!==i.shivMethods,type:"default",shivDocument:p,createElement:d,createDocumentFragment:function(e,t){if(e||(e=n),o)return e.createDocumentFragment();for(var r=(t=t||f(e)).frag.cloneNode(),i=0,u=l(),a=u.length;i3?a(u):null,b=String(u.key),E=String(u.char),D=u.location,x=u.keyCode||(u.keyCode=b)&&b.charCodeAt(0)||0,w=u.charCode||(u.charCode=E)&&E.charCodeAt(0)||0,C=u.bubbles,_=u.cancelable,A=u.repeat,k=u.locale,S=u.view||e;if(u.which||(u.which=u.keyCode),"initKeyEvent"in d)d.initKeyEvent(t,C,_,S,p,g,h,v,x,w);else if(0>>0),t=Element.prototype,n=t.querySelector,r=t.querySelectorAll;function o(t,n,r){t.setAttribute(e,null);var o=n.call(t,String(r).replace(/(^|,\s*)(:scope([ >]|$))/g,(function(t,n,r,o){return n+"["+e+"]"+(o||" ")})));return t.removeAttribute(e),o}t.querySelector=function(e){return o(this,n,e)},t.querySelectorAll=function(e){return o(this,r,e)}}()}}(window),function(e){var t=e.WeakMap||function(){var e,t=0,n=!1,r=!1;function o(t,o,i){r=i,n=!1,e=undefined,t.dispatchEvent(o)}function i(e){this.value=e}function a(){t++,this.__ce__=new u("@DOMMap:"+t+Math.random())}return i.prototype.handleEvent=function(t){n=!0,r?t.currentTarget.removeEventListener(t.type,this,!1):e=this.value},a.prototype={constructor:a,"delete":function(e){return o(e,this.__ce__,!0),n},get:function(t){o(t,this.__ce__,!1);var n=e;return e=undefined,n},has:function(e){return o(e,this.__ce__,!1),n},set:function(e,t){return o(e,this.__ce__,!0),e.addEventListener(this.__ce__.type,new i(t),!1),this}},a}();function n(){}function r(e,t,n){function o(e){o.once&&(e.currentTarget.removeEventListener(e.type,t,o),o.removed=!0),o.passive&&(e.preventDefault=r.preventDefault),"function"==typeof o.callback?o.callback.call(this,e):o.callback&&o.callback.handleEvent(e),o.passive&&delete e.preventDefault}return o.type=e,o.callback=t,o.capture=!!n.capture,o.passive=!!n.passive,o.once=!!n.once,o.removed=!1,o}n.prototype=(Object.create||Object)(null),r.preventDefault=function(){};var o,i,u=e.CustomEvent,a=e.dispatchEvent,c=e.addEventListener,s=e.removeEventListener,l=0,f=function(){l++},d=[].indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},p=function(e){return"".concat(e.capture?"1":"0",e.passive?"1":"0",e.once?"1":"0")};try{c("_",f,{once:!0}),a(new u("_")),a(new u("_")),s("_",f,{once:!0})}catch(h){}1!==l&&(i=new t,o=function(e){if(e){var t=e.prototype;t.addEventListener=function(e){return function(t,o,u){if(u&&"boolean"!=typeof u){var a,c,s,l=i.get(this),f=p(u);l||i.set(this,l=new n),t in l||(l[t]={handler:[],wrap:[]}),c=l[t],(a=d.call(c.handler,o))<0?(a=c.handler.push(o)-1,c.wrap[a]=s=new n):s=c.wrap[a],f in s||(s[f]=r(t,o,u),e.call(this,t,s[f],s[f].capture))}else e.call(this,t,o,u)}}(t.addEventListener),t.removeEventListener=function(e){return function(t,n,r){if(r&&"boolean"!=typeof r){var o,u,a,c,s=i.get(this);if(s&&t in s&&(a=s[t],-1<(u=d.call(a.handler,n))&&(o=p(r))in(c=a.wrap[u]))){for(o in e.call(this,t,c[o],c[o].capture),delete c[o],c)return;a.handler.splice(u,1),a.wrap.splice(u,1),0===a.handler.length&&delete s[t]}}else e.call(this,t,n,r)}}(t.removeEventListener)}},e.EventTarget?o(EventTarget):(o(e.Text),o(e.Element||e.HTMLElement),o(e.HTMLDocument),o(e.Window||{prototype:e}),o(e.XMLHttpRequest)))}(window)},function(e,t,n){"use strict";!function(e){if("undefined"!=typeof e.setAttribute){var t=function(e){return e.replace(/-[a-z]/g,(function(e){return e[1].toUpperCase()}))};e.setProperty=function(e,n){var r=t(e);if(!n)return this.removeAttribute(r);var o=String(n);return this.setAttribute(r,o)},e.getPropertyValue=function(e){var n=t(e);return this.getAttribute(n)||null},e.removeProperty=function(e){var n=t(e),r=this.getAttribute(n);return this.removeAttribute(n),r}}}(CSSStyleDeclaration.prototype)},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},,function(e,t,n){"use strict";t.__esModule=!0,t._CI=Se,t._HI=V,t._M=Fe,t._MCCC=Ie,t._ME=Te,t._MFCC=Oe,t._MP=Ae,t._MR=ye,t.__render=Re,t.createComponentVNode=function(e,t,n,r,o){var u=new F(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),r,function(e,t,n){var r=(32768&e?t.render:t).defaultProps;if(i(r))return n;if(i(n))return l(r,null);return k(n,r)}(e,t,n),function(e,t,n){if(4&e)return n;var r=(32768&e?t.render:t).defaultHooks;if(i(r))return n;if(i(n))return r;return k(n,r)}(e,t,o),t);C.createVNode&&C.createVNode(u);return u},t.createFragment=B,t.createPortal=function(e,t){var n=V(e);return N(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,r,o){e||(e=t),je(n,e,r,o)}},t.createTextVNode=T,t.createVNode=N,t.directClone=I,t.findDOMfromVNode=b,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case"$F":return 8192;default:return 1}},t.linkEvent=function(e,t){if(a(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&i(e.children)&&L(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?l(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=je,t.rerender=He,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var r=Array.isArray;function o(e){var t=typeof e;return"string"===t||"number"===t}function i(e){return null==e}function u(e){return null===e||!1===e||!0===e||void 0===e}function a(e){return"function"==typeof e}function c(e){return"string"==typeof e}function s(e){return null===e}function l(e,t){var n={};if(e)for(var r in e)n[r]=e[r];if(t)for(var o in t)n[o]=t[o];return n}function f(e){return!s(e)&&"object"==typeof e}var d={};t.EMPTY_OBJ=d;function p(e){return e.substr(2).toLowerCase()}function h(e,t){e.appendChild(t)}function g(e,t,n){s(n)?h(e,t):e.insertBefore(t,n)}function v(e,t){e.removeChild(t)}function m(e){for(var t=0;t0,h=s(d),g=c(d)&&"$"===d[0];p||h||g?(n=n||t.slice(0,l),(p||g)&&(f=I(f)),(h||g)&&(f.key="$"+l),n.push(f)):n&&n.push(f),f.flags|=65536}}i=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=I(t)),i=2;return e.children=n,e.childFlags=i,e}function V(e){return u(e)||o(e)?T(e,null):r(e)?B(e,0,null):16384&e.flags?I(e):e}var P="http://www.w3.org/1999/xlink",R="http://www.w3.org/XML/1998/namespace",j={"xlink:actuate":P,"xlink:arcrole":P,"xlink:href":P,"xlink:role":P,"xlink:show":P,"xlink:title":P,"xlink:type":P,"xml:base":R,"xml:lang":R,"xml:space":R};function K(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var z=K(0),Y=K(null),U=K(!0);function $(e,t){var n=t.$EV;return n||(n=t.$EV=K(null)),n[e]||1==++z[e]&&(Y[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?W(t,!0,e,Z(t)):t.stopPropagation()}}(e):function(e){return function(t){W(t,!1,e,Z(t))}}(e);return document.addEventListener(p(e),t),t}(e)),n}function H(e,t){var n=t.$EV;n&&n[e]&&(0==--z[e]&&(document.removeEventListener(p(e),Y[e]),Y[e]=null),n[e]=null)}function W(e,t,n,r){var o=function(e){return a(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&o.disabled)return;var i=o.$EV;if(i){var u=i[n];if(u&&(r.dom=o,u.event?u.event(u.data,e):u(e),e.cancelBubble))return}o=o.parentNode}while(!s(o))}function q(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function G(){return this.defaultPrevented}function X(){return this.cancelBubble}function Z(e){var t={dom:document};return e.isDefaultPrevented=G,e.isPropagationStopped=X,e.stopPropagation=q,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function Q(e,t,n){if(e[t]){var r=e[t];r.event?r.event(r.data,n):r(n)}else{var o=t.toLowerCase();e[o]&&e[o](n)}}function J(e,t){var n=function(n){var r=this.$V;if(r){var o=r.props||d,i=r.dom;if(c(e))Q(o,e,n);else for(var u=0;u-1&&t.options[u]&&(a=t.options[u].value),n&&i(a)&&(a=e.defaultValue),ue(r,a)}}var se,le,fe=J("onInput",pe),de=J("onChange");function pe(e,t,n){var r=e.value,o=t.value;if(i(r)){if(n){var u=e.defaultValue;i(u)||u===o||(t.defaultValue=u,t.value=u)}}else o!==r&&(t.defaultValue=r,t.value=r)}function he(e,t,n,r,o,i){64&e?ie(r,n):256&e?ce(r,n,o,t):128&e&&pe(r,n,o),i&&(n.$V=t)}function ge(e,t,n){64&e?function(e,t){te(t.type)?(ee(e,"change",re),ee(e,"click",oe)):ee(e,"input",ne)}(t,n):256&e?function(e){ee(e,"change",ae)}(t):128&e&&function(e,t){ee(e,"input",fe),t.onChange&&ee(e,"change",de)}(t,n)}function ve(e){return e.type&&te(e.type)?!i(e.checked):!i(e.value)}function me(e){e&&!S(e,null)&&e.current&&(e.current=null)}function ye(e,t,n){e&&(a(e)||void 0!==e.current)&&n.push((function(){S(e,t)||void 0===e.current||(e.current=t)}))}function be(e,t){Ee(e),E(e,t)}function Ee(e){var t,n=e.flags,r=e.children;if(481&n){t=e.ref;var o=e.props;me(t);var u=e.childFlags;if(!s(o))for(var c=Object.keys(o),l=0,f=c.length;l0;for(var a in u&&(i=ve(n))&&ge(t,r,n),n)_e(a,null,n[a],r,o,i,null);u&&he(t,e,r,n,!0,i)}function ke(e,t,n){var r=V(e.render(t,e.state,n)),o=n;return a(e.getChildContext)&&(o=l(n,e.getChildContext())),e.$CX=o,r}function Se(e,t,n,r,o,i){var u=new t(n,r),c=u.$N=Boolean(t.getDerivedStateFromProps||u.getSnapshotBeforeUpdate);if(u.$SVG=o,u.$L=i,e.children=u,u.$BS=!1,u.context=r,u.props===d&&(u.props=n),c)u.state=x(u,n,u.state);else if(a(u.componentWillMount)){u.$BR=!0,u.componentWillMount();var l=u.$PS;if(!s(l)){var f=u.state;if(s(f))u.state=l;else for(var p in l)f[p]=l[p];u.$PS=null}u.$BR=!1}return u.$LI=ke(u,n,r),u}function Fe(e,t,n,r,o,i){var u=e.flags|=16384;481&u?Te(e,t,n,r,o,i):4&u?function(e,t,n,r,o,i){var u=Se(e,e.type,e.props||d,n,r,i);Fe(u.$LI,t,u.$CX,r,o,i),Ie(e.ref,u,i)}(e,t,n,r,o,i):8&u?(!function(e,t,n,r,o,i){Fe(e.children=V(function(e,t){return 32768&e.flags?e.type.render(e.props||d,e.ref,t):e.type(e.props||d,t)}(e,n)),t,n,r,o,i)}(e,t,n,r,o,i),Oe(e,i)):512&u||16&u?Ne(e,t,o):8192&u?function(e,t,n,r,o,i){var u=e.children,a=e.childFlags;12&a&&0===u.length&&(a=e.childFlags=2,u=e.children=O());2===a?Fe(u,n,o,r,o,i):Be(u,n,t,r,o,i)}(e,n,t,r,o,i):1024&u&&function(e,t,n,r,o){Fe(e.children,e.ref,t,!1,null,o);var i=O();Ne(i,n,r),e.dom=i.dom}(e,n,t,o,i)}function Ne(e,t,n){var r=e.dom=document.createTextNode(e.children);s(t)||g(t,r,n)}function Te(e,t,n,r,o,u){var a=e.flags,c=e.props,l=e.className,f=e.children,d=e.childFlags,p=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,r=r||(32&a)>0);if(i(l)||""===l||(r?p.setAttribute("class",l):p.className=l),16===d)_(p,f);else if(1!==d){var h=r&&"foreignObject"!==e.type;2===d?(16384&f.flags&&(e.children=f=I(f)),Fe(f,p,n,h,null,u)):8!==d&&4!==d||Be(f,p,n,h,null,u)}s(t)||g(t,p,o),s(c)||Ae(e,a,c,p,r),ye(e.ref,p,u)}function Be(e,t,n,r,o,i){for(var u=0;u0,s!==l){var h=s||d;if((a=l||d)!==d)for(var g in(f=(448&o)>0)&&(p=ve(a)),a){var v=h[g],m=a[g];v!==m&&_e(g,v,m,c,r,p,e)}if(h!==d)for(var y in h)i(a[y])&&!i(h[y])&&_e(y,h[y],null,c,r,p,e)}var b=t.children,E=t.className;e.className!==E&&(i(E)?c.removeAttribute("class"):r?c.setAttribute("class",E):c.className=E);4096&o?function(e,t){e.textContent!==t&&(e.textContent=t)}(c,b):Le(e.childFlags,t.childFlags,e.children,b,c,n,r&&"foreignObject"!==t.type,null,e,u);f&&he(o,t,c,a,!1,p);var D=t.ref,x=e.ref;x!==D&&(me(x),ye(D,c,u))}(e,t,r,o,p,f):4&p?function(e,t,n,r,o,i,u){var c=t.children=e.children;if(s(c))return;c.$L=u;var f=t.props||d,p=t.ref,h=e.ref,g=c.state;if(!c.$N){if(a(c.componentWillReceiveProps)){if(c.$BR=!0,c.componentWillReceiveProps(f,r),c.$UN)return;c.$BR=!1}s(c.$PS)||(g=l(g,c.$PS),c.$PS=null)}Ve(c,g,f,n,r,o,!1,i,u),h!==p&&(me(h),ye(p,c,u))}(e,t,n,r,o,c,f):8&p?function(e,t,n,r,o,u,c){var s=!0,l=t.props||d,f=t.ref,p=e.props,h=!i(f),g=e.children;h&&a(f.onComponentShouldUpdate)&&(s=f.onComponentShouldUpdate(p,l));if(!1!==s){h&&a(f.onComponentWillUpdate)&&f.onComponentWillUpdate(p,l);var v=t.type,m=V(32768&t.flags?v.render(l,f,r):v(l,r));Me(g,m,n,r,o,u,c),t.children=m,h&&a(f.onComponentDidUpdate)&&f.onComponentDidUpdate(p,l)}else t.children=g}(e,t,n,r,o,c,f):16&p?function(e,t){var n=t.children,r=t.dom=e.dom;n!==e.children&&(r.nodeValue=n)}(e,t):512&p?t.dom=e.dom:8192&p?function(e,t,n,r,o,i){var u=e.children,a=t.children,c=e.childFlags,s=t.childFlags,l=null;12&s&&0===a.length&&(s=t.childFlags=2,a=t.children=O());var f=0!=(2&s);if(12&c){var d=u.length;(8&c&&8&s||f||!f&&a.length>d)&&(l=b(u[d-1],!1).nextSibling)}Le(c,s,u,a,n,r,o,l,e,i)}(e,t,n,r,o,f):function(e,t,n,r){var o=e.ref,i=t.ref,a=t.children;if(Le(e.childFlags,t.childFlags,e.children,a,o,n,!1,null,e,r),t.dom=e.dom,o!==i&&!u(a)){var c=a.dom;v(o,c),h(i,c)}}(e,t,r,f)}function Le(e,t,n,r,o,i,u,a,c,s){switch(e){case 2:switch(t){case 2:Me(n,r,o,i,u,a,s);break;case 1:be(n,o);break;case 16:Ee(n),_(o,r);break;default:!function(e,t,n,r,o,i){Ee(e),Be(t,n,r,o,b(e,!0),i),E(e,n)}(n,r,o,i,u,s)}break;case 1:switch(t){case 2:Fe(r,o,i,u,a,s);break;case 1:break;case 16:_(o,r);break;default:Be(r,o,i,u,a,s)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:_(n,t))}(n,r,o);break;case 2:xe(o),Fe(r,o,i,u,a,s);break;case 1:xe(o);break;default:xe(o),Be(r,o,i,u,a,s)}break;default:switch(t){case 16:De(n),_(o,r);break;case 2:we(o,c,n),Fe(r,o,i,u,a,s);break;case 1:we(o,c,n);break;default:var l=0|n.length,f=0|r.length;0===l?f>0&&Be(r,o,i,u,a,s):0===f?we(o,c,n):8===t&&8===e?function(e,t,n,r,o,i,u,a,c,s){var l,f,d=i-1,p=u-1,h=0,g=e[h],v=t[h];e:{for(;g.key===v.key;){if(16384&v.flags&&(t[h]=v=I(v)),Me(g,v,n,r,o,a,s),e[h]=v,++h>d||h>p)break e;g=e[h],v=t[h]}for(g=e[d],v=t[p];g.key===v.key;){if(16384&v.flags&&(t[p]=v=I(v)),Me(g,v,n,r,o,a,s),e[d]=v,d--,p--,h>d||h>p)break e;g=e[d],v=t[p]}}if(h>d){if(h<=p)for(f=(l=p+1)p)for(;h<=d;)be(e[h++],n);else!function(e,t,n,r,o,i,u,a,c,s,l,f,d){var p,h,g,v=0,m=a,y=a,E=i-a+1,x=u-a+1,w=new Int32Array(x+1),C=E===r,_=!1,A=0,k=0;if(o<4||(E|x)<32)for(v=m;v<=i;++v)if(p=e[v],ka?_=!0:A=a,16384&h.flags&&(t[a]=h=I(h)),Me(p,h,c,n,s,l,d),++k;break}!C&&a>u&&be(p,c)}else C||be(p,c);else{var S={};for(v=y;v<=u;++v)S[t[v].key]=v;for(v=m;v<=i;++v)if(p=e[v],km;)be(e[m++],c);w[a-y]=v+1,A>a?_=!0:A=a,16384&(h=t[a]).flags&&(t[a]=h=I(h)),Me(p,h,c,n,s,l,d),++k}else C||be(p,c);else C||be(p,c)}if(C)we(c,f,e),Be(t,c,n,s,l,d);else if(_){var F=function(e){var t=0,n=0,r=0,o=0,i=0,u=0,a=0,c=e.length;c>Pe&&(Pe=c,se=new Int32Array(c),le=new Int32Array(c));for(;n>1]]0&&(le[n]=se[i-1]),se[i]=n)}i=o+1;var s=new Int32Array(i);u=se[i-1];for(;i-- >0;)s[i]=u,u=le[u],se[i]=0;return s}(w);for(a=F.length-1,v=x-1;v>=0;v--)0===w[v]?(16384&(h=t[A=v+y]).flags&&(t[A]=h=I(h)),Fe(h,c,n,s,(g=A+1)=0;v--)0===w[v]&&(16384&(h=t[A=v+y]).flags&&(t[A]=h=I(h)),Fe(h,c,n,s,(g=A+1)u?u:i,d=0;du)for(d=f;d1)for(var n=1;n=0||(o[n]=e[n]);return o}(e,["className"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var r,o;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=r,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(r||(t.VNodeFlags=r={})),t.ChildFlags=o,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(o||(t.ChildFlags=o={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ByondUi=void 0;var r=n(0),o=n(6),i=n(466),u=n(29),a=n(17);function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var s=(0,u.createLogger)("ByondUi"),l=[];window.addEventListener("beforeunload",(function(){for(var e=0;e=0||(o[n]=e[n]);return o}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),v=this.state.viewBox,m=function(e,t,n,r){if(0===e.length)return[];var i=(0,o.zipWith)(Math.min).apply(void 0,e),u=(0,o.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(i[0]=n[0],u[0]=n[1]),r!==undefined&&(i[1]=r[0],u[1]=r[1]),(0,o.map)((function(e){return(0,o.zipWith)((function(e,t,n,r){return(e-t)/(n-t)*r}))(e,i,u,t)}))(e)}(i,v,a,c);if(m.length>0){var y=m[0],b=m[m.length-1];m.push([v[0]+h,b[1]]),m.push([v[0]+h,-h]),m.push([-h,-h]),m.push([-h,y[1]])}var E=function(e){for(var t="",n=0;n=0||(o[n]=e[n]);return o}(t,["children","color","title","buttons"]);return(0,r.createComponentVNode)(2,o.Box,{mb:1,children:[(0,r.createVNode)(1,"div","Table",[(0,r.createVNode)(1,"div","Table__cell",(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Button,Object.assign({fluid:!0,color:c,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},f,{children:s}))),2),l&&(0,r.createVNode)(1,"div","Table__cell Table__cell--collapsing",l,0)],0),n&&(0,r.createComponentVNode)(2,o.Box,{mt:1,children:u})]})},u}(r.Component);t.Collapsible=u},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var r=n(0),o=n(6),i=n(17);var u=function(e){var t=e.content,n=(e.children,e.className),u=e.color,a=e.backgroundColor,c=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["content","children","className","color","backgroundColor"]);return c.color=t?null:"transparent",c.backgroundColor=u||a,(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["ColorBox",n,(0,i.computeBoxClassName)(c)]),t||".",0,Object.assign({},(0,i.computeBoxProps)(c))))};t.ColorBox=u,u.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var r=n(0),o=n(6),i=n(17),u=n(103);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t,n;function c(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var s=c.prototype;return s.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},s.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},s.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},s.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,r.createComponentVNode)(2,i.Box,{className:"Dropdown__menuentry",onClick:function(){e.setSelected(t)},children:t},t)}));return n.length?n:"No Options Found"},s.render=function(){var e=this,t=this.props,n=t.color,c=void 0===n?"default":n,s=t.over,l=t.noscroll,f=t.nochevron,d=t.width,p=(t.onClick,t.selected,t.disabled),h=a(t,["color","over","noscroll","nochevron","width","onClick","selected","disabled"]),g=h.className,v=a(h,["className"]),m=s?!this.state.open:this.state.open,y=this.state.open?(0,r.createVNode)(1,"div",(0,o.classes)([l?"Dropdown__menu-noscroll":"Dropdown__menu",s&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:d}},null,(function(t){e.menuRef=t})):null;return(0,r.createVNode)(1,"div","Dropdown",[(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({width:d,className:(0,o.classes)(["Dropdown__control","Button","Button--color--"+c,p&&"Button--disabled",g])},v,{onClick:function(){p&&!e.state.open||e.setOpen(!e.state.open)},children:[(0,r.createVNode)(1,"span","Dropdown__selected-text",this.state.selected,0),!!f||(0,r.createVNode)(1,"span","Dropdown__arrow-button",(0,r.createComponentVNode)(2,u.Icon,{name:m?"chevron-up":"chevron-down"}),2)]}))),y],0)},c}(r.Component);t.Dropdown=c},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var r=n(0),o=n(196),i=n(6);function u(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var a=function(e){var t=e.children,n=u(e,["children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Table,Object.assign({},n,{children:(0,r.createComponentVNode)(2,o.Table.Row,{children:t})})))};t.Grid=a,a.defaultHooks=i.pureComponentHooks;var c=function(e){var t=e.size,n=void 0===t?1:t,i=e.style,a=u(e,["size","style"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},i)},a)))};t.GridColumn=c,a.defaultHooks=i.pureComponentHooks,a.Column=c},function(e,t,n){"use strict";t.__esModule=!0,t.Knob=void 0;var r=n(0),o=n(9),i=n(6),u=n(17),a=n(139),c=n(140);t.Knob=function(e){if(Byond.IS_LTE_IE8)return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,s=e.maxValue,l=e.minValue,f=e.onChange,d=e.onDrag,p=e.step,h=e.stepPixelSize,g=e.suppressFlicker,v=e.unit,m=e.value,y=e.className,b=e.style,E=e.fillValue,D=e.color,x=e.ranges,w=void 0===x?{}:x,C=e.size,_=void 0===C?1:C,A=e.bipolar,k=(e.children,function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","style","fillValue","color","ranges","size","bipolar","children"]));return(0,r.normalizeProps)((0,r.createComponentVNode)(2,a.DraggableControl,Object.assign({dragMatrix:[0,-1]},{animated:t,format:n,maxValue:s,minValue:l,onChange:f,onDrag:d,step:p,stepPixelSize:h,suppressFlicker:g,unit:v,value:m},{children:function(e){var t=e.dragging,n=(e.editing,e.value),a=e.displayValue,c=e.displayElement,f=e.inputElement,d=e.handleDragStart,p=(0,o.scale)(null!=E?E:a,l,s),h=(0,o.scale)(a,l,s),g=D||(0,o.keyOfMatchingRange)(null!=E?E:n,w)||"default",v=270*(h-.5);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["Knob","Knob--color--"+g,A&&"Knob--bipolar",y,(0,u.computeBoxClassName)(k)]),[(0,r.createVNode)(1,"div","Knob__circle",(0,r.createVNode)(1,"div","Knob__cursorBox",(0,r.createVNode)(1,"div","Knob__cursor"),2,{style:{transform:"rotate("+v+"deg)"}}),2),t&&(0,r.createVNode)(1,"div","Knob__popupValue",c,0),(0,r.createVNode)(32,"svg","Knob__ring Knob__ringTrackPivot",(0,r.createVNode)(32,"circle","Knob__ringTrack",null,1,{cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),(0,r.createVNode)(32,"svg","Knob__ring Knob__ringFillPivot",(0,r.createVNode)(32,"circle","Knob__ringFill",null,1,{style:{"stroke-dashoffset":((A?2.75:2)-1.5*p)*Math.PI*50},cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),f],0,Object.assign({},(0,u.computeBoxProps)(Object.assign({style:Object.assign({"font-size":_+"em"},b)},k)),{onMouseDown:d})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledControls=void 0;var r=n(0),o=n(195);function i(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var u=function(e){var t=e.children,n=i(e,["children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Flex,Object.assign({mx:-.5,align:"stretch",justify:"space-between"},n,{children:t})))};t.LabeledControls=u;u.Item=function(e){var t=e.label,n=e.children,u=i(e,["label","children"]);return(0,r.createComponentVNode)(2,o.Flex.Item,{mx:1,children:(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Flex,Object.assign({minWidth:"52px",height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},u,{children:[(0,r.createComponentVNode)(2,o.Flex.Item),(0,r.createComponentVNode)(2,o.Flex.Item,{children:n}),(0,r.createComponentVNode)(2,o.Flex.Item,{color:"label",children:t})]})))})}},function(e,t,n){"use strict";t.__esModule=!0,t.Modal=void 0;var r=n(0),o=n(6),i=n(17),u=n(193);t.Modal=function(e){var t=e.className,n=e.children,a=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","children"]);return(0,r.createComponentVNode)(2,u.Dimmer,{children:(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Modal",t,(0,i.computeBoxClassName)(a)]),n,0,Object.assign({},(0,i.computeBoxProps)(a))))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var r=n(0),o=n(6),i=n(17);var u=function(e){var t=e.className,n=e.color,u=e.info,a=(e.warning,e.success),c=e.danger,s=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","color","info","warning","success","danger"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["NoticeBox",n&&"NoticeBox--color--"+n,u&&"NoticeBox--type--info",a&&"NoticeBox--type--success",c&&"NoticeBox--type--danger",t])},s)))};t.NoticeBox=u,u.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var r=n(0),o=n(9),i=n(6),u=n(17);var a=function(e){var t=e.className,n=e.value,a=e.minValue,c=void 0===a?0:a,s=e.maxValue,l=void 0===s?1:s,f=e.color,d=e.ranges,p=void 0===d?{}:d,h=e.children,g=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","value","minValue","maxValue","color","ranges","children"]),v=(0,o.scale)(n,c,l),m=h!==undefined,y=f||(0,o.keyOfMatchingRange)(n,p)||"default";return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["ProgressBar","ProgressBar--color--"+y,t,(0,u.computeBoxClassName)(g)]),[(0,r.createVNode)(1,"div","ProgressBar__fill ProgressBar__fill--animated",null,1,{style:{width:100*(0,o.clamp01)(v)+"%"}}),(0,r.createVNode)(1,"div","ProgressBar__content",m?h:(0,o.toFixed)(100*v)+"%",0)],4,Object.assign({},(0,u.computeBoxProps)(g))))};t.ProgressBar=a,a.defaultHooks=i.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var r=n(0),o=n(6),i=n(57),u=n(17);var a=function(e){var t,n;function a(t){var n;return(n=e.call(this,t)||this).ref=(0,r.createRef)(),n.scrollable=t.scrollable,n}n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=a.prototype;return c.componentDidMount=function(){this.scrollable&&(0,i.addScrollableNode)(this.ref.current)},c.componentWillUnmount=function(){this.scrollable&&(0,i.removeScrollableNode)(this.ref.current)},c.render=function(){var e=this.props,t=e.className,n=e.title,i=e.level,a=void 0===i?1:i,c=e.buttons,s=e.fill,l=e.fitted,f=e.scrollable,d=e.children,p=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","title","level","buttons","fill","fitted","scrollable","children"]),h=(0,o.canRender)(n)||(0,o.canRender)(c),g=(0,o.canRender)(d);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Section","Section--level--"+a,Byond.IS_LTE_IE8&&"Section--iefix",s&&"Section--fill",l&&"Section--fitted",f&&"Section--scrollable",t].concat((0,u.computeBoxClassName)(p))),[h&&(0,r.createVNode)(1,"div","Section__title",[(0,r.createVNode)(1,"span","Section__titleText",n,0),(0,r.createVNode)(1,"div","Section__buttons",c,0)],4),l&&d||g&&(0,r.createVNode)(1,"div","Section__content",d,0)],0,Object.assign({},(0,u.computeBoxProps)(p)),null,this.ref))},a}(r.Component);t.Section=a},function(e,t,n){"use strict";t.__esModule=!0,t.Slider=void 0;var r=n(0),o=n(9),i=n(6),u=n(17),a=n(139),c=n(140);t.Slider=function(e){if(Byond.IS_LTE_IE8)return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,s=e.maxValue,l=e.minValue,f=e.onChange,d=e.onDrag,p=e.step,h=e.stepPixelSize,g=e.suppressFlicker,v=e.unit,m=e.value,y=e.className,b=e.fillValue,E=e.color,D=e.ranges,x=void 0===D?{}:D,w=e.children,C=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","fillValue","color","ranges","children"]),_=w!==undefined;return(0,r.normalizeProps)((0,r.createComponentVNode)(2,a.DraggableControl,Object.assign({dragMatrix:[1,0]},{animated:t,format:n,maxValue:s,minValue:l,onChange:f,onDrag:d,step:p,stepPixelSize:h,suppressFlicker:g,unit:v,value:m},{children:function(e){var t=e.dragging,n=(e.editing,e.value),a=e.displayValue,c=e.displayElement,f=e.inputElement,d=e.handleDragStart,p=b!==undefined&&null!==b,h=((0,o.scale)(n,l,s),(0,o.scale)(null!=b?b:a,l,s)),g=(0,o.scale)(a,l,s),v=E||(0,o.keyOfMatchingRange)(null!=b?b:n,x)||"default";return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["Slider","ProgressBar","ProgressBar--color--"+v,y,(0,u.computeBoxClassName)(C)]),[(0,r.createVNode)(1,"div",(0,i.classes)(["ProgressBar__fill",p&&"ProgressBar__fill--animated"]),null,1,{style:{width:100*(0,o.clamp01)(h)+"%",opacity:.4}}),(0,r.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,o.clamp01)(Math.min(h,g))+"%"}}),(0,r.createVNode)(1,"div","Slider__cursorOffset",[(0,r.createVNode)(1,"div","Slider__cursor"),(0,r.createVNode)(1,"div","Slider__pointer"),t&&(0,r.createVNode)(1,"div","Slider__popupValue",c,0)],0,{style:{width:100*(0,o.clamp01)(g)+"%"}}),(0,r.createVNode)(1,"div","ProgressBar__content",_?w:c,0),f],0,Object.assign({},(0,u.computeBoxProps)(C),{onMouseDown:d})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.TextArea=void 0;var r=n(0),o=n(6),i=n(17),u=n(197),a=n(78);function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var s=function(e){var t,n;function s(t,n){var o;(o=e.call(this,t,n)||this).textareaRef=(0,r.createRef)(),o.fillerRef=(0,r.createRef)(),o.state={editing:!1};var i=t.dontUseTabForIndent,c=void 0!==i&&i;return o.handleOnInput=function(e){var t=o.state.editing,n=o.props.onInput;t||o.setEditing(!0),n&&n(e,e.target.value)},o.handleOnChange=function(e){var t=o.state.editing,n=o.props.onChange;t&&o.setEditing(!1),n&&n(e,e.target.value)},o.handleKeyPress=function(e){var t=o.state.editing,n=o.props.onKeyPress;t||o.setEditing(!0),n&&n(e,e.target.value)},o.handleKeyDown=function(e){var t=o.state.editing,n=o.props.onKeyDown;if(e.keyCode===a.KEY_ESCAPE)return o.setEditing(!1),e.target.value=(0,u.toInputValue)(o.props.value),void e.target.blur();if((t||o.setEditing(!0),!c)&&9===(e.keyCode||e.which)){e.preventDefault();var r=e.target,i=r.value,s=r.selectionStart,l=r.selectionEnd;e.target.value=i.substring(0,s)+"\t"+i.substring(l),e.target.selectionEnd=s+1}n&&n(e,e.target.value)},o.handleFocus=function(e){o.state.editing||o.setEditing(!0)},o.handleBlur=function(e){var t=o.state.editing,n=o.props.onChange;t&&(o.setEditing(!1),n&&n(e,e.target.value))},o}n=e,(t=s).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var l=s.prototype;return l.componentDidMount=function(){var e=this.props.value,t=this.textareaRef.current;t&&(t.value=(0,u.toInputValue)(e))},l.componentDidUpdate=function(e,t){var n=this.state.editing,r=e.value,o=this.props.value,i=this.textareaRef.current;i&&!n&&r!==o&&(i.value=(0,u.toInputValue)(o))},l.setEditing=function(e){this.setState({editing:e})},l.getValue=function(){return this.textareaRef.current&&this.textareaRef.current.value},l.render=function(){var e=this.props,t=(e.onChange,e.onKeyDown,e.onKeyPress,e.onInput,e.onFocus,e.onBlur,e.onEnter,e.value,e.placeholder),n=c(e,["onChange","onKeyDown","onKeyPress","onInput","onFocus","onBlur","onEnter","value","placeholder"]),u=n.className,a=n.fluid,s=c(n,["className","fluid"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["TextArea",a&&"TextArea--fluid",u])},s,{children:(0,r.createVNode)(128,"textarea","TextArea__textarea",null,1,{placeholder:t,onChange:this.handleOnChange,onKeyDown:this.handleKeyDown,onKeyPress:this.handleKeyPress,onInput:this.handleOnInput,onFocus:this.handleFocus,onBlur:this.handleBlur},null,this.textareaRef)})))},s}(r.Component);t.TextArea=s},function(e,t,n){"use strict";t.__esModule=!0,t.Tabs=void 0;var r=n(0),o=n(6),i=n(17),u=n(103);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t=e.className,n=e.vertical,u=e.fluid,c=e.children,s=a(e,["className","vertical","fluid","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Tabs",n?"Tabs--vertical":"Tabs--horizontal",u&&"Tabs--fluid",t,(0,i.computeBoxClassName)(s)]),c,0,Object.assign({},(0,i.computeBoxProps)(s))))};t.Tabs=c;c.Tab=function(e){var t=e.className,n=e.selected,c=e.color,s=e.icon,l=e.leftSlot,f=e.rightSlot,d=e.children,p=a(e,["className","selected","color","icon","leftSlot","rightSlot","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Tab","Tabs__Tab","Tab--color--"+c,n&&"Tab--selected",t].concat((0,i.computeBoxClassName)(p))),[(0,o.canRender)(l)&&(0,r.createVNode)(1,"div","Tab__left",l,0)||!!s&&(0,r.createVNode)(1,"div","Tab__left",(0,r.createComponentVNode)(2,u.Icon,{name:s}),2),(0,r.createVNode)(1,"div","Tab__text",d,0),(0,o.canRender)(f)&&(0,r.createVNode)(1,"div","Tab__right",f,0)],0,Object.assign({},(0,i.computeBoxProps)(p))))}},function(e,t,n){"use strict";t.__esModule=!0,t.TimeDisplay=void 0;var r=n(9),o=n(0);var i=function(e){return"number"==typeof e&&Number.isFinite(e)&&!Number.isNaN(e)},u=function(e){var t,n;function o(t){var n;return(n=e.call(this,t)||this).timer=null,n.last_seen_value=undefined,n.state={value:0},i(t.value)&&(n.state.value=Number(t.value),n.last_seen_value=Number(t.value)),n}n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=o.prototype;return u.componentDidUpdate=function(){var e=this;this.props.auto!==undefined&&(clearInterval(this.timer),this.timer=setInterval((function(){return e.tick()}),1e3))},u.tick=function(){var e=Number(this.state.value);this.props.value!==this.last_seen_value&&(this.last_seen_value=this.props.value,e=this.props.value);var t="up"===this.props.auto?10:-10,n=Math.max(0,e+t);this.setState({value:n})},u.componentDidMount=function(){var e=this;this.props.auto!==undefined&&(this.timer=setInterval((function(){return e.tick()}),1e3))},u.componentWillUnmount=function(){clearInterval(this.timer)},u.render=function(){var e=this.state.value;if(!i(e))return this.state.value||null;var t=(0,r.toFixed)(Math.floor(e/10%60)).padStart(2,"0"),n=(0,r.toFixed)(Math.floor(e/600%60)).padStart(2,"0");return(0,r.toFixed)(Math.floor(e/36e3%24)).padStart(2,"0")+":"+n+":"+t},o}(o.Component);t.TimeDisplay=u},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWindow=void 0;var r=n(0),o=n(63),i=n(2),u=n(1),a=n(199),c=function(e,t){var n=e.title,c=e.width,s=void 0===c?575:c,l=e.height,f=void 0===l?700:l,d=e.resizable,p=e.theme,h=void 0===p?"ntos":p,g=e.children,v=(0,i.useBackend)(t),m=v.act,y=v.data,b=y.PC_device_theme,E=y.PC_batteryicon,D=y.PC_showbatteryicon,x=y.PC_batterypercent,w=y.PC_ntneticon,C=y.PC_apclinkicon,_=y.PC_stationtime,A=y.PC_programheaders,k=void 0===A?[]:A,S=y.PC_showexitprogram;return(0,r.createComponentVNode)(2,a.Window,{title:n,width:s,height:f,theme:h,resizable:d,children:(0,r.createVNode)(1,"div","NtosWindow",[(0,r.createVNode)(1,"div","NtosWindow__header NtosHeader",[(0,r.createVNode)(1,"div","NtosHeader__left",[(0,r.createComponentVNode)(2,u.Box,{inline:!0,bold:!0,mr:2,children:_}),(0,r.createComponentVNode)(2,u.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:["ntos"===b&&"NtOS","syndicate"===b&&"Syndix"]})],4),(0,r.createVNode)(1,"div","NtosHeader__right",[k.map((function(e){return(0,r.createComponentVNode)(2,u.Box,{inline:!0,mr:1,children:(0,r.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,o.resolveAsset)(e.icon)})},e.icon)})),(0,r.createComponentVNode)(2,u.Box,{inline:!0,children:w&&(0,r.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,o.resolveAsset)(w)})}),!!D&&E&&(0,r.createComponentVNode)(2,u.Box,{inline:!0,mr:1,children:[E&&(0,r.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,o.resolveAsset)(E)}),x&&x]}),C&&(0,r.createComponentVNode)(2,u.Box,{inline:!0,mr:1,children:(0,r.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,o.resolveAsset)(C)})}),!!S&&(0,r.createComponentVNode)(2,u.Button,{width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return m("PC_minimize")}}),!!S&&(0,r.createComponentVNode)(2,u.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return m("PC_exit")}}),!S&&(0,r.createComponentVNode)(2,u.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return m("PC_shutdown")}})],0)],4),g],0)})};t.NtosWindow=c;c.Content=function(e){return(0,r.createVNode)(1,"div","NtosWindow__content",(0,r.normalizeProps)((0,r.createComponentVNode)(2,a.Window.Content,Object.assign({},e))),2)}},function(e,t,n){"use strict";t.__esModule=!0,t.Pane=void 0;var r=n(0),o=n(6),i=n(2),u=n(1),a=n(137),c=n(141);function s(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var l=function(e,t){var n=e.theme,l=e.children,f=e.className,d=s(e,["theme","children","className"]),p=(0,i.useBackend)(t).suspended,h=(0,a.useDebug)(t).debugLayout;return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.Layout,Object.assign({className:(0,o.classes)(["Window",f]),theme:n},d,{children:(0,r.createComponentVNode)(2,u.Box,{fillPositionedParent:!0,className:h&&"debug-layout",children:!p&&l})})))};t.Pane=l;l.Content=function(e){var t=e.className,n=e.fitted,i=e.children,u=s(e,["className","fitted","children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.Layout.Content,Object.assign({className:(0,o.classes)(["Window__content",t])},u,{children:n&&i||(0,r.createVNode)(1,"div","Window__contentPadding",i,0)})))}},function(e,t,n){"use strict";t.__esModule=!0,t.relayMiddleware=t.debugMiddleware=void 0;var r=n(78),o=n(57),i=n(135),u=n(200),a=["backend/update","chat/message"];t.debugMiddleware=function(e){return(0,i.acquireHotKey)(r.KEY_F11),(0,i.acquireHotKey)(r.KEY_F12),o.globalEvents.on("keydown",(function(t){t.code===r.KEY_F11&&e.dispatch((0,u.toggleDebugLayout)()),t.code===r.KEY_F12&&e.dispatch((0,u.toggleKitchenSink)()),t.ctrl&&t.alt&&t.code===r.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(e){return function(t){return e(t)}}};t.relayMiddleware=function(e){var t=n(100),c="?external"===location.search;return c?t.subscribe((function(t){var n=t.type,r=t.payload;"relay"===n&&r.windowId===window.__windowId__&&e.dispatch(Object.assign({},r.action,{relayed:!0}))})):((0,i.acquireHotKey)(r.KEY_F10),o.globalEvents.on("keydown",(function(t){t===r.KEY_F10&&e.dispatch((0,u.openExternalBrowser)())}))),function(e){return function(n){var r=n.type,o=(n.payload,n.relayed);if(r!==u.openExternalBrowser.type)return!a.includes(r)||o||c||t.sendMessage({type:"relay",payload:{windowId:window.__windowId__,action:n}}),e(n);window.open(location.href+"?external","_blank")}}}},function(e,t,n){"use strict";t.__esModule=!0,t.debugReducer=void 0;t.debugReducer=function(e,t){void 0===e&&(e={});var n=t.type;t.payload;return"debug/toggleKitchenSink"===n?Object.assign({},e,{kitchenSink:!e.kitchenSink}):"debug/toggleDebugLayout"===n?Object.assign({},e,{debugLayout:!e.debugLayout}):e}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";e.exports=function(){var e=Object.hasOwnProperty,t=Object.setPrototypeOf,n=Object.isFrozen,r=Object.freeze,o=Object.seal,i=Object.create,u="undefined"!=typeof Reflect&&Reflect,a=u.apply,c=u.construct;a||(a=function(e,t,n){return e.apply(t,n)}),r||(r=function(e){return e}),o||(o=function(e){return e}),c||(c=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?n-1:0),o=1;o/gm),O=o(/^data-[\-\w.\u00B7-\uFFFF]/),M=o(/^aria-[\-\w]+$/),L=o(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),V=o(/^(?:\w+script|data):/i),P=o(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function j(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&arguments[0]!==undefined?arguments[0]:K(),t=function(e){return Y(e)};if(t.version="2.2.2",t.removed=[],!e||!e.document||9!==e.document.nodeType)return t.isSupported=!1,t;var n=e.document,o=e.document,i=e.DocumentFragment,u=e.HTMLTemplateElement,a=e.Node,c=e.NodeFilter,s=e.NamedNodeMap,E=s===undefined?e.NamedNodeMap||e.MozNamedAttrMap:s,U=e.Text,$=e.Comment,H=e.DOMParser,W=e.trustedTypes;if("function"==typeof u){var q=o.createElement("template");q.content&&q.content.ownerDocument&&(o=q.content.ownerDocument)}var G=z(W,n),X=G&&Se?G.createHTML(""):"",Z=o,Q=Z.implementation,J=Z.createNodeIterator,ee=Z.getElementsByTagName,te=Z.createDocumentFragment,ne=n.importNode,re={};try{re=x(o).documentMode?o.documentMode:{}}catch(Qe){}var oe={};t.isSupported=Q&&"undefined"!=typeof Q.createHTMLDocument&&9!==re;var ie=B,ue=I,ae=O,ce=M,se=V,le=P,fe=L,de=null,pe=D({},[].concat(j(w),j(C),j(_),j(A),j(k))),he=null,ge=D({},[].concat(j(S),j(F),j(N),j(T))),ve=null,me=null,ye=!0,be=!0,Ee=!1,De=!1,xe=!1,we=!1,Ce=!1,_e=!1,Ae=!1,ke=!0,Se=!1,Fe=!0,Ne=!0,Te=!1,Be={},Ie=D({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","plaintext","script","style","svg","template","thead","title","video","xmp"]),Oe=null,Me=D({},["audio","video","img","source","image","track"]),Le=null,Ve=D({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Pe=null,Re=o.createElement("form"),je=function(e){Pe&&Pe===e||(e&&"object"===(void 0===e?"undefined":R(e))||(e={}),e=x(e),de="ALLOWED_TAGS"in e?D({},e.ALLOWED_TAGS):pe,he="ALLOWED_ATTR"in e?D({},e.ALLOWED_ATTR):ge,Le="ADD_URI_SAFE_ATTR"in e?D(x(Ve),e.ADD_URI_SAFE_ATTR):Ve,Oe="ADD_DATA_URI_TAGS"in e?D(x(Me),e.ADD_DATA_URI_TAGS):Me,ve="FORBID_TAGS"in e?D({},e.FORBID_TAGS):{},me="FORBID_ATTR"in e?D({},e.FORBID_ATTR):{},Be="USE_PROFILES"in e&&e.USE_PROFILES,ye=!1!==e.ALLOW_ARIA_ATTR,be=!1!==e.ALLOW_DATA_ATTR,Ee=e.ALLOW_UNKNOWN_PROTOCOLS||!1,De=e.SAFE_FOR_TEMPLATES||!1,xe=e.WHOLE_DOCUMENT||!1,_e=e.RETURN_DOM||!1,Ae=e.RETURN_DOM_FRAGMENT||!1,ke=!1!==e.RETURN_DOM_IMPORT,Se=e.RETURN_TRUSTED_TYPE||!1,Ce=e.FORCE_BODY||!1,Fe=!1!==e.SANITIZE_DOM,Ne=!1!==e.KEEP_CONTENT,Te=e.IN_PLACE||!1,fe=e.ALLOWED_URI_REGEXP||fe,De&&(be=!1),Ae&&(_e=!0),Be&&(de=D({},[].concat(j(k))),he=[],!0===Be.html&&(D(de,w),D(he,S)),!0===Be.svg&&(D(de,C),D(he,F),D(he,T)),!0===Be.svgFilters&&(D(de,_),D(he,F),D(he,T)),!0===Be.mathMl&&(D(de,A),D(he,N),D(he,T))),e.ADD_TAGS&&(de===pe&&(de=x(de)),D(de,e.ADD_TAGS)),e.ADD_ATTR&&(he===ge&&(he=x(he)),D(he,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&D(Le,e.ADD_URI_SAFE_ATTR),Ne&&(de["#text"]=!0),xe&&D(de,["html","head","body"]),de.table&&(D(de,["tbody"]),delete ve.tbody),r&&r(e),Pe=e)},Ke=function(e){d(t.removed,{element:e});try{e.parentNode.removeChild(e)}catch(Qe){e.outerHTML=X}},ze=function(e,n){try{d(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch(Qe){d(t.removed,{attribute:null,from:n})}n.removeAttribute(e)},Ye=function(e){var t=void 0,n=void 0;if(Ce)e=""+e;else{var r=h(e,/^[\r\n\t ]+/);n=r&&r[0]}var i=G?G.createHTML(e):e;try{t=(new H).parseFromString(i,"text/html")}catch(Qe){}if(!t||!t.documentElement){var u=(t=Q.createHTMLDocument("")).body;u.parentNode.removeChild(u.parentNode.firstElementChild),u.outerHTML=i}return e&&n&&t.body.insertBefore(o.createTextNode(n),t.body.childNodes[0]||null),ee.call(t,xe?"html":"body")[0]},Ue=function(e){return J.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,(function(){return c.FILTER_ACCEPT}),!1)},$e=function(e){return!(e instanceof U||e instanceof $||"string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof E&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI)},He=function(e){return"object"===(void 0===a?"undefined":R(a))?e instanceof a:e&&"object"===(void 0===e?"undefined":R(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},We=function(e,n,r){oe[e]&&l(oe[e],(function(e){e.call(t,n,r,Pe)}))},qe=function(e){var n=void 0;if(We("beforeSanitizeElements",e,null),$e(e))return Ke(e),!0;if(h(e.nodeName,/[\u0080-\uFFFF]/))return Ke(e),!0;var r=p(e.nodeName);if(We("uponSanitizeElement",e,{tagName:r,allowedTags:de}),("svg"===r||"math"===r)&&0!==e.querySelectorAll("p, br, form, table").length)return Ke(e),!0;if(!He(e.firstElementChild)&&(!He(e.content)||!He(e.content.firstElementChild))&&y(/<[!/\w]/g,e.innerHTML)&&y(/<[!/\w]/g,e.textContent))return Ke(e),!0;if(!de[r]||ve[r]){if(Ne&&!Ie[r]&&"function"==typeof e.insertAdjacentHTML)try{var o=e.innerHTML;e.insertAdjacentHTML("AfterEnd",G?G.createHTML(o):o)}catch(Qe){}return Ke(e),!0}return"noscript"!==r&&"noembed"!==r||!y(/<\/no(script|embed)/i,e.innerHTML)?(De&&3===e.nodeType&&(n=e.textContent,n=g(n,ie," "),n=g(n,ue," "),e.textContent!==n&&(d(t.removed,{element:e.cloneNode()}),e.textContent=n)),We("afterSanitizeElements",e,null),!1):(Ke(e),!0)},Ge=function(e,t,n){if(Fe&&("id"===t||"name"===t)&&(n in o||n in Re))return!1;if(be&&y(ae,t));else if(ye&&y(ce,t));else{if(!he[t]||me[t])return!1;if(Le[t]);else if(y(fe,g(n,le,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(n,"data:")||!Oe[e])if(Ee&&!y(se,g(n,le,"")));else if(n)return!1}return!0},Xe=function(e){var n=void 0,r=void 0,o=void 0,i=void 0;We("beforeSanitizeAttributes",e,null);var u=e.attributes;if(u){var a={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:he};for(i=u.length;i--;){var c=n=u[i],s=c.name,l=c.namespaceURI;if(r=m(n.value),o=p(s),a.attrName=o,a.attrValue=r,a.keepAttr=!0,a.forceKeepAttr=undefined,We("uponSanitizeAttribute",e,a),r=a.attrValue,!a.forceKeepAttr&&(ze(s,e),a.keepAttr))if(y(/\/>/i,r))ze(s,e);else{De&&(r=g(r,ie," "),r=g(r,ue," "));var d=e.nodeName.toLowerCase();if(Ge(d,o,r))try{l?e.setAttributeNS(l,s,r):e.setAttribute(s,r),f(t.removed)}catch(Qe){}}}We("afterSanitizeAttributes",e,null)}},Ze=function Je(e){var t=void 0,n=Ue(e);for(We("beforeSanitizeShadowDOM",e,null);t=n.nextNode();)We("uponSanitizeShadowNode",t,null),qe(t)||(t.content instanceof i&&Je(t.content),Xe(t));We("afterSanitizeShadowDOM",e,null)};return t.sanitize=function(r,o){var u=void 0,c=void 0,s=void 0,l=void 0,f=void 0;if(r||(r="\x3c!--\x3e"),"string"!=typeof r&&!He(r)){if("function"!=typeof r.toString)throw b("toString is not a function");if("string"!=typeof(r=r.toString()))throw b("dirty is not a string, aborting")}if(!t.isSupported){if("object"===R(e.toStaticHTML)||"function"==typeof e.toStaticHTML){if("string"==typeof r)return e.toStaticHTML(r);if(He(r))return e.toStaticHTML(r.outerHTML)}return r}if(we||je(o),t.removed=[],"string"==typeof r&&(Te=!1),Te);else if(r instanceof a)1===(c=(u=Ye("\x3c!----\x3e")).ownerDocument.importNode(r,!0)).nodeType&&"BODY"===c.nodeName||"HTML"===c.nodeName?u=c:u.appendChild(c);else{if(!_e&&!De&&!xe&&-1===r.indexOf("<"))return G&&Se?G.createHTML(r):r;if(!(u=Ye(r)))return _e?null:X}u&&Ce&&Ke(u.firstChild);for(var d=Ue(Te?r:u);s=d.nextNode();)3===s.nodeType&&s===l||qe(s)||(s.content instanceof i&&Ze(s.content),Xe(s),l=s);if(l=null,Te)return r;if(_e){if(Ae)for(f=te.call(u.ownerDocument);u.firstChild;)f.appendChild(u.firstChild);else f=u;return ke&&(f=ne.call(n,f,!0)),f}var p=xe?u.outerHTML:u.innerHTML;return De&&(p=g(p,ie," "),p=g(p,ue," ")),G&&Se?G.createHTML(p):p},t.setConfig=function(e){je(e),we=!0},t.clearConfig=function(){Pe=null,we=!1},t.isValidAttribute=function(e,t,n){Pe||je({});var r=p(e),o=p(t);return Ge(r,o,n)},t.addHook=function(e,t){"function"==typeof t&&(oe[e]=oe[e]||[],d(oe[e],t))},t.removeHook=function(e){oe[e]&&f(oe[e])},t.removeHooks=function(e){oe[e]&&(oe[e]=[])},t.removeAllHooks=function(){oe={}},t}()}()},function(e,t,n){"use strict";e.exports=function(){function e(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}var r=function(e){var t={exports:{}};return e(t,t.exports),t.exports}((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:t,changeDefaults:function(t){e.exports.defaults=t}}})),o=/[&<>"']/,i=/[&<>"']/g,u=/[<>"']|&(?!#?\w+;)/,a=/[<>"']|&(?!#?\w+;)/g,c={"&":"&","<":"<",">":">",'"':""","'":"'"},s=function(e){return c[e]},l=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function f(e){return e.replace(l,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var d=/(^|[^\[])\^/g,p=/[^\w:]/g,h=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i,g={},v=/^[^:]+:\/*[^/]*$/,m=/^([^:]+:)[\s\S]*$/,y=/^([^:]+:\/*[^/]*)[\s\S]*$/;function b(e,t){g[" "+e]||(v.test(e)?g[" "+e]=e+"/":g[" "+e]=E(e,"/",!0));var n=-1===(e=g[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(m,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(y,"$1")+t:e+t}function E(e,t,n){var r=e.length;if(0===r)return"";for(var o=0;o=0&&"\\"===n[o];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.length1;)1&t&&(n+=e),t>>=1,e+=e;return n+e}},x=r.defaults,w=D.rtrim,C=D.splitCells,_=D.escape,A=D.findClosingBracket;function k(e,t,n){var r=t.href,o=t.title?_(t.title):null,i=e[1].replace(/\\([\[\]])/g,"$1");return"!"!==e[0].charAt(0)?{type:"link",raw:n,href:r,title:o,text:i}:{type:"image",raw:n,href:r,title:o,text:_(i)}}var S=function(){function e(e){this.options=e||x}var t=e.prototype;return t.space=function(e){var t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}},t.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:w(n,"\n")}}},t.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=function(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var r=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=r.length?e.slice(r.length):e})).join("\n")}(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:r}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var r=w(n,"#");this.options.pedantic?n=r.trim():r&&!/ $/.test(r)||(n=r.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n}}},t.nptable=function(e){var t=this.rules.block.nptable.exec(e);if(t){var n={type:"table",header:C(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(n.header.length===n.align.length){var r,o=n.align.length;for(r=0;r ?/gm,"");return{type:"blockquote",raw:t[0],text:n}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,r,o,i,u,a,c,s,l=t[0],f=t[2],d=f.length>1,p={type:"list",raw:l,ordered:d,start:d?+f.slice(0,-1):"",loose:!1,items:[]},h=t[0].match(this.rules.block.item),g=!1,v=h.length;o=this.rules.block.listItemStart.exec(h[0]);for(var m=0;mo[1].length:i[1].length>o[0].length||i[1].length>3){h.splice(m,2,h[m]+"\n"+h[m+1]),m--,v--;continue}(!this.options.pedantic||this.options.smartLists?i[2][i[2].length-1]!==f[f.length-1]:d===(1===i[2].length))&&(u=h.slice(m+1).join("\n"),p.raw=p.raw.substring(0,p.raw.length-u.length),m=v-1),o=i}r=n.length,~(n=n.replace(/^ *([*+-]|\d+[.)]) ?/,"")).indexOf("\n ")&&(r-=n.length,n=this.options.pedantic?n.replace(/^ {1,4}/gm,""):n.replace(new RegExp("^ {1,"+r+"}","gm"),"")),a=g||/\n\n(?!\s*$)/.test(n),m!==v-1&&(g="\n"===n.charAt(n.length-1),a||(a=g)),a&&(p.loose=!0),this.options.gfm&&(c=/^\[[ xX]\] /.test(n),s=undefined,c&&(s=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,""))),p.items.push({type:"list_item",raw:l,task:c,checked:s,loose:a,text:n})}return p}},t.html=function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):_(t[0]):t[0]}},t.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},t.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:C(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var r,o=n.align.length;for(r=0;r/i.test(r[0])&&(t=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:r[0],inLink:t,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):_(r[0]):r[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;var r=w(n.slice(0,-1),"\\");if((n.length-r.length)%2==0)return}else{var o=A(t[2],"()");if(o>-1){var i=(0===t[0].indexOf("!")?5:4)+t[1].length+o;t[2]=t[2].substring(0,o),t[0]=t[0].substring(0,i).trim(),t[3]=""}}var u=t[2],a="";if(this.options.pedantic){var c=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(u);c&&(u=c[1],a=c[3])}else a=t[3]?t[3].slice(1,-1):"";return u=u.trim(),/^$/.test(n)?u.slice(1):u.slice(1,-1)),k(t,{href:u?u.replace(this.rules.inline._escapes,"$1"):u,title:a?a.replace(this.rules.inline._escapes,"$1"):a},t[0])}},t.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=t[r.toLowerCase()])||!r.href){var o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return k(n,r,n[0])}},t.emStrong=function(e,t,n){void 0===n&&(n="");var r=this.rules.inline.emStrong.lDelim.exec(e);if(r&&(!r[3]||!n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var o=r[1]||r[2]||"";if(!o||o&&(""===n||this.rules.inline.punctuation.exec(n))){var i,u,a=r[0].length-1,c=a,s=0,l="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(l.lastIndex=0,t=t.slice(-1*e.length+a);null!=(r=l.exec(t));)if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6])if(u=i.length,r[3]||r[4])c+=u;else if(!((r[5]||r[6])&&a%3)||(a+u)%3){if(!((c-=u)>0)){if(c+s-u<=0&&!t.slice(l.lastIndex).match(l)&&(u=Math.min(u,u+c+s)),Math.min(a,u)%2)return{type:"em",raw:e.slice(0,a+r.index+u+1),text:e.slice(1,a+r.index+u)};if(Math.min(a,u)%2==0)return{type:"strong",raw:e.slice(0,a+r.index+u+1),text:e.slice(2,a+r.index+u-1)}}}else s+=u}}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),r=/[^ ]/.test(n),o=/^ /.test(n)&&/ $/.test(n);return r&&o&&(n=n.substring(1,n.length-1)),n=_(n,!0),{type:"codespan",raw:t[0],text:n}}},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2]}},t.autolink=function(e,t){var n,r,o=this.rules.inline.autolink.exec(e);if(o)return r="@"===o[2]?"mailto:"+(n=_(this.options.mangle?t(o[1]):o[1])):n=_(o[1]),{type:"link",raw:o[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}},t.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,o;if("@"===n[2])o="mailto:"+(r=_(this.options.mangle?t(n[0]):n[0]));else{var i;do{i=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(i!==n[0]);r=_(n[0]),o="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}},t.inlineText=function(e,t,n){var r,o=this.rules.inline.text.exec(e);if(o)return r=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(o[0]):_(o[0]):o[0]:_(this.options.smartypants?n(o[0]):o[0]),{type:"text",raw:o[0],text:r}},e}(),F=D.noopTest,N=D.edit,T=D.merge,B={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:F,table:F,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};B.def=N(B.def).replace("label",B._label).replace("title",B._title).getRegex(),B.bullet=/(?:[*+-]|\d{1,9}[.)])/,B.item=/^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/,B.item=N(B.item,"gm").replace(/bull/g,B.bullet).getRegex(),B.listItemStart=N(/^( *)(bull)/).replace("bull",B.bullet).getRegex(),B.list=N(B.list).replace(/bull/g,B.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+B.def.source+")").getRegex(),B._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",B._comment=/|$)/,B.html=N(B.html,"i").replace("comment",B._comment).replace("tag",B._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),B.paragraph=N(B._paragraph).replace("hr",B.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",B._tag).getRegex(),B.blockquote=N(B.blockquote).replace("paragraph",B.paragraph).getRegex(),B.normal=T({},B),B.gfm=T({},B.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),B.gfm.nptable=N(B.gfm.nptable).replace("hr",B.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",B._tag).getRegex(),B.gfm.table=N(B.gfm.table).replace("hr",B.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",B._tag).getRegex(),B.pedantic=T({},B.normal,{html:N("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",B._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:F,paragraph:N(B.normal._paragraph).replace("hr",B.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",B.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var I={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:F,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/\_\_[^_]*?\*[^_]*?\_\_|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/\*\*[^*]*?\_[^*]*?\*\*|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:F,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};I.punctuation=N(I.punctuation).replace(/punctuation/g,I._punctuation).getRegex(),I.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,I.escapedEmSt=/\\\*|\\_/g,I._comment=N(B._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),I.emStrong.lDelim=N(I.emStrong.lDelim).replace(/punct/g,I._punctuation).getRegex(),I.emStrong.rDelimAst=N(I.emStrong.rDelimAst,"g").replace(/punct/g,I._punctuation).getRegex(),I.emStrong.rDelimUnd=N(I.emStrong.rDelimUnd,"g").replace(/punct/g,I._punctuation).getRegex(),I._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,I._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,I._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,I.autolink=N(I.autolink).replace("scheme",I._scheme).replace("email",I._email).getRegex(),I._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,I.tag=N(I.tag).replace("comment",I._comment).replace("attribute",I._attribute).getRegex(),I._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,I._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,I._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,I.link=N(I.link).replace("label",I._label).replace("href",I._href).replace("title",I._title).getRegex(),I.reflink=N(I.reflink).replace("label",I._label).getRegex(),I.reflinkSearch=N(I.reflinkSearch,"g").replace("reflink",I.reflink).replace("nolink",I.nolink).getRegex(),I.normal=T({},I),I.pedantic=T({},I.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:N(/^!?\[(label)\]\((.*?)\)/).replace("label",I._label).getRegex(),reflink:N(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",I._label).getRegex()}),I.gfm=T({},I.normal,{escape:N(I.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}var K=function(){function t(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||M,this.options.tokenizer=this.options.tokenizer||new S,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var t={block:L.normal,inline:V.normal};this.options.pedantic?(t.block=L.pedantic,t.inline=V.pedantic):this.options.gfm&&(t.block=L.gfm,this.options.breaks?t.inline=V.breaks:t.inline=V.gfm),this.tokenizer.rules=t}t.lex=function(e,n){return new t(n).lex(e)},t.lexInline=function(e,n){return new t(n).inlineTokens(e)};var n,r,o,i=t.prototype;return i.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens},i.blockTokens=function(e,t,n){var r,o,i,u;for(void 0===t&&(t=[]),void 0===n&&(n=!0),this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(r=this.tokenizer.space(e))e=e.substring(r.raw.length),r.type&&t.push(r);else if(r=this.tokenizer.code(e))e=e.substring(r.raw.length),(u=t[t.length-1])&&"paragraph"===u.type?(u.raw+="\n"+r.raw,u.text+="\n"+r.text):t.push(r);else if(r=this.tokenizer.fences(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.heading(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.nptable(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.hr(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.blockquote(e))e=e.substring(r.raw.length),r.tokens=this.blockTokens(r.text,[],n),t.push(r);else if(r=this.tokenizer.list(e)){for(e=e.substring(r.raw.length),i=r.items.length,o=0;o0)for(;null!=(u=this.tokenizer.rules.inline.reflinkSearch.exec(s));)l.includes(u[0].slice(u[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,u.index)+"["+P("a",u[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(u=this.tokenizer.rules.inline.blockSkip.exec(s));)s=s.slice(0,u.index)+"["+P("a",u[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(u=this.tokenizer.rules.inline.escapedEmSt.exec(s));)s=s.slice(0,u.index)+"++"+s.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(c=""),a=!1,o=this.tokenizer.escape(e))e=e.substring(o.raw.length),t.push(o);else if(o=this.tokenizer.tag(e,n,r)){e=e.substring(o.raw.length),n=o.inLink,r=o.inRawBlock;var f=t[t.length-1];f&&"text"===o.type&&"text"===f.type?(f.raw+=o.raw,f.text+=o.text):t.push(o)}else if(o=this.tokenizer.link(e))e=e.substring(o.raw.length),"link"===o.type&&(o.tokens=this.inlineTokens(o.text,[],!0,r)),t.push(o);else if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);var d=t[t.length-1];"link"===o.type?(o.tokens=this.inlineTokens(o.text,[],!0,r),t.push(o)):d&&"text"===o.type&&"text"===d.type?(d.raw+=o.raw,d.text+=o.text):t.push(o)}else if(o=this.tokenizer.emStrong(e,s,c))e=e.substring(o.raw.length),o.tokens=this.inlineTokens(o.text,[],n,r),t.push(o);else if(o=this.tokenizer.codespan(e))e=e.substring(o.raw.length),t.push(o);else if(o=this.tokenizer.br(e))e=e.substring(o.raw.length),t.push(o);else if(o=this.tokenizer.del(e))e=e.substring(o.raw.length),o.tokens=this.inlineTokens(o.text,[],n,r),t.push(o);else if(o=this.tokenizer.autolink(e,j))e=e.substring(o.raw.length),t.push(o);else if(n||!(o=this.tokenizer.url(e,j))){if(o=this.tokenizer.inlineText(e,r,R))e=e.substring(o.raw.length),"_"!==o.raw.slice(-1)&&(c=o.raw.slice(-1)),a=!0,(i=t[t.length-1])&&"text"===i.type?(i.raw+=o.raw,i.text+=o.text):t.push(o);else if(e){var p="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent)break;throw new Error(p)}}else e=e.substring(o.raw.length),t.push(o);return t},n=t,o=[{key:"rules",get:function(){return{block:L,inline:V}}}],(r=null)&&e(n.prototype,r),o&&e(n,o),t}(),z=r.defaults,Y=D.cleanUrl,U=D.escape,$=function(){function e(e){this.options=e||z}var t=e.prototype;return t.code=function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,r);null!=o&&o!==e&&(n=!0,e=o)}return e=e.replace(/\n$/,"")+"\n",r?'
    '+(n?e:U(e,!0))+"
    \n":"
    "+(n?e:U(e,!0))+"
    \n"},t.blockquote=function(e){return"
    \n"+e+"
    \n"},t.html=function(e){return e},t.heading=function(e,t,n,r){return this.options.headerIds?"'+e+"\n":""+e+"\n"},t.hr=function(){return this.options.xhtml?"
    \n":"
    \n"},t.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},t.listitem=function(e){return"
  • "+e+"
  • \n"},t.checkbox=function(e){return" "},t.paragraph=function(e){return"

    "+e+"

    \n"},t.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},t.tablerow=function(e){return"\n"+e+"\n"},t.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},t.strong=function(e){return""+e+""},t.em=function(e){return""+e+""},t.codespan=function(e){return""+e+""},t.br=function(){return this.options.xhtml?"
    ":"
    "},t.del=function(e){return""+e+""},t.link=function(e,t,n){if(null===(e=Y(this.options.sanitize,this.options.baseUrl,e)))return n;var r='
    "},t.image=function(e,t,n){if(null===(e=Y(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">"},t.text=function(e){return e},e}(),H=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),W=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do{n=e+"-"+ ++r}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),q=r.defaults,G=D.unescape,X=function(){function e(e){this.options=e||q,this.options.renderer=this.options.renderer||new $,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new H,this.slugger=new W}e.parse=function(t,n){return new e(n).parse(t)},e.parseInline=function(t,n){return new e(n).parseInline(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var n,r,o,i,u,a,c,s,l,f,d,p,h,g,v,m,y,b,E="",D=e.length;for(n=0;n0&&"text"===v.tokens[0].type?(v.tokens[0].text=b+" "+v.tokens[0].text,v.tokens[0].tokens&&v.tokens[0].tokens.length>0&&"text"===v.tokens[0].tokens[0].type&&(v.tokens[0].tokens[0].text=b+" "+v.tokens[0].tokens[0].text)):v.tokens.unshift({type:"text",text:b}):g+=b),g+=this.parse(v.tokens,h),l+=this.renderer.listitem(g,y,m);E+=this.renderer.list(l,d,p);continue;case"html":E+=this.renderer.html(f.text);continue;case"paragraph":E+=this.renderer.paragraph(this.parseInline(f.tokens));continue;case"text":for(l=f.tokens?this.parseInline(f.tokens):f.text;n+1An error occurred:

    "+J(c.message+"",!0)+"
    ";throw c}}return re.options=re.setOptions=function(e){return Z(re.defaults,e),te(re.defaults),re},re.getDefaults=ee,re.defaults=ne,re.use=function(e){var t=Z({},e);if(e.renderer&&function(){var n=re.defaults.renderer||new $,r=function(t){var r=n[t];n[t]=function(){for(var o=arguments.length,i=new Array(o),u=0;uAn error occurred:

    "+J(r.message+"",!0)+"
    ";throw r}},re.Parser=X,re.parser=X.parse,re.Renderer=$,re.TextRenderer=H,re.Lexer=K,re.lexer=K.lex,re.Tokenizer=S,re.Slugger=W,re.parse=re,re}()}]]); \ No newline at end of file diff --git a/tgui/public/tgui-panel.bundle.js b/tgui/public/tgui-panel.bundle.js index b1e3955f8b..1969b65f42 100644 --- a/tgui/public/tgui-panel.bundle.js +++ b/tgui/public/tgui-panel.bundle.js @@ -1 +1 @@ -!function(e){function t(t){for(var o,a,c=t[0],s=t[1],l=t[2],d=0,g=[];d=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=a.IMAGE_RETRY_LIMIT)d.error("failed to load an image after "+n+" attempts");else{var o=t.src;t.src=null,t.src=o+"#"+n,t.setAttribute("data-reload-n",n+1)}}),a.IMAGE_RETRY_DELAY)},m=function(e){var t=e.node,n=e.times;if(t&&n){var o=t.querySelector(".Chat__badge"),i=o||document.createElement("div");i.textContent=n,i.className=(0,r.classes)(["Chat__badge","Chat__badge--animate"]),requestAnimationFrame((function(){i.className="Chat__badge"})),o||t.appendChild(i)}},v=function(){function t(){var e=this;this.loaded=!1,this.rootNode=null,this.queue=[],this.messages=[],this.visibleMessages=[],this.page=null,this.events=new o.EventEmitter,this.scrollNode=null,this.scrollTracking=!0,this.handleScroll=function(t){var n=e.scrollNode,o=n.scrollHeight,r=n.scrollTop+n.offsetHeight,i=Math.abs(o-r)<24;i!==e.scrollTracking&&(e.scrollTracking=i,e.events.emit("scrollTrackingChanged",i),d.debug("tracking",e.scrollTracking))},this.ensureScrollTracking=function(){e.scrollTracking&&e.scrollToBottom()},setInterval((function(){return e.pruneMessages()}),a.MESSAGE_PRUNE_INTERVAL)}var n=t.prototype;return n.isReady=function(){return this.loaded&&this.rootNode&&this.page},n.mount=function(t){var n=this;this.rootNode?t.appendChild(this.rootNode):this.rootNode=t,this.scrollNode=function(e){for(var t=document.body,n=e;n&&n!==t;){if(n.scrollWidth0&&(this.processBatch(this.queue),this.queue=[])},n.assignStyle=function(e){void 0===e&&(e={});for(var t=0,n=Object.keys(e);t1&&n.test(e)}));if(0===o.length)return this.highlightRegex=null,void(this.highlightColor=null);this.highlightRegex=new RegExp("("+o.join("|")+")","gi"),this.highlightColor=t},n.scrollToBottom=function(){this.scrollNode.scrollTop=this.scrollNode.scrollHeight},n.changePage=function(e){if(!this.isReady())return this.page=e,void this.tryFlushQueue();this.page=e,this.rootNode.textContent="",this.visibleMessages=[];for(var t,n,o=document.createDocumentFragment(),r=l(this.messages);!(n=r()).done;){var i=n.value;(0,c.canPageAcceptType)(e,i.type)&&(t=i.node,o.appendChild(t),this.visibleMessages.push(i))}t&&(this.rootNode.appendChild(o),t.scrollIntoView())},n.getCombinableMessage=function(e){for(var t=Date.now(),n=this.visibleMessages.length,o=n-1,r=Math.max(0,n-a.COMBINE_MAX_MESSAGES),i=o;i>=r;i--){var s=this.visibleMessages[i];if(!s.type.startsWith(a.MESSAGE_TYPE_INTERNAL)&&(0,c.isSameMessage)(s,e)&&t0){this.visibleMessages=e.slice(t);for(var n=0;n0&&(this.messages=this.messages.slice(r),d.log("pruned "+r+" stored messages"))}else d.debug("pruning delayed")},n.rebuildChat=function(){if(this.isReady()){for(var e,t=Math.max(0,this.messages.length-a.MAX_PERSISTED_MESSAGES),n=this.messages.slice(t),o=l(n);!(e=o()).done;)e.value.node=undefined;this.rootNode.textContent="",this.messages=[],this.visibleMessages=[],this.processBatch(n,{notifyListeners:!1})}},n.saveToDisk=function(){if(!Byond.IS_LTE_IE10){for(var e="",t=document.styleSheets,n=0;n\n\n\nSS13 Chat Log\n\n\n\n
    \n'+a+"
    \n\n\n"]),d=(new Date).toISOString().substring(0,19).replace(/[-:]/g,"").replace("T","-");window.navigator.msSaveBlob(u,"ss13-chatlog-"+d+".html")}},t}();window.__chatRenderer__||(window.__chatRenderer__=new v);var E=window.__chatRenderer__;t.chatRenderer=E}).call(this,n(101).setImmediate)},217:function(e,t,n){"use strict";t.__esModule=!0,t.gameReducer=t.gameMiddleware=t.useGame=void 0;var o=n(687);t.useGame=o.useGame;var r=n(688);t.gameMiddleware=r.gameMiddleware;var i=n(690);t.gameReducer=i.gameReducer},218:function(e,t,n){"use strict";t.__esModule=!0,t.selectGame=void 0;t.selectGame=function(e){return e.game}},219:function(e,t,n){"use strict";t.__esModule=!0,t.connectionRestored=t.connectionLost=t.roundRestarted=void 0;var o=n(22),r=(0,o.createAction)("roundrestart");t.roundRestarted=r;var i=(0,o.createAction)("game/connectionLost");t.connectionLost=i;var a=(0,o.createAction)("game/connectionRestored");t.connectionRestored=a},220:function(e,t,n){"use strict";t.__esModule=!0,t.pingReducer=t.PingIndicator=t.pingMiddleware=void 0;var o=n(692);t.pingMiddleware=o.pingMiddleware;var r=n(693);t.PingIndicator=r.PingIndicator;var i=n(696);t.pingReducer=i.pingReducer},221:function(e,t,n){"use strict";t.__esModule=!0,t.PING_ROUNDTRIP_WORST=t.PING_ROUNDTRIP_BEST=t.PING_QUEUE_SIZE=t.PING_MAX_FAILS=t.PING_TIMEOUT=t.PING_INTERVAL=void 0;t.PING_INTERVAL=2500;t.PING_TIMEOUT=2e3;t.PING_MAX_FAILS=3;t.PING_QUEUE_SIZE=8;t.PING_ROUNDTRIP_BEST=50;t.PING_ROUNDTRIP_WORST=200},65:function(e,t,n){"use strict";t.__esModule=!0,t.openChatSettings=t.toggleSettings=t.changeSettingsTab=t.loadSettings=t.updateSettings=void 0;var o=n(22),r=(0,o.createAction)("settings/update");t.updateSettings=r;var i=(0,o.createAction)("settings/load");t.loadSettings=i;var a=(0,o.createAction)("settings/changeTab");t.changeSettingsTab=a;var c=(0,o.createAction)("settings/toggle");t.toggleSettings=c;var s=(0,o.createAction)("settings/openChatTab");t.openChatSettings=s},668:function(e,t,n){n(148),e.exports=n(669)},669:function(e,t,n){"use strict";var o=n(0);n(670),n(671);var r,i,a=n(99),c=n(22),s=(n(100),n(57)),l=n(186),u=n(136),d=n(187),g=n(212),p=n(145),h=n(217),f=n(691),m=n(220),v=n(144),E=n(697);function y(e,t,n,o,r,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(o,r)}a.perf.mark("inception",null==(r=window.performance)||null==(i=r.timing)?void 0:i.navigationStart),a.perf.mark("init");var b=(0,d.configureStore)({reducer:(0,c.combineReducers)({audio:g.audioReducer,chat:p.chatReducer,game:h.gameReducer,ping:m.pingReducer,settings:v.settingsReducer}),middleware:{pre:[p.chatMiddleware,m.pingMiddleware,E.telemetryMiddleware,v.settingsMiddleware,g.audioMiddleware,h.gameMiddleware]}}),S=(0,u.createRenderer)((function(){var e=n(698).Panel;return(0,o.createComponentVNode)(2,d.StoreProvider,{store:b,children:(0,o.createComponentVNode)(2,e)})})),_=function(){var e,t=(e=regeneratorRuntime.mark((function n(e){var t;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return void 0===e&&(e="output"),n.next=3,Byond.winget(e);case 3:t=n.sent,Byond.winset("browseroutput",{size:t.size});case 5:case"end":return n.stop()}}),n)})),function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function a(e){y(i,o,r,a,c,"next",e)}function c(e){y(i,o,r,a,c,"throw",e)}a(undefined)}))});return function(e){return t.apply(this,arguments)}}();!function C(){if("loading"!==document.readyState){for((0,s.setupGlobalEvents)({ignoreWindowFocus:!0}),(0,f.setupPanelFocusHacks)(),(0,l.captureExternalLinks)(),b.subscribe(S),window.update=function(e){return b.dispatch(Byond.parseJson(e))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}Byond.winset("output",{"is-visible":!1}),Byond.winset("browseroutput",{"is-visible":!0,"is-disabled":!1,pos:"0x0",size:"0x0"}),_()}else document.addEventListener("DOMContentLoaded",C)}()},670:function(e,t,n){},671:function(e,t,n){},672:function(e,t,n){"use strict";t.__esModule=!0,t.useAudio=void 0;var o=n(22),r=n(213);t.useAudio=function(e){var t=(0,o.useSelector)(e,r.selectAudio),n=(0,o.useDispatch)(e);return Object.assign({},t,{toggle:function(){return n({type:"audio/toggle"})}})}},673:function(e,t,n){"use strict";t.__esModule=!0,t.audioMiddleware=void 0;var o=n(674);t.audioMiddleware=function(e){var t=new o.AudioPlayer;return t.onPlay((function(){e.dispatch({type:"audio/playing"})})),t.onStop((function(){e.dispatch({type:"audio/stopped"})})),function(e){return function(n){var o=n.type,r=n.payload;if("audio/playMusic"===o){var i=r.url,a=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(r,["url"]);return t.play(i,a),e(n)}if("audio/stopMusic"===o)return t.stop(),e(n);if("settings/update"===o||"settings/load"===o){var c=null==r?void 0:r.adminMusicVolume;return"number"==typeof c&&t.setVolume(c),e(n)}return e(n)}}}},674:function(e,t,n){"use strict";function o(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0&&e.node.currentTime>=e.options.end&&e.stop())}),1e3))}var t=e.prototype;return t.destroy=function(){this.node&&(this.node.stop(),document.removeChild(this.node),clearInterval(this.playbackInterval))},t.play=function(e,t){void 0===t&&(t={}),this.node&&(i.log("playing",e,t),this.options=t,this.node.src=e)},t.stop=function(){if(this.node){if(this.playing)for(var e,t=o(this.onStopSubscribers);!(e=t()).done;)(0,e.value)();i.log("stopping"),this.playing=!1,this.node.src=""}},t.setVolume=function(e){this.node&&(this.volume=e,this.node.volume=e)},t.onPlay=function(e){this.node&&this.onPlaySubscribers.push(e)},t.onStop=function(e){this.node&&this.onStopSubscribers.push(e)},e}();t.AudioPlayer=a},675:function(e,t,n){"use strict";t.__esModule=!0,t.NowPlayingWidget=void 0;var o=n(0),r=n(9),i=n(22),a=n(1),c=n(144),s=n(213);t.NowPlayingWidget=function(e,t){var n,l=(0,i.useSelector)(t,s.selectAudio),u=(0,i.useDispatch)(t),d=(0,c.useSettings)(t),g=null==(n=l.meta)?void 0:n.title;return(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[l.playing&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex.Item,{shrink:0,mx:.5,color:"label",children:"Now playing:"}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:.5,grow:1,style:{"white-space":"nowrap",overflow:"hidden","text-overflow":"ellipsis"},children:g||"Unknown Track"})],4)||(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,color:"label",children:"Nothing to play."}),l.playing&&(0,o.createComponentVNode)(2,a.Flex.Item,{mx:.5,fontSize:"0.9em",children:(0,o.createComponentVNode)(2,a.Button,{tooltip:"Stop",icon:"stop",onClick:function(){return u({type:"audio/stopMusic"})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:.5,fontSize:"0.9em",children:(0,o.createComponentVNode)(2,a.Knob,{minValue:0,maxValue:1,value:d.adminMusicVolume,step:.0025,stepPixelSize:1,format:function(e){return(0,r.toFixed)(100*e)+"%"},onDrag:function(e,t){return d.update({adminMusicVolume:t})}})})]})}},676:function(e,t,n){"use strict";t.__esModule=!0,t.useSettings=void 0;var o=n(22),r=n(65),i=n(104);t.useSettings=function(e){var t=(0,o.useSelector)(e,i.selectSettings),n=(0,o.useDispatch)(e);return Object.assign({},t,{visible:t.view.visible,toggle:function(){return n((0,r.toggleSettings)())},update:function(e){return n((0,r.updateSettings)(e))}})}},677:function(e,t,n){"use strict";t.__esModule=!0,t.settingsMiddleware=void 0;var o=n(79),r=n(214),i=n(65),a=n(104);t.settingsMiddleware=function(e){var t=!1;return function(n){return function(c){var s,l=c.type,u=c.payload;if(t||(t=!0,o.storage.get("panel-settings").then((function(t){e.dispatch((0,i.loadSettings)(t))}))),l===i.updateSettings.type||l===i.loadSettings.type){var d=null==u?void 0:u.theme;d&&(0,r.setClientTheme)(d),n(c);var g=(0,a.selectSettings)(e.getState());return s=g.fontSize,document.documentElement.style.setProperty("font-size",s+"px"),document.body.style.setProperty("font-size",s+"px"),void o.storage.set("panel-settings",g)}return n(c)}}}},678:function(e,t,n){"use strict";t.__esModule=!0,t.settingsReducer=void 0;var o=n(65),r={version:1,fontSize:13,lineHeight:1.2,theme:"default",adminMusicVolume:.5,highlightText:"",highlightColor:"#ffdd44",view:{visible:!1,activeTab:n(215).SETTINGS_TABS[0].id}};t.settingsReducer=function(e,t){void 0===e&&(e=r);var n=t.type,i=t.payload;if(n===o.updateSettings.type)return Object.assign({},e,i);if(n===o.loadSettings.type)return(null==i?void 0:i.version)?(delete i.view,Object.assign({},e,i)):e;if(n===o.toggleSettings.type)return Object.assign({},e,{view:Object.assign({},e.view,{visible:!e.view.visible})});if(n===o.openChatSettings.type)return Object.assign({},e,{view:Object.assign({},e.view,{visible:!0,activeTab:"chatPage"})});if(n===o.changeSettingsTab.type){var a=i.tabId;return Object.assign({},e,{view:Object.assign({},e.view,{activeTab:a})})}return e}},679:function(e,t,n){"use strict";t.__esModule=!0,t.SettingsGeneral=t.SettingsPanel=void 0;var o=n(0),r=n(9),i=n(22),a=n(1),c=n(145),s=n(80),l=n(214),u=n(65),d=n(215),g=n(104);t.SettingsPanel=function(e,t){var n=(0,i.useSelector)(t,g.selectActiveTab),r=(0,i.useDispatch)(t);return(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:1,children:(0,o.createComponentVNode)(2,a.Section,{fitted:!0,fill:!0,minHeight:"8em",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:d.SETTINGS_TABS.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:e.id===n,onClick:function(){return r((0,u.changeSettingsTab)({tabId:e.id}))},children:e.name},e.id)}))})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:["general"===n&&(0,o.createComponentVNode)(2,p),"chatPage"===n&&(0,o.createComponentVNode)(2,c.ChatPageSettings)]})]})};var p=function(e,t){var n=(0,i.useSelector)(t,g.selectSettings),c=n.theme,d=n.fontSize,p=n.lineHeight,h=n.highlightText,f=n.highlightColor,m=(0,i.useDispatch)(t);return(0,o.createComponentVNode)(2,a.Section,{fill:!0,children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Theme",children:(0,o.createComponentVNode)(2,a.Dropdown,{selected:c,options:l.THEMES,onSelected:function(e){return m((0,u.updateSettings)({theme:e}))}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Font size",children:(0,o.createComponentVNode)(2,a.NumberInput,{width:"4em",step:1,stepPixelSize:10,minValue:8,maxValue:32,value:d,unit:"px",format:function(e){return(0,r.toFixed)(e)},onChange:function(e,t){return m((0,u.updateSettings)({fontSize:t}))}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Line height",children:(0,o.createComponentVNode)(2,a.NumberInput,{width:"4em",step:.01,stepPixelSize:2,minValue:.8,maxValue:5,value:p,format:function(e){return(0,r.toFixed)(e,2)},onDrag:function(e,t){return m((0,u.updateSettings)({lineHeight:t}))}})})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,color:"label",align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:"Highlight words (comma separated):"}),(0,o.createComponentVNode)(2,a.Flex.Item,{shrink:0,children:[(0,o.createComponentVNode)(2,a.ColorBox,{mr:1,color:f}),(0,o.createComponentVNode)(2,a.Input,{width:"5em",monospace:!0,placeholder:"#ffffff",value:f,onInput:function(e,t){return m((0,u.updateSettings)({highlightColor:t}))}})]})]}),(0,o.createComponentVNode)(2,a.TextArea,{height:"3em",value:h,onChange:function(e,t){return m((0,u.updateSettings)({highlightText:t}))}})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"check",onClick:function(){return m((0,s.rebuildChat)())},children:"Apply now"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,fontSize:"0.9em",ml:1,color:"label",children:"Can freeze the chat for a while."})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Button,{icon:"save",onClick:function(){return m((0,s.saveChatToDisk)())},children:"Save chat log"})]})};t.SettingsGeneral=p},680:function(e,t,n){"use strict";t.__esModule=!0,t.ChatPageSettings=void 0;var o=n(0),r=n(22),i=n(1),a=n(80),c=n(106),s=n(146);t.ChatPageSettings=function(e,t){var n=(0,r.useSelector)(t,s.selectCurrentChatPage),l=(0,r.useDispatch)(t);return(0,o.createComponentVNode)(2,i.Section,{fill:!0,children:[(0,o.createComponentVNode)(2,i.Flex,{mx:-.5,align:"center",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{mx:.5,grow:1,children:(0,o.createComponentVNode)(2,i.Input,{fluid:!0,value:n.name,onChange:function(e,t){return l((0,a.updateChatPage)({pageId:n.id,name:t}))}})}),(0,o.createComponentVNode)(2,i.Flex.Item,{mx:.5,children:(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"red",onClick:function(){return l((0,a.removeChatPage)({pageId:n.id}))},children:"Remove"})})]}),(0,o.createComponentVNode)(2,i.Divider),(0,o.createComponentVNode)(2,i.Section,{title:"Messages to display",level:2,children:[c.MESSAGE_TYPES.filter((function(e){return!e.important&&!e.admin})).map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:n.acceptedTypes[e.type],onClick:function(){return l((0,a.toggleAcceptedType)({pageId:n.id,type:e.type}))},children:e.name},e.type)})),(0,o.createComponentVNode)(2,i.Collapsible,{mt:1,color:"transparent",title:"Admin stuff",children:c.MESSAGE_TYPES.filter((function(e){return!e.important&&e.admin})).map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:n.acceptedTypes[e.type],onClick:function(){return l((0,a.toggleAcceptedType)({pageId:n.id,type:e.type}))},children:e.name},e.type)}))})]})]})}},681:function(e,t,n){"use strict";t.__esModule=!0,t.ChatPanel=void 0;var o=n(0),r=n(6),i=n(1),a=n(216);var c=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).ref=(0,o.createRef)(),t.state={scrollTracking:!0},t.handleScrollTrackingChange=function(e){return t.setState({scrollTracking:e})},t}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var s=c.prototype;return s.componentDidMount=function(){a.chatRenderer.mount(this.ref.current),a.chatRenderer.events.on("scrollTrackingChanged",this.handleScrollTrackingChange),this.componentDidUpdate()},s.componentWillUnmount=function(){a.chatRenderer.events.off("scrollTrackingChanged",this.handleScrollTrackingChange)},s.componentDidUpdate=function(e){requestAnimationFrame((function(){a.chatRenderer.ensureScrollTracking()})),(!e||(0,r.shallowDiffers)(this.props,e))&&a.chatRenderer.assignStyle({width:"100%","white-space":"pre-wrap","font-size":this.props.fontSize,"line-height":this.props.lineHeight})},s.render=function(){var e=this.state.scrollTracking;return(0,o.createFragment)([(0,o.createVNode)(1,"div","Chat",null,1,null,null,this.ref),!e&&(0,o.createComponentVNode)(2,i.Button,{className:"Chat__scrollButton",icon:"arrow-down",onClick:function(){return a.chatRenderer.scrollToBottom()},children:"Scroll to bottom"})],0)},c}(o.Component);t.ChatPanel=c},682:function(e,t,n){"use strict";t.__esModule=!0,t.linkifyNode=t.highlightNode=t.replaceInTextNode=void 0;var o=function(e,t){return function(n){for(var o,r,i=n.textContent,a=i.length,c=0,s=0;o=e.exec(i);){s+=1,r||(r=document.createDocumentFragment());var l=o[0],u=l.length,d=o.index;c0&&(0,o.createComponentVNode)(2,l,{value:e.unreadCount}),onClick:function(){return d((0,a.changeChatPage)({pageId:e.id}))},children:e.name},e.id)}))})}),(0,o.createComponentVNode)(2,i.Flex.Item,{ml:1,children:(0,o.createComponentVNode)(2,i.Button,{color:"transparent",icon:"plus",onClick:function(){d((0,a.addChatPage)()),d((0,s.openChatSettings)())}})})]})}},684:function(e,t,n){"use strict";t.__esModule=!0,t.chatMiddleware=void 0;var o=n(79),r=n(65),i=n(104),a=n(80),c=n(106),s=n(105),l=n(216),u=n(146);n(29);function d(e,t,n,o,r,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(o,r)}function g(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function a(e){d(i,o,r,a,c,"next",e)}function c(e){d(i,o,r,a,c,"throw",e)}a(undefined)}))}}var p=function(){var e=g(regeneratorRuntime.mark((function t(e){var n,r,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=(0,u.selectChat)(e.getState()),r=Math.max(0,l.chatRenderer.messages.length-c.MAX_PERSISTED_MESSAGES),i=l.chatRenderer.messages.slice(r).map((function(e){return(0,s.serializeMessage)(e)})),o.storage.set("chat-state",n),o.storage.set("chat-messages",i);case 5:case"end":return t.stop()}}),t)})));return function(t){return e.apply(this,arguments)}}(),h=function(){var e=g(regeneratorRuntime.mark((function t(e){var n,r,i,c;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Promise.all([o.storage.get("chat-state"),o.storage.get("chat-messages")]);case 2:if(n=t.sent,r=n[0],i=n[1],!(r&&r.version<=4)){t.next=8;break}return e.dispatch((0,a.loadChat)()),t.abrupt("return");case 8:i&&(c=[].concat(i,[(0,s.createMessage)({type:"internal/reconnected"})]),l.chatRenderer.processBatch(c,{prepend:!0})),e.dispatch((0,a.loadChat)(r));case 10:case"end":return t.stop()}}),t)})));return function(t){return e.apply(this,arguments)}}();t.chatMiddleware=function(e){var t=!1,n=!1;return l.chatRenderer.events.on("batchProcessed",(function(t){n&&e.dispatch((0,a.updateMessageCount)(t))})),l.chatRenderer.events.on("scrollTrackingChanged",(function(t){e.dispatch((0,a.changeScrollTracking)(t))})),setInterval((function(){return p(e)}),c.MESSAGE_SAVE_INTERVAL),function(o){return function(c){var s=c.type,d=c.payload;if(t||(t=!0,h(e)),"chat/message"!==s){if(s===a.loadChat.type){o(c);var g=(0,u.selectCurrentChatPage)(e.getState());return l.chatRenderer.changePage(g),l.chatRenderer.onStateLoaded(),void(n=!0)}if(s!==a.changeChatPage.type&&s!==a.addChatPage.type&&s!==a.removeChatPage.type&&s!==a.toggleAcceptedType.type){if(s===a.rebuildChat.type)return l.chatRenderer.rebuildChat(),o(c);if(s!==r.updateSettings.type&&s!==r.loadSettings.type){if("roundrestart"===s)return p(e),o(c);if(s!==a.saveChatToDisk.type)return o(c);l.chatRenderer.saveToDisk()}else{o(c);var f=(0,i.selectSettings)(e.getState());l.chatRenderer.setHighlight(f.highlightText,f.highlightColor)}}else{o(c);var m=(0,u.selectCurrentChatPage)(e.getState());l.chatRenderer.changePage(m)}}else{var v=Array.isArray(d)?d:[d];l.chatRenderer.processBatch(v)}}}}},685:function(e,t,n){"use strict";t.__esModule=!0,t.chatReducer=t.initialState=void 0;var o,r=n(80),i=n(105);function a(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0&&(_[A.id]=Object.assign({},A,{unreadCount:A.unreadCount+M}))}return Object.assign({},e,{pageById:_})}if(o===r.addChatPage.type)return Object.assign({},e,{currentPageId:c.id,pages:[].concat(e.pages,[c.id]),pageById:Object.assign({},e.pageById,(n={},n[c.id]=c,n))});if(o===r.changeChatPage.type){var I,P=c.pageId,x=Object.assign({},e.pageById[P],{unreadCount:0});return Object.assign({},e,{currentPageId:P,pageById:Object.assign({},e.pageById,(I={},I[P]=x,I))})}if(o===r.updateChatPage.type){var k,R=c.pageId,O=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(c,["pageId"]),V=Object.assign({},e.pageById[R],O);return Object.assign({},e,{pageById:Object.assign({},e.pageById,(k={},k[R]=V,k))})}if(o===r.toggleAcceptedType.type){var G,B=c.pageId,L=c.type,D=Object.assign({},e.pageById[B]);return D.acceptedTypes=Object.assign({},D.acceptedTypes),D.acceptedTypes[L]=!D.acceptedTypes[L],Object.assign({},e,{pageById:Object.assign({},e.pageById,(G={},G[B]=D,G))})}if(o===r.removeChatPage.type){var F=c.pageId,j=Object.assign({},e,{pages:[].concat(e.pages),pageById:Object.assign({},e.pageById)});return delete j.pageById[F],j.pages=j.pages.filter((function(e){return e!==F})),0===j.pages.length&&(j.pages.push(s.id),j.pageById[s.id]=s,j.currentPageId=s.id),j.currentPageId&&j.currentPageId!==F||(j.currentPageId=j.pages[0]),j}return e}},686:function(e,t,n){"use strict";t.__esModule=!0,t.audioReducer=void 0;var o={visible:!1,playing:!1,track:null};t.audioReducer=function(e,t){void 0===e&&(e=o);var n=t.type,r=t.payload;return"audio/playing"===n?Object.assign({},e,{visible:!0,playing:!0}):"audio/stopped"===n?Object.assign({},e,{visible:!1,playing:!1}):"audio/playMusic"===n?Object.assign({},e,{meta:r}):"audio/stopMusic"===n?Object.assign({},e,{visible:!1,playing:!1,meta:null}):"audio/toggle"===n?Object.assign({},e,{visible:!e.visible}):e}},687:function(e,t,n){"use strict";t.__esModule=!0,t.useGame=void 0;var o=n(22),r=n(218);t.useGame=function(e){return(0,o.useSelector)(e,r.selectGame)}},688:function(e,t,n){"use strict";t.__esModule=!0,t.gameMiddleware=void 0;var o=n(147),r=n(219),i=n(218),a=n(689),c=function(e){return Object.assign({},e,{meta:Object.assign({},e.meta,{now:Date.now()})})};t.gameMiddleware=function(e){var t;return setInterval((function(){var n=e.getState();if(n){var o=(0,i.selectGame)(n),s=t&&Date.now()>=t+a.CONNECTION_LOST_AFTER;!o.connectionLostAt&&s&&e.dispatch(c((0,r.connectionLost)())),o.connectionLostAt&&!s&&e.dispatch(c((0,r.connectionRestored)()))}}),1e3),function(e){return function(n){var i=n.type,a=(n.payload,n.meta);return i===o.pingSuccess.type?(t=a.now,e(n)):i===r.roundRestarted.type?e(c(n)):e(n)}}}},689:function(e,t,n){"use strict";t.__esModule=!0,t.CONNECTION_LOST_AFTER=void 0;t.CONNECTION_LOST_AFTER=15e3},690:function(e,t,n){"use strict";t.__esModule=!0,t.gameReducer=void 0;var o=n(219),r={roundId:null,roundTime:null,roundRestartedAt:null,connectionLostAt:null};t.gameReducer=function(e,t){void 0===e&&(e=r);var n=t.type,i=(t.payload,t.meta);return"roundrestart"===n?Object.assign({},e,{roundRestartedAt:i.now}):n===o.connectionLost.type?Object.assign({},e,{connectionLostAt:i.now}):n===o.connectionRestored.type?Object.assign({},e,{connectionLostAt:null}):e}},691:function(e,t,n){"use strict";(function(e){t.__esModule=!0,t.setupPanelFocusHacks=void 0;var o=n(102),r=n(57),i=n(189),a=function(){return e((function(){return(0,i.focusMap)()}))};t.setupPanelFocusHacks=function(){var e=!1,t=null;window.addEventListener("focusin",(function(t){e=(0,r.canStealFocus)(t.target)})),window.addEventListener("mousedown",(function(e){t=[e.screenX,e.screenY]})),window.addEventListener("mouseup",(function(n){if(t){var r=[n.screenX,n.screenY];(0,o.vecLength)((0,o.vecSubtract)(r,t))>=10&&(e=!0)}e||a()})),r.globalEvents.on("keydown",(function(e){e.isModifierKey()||a()}))}}).call(this,n(101).setImmediate)},692:function(e,t,n){"use strict";t.__esModule=!0,t.pingMiddleware=void 0;var o=n(2),r=n(147),i=n(221);t.pingMiddleware=function(e){var t=!1,n=0,a=[],c=function(){for(var t=0;ti.PING_TIMEOUT&&(a[t]=null,e.dispatch((0,r.pingFail)()))}var s={index:n,sentAt:Date.now()};a[n]=s,(0,o.sendMessage)({type:"ping",payload:{index:n}}),n=(n+1)%i.PING_QUEUE_SIZE};return function(e){return function(n){var o=n.type,s=n.payload;if(t||(t=!0,setInterval(c,i.PING_INTERVAL),c()),"pingReply"===o){var l=s.index,u=a[l];if(!u)return;return a[l]=null,e((0,r.pingSuccess)(u))}return e(n)}}}},693:function(e,t,n){"use strict";t.__esModule=!0,t.PingIndicator=void 0;var o=n(0),r=n(694),i=n(9),a=n(22),c=n(1),s=n(695);t.PingIndicator=function(e,t){var n=(0,a.useSelector)(t,s.selectPing),l=r.Color.lookup(n.networkQuality,[new r.Color(220,40,40),new r.Color(220,200,40),new r.Color(60,220,40)]),u=n.roundtrip?(0,i.toFixed)(n.roundtrip):"--";return(0,o.createVNode)(1,"div","Ping",[(0,o.createComponentVNode)(2,c.Box,{className:"Ping__indicator",backgroundColor:l}),u],0)}},694:function(e,t,n){"use strict";t.__esModule=!0,t.Color=void 0;var o=function(){function e(e,t,n,o){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===o&&(o=1),this.r=e,this.g=t,this.b=n,this.a=o}return e.prototype.toString=function(){return"rgba("+(0|this.r)+", "+(0|this.g)+", "+(0|this.b)+", "+(0|this.a)+")"},e}();t.Color=o,o.fromHex=function(e){return new o(parseInt(e.substr(1,2),16),parseInt(e.substr(3,2),16),parseInt(e.substr(5,2),16))},o.lerp=function(e,t,n){return new o((t.r-e.r)*n+e.r,(t.g-e.g)*n+e.g,(t.b-e.b)*n+e.b,(t.a-e.a)*n+e.a)},o.lookup=function(e,t){void 0===t&&(t=[]);var n=t.length;if(n<2)throw new Error("Needs at least two colors!");var r=e*(n-1);if(e<1e-4)return t[0];if(e>=.9999)return t[n-1];var i=r%1,a=0|r;return o.lerp(t[a],t[a+1],i)}},695:function(e,t,n){"use strict";t.__esModule=!0,t.selectPing=void 0;t.selectPing=function(e){return e.ping}},696:function(e,t,n){"use strict";t.__esModule=!0,t.pingReducer=void 0;var o=n(9),r=n(147),i=n(221);t.pingReducer=function(e,t){void 0===e&&(e={});var n=t.type,a=t.payload;if(n===r.pingSuccess.type){var c=a.roundtrip,s=e.roundtripAvg||c,l=Math.round(.4*s+.6*c);return{roundtrip:c,roundtripAvg:l,failCount:0,networkQuality:1-(0,o.scale)(l,i.PING_ROUNDTRIP_BEST,i.PING_ROUNDTRIP_WORST)}}if(n===r.pingFail.type){var u=e.failCount,d=void 0===u?0:u,g=(0,o.clamp01)(e.networkQuality-d/i.PING_MAX_FAILS),p=Object.assign({},e,{failCount:d+1,networkQuality:g});return d>i.PING_MAX_FAILS&&(p.roundtrip=undefined,p.roundtripAvg=undefined),p}return e}},697:function(e,t,n){"use strict";t.__esModule=!0,t.telemetryMiddleware=void 0;var o=n(2),r=n(79);function i(e,t,n,o,r,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(o,r)}var a=(0,n(29).createLogger)("telemetry");t.telemetryMiddleware=function(e){var t,n;return function(c){return function(s){var l,u=s.type,d=s.payload;if("telemetry/request"!==u)return"backend/update"===u?(c(s),void(l=regeneratorRuntime.mark((function h(){var o,i,c,s;return regeneratorRuntime.wrap((function(l){for(;;)switch(l.prev=l.next){case 0:if(i=null==d||null==(o=d.config)?void 0:o.client){l.next=4;break}return a.error("backend/update payload is missing client data!"),l.abrupt("return");case 4:if(t){l.next=13;break}return l.next=7,r.storage.get("telemetry");case 7:if(l.t0=l.sent,l.t0){l.next=10;break}l.t0={};case 10:(t=l.t0).connections||(t.connections=[]),a.debug("retrieved telemetry from storage",t);case 13:c=!1,t.connections.find((function(e){return n=i,(t=e).ckey===n.ckey&&t.address===n.address&&t.computer_id===n.computer_id;var t,n}))||(c=!0,t.connections.unshift(i),t.connections.length>10&&t.connections.pop()),c&&(a.debug("saving telemetry to storage",t),r.storage.set("telemetry",t)),n&&(s=n,n=null,e.dispatch({type:"telemetry/request",payload:s}));case 18:case"end":return l.stop()}}),h)})),function(){var e=this,t=arguments;return new Promise((function(n,o){var r=l.apply(e,t);function a(e){i(r,n,o,a,c,"next",e)}function c(e){i(r,n,o,a,c,"throw",e)}a(undefined)}))})()):c(s);if(!t)return a.debug("deferred"),void(n=d);a.debug("sending");var g=(null==d?void 0:d.limits)||{},p=t.connections.slice(0,g.connections);(0,o.sendMessage)({type:"telemetry",payload:{connections:p}})}}}},698:function(e,t,n){"use strict";t.__esModule=!0,t.Panel=void 0;var o=n(0),r=n(1),i=n(3),a=n(212),c=n(145),s=n(217),l=n(699),u=n(220),d=n(144);t.Panel=function(e,t){if(Byond.IS_LTE_IE10)return(0,o.createComponentVNode)(2,g);var n=(0,a.useAudio)(t),p=(0,d.useSettings)(t),h=(0,s.useGame)(t);return(0,o.createComponentVNode)(2,i.Pane,{theme:"default"===p.theme?"light":p.theme,children:(0,o.createComponentVNode)(2,r.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{children:(0,o.createComponentVNode)(2,r.Section,{fitted:!0,children:(0,o.createComponentVNode)(2,r.Flex,{mx:.5,align:"center",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{mx:.5,grow:1,overflowX:"auto",children:(0,o.createComponentVNode)(2,c.ChatTabs)}),(0,o.createComponentVNode)(2,r.Flex.Item,{mx:.5,children:(0,o.createComponentVNode)(2,u.PingIndicator)}),(0,o.createComponentVNode)(2,r.Flex.Item,{mx:.5,children:(0,o.createComponentVNode)(2,r.Button,{color:"grey",selected:n.visible,icon:"music",tooltip:"Music player",tooltipPosition:"bottom-left",onClick:function(){return n.toggle()}})}),(0,o.createComponentVNode)(2,r.Flex.Item,{mx:.5,children:(0,o.createComponentVNode)(2,r.Button,{icon:p.visible?"times":"cog",selected:p.visible,tooltip:p.visible?"Close settings":"Open settings",tooltipPosition:"bottom-left",onClick:function(){return p.toggle()}})})]})})}),n.visible&&(0,o.createComponentVNode)(2,r.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,r.Section,{children:(0,o.createComponentVNode)(2,a.NowPlayingWidget)})}),p.visible&&(0,o.createComponentVNode)(2,r.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,d.SettingsPanel)}),(0,o.createComponentVNode)(2,r.Flex.Item,{mt:1,grow:1,children:(0,o.createComponentVNode)(2,r.Section,{fill:!0,fitted:!0,position:"relative",children:[(0,o.createComponentVNode)(2,i.Pane.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.ChatPanel,{lineHeight:p.lineHeight})}),(0,o.createComponentVNode)(2,l.Notifications,{children:[h.connectionLostAt&&(0,o.createComponentVNode)(2,l.Notifications.Item,{rightSlot:(0,o.createComponentVNode)(2,r.Button,{color:"white",onClick:function(){return Byond.command(".reconnect")},children:"Reconnect"}),children:"You are either AFK, experiencing lag or the connection has closed."}),h.roundRestartedAt&&(0,o.createComponentVNode)(2,l.Notifications.Item,{children:"The connection has been closed because the server is restarting. Please wait while you automatically reconnect."})]})]})})]})})};var g=function(e,t){var n=(0,d.useSettings)(t);return(0,o.createComponentVNode)(2,i.Pane,{theme:"default"===n.theme?"light":n.theme,children:(0,o.createComponentVNode)(2,i.Pane.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,r.Button,{style:{position:"fixed",top:"1em",right:"2em","z-index":1e3},selected:n.visible,onClick:function(){return n.toggle()},children:"Settings"}),n.visible&&(0,o.createComponentVNode)(2,r.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,d.SettingsPanel)})||(0,o.createComponentVNode)(2,c.ChatPanel,{lineHeight:n.lineHeight})]})})}},699:function(e,t,n){"use strict";t.__esModule=!0,t.Notifications=void 0;var o=n(0),r=n(1),i=function(e){var t=e.children;return(0,o.createVNode)(1,"div","Notifications",t,0)};t.Notifications=i;i.Item=function(e){var t=e.rightSlot,n=e.children;return(0,o.createComponentVNode)(2,r.Flex,{align:"center",className:"Notification",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{className:"Notification__content",grow:1,children:n}),t&&(0,o.createComponentVNode)(2,r.Flex.Item,{className:"Notification__rightSlot",children:t})]})}},80:function(e,t,n){"use strict";t.__esModule=!0,t.saveChatToDisk=t.changeScrollTracking=t.removeChatPage=t.toggleAcceptedType=t.updateChatPage=t.changeChatPage=t.addChatPage=t.updateMessageCount=t.rebuildChat=t.loadChat=void 0;var o=n(22),r=n(105),i=(0,o.createAction)("chat/load");t.loadChat=i;var a=(0,o.createAction)("chat/rebuild");t.rebuildChat=a;var c=(0,o.createAction)("chat/updateMessageCount");t.updateMessageCount=c;var s=(0,o.createAction)("chat/addPage",(function(){return{payload:(0,r.createPage)()}}));t.addChatPage=s;var l=(0,o.createAction)("chat/changePage");t.changeChatPage=l;var u=(0,o.createAction)("chat/updatePage");t.updateChatPage=u;var d=(0,o.createAction)("chat/toggleAcceptedType");t.toggleAcceptedType=d;var g=(0,o.createAction)("chat/removePage");t.removeChatPage=g;var p=(0,o.createAction)("chat/changeScrollTracking");t.changeScrollTracking=p;var h=(0,o.createAction)("chat/saveToDisk");t.saveChatToDisk=h}}); \ No newline at end of file +!function(e){function t(t){for(var o,a,c=t[0],s=t[1],l=t[2],d=0,g=[];d=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=a.IMAGE_RETRY_LIMIT)d.error("failed to load an image after "+n+" attempts");else{var o=t.src;t.src=null,t.src=o+"#"+n,t.setAttribute("data-reload-n",n+1)}}),a.IMAGE_RETRY_DELAY)},m=function(e){var t=e.node,n=e.times;if(t&&n){var o=t.querySelector(".Chat__badge"),i=o||document.createElement("div");i.textContent=n,i.className=(0,r.classes)(["Chat__badge","Chat__badge--animate"]),requestAnimationFrame((function(){i.className="Chat__badge"})),o||t.appendChild(i)}},v=function(){function t(){var e=this;this.loaded=!1,this.rootNode=null,this.queue=[],this.messages=[],this.visibleMessages=[],this.page=null,this.events=new o.EventEmitter,this.scrollNode=null,this.scrollTracking=!0,this.handleScroll=function(t){var n=e.scrollNode,o=n.scrollHeight,r=n.scrollTop+n.offsetHeight,i=Math.abs(o-r)<24;i!==e.scrollTracking&&(e.scrollTracking=i,e.events.emit("scrollTrackingChanged",i),d.debug("tracking",e.scrollTracking))},this.ensureScrollTracking=function(){e.scrollTracking&&e.scrollToBottom()},setInterval((function(){return e.pruneMessages()}),a.MESSAGE_PRUNE_INTERVAL)}var n=t.prototype;return n.isReady=function(){return this.loaded&&this.rootNode&&this.page},n.mount=function(t){var n=this;this.rootNode?t.appendChild(this.rootNode):this.rootNode=t,this.scrollNode=function(e){for(var t=document.body,n=e;n&&n!==t;){if(n.scrollWidth0&&(this.processBatch(this.queue),this.queue=[])},n.assignStyle=function(e){void 0===e&&(e={});for(var t=0,n=Object.keys(e);t1&&n.test(e)}));if(0===o.length)return this.highlightRegex=null,void(this.highlightColor=null);this.highlightRegex=new RegExp("("+o.join("|")+")","gi"),this.highlightColor=t},n.scrollToBottom=function(){this.scrollNode.scrollTop=this.scrollNode.scrollHeight},n.changePage=function(e){if(!this.isReady())return this.page=e,void this.tryFlushQueue();this.page=e,this.rootNode.textContent="",this.visibleMessages=[];for(var t,n,o=document.createDocumentFragment(),r=l(this.messages);!(n=r()).done;){var i=n.value;(0,c.canPageAcceptType)(e,i.type)&&(t=i.node,o.appendChild(t),this.visibleMessages.push(i))}t&&(this.rootNode.appendChild(o),t.scrollIntoView())},n.getCombinableMessage=function(e){for(var t=Date.now(),n=this.visibleMessages.length,o=n-1,r=Math.max(0,n-a.COMBINE_MAX_MESSAGES),i=o;i>=r;i--){var s=this.visibleMessages[i];if(!s.type.startsWith(a.MESSAGE_TYPE_INTERNAL)&&(0,c.isSameMessage)(s,e)&&t0){this.visibleMessages=e.slice(t);for(var n=0;n0&&(this.messages=this.messages.slice(r),d.log("pruned "+r+" stored messages"))}else d.debug("pruning delayed")},n.rebuildChat=function(){if(this.isReady()){for(var e,t=Math.max(0,this.messages.length-a.MAX_PERSISTED_MESSAGES),n=this.messages.slice(t),o=l(n);!(e=o()).done;)e.value.node=undefined;this.rootNode.textContent="",this.messages=[],this.visibleMessages=[],this.processBatch(n,{notifyListeners:!1})}},n.saveToDisk=function(){if(!Byond.IS_LTE_IE10){for(var e="",t=document.styleSheets,n=0;n\n\n\nSS13 Chat Log\n\n\n\n
    \n'+a+"
    \n\n\n"]),d=(new Date).toISOString().substring(0,19).replace(/[-:]/g,"").replace("T","-");window.navigator.msSaveBlob(u,"ss13-chatlog-"+d+".html")}},t}();window.__chatRenderer__||(window.__chatRenderer__=new v);var E=window.__chatRenderer__;t.chatRenderer=E}).call(this,n(101).setImmediate)},217:function(e,t,n){"use strict";t.__esModule=!0,t.gameReducer=t.gameMiddleware=t.useGame=void 0;var o=n(687);t.useGame=o.useGame;var r=n(688);t.gameMiddleware=r.gameMiddleware;var i=n(690);t.gameReducer=i.gameReducer},218:function(e,t,n){"use strict";t.__esModule=!0,t.selectGame=void 0;t.selectGame=function(e){return e.game}},219:function(e,t,n){"use strict";t.__esModule=!0,t.connectionRestored=t.connectionLost=t.roundRestarted=void 0;var o=n(22),r=(0,o.createAction)("roundrestart");t.roundRestarted=r;var i=(0,o.createAction)("game/connectionLost");t.connectionLost=i;var a=(0,o.createAction)("game/connectionRestored");t.connectionRestored=a},220:function(e,t,n){"use strict";t.__esModule=!0,t.pingReducer=t.PingIndicator=t.pingMiddleware=void 0;var o=n(692);t.pingMiddleware=o.pingMiddleware;var r=n(693);t.PingIndicator=r.PingIndicator;var i=n(696);t.pingReducer=i.pingReducer},221:function(e,t,n){"use strict";t.__esModule=!0,t.PING_ROUNDTRIP_WORST=t.PING_ROUNDTRIP_BEST=t.PING_QUEUE_SIZE=t.PING_MAX_FAILS=t.PING_TIMEOUT=t.PING_INTERVAL=void 0;t.PING_INTERVAL=2500;t.PING_TIMEOUT=2e3;t.PING_MAX_FAILS=3;t.PING_QUEUE_SIZE=8;t.PING_ROUNDTRIP_BEST=50;t.PING_ROUNDTRIP_WORST=200},65:function(e,t,n){"use strict";t.__esModule=!0,t.openChatSettings=t.toggleSettings=t.changeSettingsTab=t.loadSettings=t.updateSettings=void 0;var o=n(22),r=(0,o.createAction)("settings/update");t.updateSettings=r;var i=(0,o.createAction)("settings/load");t.loadSettings=i;var a=(0,o.createAction)("settings/changeTab");t.changeSettingsTab=a;var c=(0,o.createAction)("settings/toggle");t.toggleSettings=c;var s=(0,o.createAction)("settings/openChatTab");t.openChatSettings=s},668:function(e,t,n){n(148),e.exports=n(669)},669:function(e,t,n){"use strict";var o=n(0);n(670),n(671);var r,i,a=n(99),c=n(22),s=(n(100),n(57)),l=n(186),u=n(136),d=n(187),g=n(212),p=n(145),h=n(217),f=n(691),m=n(220),v=n(144),E=n(697);function y(e,t,n,o,r,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(o,r)}a.perf.mark("inception",null==(r=window.performance)||null==(i=r.timing)?void 0:i.navigationStart),a.perf.mark("init");var b=(0,d.configureStore)({reducer:(0,c.combineReducers)({audio:g.audioReducer,chat:p.chatReducer,game:h.gameReducer,ping:m.pingReducer,settings:v.settingsReducer}),middleware:{pre:[p.chatMiddleware,m.pingMiddleware,E.telemetryMiddleware,v.settingsMiddleware,g.audioMiddleware,h.gameMiddleware]}}),S=(0,u.createRenderer)((function(){var e=n(698).Panel;return(0,o.createComponentVNode)(2,d.StoreProvider,{store:b,children:(0,o.createComponentVNode)(2,e)})})),_=function(){var e,t=(e=regeneratorRuntime.mark((function n(e){var t;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return void 0===e&&(e="output"),n.next=3,Byond.winget(e);case 3:t=n.sent,Byond.winset("browseroutput",{size:t.size});case 5:case"end":return n.stop()}}),n)})),function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function a(e){y(i,o,r,a,c,"next",e)}function c(e){y(i,o,r,a,c,"throw",e)}a(undefined)}))});return function(e){return t.apply(this,arguments)}}();!function C(){if("loading"!==document.readyState){for((0,s.setupGlobalEvents)({ignoreWindowFocus:!0}),(0,f.setupPanelFocusHacks)(),(0,l.captureExternalLinks)(),b.subscribe(S),window.update=function(e){return b.dispatch(Byond.parseJson(e))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}Byond.winset("output",{"is-visible":!1}),Byond.winset("browseroutput",{"is-visible":!0,"is-disabled":!1,pos:"0x0",size:"0x0"}),_()}else document.addEventListener("DOMContentLoaded",C)}()},670:function(e,t,n){},671:function(e,t,n){},672:function(e,t,n){"use strict";t.__esModule=!0,t.useAudio=void 0;var o=n(22),r=n(213);t.useAudio=function(e){var t=(0,o.useSelector)(e,r.selectAudio),n=(0,o.useDispatch)(e);return Object.assign({},t,{toggle:function(){return n({type:"audio/toggle"})}})}},673:function(e,t,n){"use strict";t.__esModule=!0,t.audioMiddleware=void 0;var o=n(674);t.audioMiddleware=function(e){var t=new o.AudioPlayer;return t.onPlay((function(){e.dispatch({type:"audio/playing"})})),t.onStop((function(){e.dispatch({type:"audio/stopped"})})),function(e){return function(n){var o=n.type,r=n.payload;if("audio/playMusic"===o){var i=r.url,a=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(r,["url"]);return t.play(i,a),e(n)}if("audio/stopMusic"===o)return t.stop(),e(n);if("settings/update"===o||"settings/load"===o){var c=null==r?void 0:r.adminMusicVolume;return"number"==typeof c&&t.setVolume(c),e(n)}return e(n)}}}},674:function(e,t,n){"use strict";function o(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0&&e.node.currentTime>=e.options.end&&e.stop())}),1e3))}var t=e.prototype;return t.destroy=function(){this.node&&(this.node.stop(),document.removeChild(this.node),clearInterval(this.playbackInterval))},t.play=function(e,t){void 0===t&&(t={}),this.node&&(i.log("playing",e,t),this.options=t,this.node.src=e)},t.stop=function(){if(this.node){if(this.playing)for(var e,t=o(this.onStopSubscribers);!(e=t()).done;)(0,e.value)();i.log("stopping"),this.playing=!1,this.node.src=""}},t.setVolume=function(e){this.node&&(this.volume=e,this.node.volume=e)},t.onPlay=function(e){this.node&&this.onPlaySubscribers.push(e)},t.onStop=function(e){this.node&&this.onStopSubscribers.push(e)},e}();t.AudioPlayer=a},675:function(e,t,n){"use strict";t.__esModule=!0,t.NowPlayingWidget=void 0;var o=n(0),r=n(9),i=n(22),a=n(1),c=n(144),s=n(213);t.NowPlayingWidget=function(e,t){var n,l=(0,i.useSelector)(t,s.selectAudio),u=(0,i.useDispatch)(t),d=(0,c.useSettings)(t),g=null==(n=l.meta)?void 0:n.title;return(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[l.playing&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex.Item,{shrink:0,mx:.5,color:"label",children:"Now playing:"}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:.5,grow:1,style:{"white-space":"nowrap",overflow:"hidden","text-overflow":"ellipsis"},children:g||"Unknown Track"})],4)||(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,color:"label",children:"Nothing to play."}),l.playing&&(0,o.createComponentVNode)(2,a.Flex.Item,{mx:.5,fontSize:"0.9em",children:(0,o.createComponentVNode)(2,a.Button,{tooltip:"Stop",icon:"stop",onClick:function(){return u({type:"audio/stopMusic"})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:.5,fontSize:"0.9em",children:(0,o.createComponentVNode)(2,a.Knob,{minValue:0,maxValue:1,value:d.adminMusicVolume,step:.0025,stepPixelSize:1,format:function(e){return(0,r.toFixed)(100*e)+"%"},onDrag:function(e,t){return d.update({adminMusicVolume:t})}})})]})}},676:function(e,t,n){"use strict";t.__esModule=!0,t.useSettings=void 0;var o=n(22),r=n(65),i=n(104);t.useSettings=function(e){var t=(0,o.useSelector)(e,i.selectSettings),n=(0,o.useDispatch)(e);return Object.assign({},t,{visible:t.view.visible,toggle:function(){return n((0,r.toggleSettings)())},update:function(e){return n((0,r.updateSettings)(e))}})}},677:function(e,t,n){"use strict";t.__esModule=!0,t.settingsMiddleware=void 0;var o=n(79),r=n(214),i=n(65),a=n(104);t.settingsMiddleware=function(e){var t=!1;return function(n){return function(c){var s,l=c.type,u=c.payload;if(t||(t=!0,o.storage.get("panel-settings").then((function(t){e.dispatch((0,i.loadSettings)(t))}))),l===i.updateSettings.type||l===i.loadSettings.type){var d=null==u?void 0:u.theme;d&&(0,r.setClientTheme)(d),n(c);var g=(0,a.selectSettings)(e.getState());return s=g.fontSize,document.documentElement.style.setProperty("font-size",s+"px"),document.body.style.setProperty("font-size",s+"px"),void o.storage.set("panel-settings",g)}return n(c)}}}},678:function(e,t,n){"use strict";t.__esModule=!0,t.settingsReducer=void 0;var o=n(65),r={version:1,fontSize:13,lineHeight:1.2,theme:"default",adminMusicVolume:.5,highlightText:"",highlightColor:"#ffdd44",view:{visible:!1,activeTab:n(215).SETTINGS_TABS[0].id}};t.settingsReducer=function(e,t){void 0===e&&(e=r);var n=t.type,i=t.payload;if(n===o.updateSettings.type)return Object.assign({},e,i);if(n===o.loadSettings.type)return(null==i?void 0:i.version)?(delete i.view,Object.assign({},e,i)):e;if(n===o.toggleSettings.type)return Object.assign({},e,{view:Object.assign({},e.view,{visible:!e.view.visible})});if(n===o.openChatSettings.type)return Object.assign({},e,{view:Object.assign({},e.view,{visible:!0,activeTab:"chatPage"})});if(n===o.changeSettingsTab.type){var a=i.tabId;return Object.assign({},e,{view:Object.assign({},e.view,{activeTab:a})})}return e}},679:function(e,t,n){"use strict";t.__esModule=!0,t.SettingsGeneral=t.SettingsPanel=void 0;var o=n(0),r=n(9),i=n(22),a=n(1),c=n(145),s=n(80),l=n(214),u=n(65),d=n(215),g=n(104);t.SettingsPanel=function(e,t){var n=(0,i.useSelector)(t,g.selectActiveTab),r=(0,i.useDispatch)(t);return(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:1,children:(0,o.createComponentVNode)(2,a.Section,{fitted:!0,fill:!0,minHeight:"8em",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:d.SETTINGS_TABS.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:e.id===n,onClick:function(){return r((0,u.changeSettingsTab)({tabId:e.id}))},children:e.name},e.id)}))})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:["general"===n&&(0,o.createComponentVNode)(2,p),"chatPage"===n&&(0,o.createComponentVNode)(2,c.ChatPageSettings)]})]})};var p=function(e,t){var n=(0,i.useSelector)(t,g.selectSettings),c=n.theme,d=n.fontSize,p=n.lineHeight,h=n.highlightText,f=n.highlightColor,m=(0,i.useDispatch)(t);return(0,o.createComponentVNode)(2,a.Section,{fill:!0,children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Theme",children:(0,o.createComponentVNode)(2,a.Dropdown,{selected:c,options:l.THEMES,onSelected:function(e){return m((0,u.updateSettings)({theme:e}))}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Font size",children:(0,o.createComponentVNode)(2,a.NumberInput,{width:"4em",step:1,stepPixelSize:10,minValue:8,maxValue:32,value:d,unit:"px",format:function(e){return(0,r.toFixed)(e)},onChange:function(e,t){return m((0,u.updateSettings)({fontSize:t}))}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Line height",children:(0,o.createComponentVNode)(2,a.NumberInput,{width:"4em",step:.01,stepPixelSize:2,minValue:.8,maxValue:5,value:p,format:function(e){return(0,r.toFixed)(e,2)},onDrag:function(e,t){return m((0,u.updateSettings)({lineHeight:t}))}})})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,color:"label",align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:"Highlight words (comma separated):"}),(0,o.createComponentVNode)(2,a.Flex.Item,{shrink:0,children:[(0,o.createComponentVNode)(2,a.ColorBox,{mr:1,color:f}),(0,o.createComponentVNode)(2,a.Input,{width:"5em",monospace:!0,placeholder:"#ffffff",value:f,onInput:function(e,t){return m((0,u.updateSettings)({highlightColor:t}))}})]})]}),(0,o.createComponentVNode)(2,a.TextArea,{height:"3em",value:h,onChange:function(e,t){return m((0,u.updateSettings)({highlightText:t}))}})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"check",onClick:function(){return m((0,s.rebuildChat)())},children:"Apply now"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,fontSize:"0.9em",ml:1,color:"label",children:"Can freeze the chat for a while."})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Button,{icon:"save",onClick:function(){return m((0,s.saveChatToDisk)())},children:"Save chat log"})]})};t.SettingsGeneral=p},680:function(e,t,n){"use strict";t.__esModule=!0,t.ChatPageSettings=void 0;var o=n(0),r=n(22),i=n(1),a=n(80),c=n(106),s=n(146);t.ChatPageSettings=function(e,t){var n=(0,r.useSelector)(t,s.selectCurrentChatPage),l=(0,r.useDispatch)(t);return(0,o.createComponentVNode)(2,i.Section,{fill:!0,children:[(0,o.createComponentVNode)(2,i.Flex,{mx:-.5,align:"center",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{mx:.5,grow:1,children:(0,o.createComponentVNode)(2,i.Input,{fluid:!0,value:n.name,onChange:function(e,t){return l((0,a.updateChatPage)({pageId:n.id,name:t}))}})}),(0,o.createComponentVNode)(2,i.Flex.Item,{mx:.5,children:(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"red",onClick:function(){return l((0,a.removeChatPage)({pageId:n.id}))},children:"Remove"})})]}),(0,o.createComponentVNode)(2,i.Divider),(0,o.createComponentVNode)(2,i.Section,{title:"Messages to display",level:2,children:[c.MESSAGE_TYPES.filter((function(e){return!e.important&&!e.admin})).map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:n.acceptedTypes[e.type],onClick:function(){return l((0,a.toggleAcceptedType)({pageId:n.id,type:e.type}))},children:e.name},e.type)})),(0,o.createComponentVNode)(2,i.Collapsible,{mt:1,color:"transparent",title:"Admin stuff",children:c.MESSAGE_TYPES.filter((function(e){return!e.important&&e.admin})).map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:n.acceptedTypes[e.type],onClick:function(){return l((0,a.toggleAcceptedType)({pageId:n.id,type:e.type}))},children:e.name},e.type)}))})]})]})}},681:function(e,t,n){"use strict";t.__esModule=!0,t.ChatPanel=void 0;var o=n(0),r=n(6),i=n(1),a=n(216);var c=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).ref=(0,o.createRef)(),t.state={scrollTracking:!0},t.handleScrollTrackingChange=function(e){return t.setState({scrollTracking:e})},t}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var s=c.prototype;return s.componentDidMount=function(){a.chatRenderer.mount(this.ref.current),a.chatRenderer.events.on("scrollTrackingChanged",this.handleScrollTrackingChange),this.componentDidUpdate()},s.componentWillUnmount=function(){a.chatRenderer.events.off("scrollTrackingChanged",this.handleScrollTrackingChange)},s.componentDidUpdate=function(e){requestAnimationFrame((function(){a.chatRenderer.ensureScrollTracking()})),(!e||(0,r.shallowDiffers)(this.props,e))&&a.chatRenderer.assignStyle({width:"100%","white-space":"pre-wrap","font-size":this.props.fontSize,"line-height":this.props.lineHeight})},s.render=function(){var e=this.state.scrollTracking;return(0,o.createFragment)([(0,o.createVNode)(1,"div","Chat",null,1,null,null,this.ref),!e&&(0,o.createComponentVNode)(2,i.Button,{className:"Chat__scrollButton",icon:"arrow-down",onClick:function(){return a.chatRenderer.scrollToBottom()},children:"Scroll to bottom"})],0)},c}(o.Component);t.ChatPanel=c},682:function(e,t,n){"use strict";t.__esModule=!0,t.linkifyNode=t.highlightNode=t.replaceInTextNode=void 0;var o=function(e,t){return function(n){for(var o,r,i=n.textContent,a=i.length,c=0,s=0;o=e.exec(i);){s+=1,r||(r=document.createDocumentFragment());var l=o[0],u=l.length,d=o.index;c0&&(0,o.createComponentVNode)(2,l,{value:e.unreadCount}),onClick:function(){return d((0,a.changeChatPage)({pageId:e.id}))},children:e.name},e.id)}))})}),(0,o.createComponentVNode)(2,i.Flex.Item,{ml:1,children:(0,o.createComponentVNode)(2,i.Button,{color:"transparent",icon:"plus",onClick:function(){d((0,a.addChatPage)()),d((0,s.openChatSettings)())}})})]})}},684:function(e,t,n){"use strict";t.__esModule=!0,t.chatMiddleware=void 0;var o=n(79),r=n(65),i=n(104),a=n(80),c=n(106),s=n(105),l=n(216),u=n(146);n(29);function d(e,t,n,o,r,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(o,r)}function g(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function a(e){d(i,o,r,a,c,"next",e)}function c(e){d(i,o,r,a,c,"throw",e)}a(undefined)}))}}var p=function(){var e=g(regeneratorRuntime.mark((function t(e){var n,r,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=(0,u.selectChat)(e.getState()),r=Math.max(0,l.chatRenderer.messages.length-c.MAX_PERSISTED_MESSAGES),i=l.chatRenderer.messages.slice(r).map((function(e){return(0,s.serializeMessage)(e)})),o.storage.set("chat-state",n),o.storage.set("chat-messages",i);case 5:case"end":return t.stop()}}),t)})));return function(t){return e.apply(this,arguments)}}(),h=function(){var e=g(regeneratorRuntime.mark((function t(e){var n,r,i,c;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Promise.all([o.storage.get("chat-state"),o.storage.get("chat-messages")]);case 2:if(n=t.sent,r=n[0],i=n[1],!(r&&r.version<=4)){t.next=8;break}return e.dispatch((0,a.loadChat)()),t.abrupt("return");case 8:i&&(c=[].concat(i,[(0,s.createMessage)({type:"internal/reconnected"})]),l.chatRenderer.processBatch(c,{prepend:!0})),e.dispatch((0,a.loadChat)(r));case 10:case"end":return t.stop()}}),t)})));return function(t){return e.apply(this,arguments)}}();t.chatMiddleware=function(e){var t=!1,n=!1;return l.chatRenderer.events.on("batchProcessed",(function(t){n&&e.dispatch((0,a.updateMessageCount)(t))})),l.chatRenderer.events.on("scrollTrackingChanged",(function(t){e.dispatch((0,a.changeScrollTracking)(t))})),setInterval((function(){return p(e)}),c.MESSAGE_SAVE_INTERVAL),function(o){return function(c){var s=c.type,d=c.payload;if(t||(t=!0,h(e)),"chat/message"!==s){if(s===a.loadChat.type){o(c);var g=(0,u.selectCurrentChatPage)(e.getState());return l.chatRenderer.changePage(g),l.chatRenderer.onStateLoaded(),void(n=!0)}if(s!==a.changeChatPage.type&&s!==a.addChatPage.type&&s!==a.removeChatPage.type&&s!==a.toggleAcceptedType.type){if(s===a.rebuildChat.type)return l.chatRenderer.rebuildChat(),o(c);if(s!==r.updateSettings.type&&s!==r.loadSettings.type){if("roundrestart"===s)return p(e),o(c);if(s!==a.saveChatToDisk.type)return o(c);l.chatRenderer.saveToDisk()}else{o(c);var f=(0,i.selectSettings)(e.getState());l.chatRenderer.setHighlight(f.highlightText,f.highlightColor)}}else{o(c);var m=(0,u.selectCurrentChatPage)(e.getState());l.chatRenderer.changePage(m)}}else{var v=Array.isArray(d)?d:[d];l.chatRenderer.processBatch(v)}}}}},685:function(e,t,n){"use strict";t.__esModule=!0,t.chatReducer=t.initialState=void 0;var o,r=n(80),i=n(105);function a(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0&&(_[A.id]=Object.assign({},A,{unreadCount:A.unreadCount+M}))}return Object.assign({},e,{pageById:_})}if(o===r.addChatPage.type)return Object.assign({},e,{currentPageId:c.id,pages:[].concat(e.pages,[c.id]),pageById:Object.assign({},e.pageById,(n={},n[c.id]=c,n))});if(o===r.changeChatPage.type){var I,P=c.pageId,x=Object.assign({},e.pageById[P],{unreadCount:0});return Object.assign({},e,{currentPageId:P,pageById:Object.assign({},e.pageById,(I={},I[P]=x,I))})}if(o===r.updateChatPage.type){var k,R=c.pageId,O=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(c,["pageId"]),V=Object.assign({},e.pageById[R],O);return Object.assign({},e,{pageById:Object.assign({},e.pageById,(k={},k[R]=V,k))})}if(o===r.toggleAcceptedType.type){var G,B=c.pageId,L=c.type,D=Object.assign({},e.pageById[B]);return D.acceptedTypes=Object.assign({},D.acceptedTypes),D.acceptedTypes[L]=!D.acceptedTypes[L],Object.assign({},e,{pageById:Object.assign({},e.pageById,(G={},G[B]=D,G))})}if(o===r.removeChatPage.type){var F=c.pageId,j=Object.assign({},e,{pages:[].concat(e.pages),pageById:Object.assign({},e.pageById)});return delete j.pageById[F],j.pages=j.pages.filter((function(e){return e!==F})),0===j.pages.length&&(j.pages.push(s.id),j.pageById[s.id]=s,j.currentPageId=s.id),j.currentPageId&&j.currentPageId!==F||(j.currentPageId=j.pages[0]),j}return e}},686:function(e,t,n){"use strict";t.__esModule=!0,t.audioReducer=void 0;var o={visible:!1,playing:!1,track:null};t.audioReducer=function(e,t){void 0===e&&(e=o);var n=t.type,r=t.payload;return"audio/playing"===n?Object.assign({},e,{visible:!0,playing:!0}):"audio/stopped"===n?Object.assign({},e,{visible:!1,playing:!1}):"audio/playMusic"===n?Object.assign({},e,{meta:r}):"audio/stopMusic"===n?Object.assign({},e,{visible:!1,playing:!1,meta:null}):"audio/toggle"===n?Object.assign({},e,{visible:!e.visible}):e}},687:function(e,t,n){"use strict";t.__esModule=!0,t.useGame=void 0;var o=n(22),r=n(218);t.useGame=function(e){return(0,o.useSelector)(e,r.selectGame)}},688:function(e,t,n){"use strict";t.__esModule=!0,t.gameMiddleware=void 0;var o=n(147),r=n(219),i=n(218),a=n(689),c=function(e){return Object.assign({},e,{meta:Object.assign({},e.meta,{now:Date.now()})})};t.gameMiddleware=function(e){var t;return setInterval((function(){var n=e.getState();if(n){var o=(0,i.selectGame)(n),s=t&&Date.now()>=t+a.CONNECTION_LOST_AFTER;!o.connectionLostAt&&s&&e.dispatch(c((0,r.connectionLost)())),o.connectionLostAt&&!s&&e.dispatch(c((0,r.connectionRestored)()))}}),1e3),function(e){return function(n){var i=n.type,a=(n.payload,n.meta);return i===o.pingSuccess.type?(t=a.now,e(n)):i===r.roundRestarted.type?e(c(n)):e(n)}}}},689:function(e,t,n){"use strict";t.__esModule=!0,t.CONNECTION_LOST_AFTER=void 0;t.CONNECTION_LOST_AFTER=15e3},690:function(e,t,n){"use strict";t.__esModule=!0,t.gameReducer=void 0;var o=n(219),r={roundId:null,roundTime:null,roundRestartedAt:null,connectionLostAt:null};t.gameReducer=function(e,t){void 0===e&&(e=r);var n=t.type,i=(t.payload,t.meta);return"roundrestart"===n?Object.assign({},e,{roundRestartedAt:i.now}):n===o.connectionLost.type?Object.assign({},e,{connectionLostAt:i.now}):n===o.connectionRestored.type?Object.assign({},e,{connectionLostAt:null}):e}},691:function(e,t,n){"use strict";(function(e){t.__esModule=!0,t.setupPanelFocusHacks=void 0;var o=n(102),r=n(57),i=n(189),a=function(){return e((function(){return(0,i.focusMap)()}))};t.setupPanelFocusHacks=function(){var e=!1,t=null;window.addEventListener("focusin",(function(t){e=(0,r.canStealFocus)(t.target)})),window.addEventListener("mousedown",(function(e){t=[e.screenX,e.screenY]})),window.addEventListener("mouseup",(function(n){if(t){var r=[n.screenX,n.screenY];(0,o.vecLength)((0,o.vecSubtract)(r,t))>=10&&(e=!0)}e||a()})),r.globalEvents.on("keydown",(function(e){e.isModifierKey()||a()}))}}).call(this,n(101).setImmediate)},692:function(e,t,n){"use strict";t.__esModule=!0,t.pingMiddleware=void 0;var o=n(2),r=n(147),i=n(221);t.pingMiddleware=function(e){var t=!1,n=0,a=[],c=function(){for(var t=0;ti.PING_TIMEOUT&&(a[t]=null,e.dispatch((0,r.pingFail)()))}var s={index:n,sentAt:Date.now()};a[n]=s,(0,o.sendMessage)({type:"ping",payload:{index:n}}),n=(n+1)%i.PING_QUEUE_SIZE};return function(e){return function(n){var o=n.type,s=n.payload;if(t||(t=!0,setInterval(c,i.PING_INTERVAL),c()),"pingReply"===o){var l=s.index,u=a[l];if(!u)return;return a[l]=null,e((0,r.pingSuccess)(u))}return e(n)}}}},693:function(e,t,n){"use strict";t.__esModule=!0,t.PingIndicator=void 0;var o=n(0),r=n(694),i=n(9),a=n(22),c=n(1),s=n(695);t.PingIndicator=function(e,t){var n=(0,a.useSelector)(t,s.selectPing),l=r.Color.lookup(n.networkQuality,[new r.Color(220,40,40),new r.Color(220,200,40),new r.Color(60,220,40)]),u=n.roundtrip?(0,i.toFixed)(n.roundtrip):"--";return(0,o.createVNode)(1,"div","Ping",[(0,o.createComponentVNode)(2,c.Box,{className:"Ping__indicator",backgroundColor:l}),u],0)}},694:function(e,t,n){"use strict";t.__esModule=!0,t.Color=void 0;var o=function(){function e(e,t,n,o){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===o&&(o=1),this.r=e,this.g=t,this.b=n,this.a=o}return e.prototype.toString=function(){return"rgba("+(0|this.r)+", "+(0|this.g)+", "+(0|this.b)+", "+(0|this.a)+")"},e}();t.Color=o,o.fromHex=function(e){return new o(parseInt(e.substr(1,2),16),parseInt(e.substr(3,2),16),parseInt(e.substr(5,2),16))},o.lerp=function(e,t,n){return new o((t.r-e.r)*n+e.r,(t.g-e.g)*n+e.g,(t.b-e.b)*n+e.b,(t.a-e.a)*n+e.a)},o.lookup=function(e,t){void 0===t&&(t=[]);var n=t.length;if(n<2)throw new Error("Needs at least two colors!");var r=e*(n-1);if(e<1e-4)return t[0];if(e>=.9999)return t[n-1];var i=r%1,a=0|r;return o.lerp(t[a],t[a+1],i)}},695:function(e,t,n){"use strict";t.__esModule=!0,t.selectPing=void 0;t.selectPing=function(e){return e.ping}},696:function(e,t,n){"use strict";t.__esModule=!0,t.pingReducer=void 0;var o=n(9),r=n(147),i=n(221);t.pingReducer=function(e,t){void 0===e&&(e={});var n=t.type,a=t.payload;if(n===r.pingSuccess.type){var c=a.roundtrip,s=e.roundtripAvg||c,l=Math.round(.4*s+.6*c);return{roundtrip:c,roundtripAvg:l,failCount:0,networkQuality:1-(0,o.scale)(l,i.PING_ROUNDTRIP_BEST,i.PING_ROUNDTRIP_WORST)}}if(n===r.pingFail.type){var u=e.failCount,d=void 0===u?0:u,g=(0,o.clamp01)(e.networkQuality-d/i.PING_MAX_FAILS),p=Object.assign({},e,{failCount:d+1,networkQuality:g});return d>i.PING_MAX_FAILS&&(p.roundtrip=undefined,p.roundtripAvg=undefined),p}return e}},697:function(e,t,n){"use strict";t.__esModule=!0,t.telemetryMiddleware=void 0;var o=n(2),r=n(79);function i(e,t,n,o,r,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(o,r)}var a=(0,n(29).createLogger)("telemetry");t.telemetryMiddleware=function(e){var t,n;return function(c){return function(s){var l,u=s.type,d=s.payload;if("telemetry/request"!==u)return"backend/update"===u?(c(s),void(l=regeneratorRuntime.mark((function h(){var o,i,c,s;return regeneratorRuntime.wrap((function(l){for(;;)switch(l.prev=l.next){case 0:if(i=null==d||null==(o=d.config)?void 0:o.client){l.next=4;break}return a.error("backend/update payload is missing client data!"),l.abrupt("return");case 4:if(t){l.next=13;break}return l.next=7,r.storage.get("telemetry");case 7:if(l.t0=l.sent,l.t0){l.next=10;break}l.t0={};case 10:(t=l.t0).connections||(t.connections=[]),a.debug("retrieved telemetry from storage",t);case 13:c=!1,t.connections.find((function(e){return n=i,(t=e).ckey===n.ckey&&t.address===n.address&&t.computer_id===n.computer_id;var t,n}))||(c=!0,t.connections.unshift(i),t.connections.length>10&&t.connections.pop()),c&&(a.debug("saving telemetry to storage",t),r.storage.set("telemetry",t)),n&&(s=n,n=null,e.dispatch({type:"telemetry/request",payload:s}));case 18:case"end":return l.stop()}}),h)})),function(){var e=this,t=arguments;return new Promise((function(n,o){var r=l.apply(e,t);function a(e){i(r,n,o,a,c,"next",e)}function c(e){i(r,n,o,a,c,"throw",e)}a(undefined)}))})()):c(s);if(!t)return a.debug("deferred"),void(n=d);a.debug("sending");var g=(null==d?void 0:d.limits)||{},p=t.connections.slice(0,g.connections);(0,o.sendMessage)({type:"telemetry",payload:{connections:p}})}}}},698:function(e,t,n){"use strict";t.__esModule=!0,t.Panel=void 0;var o=n(0),r=n(1),i=n(3),a=n(212),c=n(145),s=n(217),l=n(699),u=n(220),d=n(144);t.Panel=function(e,t){if(Byond.IS_LTE_IE10)return(0,o.createComponentVNode)(2,g);var n=(0,a.useAudio)(t),p=(0,d.useSettings)(t),h=(0,s.useGame)(t);return(0,o.createComponentVNode)(2,i.Pane,{theme:"default"===p.theme?"light":p.theme,children:(0,o.createComponentVNode)(2,r.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{children:(0,o.createComponentVNode)(2,r.Section,{fitted:!0,children:(0,o.createComponentVNode)(2,r.Flex,{mx:.5,align:"center",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{mx:.5,grow:1,overflowX:"auto",children:(0,o.createComponentVNode)(2,c.ChatTabs)}),(0,o.createComponentVNode)(2,r.Flex.Item,{mx:.5,children:(0,o.createComponentVNode)(2,u.PingIndicator)}),(0,o.createComponentVNode)(2,r.Flex.Item,{mx:.5,children:(0,o.createComponentVNode)(2,r.Button,{color:"grey",selected:n.visible,icon:"music",tooltip:"Music player",tooltipPosition:"bottom-left",onClick:function(){return n.toggle()}})}),(0,o.createComponentVNode)(2,r.Flex.Item,{mx:.5,children:(0,o.createComponentVNode)(2,r.Button,{icon:p.visible?"times":"cog",selected:p.visible,tooltip:p.visible?"Close settings":"Open settings",tooltipPosition:"bottom-left",onClick:function(){return p.toggle()}})})]})})}),n.visible&&(0,o.createComponentVNode)(2,r.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,r.Section,{children:(0,o.createComponentVNode)(2,a.NowPlayingWidget)})}),p.visible&&(0,o.createComponentVNode)(2,r.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,d.SettingsPanel)}),(0,o.createComponentVNode)(2,r.Flex.Item,{mt:1,grow:1,children:(0,o.createComponentVNode)(2,r.Section,{fill:!0,fitted:!0,position:"relative",children:[(0,o.createComponentVNode)(2,i.Pane.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.ChatPanel,{lineHeight:p.lineHeight})}),(0,o.createComponentVNode)(2,l.Notifications,{children:[h.connectionLostAt&&(0,o.createComponentVNode)(2,l.Notifications.Item,{rightSlot:(0,o.createComponentVNode)(2,r.Button,{color:"white",onClick:function(){return Byond.command(".reconnect")},children:"Reconnect"}),children:"You are either AFK, experiencing lag or the connection has closed."}),h.roundRestartedAt&&(0,o.createComponentVNode)(2,l.Notifications.Item,{children:"The connection has been closed because the server is restarting. Please wait while you automatically reconnect."})]})]})})]})})};var g=function(e,t){var n=(0,d.useSettings)(t);return(0,o.createComponentVNode)(2,i.Pane,{theme:"default"===n.theme?"light":n.theme,children:(0,o.createComponentVNode)(2,i.Pane.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,r.Button,{style:{position:"fixed",top:"1em",right:"2em","z-index":1e3},selected:n.visible,onClick:function(){return n.toggle()},children:"Settings"}),n.visible&&(0,o.createComponentVNode)(2,r.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,d.SettingsPanel)})||(0,o.createComponentVNode)(2,c.ChatPanel,{lineHeight:n.lineHeight})]})})}},699:function(e,t,n){"use strict";t.__esModule=!0,t.Notifications=void 0;var o=n(0),r=n(1),i=function(e){var t=e.children;return(0,o.createVNode)(1,"div","Notifications",t,0)};t.Notifications=i;i.Item=function(e){var t=e.rightSlot,n=e.children;return(0,o.createComponentVNode)(2,r.Flex,{align:"center",className:"Notification",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{className:"Notification__content",grow:1,children:n}),t&&(0,o.createComponentVNode)(2,r.Flex.Item,{className:"Notification__rightSlot",children:t})]})}},80:function(e,t,n){"use strict";t.__esModule=!0,t.saveChatToDisk=t.changeScrollTracking=t.removeChatPage=t.toggleAcceptedType=t.updateChatPage=t.changeChatPage=t.addChatPage=t.updateMessageCount=t.rebuildChat=t.loadChat=void 0;var o=n(22),r=n(105),i=(0,o.createAction)("chat/load");t.loadChat=i;var a=(0,o.createAction)("chat/rebuild");t.rebuildChat=a;var c=(0,o.createAction)("chat/updateMessageCount");t.updateMessageCount=c;var s=(0,o.createAction)("chat/addPage",(function(){return{payload:(0,r.createPage)()}}));t.addChatPage=s;var l=(0,o.createAction)("chat/changePage");t.changeChatPage=l;var u=(0,o.createAction)("chat/updatePage");t.updateChatPage=u;var d=(0,o.createAction)("chat/toggleAcceptedType");t.toggleAcceptedType=d;var g=(0,o.createAction)("chat/removePage");t.removeChatPage=g;var p=(0,o.createAction)("chat/changeScrollTracking");t.changeScrollTracking=p;var h=(0,o.createAction)("chat/saveToDisk");t.saveChatToDisk=h}}); \ No newline at end of file diff --git a/tgui/public/tgui.bundle.js b/tgui/public/tgui.bundle.js index 3266ef473d..d65642bbdc 100644 --- a/tgui/public/tgui.bundle.js +++ b/tgui/public/tgui.bundle.js @@ -1 +1 @@ -!function(e){function t(t){for(var o,c,i=t[0],l=t[1],d=t[2],s=0,m=[];s0&&g.flatMap((function(e){return e.items||[]})).filter(L).filter((function(e,t){return t<25}))||(null==(l=g.find((function(e){return e.name===_})))?void 0:l.items)||[];return(0,o.createComponentVNode)(2,c.Section,{title:(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:s>0?"good":"bad",children:[(0,i.formatMoney)(s)," ",p]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,c.Input,{autoFocus:!0,value:k,onInput:function(e,t){return x(t)},mx:1}),(0,o.createComponentVNode)(2,c.Button,{icon:V?"list":"info",content:V?"Compact":"Detailed",onClick:function(){return h("compact_toggle")}}),!!b&&(0,o.createComponentVNode)(2,c.Button,{icon:"lock",content:"Lock",onClick:function(){return h("lock")}})],0),children:(0,o.createComponentVNode)(2,c.Flex,{children:[0===k.length&&(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:g.map((function(e){var t;return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:e.name===_,onClick:function(){return w(e.name)},children:[e.name," (",(null==(t=e.items)?void 0:t.length)||0,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:[0===y.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:0===k.length?"No items in this category.":"No results found."}),(0,o.createComponentVNode)(2,u,{compactMode:k.length>0||V,currencyAmount:s,currencySymbol:p,items:y})]})]})})};t.GenericUplink=d;var u=function(e,t){var n=e.compactMode,l=e.currencyAmount,d=e.currencySymbol,u=(0,a.useBackend)(t).act,s=(0,a.useLocalState)(t,"hoveredItem",{}),m=s[0],p=s[1],C=m&&m.cost||0,h=e.items.map((function(e){var t=m&&m.name!==e.name,n=l-C50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,d.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,c.toFixed)(n)+"%"})],4)};t.AreaCharge=C,C.defaultHooks=i.pureComponentHooks;var h=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,d.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};h.defaultHooks=i.pureComponentHooks},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";t.__esModule=!0,t.AiRestorerContent=t.AiRestorer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AiRestorer=function(){return(0,o.createComponentVNode)(2,c.Window,{width:370,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.AI_present,d=i.error,u=i.name,s=i.laws,m=i.isDead,p=i.restoring,C=i.health,h=i.ejectable;return(0,o.createFragment)([d&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:d}),!!h&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:l?u:"----------",disabled:!l,onClick:function(){return c("PRG_eject")}}),!!l&&(0,o.createComponentVNode)(2,a.Section,{title:h?"System Status":u,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:m?"bad":"good",children:m?"Nonfunctional":"Functional"}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:C,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})})}),!!p&&(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"plus",content:"Begin Reconstruction",disabled:p,mt:1,onClick:function(){return c("PRG_beginReconstruction")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{className:"candystripe",children:e},e)}))})]})],0)};t.AiRestorerContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.AccessList=void 0;var o=n(0),r=n(14),a=n(2),c=n(1);function i(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0&&"yellow",selected:"requests"===m,onClick:function(){return C("requests")},children:["Requests (",V.length,")"]}),!h&&(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"shopping-cart",textColor:"cart"!==m&&N.length>0&&"yellow",selected:"cart"===m,onClick:function(){return C("cart")},children:["Checkout (",N.length,")"]})]})}),"catalog"===m&&(0,o.createComponentVNode)(2,u),"requests"===m&&(0,o.createComponentVNode)(2,s),"cart"===m&&(0,o.createComponentVNode)(2,p)]})})};var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.away,u=l.docked,s=l.loan,m=l.loan_dispatched,p=l.location,C=l.message,h=l.points,N=l.requestonly;return(0,o.createComponentVNode)(2,c.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,c.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:h,format:function(e){return(0,i.formatMoney)(e)}})," credits"]}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle",children:u&&!N&&(0,o.createComponentVNode)(2,c.Button,{content:p,onClick:function(){return r("send")}})||p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentCom Message",children:C}),!!s&&!N&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Loan",children:!m&&(0,o.createComponentVNode)(2,c.Button,{content:"Loan Shuttle",disabled:!(d&&u),onClick:function(){return r("loan")}})||(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Loaned to Centcom"})})]})})},u=function(e,t){var n,l=e.express,d=(0,a.useBackend)(t),u=d.act,s=d.data,p=s.self_paid,C=(0,r.toArray)(s.supplies),h=(0,a.useSharedState)(t,"supply",null==(n=C[0])?void 0:n.name),N=h[0],V=h[1],b=C.find((function(e){return e.name===N}));return(0,o.createComponentVNode)(2,c.Section,{title:"Catalog",buttons:!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,m),(0,o.createComponentVNode)(2,c.Button.Checkbox,{ml:2,content:"Buy Privately",checked:p,onClick:function(){return u("toggleprivate")}})],4),children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{ml:-1,mr:1,children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:C.map((function(e){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:e.name===N,onClick:function(){return V(e.name)},children:[e.name," (",e.packs.length,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,c.Table,{children:null==b?void 0:b.packs.map((function(e){var t=[];return e.small_item&&t.push("Small"),e.access&&t.push("Restricted"),(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",textAlign:"right",children:t.join(", ")}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,tooltip:e.desc,tooltipPosition:"left",onClick:function(){return u("add",{id:e.id})},children:[(0,i.formatMoney)(p&&!e.goody?Math.round(1.1*e.cost):e.cost)," cr"]})})]},e.name)}))})})]})})};t.CargoCatalog=u;var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.requests||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Active Requests",buttons:!d&&(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return r("denyall")}}),children:[0===u.length&&(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"No Requests"}),u.length>0&&(0,o.createComponentVNode)(2,c.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",children:["#",e.id]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.object}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createVNode)(1,"b",null,e.orderer,0)}),(0,o.createComponentVNode)(2,c.Table.Cell,{width:"25%",children:(0,o.createVNode)(1,"i",null,e.reason,0)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:[(0,i.formatMoney)(e.cost)," cr"]}),!d&&(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.Button,{icon:"check",color:"good",onClick:function(){return r("approve",{id:e.id})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",color:"bad",onClick:function(){return r("deny",{id:e.id})}})]})]},e.id)}))})]})},m=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.cart||[],s=u.reduce((function(e,t){return e+t.cost}),0);return d?null:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,children:[0===u.length&&"Cart is empty",1===u.length&&"1 item",u.length>=2&&u.length+" items"," ",s>0&&"("+(0,i.formatMoney)(s)+" cr)"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return r("clear")}})],4)},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.away,s=l.docked,p=l.location,C=l.cart||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Current Cart",buttons:(0,o.createComponentVNode)(2,m),children:[0===C.length&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Nothing in cart"}),C.length>0&&(0,o.createComponentVNode)(2,c.Table,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",children:["#",e.id]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.object}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:[(0,i.formatMoney)(e.cost)," cr"]}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,c.Button,{icon:"minus",onClick:function(){return r("remove",{id:e.id})}})})]},e.id)}))}),C.length>0&&!d&&(0,o.createComponentVNode)(2,c.Box,{mt:2,children:1===u&&1===s&&(0,o.createComponentVNode)(2,c.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return r("send")}})||(0,o.createComponentVNode)(2,c.Box,{opacity:.5,children:["Shuttle in ",p,"."]})})]})}},,function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(0),r=n(1);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[e.volume," units of ",e.name," ",e.purity<1&&"(Purity: "+e.purity+")"]},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return n("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return n("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return n("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return n("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return n("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:1,y:-1})}})]})]})},l=function(e,t){var n=e.topLevel,c=(0,r.useBackend)(t),l=c.act,d=c.data,u=d.x,s=d.y,m=d.pad_name,p=d.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"170px",onChange:function(e,t){return l("rename",{name:t})}}),level:n?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return l("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i)})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return l("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return l("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return l("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return l("pull")}})})]})]})};t.LaunchpadControl=l;t.LaunchpadConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data,u=d.launchpads,s=void 0===u?[]:u,m=d.selected_id;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:260,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:0===s.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"})||(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{minHeight:"190px",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"140px",minHeight:"190px",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,ellipsis:!0,content:e.name,selected:m===e.id,color:"transparent",onClick:function(){return i("select_pad",{id:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{minHeight:"100%",children:(0,o.createComponentVNode)(2,a.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,minHeight:"100%",children:m&&(0,o.createComponentVNode)(2,l)||(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCyborgRemoteMonitorContent=t.NtosCyborgRemoteMonitor=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosCyborgRemoteMonitor=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:600,height:800,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.card,d=i.cyborgs,u=void 0===d?[]:d;return u.length?(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Certain features require an ID card login."}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Send Message",color:"blue",disabled:!l,onClick:function(){return c("messagebot",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":e.shell_discon?"Nominal/Disconnected":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:e.upgrades})]})},e.ref)}))],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected."})};t.NtosCyborgRemoteMonitorContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRadarContent=t.NtosRadar=void 0;var o=n(0),r=n(6),a=n(63),c=n(2),i=n(1),l=n(3);t.NtosRadar=function(e,t){return(0,o.createComponentVNode)(2,l.NtosWindow,{width:800,height:600,theme:"ntos",children:(0,o.createComponentVNode)(2,d,{sig_err:"Signal Lost"})})};var d=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.selected,m=u.object,p=void 0===m?[]:m,C=u.target,h=void 0===C?[]:C,N=u.scanning,V=e.sig_err;return(0,o.createComponentVNode)(2,i.Flex,{direction:"row",hight:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{position:"relative",width:20.5,hight:"100%",children:(0,o.createComponentVNode)(2,l.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Button,{icon:"redo-alt",content:N?"Scanning...":"Scan",color:"blue",disabled:N,onClick:function(){return d("scan")}}),!p.length&&!N&&(0,o.createVNode)(1,"div",null,"No trackable signals found",16),!N&&p.map((function(e){return(0,o.createVNode)(1,"div",(0,r.classes)(["Button","Button--fluid","Button--color--transparent","Button--ellipsis",e.ref===s&&"Button--selected"]),e.name,0,{title:e.name,onClick:function(){d("selecttarget",{ref:e.ref})}},e.dev)}))]})})}),(0,o.createComponentVNode)(2,i.Flex.Item,{style:{"background-image":'url("'+(0,a.resolveAsset)("ntosradarbackground.png")+'")',"background-position":"center","background-repeat":"no-repeat",top:"20px"},position:"relative",m:1.5,width:45,height:45,children:0===Object.keys(h).length?!!s&&(0,o.createComponentVNode)(2,i.NoticeBox,{position:"absolute",top:20.6,left:1.35,width:42,fontSize:"30px",textAlign:"center",children:V}):!!h.userot&&(0,o.createComponentVNode)(2,i.Box,{as:"img",src:(0,a.resolveAsset)(h.arrowstyle),position:"absolute",top:"20px",left:"243px",style:{transform:"rotate("+h.rot+"deg)"}})||(0,o.createComponentVNode)(2,i.Icon,{name:h.pointer,position:"absolute",size:2,color:h.color,top:10*h.locy+19+"px",left:10*h.locx+16+"px"})})]})};t.NtosRadarContent=d},function(e,t,n){"use strict";t.__esModule=!0,t.RequestKioskContent=t.RequestKiosk=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.RequestKiosk=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:550,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.accountName,u=l.requests,s=void 0===u?[]:u,m=l.applicants,p=void 0===m?[]:m,C=l.bountyValue;l.bountyText;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"Log out",onClick:function(){return i("clear")}}),children:d||"N/A"})})}),(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:null==s?void 0:s.map((function(e){return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.owner,width:"300px",children:(0,o.createComponentVNode)(2,a.Section,{width:"300px",children:[(0,o.createComponentVNode)(2,a.Flex,{spacing:1,align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,width:"310px",children:e.owner}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"100px",children:(0,c.formatMoney)(e.value)+" cr"}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"pen-fancy",content:"Apply",onClick:function(){return i("apply",{request:e.acc_number})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"trash-alt",content:"Delete",color:"red",onClick:function(){return i("deleteRequest",{request:e.acc_number})}})]})]}),(0,o.createComponentVNode)(2,a.Section,{align:"center",children:(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)('"'),e.description,(0,o.createTextVNode)('"')],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Request Applicants",children:null==p?void 0:p.map((function(t){return t.request_id===e.acc_number&&(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,p:.5,backgroundColor:"rgba(0, 0, 69, 0.5)",width:"510px",style:{border:"2px solid rgba(13, 13, 213, 0.7)"},children:t.name}),(0,o.createComponentVNode)(2,a.Flex.Item,{align:"end",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"cash-register",onClick:function(){return i("payApplicant",{applicant:t.requestee_id,request:e.acc_number})}})})]})}))})]},e.name)},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Collapsible,{title:"New Bounty",width:"220px",color:"green",children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.TextArea,{fluid:!0,height:"250px",width:"200px",backgroundColor:"black",textColor:"white",onChange:function(e,t){return i("bountyText",{bountytext:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.NumberInput,{animate:!0,unit:"cr",minValue:1,maxValue:1e3,value:C,width:"80px",onChange:function(e,t){return i("bountyVal",{bountyval:t})}})}),(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Submit bounty",onClick:function(){return i("createBounty")}})]})})})]})],4)};t.RequestKioskContent=l},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsoleContent=t.StationAlertConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.StationAlertConsole=function(){return(0,o.createComponentVNode)(2,c.Window,{width:325,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t).data.alarms||[],c=n.Fire||[],i=n.Atmosphere||[],l=n.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===l.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),l.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)};t.StationAlertConsoleContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.PortableBasicInfo=void 0;var o=n(0),r=n(2),a=n(1);t.PortableBasicInfo=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.connected,d=i.holding,u=i.on,s=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return c("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:l?"good":"average",children:l?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!d,onClick:function(){return c("eject")}}),children:d?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:d.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)}},,,,,,,,,,,function(e,t,n){n(148),e.exports=n(447)},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var o=n(0);n(449),n(450),n(451),n(452),n(453),n(454),n(455),n(456),n(457),n(458);var r,a,c=n(99),i=(n(100),n(135)),l=n(186),d=n(136),u=n(187),s=n(57);c.perf.mark("inception",null==(r=window.performance)||null==(a=r.timing)?void 0:a.navigationStart),c.perf.mark("init");var m=(0,u.configureStore)(),p=(0,d.createRenderer)((function(){var e=(0,n(486).getRoutedComponent)(m);return(0,o.createComponentVNode)(2,u.StoreProvider,{store:m,children:(0,o.createComponentVNode)(2,e)})}));!function C(){if("loading"!==document.readyState){for((0,s.setupGlobalEvents)(),(0,i.setupHotKeys)(),(0,l.captureExternalLinks)(),m.subscribe(p),window.update=function(e){return m.dispatch(Byond.parseJson(e))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}0}else document.addEventListener("DOMContentLoaded",C)}()},,function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";t.__esModule=!0,t.getRoutedComponent=void 0;var o=n(0),r=n(2),a=(n(190),n(3)),c=n(487),i=function(e,t){return function(){return(0,o.createComponentVNode)(2,a.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:["notFound"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" was not found.")],4),"missingExport"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" is missing an export.")],4)]})})}},l=function(){return(0,o.createComponentVNode)(2,a.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0})})};t.getRoutedComponent=function(e){var t=e.getState(),n=(0,r.selectBackend)(t),o=n.suspended,a=n.config;if(o)return l;var d,u=null==a?void 0:a["interface"];try{d=c("./"+u+".js")}catch(m){if("MODULE_NOT_FOUND"===m.code)return i("notFound",u);throw m}var s=d[u];return s||i("missingExport",u)}},function(e,t,n){var o={"./AbductorConsole.js":488,"./Achievements.js":489,"./AiAirlock.js":490,"./AiRestorer.js":201,"./AirAlarm.js":491,"./AirlockElectronics.js":493,"./Apc.js":494,"./ApcControl.js":495,"./AtmosAlertConsole.js":496,"./AtmosControlConsole.js":497,"./AtmosControlPanel.js":498,"./AtmosFilter.js":499,"./AtmosMixer.js":500,"./AtmosPump.js":501,"./AtmosRelief.js":502,"./AutomatedAnnouncement.js":503,"./BankMachine.js":504,"./Bepis.js":505,"./Biogenerator.js":506,"./BlackmarketUplink.js":507,"./BluespaceArtillery.js":508,"./BluespaceLocator.js":509,"./BorgPanel.js":510,"./BrigTimer.js":511,"./CameraConsole.js":512,"./Canister.js":513,"./Canvas.js":514,"./Cargo.js":203,"./CargoBountyConsole.js":515,"./CargoExpress.js":516,"./CargoHoldTerminal.js":517,"./CellularEmporium.js":518,"./CentcomPodLauncher.js":519,"./ChemAcclimator.js":520,"./ChemDebugSynthesizer.js":521,"./ChemDispenser.js":522,"./ChemFilter.js":523,"./ChemHeater.js":524,"./ChemMaster.js":525,"./ChemPress.js":526,"./ChemReactionChamber.js":527,"./ChemSplitter.js":528,"./ChemSynthesizer.js":529,"./CivCargoHoldTerminal.js":530,"./ClockworkSlab.js":531,"./CodexGigas.js":532,"./ComputerFabricator.js":533,"./Crayon.js":534,"./CrewConsole.js":535,"./Cryo.js":536,"./DecalPainter.js":537,"./DisposalUnit.js":538,"./DnaConsole.js":539,"./DnaVault.js":540,"./EightBallVote.js":541,"./Electrolyzer.js":542,"./Electropack.js":543,"./EmergencyShuttleConsole.js":544,"./EngravedMessage.js":545,"./ExosuitControlConsole.js":546,"./ExosuitFabricator.js":547,"./ForbiddenLore.js":548,"./Gateway.js":549,"./GhostPoolProtection.js":550,"./GlandDispenser.js":551,"./Gps.js":552,"./GravityGenerator.js":553,"./GulagItemReclaimer.js":554,"./GulagTeleporterConsole.js":555,"./Holodeck.js":556,"./Holopad.js":557,"./HypnoChair.js":558,"./ImplantChair.js":559,"./InfraredEmitter.js":560,"./Intellicard.js":561,"./Jukebox.js":562,"./KeycardAuth.js":563,"./LaborClaimConsole.js":564,"./LanguageMenu.js":565,"./LaunchpadConsole.js":206,"./LaunchpadRemote.js":566,"./MafiaPanel.js":567,"./MalfunctionModulePicker.js":568,"./MechBayPowerConsole.js":569,"./MechpadConsole.js":570,"./MedicalKiosk.js":571,"./Microscope.js":572,"./MiningVendor.js":573,"./Mint.js":574,"./Mule.js":575,"./NaniteChamberControl.js":576,"./NaniteCloudControl.js":577,"./NaniteProgramHub.js":578,"./NaniteProgrammer.js":579,"./NaniteRemote.js":580,"./NotificationPreferences.js":581,"./NtnetRelay.js":582,"./NtosAiRestorer.js":583,"./NtosArcade.js":584,"./NtosAtmos.js":585,"./NtosBountyConsole.js":586,"./NtosCard.js":587,"./NtosConfiguration.js":588,"./NtosCrewManifest.js":589,"./NtosCyborgRemoteMonitor.js":207,"./NtosCyborgRemoteMonitorSyndicate.js":590,"./NtosFileManager.js":591,"./NtosJobManager.js":592,"./NtosMain.js":593,"./NtosNetChat.js":594,"./NtosNetDos.js":595,"./NtosNetDownloader.js":596,"./NtosNetMonitor.js":597,"./NtosPowerMonitor.js":598,"./NtosRadar.js":208,"./NtosRadarSyndicate.js":599,"./NtosRequestKiosk.js":600,"./NtosRevelation.js":601,"./NtosRoboControl.js":602,"./NtosShipping.js":603,"./NtosStationAlertConsole.js":604,"./NtosSupermatterMonitor.js":605,"./NuclearBomb.js":606,"./OperatingComputer.js":607,"./Orbit.js":608,"./OreBox.js":609,"./OreRedemptionMachine.js":610,"./Pandemic.js":611,"./PaperSheet.js":612,"./ParticleAccelerator.js":615,"./PersonalCrafting.js":616,"./Photocopier.js":617,"./PortableChemMixer.js":618,"./PortableGenerator.js":619,"./PortablePump.js":620,"./PortableScrubber.js":621,"./PortableTurret.js":622,"./PowerMonitor.js":143,"./ProbingConsole.js":623,"./ProximitySensor.js":624,"./Radio.js":625,"./RadioactiveMicrolaser.js":626,"./RapidPipeDispenser.js":627,"./RemoteRobotControl.js":628,"./RequestKiosk.js":209,"./RoboticsControlConsole.js":629,"./Roulette.js":630,"./SatelliteControl.js":631,"./ScannerGate.js":632,"./SeedExtractor.js":633,"./ShuttleConsole.js":634,"./ShuttleManipulator.js":635,"./Signaler.js":636,"./SkillPanel.js":637,"./SkillStation.js":638,"./Sleeper.js":639,"./SlimeBodySwapper.js":640,"./SmartVend.js":641,"./Smes.js":642,"./SmokeMachine.js":643,"./SolarControl.js":644,"./SpaceHeater.js":645,"./SpawnersMenu.js":646,"./StationAlertConsole.js":210,"./SuitStorageUnit.js":647,"./SyndContractor.js":648,"./TachyonArray.js":649,"./Tank.js":650,"./TankDispenser.js":651,"./Telecomms.js":652,"./TelecommsInteraction.js":653,"./TelecommsLogBrowser.js":654,"./TelecommsMonitor.js":655,"./TelecommsPDALog.js":656,"./Teleporter.js":657,"./ThermoMachine.js":658,"./Timer.js":659,"./TransferValve.js":660,"./TurbineComputer.js":661,"./TurretControl.js":662,"./Uplink.js":142,"./VaultController.js":663,"./Vendatray.js":664,"./Vending.js":665,"./VrSleeper.js":666,"./Wires.js":667};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=487},function(e,t,n){"use strict";t.__esModule=!0,t.AbductorConsole=void 0;var o=n(0),r=n(142),a=n(2),c=n(1),i=n(3);t.AbductorConsole=function(e,t){var n=(0,a.useSharedState)(t,"tab",1),r=n[0],s=n[1];return(0,o.createComponentVNode)(2,i.Window,{theme:"abductor",width:600,height:532,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:1===r,onClick:function(){return s(1)},children:"Abductsoft 3000"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:2===r,onClick:function(){return s(2)},children:"Mission Settings"})]}),1===r&&(0,o.createComponentVNode)(2,l),2===r&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,u)],4)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),i=(n.act,n.data),l=i.experiment,d=i.points,u=i.credits;return l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Collected Samples",children:d})})}),(0,o.createComponentVNode)(2,r.GenericUplink,{currencyAmount:u,currencySymbol:"Credits"})],4):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Experiment Machine Detected"})},d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.pad,d=i.gizmo;return l?(0,o.createComponentVNode)(2,c.Section,{title:"Emergency Teleport",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"exclamation-circle",content:"Activate",color:"bad",onClick:function(){return r("teleporter_send")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mark Retrieval",children:(0,o.createComponentVNode)(2,c.Button,{icon:d?"user-plus":"user-slash",content:d?"Retrieve":"No Mark",disabled:!d,onClick:function(){return r("teleporter_retrieve")}})})})}):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Telepad Detected"})},u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.vest,d=i.vest_mode,u=i.vest_lock;return l?(0,o.createComponentVNode)(2,c.Section,{title:"Agent Vest Settings",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",onClick:function(){return r("toggle_vest")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:1===d?"eye-slash":"fist-raised",content:1===d?"Stealth":"Combat",onClick:function(){return r("flip_vest")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Disguise",children:(0,o.createComponentVNode)(2,c.Button,{icon:"user-secret",content:"Select",onClick:function(){return r("select_disguise")}})})]})}):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Agent Vest Detected"})}},function(e,t,n){"use strict";t.__esModule=!0,t.Achievements=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Achievements=function(e,t){var n=(0,r.useBackend)(t).data,l=n.categories,u=(0,r.useLocalState)(t,"category",l[0]),s=u[0],m=u[1],p=n.achievements.filter((function(e){return e.category===s}));return(0,o.createComponentVNode)(2,c.Window,{title:"Achievements",width:540,height:680,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[l.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:s===e,onClick:function(){return m(e)},children:e},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:"High Scores"===s,onClick:function(){return m("High Scores")},children:"High Scores"})]}),"High Scores"===s&&(0,o.createComponentVNode)(2,d)||(0,o.createComponentVNode)(2,i,{achievements:p})]})})};var i=function(e,t){var n=e.achievements;return(0,o.createComponentVNode)(2,a.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,l,{achievement:e},e.name)}))})},l=function(e){var t=e.achievement,n=t.name,r=t.desc,c=t.icon_class,i=t.value,l=t.score;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Box,{m:1,className:c})}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",children:[(0,o.createVNode)(1,"h1",null,n,0),r,l&&(0,o.createComponentVNode)(2,a.Box,{color:i>0?"good":"bad",children:i>0?"Earned "+i+" times":"Locked"})||(0,o.createComponentVNode)(2,a.Box,{color:i?"good":"bad",children:i?"Unlocked":"Locked"})]})]},n)},d=function(e,t){var n=(0,r.useBackend)(t).data,c=n.highscore,i=n.user_ckey,l=(0,r.useLocalState)(t,"highscore",0),d=l[0],u=l[1],s=c[d];if(!s)return null;var m=Object.keys(s.scores).map((function(e){return{ckey:e,value:s.scores[e]}}));return(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:c.map((function(e,t){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:d===t,onClick:function(){return u(t)},children:e.name},e.name)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Score"})]}),m.map((function(e,t){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:t+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:e.ckey===i&&"green",textAlign:"center",children:[0===t&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"yellow",mr:2}),e.ckey,0===t&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"yellow",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.value})]},e.ckey)}))]})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}};t.AiAirlock=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=i[d.power.main]||i[0],s=i[d.power.backup]||i[0],m=i[d.shock]||i[0];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:390,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.main,content:"Disrupt",onClick:function(){return l("disrupt-main")}}),children:[d.power.main?"Online":"Offline"," ",d.wires.main_1&&d.wires.main_2?d.power.main_timeleft>0&&"["+d.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.backup,content:"Disrupt",onClick:function(){return l("disrupt-backup")}}),children:[d.power.backup?"Online":"Offline"," ",d.wires.backup_1&&d.wires.backup_2?d.power.backup_timeleft>0&&"["+d.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:m.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(d.wires.shock&&0===d.shock),content:"Restore",onClick:function(){return l("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Temporary",onClick:function(){return l("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Permanent",onClick:function(){return l("shock-perm")}})],4),children:[2===d.shock?"Safe":"Electrified"," ",(d.wires.shock?d.shock_timeleft>0&&"["+d.shock_timeleft+"s]":"[Wires have been cut!]")||-1===d.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.id_scanner?"power-off":"times",content:d.id_scanner?"Enabled":"Disabled",selected:d.id_scanner,disabled:!d.wires.id_scanner,onClick:function(){return l("idscan-toggle")}}),children:!d.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.emergency?"power-off":"times",content:d.emergency?"Enabled":"Disabled",selected:d.emergency,onClick:function(){return l("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.locked?"lock":"unlock",content:d.locked?"Lowered":"Raised",selected:d.locked,disabled:!d.wires.bolts,onClick:function(){return l("bolt-toggle")}}),children:!d.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.lights?"power-off":"times",content:d.lights?"Enabled":"Disabled",selected:d.lights,disabled:!d.wires.lights,onClick:function(){return l("light-toggle")}}),children:!d.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.safe?"power-off":"times",content:d.safe?"Enabled":"Disabled",selected:d.safe,disabled:!d.wires.safe,onClick:function(){return l("safe-toggle")}}),children:!d.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.speed?"power-off":"times",content:d.speed?"Enabled":"Disabled",selected:d.speed,disabled:!d.wires.timing,onClick:function(){return l("speed-toggle")}}),children:!d.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.opened?"sign-out-alt":"sign-in-alt",content:d.opened?"Open":"Closed",selected:d.opened,disabled:d.locked||d.welded,onClick:function(){return l("open-close")}}),children:!(!d.locked&&!d.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),d.locked?"bolted":"",d.locked&&d.welded?" and ":"",d.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(0),r=n(9),a=(n(19),n(2)),c=n(1),i=(n(36),n(3)),l=n(64),d=n(492);t.AirAlarm=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data),c=r.locked&&!r.siliconUser;return(0,o.createComponentVNode)(2,i.Window,{width:440,height:650,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,u),!c&&(0,o.createComponentVNode)(2,m)]})})};var u=function(e,t){var n=(0,a.useBackend)(t).data,i=(n.environment_data||[]).filter((function(e){return e.value>=.01})),l={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},d=l[n.danger_level]||l[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[i.length>0&&(0,o.createFragment)([i.map((function(e){var t=l[e.danger_level]||l[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:d.color,children:d.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:n.atmos_alarm||n.fire_alarm?"bad":"good",children:(n.atmos_alarm?"Atmosphere Alarm":n.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!n.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return p}},vents:{title:"Vent Controls",component:function(){return C}},scrubbers:{title:"Scrubber Controls",component:function(){return h}},modes:{title:"Operating Mode",component:function(){return N}},thresholds:{title:"Alarm Thresholds",component:function(){return V}}},m=function(e,t){var n=(0,a.useLocalState)(t,"screen"),r=n[0],i=n[1],l=s[r]||s.home,d=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:r&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return i()}}),children:(0,o.createComponentVNode)(2,d)})},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=(0,a.useLocalState)(t,"screen"),d=(l[0],l[1]),u=i.mode,s=i.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:s?"exclamation-triangle":"exclamation",color:s&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return r(s?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===u?"exclamation-triangle":"exclamation",color:3===u&&"danger",content:"Panic Siphon",onClick:function(){return r("mode",{mode:3===u?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return d("vents")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return d("scrubbers")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return d("modes")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return d("thresholds")}})],4)},C=function(e,t){var n=(0,a.useBackend)(t).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.createComponentVNode)(2,d.Vent,{vent:e},e.id_tag)})):"Nothing to show"},h=function(e,t){var n=(0,a.useBackend)(t).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.createComponentVNode)(2,d.Scrubber,{scrubber:e},e.id_tag)})):"Nothing to show"},N=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.modes;return i&&0!==i.length?i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return r("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},V=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,l.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return i("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},function(e,t,n){"use strict";t.__esModule=!0,t.Scrubber=t.Vent=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(36);t.Vent=function(e,t){var n=e.vent,i=(0,a.useBackend)(t).act,l=n.id_tag,d=n.long_name,u=n.power,s=n.checks,m=n.excheck,p=n.incheck,C=n.direction,h=n.external,N=n.internal,V=n.extdefault,b=n.intdefault;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,r.decodeHtmlEntities)(d),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",selected:u,content:u?"On":"Off",onClick:function(){return i("power",{id_tag:l,val:Number(!u)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:C?"Pressurizing":"Scrubbing",color:!C&&"danger",onClick:function(){return i("direction",{id_tag:l,val:Number(!C)})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:p,onClick:function(){return i("incheck",{id_tag:l,val:s})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:m,onClick:function(){return i("excheck",{id_tag:l,val:s})}})]}),!!p&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(N),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,t){return i("set_internal_pressure",{id_tag:l,value:t})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:b,content:"Reset",onClick:function(){return i("reset_internal_pressure",{id_tag:l})}})]}),!!m&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(h),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,t){return i("set_external_pressure",{id_tag:l,value:t})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:V,content:"Reset",onClick:function(){return i("reset_external_pressure",{id_tag:l})}})]})]})})};t.Scrubber=function(e,t){var n=e.scrubber,l=(0,a.useBackend)(t).act,d=n.long_name,u=n.power,s=n.scrubbing,m=n.id_tag,p=n.widenet,C=n.filter_types;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,r.decodeHtmlEntities)(d),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power",{id_tag:m,val:Number(!u)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:s?"filter":"sign-in-alt",color:s||"danger",content:s?"Scrubbing":"Siphoning",onClick:function(){return l("scrubbing",{id_tag:m,val:Number(!s)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:p?"expand":"compress",selected:p,content:p?"Expanded range":"Normal range",onClick:function(){return l("widenet",{id_tag:m,val:Number(!p)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:s&&C.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return l("toggle_filter",{id_tag:m,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(202);t.AirlockElectronics=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.oneAccess,s=d.unres_direction,m=d.regions||[],p=d.accesses||[];return(0,o.createComponentVNode)(2,c.Window,{width:420,height:485,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Main",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access Required",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"unlock":"lock",content:u?"One":"All",onClick:function(){return l("one_access")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unrestricted Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:1&s?"check-square-o":"square-o",content:"North",selected:1&s,onClick:function(){return l("direc_set",{unres_direction:"1"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:2&s?"check-square-o":"square-o",content:"South",selected:2&s,onClick:function(){return l("direc_set",{unres_direction:"2"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:4&s?"check-square-o":"square-o",content:"East",selected:4&s,onClick:function(){return l("direc_set",{unres_direction:"4"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:8&s?"check-square-o":"square-o",content:"West",selected:8&s,onClick:function(){return l("direc_set",{unres_direction:"8"})}})]})]})}),(0,o.createComponentVNode)(2,i.AccessList,{accesses:m,selectedList:p,accessMod:function(e){return l("set",{access:e})},grantAll:function(){return l("grant_all")},denyAll:function(){return l("clear_all")},grantDep:function(e){return l("grant_region",{region:e})},denyDep:function(e){return l("deny_region",{region:e})}})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(64);t.Apc=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:450,height:445,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,u)})})};var l={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.locked&&!u.siliconUser,m=l[u.externalPower]||l[0],p=l[u.chargingStatus]||l[0],C=u.powerChannels||[],h=d[u.malfStatus]||d[0],N=u.powerCellStatus/100;return u.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",u.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return c("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:m.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,disabled:s,onClick:function(){return c("breaker")}}),children:["[ ",m.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:N})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.chargeMode?"sync":"close",content:u.chargeMode?"Auto":"Off",disabled:s,onClick:function(){return c("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[C.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!s&&(1===e.status||3===e.status),disabled:s,onClick:function(){return c("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!s&&2===e.status,disabled:s,onClick:function(){return c("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!s&&0===e.status,disabled:s,onClick:function(){return c("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,u.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,o.createFragment)([!!u.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:h.icon,content:h.content,color:"bad",onClick:function(){return c(h.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return c("overload")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",disabled:s,onClick:function(){return c("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.emergencyLights?"Enabled":"Disabled",disabled:s,onClick:function(){return c("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",onClick:function(){return c("toggle_nightshift")}})}),1===u.hijackable&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{title:"Hijacking",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"unlock",content:"Hijack",disabled:u.hijacker,onClick:function(){return c("hijack")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lockdown",isabled:!u.lockdownavail&&1===u.hijacked,onClick:function(){return c("lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Drain",disabled:!u.drainavail&&1===u.hijacked,onClick:function(){return c("drain")}})],4)})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ApcControl=void 0;var o=n(0),r=n(14),a=n(30),c=n(6),i=n(2),l=n(1),d=n(3),u=n(143);t.ApcControl=function(e,t){var n=(0,i.useBackend)(t).data;return(0,o.createComponentVNode)(2,d.Window,{title:"APC Controller",width:550,height:500,resizable:!0,children:[1===n.authenticated&&(0,o.createComponentVNode)(2,m),0===n.authenticated&&(0,o.createComponentVNode)(2,s)]})};var s=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.emagged,c=1===a?"Open":"Log In";return(0,o.createComponentVNode)(2,d.Window.Content,{children:(0,o.createComponentVNode)(2,l.Button,{fluid:!0,color:1===a?"":"good",content:c,onClick:function(){return r("log-in")}})})},m=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.restoring,c=(0,i.useLocalState)(t,"tab-index",1),u=c[0],s=c[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Tabs,{children:[(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:1===u,onClick:function(){s(1),r("check-apcs")},children:"APC Control Panel"}),(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:2===u,onClick:function(){s(2),r("check-logs")},children:"Log View Panel"})]}),1===a&&(0,o.createComponentVNode)(2,l.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,l.Icon,{name:"cog",spin:!0})," Resetting..."]}),1===u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,l.Box,{fillPositionedParent:!0,top:"53px",children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,C)})})],4),2===u&&(0,o.createComponentVNode)(2,l.Box,{fillPositionedParent:!0,top:"20px",children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,h)})})],0)},p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data,c=a.emagged,d=a.logging,u=(0,i.useLocalState)(t,"sortByField",null),s=u[0],m=u[1];return(0,o.createComponentVNode)(2,l.Flex,{children:[(0,o.createComponentVNode)(2,l.Flex.Item,{children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===s,content:"Name",onClick:function(){return m("name"!==s&&"name")}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===s,content:"Charge",onClick:function(){return m("charge"!==s&&"charge")}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===s,content:"Draw",onClick:function(){return m("draw"!==s&&"draw")}})]}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,l.Flex.Item,{children:[1===c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Button,{color:1===d?"bad":"good",content:1===d?"Stop Logging":"Restore Logging",onClick:function(){return r("toggle-logs")}}),(0,o.createComponentVNode)(2,l.Button,{content:"Reset Console",onClick:function(){return r("restore-console")}})],4),(0,o.createComponentVNode)(2,l.Button,{color:"bad",content:"Log Out",onClick:function(){return r("log-out")}})]})]})},C=function(e,t){var n=(0,i.useBackend)(t),c=n.data,d=n.act,s=(0,i.useLocalState)(t,"sortByField",null)[0],m=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===s&&(0,r.sortBy)((function(e){return e.name})),"charge"===s&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===s&&(0,r.sortBy)((function(e){return-(0,u.powerRank)(e.load)}),(function(e){return-parseFloat(e.load)}))])(c.apcs);return(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"On/Off"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),m.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,l.Button,{icon:e.operating?"power-off":"times",color:e.operating?"good":"bad",onClick:function(){return d("breaker",{ref:e.ref})}}),2),(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,l.Button,{onClick:function(){return d("access-apc",{ref:e.ref})},children:e.name}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,u.AreaCharge,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"equipment",status:e.eqp,apc:e,act:d}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"lighting",status:e.lgt,apc:e,act:d}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"environ",status:e.env,apc:e,act:d}),2)],4,null,e.id)}))]})},h=function(e,t){var n=(0,i.useBackend)(t).data,c=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.entry+t})})),function(e){return e.reverse()}])(n.logs);return(0,o.createComponentVNode)(2,l.Box,{m:-.5,children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Box,{p:.5,className:"candystripe",bold:!0,children:e.entry},e.id)}))})},N=function(e){var t=e.target,n=e.status,r=e.apc,a=e.act,c=Boolean(2&n),i=Boolean(1&n);return(0,o.createComponentVNode)(2,l.Button,{icon:i?"sync":"power-off",color:c?"good":"bad",onClick:function(){return a("toggle-minor",{type:t,value:V(n),ref:r.ref})}})},V=function(e){return 0===e?2:2===e?3:0};N.defaultHooks=c.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AtmosAlertConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.priority||[],u=l.minor||[];return(0,o.createComponentVNode)(2,c.Window,{width:350,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[0===d.length&&(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),d.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return i("clear",{zone:e})}}),2,null,e)})),0===u.length&&(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16),u.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return i("clear",{zone:e})}}),2,null,e)}))],0)})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(0),r=n(14),a=n(9),c=n(2),i=n(1),l=n(3);t.AtmosControlConsole=function(e,t){var n,d=(0,c.useBackend)(t),u=d.act,s=d.data,m=s.sensors||[];return(0,o.createComponentVNode)(2,l.Window,{width:500,height:315,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:!!s.tank&&(null==(n=m[0])?void 0:n.long_name),children:m.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,i.Section,{title:!s.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),s.tank&&(0,o.createComponentVNode)(2,i.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"undo",content:"Reconnect",onClick:function(){return u("reconnect")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,i.Button,{icon:s.inputting?"power-off":"times",content:s.inputting?"Injecting":"Off",selected:s.inputting,onClick:function(){return u("input")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:s.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return u("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,i.Button,{icon:s.outputting?"power-off":"times",content:s.outputting?"Open":"Closed",selected:s.outputting,onClick:function(){return u("output")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:parseFloat(s.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return u("pressure",{pressure:t})}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlPanel=void 0;var o=n(0),r=n(14),a=n(30),c=n(2),i=n(1),l=n(3);t.AtmosControlPanel=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.area+t})})),(0,r.sortBy)((function(e){return e.id}))])(u.excited_groups);return(0,o.createComponentVNode)(2,l.Window,{title:"SSAir Control Panel",width:900,height:500,resizable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{m:1,children:(0,o.createComponentVNode)(2,i.Flex,{justify:"space-between",align:"baseline",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{onClick:function(){return d("toggle-freeze")},color:1===u.frozen?"good":"bad",children:1===u.frozen?"Freeze Subsystem":"Unfreeze Subsystem"})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Fire Cnt: ",u.fire_count]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Active Turfs: ",u.active_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Excited Groups: ",u.excited_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Hotspots: ",u.hotspots_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Superconductors: ",u.conducting_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:u.showing_user,onClick:function(){return d("toggle_user_display")},children:"Personal View"})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:u.show_all,onClick:function(){return d("toggle_show_all")},children:"Display all"})})]})}),(0,o.createComponentVNode)(2,i.Box,{fillPositionedParent:!0,top:"45px",children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Area Name"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Breakdown"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Dismantle"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Turfs"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:1===u.display_max&&"Max Share"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Display"})]}),s.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Button,{content:e.area,onClick:function(){return d("move-to-target",{spot:e.jump_to})}}),2),(0,o.createVNode)(1,"td",null,e.breakdown,0),(0,o.createVNode)(1,"td",null,e.dismantle,0),(0,o.createVNode)(1,"td",null,e.size,0),(0,o.createVNode)(1,"td",null,1===u.display_max&&e.max_share,0),(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:e.should_show,onClick:function(){return d("toggle_show_group",{group:e.group})}}),2)],4,null,e.id)}))]})})})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(0),r=n(2),a=n(1),c=n(36),i=n(3);t.AtmosFilter=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.filter_types||[];return(0,o.createComponentVNode)(2,i.Window,{width:390,height:187,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.on?"power-off":"times",content:d.on?"On":"Off",selected:d.on,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(d.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return l("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:d.rate===d.max_rate,onClick:function(){return l("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,c.getGasLabel)(e.id,e.name),onClick:function(){return l("filter",{mode:e.id})}},e.id)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AtmosMixer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:370,height:165,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return i("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.set_pressure===l.max_pressure,onClick:function(){return i("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:l.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return i("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:l.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return i("node2",{concentration:t})}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AtmosPump=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:335,height:115,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,onClick:function(){return i("power")}})}),l.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return i("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.rate===l.max_rate,onClick:function(){return i("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return i("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.pressure===l.max_pressure,onClick:function(){return i("pressure",{pressure:"max"})}})]})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosRelief=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AtmosRelief=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:335,height:115,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Open Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.open_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:l.max_pressure||4500,step:10,onChange:function(e,t){return i("open_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.open_pressure===l.max_pressure,onClick:function(){return i("open_pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Close Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.close_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:l.max_pressure||4500,step:10,onChange:function(e,t){return i("close_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.close_pressure===l.max_pressure,onClick:function(){return i("close_pressure",{pressure:"max"})}})]})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AutomatedAnnouncement=void 0;var o=n(0),r=(n(19),n(2)),a=n(1),c=n(3),i="%PERSON will be replaced with their name.\n%RANK with their job.";t.AutomatedAnnouncement=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.arrivalToggle,s=d.arrival,m=d.newheadToggle,p=d.newhead;return(0,o.createComponentVNode)(2,c.Window,{title:"Automated Announcement System",width:500,height:225,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Arrival Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",selected:u,content:u?"On":"Off",onClick:function(){return l("ArrivalToggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"info",tooltip:i,tooltipPosition:"left"}),children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:s,onChange:function(e,t){return l("ArrivalText",{newText:t})}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Departmental Head Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return l("NewheadToggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"info",tooltip:i,tooltipPosition:"left"}),children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:p,onChange:function(e,t){return l("NewheadText",{newText:t})}})})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.BankMachine=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.current_balance,s=d.siphoning,m=d.station_name;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:155,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"Authorized personnel only"}),(0,o.createComponentVNode)(2,a.Section,{title:m+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:s?"times":"sync",content:s?"Stop Siphoning":"Siphon Credits",selected:s,onClick:function(){return l(s?"halt":"siphon")}}),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u,format:function(e){return(0,c.formatMoney)(e)}})," cr"]})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Bepis=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.amount;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:480,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:l.manual_power?"Off":"On",selected:!l.manual_power,onClick:function(){return i("toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return i("account_reset")}}),children:["Console is currently being operated by ",l.account_owner?l.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:l.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[l.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:l.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:l.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return i("amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===l.manual_power||1===l.silicon_check,onClick:function(){return i("deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===l.manual_power,onClick:function(){return i("withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",l.mean_value]}),(0,o.createComponentVNode)(2,a.Box,{children:["Current chance of Success: Est. ",l.success_estimate,"%"]}),l.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===l.manual_power,onClick:function(){return i("begin_experiment")},content:"Begin Testing"})]})})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BiogeneratorContent=t.Biogenerator=void 0;var o=n(0),r=n(6),a=n(19),c=n(2),i=n(1),l=n(39),d=n(3);t.Biogenerator=function(e,t){var n=(0,c.useBackend)(t).data,r=n.beaker,a=n.processing;return(0,o.createComponentVNode)(2,d.Window,{width:550,height:380,resizable:!0,children:[!!a&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Processing..."]}),(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:[!r&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Container"}),!!r&&(0,o.createComponentVNode)(2,u)]})]})};var u=function(e,t){var n,r,d=(0,c.useBackend)(t),u=d.act,m=d.data,p=m.biomass,C=m.can_process,h=m.categories,N=void 0===h?[]:h,V=(0,c.useLocalState)(t,"searchText",""),b=V[0],f=V[1],g=(0,c.useLocalState)(t,"category",null==(n=N[0])?void 0:n.name),v=g[0],k=g[1],x=(0,a.createSearch)(b,(function(e){return e.name})),B=b.length>0&&N.flatMap((function(e){return e.items||[]})).filter(x).filter((function(e,t){return t<25}))||(null==(r=N.find((function(e){return e.name===v})))?void 0:r.items)||[];return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:p>0?"good":"bad",children:[(0,l.formatMoney)(p)," Biomass"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{autoFocus:!0,value:b,onInput:function(e,t){return f(t)},mx:1}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return u("detach")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Activate",disabled:!C,onClick:function(){return u("activate")}})],4),children:(0,o.createComponentVNode)(2,i.Flex,{children:[0===b.length&&(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:N.map((function(e){var t;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:e.name===v,onClick:function(){return k(e.name)},children:[e.name," (",(null==(t=e.items)?void 0:t.length)||0,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,basis:0,children:[0===B.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:0===b.length?"No items in this category.":"No results found."}),(0,o.createComponentVNode)(2,i.Table,{children:(0,o.createComponentVNode)(2,s,{biomass:p,items:B})})]})]})})};t.BiogeneratorContent=u;var s=function(e,t){var n=(0,c.useBackend)(t).act,a=(0,c.useLocalState)(t,"hoveredItem",{}),l=a[0],d=a[1],u=l&&l.cost||0;return e.items.map((function(n){var o=(0,c.useLocalState)(t,"amount"+n.name,1),r=o[0],a=o[1],i=l&&l.name!==n.name,d=e.biomass-u*l.amountV,onClick:function(){return d("select",{item:e.id})}})})]}),e.desc]},e.name)}))})]})]})]})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.buying,u=l.ltsrbt_built,s=l.money;if(!d)return null;var m=l.delivery_methods.map((function(e){var t=l.delivery_method_description[e.name];return Object.assign({},e,{description:t})}));return(0,o.createComponentVNode)(2,a.Modal,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:m.map((function(e){return"LTSRBT"!==e.name||u?(0,o.createComponentVNode)(2,a.Flex.Item,{mx:1,width:"250px",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"30px",children:e.name}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:e.description}),(0,o.createComponentVNode)(2,a.Button,{mt:2,content:(0,c.formatMoney)(e.price)+" cr",disabled:s=0||(r[n]=e[n]);return r}(t,["res","value"]),a=l(n),c=a[0],i=a[1];return(0,o.normalizeProps)((0,o.createVNode)(1,"canvas",null,"Canvas failed to render.",16,Object.assign({width:28*c||300,height:28*i||300},r,{onClick:function(t){return e.clickwrapper(t)}}),null,this.canvasRef))},r}(o.Component),l=function(e){var t=e.length;return[t,0!==t?e[0].length:0]};t.Canvas=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=l(u.grid),m=s[0],p=s[1];return(0,o.createComponentVNode)(2,c.Window,{width:Math.min(400,28*m*32+24),height:Math.min(400,28*p*32+24),resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,i,{value:u.grid,onCanvasClick:function(e,t){return d("paint",{x:e,y:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:[!u.finalized&&(0,o.createComponentVNode)(2,a.Button.Confirm,{onClick:function(){return d("finalize")},content:"Finalize"}),u.name]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoBountyConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.CargoBountyConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data.bountydata,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:750,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,l),buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print Bounty List",onClick:function(){return c("Print")}}),children:(0,o.createComponentVNode)(2,a.Table,{border:!0,children:[(0,o.createComponentVNode)(2,a.Table.Row,{bold:!0,italic:!0,color:"label",fontSize:1.25,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Bounty Object"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Description"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Progress"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Claim"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:1===e.priority?"rgba(252, 152, 3, 0.25)":"",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{italic:!0,textAlign:"center",p:1,children:e.description}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:[1===e.priority?(0,o.createComponentVNode)(2,a.Box,{children:"High Priority"}):"",e.completion_string]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:e.reward_string}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:1===e.claimed?"check":"",content:1===e.claimed?"Claimed":"Claim",disabled:1===e.claimed,color:1===e.can_claim?"green":"red",onClick:function(){return c("ClaimBounty",{bounty:e.bounty_ref})}})})]},e.name)}))]})})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.stored_cash);return(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i,format:function(e){return(0,c.formatMoney)(e)}})," credits"]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(203),l=n(64);t.CargoExpress=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data);return(0,o.createComponentVNode)(2,c.Window,{width:600,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.InterfaceLockNoticeBox,{accessText:"a QM-level ID card"}),!a.locked&&(0,o.createComponentVNode)(2,d)]})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(l.points)})," credits"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Cargo Bay",selected:!l.usingBeacon,onClick:function(){return c("LZCargo")}}),(0,o.createComponentVNode)(2,a.Button,{selected:l.usingBeacon,disabled:!l.hasBeacon,onClick:function(){return c("LZBeacon")},children:[l.beaconzone," (",l.beaconName,")"]}),(0,o.createComponentVNode)(2,a.Button,{content:l.printMsg,disabled:!l.canBuyBeacon,onClick:function(){return c("printBeacon")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Notice",children:l.message})]})}),(0,o.createComponentVNode)(2,i.CargoCatalog,{express:!0})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoHoldTerminal=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.CargoHoldTerminal=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.points,u=l.pad,s=l.sending,m=l.status_report;return(0,o.createComponentVNode)(2,c.Window,{width:600,height:230,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Cargo Value",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(d)})," credits"]})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Recalculate Value",disabled:!u,onClick:function(){return i("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{icon:s?"times":"arrow-up",content:s?"Stop Sending":"Send Goods",selected:s,disabled:!u,onClick:function(){return i(s?"stop":"send")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u?"good":"bad",children:u?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:m})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.CellularEmporium=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.abilities;return(0,o.createComponentVNode)(2,c.Window,{width:900,height:480,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!l.can_readapt,onClick:function(){return i("readapt")}}),children:l.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return i("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncher=void 0;var o=n(0),r=n(9),a=n(6),c=n(79),i=(n(19),n(204)),l=n(2),d=n(1),u=n(3);function s(e,t,n,o,r,a,c){try{var i=e[a](c),l=i.value}catch(d){return void n(d)}i.done?t(l):Promise.resolve(l).then(o,r)}function m(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var a=e.apply(t,n);function c(e){s(a,o,r,c,i,"next",e)}function i(e){s(a,o,r,c,i,"throw",e)}c(undefined)}))}}var p={color:"grey"},C=function(e){var t=(0,l.useLocalState)(e,"compact",!1),n=t[0],o=t[1];return[n,function(){return o(!n)}]};t.CentcomPodLauncher=function(e,t){var n=C(t)[0];return(0,o.createComponentVNode)(2,u.Window,{resizable:!0,title:n?"Use against Helen Weinstein":"Supply Pod Menu (Use against Helen Weinstein)",overflow:"hidden",width:n?435:690,height:n?360:440,children:(0,o.createComponentVNode)(2,h)},"CPL_"+n)};var h=function(e,t){var n=C(t)[0];return(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,d.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{grow:0,shrink:0,children:(0,o.createComponentVNode)(2,L)}),(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,grow:1,children:(0,o.createComponentVNode)(2,d.Flex,{height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{grow:1,shrink:0,basis:"13em",children:(0,o.createComponentVNode)(2,d.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,S)}),(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,grow:0,children:(0,o.createComponentVNode)(2,y)}),(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,d.Section,{children:(0,o.createComponentVNode)(2,I)})})]})}),!n&&(0,o.createComponentVNode)(2,d.Flex.Item,{ml:1,grow:3,children:(0,o.createComponentVNode)(2,x)}),(0,o.createComponentVNode)(2,d.Flex.Item,{ml:1,basis:"8em",children:(0,o.createComponentVNode)(2,d.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{children:(0,o.createComponentVNode)(2,A)}),(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,grow:1,children:(0,o.createComponentVNode)(2,P)}),!n&&(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,R)})]})}),(0,o.createComponentVNode)(2,d.Flex.Item,{ml:1,basis:"11em",children:(0,o.createComponentVNode)(2,T)})]})})]})})},N=[{title:"View Pod",component:function(){return B}},{title:"View Bay",component:function(){return _}},{title:"View Dropoff Location",component:function(){return w}}],V=[{title:"Mobs",icon:"user"},{title:"Unanchored\nObjects",key:"Unanchored",icon:"cube"},{title:"Anchored\nObjects",key:"Anchored",icon:"anchor"},{title:"Under-Floor",key:"Underfloor",icon:"eye-slash"},{title:"Wall-Mounted",key:"Wallmounted",icon:"link"},{title:"Floors",icon:"border-all"},{title:"Walls",icon:"square"}],b=[{title:"Pre",tooltip:"Time until pod gets to station"},{title:"Fall",tooltip:"Duration of pods\nfalling animation"},{title:"Open",tooltip:"Time it takes pod to open after landing"},{title:"Exit",tooltip:"Time for pod to\nleave after opening"}],f=[{title:"Fall",act:"fallingSound",tooltip:"Plays while pod falls, timed\nto end when pod lands"},{title:"Land",act:"landingSound",tooltip:"Plays after pod lands"},{title:"Open",act:"openingSound",tooltip:"Plays when pod opens"},{title:"Exit",act:"leavingSound",tooltip:"Plays when pod leaves"}],g=[{title:"Standard"},{title:"Advanced"},{title:"Nanotrasen"},{title:"Syndicate"},{title:"Deathsquad"},{title:"Cultist"},{title:"Missile"},{title:"Syndie Missile"},{title:"Supply Box"},{title:"Clown Pod"},{title:"Fruit"},{title:"Invisible"},{title:"Gondola"},{title:"Seethrough"}],v=[{title:"1"},{title:"2"},{title:"3"},{title:"4"},{title:"ERT"}],k=[{list:[{title:"Launch All Turfs",icon:"globe",choiceNumber:0,selected:"launchChoice",act:"launchAll"},{title:"Launch Turf Ordered",icon:"sort-amount-down-alt",choiceNumber:1,selected:"launchChoice",act:"launchOrdered"},{title:"Pick Random Turf",icon:"dice",choiceNumber:2,selected:"launchChoice",act:"launchRandomTurf"},{divider:1},{title:"Launch Whole Turf",icon:"expand",choiceNumber:0,selected:"launchRandomItem",act:"launchWholeTurf"},{title:"Pick Random Item",icon:"dice",choiceNumber:1,selected:"launchRandomItem",act:"launchRandomItem"},{divider:1},{title:"Clone",icon:"clone",soloSelected:"launchClone",act:"launchClone"}],label:"Load From",alt_label:"Load",tooltipPosition:"right"},{list:[{title:"Specific Target",icon:"user-check",soloSelected:"effectTarget",act:"effectTarget"},{title:"Pod Stays",icon:"hand-paper",choiceNumber:0,selected:"effectBluespace",act:"effectBluespace"},{title:"Stealth",icon:"user-ninja",soloSelected:"effectStealth",act:"effectStealth"},{title:"Quiet",icon:"volume-mute",soloSelected:"effectQuiet",act:"effectQuiet"},{title:"Missile Mode",icon:"rocket",soloSelected:"effectMissile",act:"effectMissile"},{title:"Burst Launch",icon:"certificate",soloSelected:"effectBurst",act:"effectBurst"},{title:"Any Descent Angle",icon:"ruler-combined",soloSelected:"effectCircle",act:"effectCircle"},{title:"No Ghost Alert\n(If you dont want to\nentertain bored ghosts)",icon:"ghost",choiceNumber:0,selected:"effectAnnounce",act:"effectAnnounce"}],label:"Normal Effects",tooltipPosition:"bottom"},{list:[{title:"Explosion Custom",icon:"bomb",choiceNumber:1,selected:"explosionChoice",act:"explosionCustom"},{title:"Adminbus Explosion\nWhat are they gonna do, ban you?",icon:"bomb",choiceNumber:2,selected:"explosionChoice",act:"explosionBus"},{divider:1},{title:"Custom Damage",icon:"skull",choiceNumber:1,selected:"damageChoice",act:"damageCustom"},{title:"Gib",icon:"skull-crossbones",choiceNumber:2,selected:"damageChoice",act:"damageGib"},{divider:1},{title:"Projectile Cloud",details:!0,icon:"cloud-meatball",soloSelected:"effectShrapnel",act:"effectShrapnel"},{title:"Stun",icon:"sun",soloSelected:"effectStun",act:"effectStun"},{title:"Delimb",icon:"socks",soloSelected:"effectLimb",act:"effectLimb"},{title:"Yeet Organs",icon:"book-dead",soloSelected:"effectOrgans",act:"effectOrgans"}],label:"Harmful Effects",tooltipPosition:"bottom"}],x=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data,c=(0,l.useLocalState)(t,"tabPageIndex",1),i=c[0],u=c[1],s=a.mapRef,m=N[i].component();return(0,o.createComponentVNode)(2,d.Section,{title:"View",fill:!0,buttons:(0,o.createFragment)([!!a.customDropoff&&1===a.effectReverse&&(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",tooltip:"View Dropoff Location",icon:"arrow-circle-down",selected:2===i,onClick:function(){u(2),r("tabSwitch",{tabIndex:2})}}),(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",tooltip:"View Pod",icon:"rocket",selected:0===i,onClick:function(){u(0),r("tabSwitch",{tabIndex:0})}}),(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",tooltip:"View Source Bay",icon:"th",selected:1===i,onClick:function(){u(1),r("tabSwitch",{tabIndex:1})}}),(0,o.createVNode)(1,"span",null,"|",16,{style:p}),!!a.customDropoff&&1===a.effectReverse&&(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",icon:"lightbulb",selected:a.renderLighting,tooltip:"Render Lighting for the dropoff view",onClick:function(){r("renderLighting"),r("refreshView")}}),(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",icon:"sync-alt",tooltip:"Refresh view window in case it breaks",onClick:function(){u(i),r("refreshView")}})],0),children:(0,o.createComponentVNode)(2,d.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,m)}),(0,o.createComponentVNode)(2,d.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,d.Section,{fill:!0,children:(0,o.createComponentVNode)(2,d.ByondUi,{fillPositionedParent:!0,params:{zoom:0,id:s,type:"map"}})})})]})})},B=function(e,t){return(0,o.createComponentVNode)(2,d.Box,{color:"label",children:["Note: You can right click on this",(0,o.createVNode)(1,"br"),"blueprint pod and edit vars directly"]})},_=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data;n.config;return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Button,{content:"Teleport",icon:"street-view",onClick:function(){return r("teleportCentcom")}}),(0,o.createComponentVNode)(2,d.Button,{content:a.oldArea?a.oldArea.substring(0,17):"Go Back",disabled:!a.oldArea,icon:"undo-alt",onClick:function(){return r("teleportBack")}})],4)},w=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data;n.config,a.mapRef;return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Button,{content:"Teleport",icon:"street-view",onClick:function(){return r("teleportDropoff")}}),(0,o.createComponentVNode)(2,d.Button,{content:a.oldArea?a.oldArea.substring(0,17):"Go Back",disabled:!a.oldArea,icon:"undo-alt",onClick:function(){return r("teleportBack")}})],4)},L=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data,c=C(t),i=c[0],u=c[1];return(0,o.createComponentVNode)(2,d.Section,{fill:!0,width:"100%",children:(0,o.createComponentVNode)(2,d.Flex,{children:k.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Flex.Item,{children:[(0,o.createComponentVNode)(2,d.Box,{bold:!0,color:"label",mb:1,children:[1===i&&e.alt_label?e.alt_label:e.label,":"]}),(0,o.createComponentVNode)(2,d.Box,{children:e.list.map((function(t,n){return(0,o.createFragment)([t.divider&&(0,o.createVNode)(1,"span",null,(0,o.createVNode)(1,"b",null,"|",16),2,{style:p}),!t.divider&&(0,o.createComponentVNode)(2,d.Button,{tooltip:t.details&&a.effectShrapnel?t.title+"\n"+a.shrapnelType+"\nMagnitude:"+a.shrapnelMagnitude:t.title,tooltipPosition:e.tooltipPosition,tooltipOverrideLong:!0,icon:t.icon,content:t.content,selected:t.soloSelected?a[t.soloSelected]:a[t.selected]===t.choiceNumber,onClick:function(){return 0!==a.payload?r(t.act,t.payload):r(t.act)},style:{"vertical-align":"middle","margin-left":0!==n?"1px":"0px","margin-right":n!==e.list.length-1?"1px":"0px","border-radius":"5px"}})],0,n)}))})]}),t=g.length-2?t%2==1?"top-left":"top-right":t%2==1?"bottom-left":"bottom-right",tooltip:e.title,style:{"vertical-align":"middle","margin-right":"5px","border-radius":"20px"},selected:c.styleChoice-1===t,onClick:function(){return r("setStyle",{style:t})},children:(0,o.createComponentVNode)(2,d.Box,{className:(0,a.classes)(["supplypods64x64","pod_asset"+(t+1)]),style:{transform:"rotate(45deg) translate(-25%,-10%)","pointer-events":"none"}})},t)}))})},A=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data;C(t)[0];return(0,o.createComponentVNode)(2,d.Section,{fill:!0,title:"Bay",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Button,{icon:"trash",color:"transparent",tooltip:"Clears everything\nfrom the selected bay",tooltipOverrideLong:!0,tooltipPosition:"bottom-right",onClick:function(){return r("clearBay")}}),(0,o.createComponentVNode)(2,d.Button,{icon:"question",color:"transparent",tooltip:'Each option corresponds\nto an area on centcom.\nLaunched pods will\nbe filled with items\nin these areas according\nto the "Load from Bay"\noptions at the top left.',tooltipOverrideLong:!0,tooltipPosition:"bottom-right"})],4),children:v.map((function(e,t){return(0,o.createComponentVNode)(2,d.Button,{content:e.title,tooltipPosition:"bottom-right",selected:a.bayNumber===""+(t+1),onClick:function(){return r("switchBay",{bayNumber:""+(t+1)})}},t)}))})},P=function(e,t){var n=(0,l.useBackend)(t),a=n.act,c=n.data;return(0,o.createComponentVNode)(2,d.Section,{fill:!0,title:"Delay",buttons:(0,o.createComponentVNode)(2,d.Button,{icon:"undo",color:"transparent",tooltip:"Reset all pod\ntimings/delays",tooltipOverrideLong:!0,tooltipPosition:"bottom-right",onClick:function(){return a("resetTiming")}}),children:(0,o.createComponentVNode)(2,d.LabeledControls,{wrap:!0,children:b.map((function(e,t){return(0,o.createComponentVNode)(2,d.LabeledControls.Item,{label:e.title,children:(0,o.createComponentVNode)(2,d.Knob,{inline:!0,step:.02,value:c["delay_"+(t+1)]/10,unclamped:!0,minValue:0,unit:"s",format:function(e){return(0,r.toFixed)(e,2)},maxValue:10,color:c["delay_"+(t+1)]/10>10?"orange":"default",onDrag:function(e,n){a("editTiming",{timer:t+1,value:Math.max(n,0)})}})},t)}))})})},R=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data;return(0,o.createComponentVNode)(2,d.Section,{fill:!0,title:"Sounds",buttons:(0,o.createComponentVNode)(2,d.Button,{icon:"volume-up",color:"transparent",selected:a.soundVolume!==a.defaultSoundVolume,tooltip:"Sound Volume:"+a.soundVolume,tooltipOverrideLong:!0,onClick:function(){return r("soundVolume")}}),children:f.map((function(e,t){return(0,o.createComponentVNode)(2,d.Button,{content:e.title,tooltip:e.tooltip,tooltipPosition:"top-right",tooltipOverrideLong:!0,selected:a[e.act],onClick:function(){return r(e.act)}},t)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ChemAcclimator=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:320,height:271,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[l.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return i("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:l.target_temperature,stepPixelSize:2,onChange:function(e,t){i("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:l.enabled?"On":"Off",selected:l.enabled,onClick:function(){return i("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.max_volume,unit:"u",width:"50px",minValue:l.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return i("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:l.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:l.emptying?"Emptying":"Filling"})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ChemDebugSynthesizer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.amount,u=l.beakerCurrentVolume,s=l.beakerMaxVolume,m=l.isBeakerLoaded,p=l.beakerContents,C=void 0===p?[]:p;return(0,o.createComponentVNode)(2,c.Window,{width:390,height:330,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return i("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"u",minValue:1,maxValue:s,step:1,stepPixelSize:2,onChange:function(e,t){return i("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return i("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return i("makecup")}}),children:m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," / "+s+" u"]}),C.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(0),r=n(9),a=n(19),c=n(2),i=n(1),l=n(3);t.ChemDispenser=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=!!u.recordingRecipe,m=Object.keys(u.recipes).map((function(e){return{name:e,contents:u.recipes[e]}})),p=u.beakerTransferAmounts||[],C=s&&Object.keys(u.recordingRecipe).map((function(e){return{id:e,name:(0,a.toTitleCase)(e.replace(/_/," ")),volume:u.recordingRecipe[e]}}))||u.beakerContents||[];return(0,o.createComponentVNode)(2,l.Window,{width:565,height:620,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:"Status",buttons:s&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,color:"red",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"circle",mr:1}),"Recording"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,i.ProgressBar,{value:u.energy/u.maxEnergy,children:(0,r.toFixed)(u.energy)+" units"})})})}),(0,o.createComponentVNode)(2,i.Section,{title:"Recipes",buttons:(0,o.createFragment)([!s&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:(0,o.createComponentVNode)(2,i.Button,{color:"transparent",content:"Clear recipes",onClick:function(){return d("clear_recipes")}})}),!s&&(0,o.createComponentVNode)(2,i.Button,{icon:"circle",disabled:!u.isBeakerLoaded,content:"Record",onClick:function(){return d("record_recipe")}}),s&&(0,o.createComponentVNode)(2,i.Button,{icon:"ban",color:"transparent",content:"Discard",onClick:function(){return d("cancel_recording")}}),s&&(0,o.createComponentVNode)(2,i.Button,{icon:"save",color:"green",content:"Save",onClick:function(){return d("save_recording")}})],0),children:(0,o.createComponentVNode)(2,i.Box,{mr:-1,children:[m.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",width:"129.5px",lineHeight:1.75,content:e.name,onClick:function(){return d("dispense_recipe",{recipe:e.name})}},e.name)})),0===m.length&&(0,o.createComponentVNode)(2,i.Box,{color:"light-gray",children:"No recipes."})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Dispense",buttons:p.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",selected:e===u.amount,content:e,onClick:function(){return d("amount",{target:e})}},e)})),children:(0,o.createComponentVNode)(2,i.Box,{mr:-1,children:u.chemicals.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",width:"129.5px",lineHeight:1.75,content:e.title,onClick:function(){return d("dispense",{reagent:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:p.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"minus",disabled:s,content:e,onClick:function(){return d("remove",{amount:e})}},e)})),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Beaker",buttons:!!u.isBeakerLoaded&&(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!u.isBeakerLoaded,onClick:function(){return d("eject")}}),children:(s?"Virtual beaker":u.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:0,value:u.beakerCurrentVolume}),(0,o.createTextVNode)("/"),u.beakerMaxVolume,(0,o.createTextVNode)(" units")],0))||"No beaker"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Contents",children:[(0,o.createComponentVNode)(2,i.Box,{color:"label",children:u.isBeakerLoaded||s?0===C.length&&"Nothing":"N/A"}),C.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{color:"label",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:0,value:e.volume})," ","units of ",e.name]},e.name)})),(0,o.createComponentVNode)(2,i.Box,{children:["pH:",(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:7,value:u.beakerCurrentpH})]},"pH")]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=(0,r.useBackend)(t).act,c=e.title,i=e.list,l=e.reagentName,d=e.onReagentInput,u=c.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:c,minHeight:"240px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return d(t)}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",onClick:function(){return n("add",{which:u,name:l})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return n("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;t.ChemFilter=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data),d=l.left,u=void 0===d?[]:d,s=l.right,m=void 0===s?[]:s,p=(0,r.useLocalState)(t,"leftName",""),C=p[0],h=p[1],N=(0,r.useLocalState)(t,"rightName",""),V=N[0],b=N[1];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i,{title:"Left",list:u,reagentName:C,onReagentInput:function(e){return h(e)}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i,{title:"Right",list:m,reagentName:V,onReagentInput:function(e){return b(e)}})})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3),l=n(205);t.ChemHeater=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.targetTemp,m=u.isActive,p=u.isBeakerLoaded,C=u.currentTemp,h=u.beakerCurrentVolume,N=u.beakerMaxVolume,V=u.beakerContents,b=void 0===V?[]:V;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:320,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"Thermostat",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return d("power")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,c.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,r.round)(s),minValue:0,maxValue:1e3,onDrag:function(e,t){return d("temperature",{target:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Reading",children:(0,o.createComponentVNode)(2,c.Box,{width:"60px",textAlign:"right",children:p&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:C,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:2,children:[h," / ",N," units"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return d("eject")}})],4),children:[(0,o.createComponentVNode)(2,l.BeakerContents,{beakerLoaded:p,beakerContents:b}),(0,o.createComponentVNode)(2,c.Box,{color:"label",children:[Number(u.currentpH).toFixed(u.partRating)," pH"]},"pH")]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ChemMaster=function(e,t){var n=(0,r.useBackend)(t).data.screen;return(0,o.createComponentVNode)(2,c.Window,{width:465,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:"analyze"===n&&(0,o.createComponentVNode)(2,m)||(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,u=i.screen,p=i.beakerContents,C=void 0===p?[]:p,h=i.bufferContents,N=void 0===h?[]:h,V=i.beakerCurrentVolume,b=i.beakerMaxVolume,f=i.isBeakerLoaded,g=i.isPillBottleLoaded,v=i.pillBottleCurrentAmount,k=i.pillBottleMaxAmount;return"analyze"===u?(0,o.createComponentVNode)(2,m):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:!!i.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:V,initial:0})," / "+b+" units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}})],4),children:[!f&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"No beaker loaded."}),!!f&&0===C.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Beaker is empty."}),(0,o.createComponentVNode)(2,l,{children:C.map((function(e){return(0,o.createComponentVNode)(2,d,{chemical:e,transferTo:"buffer"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Buffer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Mode:"}),(0,o.createComponentVNode)(2,a.Button,{color:i.mode?"good":"bad",icon:i.mode?"exchange-alt":"times",content:i.mode?"Transfer":"Destroy",onClick:function(){return c("toggleMode")}})],4),children:[0===N.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Buffer is empty."}),(0,o.createComponentVNode)(2,l,{children:N.map((function(e){return(0,o.createComponentVNode)(2,d,{chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Packaging",children:(0,o.createComponentVNode)(2,s)}),!!g&&(0,o.createComponentVNode)(2,a.Section,{title:"Pill Bottle",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[v," / ",k," pills"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("ejectPillBottle")}})],4)})],0)},l=a.Table,d=function(e,t){var n=(0,r.useBackend)(t).act,c=e.chemical,i=e.transferTo;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.volume,initial:0})," units of "+c.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"1",onClick:function(){return n("transfer",{id:c.id,amount:1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"5",onClick:function(){return n("transfer",{id:c.id,amount:5,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"10",onClick:function(){return n("transfer",{id:c.id,amount:10,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"All",onClick:function(){return n("transfer",{id:c.id,amount:1e3,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"ellipsis-h",title:"Custom amount",onClick:function(){return n("transfer",{id:c.id,amount:-1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"question",title:"Analyze",onClick:function(){return n("analyze",{id:c.id})}})]})]},c.id)},u=function(e){var t=e.label,n=e.amountUnit,r=e.amount,c=e.onChangeAmount,i=e.onCreate,l=e.sideNote;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:[(0,o.createComponentVNode)(2,a.NumberInput,{width:"84px",unit:n,step:1,stepPixelSize:15,value:r,minValue:1,maxValue:20,onChange:c}),(0,o.createComponentVNode)(2,a.Button,{ml:1,content:"Create",onClick:i}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,ml:1,color:"label",children:l})]})},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useSharedState)(t,"pillAmount",1),d=l[0],s=l[1],m=(0,r.useSharedState)(t,"patchAmount",1),p=m[0],C=m[1],h=(0,r.useSharedState)(t,"bottleAmount",1),N=h[0],V=h[1],b=(0,r.useSharedState)(t,"packAmount",1),f=b[0],g=b[1],v=(0,r.useSharedState)(t,"setvialAmount",1),k=v[0],x=v[1],B=(0,r.useSharedState)(t,"setdartAmount",1),_=B[0],w=B[1],L=i.condi,y=i.chosenPillStyle,S=i.pillStyles,I=void 0===S?[]:S;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[!L&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill type",children:I.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"30px",selected:e.id===y,textAlign:"center",color:"transparent",onClick:function(){return c("pillStyle",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.className})},e.id)}))}),!L&&(0,o.createComponentVNode)(2,u,{label:"Pills",amount:d,amountUnit:"pills",sideNote:"max 50u",onChangeAmount:function(e,t){return s(t)},onCreate:function(){return c("create",{type:"pill",amount:d,volume:"auto"})}}),!L&&(0,o.createComponentVNode)(2,u,{label:"Patches",amount:p,amountUnit:"patches",sideNote:"max 40u",onChangeAmount:function(e,t){return C(t)},onCreate:function(){return c("create",{type:"patch",amount:p,volume:"auto"})}}),!L&&(0,o.createComponentVNode)(2,u,{label:"Bottles",amount:N,amountUnit:"bottles",sideNote:"max 30u",onChangeAmount:function(e,t){return V(t)},onCreate:function(){return c("create",{type:"bottle",amount:N,volume:"auto"})}}),!L&&(0,o.createComponentVNode)(2,u,{label:"Hypovials",amount:k,amountUnit:"vials",sideNote:"max 60u",onChangeAmount:function(e,t){return x(t)},onCreate:function(){return c("create",{type:"hypoVial",amount:k,volume:"auto"})}}),!L&&(0,o.createComponentVNode)(2,u,{label:"Smartdarts",amount:_,amountUnit:"darts",sideNote:"max 20u",onChangeAmount:function(e,t){return w(t)},onCreate:function(){return c("create",{type:"smartDart",amount:_,volume:"auto"})}}),!!L&&(0,o.createComponentVNode)(2,u,{label:"Packs",amount:f,amountUnit:"packs",sideNote:"max 10u",onChangeAmount:function(e,t){return g(t)},onCreate:function(){return c("create",{type:"condimentPack",amount:f,volume:"auto"})}}),!!L&&(0,o.createComponentVNode)(2,u,{label:"Bottles",amount:N,amountUnit:"bottles",sideNote:"max 50u",onChangeAmount:function(e,t){return V(t)},onCreate:function(){return c("create",{type:"condimentBottle",amount:N,volume:"auto"})}})]})},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.fermianalyze,d=i.analyzeVars;return(0,o.createComponentVNode)(2,a.Section,{title:"Analysis Results",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Back",onClick:function(){return c("goScreen",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",children:d.state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,a.ColorBox,{color:d.color,mr:1}),d.color]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:d.description}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Metabolization Rate",children:[d.metaRate," u/minute"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Threshold",children:d.overD}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Threshold",children:d.addicD}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Purity",children:d.purityF}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inverse Ratio",children:d.inverseRatioF}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Purity E",children:d.purityE}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Lower Optimal Temperature",children:d.minTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upper Optimal Temperature",children:d.maxTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosive Temperature",children:d.eTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"pH Peak",children:d.pHpeak})],4)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ChemPress=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.current_volume,u=l.product_name,s=l.pill_style,m=l.pill_styles,p=void 0===m?[]:m,C=l.product,h=l.min_volume,N=l.max_volume;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:227,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Product",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Pills",checked:"pill"===C,onClick:function(){return i("change_product",{product:"pill"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Patches",checked:"patch"===C,onClick:function(){return i("change_product",{product:"patch"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Bottles",checked:"bottle"===C,onClick:function(){return i("change_product",{product:"bottle"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"u",width:"43px",minValue:h,maxValue:N,step:1,stepPixelSize:2,onChange:function(e,t){return i("change_current_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:u,placeholder:u,onChange:function(e,t){return i("change_product_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Box,{as:"span",children:C})]}),"pill"===C&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"30px",selected:e.id===s,textAlign:"center",color:"transparent",onClick:function(){return i("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(0),r=n(14),a=n(6),c=n(2),i=n(1),l=n(3);t.ChemReactionChamber=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=(0,c.useLocalState)(t,"reagentName",""),m=s[0],p=s[1],C=(0,c.useLocalState)(t,"reagentQuantity",1),h=C[0],N=C[1],V=u.emptying,b=u.reagents||[];return(0,o.createComponentVNode)(2,l.Window,{width:250,height:225,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,color:V?"bad":"good",children:V?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,i.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(e,t){return p(t)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,a.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,i.NumberInput,{value:h,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(e,t){return N(t)}}),(0,o.createComponentVNode)(2,i.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:"plus",onClick:function(){return d("add",{chem:m,amount:h})}})],4)],4),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"minus",color:"bad",onClick:function(){return d("remove",{chem:t})}}),children:e},t)}))(b)]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.ChemSplitter=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.straight,s=d.side,m=d.max_transfer;return(0,o.createComponentVNode)(2,i.Window,{width:220,height:105,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:m,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return l("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:s,unit:"u",width:"55px",minValue:1,maxValue:m,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return l("set_amount",{target:"side",amount:t})}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.ChemSynthesizer=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.amount,s=d.current_reagent,m=d.chemicals,p=void 0===m?[]:m,C=d.possible_amounts,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:375,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Box,{children:h.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===u,onClick:function(){return l("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,c.Box,{mt:1,children:p.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===s,onClick:function(){return l("select",{reagent:e.id})}},e.id)}))})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CivCargoHoldTerminal=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.CivCargoHoldTerminal=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.pad,s=d.sending,m=d.status_report,p=d.id_inserted,C=d.id_bounty_info;d.id_bounty_value,d.id_bounty_num;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,width:500,height:375,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{color:p?"blue":"default",children:p?"Welcome valued employee.":"To begin, insert your ID into the console."}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u?"good":"bad",children:u?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:m})]})}),(0,o.createComponentVNode)(2,i)]}),(0,o.createComponentVNode)(2,a.Flex.Item,{m:1,children:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"sync",content:"Check Contents",disabled:!u||!p,onClick:function(){return l("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:s?"times":"arrow-up",content:s?"Stop Sending":"Send Goods",selected:s,disabled:!u||!p,onClick:function(){return l(s?"stop":"send")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:C?"recycle":"pen",color:C?"green":"default",content:C?"Replace Bounty":"New Bounty",disabled:!p,onClick:function(){return l("bounty")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Eject",disabled:!p,onClick:function(){return l("eject")}})],4)})]})})})};var i=function(e,t){var n=(0,r.useBackend)(t).data,c=n.id_bounty_info,i=n.id_bounty_value,l=n.id_bounty_num;return(0,o.createComponentVNode)(2,a.Section,{title:"Bounty Info",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:c||"N/A, please add a new bounty."}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Quantity",children:c?l:"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Value",children:c?i:"N/A"})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ClockworkSlab=void 0;for(var o=n(0),r=n(2),a=n(14),c=n(1),i=n(3),l="",d=0;d=w,tooltip:e.tip,tooltipPosition:"left",onClick:function(){return d("recite",{script:e.type})},children:"Recite "+e.required})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,disabled:!e.quickbind,onClick:function(){return d("bind",{script:e.type})},children:["content=",e.bound?"Unbind "+e.bound:"Quickbind"]})})]},e.name)}))})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"],l=["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"],d=["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"],u=["the Red","the Soulless","the Master","the Lord of all things","Jr."];t.CodexGigas=function(e,t){var n=(0,r.useBackend)(t),s=n.act,m=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:450,height:450,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[m.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==m.currentSection,onClick:function(){return s(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:m.currentSection>2,onClick:function(){return s(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:m.currentSection>4,onClick:function(){return s(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==m.currentSection,onClick:function(){return s(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:m.currentSection<4,onClick:function(){return s("search")}})})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(0),r=(n(19),n(2)),a=n(1),c=n(3);t.ComputerFabricator=function(e,t){var n=(0,r.useBackend)(t),s=n.act,m=n.data;return(0,o.createComponentVNode)(2,c.Window,{title:"Personal Computer Vendor",width:500,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==m.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return s("clean_order")}}),0===m.state&&(0,o.createComponentVNode)(2,i),1===m.state&&(0,o.createComponentVNode)(2,l),2===m.state&&(0,o.createComponentVNode)(2,d),3===m.state&&(0,o.createComponentVNode)(2,u)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act;n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:"306px",children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return c("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return c("pick_device",{pick:"2"})}})})]})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:"282px",buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return c("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return c("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Secondary Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a secondary RFID card reader, for manipulating or\nreading from a second standard RFID card.\nPlease note that a primary card reader is necessary to\nallow the device to read your identification, but one\nis included in the base price.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return c("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return c("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return c("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return c("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return c("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return c("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:2,onClick:function(){return c("confirm_order")}})]})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:"282px",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?c.COLORS.department.security:e>=20&&e<30?c.COLORS.department.medbay:e>=30&&e<40?c.COLORS.department.science:e>=40&&e<50?c.COLORS.department.engineering:e>=50&&e<60?c.COLORS.department.cargo:e>=200&&e<230?c.COLORS.department.centcom:c.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:2,color:c.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(){return(0,o.createComponentVNode)(2,i.Window,{title:"Crew Monitor",width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{minHeight:"540px",children:(0,o.createComponentVNode)(2,s)})})})};var s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,s=i.sensors||[];return(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(C=e.ijob,C%10==0),color:d(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,n=e.toxdam,r=e.burndam,s=e.brutedam,m=t+n+r+s,p=Math.min(Math.max(Math.ceil(m/25),0),5),l[p])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return c("select_person",{name:e.name})}})})]},e.name);var t,n,r,s,m,p,C}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(0),r=n(2),a=n(1),c=n(205),i=n(3),l=[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}];t.Cryo=function(){return(0,o.createComponentVNode)(2,i.Window,{width:400,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,d)})})};var d=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:d.occupant.name||"No Occupant"}),!!d.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:d.occupant.statstate,children:d.occupant.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:d.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.occupant.health/d.occupant.maxHealth,color:d.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant.health})})}),l.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.isOperating?"power-off":"times",disabled:d.isOpen,onClick:function(){return i("power")},color:d.isOperating&&"green",children:d.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:d.isOpen?"unlock":"lock",onClick:function(){return i("door")},content:d.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:d.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return i("autoeject")},content:d.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!d.isBeakerLoaded,onClick:function(){return i("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:d.isBeakerLoaded,beakerContents:d.beakerContents})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.DecalPainter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.decal_list||[],u=l.color_list||[],s=l.dir_list||[];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===l.decal_style,onClick:function(){return i("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===l.decal_color,onClick:function(){return i("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===l.decal_direction,onClick:function(){return i("selected direction",{dirs:e.dirs})}},e.dirs)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.DisposalUnit=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data;return u.full_pressure?(n="good",i="Ready"):u.panel_open?(n="bad",i="Power Disabled"):u.pressure_charging?(n="average",i="Pressurizing"):(n="bad",i="Off"),(0,o.createComponentVNode)(2,c.Window,{width:300,height:180,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:n,children:i}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:u.flush?"toggle-on":"toggle-off",disabled:u.isai||u.panel_open,content:u.flush?"Disengage":"Engage",onClick:function(){return d(u.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:u.isai,content:"Eject Contents",onClick:function(){return d("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:u.panel_open,selected:u.pressure_charging,onClick:function(){return d(u.pressure_charging?"pump-0":"pump-1")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaConsoleCommands=t.DnaConsole=void 0;var o=n(0),r=n(14),a=n(30),c=n(6),i=n(19),l=n(63),d=n(2),u=n(1),s=n(3);var m=["A","T","C","G"],p={A:"green",T:"green",G:"blue",C:"blue",X:"grey"},C={1:"good",2:"bad",4:"average"},h=function(e,t){return e.Alias===t.Alias&&e.AppliedChromo===t.AppliedChromo};t.DnaConsole=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=(n.act,r.isPulsingRads),c=r.radPulseSeconds,i=r.view.consoleMode;return(0,o.createComponentVNode)(2,s.Window,{title:"DNA Console",width:539,height:710,resizable:!0,children:[!!a&&(0,o.createComponentVNode)(2,u.Dimmer,{fontSize:"14px",textAlign:"center",children:[(0,o.createComponentVNode)(2,u.Icon,{mr:1,name:"spinner",spin:!0}),"Radiation pulse in progress...",(0,o.createComponentVNode)(2,u.Box,{mt:1}),c,"s"]}),(0,o.createComponentVNode)(2,s.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,N),(0,o.createComponentVNode)(2,g),"storage"===i&&(0,o.createComponentVNode)(2,k),"sequencer"===i&&(0,o.createComponentVNode)(2,L),"enzymes"===i&&(0,o.createComponentVNode)(2,T)]})]})};var N=function(e,t){return(0,o.createComponentVNode)(2,u.Section,{title:"DNA Scanner",buttons:(0,o.createComponentVNode)(2,V),children:(0,o.createComponentVNode)(2,f)})},V=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDelayedAction,i=r.isPulsingRads,l=r.isScannerConnected,s=r.isScrambleReady,m=r.isViableSubject,p=r.scannerLocked,C=r.scannerOpen,h=r.scrambleSeconds;return l?(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,u.Button,{content:"Cancel Delayed Action",onClick:function(){return a("cancel_delay")}}),!!m&&(0,o.createComponentVNode)(2,u.Button,{disabled:!s||i,onClick:function(){return a("scramble_dna")},children:["Scramble DNA",!s&&" ("+h+"s)"]}),(0,o.createComponentVNode)(2,u.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,u.Button,{icon:p?"lock":"lock-open",color:p&&"bad",disabled:C,content:p?"Locked":"Unlocked",onClick:function(){return a("toggle_lock")}}),(0,o.createComponentVNode)(2,u.Button,{disabled:p,content:C?"Close":"Open",onClick:function(){return a("toggle_door")}})],0):(0,o.createComponentVNode)(2,u.Button,{content:"Connect Scanner",onClick:function(){return a("connect_scanner")}})},b=function(e,t){var n=e.status;return 0===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"good",children:"Conscious"}):2===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"average",children:"Unconscious"}):1===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"average",children:"Critical"}):3===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"bad",children:"Dead"}):4===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"bad",children:"Transforming"}):(0,o.createComponentVNode)(2,u.Box,{inline:!0,children:"Unknown"})},f=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=(n.act,r.subjectName),c=r.isScannerConnected,i=r.isViableSubject,l=r.subjectHealth,s=r.subjectRads,m=r.subjectStatus;return c?i?(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Status",children:[a,(0,o.createComponentVNode)(2,u.Icon,{mx:1,color:"label",name:"long-arrow-alt-right"}),(0,o.createComponentVNode)(2,b,{status:m})]}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,u.ProgressBar,{value:l,minValue:0,maxValue:100,ranges:{olive:[101,Infinity],good:[70,101],average:[30,70],bad:[-Infinity,30]},children:[l,"%"]})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Radiation",children:(0,o.createComponentVNode)(2,u.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{bad:[71,Infinity],average:[30,71],good:[0,30],olive:[-Infinity,0]},children:[s,"%"]})})]}):(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"No viable subject found in DNA Scanner."}):(0,o.createComponentVNode)(2,u.Box,{color:"bad",children:"DNA Scanner is not connected."})},g=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDisk,i=r.isInjectorReady,l=r.injectorSeconds,s=r.view.consoleMode;return(0,o.createComponentVNode)(2,u.Section,{title:"DNA Console",buttons:!i&&(0,o.createComponentVNode)(2,u.Box,{lineHeight:"20px",color:"label",children:["Injector on cooldown (",l,"s)"]}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,u.Button,{content:"Storage",selected:"storage"===s,onClick:function(){return a("set_view",{consoleMode:"storage"})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Sequencer",disabled:!r.isViableSubject,selected:"sequencer"===s,onClick:function(){return a("set_view",{consoleMode:"sequencer"})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Enzymes",selected:"enzymes"===s,onClick:function(){return a("set_view",{consoleMode:"enzymes"})}})]}),!!c&&(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Disk",children:(0,o.createComponentVNode)(2,u.Button,{icon:"eject",content:"Eject",onClick:function(){a("eject_disk"),a("set_view",{storageMode:"console"})}})})]})})};t.DnaConsoleCommands=g;var v=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDisk,i=r.view,l=i.storageMode,s=i.storageConsSubMode,m=i.storageDiskSubMode;return(0,o.createFragment)(["console"===l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Button,{selected:"mutations"===s,content:"Mutations",onClick:function(){return a("set_view",{storageConsSubMode:"mutations"})}}),(0,o.createComponentVNode)(2,u.Button,{selected:"chromosomes"===s,content:"Chromosomes",onClick:function(){return a("set_view",{storageConsSubMode:"chromosomes"})}})],4),"disk"===l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Button,{selected:"mutations"===m,content:"Mutations",onClick:function(){return a("set_view",{storageDiskSubMode:"mutations"})}}),(0,o.createComponentVNode)(2,u.Button,{selected:"diskenzymes"===m,content:"Enzymes",onClick:function(){return a("set_view",{storageDiskSubMode:"diskenzymes"})}})],4),(0,o.createComponentVNode)(2,u.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,u.Button,{content:"Console",selected:"console"===l,onClick:function(){return a("set_view",{storageMode:"console",storageConsSubMode:"mutations"})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Disk",disabled:!c,selected:"disk"===l,onClick:function(){return a("set_view",{storageMode:"disk",storageDiskSubMode:"mutations"})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Adv. Injector",selected:"injector"===l,onClick:function(){return a("set_view",{storageMode:"injector"})}})],0)},k=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.view,i=c.storageMode,l=c.storageConsSubMode,s=c.storageDiskSubMode,m=r.diskMakeupBuffer,p=r.diskHasMakeup,C=r.storage[i];return(0,o.createComponentVNode)(2,u.Section,{title:"Storage",buttons:(0,o.createComponentVNode)(2,v),children:["console"===i&&"mutations"===l&&(0,o.createComponentVNode)(2,x,{mutations:C}),"console"===i&&"chromosomes"===l&&(0,o.createComponentVNode)(2,B),"disk"===i&&"mutations"===s&&(0,o.createComponentVNode)(2,x,{mutations:C}),"disk"===i&&"diskenzymes"===s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,M,{makeup:m}),(0,o.createComponentVNode)(2,u.Button,{icon:"times",color:"red",disabled:!p,content:"Delete",onClick:function(){return a("del_makeup_disk")}})],4),"injector"===i&&(0,o.createComponentVNode)(2,j)]})},x=function(e,t){var n=e.customMode,r=void 0===n?"":n,a=(0,d.useBackend)(t),c=a.data,l=a.act,s=e.mutations||[],m=c.view.storageMode+r,p=c.view["storage"+m+"MutationRef"],C=s.find((function(e){return e.ByondRef===p}));return!C&&s.length>0&&(C=s[0],p=C.ByondRef),(0,o.createComponentVNode)(2,u.Flex,{children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:"140px",children:(0,o.createComponentVNode)(2,u.Section,{title:(0,i.capitalize)(c.view.storageMode)+" Storage",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,u.Button,{fluid:!0,ellipsis:!0,color:"transparent",selected:e.ByondRef===p,content:e.Name,onClick:function(){var t;return l("set_view",((t={})["storage"+m+"MutationRef"]=e.ByondRef,t))}},e.ByondRef)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{children:(0,o.createComponentVNode)(2,u.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Mutation Info",level:2,children:(0,o.createComponentVNode)(2,_,{mutation:C})})})]})},B=function(e,t){var n,a=(0,d.useBackend)(t),c=a.data,i=a.act,l=null!=(n=c.chromoStorage)?n:[],s=(0,r.uniqBy)((function(e){return e.Name}))(l),m=c.view.storageChromoName,p=l.find((function(e){return e.Name===m}));return(0,o.createComponentVNode)(2,u.Flex,{children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:"140px",children:(0,o.createComponentVNode)(2,u.Section,{title:"Console Storage",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,u.Button,{fluid:!0,ellipsis:!0,color:"transparent",selected:e.Name===m,content:e.Name,onClick:function(){return i("set_view",{storageChromoName:e.Name})}},e.Index)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{children:(0,o.createComponentVNode)(2,u.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Chromosome Info",level:2,children:!p&&(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"Nothing to show."})||(0,o.createFragment)([(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:p.Name}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Description",children:p.Description}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Amount",children:l.filter((function(e){return e.Name===p.Name})).length})]}),(0,o.createComponentVNode)(2,u.Button,{mt:2,icon:"eject",content:"Eject Chromosome",onClick:function(){return i("eject_chromo",{chromo:p.Name})}})],4)})})]})},_=function(e,t){var n,c,i,l=e.mutation,s=(0,d.useBackend)(t),m=s.data,p=s.act,N=m.diskCapacity,V=m.diskReadOnly,b=m.hasDisk,f=m.isInjectorReady,g=null!=(n=m.storage.disk)?n:[],v=null!=(c=m.storage.console)?c:[],k=null!=(i=m.storage.injector)?i:[];if(!l)return(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"Nothing to show."});if("occupant"===l.Source&&!l.Discovered)return(0,o.createComponentVNode)(2,u.LabeledList,{children:(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:l.Alias})});var x=v.find((function(e){return h(e,l)})),B=g.find((function(e){return h(e,l)})),_=(0,a.flow)([(0,r.uniqBy)((function(e){return e.Name})),(0,r.filter)((function(e){return e.Name!==l.Name}))])([].concat(g,v));return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:C[l.Quality],children:l.Name})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Description",children:l.Description}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Instability",children:l.Instability})]}),(0,o.createComponentVNode)(2,u.Divider),(0,o.createComponentVNode)(2,u.Box,{children:["disk"===l.Source&&(0,o.createComponentVNode)(2,W,{disabled:!b||N<=0||V,mutations:_,source:l}),"console"===l.Source&&(0,o.createComponentVNode)(2,W,{mutations:_,source:l}),["occupant","disk","console"].includes(l.Source)&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:k.map((function(e){return e.name})),disabled:0===k.length||!l.Active,selected:"Add to advanced injector",onSelected:function(e){return p("add_advinj_mut",{mutref:l.ByondRef,advinj:e,source:l.Source})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"syringe",disabled:!f||!l.Active,content:"Print Activator",onClick:function(){return p("print_injector",{mutref:l.ByondRef,is_activator:1,source:l.Source})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"syringe",disabled:!f||!l.Active,content:"Print Mutator",onClick:function(){return p("print_injector",{mutref:l.ByondRef,is_activator:0,source:l.Source})}})],4)]}),["disk","occupant"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"save",disabled:x||!l.Active,content:"Save to Console",onClick:function(){return p("save_console",{mutref:l.ByondRef,source:l.Source})}}),["console","occupant"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"save",disabled:B||!b||N<=0||V||!l.Active,content:"Save to Disk",onClick:function(){return p("save_disk",{mutref:l.ByondRef,source:l.Source})}}),["console","disk","injector"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"times",color:"red",content:"Delete from "+l.Source,onClick:function(){return p("delete_"+l.Source+"_mut",{mutref:l.ByondRef})}}),(2===l.Class||!!l.Scrambled&&"occupant"===l.Source)&&(0,o.createComponentVNode)(2,u.Button,{content:"Nullify",onClick:function(){return p("nullify",{mutref:l.ByondRef})}}),(0,o.createComponentVNode)(2,u.Divider),(0,o.createComponentVNode)(2,w,{disabled:"occupant"!==l.Source,mutation:l})],0)},w=function(e,t){var n=e.mutation,r=e.disabled,a=(0,d.useBackend)(t),c=(a.data,a.act);return 0===n.CanChromo?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"No compatible chromosomes"}):1===n.CanChromo?r?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"No chromosome applied."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:n.ValidStoredChromos,disabled:0===n.ValidStoredChromos.length,selected:0===n.ValidStoredChromos.length?"No Suitable Chromosomes":"Select a chromosome",onSelected:function(e){return c("apply_chromo",{chromo:e,mutref:n.ByondRef})}}),(0,o.createComponentVNode)(2,u.Box,{color:"label",mt:1,children:["Compatible with: ",n.ValidChromos]})],4):2===n.CanChromo?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:["Applied chromosome: ",n.AppliedChromo]}):null},L=function(e,t){var n,r,a=(0,d.useBackend)(t),c=a.data,i=a.act,s=null!=(n=null==(r=c.storage)?void 0:r.occupant)?n:[],m=c.isJokerReady,p=c.isMonkey,C=c.jokerSeconds,h=c.subjectStatus,N=c.view,V=N.sequencerMutation,b=N.jokerActive,f=s.find((function(e){return e.Alias===V}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Flex,{spacing:1,mb:1,children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:s.length<=8?"154px":"174px",children:(0,o.createComponentVNode)(2,u.Section,{title:"Sequences",height:"214px",overflowY:s.length>8&&"scroll",children:s.map((function(e){return(0,o.createComponentVNode)(2,y,{url:(0,l.resolveAsset)(e.Image),selected:e.Alias===V,onClick:function(){i("set_view",{sequencerMutation:e.Alias}),i("check_discovery",{alias:e.Alias})}},e.Alias)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Sequence Info",minHeight:"100%",children:(0,o.createComponentVNode)(2,_,{mutation:f})})})]}),3===h&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: DECEASED."})||p&&"Monkified"!==(null==f?void 0:f.Name)&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: MONKEY."})||4===h&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: TRANSFORMING."})||(0,o.createComponentVNode)(2,u.Section,{title:"Genome Sequencer\u2122",buttons:!m&&(0,o.createComponentVNode)(2,u.Box,{lineHeight:"20px",color:"label",children:["Joker on cooldown (",C,"s)"]})||b&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Box,{mr:1,inline:!0,color:"label",children:"Click on a gene to reveal it."}),(0,o.createComponentVNode)(2,u.Button,{content:"Cancel Joker",onClick:function(){return i("set_view",{jokerActive:""})}})],4)||(0,o.createComponentVNode)(2,u.Button,{icon:"crown",color:"purple",content:"Use Joker",onClick:function(){return i("set_view",{jokerActive:"1"})}}),children:(0,o.createComponentVNode)(2,I,{mutation:f})})],0)},y=function(e,t){var n,r=e.url,a=e.selected,c=e.onClick;return a&&(n="2px solid #22aa00"),(0,o.createComponentVNode)(2,u.Box,{as:"img",src:r,style:{width:"64px",margin:"2px","margin-left":"4px",outline:n},onClick:c})},S=function(e,t){var n=e.gene,r=e.onChange,a=e.disabled,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["gene","onChange","disabled"]),i=m.length,l=m.indexOf(n),d=a&&p.X||p[n];return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Button,Object.assign({},c,{color:d,onClick:function(e){if(e.preventDefault(),r)if(-1!==l){var t=m[(l+1)%i];r(e,t)}else r(e,m[0])},oncontextmenu:function(e){if(e.preventDefault(),r)if(-1!==l){var t=m[(l-1+i)%i];r(e,t)}else r(e,m[i-1])},children:n})))},I=function(e,t){var n=e.mutation,r=(0,d.useBackend)(t),a=r.data,i=r.act,l=a.view.jokerActive;if(!n)return(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"No genome selected for sequencing."});if(n.Scrambled)return(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"Sequence unreadable due to unpredictable mutation."});for(var s=n.Sequence,m=n.DefaultSeq,p=[],C=function(e){var t=s.charAt(e),r=(0,o.createComponentVNode)(2,S,{width:"22px",textAlign:"center",disabled:!!n.Scrambled||1!==n.Class,className:"X"===(null==m?void 0:m.charAt(e))&&!n.Active&&(0,c.classes)(["outline-solid","outline-color-orange"]),gene:t,onChange:function(t,o){if(!t.ctrlKey)return l?(i("pulse_gene",{pos:e+1,gene:"J",alias:n.Alias}),void i("set_view",{jokerActive:""})):void i("pulse_gene",{pos:e+1,gene:o,alias:n.Alias});i("pulse_gene",{pos:e+1,gene:"X",alias:n.Alias})}});p.push(r)},h=0;h=3){var r=(0,o.createComponentVNode)(2,u.Box,{inline:!0,width:"22px",mx:"1px",children:s});l.push(r),s=[]}},p=0;p=i,onCommit:function(e,t){return a("new_adv_inj",{name:t})}})})]})},W=function(e,t){var n=e.mutations,r=void 0===n?[]:n,a=e.source,c=(0,d.useBackend)(t),i=c.act;c.data;return(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:r.map((function(e){return e.Name})),disabled:0===r.length,selected:"Combine mutations",onSelected:function(e){return i("combine_"+a.Source,{firstref:(t=e,null==(n=r.find((function(e){return e.Name===t})))?void 0:n.ByondRef),secondref:a.ByondRef});var t,n}},a.ByondRef)}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.DnaVault=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.completed,u=l.used,s=l.choiceA,m=l.choiceB,p=l.dna,C=l.dna_max,h=l.plants,N=l.plants_max,V=l.animals,b=l.animals_max;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p/C,children:p+" / "+C+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/N,children:h+" / "+N+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:V/V,children:V+" / "+b+" Samples"})})]})}),!(!d||u)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:s,textAlign:"center",onClick:function(){return i("gene",{choice:s})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:m,textAlign:"center",onClick:function(){return i("gene",{choice:m})}})})]})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(0),r=n(2),a=n(1),c=n(19),i=n(3);t.EightBallVote=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.shaking);return(0,o.createComponentVNode)(2,i.Window,{width:400,height:600,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})||(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.question,u=l.answers,s=void 0===u?[]:u;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',d,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,c.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return i("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Electrolyzer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Electrolyzer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!l.hasPowercell||!l.open,onClick:function(){return i("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,disabled:!l.hasPowercell,onClick:function(){return i("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!l.hasPowercell&&"bad",children:l.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.powerLevel/100,content:l.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Electropack=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.Electropack=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.power,s=d.code,m=d.frequency,p=d.minFrequency,C=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{width:260,height:137,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:p/10,maxValue:C/10,value:m/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onDrag:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Code",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:s,width:"80px",onDrag:function(e,t){return l("code",{code:t})}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.EmergencyShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.timer_str,u=l.enabled,s=l.emagged,m=l.engines_started,p=l.authorizations_remaining,C=l.authorizations,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:350,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:d}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:m?"good":"average",ml:1,children:m?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!u,onClick:function(){return i("abort")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!u,onClick:function(){return i("authorize")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!u,onClick:function(){return i("repeal")}})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:s?"bad":"good",children:s?"ERROR":"Remaining: "+p}),children:h.length>0?h.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"})})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(3);t.EngravedMessage=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.admin_mode,s=d.creator_key,m=d.creator_name,p=d.has_liked,C=d.has_disliked,h=d.hidden_message,N=d.is_creator,V=d.num_likes,b=d.num_dislikes,f=d.realdate;return(0,o.createComponentVNode)(2,i.Window,{width:600,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(h)}),(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"arrow-up",content:" "+V,disabled:N,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("like")}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"circle",disabled:N,selected:!C&&!p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("neutral")}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"arrow-down",content:" "+b,disabled:N,selected:C,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("dislike")}})})]})]}),(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Created On",children:f})})}),(0,o.createComponentVNode)(2,c.Section),!!u&&(0,o.createComponentVNode)(2,c.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return l("delete")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Creator Ckey",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Creator Character Name",children:m})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitControlConsole=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.ExosuitControlConsole=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data.mechs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[0===u.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No exosuits detected"}),u.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"envelope",content:"Send Message",disabled:!e.pilot,onClick:function(){return l("send_message",{tracker_ref:e.tracker_ref})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"wifi",content:e.emp_recharging?"Recharging...":"EMP Burst",color:"bad",disabled:e.emp_recharging,onClick:function(){return l("shock",{tracker_ref:e.tracker_ref})}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.integrity<=30?"bad":e.integrity<=70&&"average")||"good",children:[e.integrity,"%"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.charge<=30?"bad":e.charge<=70&&"average")||"good",children:"number"==typeof e.charge&&e.charge+"%"||"Not Found"})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Airtank",children:"number"==typeof e.airtank&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:e.airtank,format:function(e){return(0,r.toFixed)(e,2)+" kPa"}})||"Not Equipped"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pilot",children:e.pilot||"None"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Location",children:e.location||"Unknown"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Active Equipment",children:e.active_equipment||"None"}),e.cargo_space>=0&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Used Cargo Space",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.cargo_space<=30?"good":e.cargo_space<=70&&"average")||"bad",children:[e.cargo_space,"%"]})})]})},e.tracker_ref)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitFabricator=void 0;var o,r=n(0),a=n(6),c=n(14),i=n(2),l=n(39),d=n(1),u=n(3),s=n(19);function m(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nn?{color:2,deficit:e-n}:t>n?{color:1,deficit:e}:e+t>n?{color:1,deficit:e+t-n}:{color:0,deficit:0}},V=function(e,t,n){var o={textColor:0};return Object.keys(n.cost).forEach((function(r){o[r]=N(n.cost[r],t[r],e[r]),o[r].color>o.textColor&&(o.textColor=o[r].color)})),o};t.ExosuitFabricator=function(e,t){var n,o,a=(0,i.useBackend)(t),c=a.act,l=a.data,s=l.queue||[],m=(n=l.materials||[],o={},n.forEach((function(e){o[e.name]=e.amount})),o),p=function(e,t){var n={},o={},r={},a={};return t.forEach((function(t,c){a[c]=0,Object.keys(t.cost).forEach((function(i){n[i]=n[i]||0,r[i]=r[i]||0,o[i]=N(t.cost[i],n[i],e[i]),0!==o[i].color?a[c]1&&l=0&&m+"s"||"Dispensing..."})]})})})}}},function(e,t,n){"use strict";t.__esModule=!0,t.ForbiddenLore=void 0;var o=n(0),r=n(14),a=n(30),c=n(2),i=n(1),l=n(3);t.ForbiddenLore=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.charges,m=(0,a.flow)([(0,r.sortBy)((function(e){return"Research"!==e.state}),(function(e){return"Side"===e.path}))])(u.to_know||[]);return(0,o.createComponentVNode)(2,l.Window,{width:500,height:900,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{title:"Research Eldritch Knowledge",children:["Charges left : ",s,null!==m?m.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,my:1,children:[e.path," path"]}),(0,o.createComponentVNode)(2,i.Box,{my:1,children:[(0,o.createComponentVNode)(2,i.Button,{content:e.state,disabled:e.disabled,onClick:function(){return d("research",{name:e.name,cost:e.cost})}})," ","Cost : ",e.cost]}),(0,o.createComponentVNode)(2,i.Box,{italic:!0,my:1,children:e.flavour}),(0,o.createComponentVNode)(2,i.Box,{my:1,children:e.desc})]},e.name)})):(0,o.createComponentVNode)(2,i.Box,{children:"No more knowledge can be found"})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gateway=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Gateway=function(){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.gateway_present,d=void 0!==l&&l,u=i.gateway_status,s=void 0!==u&&u,m=i.current_target,p=void 0===m?null:m,C=i.destinations,h=void 0===C?[]:C;return d?p?(0,o.createComponentVNode)(2,a.Section,{title:p.name,children:[(0,o.createComponentVNode)(2,a.Icon,{name:"rainbow",size:4,color:"green"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("deactivate")},children:"Deactivate"})]}):h.length?(0,o.createFragment)([!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Gateway Unpowered"}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:e.available&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("activate",{destination:e.ref})},children:"Activate"})||(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{m:1,textColor:"bad",children:e.reason}),!!e.timeout&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.timeout,children:"Calibrating..."})],0)},e.ref)}))],0):(0,o.createComponentVNode)(2,a.Section,{children:"No gateway nodes detected."}):(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No linked gateway"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("linkup")},children:"Linkup"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.GhostPoolProtection=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GhostPoolProtection=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.events_or_midrounds,u=l.spawners,s=l.station_sentience,m=l.silicons,p=l.minigames;return(0,o.createComponentVNode)(2,c.Window,{title:"Ghost Pool Protection",width:400,height:270,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Flex,{grow:1,height:"100%",children:(0,o.createComponentVNode)(2,a.Section,{title:"Options",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{color:"good",icon:"plus-circle",content:"Enable Everything",onClick:function(){return i("all_roles")}}),(0,o.createComponentVNode)(2,a.Button,{color:"bad",icon:"minus-circle",content:"Disable Everything",onClick:function(){return i("no_roles")}})],4),children:[(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"For people creating a sneaky event: If you toggle Station Created Sentience, people may catch on that admins have disabled roles for your event..."}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:d?"good":"bad",icon:"meteor",content:"Events and Midround Rulesets",onClick:function(){return i("toggle_events_or_midrounds")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:u?"good":"bad",icon:"pastafarianism",content:"Ghost Role Spawners",onClick:function(){return i("toggle_spawners")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:s?"good":"bad",icon:"user-astronaut",content:"Station Created Sentience",onClick:function(){return i("toggle_station_sentience")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:m?"good":"bad",icon:"robot",content:"Silicons",onClick:function(){return i("toggle_silicons")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:p?"good":"bad",icon:"gamepad",content:"Minigames",onClick:function(){return i("toggle_minigames")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:"orange",icon:"check",content:"Apply Changes",onClick:function(){return i("apply_settings")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GlandDispenser=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GlandDispenser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.glands,d=void 0===l?[]:l;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:338,theme:"abductor",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"60px",height:"60px",m:.75,textAlign:"center",lineHeight:"55px",icon:"eject",backgroundColor:e.color,content:e.amount||"0",disabled:!e.amount,onClick:function(){return i("dispense",{gland_id:e.id})}},e.id)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(0),r=n(14),a=n(30),c=n(9),i=n(102),l=n(2),d=n(1),u=n(3),s=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e,t){var n=(0,l.useBackend)(t),m=n.act,p=n.data,C=p.currentArea,h=p.currentCoords,N=p.globalmode,V=p.power,b=p.tag,f=p.updating,g=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,i.vecLength)((0,i.vecSubtract)(s(h),s(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(p.signals||[]);return(0,o.createComponentVNode)(2,u.Window,{title:"Global Positioning System",width:470,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,d.Button,{icon:"power-off",content:V?"On":"Off",selected:V,onClick:function(){return m("power")}}),children:(0,o.createComponentVNode)(2,d.LabeledList,{children:[(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,d.Button,{icon:"pencil-alt",content:b,onClick:function(){return m("rename")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,d.Button,{icon:f?"unlock":"lock",content:f?"AUTO":"MANUAL",color:!f&&"bad",onClick:function(){return m("updating")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,d.Button,{icon:"sync",content:N?"MAXIMUM":"LOCAL",selected:!N,onClick:function(){return m("globalmode")}})})]})}),!!V&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,d.Box,{fontSize:"18px",children:[C," (",h,")"]})}),(0,o.createComponentVNode)(2,d.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,d.Table,{children:[(0,o.createComponentVNode)(2,d.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,d.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),g.map((function(e){return(0,o.createComponentVNode)(2,d.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,d.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,c.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,d.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GravityGenerator=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data),d=l.charging_state,u=l.operational;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:155,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No data available"}),!!u&&0!==d&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"WARNING - Radiation detected"}),!!u&&0===d&&(0,o.createComponentVNode)(2,a.NoticeBox,{success:!0,children:"No radiation detected"}),!!u&&(0,o.createComponentVNode)(2,i)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.breaker,d=i.charge_count,u=i.charging_state,s=i.on,m=i.operational;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:!m,onClick:function(){return c("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(s&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GulagItemReclaimer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.mobs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,c.Window,{width:325,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[0===u.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No stored items"}),u.length>0&&(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!l.can_reclaim,onClick:function(){return i("release_items",{mobref:e.mob})}})})]},e.mob)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GulagTeleporterConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.teleporter,u=l.teleporter_lock,s=l.teleporter_state_open,m=l.teleporter_location,p=l.beacon,C=l.beacon_location,h=l.id,N=l.id_name,V=l.can_teleport,b=l.goal,f=void 0===b?0:b,g=l.prisoner,v=void 0===g?{}:g;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:295,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:s?"Open":"Closed",disabled:u,selected:s,onClick:function(){return i("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",selected:u,disabled:s,onClick:function(){return i("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:d?"good":"bad",buttons:!d&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return i("scan_teleporter")}}),children:d?m:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:p?"good":"bad",buttons:!p&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return i("scan_beacon")}}),children:p?C:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:h?N:"No ID",onClick:function(){return i("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:f,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return i("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:v.name||"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:v.crimstat||"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!V,textAlign:"center",color:"bad",onClick:function(){return i("teleport")}})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Holodeck=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.can_toggle_safety,u=l.default_programs,s=void 0===u?[]:u,m=l.emag_programs,p=void 0===m?[]:m,C=l.emagged,h=l.program;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:C?"unlock":"lock",content:"Safeties",color:"bad",disabled:!d,selected:!C,onClick:function(){return i("safety")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===h,onClick:function(){return i("load_program",{type:e.type})}},e.type)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===h,onClick:function(){return i("load_program",{type:e.type})}},e.type)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holopad=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Holopad=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data.calling;return(0,o.createComponentVNode)(2,c.Window,{width:440,height:245,resizable:!0,children:[!!d&&(0,o.createComponentVNode)(2,a.Modal,{fontSize:"36px",fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,mt:2,children:(0,o.createComponentVNode)(2,a.Icon,{name:"phone-alt",rotation:25})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,children:"Dialing..."})]}),(0,o.createComponentVNode)(2,a.Box,{mt:2,textAlign:"center",fontSize:"24px",children:(0,o.createComponentVNode)(2,a.Button,{lineHeight:"40px",icon:"times",content:"Hang Up",color:"bad",onClick:function(){return l("hang_up")}})})]}),(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})]})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.on_network,d=i.on_cooldown,u=i.allowed,s=i.disk,m=i.disk_record,p=i.replay_mode,C=i.loop_mode,h=i.record_mode,N=i.holo_calls,V=void 0===N?[]:N;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Holopad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"bell",content:d?"AI Presence Requested":"Request AI Presence",disabled:!l||d,onClick:function(){return c("AIrequest")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Communicator",children:(0,o.createComponentVNode)(2,a.Button,{icon:"phone-alt",content:u?"Connect To Holopad":"Call Holopad",disabled:!l,onClick:function(){return c("holocall",{headcall:u})}})}),V.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.connected?"Current Call":"Incoming Call",children:(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"phone-slash":"phone-alt",content:e.connected?"Disconnect call from "+e.caller:"Answer call from "+e.caller,color:e.connected?"bad":"good",disabled:!l,onClick:function(){return c(e.connected?"disconnectcall":"connectcall",{holopad:e.ref})}})},e.ref)}))]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holodisk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s||p||h,onClick:function(){return c("disk_eject")}}),children:!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No holodisk"})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk Player",children:[(0,o.createComponentVNode)(2,a.Button,{icon:p?"pause":"play",content:p?"Stop":"Replay",selected:p,disabled:h||!m,onClick:function(){return c("replay_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:C?"Looping":"Loop",selected:C,disabled:h||!m,onClick:function(){return c("loop_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"exchange-alt",content:"Change Offset",disabled:!p,onClick:function(){return c("offset")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Recorder",children:[(0,o.createComponentVNode)(2,a.Button,{icon:h?"pause":"video",content:h?"End Recording":"Record",selected:h,disabled:m&&!h||p,onClick:function(){return c("record_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Clear Recording",color:"bad",disabled:!m||p||h,onClick:function(){return c("record_clear")}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.HypnoChair=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.HypnoChair=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:480,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",children:"The Enhanced Interrogation Chamber is designed to induce a deep-rooted trance trigger into the subject. Once the procedure is complete, by using the implanted trigger phrase, the authorities are able to ensure immediate and complete obedience and truthfulness."}),(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.occupant.name?l.occupant.name:"No Occupant"}),!!l.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===l.occupant.stat?"good":1===l.occupant.stat?"average":"bad",children:0===l.occupant.stat?"Conscious":1===l.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.open?"unlock":"lock",color:l.open?"default":"red",content:l.open?"Open":"Closed",onClick:function(){return i("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Phrase",children:(0,o.createComponentVNode)(2,a.Input,{value:l.trigger,onChange:function(e,t){return i("set_phrase",{phrase:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Interrogate Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:l.interrogating?"Interrupt Interrogation":"Begin Enhanced Interrogation",onClick:function(){return i("interrogate")}}),1===l.interrogating&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ImplantChair=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:280,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.occupant.name||"No Occupant"}),!!l.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===l.occupant.stat?"good":1===l.occupant.stat?"average":"bad",children:0===l.occupant.stat?"Conscious":1===l.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.open?"unlock":"lock",color:l.open?"default":"red",content:l.open?"Open":"Closed",onClick:function(){return i("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:l.ready?l.special_name||"Implant":"Recharging",onClick:function(){return i("implant")}}),0===l.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[l.ready_implants,1===l.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.InfraredEmitter=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.InfraredEmitter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.on,u=l.visible;return(0,o.createComponentVNode)(2,c.Window,{width:225,height:110,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Visibility",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"eye":"eye-slash",content:u?"Visible":"Invisible",selected:u,onClick:function(){return i("visibility")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Intellicard=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.name,u=l.isDead,s=l.isBraindead,m=l.health,p=l.wireless,C=l.radio,h=l.wiping,N=l.laws,V=void 0===N?[]:N,b=u||s;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:d||"Empty Card",buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:h?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return i("wipe")}}),children:!!d&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:b?"bad":"good",children:b?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return i("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:C,onClick:function(){return i("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:V.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Jukebox=void 0;var o=n(0),r=n(14),a=n(30),c=n(2),i=n(1),l=n(3);t.Jukebox=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.active,m=u.track_selected,p=u.track_length,C=u.track_beat,h=u.volume,N=(0,a.flow)([(0,r.sortBy)((function(e){return e.name}))])(u.songs||[]);return(0,o.createComponentVNode)(2,l.Window,{width:370,height:313,children:(0,o.createComponentVNode)(2,l.Window.Content,{children:[(0,o.createComponentVNode)(2,i.Section,{title:"Song Player",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:s?"pause":"play",content:s?"Stop":"Play",selected:s,onClick:function(){return d("toggle")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Selected",children:(0,o.createComponentVNode)(2,i.Dropdown,{"overflow-y":"scroll",width:"240px",options:N.map((function(e){return e.name})),disabled:s,selected:m||"Select a Track",onSelected:function(e){return d("select_track",{track:e})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Length",children:m?p:"No Track Selected"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Beat",children:[m?C:"No Track Selected",1===C?" beat":" beats"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Machine Settings",children:(0,o.createComponentVNode)(2,i.LabeledControls,{justify:"center",children:(0,o.createComponentVNode)(2,i.LabeledControls.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,i.Box,{position:"relative",children:[(0,o.createComponentVNode)(2,i.Knob,{size:3.2,color:h>=50?"red":"green",value:h,unit:"%",minValue:0,maxValue:100,step:1,stepPixelSize:1,disabled:s,onDrag:function(e,t){return d("set_volume",{volume:t})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"-2px",right:"-22px",color:"transparent",icon:"fast-backward",onClick:function(){return d("set_volume",{volume:"min"})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"16px",right:"-22px",color:"transparent",icon:"fast-forward",onClick:function(){return d("set_volume",{volume:"max"})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"34px",right:"-22px",color:"transparent",icon:"undo",onClick:function(){return d("set_volume",{volume:"reset"})}})]})})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.KeycardAuth=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:125,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===l.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===l.waiting&&(0,o.createFragment)([!!l.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return i("auth_swipe")},content:"Authorize"}),0===l.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return i("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return i("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return i("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(3);t.LaborClaimConsole=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.can_go_home,s=d.id_points,m=d.ores,p=d.status_info,C=d.unclaimed_points;return(0,o.createComponentVNode)(2,i.Window,{width:315,height:440,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,c.Button,{content:"Move shuttle",disabled:!u,onClick:function(){return l("move_shuttle")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Points",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,c.Button,{content:"Claim points",disabled:!C,onClick:function(){return l("claim_points")}}),children:C})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),m.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.LanguageMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.admin_mode,u=l.is_living,s=l.omnitongue,m=l.languages,p=void 0===m?[]:m,C=l.unknown_languages,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{title:"Language Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!u&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return i("select_default",{language_name:e.name})}}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return i("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return i("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!d&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(s?"Enabled":"Disabled"),selected:s,onClick:function(){return i("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:h.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return i("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",!!e.shadow&&"(gained from mob)"," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadRemote=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(206);t.LaunchpadRemote=function(e,t){var n=(0,r.useBackend)(t).data,l=n.has_pad,d=n.pad_closed;return(0,o.createComponentVNode)(2,c.Window,{title:"Briefcase Launchpad Remote",width:300,height:240,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})||d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"})||(0,o.createComponentVNode)(2,i.LaunchpadControl,{topLevel:!0})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MafiaPanel=void 0;var o=n(0),r=n(6),a=(n(19),n(2)),c=n(1),i=n(3);t.MafiaPanel=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.lobbydata,m=u.players,p=u.actions,C=u.phase,h=u.roleinfo,N=u.role_theme,V=u.admin_controls,b=u.judgement_phase,f=u.timeleft,g=u.all_roles,v=h?30*m.length:7,k=s?s.filter((function(e){return"Ready"===e.status})):null;return(0,o.createComponentVNode)(2,i.Window,{title:"Mafia",theme:N,width:650,height:293+v,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:V,children:[!h&&(0,o.createComponentVNode)(2,c.Flex,{scrollable:!0,overflowY:"scroll",direction:"column",height:"100%",grow:1,children:(0,o.createComponentVNode)(2,c.Section,{title:"Lobby",mb:1,buttons:(0,o.createComponentVNode)(2,l,{phase:C,timeleft:f,admin_controls:V}),children:(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,c.NoticeBox,{info:!0,children:["The lobby currently has ",k.length,"/12 valid players signed up."]}),(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!s&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{basis:2,className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:2,align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{basis:0,children:e.name}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:"STATUS:"}),(0,o.createComponentVNode)(2,c.Flex.Item,{width:"30%",children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Box,{color:"Ready"===e.status?"green":"red",textAlign:"center",children:[e.status," ",e.spectating]})})})]})},e)}))})]})})}),!!h&&(0,o.createComponentVNode)(2,c.Section,{title:C,minHeight:"100px",maxHeight:"50px",buttons:(0,o.createComponentVNode)(2,c.Box,{children:[!!V&&(0,o.createComponentVNode)(2,c.Button,{color:"red",icon:"gavel",tooltipPosition:"bottom-left",tooltip:"Hello admin! If it is the admin controls you seek,\nplease notice the extra scrollbar you have that players\ndo not!"})," ",(0,o.createComponentVNode)(2,c.TimeDisplay,{auto:"down",value:f})]}),children:(0,o.createComponentVNode)(2,c.Flex,{justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{align:"center",textAlign:"center",maxWidth:"500px",children:[(0,o.createVNode)(1,"b",null,[(0,o.createTextVNode)("You are the "),h.role],0),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"b",null,h.desc,0)]}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:[(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["mafia32x32",h.revealed_icon]),style:{transform:"scale(2) translate(0px, 10%)","vertical-align":"middle"}}),(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["mafia32x32",h.hud_icon]),style:{transform:"scale(2) translate(-5px, -5px)","vertical-align":"middle"}})]})]})}),(0,o.createComponentVNode)(2,c.Flex,{children:!!p&&p.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return d("mf_action",{atype:e})},children:e})},e)}))}),!!h&&(0,o.createComponentVNode)(2,c.Section,{title:"Judgement",buttons:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"info",tooltipPosition:"left",tooltip:"When someone is on trial, you are in charge of their fate.\nInnocent winning means the person on trial can live to see\nanother day... and in losing they do not. You can go back\nto abstaining with the middle button if you reconsider."}),children:[(0,o.createComponentVNode)(2,c.Flex,{justify:"space-around",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"smile-beam",content:"INNOCENT!",color:"good",disabled:!b,onClick:function(){return d("vote_innocent")}}),!b&&(0,o.createComponentVNode)(2,c.Box,{children:"There is nobody on trial at the moment."}),!!b&&(0,o.createComponentVNode)(2,c.Box,{children:"It is now time to vote, vote the accused innocent or guilty!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"angry",content:"GUILTY!",color:"bad",disabled:!b,onClick:function(){return d("vote_guilty")}})]}),(0,o.createComponentVNode)(2,c.Flex,{justify:"center",children:(0,o.createComponentVNode)(2,c.Button,{icon:"meh",content:"Abstain",color:"white",disabled:!b,onClick:function(){return d("vote_abstain")}})})]}),"No Game"!==C&&(0,o.createComponentVNode)(2,c.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,c.Section,{title:"Players",buttons:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"info",tooltip:"This is the list of all the players in\nthe game, during the day phase you may vote on them and,\ndepending on your role, select players\nat certain phases to use your ability."}),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!m&&m.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:"18px",justify:"space-between",align:"center",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{basis:16,children:[!!e.alive&&(0,o.createComponentVNode)(2,c.Box,{children:e.name}),!e.alive&&(0,o.createComponentVNode)(2,c.Box,{color:"red",children:e.name})]}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:!e.alive&&(0,o.createComponentVNode)(2,c.Box,{color:"red",children:"DEAD"})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:e.votes!==undefined&&!!e.alive&&(0,o.createFragment)([(0,o.createTextVNode)("Votes : "),e.votes,(0,o.createTextVNode)(" ")],0)}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:!!e.actions&&e.actions.map((function(t){return(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return d("mf_targ_action",{atype:t,target:e.ref})},children:t},t)}))})]})},e.ref)}))})})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,c.Section,{title:"Roles and Notes",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"address-book",tooltipPosition:"bottom-left",tooltip:"The top section is the roles in the game. You can\npress the question mark to get a quick blurb\nabout the role itself."}),(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"edit",tooltipPosition:"bottom-left",tooltip:"The bottom section are your notes. on some roles this\nwill just be an empty box, but on others it records the\nactions of your abilities (so for example, your\ndetective work revealing a changeling)."})],4),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!g&&g.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:"18px",align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:e}),(0,o.createComponentVNode)(2,c.Flex.Item,{textAlign:"right",children:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"question",onClick:function(){return d("mf_lookup",{atype:e.slice(0,-3)})}})})]})},e)}))})}),!!h&&(0,o.createComponentVNode)(2,c.Flex.Item,{height:0,grow:1,children:(0,o.createComponentVNode)(2,c.Section,{scrollable:!0,fill:!0,overflowY:"scroll",children:h!==undefined&&!!h.action_log&&h.action_log.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:e},e)}))})})]})})]}),(0,o.createComponentVNode)(2,c.Flex,{mt:1,direction:"column",children:(0,o.createComponentVNode)(2,c.Flex.Item,{children:!!V&&(0,o.createComponentVNode)(2,c.Section,{textAlign:"center",children:(0,o.createComponentVNode)(2,c.Collapsible,{title:"ADMIN CONTROLS",color:"red",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"exclamation-triangle",color:"black",tooltipPosition:"top",tooltip:"Almost all of these are all built to help me debug\nthe game (ow, debugging a 12 player game!) So they are\nrudamentary and prone to breaking at the drop of a hat.\nMake sure you know what you're doing when you press one.\nAlso because an admin did it: do not gib/delete/dust\nanyone! It will runtime the game to death!",content:"A Kind, Coder Warning",onClick:function(){return d("next_phase")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-right",tooltipPosition:"top",tooltip:"This will advance the game to the next phase\n(day talk > day voting, day voting > night/trial)\npretty fun to just spam this and freak people out,\ntry that roundend!",content:"Next Phase",onClick:function(){return d("next_phase")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"home",tooltipPosition:"top",tooltip:"Hopefully you won't use this button\noften, it's a safety net just in case\nmafia players somehow escape (nullspace\nredirects to the error room then station)\nEither way, VERY BAD IF THAT HAPPENS as\ngodmoded assistants will run free. Use\nthis to recollect them then make a bug report.",content:"Send All Players Home",onClick:function(){return d("players_home")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync-alt",tooltipPosition:"top",tooltip:"This immediately ends the game, and attempts to start\nanother. Nothing will happen if another\ngame fails to start!",content:"New Game",onClick:function(){return d("new_game")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"skull",tooltipPosition:"top",tooltip:"Deletes the datum, clears all landmarks, makes mafia\nas it was roundstart: nonexistant. Use this if you\nreally mess things up. You did mess things up, didn't you.",content:"Nuke",onClick:function(){return d("nuke")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"paint-brush",tooltipPosition:"top",tooltip:"This is the custom game creator, it is... simple.\nYou put in roles and until you press CANCEL or FINISH\nit will keep letting you add more roles. Assitants\non the bottom because of pathing stuff. Resets after\nthe round finishes back to 12 player random setups.",content:"Create Custom Setup",onClick:function(){return d("debug_setup")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"paint-roller",tooltipPosition:"top",tooltip:"If you messed up and accidently didn't make it how\nyou wanted, simply just press this to reset it. The game\nwill auto reset after each game as well.",content:"Reset Custom Setup",onClick:function(){return d("cancel_setup")}})]})})})})]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.phase,d=i.timeleft,u=i.admin_controls;return(0,o.createComponentVNode)(2,c.Box,{children:["[Phase = ",l," | ",(0,o.createComponentVNode)(2,c.TimeDisplay,{auto:"down",value:d}),"]"," ",(0,o.createComponentVNode)(2,c.Button,{icon:"clipboard-check",tooltipPosition:"bottom-left",tooltip:"Signs you up for the next game. If there\nis an ongoing one, you will be signed up\nfor the next.",content:"Sign Up",onClick:function(){return r("mf_signup")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"eye",tooltipPosition:"bottom-left",tooltip:"Spectates games until you turn it off.\nAutomatically enabled when you die in game,\nbecause I assumed you would want to see the\nconclusion. You won't get messages if you\nrejoin SS13.",content:"Spectate",onClick:function(){return r("mf_spectate")}}),!!u&&(0,o.createComponentVNode)(2,c.Button,{color:"red",icon:"gavel",tooltipPosition:"bottom-left",tooltip:"Hello admin! If it is the admin controls you seek,\nplease notice the scrollbar you have that players\ndo not!"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.MalfunctionModulePicker=void 0;var o=n(0),r=n(2),a=n(3),c=n(142);t.MalfunctionModulePicker=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.processingTime);return(0,o.createComponentVNode)(2,a.Window,{width:620,height:525,theme:"malfunction",resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.GenericUplink,{currencyAmount:i,currencySymbol:"PT"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.MechBayPowerConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.recharge_port,d=l&&l.mech,u=d&&d.cell;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:200,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return i("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.health/d.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.charge/u.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.charge})," / "+u.maxcharge]})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechpadConsole=t.MechpadControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=e.topLevel,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.pad_name,u=l.connected_mechpad;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:d,width:"170px",onChange:function(e,t){return i("rename",{name:t})}}),level:n?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return i("remove")}}),children:!u&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No Pad Connected."})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return i("launch")}})})};t.MechpadControl=i;t.MechpadConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.mechpads,s=void 0===u?[]:u,m=d.selected_id;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:130,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:0===s.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"})||(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{minHeight:"70px",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"140px",minHeight:"70px",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,ellipsis:!0,content:e.name,selected:m===e.id,color:"transparent",onClick:function(){return l("select_pad",{id:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{minHeight:"100%",children:(0,o.createComponentVNode)(2,a.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,minHeight:"100%",children:m&&(0,o.createComponentVNode)(2,i)||(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MedicalKiosk=void 0;var o=n(0),r=(n(19),n(2)),a=n(1),c=n(3);t.MedicalKiosk=function(e,t){var n=(0,r.useBackend)(t),p=(n.act,n.data),C=(0,r.useSharedState)(t,"scanIndex")[0],h=p.active_status_1,N=p.active_status_2,V=p.active_status_3,b=p.active_status_4;return(0,o.createComponentVNode)(2,c.Window,{width:575,height:420,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:1,children:(0,o.createComponentVNode)(2,a.Section,{minHeight:"100%",children:[(0,o.createComponentVNode)(2,i,{index:1,icon:"procedures",name:"General Health Scan",description:"Reads back exact values of your general health scan."}),(0,o.createComponentVNode)(2,i,{index:2,icon:"heartbeat",name:"Symptom Based Checkup",description:"Provides information based on various non-obvious symptoms,\nlike blood levels or disease status."}),(0,o.createComponentVNode)(2,i,{index:3,icon:"radiation-alt",name:"Neurological/Radiological Scan",description:"Provides information about brain trauma and radiation."}),(0,o.createComponentVNode)(2,i,{index:4,icon:"mortar-pestle",name:"Chemical and Psychoactive Scan",description:"Provides a list of consumed chemicals, as well as potential\nside effects."})]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l)})]}),!!h&&1===C&&(0,o.createComponentVNode)(2,d),!!N&&2===C&&(0,o.createComponentVNode)(2,u),!!V&&3===C&&(0,o.createComponentVNode)(2,s),!!b&&4===C&&(0,o.createComponentVNode)(2,m)]})})};var i=function(e,t){var n=e.index,c=e.name,i=e.description,l=e.icon,d=(0,r.useBackend)(t),u=d.act,s=d.data,m=(0,r.useSharedState)(t,"scanIndex"),p=m[0],C=m[1],h=s["active_status_"+n];return(0,o.createComponentVNode)(2,a.Flex,{spacing:1,align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"16px",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Icon,{name:h?"check":"dollar-sign",color:h?"green":"grey"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:l,selected:h&&p===n,tooltip:i,tooltipPosition:"right",content:c,onClick:function(){h||u("beginScan_"+n),C(n)}})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.kiosk_cost,d=i.patient_name;return(0,o.createComponentVNode)(2,a.Section,{minHeight:"100%",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:["Greetings Valued Employee! Please select a desired automatic health check procedure. Diagnosis costs ",(0,o.createVNode)(1,"b",null,[l,(0,o.createTextVNode)(" credits.")],0)]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Patient:"}),d]}),(0,o.createComponentVNode)(2,a.Button,{mt:1,tooltip:"Resets the current scanning target, cancelling current scans.",icon:"sync",color:"average",onClick:function(){return c("clearTarget")},content:"Reset Scanner"})]})},d=function(e,t){var n=(0,r.useBackend)(t).data,c=n.patient_health,i=n.brute_health,l=n.burn_health,d=n.suffocation_health,u=n.toxin_health;return(0,o.createComponentVNode)(2,a.Section,{title:"Patient Health",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c/100,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c}),"%"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxin Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})})})]})})},u=function(e,t){var n=(0,r.useBackend)(t).data,c=n.patient_status,i=n.patient_illness,l=n.illness_info,d=n.bleed_status,u=n.blood_levels,s=n.blood_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Symptom Based Checkup",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patient Status",color:"good",children:c}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease Status",children:i}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease information",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Levels",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})}),(0,o.createComponentVNode)(2,a.Box,{mt:1,color:"label",children:d})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Information",children:s})]})})},s=function(e,t){var n=(0,r.useBackend)(t).data,c=n.clone_health,i=n.brain_damage,l=n.brain_health,d=n.rad_contamination_status,u=n.rad_contamination_value,s=n.rad_sickness_status,m=n.rad_sickness_value,p=n.trauma_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Patient Neurological and Radiological Health",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cellular Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c})})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Status",color:"health-0",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Trauma Status",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Sickness Status",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Sickness Percentage",children:[m,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Contamination Status",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Contamination Percentage",children:[u,"%"]})]})})},m=function(e,t){var n=(0,r.useBackend)(t).data,c=n.chemical_list,i=void 0===c?[]:c,l=n.overdose_list,d=void 0===l?[]:l,u=n.addict_list,s=void 0===u?[]:u,m=n.hallucinating_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Chemical and Psychoactive Analysis",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chemical Contents",children:[0===i.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No reagents detected."}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[e.volume," units of ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Status",color:"bad",children:[0===d.length&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient is not overdosing."}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Overdosing on ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Status",color:"bad",children:[0===s.length&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient has no addictions."}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Addicted to ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Psychoactive Status",children:m})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Microscope=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Microscope=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=(0,r.useSharedState)(t,"tab",1),m=s[0],p=s[1],C=u.has_dish,h=u.cell_lines,N=void 0===h?[]:h,V=u.viruses,b=void 0===V?[]:V;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Dish Sample",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!C,onClick:function(){return d("eject_petridish")}})})})}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"microscope",lineHeight:"23px",selected:1===m,onClick:function(){return p(1)},children:["Micro-Organisms (",N.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"microscope",lineHeight:"23px",selected:2===m,onClick:function(){return p(2)},children:["Viruses (",b.length,")"]})]}),1===m&&(0,o.createComponentVNode)(2,i,{cell_lines:N}),2===m&&(0,o.createComponentVNode)(2,l,{viruses:b})]})})};var i=function(e,t){var n=e.cell_lines,c=(0,r.useBackend)(t);c.act,c.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.desc,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:e.growth_rate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Virus Suspectibility",children:e.suspectibility}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Required Reagents",children:e.requireds}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supplementary Reagents",children:e.supplementaries}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suppresive reagents",children:e.suppressives})]})},e.desc)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No micro-organisms found"})},l=function(e,t){var n=e.viruses;(0,r.useBackend)(t).act;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.desc},e.desc)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No viruses found"})}},function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(0),r=n(6),a=n(2),c=n(1),i=n(3);t.MiningVendor=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=[].concat(d.product_records);return(0,o.createComponentVNode)(2,i.Window,{width:425,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"User",children:d.user&&(0,o.createComponentVNode)(2,c.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,d.user.name||"Unknown",0),","," ",(0,o.createVNode)(1,"b",null,d.user.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[d.user.points,(0,o.createTextVNode)(" mining points")],0),"."]})||(0,o.createComponentVNode)(2,c.Box,{color:"light-gray",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Equipment",children:(0,o.createComponentVNode)(2,c.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[(0,o.createVNode)(1,"span",(0,r.classes)(["vending32x32",e.path]),null,1,{style:{"vertical-align":"middle"}})," ",(0,o.createVNode)(1,"b",null,e.name,0)]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{style:{"min-width":"95px","text-align":"center"},disabled:!d.user||e.price>d.user.points,content:e.price+" points",onClick:function(){return l("purchase",{ref:e.ref})}})})]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mint=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Mint=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.inserted_materials||[];return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Materials",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.processing?"times":"power-off",content:l.processing?"Stop":"Start",selected:l.processing,onClick:function(){return i(l.processing?"stoppress":"startpress")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.material,buttons:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:l.chosen_material===e.material,onClick:function(){return i("changematerial",{material_name:e.material})}}),children:[e.amount," cm\xb3"]},e.material)}))})}),(0,o.createComponentVNode)(2,a.Section,{children:["Pressed ",l.produced_coins," coins this cycle."]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(64);t.Mule=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.on,s=d.cell,m=d.cellPercent,p=d.load,C=d.mode,h=d.modeStatus,N=d.haspai,V=d.autoReturn,b=d.autoPickup,f=d.reportDelivery,g=d.destination,v=d.home,k=d.id,x=d.destinations,B=void 0===x?[]:x,_=d.locked&&!d.siliconUser;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:425,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Status",minHeight:"110px",buttons:!_&&(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:s?m/100:0,color:s?"good":"bad"}),(0,o.createComponentVNode)(2,a.Flex,{mt:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",color:h,children:C})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Load",color:p?"good":"average",children:p||"None"})})})]})]}),!_&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!p&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return l("unload")}}),!!N&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject PAI",onClick:function(){return l("ejectpai")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Input,{value:k,onChange:function(e,t){return l("setid",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:g||"None",options:B,width:"150px",onSelected:function(e){return l("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"stop",content:"Stop",onClick:function(){return l("stop")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"play",content:"Go",onClick:function(){return l("go")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:v,options:B,width:"150px",onSelected:function(e){return l("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",content:"Go Home",onClick:function(){return l("home")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:V,content:"Auto-Return",onClick:function(){return l("autored")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:b,content:"Auto-Pickup",onClick:function(){return l("autopick")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:f,content:"Report Delivery",onClick:function(){return l("report")}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControlContent=t.NaniteChamberControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NaniteChamberControl=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:380,height:570,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.status_msg,d=i.locked,u=i.occupant_name,s=i.has_nanites,m=i.nanite_volume,p=i.regen_rate,C=i.safety_threshold,h=i.cloud_id,N=i.scan_level;if(l)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:l});var V=i.mob_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Chamber: "+u,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"lock":"lock-open",content:d?"Locked":"Unlocked",color:d?"bad":"default",onClick:function(){return c("toggle_lock")}}),children:s?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Destroy Nanites",color:"bad",onClick:function(){return c("remove_nanites")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanite Volume",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety Threshold",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:C,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return c("set_safety",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:h,minValue:0,maxValue:100,step:1,stepPixelSize:3,width:"39px",onChange:function(e,t){return c("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:V.map((function(e){var t=e.extra_settings||[],n=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.desc}),N>=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),N>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),N>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),N>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return c("nanite_injection")}})],4)})};t.NaniteChamberControlContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=(0,r.useBackend)(t).data,c=n.has_disk,i=n.has_program,d=n.disk;return c?i?(0,o.createComponentVNode)(2,l,{program:d}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var l=function(e,t){var n=e.program,r=n.name,c=n.desc,i=n.activated,l=n.use_rate,d=n.can_trigger,u=n.trigger_cost,s=n.trigger_cooldown,m=n.activation_code,p=n.deactivation_code,C=n.kill_code,h=n.trigger_code,N=n.timer_restart,V=n.timer_shutdown,b=n.timer_trigger,f=n.timer_trigger_delay,g=n.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:r,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:c}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:l}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:s})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:C}),!!d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:h})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[N," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[V," s"]}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[b," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[f," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:g.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act;return(n.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return c("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=d;var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.current_view,u=i.disk,s=i.has_program,m=i.cloud_backup,p=u&&u.can_rule||!1;if(!m)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var C=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+d,level:2,buttons:!!s&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return c("upload_program")}}),children:C.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return c("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,l,{program:e}),(!!p||!!e.has_rules)&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:!!p&&(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return c("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return c("remove_rule",{program_id:e.id,rule_id:t.id})}})," "+t.display]},t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,s=n.data,m=s.has_disk,p=s.current_view,C=s.new_backup_id;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!m,onClick:function(){return l("eject")}}),children:(0,o.createComponentVNode)(2,i)}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return l("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:C,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return l("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return l("create_backup")}})],0),children:s.current_view?(0,o.createComponentVNode)(2,u):(0,o.createComponentVNode)(2,d)})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3);t.NaniteProgramHub=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.detail_view,s=d.disk,m=d.has_disk,p=d.has_program,C=d.programs,h=void 0===C?{}:C,N=(0,a.useSharedState)(t,"category"),V=N[0],b=N[1],f=h&&h[V]||[];return(0,o.createComponentVNode)(2,i.Window,{width:500,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return l("eject")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return l("clear")}})],4),children:m?p?(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Program Name",children:s.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:s.desc})]}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,c.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:u?"info":"list",content:u?"Detailed":"Compact",onClick:function(){return l("toggle_details")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Sync Research",onClick:function(){return l("refresh")}})],4),children:null!==h?(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{minWidth:"110px",children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var n=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:t===V,onClick:function(){return b(t)},children:n},t)}))(h)})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:u?f.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"download",content:"Download",disabled:!m,onClick:function(){return l("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,c.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"download",content:"Download",disabled:!m,onClick:function(){return l("download",{program_id:e.id})}})},e.id)}))})})]}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No nanite programs are currently researched."})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammerContent=t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=l;var d=function(e,t){var n=e.extra_setting,r=n.name,c=n.type,i={number:(0,o.createComponentVNode)(2,u,{extra_setting:n}),text:(0,o.createComponentVNode)(2,s,{extra_setting:n}),type:(0,o.createComponentVNode)(2,m,{extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:i[c]})};t.NaniteExtraEntry=d;var u=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.min,u=n.max,s=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:l,width:"64px",minValue:d,maxValue:u,unit:s,onChange:function(e,t){return c("set_extra_setting",{target_setting:i,value:t})}})};t.NaniteExtraNumber=u;var s=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:l,width:"200px",onInput:function(e,t){return c("set_extra_setting",{target_setting:i,value:t})}})};t.NaniteExtraText=s;var m=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:l,width:"150px",options:d,onSelected:function(e){return c("set_extra_setting",{target_setting:i,value:e})}})};t.NaniteExtraType=m;var p=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.true_text,u=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:l?d:u,checked:l,onClick:function(){return c("set_extra_setting",{target_setting:i})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:420,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,C)})})};var C=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.has_disk,m=u.has_program,p=u.name,C=u.desc,h=u.use_rate,N=u.can_trigger,V=u.trigger_cost,b=u.trigger_cooldown,f=u.activated,g=u.has_extra_settings,v=u.extra_settings,k=void 0===v?{}:v;return s?m?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:C}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:h}),!!N&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:V}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:b})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:f?"power-off":"times",content:f?"Active":"Inactive",selected:f,color:"bad",bold:!0,onClick:function(){return c("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i)}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,l)})]}),!!g&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:k.map((function(e){return(0,o.createComponentVNode)(2,d,{extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})};t.NaniteProgrammerContent=C},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemoteContent=t.NaniteRemote=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NaniteRemote=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:420,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.code,d=i.locked,u=i.mode,s=i.program_name,m=i.relay_code,p=i.comms,C=i.message,h=i.saved_settings,N=void 0===h?[]:h;return d?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return c("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:s,maxLength:14,width:"130px",onChange:function(e,t){return c("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return c("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return c("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:C,width:"270px",onChange:function(e,t){return c("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return c("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return c("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:N.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),N.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return c("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return c("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)};t.NaniteRemoteContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NotificationPreferences=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=(n.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,c.Window,{title:"Notification Preferences",width:270,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return i("toggle_ignore",{key:e.key})}},e.key)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtnetRelay=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.enabled,u=l.dos_capacity,s=l.dos_overload,m=l.dos_crashed;return(0,o.createComponentVNode)(2,c.Window,{title:"NtNet Quantum Relay",width:400,height:300,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:d,content:d?"ENABLED":"DISABLED",onClick:function(){return i("toggle")}}),children:m?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return i("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:u,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," GQ"," / ",u," GQ"]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosAiRestorer=void 0;var o=n(0),r=n(3),a=n(201);t.NtosAiRestorer=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:370,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.AiRestorerContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(0),r=n(63),a=n(2),c=n(1),i=n(3);t.NtosArcade=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:450,height:350,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,c.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,c.Box,{m:1}),(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[d.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[d.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,c.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,c.Section,{backgroundColor:1===d.PauseState?"#1b3622":"#471915",children:d.Status})]}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:[(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.Hitpoints,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:d.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,c.Box,{m:1}),(0,o.createComponentVNode)(2,c.Section,{inline:!0,width:"156px",textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:(0,r.resolveAsset)(d.BossID)})})]})]}),(0,o.createComponentVNode)(2,c.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,c.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===d.GameActive,onClick:function(){return l("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,c.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===d.GameActive,onClick:function(){return l("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,c.Box,{color:d.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",d.TicketCount]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosAtmos=void 0;var o=n(0),r=n(14),a=n(30),c=n(9),i=n(2),l=n(1),d=n(36),u=n(3);t.NtosAtmos=function(e,t){var n=(0,i.useBackend)(t),s=(n.act,n.data),m=s.AirTemp,p=s.AirPressure,C=(0,a.flow)([(0,r.filter)((function(e){return e.percentage>=.01})),(0,r.sortBy)((function(e){return-e.percentage}))])(s.AirData||[]),h=Math.max.apply(Math,[1].concat(C.map((function(e){return e.percentage}))));return(0,o.createComponentVNode)(2,u.NtosWindow,{width:300,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,u.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:[m,"\xb0C"]}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:[p," kPa"]})]})}),(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.percentage,minValue:0,maxValue:h,children:(0,c.toFixed)(e.percentage,2)+"%"})},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosBountyConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.NtosBountyConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data.bountydata,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:750,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,l),buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print Bounty List",onClick:function(){return c("Print")}}),children:(0,o.createComponentVNode)(2,a.Table,{border:!0,children:[(0,o.createComponentVNode)(2,a.Table.Row,{bold:!0,italic:!0,color:"label",fontSize:1.25,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Bounty Object"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Description"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Progress"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Claim"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:1===e.priority?"rgba(252, 152, 3, 0.25)":"",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{italic:!0,textAlign:"center",p:1,children:e.description}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:[1===e.priority?(0,o.createComponentVNode)(2,a.Box,{children:"High Priority"}):"",e.completion_string]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:e.reward_string}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:1===e.claimed?"check":"",content:1===e.claimed?"Claimed":"Claim",disabled:1===e.claimed,color:1===e.can_claim?"green":"red",onClick:function(){return c("ClaimBounty",{bounty:e.bounty_ref})}})})]},e.name)}))]})})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.stored_cash);return(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i,format:function(e){return(0,c.formatMoney)(e)}})," credits"]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCardContent=t.NtosCard=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(202);t.NtosCard=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:450,height:520,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=(0,r.useLocalState)(t,"tab",1),u=d[0],s=d[1],m=l.authenticated,p=l.regions,C=void 0===p?[]:p,h=l.access_on_card,N=void 0===h?[]:h,V=l.jobs,b=void 0===V?{}:V,f=l.id_rank,g=l.id_owner,v=l.has_id,k=l.have_printer,x=l.have_id_slot,B=l.id_name,_=(0,r.useLocalState)(t,"department",Object.keys(b)[0]),w=_[0],L=_[1];if(!x)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This program requires an ID slot in order to function"});var y=b[w]||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:v&&m?(0,o.createComponentVNode)(2,a.Input,{value:g,width:"250px",onInput:function(e,t){return c("PRG_edit",{name:t})}}):g||"No Card Inserted",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!k||!v,onClick:function(){return c("PRG_print")}}),(0,o.createComponentVNode)(2,a.Button,{icon:m?"sign-out-alt":"sign-in-alt",content:m?"Log Out":"Log In",color:m?"bad":"good",onClick:function(){c(m?"PRG_logout":"PRG_authenticate")}})],4),children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:B,onClick:function(){return c("PRG_eject")}})}),!!v&&!!m&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===u,onClick:function(){return s(1)},children:"Access"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===u,onClick:function(){return s(2)},children:"Jobs"})]}),1===u&&(0,o.createComponentVNode)(2,i.AccessList,{accesses:C,selectedList:N,accessMod:function(e){return c("PRG_access",{access_target:e})},grantAll:function(){return c("PRG_grantall")},denyAll:function(){return c("PRG_denyall")},grantDep:function(e){return c("PRG_grantregion",{region:e})},denyDep:function(e){return c("PRG_denyregion",{region:e})}}),2===u&&(0,o.createComponentVNode)(2,a.Section,{title:f,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"exclamation-triangle",content:"Terminate",color:"bad",onClick:function(){return c("PRG_terminate")}}),children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Custom...",onCommit:function(e,t){return c("PRG_assign",{assign_target:"Custom",custom_name:t})}}),(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:Object.keys(b).map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:e===w,onClick:function(){return L(e)},children:e},e)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:y.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.display_name,onClick:function(){return c("PRG_assign",{assign_target:e.job})}},e.job)}))})]})]})]})],0)};t.NtosCardContent=l},function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosConfiguration=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.PC_device_theme,u=l.power_usage,s=l.battery_exists,m=l.battery,p=void 0===m?{}:m,C=l.disk_size,h=l.disk_used,N=l.hardware,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,c.NtosWindow,{theme:d,width:420,height:630,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",u,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!s&&"average",children:s?(0,o.createComponentVNode)(2,a.ProgressBar,{value:p.charge,minValue:0,maxValue:p.max,ranges:{good:[p.max/2,Infinity],average:[p.max/4,p.max/2],bad:[-Infinity,p.max/4]},children:[p.charge," / ",p.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h,minValue:0,maxValue:C,color:"good",children:[h," GQ / ",C," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:V.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return i("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCrewManifest=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3);t.NtosCrewManifest=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.have_printer,s=d.manifest,m=void 0===s?{}:s;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:400,height:480,resizable:!0,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Section,{title:"Crew Manifest",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"print",content:"Print",disabled:!u,onClick:function(){return l("PRG_print")}}),children:(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Section,{level:2,title:t,children:(0,o.createComponentVNode)(2,c.Table,{children:e.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:["(",e.rank,")"]})]},e.name)}))})},t)}))(m)})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCyborgRemoteMonitorSyndicate=void 0;var o=n(0),r=n(3),a=n(207);t.NtosCyborgRemoteMonitorSyndicate=function(e,t){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:600,height:800,theme:"syndicate",children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.NtosCyborgRemoteMonitorContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosFileManager=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosFileManager=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.PC_device_theme,s=d.usbconnected,m=d.files,p=void 0===m?[]:m,C=d.usbfiles,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.NtosWindow,{resizable:!0,theme:u,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,i,{files:p,usbconnected:s,onUpload:function(e){return l("PRG_copytousb",{name:e})},onDelete:function(e){return l("PRG_deletefile",{name:e})},onRename:function(e,t){return l("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return l("PRG_clone",{file:e})}})}),s&&(0,o.createComponentVNode)(2,a.Section,{title:"Data Disk",children:(0,o.createComponentVNode)(2,i,{usbmode:!0,files:h,usbconnected:s,onUpload:function(e){return l("PRG_copyfromusb",{name:e})},onDelete:function(e){return l("PRG_deletefile",{name:e})},onRename:function(e,t){return l("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return l("PRG_clone",{file:e})}})})]})})};var i=function(e){var t=e.files,n=void 0===t?[]:t,r=e.usbconnected,c=e.usbmode,i=e.onUpload,l=e.onDelete,d=e.onRename;return(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"File"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Type"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Size"})]}),n.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.undeletable?e.name:(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:e.name,currentValue:e.name,tooltip:"Rename",onCommit:function(t,n){return d(e.name,n)}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.type}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.size}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:!e.undeletable&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",confirmIcon:"times",confirmContent:"",tooltip:"Delete",onClick:function(){return l(e.name)}}),!!r&&(c?(0,o.createComponentVNode)(2,a.Button,{icon:"download",tooltip:"Download",onClick:function(){return i(e.name)}}):(0,o.createComponentVNode)(2,a.Button,{icon:"upload",tooltip:"Upload",onClick:function(){return i(e.name)}}))],0)})]},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosJobManagerContent=t.NtosJobManager=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosJobManager=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:620,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.authed,d=i.cooldown,u=i.slots,s=void 0===u?[]:u,m=i.prioritized,p=void 0===m?[]:m;return l?(0,o.createComponentVNode)(2,a.Section,{children:[d>0&&(0,o.createComponentVNode)(2,a.Dimmer,{children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",children:["On Cooldown: ",d,"s"]})}),(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Prioritized"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Slots"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:e.title,disabled:e.total<=0,checked:e.total>0&&p.includes(e.title),onClick:function(){return c("PRG_priority",{target:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[e.current," / ",e.total]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"Open",disabled:!e.status_open,onClick:function(){return c("PRG_open_job",{target:e.title})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Close",disabled:!e.status_close,onClick:function(){return c("PRG_close_job",{target:e.title})}})]})]},e.title)}))]})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Current ID does not have access permissions to change job slots."})};t.NtosJobManagerContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug",job_manage:"address-book",crewmani:"clipboard-list",robocontrol:"robot",atmosscan:"thermometer-half",shipping:"tags"};t.NtosMain=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.device_theme,s=d.programs,m=void 0===s?[]:s,p=d.has_light,C=d.light_on,h=d.comp_light_color,N=d.removable_media,V=void 0===N?[]:N,b=d.login,f=void 0===b?[]:b;return(0,o.createComponentVNode)(2,c.NtosWindow,{title:"syndicate"===u?"Syndix Main Menu":"NtOS Main Menu",theme:u,width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[!!p&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:C,onClick:function(){return l("PC_toggle_light")},children:["Flashlight: ",C?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return l("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:h})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"User Login",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject ID",disabled:!f.IDName,onClick:function(){return l("PC_Eject_Disk",{name:"ID"})}}),children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:["ID Name: ",f.IDName]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:["Assignment: ",f.IDJob]})]})}),!!V.length&&(0,o.createComponentVNode)(2,a.Section,{title:"Media Eject",children:(0,o.createComponentVNode)(2,a.Table,{children:V.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,color:"transparent",icon:"eject",content:e,onClick:function(){return l("PC_Eject_Disk",{name:e})}})})},e)}))})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return l("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:"18px",children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return l("PC_killprogram",{name:e.name})}})})]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosNetChat=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.can_admin,u=l.adminmode,s=l.authed,m=l.username,p=l.active_channel,C=l.is_operator,h=l.all_channels,N=void 0===h?[]:h,V=l.clients,b=void 0===V?[]:V,f=l.messages,g=void 0===f?[]:f,v=null!==p,k=s||u;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:900,height:675,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return i("PRG_newchannel",{new_channel_name:t})}}),N.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===p,color:"transparent",onClick:function(){return i("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:m+"...",currentValue:m,onCommit:function(e,t){return i("PRG_changename",{new_name:t})}}),!!d&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(u?"ON":"OFF"),color:u?"bad":"good",onClick:function(){return i("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:v&&(k?g.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return i("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:b.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),v&&k&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return i("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return i("PRG_leavechannel")}})],4),!!C&&s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return i("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return i("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return i("PRG_setpassword",{new_password:t})}})],4)]})]})})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDosContent=t.NtosNetDos=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosNetDos=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:250,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.relays,d=void 0===l?[]:l,u=i.focus,s=i.target,m=i.speed,p=i.overload,C=i.capacity,h=i.error;if(h)return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:h}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Reset",textAlign:"center",onClick:function(){return c("PRG_reset")}})],4);var N=function(e){for(var t="",n=p/C;t.lengthn?t+="0":t+="1";return t};return s?(0,o.createComponentVNode)(2,a.Section,{fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:["CURRENT SPEED: ",m," GQ/s"]}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)})]}):(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.id,selected:u===e.id,onClick:function(){return c("PRG_target_relay",{targid:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"EXECUTE",color:"bad",textAlign:"center",disabled:!u,mt:1,onClick:function(){return c("PRG_execute")}})]})};t.NtosNetDosContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosNetDownloader=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.PC_device_theme,s=d.disk_size,m=d.disk_used,p=d.downloadable_programs,C=void 0===p?[]:p,h=d.error,N=d.hacked_programs,V=void 0===N?[]:N,b=d.hackedavailable;return(0,o.createComponentVNode)(2,c.NtosWindow,{theme:u,width:480,height:735,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[!!h&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:h}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return l("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:s,children:m+" GQ / "+s+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:C.map((function(e){return(0,o.createComponentVNode)(2,i,{program:e},e.filename)}))}),!!b&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),V.map((function(e){return(0,o.createComponentVNode)(2,i,{program:e},e.filename)}))]})]})})};var i=function(e,t){var n=e.program,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.disk_size,u=l.disk_used,s=l.downloadcompletion,m=l.downloading,p=l.downloadname,C=l.downloadsize,h=d-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:n.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[n.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:n.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:C,value:s})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:m||n.size>h,onClick:function(){return i("PRG_downloadfile",{filename:n.filename})}})})]}),"Compatible"!==n.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),n.size>h&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:n.fileinfo})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetMonitor=void 0;var o=n(0),r=n(1),a=n(2),c=n(3);t.NtosNetMonitor=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.ntnetrelays,u=l.ntnetstatus,s=l.config_softwaredownload,m=l.config_peertopeer,p=l.config_communication,C=l.config_systemcontrol,h=l.idsalarm,N=l.idsstatus,V=l.ntnetmaxlogs,b=l.maxlogs,f=l.minlogs,g=l.ntnetlogs,v=void 0===g?[]:g;return(0,o.createComponentVNode)(2,c.NtosWindow,{resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,r.NoticeBox,{children:"WARNING: Disabling wireless transmitters when using a wireless device may prevent you from reenabling them!"}),(0,o.createComponentVNode)(2,r.Section,{title:"Wireless Connectivity",buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:u?"power-off":"times",content:u?"ENABLED":"DISABLED",selected:u,onClick:function(){return i("toggleWireless")}}),children:d?(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Active NTNet Relays",children:d})}):"No Relays Connected"}),(0,o.createComponentVNode)(2,r.Section,{title:"Firewall Configuration",children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Software Downloads",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:s?"power-off":"times",content:s?"ENABLED":"DISABLED",selected:s,onClick:function(){return i("toggle_function",{id:"1"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Peer to Peer Traffic",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:m?"power-off":"times",content:m?"ENABLED":"DISABLED",selected:m,onClick:function(){return i("toggle_function",{id:"2"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Communication Systems",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:p?"power-off":"times",content:p?"ENABLED":"DISABLED",selected:p,onClick:function(){return i("toggle_function",{id:"3"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Remote System Control",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:C?"power-off":"times",content:C?"ENABLED":"DISABLED",selected:C,onClick:function(){return i("toggle_function",{id:"4"})}})})]})}),(0,o.createComponentVNode)(2,r.Section,{title:"Security Systems",children:[!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:"NETWORK INCURSION DETECTED"}),(0,o.createComponentVNode)(2,r.Box,{italics:!0,children:"Abnormal activity has been detected in the network. Check system logs for more information"})],4),(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"IDS Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button,{icon:N?"power-off":"times",content:N?"ENABLED":"DISABLED",selected:N,onClick:function(){return i("toggleIDS")}}),(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",color:"bad",onClick:function(){return i("resetIDS")}})],4)}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Max Log Count",buttons:(0,o.createComponentVNode)(2,r.NumberInput,{value:V,minValue:f,maxValue:b,width:"39px",onChange:function(e,t){return i("updatemaxlogs",{new_number:t})}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"System Log",level:2,buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:"trash",content:"Clear Logs",onClick:function(){return i("purgelogs")}}),children:v.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{className:"candystripe",children:e.entry},e.entry)}))})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosPowerMonitor=void 0;var o=n(0),r=n(3),a=n(143);t.NtosPowerMonitor=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:550,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.PowerMonitorContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRadarSyndicate=void 0;var o=n(0),r=n(3),a=n(208);t.NtosRadarSyndicate=function(e,t){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:800,height:600,theme:"syndicate",children:(0,o.createComponentVNode)(2,a.NtosRadarContent,{sig_err:"Out of Range"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRequestKiosk=void 0;var o=n(0),r=n(209),a=n(3);t.NtosRequestKiosk=function(e,t){return(0,o.createComponentVNode)(2,a.NtosWindow,{width:550,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,a.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,r.RequestKioskContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRevelation=void 0;var o=n(0),r=n(1),a=n(2),c=n(3);t.NtosRevelation=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:250,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Button.Input,{fluid:!0,content:"Obfuscate Name...",onCommit:function(e,t){return i("PRG_obfuscate",{new_name:t})},mb:1}),(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Payload Status",buttons:(0,o.createComponentVNode)(2,r.Button,{content:l.armed?"ARMED":"DISARMED",color:l.armed?"bad":"average",onClick:function(){return i("PRG_arm")}})})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,bold:!0,content:"ACTIVATE",textAlign:"center",color:"bad",disabled:!l.armed})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRoboControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosRoboControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.bots,s=d.id_owner,m=d.has_id;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:550,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Robot Control Console",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Id Card",children:[s,!!m&&(0,o.createComponentVNode)(2,a.Button,{ml:2,icon:"eject",content:"Eject",onClick:function(){return l("ejectcard")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Bots in range",children:d.botcount})]})}),null==u?void 0:u.map((function(e){return(0,o.createComponentVNode)(2,i,{robot:e},e.bot_ref)}))]})})};var i=function(e,t){var n=e.robot,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.mules||[],u=!!n.mule_check&&function(e,t){return null==e?void 0:e.find((function(e){return e.mule_ref===t}))}(d,n.bot_ref),s=1===n.mule_check?"rgba(110, 75, 14, 1)":"rgba(74, 59, 140, 1)";return(0,o.createComponentVNode)(2,a.Section,{title:n.name,style:{border:"4px solid "+s},buttons:u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"play",tooltip:"Go to Destination.",onClick:function(){return i("go",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pause",tooltip:"Stop Moving.",onClick:function(){return i("stop",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",tooltip:"Travel Home.",tooltipPosition:"bottom-left",onClick:function(){return i("home",{robot:u.mule_ref})}})],4),children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Model",children:n.model}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:n.locat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:n.mode}),u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Loaded Cargo",children:l.load||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:u.home}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:u.dest||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.power,minValue:0,maxValue:100,ranges:{good:[60,Infinity],average:[20,60],bad:[-Infinity,20]}})})],4)]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"150px",children:[u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Destination",onClick:function(){return i("destination",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set ID",onClick:function(){return i("setid",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Home",onClick:function(){return i("sethome",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Unload Cargo",onClick:function(){return i("unload",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Auto Return",checked:u.autoReturn,onClick:function(){return i("autoret",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Auto Pickup",checked:u.autoPickup,onClick:function(){return i("autopick",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Delivery Report",checked:u.reportDelivery,onClick:function(){return i("report",{robot:u.mule_ref})}})],4),!u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Stop Patrol",onClick:function(){return i("patroloff",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Start Patrol",onClick:function(){return i("patrolon",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Summon",onClick:function(){return i("summon",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Eject PAi",onClick:function(){return i("ejectpai",{robot:n.bot_ref})}})],4)]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosShipping=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosShipping=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:450,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"NTOS Shipping Hub.",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Id",onClick:function(){return i("ejectid")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current User",children:l.current_user||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inserted Card",children:l.card_owner||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available Paper",children:l.has_printer?l.paperamt:"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Profit on Sale",children:[l.barcode_split,"%"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Shipping Options",children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"id-card",tooltip:"The currently ID card will become the current user.",tooltipPosition:"right",disabled:!l.has_id_slot,onClick:function(){return i("selectid")},content:"Set Current ID"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"print",tooltip:"Print a barcode to use on a wrapped package.",tooltipPosition:"right",disabled:!l.has_printer||!l.current_user,onClick:function(){return i("print")},content:"Print Barcode"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"tags",tooltip:"Set how much profit you'd like on your package.",tooltipPosition:"right",onClick:function(){return i("setsplit")},content:"Set Profit Margin"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",content:"Reset ID",onClick:function(){return i("resetid")}})})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosStationAlertConsole=void 0;var o=n(0),r=n(3),a=n(210);t.NtosStationAlertConsole=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:315,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.StationAlertConsoleContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitorContent=t.NtosSupermatterMonitor=void 0;var o=n(0),r=n(14),a=n(30),c=n(9),i=n(2),l=n(1),d=n(36),u=n(3),s=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e,t){return(0,o.createComponentVNode)(2,u.NtosWindow,{width:600,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,u.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,m)})})};var m=function(e,t){var n=(0,i.useBackend)(t),u=n.act,m=n.data,C=m.active,h=m.SM_integrity,N=m.SM_power,V=m.SM_ambienttemp,b=m.SM_ambientpressure;if(!C)return(0,o.createComponentVNode)(2,p);var f=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),g=Math.max.apply(Math,[1].concat(f.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:N,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,c.toFixed)(N)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(V),minValue:0,maxValue:s(1e4),ranges:{teal:[-Infinity,s(80)],good:[s(80),s(373)],average:[s(373),s(1e3)],bad:[s(1e3),Infinity]},children:(0,c.toFixed)(V)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(b),minValue:0,maxValue:s(5e4),ranges:{good:[s(1),s(300)],average:[-Infinity,s(1e3)],bad:[s(1e3),+Infinity]},children:(0,c.toFixed)(b)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return u("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:g,children:(0,c.toFixed)(e.amount,2)+"%"})},e.name)}))})})})]})};t.NtosSupermatterMonitorContent=m;var p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.supermatters,c=void 0===a?[]:a;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return r("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return r("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(0),r=n(6),a=n(2),c=n(1),i=n(3),l=function(e,t){var n=(0,a.useBackend)(t).act;return(0,o.createComponentVNode)(2,c.Box,{width:"185px",children:(0,o.createComponentVNode)(2,c.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,c.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,mb:"6px",content:e,textAlign:"center",fontSize:"40px",lineHeight:1.25,width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return n("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e,t){var n=(0,a.useBackend)(t),r=n.act,d=n.data,u=(d.anchored,d.disk_present,d.status1),s=d.status2;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:442,theme:"retro",children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Box,{m:"6px",children:[(0,o.createComponentVNode)(2,c.Box,{mb:"6px",className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,c.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,c.Box,{className:"NuclearBomb__displayBox",children:s})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{icon:"eject",fontSize:"24px",lineHeight:1,textAlign:"center",width:"43px",ml:"6px",mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,c.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,l)}),(0,o.createComponentVNode)(2,c.Flex.Item,{ml:"6px",width:"129px",children:(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:1.1,mb:"6px",className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:1.1,className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,c.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,c.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}];t.OperatingComputer=function(e,t){var n=(0,r.useSharedState)(t,"tab",1),i=n[0],u=n[1];return(0,o.createComponentVNode)(2,c.Window,{width:350,height:470,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===i,onClick:function(){return u(1)},children:"Patient State"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===i,onClick:function(){return u(2)},children:"Surgery Procedures"})]}),1===i&&(0,o.createComponentVNode)(2,l),2===i&&(0,o.createComponentVNode)(2,d)]})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data),l=c.table,d=c.procedures,u=void 0===d?[]:d,s=c.patient,m=void 0===s?{}:s;return l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",children:m&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:m.is_robotic_organism&&"Toxin"===e.label?"Corruption":e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]})||"No Patient Detected"}),0===u.length&&(0,o.createComponentVNode)(2,a.Section,{children:"No Active Procedures"}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!c.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)}))],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.surgeries,l=void 0===i?[]:i;return(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return c("sync")}}),l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Orbit=void 0;var o=n(0),r=n(19),a=n(63),c=n(2),i=n(1),l=n(3);function d(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nt},h=function(e,t){var n=e.name,o=t.name,r=n.match(m),a=o.match(m);return r&&a&&n.replace(m,"")===o.replace(m,"")?parseInt(r[1],10)-parseInt(a[1],10):C(n,o)},N=function(e,t){var n=(0,c.useBackend)(t).act,r=e.searchText,a=e.source,l=e.title,d=a.filter(p(r));return d.sort(h),a.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:l+" - ("+a.length+")",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{content:e.name.replace(s,""),onClick:function(){return n("orbit",{ref:e.ref})}},e.name)}))})},V=function(e,t){var n=(0,c.useBackend)(t).act,r=e.color,l=e.thing;return(0,o.createComponentVNode)(2,i.Button,{color:r,onClick:function(){return n("orbit",{ref:l.ref})},children:[l.name,l.orbiters&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,ml:1,children:["(",l.orbiters," ",(0,o.createComponentVNode)(2,i.Box,{as:"img",src:(0,a.resolveAsset)("ghost.png"),opacity:.7}),")"]})]})};t.Orbit=function(e,t){for(var n,r=(0,c.useBackend)(t),a=r.act,u=r.data,s=u.alive,m=u.antagonists,b=u.dead,f=u.ghosts,g=u.misc,v=u.npcs,k=(0,c.useLocalState)(t,"searchText",""),x=k[0],B=k[1],_={},w=d(m);!(n=w()).done;){var L=n.value;_[L.antag]===undefined&&(_[L.antag]=[]),_[L.antag].push(L)}var y=Object.entries(_);y.sort((function(e,t){return C(e[0],t[0])}));return(0,o.createComponentVNode)(2,l.Window,{title:"Orbit",width:350,height:700,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Flex,{children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Icon,{name:"search",mr:1})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Input,{placeholder:"Search...",autoFocus:!0,fluid:!0,value:x,onInput:function(e,t){return B(t)},onEnter:function(e,t){return function(e){for(var t=0,n=[y.map((function(e){return e[0],e[1]})),s,f,b,v,g];t0&&(0,o.createComponentVNode)(2,i.Section,{title:"Ghost-Visible Antagonists",children:y.map((function(e){var t=e[0],n=e[1];return(0,o.createComponentVNode)(2,i.Section,{title:t,level:2,children:n.filter(p(x)).sort(h).map((function(e){return(0,o.createComponentVNode)(2,V,{color:"bad",thing:e},e.name)}))},t)}))}),(0,o.createComponentVNode)(2,i.Section,{title:"Alive",children:s.filter(p(x)).sort(h).map((function(e){return(0,o.createComponentVNode)(2,V,{color:"good",thing:e},e.name)}))}),(0,o.createComponentVNode)(2,N,{title:"Ghosts",source:f,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"Dead",source:b,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"NPCs",source:v,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"Misc",source:g,searchText:x})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(0),r=n(19),a=n(1),c=n(2),i=n(3);t.OreBox=function(e,t){var n=(0,c.useBackend)(t),l=n.act,d=n.data.materials;return(0,o.createComponentVNode)(2,i.Window,{width:335,height:415,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Empty",onClick:function(){return l("removeall")}}),children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,a.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(3);t.OreRedemptionMachine=function(e,t){var n=(0,a.useBackend)(t),r=n.act,d=n.data,u=d.unclaimedPoints,s=d.materials,m=d.alloys,p=d.diskDesigns,C=d.hasDisk;return(0,o.createComponentVNode)(2,i.Window,{title:"Ore Redemption Machine",width:440,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),u,(0,o.createComponentVNode)(2,c.Button,{ml:2,content:"Claim",disabled:0===u,onClick:function(){return r("Claim")}})]})]}),(0,o.createComponentVNode)(2,c.Section,{children:C&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{mb:1,children:(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return r("diskEject")}})}),(0,o.createComponentVNode)(2,c.Table,{children:p.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,c.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return r("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,c.Button,{icon:"save",content:"Insert design disk",onClick:function(){return r("diskInsert")}})}),(0,o.createComponentVNode)(2,c.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,c.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,l,{material:e,onRelease:function(t){return r("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,c.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,c.Table,{children:m.map((function(e){return(0,o.createComponentVNode)(2,l,{material:e,onRelease:function(t){return r("Smelt",{id:e.id,sheets:t})}},e.id)}))})})]})})};var l=function(e,t){var n=e.material,i=e.onRelease,l=(0,a.useLocalState)(t,"amount"+n.name,1),d=l[0],u=l[1],s=Math.floor(n.amount);return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(n.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{mr:2,color:"label",inline:!0,children:n.value&&n.value+" cr"})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{mr:2,color:"label",inline:!0,children:[s," sheets"]})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:d,onChange:function(e,t){return u(t)}}),(0,o.createComponentVNode)(2,c.Button,{disabled:s<1,content:"Release",onClick:function(){return i(d)}})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3),l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.has_beaker,d=i.beaker_empty,u=i.has_blood,s=i.blood,m=!l||d;return(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:m,onClick:function(){return r("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"trash",content:"Empty",disabled:m,onClick:function(){return r("empty_beaker")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return r("eject_beaker")}})],4),children:l?d?(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood DNA",children:s&&s.dna||"Unknown"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood Type",children:s&&s.type||"Unknown"})]}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=l;var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.is_ready;return(i.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,c.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,c.Input,{value:e.name,onChange:function(t,n){return r("rename_disease",{index:e.index,name:n})}}):e.name,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"flask",content:"Create culture bottle",disabled:!l,onClick:function(){return r("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,c.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=d;var u=function(e,t){var n=e.symptom,a=n.name,i=n.desc,l=n.stealth,d=n.resistance,u=n.stage_speed,s=n.transmission,m=n.level,p=n.neutered,C=(0,r.map)((function(e,t){return{desc:e,label:t}}))(n.threshold_desc||{});return(0,o.createComponentVNode)(2,c.Section,{title:a,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:2,children:i}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Level",children:m}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Resistance",children:d}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stealth",children:l}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Transmission",children:s})]})})]}),C.length>0&&(0,o.createComponentVNode)(2,c.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.resistances||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Antibodies",children:l.length>0?(0,o.createComponentVNode)(2,c.LabeledList,{children:l.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,c.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!i.is_ready,onClick:function(){return r("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=s;t.Pandemic=function(e,t){var n=(0,a.useBackend)(t).data;return(0,o.createComponentVNode)(2,i.Window,{width:520,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l),!!n.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,s)],4)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PaperSheet=void 0;var o=n(0),r=n(6),a=n(102),c=s(n(613)),i=s(n(614)),l=n(2),d=n(1),u=n(3);function s(e){return e&&e.__esModule?e:{"default":e}}function m(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function p(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}function C(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n]+)>/g,(function(e,t){return"$"+n[t]})))}if("function"==typeof t){var a=this;return o[Symbol.replace].call(this,e,(function(){var e=[];return e.push.apply(e,arguments),"object"!=typeof e[e.length-1]&&e.push(c(e,a)),t.apply(this,e)}))}return o[Symbol.replace].call(this,e,t)},N.apply(this,arguments)}function V(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}function b(e){var t="function"==typeof Map?new Map:undefined;return(b=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return f(e,arguments,k(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),v(o,e)})(e)}function f(e,t,n){return(f=g()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&v(r,n.prototype),r}).apply(null,arguments)}function g(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var x=function(e,t,n,o){return void 0===o&&(o=!1),"'+e+""},B=/\[(_+)\]/g,_=N(/\[\]/gm,{id:2}),w=/%s(?:ign)?(?=\\s|$)/gim,L=function(e,t,n,o,r){var a=e.replace(B,(function(e,a,c,i){var l=function(e,t,n){t=n+"x "+t;var o=document.createElement("canvas").getContext("2d");return o.font=t,o.measureText(e).width}(e,t,n)+"px";return function(e,t,n,o,r,a){return'['+(n=a,r=l,(r?n.replace(/")};return(0,o.createComponentVNode)(2,d.Box,{position:"relative",backgroundColor:i,width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,d.Box,{fillPositionedParent:!0,width:"100%",height:"100%",dangerouslySetInnerHTML:s,p:"10px"}),u.map((function(e,t){return(0,o.createComponentVNode)(2,S,{image:{sprite:e[0],x:e[1],y:e[2],rotate:e[3]}},e[0]+t)}))]})},T=function(e){function t(t,n){var o;return(o=e.call(this,t,n)||this).state={x:0,y:0,rotate:0},o}m(t,e);var n=t.prototype;return n.findStampPosition=function(e){for(var t=event.pageX,n=event.pageY,o={left:e.target.offsetLeft,top:e.target.offsetTop},r=e.target.offsetParent;r;)o.left+=r.offsetLeft,o.top+=r.offsetTop,r=r.offsetParent;var c=[t-o.left,n-o.top],i=(0,a.vecScale)([121,51],.5);return(0,a.vecSubtract)(c,i)},n.componentDidMount=function(){document.onwheel=this.handleWheel.bind(this)},n.handleMouseMove=function(e){var t=this.findStampPosition(e);y(e),this.setState({x:t[0],y:t[1]})},n.handleMouseClick=function(e){var t=this.findStampPosition(e),n=(0,l.useBackend)(this.context),o=n.act,r=n.data;o("stamp",{x:t[0],y:t[1],r:this.state.rotate,stamp_class:this.props.stamp_class,stamp_icon_state:r.stamp_icon_state}),this.setState({x:t[0],y:t[1]})},n.handleWheel=function(e){var t=e.deltaY>0?15:-15;if(e.deltaY<0&&0===this.state.rotate)this.setState({rotate:360+t});else if(e.deltaY>0&&360===this.state.rotate)this.setState({rotate:t});else{var n={rotate:t+this.state.rotate};this.setState((function(){return n}))}y(e)},n.render=function(){var e=this.props,t=e.value,n=e.stamp_class,r=e.stamps,a=p(e,["value","stamp_class","stamps"]),c=r||[],i={sprite:n,x:this.state.x,y:this.state.y,rotate:this.state.rotate};return(0,o.normalizeProps)((0,o.createComponentVNode)(2,d.Box,Object.assign({onClick:this.handleMouseClick.bind(this),onMouseMove:this.handleMouseMove.bind(this),onwheel:this.handleWheel.bind(this)},a,{children:[(0,o.createComponentVNode)(2,I,{readOnly:!0,value:t,stamps:c}),(0,o.createComponentVNode)(2,S,{opacity:.5,image:i})]})))},t}(o.Component),A=function(e){function t(t,n){var o;return(o=e.call(this,t,n)||this).state={previewSelected:"Preview",old_text:t.value||"",textarea_text:"",combined_text:t.value||""},o}m(t,e);var n=t.prototype;return n.createPreview=function(e,t){void 0===t&&(t=!1);var n,o,r=(0,l.useBackend)(this.context).data,a=r.text,d=r.pen_color,u=r.pen_font,s=r.is_crayon,m=r.field_counter,p=r.edit_usr,h={text:a};if((e=e.trim()).length>0){var N=function(e){return c["default"].sanitize(e,{FORBID_ATTR:["class","style"],ALLOWED_TAGS:["br","code","li","p","pre","span","table","td","tr","th","ul","ol","menu","font","b","center","table","tr","th"]})}(e+="\n"===e[e.length]?" \n":"\n \n"),V=(n=d,o=p,N.replace(w,(function(){return x(o,"Times New Roman",n,!0)}))),b=L(V,u,12,d,m),f=function(e){return(0,i["default"])(e,{breaks:!0,smartypants:!0,smartLists:!0,walkTokens:function(e){switch(e.type){case"url":case"autolink":case"reflink":case"link":case"image":e.type="text",e.href=""}},baseUrl:"thisshouldbreakhttp"})}(b.text),g=x(f,u,d,s);h.text+=g,h.field_counter=b.counter}if(t){var v=function(e,t,n,o,r){var a;void 0===r&&(r=!1);for(var i={},l=[];null!==(a=_.exec(e));){var d=a[0],u=a.groups.id;if(u){var s=document.getElementById(u);if(0===(s&&s.value?s.value:"").length)continue;var m=c["default"].sanitize(s.value.trim(),{ALLOWED_TAGS:[]});if(0===m.length)continue;var p=s.cloneNode(!0);m.match(w)?(p.style.fontFamily="Times New Roman",r=!0,p.defaultValue=o):(p.style.fontFamily=t,p.defaultValue=m),r&&(p.style.fontWeight="bold"),p.style.color=n,p.disabled=!0;var h=document.createElement("div");h.appendChild(p),i[u]=m,l.push({value:"["+h.innerHTML+"]",raw_text:d})}}if(l.length>0)for(var N,V=C(l);!(N=V()).done;){var b=N.value;e=e.replace(b.raw_text,b.value)}return{text:e,fields:i}}(h.text,u,d,p,s);h.text=v.text,h.form_fields=v.fields}return h},n.onInputHandler=function(e,t){var n=this;if(t!==this.state.textarea_text){var o=this.state.old_text.length+this.state.textarea_text.length;if(o>5e3&&(t=o-5e3>=t.length?"":t.substr(0,t.length-(o-5e3)))===this.state.textarea_text)return;this.setState((function(){return{textarea_text:t,combined_text:n.createPreview(t)}}))}},n.finalUpdate=function(e){var t=(0,l.useBackend)(this.context).act,n=this.createPreview(e,!0);t("save",n),this.setState((function(){return{textarea_text:"",previewSelected:"save",combined_text:n.text}}))},n.render=function(){var e=this,t=this.props,n=(t.value,t.textColor),r=t.fontFamily,a=t.stamps,c=t.backgroundColor;return p(t,["value","textColor","fontFamily","stamps","backgroundColor"]),(0,o.createComponentVNode)(2,d.Flex,{direction:"column",fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,d.Flex.Item,{children:(0,o.createComponentVNode)(2,d.Tabs,{children:[(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"Edit"===this.state.previewSelected?"grey":"white",selected:"Edit"===this.state.previewSelected,onClick:function(){return e.setState({previewSelected:"Edit"})},children:"Edit"},"marked_edit"),(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"Preview"===this.state.previewSelected?"grey":"white",selected:"Preview"===this.state.previewSelected,onClick:function(){return e.setState((function(){return{previewSelected:"Preview",textarea_text:e.state.textarea_text,combined_text:e.createPreview(e.state.textarea_text).text}}))},children:"Preview"},"marked_preview"),(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"confirm"===this.state.previewSelected?"red":"save"===this.state.previewSelected?"grey":"white",selected:"confirm"===this.state.previewSelected||"save"===this.state.previewSelected,onClick:function(){"confirm"===e.state.previewSelected?e.finalUpdate(e.state.textarea_text):"Edit"===e.state.previewSelected?e.setState((function(){return{previewSelected:"confirm",textarea_text:e.state.textarea_text,combined_text:e.createPreview(e.state.textarea_text).text}})):e.setState({previewSelected:"confirm"})},children:"confirm"===this.state.previewSelected?"confirm":"save"},"marked_done")]})}),(0,o.createComponentVNode)(2,d.Flex.Item,{grow:1,basis:1,children:"Edit"===this.state.previewSelected&&(0,o.createComponentVNode)(2,d.TextArea,{value:this.state.textarea_text,textColor:n,fontFamily:r,height:window.innerHeight-80+"px",backgroundColor:c,onInput:this.onInputHandler.bind(this)})||(0,o.createComponentVNode)(2,I,{value:this.state.combined_text,stamps:a,fontFamily:r,textColor:n})})]})},t}(o.Component);t.PaperSheet=function(e,t){var n=(0,l.useBackend)(t).data,r=n.edit_mode,a=n.text,c=n.paper_color,i=n.pen_color,s=void 0===i?"black":i,m=n.pen_font,p=void 0===m?"Verdana":m,C=n.stamps,h=n.stamp_class,N=(n.stamped,c&&"white"!==c?c:"#FFFFFF"),V=C&&null!==C?C:[];return(0,o.createComponentVNode)(2,u.Window,{theme:"paper",width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,d.Box,{fillPositionedParent:!0,backgroundColor:N,children:function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,I,{value:a,stamps:V,readOnly:!0});case 1:return(0,o.createComponentVNode)(2,A,{value:a,textColor:s,fontFamily:p,stamps:V,backgroundColor:N});case 2:return(0,o.createComponentVNode)(2,T,{value:a,stamps:V,stamp_class:h});default:return"ERROR ERROR WE CANNOT BE HERE!!"}}(r)})})})}},,,function(e,t,n){"use strict";t.__esModule=!0,t.ParticleAccelerator=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ParticleAccelerator=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.assembled,u=l.power,s=l.strength;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:185,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Run Scan",onClick:function(){return i("scan")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"good":"bad",children:d?"Ready - All parts in place":"Unable to detect all parts"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Particle Accelerator Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,disabled:!d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Particle Strength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:!d,onClick:function(){return i("remove_strength")}})," ",String(s).padStart(1,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:!d,onClick:function(){return i("add_strength")}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);function i(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n50?"good":d>15&&"average")||"bad";return(0,o.createComponentVNode)(2,c.Window,{width:450,height:340,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!l.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!l.ready_to_boot,children:l.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:l.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:u,children:l.sheets}),l.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:l.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:l.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):l.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:l.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:l.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:l.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!l.connected&&"bad",children:l.connected?l.power_available:"Unconnected"})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PortablePump=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(211);t.PortablePump=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.direction,s=(d.holding,d.target_pressure),m=d.default_pressure,p=d.min_pressure,C=d.max_pressure;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:315,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,i.PortableBasicInfo),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-in-alt":"sign-out-alt",content:u?"In":"Out",selected:u,onClick:function(){return l("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,unit:"kPa",width:"75px",minValue:p,maxValue:C,step:10,onChange:function(e,t){return l("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:s===p,onClick:function(){return l("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:s===m,onClick:function(){return l("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:s===C,onClick:function(){return l("pressure",{pressure:"max"})}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=void 0;var o=n(0),r=n(2),a=n(1),c=n(36),i=n(3),l=n(211);t.PortableScrubber=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data.filter_types||[];return(0,o.createComponentVNode)(2,i.Window,{width:320,height:350,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,l.PortableBasicInfo),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,c.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return d("toggle_filter",{val:e.gas_id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableTurret=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.PortableTurret=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.silicon_user,u=l.locked,s=l.on,m=l.check_weapons,p=l.neutralize_criminals,C=l.neutralize_all,h=l.neutralize_unidentified,N=l.neutralize_nonmindshielded,V=l.neutralize_cyborgs,b=l.neutralize_heads,f=l.manual_control,g=l.allow_manual_control,v=l.lasertag_turret;return(0,o.createComponentVNode)(2,c.Window,{width:310,height:v?110:292,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe an ID card to ",u?"unlock":"lock"," this interface."]}),(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:!v&&(!!g||!!f&&!!d)&&(0,o.createComponentVNode)(2,a.Button,{icon:f?"wifi":"terminal",content:f?"Remotely Controlled":"Manual Control",disabled:f,color:"bad",onClick:function(){return i("manual")}}),children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"power-off":"times",content:s?"On":"Off",selected:s,disabled:u,onClick:function(){return i("power")}})})})}),!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Target Settings",buttons:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:!b,content:"Ignore Command",disabled:u,onClick:function(){return i("shootheads")}}),children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:C,content:"Non-Security and Non-Command",disabled:u,onClick:function(){return i("shootall")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:m,content:"Unauthorized Weapons",disabled:u,onClick:function(){return i("authweapon")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:h,content:"Unidentified Life Signs",disabled:u,onClick:function(){return i("checkxenos")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:N,content:"Non-Mindshielded",disabled:u,onClick:function(){return i("checkloyal")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:p,content:"Wanted Criminals",disabled:u,onClick:function(){return i("shootcriminals")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:V,content:"Cyborgs",disabled:u,onClick:function(){return i("shootborgs")}})]})],0)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ProbingConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ProbingConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.open,u=l.feedback,s=l.occupant,m=l.occupant_name,p=l.occupant_status;return(0,o.createComponentVNode)(2,c.Window,{width:330,height:207,theme:"abductor",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Machine Report",children:u})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"sign-out-alt":"sign-in-alt",content:d?"Close":"Open",onClick:function(){return i("door")}}),children:s&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:3===p?"bad":2===p?"average":"good",children:3===p?"Deceased":2===p?"Unconscious":"Conscious"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Experiments",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer",content:"Probe",onClick:function(){return i("experiment",{experiment_type:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"brain",content:"Dissect",onClick:function(){return i("experiment",{experiment_type:2})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"search",content:"Analyze",onClick:function(){return i("experiment",{experiment_type:3})}})]})]})||(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Subject"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ProximitySensor=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ProximitySensor=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.minutes,u=l.seconds,s=l.timing,m=l.scanning,p=l.sensitivity;return(0,o.createComponentVNode)(2,c.Window,{width:250,height:185,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"lock":"unlock",content:m?"Armed":"Not Armed",selected:m,onClick:function(){return i("scanning")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Detection Range",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:m,onClick:function(){return i("sense",{range:-1})}})," ",String(p).padStart(1,"1")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:m,onClick:function(){return i("sense",{range:1})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Auto Arm",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:s?"Stop":"Start",selected:s,disabled:m,onClick:function(){return i("time")}}),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:m||s,onClick:function(){return i("input",{adjust:-30})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:m||s,onClick:function(){return i("input",{adjust:-1})}})," ",String(d).padStart(2,"0"),":",String(u).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:m||s,onClick:function(){return i("input",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:m||s,onClick:function(){return i("input",{adjust:30})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(0),r=n(14),a=n(9),c=n(2),i=n(1),l=n(36),d=n(3);t.Radio=function(e,t){var n=(0,c.useBackend)(t),u=n.act,s=n.data,m=s.freqlock,p=s.frequency,C=s.minFrequency,h=s.maxFrequency,N=s.listening,V=s.broadcasting,b=s.command,f=s.useCommand,g=s.subspace,v=s.subspaceSwitchable,k=l.RADIO_CHANNELS.find((function(e){return e.freq===p})),x=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(s.channels),B=106;return g&&(x.length>0?B+=21*x.length+6:B+=24),(0,o.createComponentVNode)(2,d.Window,{width:360,height:B,children:(0,o.createComponentVNode)(2,d.Window.Content,{children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Frequency",children:[m&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(p/10,1)+" kHz"})||(0,o.createComponentVNode)(2,i.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:C/10,maxValue:h/10,value:p/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return u("frequency",{adjust:t-p/10})}}),k&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:k.color,ml:2,children:["[",k.name,"]"]})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,i.Button,{textAlign:"center",width:"37px",icon:N?"volume-up":"volume-mute",selected:N,onClick:function(){return u("listen")}}),(0,o.createComponentVNode)(2,i.Button,{textAlign:"center",width:"37px",icon:V?"microphone":"microphone-slash",selected:V,onClick:function(){return u("broadcast")}}),!!b&&(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:"bullhorn",selected:f,content:"High volume "+(f?"ON":"OFF"),onClick:function(){return u("command")}}),!!v&&(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:"bullhorn",selected:g,content:"Subspace Tx "+(g?"ON":"OFF"),onClick:function(){return u("subspace")}})]}),!!g&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Channels",children:[0===x.length&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),x.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,i.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return u("channel",{channel:e.name})}})},e.name)}))]})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RadioactiveMicrolaser=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.RadioactiveMicrolaser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.irradiate,u=l.stealth,s=l.scanmode,m=l.intensity,p=l.wavelength,C=l.on_cooldown,h=l.cooldown;return(0,o.createComponentVNode)(2,c.Window,{title:"Radioactive Microlaser",width:320,height:335,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Status",children:(0,o.createComponentVNode)(2,a.Box,{color:C?"average":"good",children:C?"Recharging":"Ready"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Irradiation",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return i("irradiate")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stealth Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"eye-slash":"eye",content:u?"On":"Off",disabled:!d,selected:u,onClick:function(){return i("stealth")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"mortar-pestle":"heartbeat",content:s?"Scan Reagents":"Scan Health",disabled:d&&u,onClick:function(){return i("scanmode")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laser Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Intensity",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return i("radintensity",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return i("radintensity",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(m),width:"40px",minValue:1,maxValue:20,onChange:function(e,t){return i("radintensity",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return i("radintensity",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return i("radintensity",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Wavelength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return i("radwavelength",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return i("radwavelength",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(p),width:"40px",minValue:0,maxValue:120,onChange:function(e,t){return i("radwavelength",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return i("radwavelength",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return i("radwavelength",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Cooldown",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:h})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(0),r=n(6),a=n(2),c=n(1),i=n(3),l=["Atmospherics","Disposals","Transit Tubes"],d={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},s=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e,t){var n=(0,a.useBackend)(t),m=n.act,p=n.data,C=p.category,h=p.categories,N=void 0===h?[]:h,V=p.selected_color,b=p.piping_layer,f=p.mode,g=p.preview_rows.flatMap((function(e){return e.previews})),v=(0,a.useLocalState)(t,"categoryName"),k=v[0],x=v[1],B=N.find((function(e){return e.cat_name===k}))||N[0];return(0,o.createComponentVNode)(2,i.Window,{width:425,height:515,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Category",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,c.Button,{selected:C===t,icon:d[e],color:"transparent",content:e,onClick:function(){return m("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Modes",children:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{checked:f&e.bitmask,content:e.name,onClick:function(){return m("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,width:"64px",color:u[V],children:V}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,c.ColorBox,{ml:1,color:u[e],onClick:function(){return m("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,c.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,c.Section,{children:[0===C&&(0,o.createComponentVNode)(2,c.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{fluid:!0,checked:e===b,content:"Layer "+e,onClick:function(){return m("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,c.Box,{width:"108px",children:g.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return m("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,c.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Tabs,{children:N.map((function(e,t){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{fluid:!0,icon:d[e.cat_name],selected:e.cat_name===B.cat_name,onClick:function(){return x(e.cat_name)},children:e.cat_name},e.cat_name)}))}),null==B?void 0:B.recipes.map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:e.selected,content:e.pipe_name,title:e.pipe_name,onClick:function(){return m("pipe_type",{pipe_type:e.pipe_index,category:B.cat_name})}},e.pipe_index)}))]})})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RemoteRobotControlContent=t.RemoteRobotControl=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(3);t.RemoteRobotControl=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{title:"Remote Robot Control",width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.robots,d=void 0===l?[]:l;return d.length?d.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name+" ("+e.model+")",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"tools",content:"Interface",onClick:function(){return i("interface",{ref:e.ref})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"phone-alt",content:"Call",onClick:function(){return i("callbot",{ref:e.ref})}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"Inactive"===(0,r.decodeHtmlEntities)(e.mode)?"bad":"Idle"===(0,r.decodeHtmlEntities)(e.mode)?"average":"good",children:(0,r.decodeHtmlEntities)(e.mode)})," ",e.hacked&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"(HACKED)"})||""]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Location",children:e.location})]})},e.ref)})):(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.NoticeBox,{textAlign:"center",children:"No robots detected"})})};t.RemoteRobotControlContent=l},function(e,t,n){"use strict";t.__esModule=!0,t.RoboticsControlConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.RoboticsControlConsole=function(e,t){var n=(0,r.useBackend)(t),d=(n.act,n.data),u=(0,r.useSharedState)(t,"tab",1),s=u[0],m=u[1],p=d.can_hack,C=d.can_convert,h=d.cyborgs,N=void 0===h?[]:h,V=d.drones,b=void 0===V?[]:V;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:460,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:1===s,onClick:function(){return m(1)},children:["Cyborgs (",N.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:2===s,onClick:function(){return m(2)},children:["Drones (",b.length,")"]})]}),1===s&&(0,o.createComponentVNode)(2,i,{cyborgs:N,can_hack:p,can_convert:C}),2===s&&(0,o.createComponentVNode)(2,l,{drones:b})]})})};var i=function(e,t){var n=e.cyborgs,c=e.can_hack,i=e.can_convert,l=(0,r.useBackend)(t),d=l.act;l.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([!!c&&!e.emagged&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return d("magbot",{ref:e.ref})}}),!!i&&!e.servant&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Convert",color:"bad",onClick:function(){return d("convert",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",onClick:function(){return d("stopbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return d("killbot",{ref:e.ref})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:(0,o.createComponentVNode)(2,a.Box,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.ref)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected within access parameters"})},l=function(e,t){var n=e.drones,c=(0,r.useBackend)(t).act;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return c("killdrone",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":"good",children:e.status?"Not Responding":"Nominal"})})})},e.ref)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No drone units detected within access parameters"})}},function(e,t,n){"use strict";t.__esModule=!0,t.Roulette=t.RouletteBetTable=t.RouletteBoard=t.RouletteNumberButton=void 0;var o=n(0),r=n(6),a=n(2),c=n(1),i=n(3),l=function(e){if(0===e)return"green";for(var t=[[1,10],[19,28]],n=!0,o=0;o=r[0]&&e<=r[1]){n=!1;break}}var a=e%2==0;return(n?a:!a)?"red":"black"},d=function(e,t){var n=e.number,r=(0,a.useBackend)(t).act;return(0,o.createComponentVNode)(2,c.Button,{bold:!0,content:n,color:l(n),width:"40px",height:"28px",fontSize:"20px",textAlign:"center",mb:0,className:"Roulette__board-extrabutton",onClick:function(){return r("ChangeBetType",{type:n})}})};t.RouletteNumberButton=d;var u=function(e,t){var n=(0,a.useBackend)(t).act;return(0,o.createVNode)(1,"table","Table",[(0,o.createVNode)(1,"tr","Roulette__board-row",[(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{content:"0",color:"transparent",height:"88px",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:0})}}),2,{rowSpan:"3"}),[3,6,9,12,15,18,21,24,27,30,33,36].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s3rd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[2,5,8,11,14,17,20,23,26,29,32,35].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s2nd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[1,4,7,10,13,16,19,22,25,28,31,34].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1st col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"1st 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-12"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2nd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s13-24"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"3rd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s25-36"})}}),2,{colSpan:"4"})],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"1-18",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-18"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Even",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"even"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Black",color:"black",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"black"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Red",color:"red",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"red"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Odd",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"odd"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"19-36",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s19-36"})}}),2,{colSpan:"2"})],4)],4,{style:{width:"1px"}})};t.RouletteBoard=u;var s=function(e,t){var n=(0,a.useBackend)(t),i=n.act,d=n.data,u=(0,a.useLocalState)(t,"customBet",500),s=u[0],m=u[1],p=d.BetType;return p.startsWith("s")&&(p=p.substring(1,p.length)),(0,o.createVNode)(1,"table","Roulette__lowertable",[(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Last Spun:",16),(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Current Bet:",16)],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--spinresult","Roulette__lowertable--spinresult-"+l(d.LastSpin)]),d.LastSpin,0),(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--betscell"]),[(0,o.createComponentVNode)(2,c.Box,{bold:!0,mt:1,mb:1,fontSize:"25px",textAlign:"center",children:[d.BetAmount," cr on ",p]}),(0,o.createComponentVNode)(2,c.Box,{ml:1,mr:1,children:[(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 10 cr",onClick:function(){return i("ChangeBetAmount",{amount:10})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 50 cr",onClick:function(){return i("ChangeBetAmount",{amount:50})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 100 cr",onClick:function(){return i("ChangeBetAmount",{amount:100})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 500 cr",onClick:function(){return i("ChangeBetAmount",{amount:500})}}),(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet custom amount...",onClick:function(){return i("ChangeBetAmount",{amount:s})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{size:.1,children:(0,o.createComponentVNode)(2,c.NumberInput,{value:s,minValue:0,maxValue:1e3,step:10,stepPixelSize:4,width:"40px",onChange:function(e,t){return m(t)}})})]})]})],4)],4),(0,o.createVNode)(1,"tr",null,(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Box,{bold:!0,m:1,fontSize:"14px",textAlign:"center",children:"Swipe an ID card with a connected account to spin!"}),2,{colSpan:"2"}),2),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","Roulette__lowertable--cell",[(0,o.createComponentVNode)(2,c.Box,{inline:!0,bold:!0,mr:1,children:"House Balance:"}),(0,o.createComponentVNode)(2,c.Box,{inline:!0,children:d.HouseBalance?d.HouseBalance+" cr":"None"})],4),(0,o.createVNode)(1,"td","Roulette__lowertable--cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:d.IsAnchored?"Bolted":"Unbolted",m:1,color:"transparent",textAlign:"center",onClick:function(){return i("anchor")}}),2)],4)],4)};t.RouletteBetTable=s;t.Roulette=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:603,height:475,theme:"cardtable",children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(198),i=n(3);t.SatelliteControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.satellites||[];return(0,o.createComponentVNode)(2,i.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[d.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.meteor_shield_coverage/d.meteor_shield_coverage_max,content:100*d.meteor_shield_coverage/d.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return l("toggle",{id:e.id})}},e.id)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(0),r=n(2),a=n(1),c=n(64),i=n(3),l=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],d=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e,t){var n=(0,r.useBackend)(t),a=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:400,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{onLockedStatusChange:function(){return a("toggle_lock")}}),!l.locked&&(0,o.createComponentVNode)(2,m)]})})};var s={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return C}},Guns:{title:"Scanner Mode: Guns",component:function(){return h}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return N}},Disease:{title:"Scanner Mode: Disease",component:function(){return V}},Species:{title:"Scanner Mode: Species",component:function(){return b}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return f}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return g}}},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.scan_mode,l=s[i]||s.off,d=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==i&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return c("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,d)})},p=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return n("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return n("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return n("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return n("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return n("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return n("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return n("set_mode",{new_mode:"Nanites"})}})]})],4)},C=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,v)],4)},h=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,v)],4)},N=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,v)],4)},V=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.reverse,u=i.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",d?"does not have":"has"," ","a disease equal or worse than ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===u,content:e,onClick:function(){return c("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,v)],4)},b=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,u=i.target_species,s=d.find((function(e){return e.value===u}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",l?"not":""," ","of the ",s.name," species.","zombie"===u&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===u,content:e.name,onClick:function(){return c("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,v)],4)},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,d=i.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return c("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,v)],4)},g=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,d=i.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return c("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,v)],4)},v=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return c("toggle_reverse")},color:i?"bad":"good"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SeedExtractor=void 0;var o=n(0),r=n(14),a=n(30),c=n(19),i=n(2),l=n(1),d=n(3);t.SeedExtractor=function(e,t){var n,u,s=(0,i.useBackend)(t),m=s.act,p=s.data,C=(n=p.seeds,u=Object.keys(n).map((function(e){var t=function(e){var t,n=/([^;=]+)=([^;]+)/g,o={};do{(t=n.exec(e))&&(o[t[1]]=t[2]+"")}while(t);return o}(e);return t.amount=n[e],t.key=e,t.name=(0,c.toTitleCase)(t.name.replace("pack of ","")),t})),(0,a.flow)([(0,r.sortBy)((function(e){return e.name}))])(u));return(0,o.createComponentVNode)(2,d.Window,{width:1e3,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Stored seeds:",children:(0,o.createComponentVNode)(2,l.Table,{cellpadding:"3",textAlign:"center",children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Lifespan"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Endurance"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Maturation"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Production"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Yield"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Potency"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Instability"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Stock"})]}),C.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.lifespan}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.endurance}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.maturation}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.production}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.yield}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.potency}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.instability}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:[(0,o.createComponentVNode)(2,l.Button,{content:"Vend",onClick:function(){return m("select",{item:e.key})}}),"(",e.amount," left)"]})]},e.key)}))]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.authorization_required;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:230,children:[!!l&&(0,o.createComponentVNode)(2,a.Modal,{ml:1,mt:1,width:26,height:12,fontSize:"28px",fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mt:2,children:(0,o.createComponentVNode)(2,a.Icon,{name:"minus-circle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mt:2,ml:2,color:"bad",children:"SHUTTLE LOCKED"})]}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",mt:4,children:(0,o.createComponentVNode)(2,a.Button,{lineHeight:"40px",icon:"arrow-circle-right",content:"Request Authorization",color:"bad",onClick:function(){return i("request")}})})]}),(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,d)})]})};var i=function(e,t){var n;return null==e||null==(n=e.find((function(e){return e.id===t})))?void 0:n.name},l=function(e,t){var n;return null==e||null==(n=e.find((function(e){return e.name===t})))?void 0:n.id},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data,u=d.status,s=d.locked,m=d.authorization_required,p=d.destination,C=d.docked_location,h=d.timer_str,N=d.locations,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"26px",textAlign:"center",fontFamily:"monospace",children:h||"00:00"}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",fontSize:"14px",mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:"STATUS:"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"In Transit"===u?"good":"Idle"===u||"Igniting"===u?"average":"bad",ml:1,children:u||"Not Available"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Shuttle Controls",level:2,children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:C||"Not Available"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:0===V.length&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Available"})||1===V.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:i(V,p)})||(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,width:"240px",options:V.map((function(e){return e.name})),disabled:s||m,selected:i(V,p)||"Select a Destination",onSelected:function(e){return c("set_destination",{destination:l(V,e)})}})})]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Depart",disabled:!i(V,p)||s||m,mt:1.5,icon:"arrow-up",textAlign:"center",onClick:function(){return c("move",{shuttle_id:p})}})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulatorModification=t.ShuttleManipulatorTemplates=t.ShuttleManipulatorStatus=t.ShuttleManipulator=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3);t.ShuttleManipulator=function(e,t){var n=(0,a.useLocalState)(t,"tab",1),r=n[0],s=n[1];return(0,o.createComponentVNode)(2,i.Window,{title:"Shuttle Manipulator",width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===r,onClick:function(){return s(1)},children:"Status"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:2===r,onClick:function(){return s(2)},children:"Templates"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:3===r,onClick:function(){return s(3)},children:"Modification"})]}),1===r&&(0,o.createComponentVNode)(2,l),2===r&&(0,o.createComponentVNode)(2,d),3===r&&(0,o.createComponentVNode)(2,u)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.shuttles||[];return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Table,{children:i.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{content:"JMP",onClick:function(){return r("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return r("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,c.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return r("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})};t.ShuttleManipulatorStatus=l;var d=function(e,t){var n,i=(0,a.useBackend)(t),l=i.act,d=i.data,u=d.templates||{},s=d.selected||{},m=(0,a.useLocalState)(t,"templateId",Object.keys(u)[0]),p=m[0],C=m[1],h=null==(n=u[p])?void 0:n.templates;return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:p===t,onClick:function(){return C(t)},children:e.port_id},t)}))(u)})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:h.map((function(e){var t=e.shuttle_id===s.shuttle_id;return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return l("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,c.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))})]})})};t.ShuttleManipulatorTemplates=d;var u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.selected||{},d=i.existing_shuttle||{};return(0,o.createComponentVNode)(2,c.Section,{children:l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{level:2,title:l.name,children:(!!l.description||!!l.admin_notes)&&(0,o.createComponentVNode)(2,c.LabeledList,{children:[!!l.description&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:l.description}),!!l.admin_notes&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Admin Notes",children:l.admin_notes})]})}),d?(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Existing Shuttle: "+d.name,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,c.Button,{content:"Jump To",onClick:function(){return r("jump_to",{type:"mobile",id:d.id})}}),children:[d.status,!!d.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),d.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,c.Button,{content:"Preview",onClick:function(){return r("preview",{shuttle_id:l.shuttle_id})}}),(0,o.createComponentVNode)(2,c.Button,{content:"Load",color:"bad",onClick:function(){return r("load",{shuttle_id:l.shuttle_id})}})]})],0):"No shuttle selected"})};t.ShuttleManipulatorModification=u},function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.Signaler=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.code,s=d.frequency,m=d.minFrequency,p=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{width:280,height:132,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:m/10,maxValue:p/10,value:s/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onDrag:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,c.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:u,width:"80px",onDrag:function(e,t){return l("code",{code:t})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,c.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return l("signal")}})})})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SkillPanel=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i={color:"lightgreen",fontWeight:"bold"},l={color:"#FFDB58",fontWeight:"bold"};t.SkillPanel=function(e,t){var n=(0,r.useBackend)(t),u=n.act,s=n.data,m=s.skills||[];return(0,o.createComponentVNode)(2,c.Window,{title:"Manage Skills",width:600,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:m.playername,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[(0,o.createVNode)(1,"span",null,e.desc,0,{style:l}),(0,o.createVNode)(1,"br"),!!e.level_based&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d,{skill_lvl_num:e.lvl_base_num,skill_lvl:e.lvl_base}),(0,o.createVNode)(1,"br")],4),"Total Experience: [",e.value_base," XP]",(0,o.createVNode)(1,"br"),"XP To Next Level:",e.level_based?(0,o.createVNode)(1,"span",null,e.xp_next_lvl_base,0):(0,o.createVNode)(1,"span",null,"[MAXXED]",16,{style:i}),(0,o.createVNode)(1,"br"),e.base_readout,(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.percent_base,color:"good"}),(0,o.createVNode)(1,"br"),!!s.admin&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Adjust Exp",onClick:function(){return u("adj_exp",{skill:e.path})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Set Exp",onClick:function(){return u("set_exp",{skill:e.path})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Set Level",onClick:function(){return u("set_lvl",{skill:e.path})}}),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"br")],4)]},e.name)}))})})})})};var d=function(e){var t=e.skill_lvl_num,n=e.skill_lvl;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:["Level: [",(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,textColor:"hsl("+50*t+", 50%, 50%)",children:n}),"]"]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SkillStation=t.TimeFormat=t.ImplantedSkillchips=t.InsertedSkillchip=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(9),l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.skillchip_ready,d=i.slot_use,u=i.slots_used,s=i.slots_max,m=i.implantable_reason,p=i.implantable,C=i.complexity,h=i.skill_name,N=i.skill_desc,V=i.skill_icon,b=i.working;return l?(0,o.createComponentVNode)(2,a.Section,{title:"Inserted Skillchip",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"syringe",disabled:!p||!!b,color:p?"good":"default",onClick:function(){return c("implant")},content:"Implant",tooltip:m}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!!b,onClick:function(){return c("eject")},content:"Eject"})],4),children:(0,o.createComponentVNode)(2,a.Flex,{spacing:2,height:"100%",width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{height:"100%",align:"center",children:(0,o.createComponentVNode)(2,a.Icon,{size:3,name:V})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"100%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Skillchip",children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:N})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Complexity",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"brain",width:"15px",textAlign:"center"})," ",C]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Slot Size",children:(0,o.createComponentVNode)(2,a.Box,{color:u+d>s&&"red",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"save",width:"15px",textAlign:"center"})," ",d]})}),!!m&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Error",color:p?"good":"bad",children:m})]})})]})}):!b&&(0,o.createComponentVNode)(2,a.NoticeBox,{info:!0,children:"Please insert a skillchip."})};t.InsertedSkillchip=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.slots_used,d=i.slots_max,u=i.complexity_used,s=i.complexity_max,m=i.working,p=i.current||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Implanted Skillchips",children:[!p.length&&"No skillchips detected.",!!p.length&&(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Chip"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"brain",tooltip:"Complexity",tooltipPosition:"top",content:u+"/"+s})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"save",tooltip:"Slot Size",tooltipPosition:"top",content:l+"/"+d})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"check",tooltip:"Is Active",tooltipPosition:"top"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"hourglass-half",tooltip:"Cooldown",tooltipPosition:"top"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"tasks",tooltip:"Actions",tooltipPosition:"top"})})]}),p.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Icon,{textAlign:"center",width:"18px",mr:1,name:e.icon}),e.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:(!e.active?e.complexity+u>s&&"bad":"good")||"grey",textAlign:"center",children:e.complexity}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"good",textAlign:"center",children:e.slot_use}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Icon,{name:e.active?"check":"times",color:e.active?"good":"bad"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.cooldown>0&&Math.ceil(e.cooldown/10)+"s"||"0s"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("remove",{ref:e.ref})},icon:e.removable?"eject":"trash",color:e.removable?"good":"bad",tooltip:e.removable?"Extract":"Destroy",tooltipPosition:"left",disabled:e.cooldown||m}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("toggle_activate",{ref:e.ref})},icon:e.active?"check-square-o":"square-o",color:e.active?"good":"default",tooltip:!!e.active_error&&!e.active&&e.active_error||e.active&&"Deactivate"||"Activate",tooltipPosition:"left",disabled:e.cooldown||m||!e.active&&e.complexity+u>s})]})]},e.ref)}))]})]})};t.ImplantedSkillchips=d;var u=function(e,t){var n=e.value,o=(0,i.toFixed)(Math.floor(n/10%60)).padStart(2,"0"),r=(0,i.toFixed)(Math.floor(n/600%60)).padStart(2,"0");return(0,i.toFixed)(Math.floor(n/36e3%24)).padStart(2,"0")+":"+r+":"+o};t.TimeFormat=u;t.SkillStation=function(e,t){var n=(0,r.useBackend)(t).data,i=n.working,s=n.timeleft,m=n.error;return(0,o.createComponentVNode)(2,c.Window,{title:"Skillsoft Station",width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:m}),!!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mb:.5,children:"Operation in progress. Please do not leave the chamber."}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["Time Left: ",(0,o.createComponentVNode)(2,u,{value:s})]})]})}),(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,d)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Oxygen",type:"oxyLoss"}];t.Sleeper=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.open,s=d.occupant,m=void 0===s?{}:s,p=d.occupied,C=(d.chems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,c.Window,{width:310,height:465,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:m.name?m.name:"No Occupant",minHeight:"210px",buttons:!!m.stat&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:m.statstate,children:m.stat}),children:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,ranges:{good:[50,Infinity],average:[0,50],bad:[-Infinity,0]}}),(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:m.is_robotic_organism&&"Toxin"===e.label?"Corruption":e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type],minValue:0,maxValue:m.maxHealth,color:"bad"})},e.type)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cells",color:m.cloneLoss?"bad":"good",children:m.cloneLoss?"Damaged":"Healthy"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain",color:m.brainLoss?"bad":"good",children:m.brainLoss?"Abnormal":"Healthy"})]})],4)}),(0,o.createComponentVNode)(2,a.Section,{title:"Medicines",minHeight:"205px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"door-open":"door-closed",content:u?"Open":"Closed",onClick:function(){return l("door")}}),children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,disabled:!p||!e.allowed,width:"140px",onClick:function(){return l("inject",{chem:e.id})}},e.name)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i={Dead:"bad",Unconscious:"average",Conscious:"good"},l={owner:"You Are Here",stranger:"Occupied",available:"Swap"},d=function(e,t){var n=e.body,r=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:n.htmlcolor,children:n.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:l[n.occupied],selected:"owner"===n.occupied,color:"stranger"===n.occupied&&"bad",onClick:function(){return r()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:i[n.status],children:n.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:n.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:n.area})]})})};t.BodyEntry=d;t.SlimeBodySwapper=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.bodies,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:u.map((function(e){return(0,o.createComponentVNode)(2,d,{body:e,swapFunc:function(){return i("swap",{ref:e.ref})}},e.name)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3);t.SmartVend=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:440,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Section,{title:"Storage",buttons:!!d.isdryer&&(0,o.createComponentVNode)(2,c.Button,{icon:d.drying?"stop":"tint",onClick:function(){return l("Dry")},children:d.drying?"Stop drying":"Dry"}),children:0===d.contents.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:["Unfortunately, this ",d.name," is empty."]})||(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"center",children:d.verb?d.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.Button,{content:"One",disabled:e.amount<1,onClick:function(){return l("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,c.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return l("Release",{name:e.name})}})]})]},t)}))(d.contents)]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.Smes=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.capacityPercent,s=(d.capacity,d.charge),m=d.inputAttempt,p=d.inputting,C=d.inputLevel,h=d.inputLevelMax,N=d.inputAvailable,V=d.outputAttempt,b=d.outputting,f=d.outputLevel,g=d.outputLevelMax,v=d.outputUsed,k=(u>=100?"good":p&&"average")||"bad",x=(b?"good":s>0&&"average")||"bad";return(0,o.createComponentVNode)(2,i.Window,{width:340,height:350,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*u,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"sync-alt":"times",selected:m,onClick:function(){return l("tryinput")},children:m?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:k,children:(u>=100?"Fully Charged":p&&"Charging")||"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===C,onClick:function(){return l("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===C,onClick:function(){return l("input",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:C/1e3,fillValue:N/1e3,minValue:0,maxValue:h/1e3,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(1e3*e,1)},onDrag:function(e,t){return l("input",{target:1e3*t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:C===h,onClick:function(){return l("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:C===h,onClick:function(){return l("input",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:(0,c.formatPower)(N)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:V?"power-off":"times",selected:V,onClick:function(){return l("tryoutput")},children:V?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:x,children:b?"Sending":s>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===f,onClick:function(){return l("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===f,onClick:function(){return l("output",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:f/1e3,minValue:0,maxValue:g/1e3,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(1e3*e,1)},onDrag:function(e,t){return l("output",{target:1e3*t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:f===g,onClick:function(){return l("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:f===g,onClick:function(){return l("output",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:(0,c.formatPower)(v)})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.SmokeMachine=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.TankContents,u=(l.isTankLoaded,l.TankCurrentVolume),s=l.TankMaxVolume,m=l.active,p=l.setting,C=(l.screen,l.maxSetting),h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:350,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return i("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/s,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:u||0})," / "+s]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:p===e,icon:"plus",content:3*e,disabled:h0?"good":"bad",children:h})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:u,children:d+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===C,onClick:function(){return i("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===C,onClick:function(){return i("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===C,disabled:!N,onClick:function(){return i("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===C||1===C)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:s,onDrag:function(e,t){return i("azimuth",{value:t})}}),1===C&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-p-.01,maxValue:p+.01,value:m,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return i("azimuth_rate",{value:t})}}),2===C&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[s+" \xb0"," (auto)"]})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.SpaceHeater=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!l.hasPowercell||!l.open,onClick:function(){return i("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,disabled:!l.hasPowercell,onClick:function(){return i("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!l.hasPowercell&&"bad",children:l.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.powerLevel/100,ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]},children:l.powerLevel+"%"})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(l.targetTemp-l.currentTemp)>50?"bad":Math.abs(l.targetTemp-l.currentTemp)>20?"average":"good",children:[l.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:l.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.targetTemp),width:"65px",unit:"\xb0C",minValue:l.minTemp,maxValue:l.maxTemp,onChange:function(e,t){return i("target",{target:t})}})||l.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:l.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===l.mode,onClick:function(){return i("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===l.mode,onClick:function(){return i("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===l.mode,onClick:function(){return i("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.SpawnersMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.spawners||[];return(0,o.createComponentVNode)(2,c.Window,{title:"Spawners Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return i("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return i("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.SuitStorageUnit=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.locked,u=l.open,s=l.safeties,m=l.uv_active,p=l.occupied,C=l.suit,h=l.helmet,N=l.mask,V=l.storage;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!(!p||!s)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!u&&(0,o.createComponentVNode)(2,a.Button,{icon:d?"unlock":"lock",content:d?"Unlock":"Lock",onClick:function(){return i("lock")}}),!d&&(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-out-alt":"sign-in-alt",content:u?"Close":"Open",onClick:function(){return i("door")}})],0),children:d&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||u&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return i("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:C?"square":"square-o",content:C||"Empty",disabled:!C,onClick:function(){return i("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:N?"square":"square-o",content:N||"Empty",disabled:!N,onClick:function(){return i("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:V?"square":"square-o",content:V||"Empty",disabled:!V,onClick:function(){return i("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:p&&s,textAlign:"center",onClick:function(){return i("uv")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SyndPane=t.StatusPane=t.SyndContractorContent=t.SyndContractor=t.FakeTerminal=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);var i=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.tick=function(){var e=this.props,t=this.state;t.currentIndex<=e.allMessages.length?(this.setState((function(e){return{currentIndex:e.currentIndex+1}})),t.currentDisplay.push(e.allMessages[t.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))},c.componentDidMount=function(){var e=this,t=this.props.linesPerSecond,n=void 0===t?2.5:t;this.timer=setInterval((function(){return e.tick()}),1e3/n)},c.componentWillUnmount=function(){clearTimeout(this.timer)},c.render=function(){return(0,o.createComponentVNode)(2,a.Box,{m:1,children:this.state.currentDisplay.map((function(e){return(0,o.createFragment)([e,(0,o.createVNode)(1,"br")],0,e)}))})},r}(o.Component);t.FakeTerminal=i;t.SyndContractor=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:500,height:600,theme:"syndicate",resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.data,l=n.act,d=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(2e4*Math.random()),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"],s=!!c.error&&(0,o.createComponentVNode)(2,a.Modal,{backgroundColor:"red",children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,children:(0,o.createComponentVNode)(2,a.Icon,{size:4,name:"exclamation-triangle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,grow:1,textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{width:"260px",textAlign:"left",minHeight:"80px",children:c.error}),(0,o.createComponentVNode)(2,a.Button,{content:"Dismiss",onClick:function(){return l("PRG_clear_error")}})]})]})});return c.logged_in?c.logged_in&&c.first_load?(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"525px",children:(0,o.createComponentVNode)(2,i,{allMessages:d,finishedTimeout:3e3,onFinished:function(){return l("PRG_set_first_load_finished")}})}):c.info_screen?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"500px",children:(0,o.createComponentVNode)(2,i,{allMessages:["SyndTract v2.0","","We've identified potentional high-value targets that are","currently assigned to your mission area. They are believed","to hold valuable information which could be of immediate","importance to our organisation.","","Listed below are all of the contracts available to you. You","are to bring the specified target to the designated","drop-off, and contact us via this uplink. We will send","a specialised extraction unit to put the body into.","","We want targets alive - but we will sometimes pay slight","amounts if they're not, you just won't recieve the shown","bonus. You can redeem your payment through this uplink in","the form of raw telecrystals, which can be put into your","regular Syndicate uplink to purchase whatever you may need.","We provide you with these crystals the moment you send the","target up to us, which can be collected at anytime through","this system.","","Targets extracted will be ransomed back to the station once","their use to us is fulfilled, with us providing you a small","percentage cut. You may want to be mindful of them","identifying you when they come back. We provide you with","a standard contractor loadout, which will help cover your","identity."],linesPerSecond:10})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"CONTINUE",color:"transparent",textAlign:"center",onClick:function(){return l("PRG_toggle_info")}})],4):(0,o.createFragment)([s,(0,o.createComponentVNode)(2,u)],0):(0,o.createComponentVNode)(2,a.Section,{minHeight:"525px",children:[(0,o.createComponentVNode)(2,a.Box,{width:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{content:"REGISTER USER",color:"transparent",onClick:function(){return l("PRG_login")}})}),!!c.error&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c.error})]})};t.SyndContractorContent=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createFragment)([(0,o.createTextVNode)("Contractor Status"),(0,o.createComponentVNode)(2,a.Button,{content:"View Information Again",color:"transparent",mb:0,ml:1,onClick:function(){return c("PRG_toggle_info")}})],4),buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,mr:1,children:[i.contract_rep," Rep"]}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.85,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Available",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Claim",disabled:i.redeemable_tc<=0,onClick:function(){return c("PRG_redeem_TC")}}),children:i.redeemable_tc}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Earned",children:i.earned_tc})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contracts Completed",children:i.contracts_completed}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Status",children:"ACTIVE"})]})})]})})};t.StatusPane=d;var u=function(e,t){var n=(0,r.useLocalState)(t,"tab",1),c=n[0],i=n[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,d,{state:e.state}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,onClick:function(){return i(1)},children:"Contracts"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,onClick:function(){return i(2)},children:"Hub"})]}),1===c&&(0,o.createComponentVNode)(2,s),2===c&&(0,o.createComponentVNode)(2,m)],0)};t.SyndPane=u;var s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.contracts||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Available Contracts",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Call Extraction",disabled:!i.ongoing_contract||i.extraction_enroute,onClick:function(){return c("PRG_call_extraction")}}),children:l.map((function(e){if(!i.ongoing_contract||2===e.status){var t=e.status>1;if(!(e.status>=5))return(0,o.createComponentVNode)(2,a.Section,{title:e.target?e.target+" ("+e.target_rank+")":"Invalid Target",level:t?1:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:[e.payout," (+",e.payout_bonus,") TC"]}),(0,o.createComponentVNode)(2,a.Button,{content:t?"Abort":"Accept",disabled:e.extraction_enroute,color:t&&"bad",onClick:function(){return c("PRG_contract"+(t?"_abort":"-accept"),{contract_id:e.id})}})],4),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.message}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,children:"Dropoff Location:"}),(0,o.createComponentVNode)(2,a.Box,{children:e.dropoff})]})]})},e.target)}}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Dropoff Locator",textAlign:"center",opacity:i.ongoing_contract?100:0,children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:i.dropoff_direction})})],4)},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.contractor_hub_items||[];return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){var t=e.cost?e.cost+" Rep":"FREE",n=-1!==e.limited;return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" - "+t,level:2,buttons:(0,o.createFragment)([n&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:[e.limited," remaining"]}),(0,o.createComponentVNode)(2,a.Button,{content:"Purchase",disabled:i.contract_repl.user.cash),content:h?"FREE":d.price+" cr",onClick:function(){return i("vend",{ref:d.ref})}})})]})};t.Vending=function(e,t){var n,r=(0,a.useBackend)(t),d=(r.act,r.data),u=d.user,s=d.onstation,m=d.product_records,p=void 0===m?[]:m,C=d.coin_records,h=void 0===C?[]:C,N=d.hidden_records,V=void 0===N?[]:N,b=d.stock,f=!1;return d.vending_machine_input?(n=d.vending_machine_input||[],f=!0):(n=[].concat(p,h),d.extended_inventory&&(n=[].concat(n,V))),n=n.filter((function(e){return!!e})),(0,o.createComponentVNode)(2,i.Window,{title:"Vending Machine",width:450,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[!!s&&(0,o.createComponentVNode)(2,c.Section,{title:"User",children:u&&(0,o.createComponentVNode)(2,c.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,u.name,0),","," ",(0,o.createVNode)(1,"b",null,u.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[u.cash,(0,o.createTextVNode)(" credits")],0),"."]})||(0,o.createComponentVNode)(2,c.Box,{color:"light-grey",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Products",children:(0,o.createComponentVNode)(2,c.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,l,{custom:f,product:e,productStock:b[e.name]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.VrSleeper=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.VrSleeper=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:340,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!l.emagged&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Safety restraints disabled."})}),(0,o.createComponentVNode)(2,a.Section,{title:"Virtual Avatar",children:l.vr_avatar?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.vr_avatar.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l.vr_avatar.status}),!!l.vr_avatar&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.vr_avatar.health/l.vr_avatar.maxhealth,ranges:{good:[.9,Infinity],average:[.7,.8],bad:[-Infinity,.5]}})})]}):"No Virtual Avatar detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"VR Commands",children:[(0,o.createComponentVNode)(2,a.Button,{icon:l.toggle_open?"unlock":"lock",disabled:l.stored0&&g.flatMap((function(e){return e.items||[]})).filter(L).filter((function(e,t){return t<25}))||(null==(l=g.find((function(e){return e.name===_})))?void 0:l.items)||[];return(0,o.createComponentVNode)(2,c.Section,{title:(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:s>0?"good":"bad",children:[(0,i.formatMoney)(s)," ",p]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,c.Input,{autoFocus:!0,value:k,onInput:function(e,t){return x(t)},mx:1}),(0,o.createComponentVNode)(2,c.Button,{icon:V?"list":"info",content:V?"Compact":"Detailed",onClick:function(){return h("compact_toggle")}}),!!b&&(0,o.createComponentVNode)(2,c.Button,{icon:"lock",content:"Lock",onClick:function(){return h("lock")}})],0),children:(0,o.createComponentVNode)(2,c.Flex,{children:[0===k.length&&(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:g.map((function(e){var t;return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:e.name===_,onClick:function(){return w(e.name)},children:[e.name," (",(null==(t=e.items)?void 0:t.length)||0,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:[0===y.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:0===k.length?"No items in this category.":"No results found."}),(0,o.createComponentVNode)(2,u,{compactMode:k.length>0||V,currencyAmount:s,currencySymbol:p,items:y})]})]})})};t.GenericUplink=d;var u=function(e,t){var n=e.compactMode,l=e.currencyAmount,d=e.currencySymbol,u=(0,a.useBackend)(t).act,s=(0,a.useLocalState)(t,"hoveredItem",{}),m=s[0],p=s[1],C=m&&m.cost||0,h=e.items.map((function(e){var t=m&&m.name!==e.name,n=l-C50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,d.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,c.toFixed)(n)+"%"})],4)};t.AreaCharge=C,C.defaultHooks=i.pureComponentHooks;var h=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,d.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};h.defaultHooks=i.pureComponentHooks},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";t.__esModule=!0,t.AiRestorerContent=t.AiRestorer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AiRestorer=function(){return(0,o.createComponentVNode)(2,c.Window,{width:370,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.AI_present,d=i.error,u=i.name,s=i.laws,m=i.isDead,p=i.restoring,C=i.health,h=i.ejectable;return(0,o.createFragment)([d&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:d}),!!h&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:l?u:"----------",disabled:!l,onClick:function(){return c("PRG_eject")}}),!!l&&(0,o.createComponentVNode)(2,a.Section,{title:h?"System Status":u,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:m?"bad":"good",children:m?"Nonfunctional":"Functional"}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:C,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})})}),!!p&&(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"plus",content:"Begin Reconstruction",disabled:p,mt:1,onClick:function(){return c("PRG_beginReconstruction")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{className:"candystripe",children:e},e)}))})]})],0)};t.AiRestorerContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.AccessList=void 0;var o=n(0),r=n(14),a=n(2),c=n(1);function i(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0&&"yellow",selected:"requests"===m,onClick:function(){return C("requests")},children:["Requests (",V.length,")"]}),!h&&(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"shopping-cart",textColor:"cart"!==m&&N.length>0&&"yellow",selected:"cart"===m,onClick:function(){return C("cart")},children:["Checkout (",N.length,")"]})]})}),"catalog"===m&&(0,o.createComponentVNode)(2,u),"requests"===m&&(0,o.createComponentVNode)(2,s),"cart"===m&&(0,o.createComponentVNode)(2,p)]})})};var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.away,u=l.docked,s=l.loan,m=l.loan_dispatched,p=l.location,C=l.message,h=l.points,N=l.requestonly;return(0,o.createComponentVNode)(2,c.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,c.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:h,format:function(e){return(0,i.formatMoney)(e)}})," credits"]}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle",children:u&&!N&&(0,o.createComponentVNode)(2,c.Button,{content:p,onClick:function(){return r("send")}})||p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentCom Message",children:C}),!!s&&!N&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Loan",children:!m&&(0,o.createComponentVNode)(2,c.Button,{content:"Loan Shuttle",disabled:!(d&&u),onClick:function(){return r("loan")}})||(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Loaned to Centcom"})})]})})},u=function(e,t){var n,l=e.express,d=(0,a.useBackend)(t),u=d.act,s=d.data,p=s.self_paid,C=(0,r.toArray)(s.supplies),h=(0,a.useSharedState)(t,"supply",null==(n=C[0])?void 0:n.name),N=h[0],V=h[1],b=C.find((function(e){return e.name===N}));return(0,o.createComponentVNode)(2,c.Section,{title:"Catalog",buttons:!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,m),(0,o.createComponentVNode)(2,c.Button.Checkbox,{ml:2,content:"Buy Privately",checked:p,onClick:function(){return u("toggleprivate")}})],4),children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{ml:-1,mr:1,children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:C.map((function(e){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:e.name===N,onClick:function(){return V(e.name)},children:[e.name," (",e.packs.length,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,c.Table,{children:null==b?void 0:b.packs.map((function(e){var t=[];return e.small_item&&t.push("Small"),e.access&&t.push("Restricted"),(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",textAlign:"right",children:t.join(", ")}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,tooltip:e.desc,tooltipPosition:"left",onClick:function(){return u("add",{id:e.id})},children:[(0,i.formatMoney)(p&&!e.goody?Math.round(1.1*e.cost):e.cost)," cr"]})})]},e.name)}))})})]})})};t.CargoCatalog=u;var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.requests||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Active Requests",buttons:!d&&(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return r("denyall")}}),children:[0===u.length&&(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"No Requests"}),u.length>0&&(0,o.createComponentVNode)(2,c.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",children:["#",e.id]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.object}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createVNode)(1,"b",null,e.orderer,0)}),(0,o.createComponentVNode)(2,c.Table.Cell,{width:"25%",children:(0,o.createVNode)(1,"i",null,e.reason,0)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:[(0,i.formatMoney)(e.cost)," cr"]}),!d&&(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.Button,{icon:"check",color:"good",onClick:function(){return r("approve",{id:e.id})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",color:"bad",onClick:function(){return r("deny",{id:e.id})}})]})]},e.id)}))})]})},m=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.cart||[],s=u.reduce((function(e,t){return e+t.cost}),0);return d?null:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,children:[0===u.length&&"Cart is empty",1===u.length&&"1 item",u.length>=2&&u.length+" items"," ",s>0&&"("+(0,i.formatMoney)(s)+" cr)"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return r("clear")}})],4)},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.away,s=l.docked,p=l.location,C=l.cart||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Current Cart",buttons:(0,o.createComponentVNode)(2,m),children:[0===C.length&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Nothing in cart"}),C.length>0&&(0,o.createComponentVNode)(2,c.Table,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",children:["#",e.id]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.object}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:[(0,i.formatMoney)(e.cost)," cr"]}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,c.Button,{icon:"minus",onClick:function(){return r("remove",{id:e.id})}})})]},e.id)}))}),C.length>0&&!d&&(0,o.createComponentVNode)(2,c.Box,{mt:2,children:1===u&&1===s&&(0,o.createComponentVNode)(2,c.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return r("send")}})||(0,o.createComponentVNode)(2,c.Box,{opacity:.5,children:["Shuttle in ",p,"."]})})]})}},,function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(0),r=n(1);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[e.volume," units of ",e.name," ",e.purity<1&&"(Purity: "+e.purity+")"]},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return n("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return n("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return n("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return n("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return n("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:1,y:-1})}})]})]})},l=function(e,t){var n=e.topLevel,c=(0,r.useBackend)(t),l=c.act,d=c.data,u=d.x,s=d.y,m=d.pad_name,p=d.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"170px",onChange:function(e,t){return l("rename",{name:t})}}),level:n?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return l("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i)})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return l("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return l("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return l("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return l("pull")}})})]})]})};t.LaunchpadControl=l;t.LaunchpadConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data,u=d.launchpads,s=void 0===u?[]:u,m=d.selected_id;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:260,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:0===s.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"})||(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{minHeight:"190px",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"140px",minHeight:"190px",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,ellipsis:!0,content:e.name,selected:m===e.id,color:"transparent",onClick:function(){return i("select_pad",{id:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{minHeight:"100%",children:(0,o.createComponentVNode)(2,a.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,minHeight:"100%",children:m&&(0,o.createComponentVNode)(2,l)||(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCyborgRemoteMonitorContent=t.NtosCyborgRemoteMonitor=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosCyborgRemoteMonitor=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:600,height:800,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.card,d=i.cyborgs,u=void 0===d?[]:d;return u.length?(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Certain features require an ID card login."}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Send Message",color:"blue",disabled:!l,onClick:function(){return c("messagebot",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":e.shell_discon?"Nominal/Disconnected":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:e.upgrades})]})},e.ref)}))],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected."})};t.NtosCyborgRemoteMonitorContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRadarContent=t.NtosRadar=void 0;var o=n(0),r=n(6),a=n(63),c=n(2),i=n(1),l=n(3);t.NtosRadar=function(e,t){return(0,o.createComponentVNode)(2,l.NtosWindow,{width:800,height:600,theme:"ntos",children:(0,o.createComponentVNode)(2,d,{sig_err:"Signal Lost"})})};var d=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.selected,m=u.object,p=void 0===m?[]:m,C=u.target,h=void 0===C?[]:C,N=u.scanning,V=e.sig_err;return(0,o.createComponentVNode)(2,i.Flex,{direction:"row",hight:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{position:"relative",width:20.5,hight:"100%",children:(0,o.createComponentVNode)(2,l.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Button,{icon:"redo-alt",content:N?"Scanning...":"Scan",color:"blue",disabled:N,onClick:function(){return d("scan")}}),!p.length&&!N&&(0,o.createVNode)(1,"div",null,"No trackable signals found",16),!N&&p.map((function(e){return(0,o.createVNode)(1,"div",(0,r.classes)(["Button","Button--fluid","Button--color--transparent","Button--ellipsis",e.ref===s&&"Button--selected"]),e.name,0,{title:e.name,onClick:function(){d("selecttarget",{ref:e.ref})}},e.dev)}))]})})}),(0,o.createComponentVNode)(2,i.Flex.Item,{style:{"background-image":'url("'+(0,a.resolveAsset)("ntosradarbackground.png")+'")',"background-position":"center","background-repeat":"no-repeat",top:"20px"},position:"relative",m:1.5,width:45,height:45,children:0===Object.keys(h).length?!!s&&(0,o.createComponentVNode)(2,i.NoticeBox,{position:"absolute",top:20.6,left:1.35,width:42,fontSize:"30px",textAlign:"center",children:V}):!!h.userot&&(0,o.createComponentVNode)(2,i.Box,{as:"img",src:(0,a.resolveAsset)(h.arrowstyle),position:"absolute",top:"20px",left:"243px",style:{transform:"rotate("+h.rot+"deg)"}})||(0,o.createComponentVNode)(2,i.Icon,{name:h.pointer,position:"absolute",size:2,color:h.color,top:10*h.locy+19+"px",left:10*h.locx+16+"px"})})]})};t.NtosRadarContent=d},function(e,t,n){"use strict";t.__esModule=!0,t.RequestKioskContent=t.RequestKiosk=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.RequestKiosk=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:550,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.accountName,u=l.requests,s=void 0===u?[]:u,m=l.applicants,p=void 0===m?[]:m,C=l.bountyValue;l.bountyText;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"Log out",onClick:function(){return i("clear")}}),children:d||"N/A"})})}),(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:null==s?void 0:s.map((function(e){return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.owner,width:"300px",children:(0,o.createComponentVNode)(2,a.Section,{width:"300px",children:[(0,o.createComponentVNode)(2,a.Flex,{spacing:1,align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,width:"310px",children:e.owner}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"100px",children:(0,c.formatMoney)(e.value)+" cr"}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"pen-fancy",content:"Apply",onClick:function(){return i("apply",{request:e.acc_number})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"trash-alt",content:"Delete",color:"red",onClick:function(){return i("deleteRequest",{request:e.acc_number})}})]})]}),(0,o.createComponentVNode)(2,a.Section,{align:"center",children:(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)('"'),e.description,(0,o.createTextVNode)('"')],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Request Applicants",children:null==p?void 0:p.map((function(t){return t.request_id===e.acc_number&&(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,p:.5,backgroundColor:"rgba(0, 0, 69, 0.5)",width:"510px",style:{border:"2px solid rgba(13, 13, 213, 0.7)"},children:t.name}),(0,o.createComponentVNode)(2,a.Flex.Item,{align:"end",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"cash-register",onClick:function(){return i("payApplicant",{applicant:t.requestee_id,request:e.acc_number})}})})]})}))})]},e.name)},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Collapsible,{title:"New Bounty",width:"220px",color:"green",children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.TextArea,{fluid:!0,height:"250px",width:"200px",backgroundColor:"black",textColor:"white",onChange:function(e,t){return i("bountyText",{bountytext:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.NumberInput,{animate:!0,unit:"cr",minValue:1,maxValue:1e3,value:C,width:"80px",onChange:function(e,t){return i("bountyVal",{bountyval:t})}})}),(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Submit bounty",onClick:function(){return i("createBounty")}})]})})})]})],4)};t.RequestKioskContent=l},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsoleContent=t.StationAlertConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.StationAlertConsole=function(){return(0,o.createComponentVNode)(2,c.Window,{width:325,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t).data.alarms||[],c=n.Fire||[],i=n.Atmosphere||[],l=n.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===l.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),l.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)};t.StationAlertConsoleContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.PortableBasicInfo=void 0;var o=n(0),r=n(2),a=n(1);t.PortableBasicInfo=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.connected,d=i.holding,u=i.on,s=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return c("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:l?"good":"average",children:l?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!d,onClick:function(){return c("eject")}}),children:d?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:d.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)}},,,,,,,,,,,function(e,t,n){n(148),e.exports=n(447)},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var o=n(0);n(449),n(450),n(451),n(452),n(453),n(454),n(455),n(456),n(457),n(458);var r,a,c=n(99),i=(n(100),n(135)),l=n(186),d=n(136),u=n(187),s=n(57);c.perf.mark("inception",null==(r=window.performance)||null==(a=r.timing)?void 0:a.navigationStart),c.perf.mark("init");var m=(0,u.configureStore)(),p=(0,d.createRenderer)((function(){var e=(0,n(486).getRoutedComponent)(m);return(0,o.createComponentVNode)(2,u.StoreProvider,{store:m,children:(0,o.createComponentVNode)(2,e)})}));!function C(){if("loading"!==document.readyState){for((0,s.setupGlobalEvents)(),(0,i.setupHotKeys)(),(0,l.captureExternalLinks)(),m.subscribe(p),window.update=function(e){return m.dispatch(Byond.parseJson(e))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}0}else document.addEventListener("DOMContentLoaded",C)}()},,function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";t.__esModule=!0,t.getRoutedComponent=void 0;var o=n(0),r=n(2),a=(n(190),n(3)),c=n(487),i=function(e,t){return function(){return(0,o.createComponentVNode)(2,a.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:["notFound"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" was not found.")],4),"missingExport"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" is missing an export.")],4)]})})}},l=function(){return(0,o.createComponentVNode)(2,a.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0})})};t.getRoutedComponent=function(e){var t=e.getState(),n=(0,r.selectBackend)(t),o=n.suspended,a=n.config;if(o)return l;var d,u=null==a?void 0:a["interface"];try{d=c("./"+u+".js")}catch(m){if("MODULE_NOT_FOUND"===m.code)return i("notFound",u);throw m}var s=d[u];return s||i("missingExport",u)}},function(e,t,n){var o={"./AbductorConsole.js":488,"./Achievements.js":489,"./AiAirlock.js":490,"./AiRestorer.js":201,"./AirAlarm.js":491,"./AirlockElectronics.js":493,"./Apc.js":494,"./ApcControl.js":495,"./AtmosAlertConsole.js":496,"./AtmosControlConsole.js":497,"./AtmosControlPanel.js":498,"./AtmosFilter.js":499,"./AtmosMixer.js":500,"./AtmosPump.js":501,"./AtmosRelief.js":502,"./AutomatedAnnouncement.js":503,"./BankMachine.js":504,"./Bepis.js":505,"./Biogenerator.js":506,"./BlackmarketUplink.js":507,"./BluespaceArtillery.js":508,"./BluespaceLocator.js":509,"./BorgPanel.js":510,"./BrigTimer.js":511,"./CameraConsole.js":512,"./Canister.js":513,"./Canvas.js":514,"./Cargo.js":203,"./CargoBountyConsole.js":515,"./CargoExpress.js":516,"./CargoHoldTerminal.js":517,"./CellularEmporium.js":518,"./CentcomPodLauncher.js":519,"./ChemAcclimator.js":520,"./ChemDebugSynthesizer.js":521,"./ChemDispenser.js":522,"./ChemFilter.js":523,"./ChemHeater.js":524,"./ChemMaster.js":525,"./ChemPress.js":526,"./ChemReactionChamber.js":527,"./ChemSplitter.js":528,"./ChemSynthesizer.js":529,"./CivCargoHoldTerminal.js":530,"./ClockworkSlab.js":531,"./CodexGigas.js":532,"./ComputerFabricator.js":533,"./Crayon.js":534,"./CrewConsole.js":535,"./Cryo.js":536,"./DecalPainter.js":537,"./DisposalUnit.js":538,"./DnaConsole.js":539,"./DnaVault.js":540,"./EightBallVote.js":541,"./Electrolyzer.js":542,"./Electropack.js":543,"./EmergencyShuttleConsole.js":544,"./EngravedMessage.js":545,"./ExosuitControlConsole.js":546,"./ExosuitFabricator.js":547,"./ForbiddenLore.js":548,"./Gateway.js":549,"./GhostPoolProtection.js":550,"./GlandDispenser.js":551,"./Gps.js":552,"./GravityGenerator.js":553,"./GulagItemReclaimer.js":554,"./GulagTeleporterConsole.js":555,"./Holodeck.js":556,"./Holopad.js":557,"./HypnoChair.js":558,"./ImplantChair.js":559,"./InfraredEmitter.js":560,"./Intellicard.js":561,"./Jukebox.js":562,"./KeycardAuth.js":563,"./LaborClaimConsole.js":564,"./LanguageMenu.js":565,"./LaunchpadConsole.js":206,"./LaunchpadRemote.js":566,"./MafiaPanel.js":567,"./MalfunctionModulePicker.js":568,"./MechBayPowerConsole.js":569,"./MechpadConsole.js":570,"./MedicalKiosk.js":571,"./Microscope.js":572,"./MiningVendor.js":573,"./Mint.js":574,"./Mule.js":575,"./NaniteChamberControl.js":576,"./NaniteCloudControl.js":577,"./NaniteProgramHub.js":578,"./NaniteProgrammer.js":579,"./NaniteRemote.js":580,"./NotificationPreferences.js":581,"./NtnetRelay.js":582,"./NtosAiRestorer.js":583,"./NtosArcade.js":584,"./NtosAtmos.js":585,"./NtosBountyConsole.js":586,"./NtosCard.js":587,"./NtosConfiguration.js":588,"./NtosCrewManifest.js":589,"./NtosCyborgRemoteMonitor.js":207,"./NtosCyborgRemoteMonitorSyndicate.js":590,"./NtosFileManager.js":591,"./NtosJobManager.js":592,"./NtosMain.js":593,"./NtosNetChat.js":594,"./NtosNetDos.js":595,"./NtosNetDownloader.js":596,"./NtosNetMonitor.js":597,"./NtosPowerMonitor.js":598,"./NtosRadar.js":208,"./NtosRadarSyndicate.js":599,"./NtosRequestKiosk.js":600,"./NtosRevelation.js":601,"./NtosRoboControl.js":602,"./NtosShipping.js":603,"./NtosStationAlertConsole.js":604,"./NtosSupermatterMonitor.js":605,"./NuclearBomb.js":606,"./OperatingComputer.js":607,"./Orbit.js":608,"./OreBox.js":609,"./OreRedemptionMachine.js":610,"./Pandemic.js":611,"./PaperSheet.js":612,"./ParticleAccelerator.js":615,"./PersonalCrafting.js":616,"./Photocopier.js":617,"./PortableChemMixer.js":618,"./PortableGenerator.js":619,"./PortablePump.js":620,"./PortableScrubber.js":621,"./PortableTurret.js":622,"./PowerMonitor.js":143,"./ProbingConsole.js":623,"./ProximitySensor.js":624,"./Radio.js":625,"./RadioactiveMicrolaser.js":626,"./RapidPipeDispenser.js":627,"./RemoteRobotControl.js":628,"./RequestKiosk.js":209,"./RoboticsControlConsole.js":629,"./Roulette.js":630,"./SatelliteControl.js":631,"./ScannerGate.js":632,"./SeedExtractor.js":633,"./ShuttleConsole.js":634,"./ShuttleManipulator.js":635,"./Signaler.js":636,"./SkillPanel.js":637,"./SkillStation.js":638,"./Sleeper.js":639,"./SlimeBodySwapper.js":640,"./SmartVend.js":641,"./Smes.js":642,"./SmokeMachine.js":643,"./SolarControl.js":644,"./SpaceHeater.js":645,"./SpawnersMenu.js":646,"./StationAlertConsole.js":210,"./SuitStorageUnit.js":647,"./SyndContractor.js":648,"./TachyonArray.js":649,"./Tank.js":650,"./TankDispenser.js":651,"./Telecomms.js":652,"./TelecommsInteraction.js":653,"./TelecommsLogBrowser.js":654,"./TelecommsMonitor.js":655,"./TelecommsPDALog.js":656,"./Teleporter.js":657,"./ThermoMachine.js":658,"./Timer.js":659,"./TransferValve.js":660,"./TurbineComputer.js":661,"./TurretControl.js":662,"./Uplink.js":142,"./VaultController.js":663,"./Vendatray.js":664,"./Vending.js":665,"./VrSleeper.js":666,"./Wires.js":667};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=487},function(e,t,n){"use strict";t.__esModule=!0,t.AbductorConsole=void 0;var o=n(0),r=n(142),a=n(2),c=n(1),i=n(3);t.AbductorConsole=function(e,t){var n=(0,a.useSharedState)(t,"tab",1),r=n[0],s=n[1];return(0,o.createComponentVNode)(2,i.Window,{theme:"abductor",width:600,height:532,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:1===r,onClick:function(){return s(1)},children:"Abductsoft 3000"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:2===r,onClick:function(){return s(2)},children:"Mission Settings"})]}),1===r&&(0,o.createComponentVNode)(2,l),2===r&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,u)],4)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),i=(n.act,n.data),l=i.experiment,d=i.points,u=i.credits;return l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Collected Samples",children:d})})}),(0,o.createComponentVNode)(2,r.GenericUplink,{currencyAmount:u,currencySymbol:"Credits"})],4):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Experiment Machine Detected"})},d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.pad,d=i.gizmo;return l?(0,o.createComponentVNode)(2,c.Section,{title:"Emergency Teleport",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"exclamation-circle",content:"Activate",color:"bad",onClick:function(){return r("teleporter_send")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mark Retrieval",children:(0,o.createComponentVNode)(2,c.Button,{icon:d?"user-plus":"user-slash",content:d?"Retrieve":"No Mark",disabled:!d,onClick:function(){return r("teleporter_retrieve")}})})})}):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Telepad Detected"})},u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.vest,d=i.vest_mode,u=i.vest_lock;return l?(0,o.createComponentVNode)(2,c.Section,{title:"Agent Vest Settings",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",onClick:function(){return r("toggle_vest")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:1===d?"eye-slash":"fist-raised",content:1===d?"Stealth":"Combat",onClick:function(){return r("flip_vest")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Disguise",children:(0,o.createComponentVNode)(2,c.Button,{icon:"user-secret",content:"Select",onClick:function(){return r("select_disguise")}})})]})}):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Agent Vest Detected"})}},function(e,t,n){"use strict";t.__esModule=!0,t.Achievements=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Achievements=function(e,t){var n=(0,r.useBackend)(t).data,l=n.categories,u=(0,r.useLocalState)(t,"category",l[0]),s=u[0],m=u[1],p=n.achievements.filter((function(e){return e.category===s}));return(0,o.createComponentVNode)(2,c.Window,{title:"Achievements",width:540,height:680,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[l.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:s===e,onClick:function(){return m(e)},children:e},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:"High Scores"===s,onClick:function(){return m("High Scores")},children:"High Scores"})]}),"High Scores"===s&&(0,o.createComponentVNode)(2,d)||(0,o.createComponentVNode)(2,i,{achievements:p})]})})};var i=function(e,t){var n=e.achievements;return(0,o.createComponentVNode)(2,a.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,l,{achievement:e},e.name)}))})},l=function(e){var t=e.achievement,n=t.name,r=t.desc,c=t.icon_class,i=t.value,l=t.score;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Box,{m:1,className:c})}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",children:[(0,o.createVNode)(1,"h1",null,n,0),r,l&&(0,o.createComponentVNode)(2,a.Box,{color:i>0?"good":"bad",children:i>0?"Earned "+i+" times":"Locked"})||(0,o.createComponentVNode)(2,a.Box,{color:i?"good":"bad",children:i?"Unlocked":"Locked"})]})]},n)},d=function(e,t){var n=(0,r.useBackend)(t).data,c=n.highscore,i=n.user_ckey,l=(0,r.useLocalState)(t,"highscore",0),d=l[0],u=l[1],s=c[d];if(!s)return null;var m=Object.keys(s.scores).map((function(e){return{ckey:e,value:s.scores[e]}}));return(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:c.map((function(e,t){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:d===t,onClick:function(){return u(t)},children:e.name},e.name)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Score"})]}),m.map((function(e,t){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:t+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:e.ckey===i&&"green",textAlign:"center",children:[0===t&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"yellow",mr:2}),e.ckey,0===t&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"yellow",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.value})]},e.ckey)}))]})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}};t.AiAirlock=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=i[d.power.main]||i[0],s=i[d.power.backup]||i[0],m=i[d.shock]||i[0];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:390,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.main,content:"Disrupt",onClick:function(){return l("disrupt-main")}}),children:[d.power.main?"Online":"Offline"," ",d.wires.main_1&&d.wires.main_2?d.power.main_timeleft>0&&"["+d.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.backup,content:"Disrupt",onClick:function(){return l("disrupt-backup")}}),children:[d.power.backup?"Online":"Offline"," ",d.wires.backup_1&&d.wires.backup_2?d.power.backup_timeleft>0&&"["+d.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:m.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(d.wires.shock&&0===d.shock),content:"Restore",onClick:function(){return l("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Temporary",onClick:function(){return l("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Permanent",onClick:function(){return l("shock-perm")}})],4),children:[2===d.shock?"Safe":"Electrified"," ",(d.wires.shock?d.shock_timeleft>0&&"["+d.shock_timeleft+"s]":"[Wires have been cut!]")||-1===d.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.id_scanner?"power-off":"times",content:d.id_scanner?"Enabled":"Disabled",selected:d.id_scanner,disabled:!d.wires.id_scanner,onClick:function(){return l("idscan-toggle")}}),children:!d.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.emergency?"power-off":"times",content:d.emergency?"Enabled":"Disabled",selected:d.emergency,onClick:function(){return l("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.locked?"lock":"unlock",content:d.locked?"Lowered":"Raised",selected:d.locked,disabled:!d.wires.bolts,onClick:function(){return l("bolt-toggle")}}),children:!d.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.lights?"power-off":"times",content:d.lights?"Enabled":"Disabled",selected:d.lights,disabled:!d.wires.lights,onClick:function(){return l("light-toggle")}}),children:!d.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.safe?"power-off":"times",content:d.safe?"Enabled":"Disabled",selected:d.safe,disabled:!d.wires.safe,onClick:function(){return l("safe-toggle")}}),children:!d.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.speed?"power-off":"times",content:d.speed?"Enabled":"Disabled",selected:d.speed,disabled:!d.wires.timing,onClick:function(){return l("speed-toggle")}}),children:!d.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.opened?"sign-out-alt":"sign-in-alt",content:d.opened?"Open":"Closed",selected:d.opened,disabled:d.locked||d.welded,onClick:function(){return l("open-close")}}),children:!(!d.locked&&!d.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),d.locked?"bolted":"",d.locked&&d.welded?" and ":"",d.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(0),r=n(9),a=(n(19),n(2)),c=n(1),i=(n(36),n(3)),l=n(64),d=n(492);t.AirAlarm=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data),c=r.locked&&!r.siliconUser;return(0,o.createComponentVNode)(2,i.Window,{width:440,height:650,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,u),!c&&(0,o.createComponentVNode)(2,m)]})})};var u=function(e,t){var n=(0,a.useBackend)(t).data,i=(n.environment_data||[]).filter((function(e){return e.value>=.01})),l={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},d=l[n.danger_level]||l[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[i.length>0&&(0,o.createFragment)([i.map((function(e){var t=l[e.danger_level]||l[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:d.color,children:d.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:n.atmos_alarm||n.fire_alarm?"bad":"good",children:(n.atmos_alarm?"Atmosphere Alarm":n.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!n.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return p}},vents:{title:"Vent Controls",component:function(){return C}},scrubbers:{title:"Scrubber Controls",component:function(){return h}},modes:{title:"Operating Mode",component:function(){return N}},thresholds:{title:"Alarm Thresholds",component:function(){return V}}},m=function(e,t){var n=(0,a.useLocalState)(t,"screen"),r=n[0],i=n[1],l=s[r]||s.home,d=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:r&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return i()}}),children:(0,o.createComponentVNode)(2,d)})},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=(0,a.useLocalState)(t,"screen"),d=(l[0],l[1]),u=i.mode,s=i.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:s?"exclamation-triangle":"exclamation",color:s&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return r(s?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===u?"exclamation-triangle":"exclamation",color:3===u&&"danger",content:"Panic Siphon",onClick:function(){return r("mode",{mode:3===u?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return d("vents")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return d("scrubbers")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return d("modes")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return d("thresholds")}})],4)},C=function(e,t){var n=(0,a.useBackend)(t).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.createComponentVNode)(2,d.Vent,{vent:e},e.id_tag)})):"Nothing to show"},h=function(e,t){var n=(0,a.useBackend)(t).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.createComponentVNode)(2,d.Scrubber,{scrubber:e},e.id_tag)})):"Nothing to show"},N=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.modes;return i&&0!==i.length?i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return r("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},V=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,l.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return i("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},function(e,t,n){"use strict";t.__esModule=!0,t.Scrubber=t.Vent=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(36);t.Vent=function(e,t){var n=e.vent,i=(0,a.useBackend)(t).act,l=n.id_tag,d=n.long_name,u=n.power,s=n.checks,m=n.excheck,p=n.incheck,C=n.direction,h=n.external,N=n.internal,V=n.extdefault,b=n.intdefault;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,r.decodeHtmlEntities)(d),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",selected:u,content:u?"On":"Off",onClick:function(){return i("power",{id_tag:l,val:Number(!u)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:C?"Pressurizing":"Scrubbing",color:!C&&"danger",onClick:function(){return i("direction",{id_tag:l,val:Number(!C)})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:p,onClick:function(){return i("incheck",{id_tag:l,val:s})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:m,onClick:function(){return i("excheck",{id_tag:l,val:s})}})]}),!!p&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(N),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,t){return i("set_internal_pressure",{id_tag:l,value:t})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:b,content:"Reset",onClick:function(){return i("reset_internal_pressure",{id_tag:l})}})]}),!!m&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(h),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,t){return i("set_external_pressure",{id_tag:l,value:t})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:V,content:"Reset",onClick:function(){return i("reset_external_pressure",{id_tag:l})}})]})]})})};t.Scrubber=function(e,t){var n=e.scrubber,l=(0,a.useBackend)(t).act,d=n.long_name,u=n.power,s=n.scrubbing,m=n.id_tag,p=n.widenet,C=n.filter_types;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,r.decodeHtmlEntities)(d),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power",{id_tag:m,val:Number(!u)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:s?"filter":"sign-in-alt",color:s||"danger",content:s?"Scrubbing":"Siphoning",onClick:function(){return l("scrubbing",{id_tag:m,val:Number(!s)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:p?"expand":"compress",selected:p,content:p?"Expanded range":"Normal range",onClick:function(){return l("widenet",{id_tag:m,val:Number(!p)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:s&&C.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return l("toggle_filter",{id_tag:m,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(202);t.AirlockElectronics=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.oneAccess,s=d.unres_direction,m=d.regions||[],p=d.accesses||[];return(0,o.createComponentVNode)(2,c.Window,{width:420,height:485,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Main",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access Required",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"unlock":"lock",content:u?"One":"All",onClick:function(){return l("one_access")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unrestricted Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:1&s?"check-square-o":"square-o",content:"North",selected:1&s,onClick:function(){return l("direc_set",{unres_direction:"1"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:2&s?"check-square-o":"square-o",content:"South",selected:2&s,onClick:function(){return l("direc_set",{unres_direction:"2"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:4&s?"check-square-o":"square-o",content:"East",selected:4&s,onClick:function(){return l("direc_set",{unres_direction:"4"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:8&s?"check-square-o":"square-o",content:"West",selected:8&s,onClick:function(){return l("direc_set",{unres_direction:"8"})}})]})]})}),(0,o.createComponentVNode)(2,i.AccessList,{accesses:m,selectedList:p,accessMod:function(e){return l("set",{access:e})},grantAll:function(){return l("grant_all")},denyAll:function(){return l("clear_all")},grantDep:function(e){return l("grant_region",{region:e})},denyDep:function(e){return l("deny_region",{region:e})}})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(64);t.Apc=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:450,height:445,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,u)})})};var l={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.locked&&!u.siliconUser,m=l[u.externalPower]||l[0],p=l[u.chargingStatus]||l[0],C=u.powerChannels||[],h=d[u.malfStatus]||d[0],N=u.powerCellStatus/100;return u.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",u.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return c("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:m.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,disabled:s,onClick:function(){return c("breaker")}}),children:["[ ",m.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:N})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.chargeMode?"sync":"close",content:u.chargeMode?"Auto":"Off",disabled:s,onClick:function(){return c("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[C.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!s&&(1===e.status||3===e.status),disabled:s,onClick:function(){return c("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!s&&2===e.status,disabled:s,onClick:function(){return c("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!s&&0===e.status,disabled:s,onClick:function(){return c("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,u.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,o.createFragment)([!!u.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:h.icon,content:h.content,color:"bad",onClick:function(){return c(h.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return c("overload")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",disabled:s,onClick:function(){return c("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.emergencyLights?"Enabled":"Disabled",disabled:s,onClick:function(){return c("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",onClick:function(){return c("toggle_nightshift")}})}),1===u.hijackable&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{title:"Hijacking",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"unlock",content:"Hijack",disabled:u.hijacker,onClick:function(){return c("hijack")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lockdown",isabled:!u.lockdownavail&&1===u.hijacked,onClick:function(){return c("lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Drain",disabled:!u.drainavail&&1===u.hijacked,onClick:function(){return c("drain")}})],4)})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ApcControl=void 0;var o=n(0),r=n(14),a=n(30),c=n(6),i=n(2),l=n(1),d=n(3),u=n(143);t.ApcControl=function(e,t){var n=(0,i.useBackend)(t).data;return(0,o.createComponentVNode)(2,d.Window,{title:"APC Controller",width:550,height:500,resizable:!0,children:[1===n.authenticated&&(0,o.createComponentVNode)(2,m),0===n.authenticated&&(0,o.createComponentVNode)(2,s)]})};var s=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.emagged,c=1===a?"Open":"Log In";return(0,o.createComponentVNode)(2,d.Window.Content,{children:(0,o.createComponentVNode)(2,l.Button,{fluid:!0,color:1===a?"":"good",content:c,onClick:function(){return r("log-in")}})})},m=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.restoring,c=(0,i.useLocalState)(t,"tab-index",1),u=c[0],s=c[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Tabs,{children:[(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:1===u,onClick:function(){s(1),r("check-apcs")},children:"APC Control Panel"}),(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:2===u,onClick:function(){s(2),r("check-logs")},children:"Log View Panel"})]}),1===a&&(0,o.createComponentVNode)(2,l.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,l.Icon,{name:"cog",spin:!0})," Resetting..."]}),1===u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,l.Box,{fillPositionedParent:!0,top:"53px",children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,C)})})],4),2===u&&(0,o.createComponentVNode)(2,l.Box,{fillPositionedParent:!0,top:"20px",children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,h)})})],0)},p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data,c=a.emagged,d=a.logging,u=(0,i.useLocalState)(t,"sortByField",null),s=u[0],m=u[1];return(0,o.createComponentVNode)(2,l.Flex,{children:[(0,o.createComponentVNode)(2,l.Flex.Item,{children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===s,content:"Name",onClick:function(){return m("name"!==s&&"name")}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===s,content:"Charge",onClick:function(){return m("charge"!==s&&"charge")}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===s,content:"Draw",onClick:function(){return m("draw"!==s&&"draw")}})]}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,l.Flex.Item,{children:[1===c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Button,{color:1===d?"bad":"good",content:1===d?"Stop Logging":"Restore Logging",onClick:function(){return r("toggle-logs")}}),(0,o.createComponentVNode)(2,l.Button,{content:"Reset Console",onClick:function(){return r("restore-console")}})],4),(0,o.createComponentVNode)(2,l.Button,{color:"bad",content:"Log Out",onClick:function(){return r("log-out")}})]})]})},C=function(e,t){var n=(0,i.useBackend)(t),c=n.data,d=n.act,s=(0,i.useLocalState)(t,"sortByField",null)[0],m=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===s&&(0,r.sortBy)((function(e){return e.name})),"charge"===s&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===s&&(0,r.sortBy)((function(e){return-(0,u.powerRank)(e.load)}),(function(e){return-parseFloat(e.load)}))])(c.apcs);return(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"On/Off"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),m.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,l.Button,{icon:e.operating?"power-off":"times",color:e.operating?"good":"bad",onClick:function(){return d("breaker",{ref:e.ref})}}),2),(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,l.Button,{onClick:function(){return d("access-apc",{ref:e.ref})},children:e.name}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,u.AreaCharge,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"equipment",status:e.eqp,apc:e,act:d}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"lighting",status:e.lgt,apc:e,act:d}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"environ",status:e.env,apc:e,act:d}),2)],4,null,e.id)}))]})},h=function(e,t){var n=(0,i.useBackend)(t).data,c=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.entry+t})})),function(e){return e.reverse()}])(n.logs);return(0,o.createComponentVNode)(2,l.Box,{m:-.5,children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Box,{p:.5,className:"candystripe",bold:!0,children:e.entry},e.id)}))})},N=function(e){var t=e.target,n=e.status,r=e.apc,a=e.act,c=Boolean(2&n),i=Boolean(1&n);return(0,o.createComponentVNode)(2,l.Button,{icon:i?"sync":"power-off",color:c?"good":"bad",onClick:function(){return a("toggle-minor",{type:t,value:V(n),ref:r.ref})}})},V=function(e){return 0===e?2:2===e?3:0};N.defaultHooks=c.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AtmosAlertConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.priority||[],u=l.minor||[];return(0,o.createComponentVNode)(2,c.Window,{width:350,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[0===d.length&&(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),d.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return i("clear",{zone:e})}}),2,null,e)})),0===u.length&&(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16),u.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return i("clear",{zone:e})}}),2,null,e)}))],0)})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(0),r=n(14),a=n(9),c=n(2),i=n(1),l=n(3);t.AtmosControlConsole=function(e,t){var n,d=(0,c.useBackend)(t),u=d.act,s=d.data,m=s.sensors||[];return(0,o.createComponentVNode)(2,l.Window,{width:500,height:315,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:!!s.tank&&(null==(n=m[0])?void 0:n.long_name),children:m.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,i.Section,{title:!s.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),s.tank&&(0,o.createComponentVNode)(2,i.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"undo",content:"Reconnect",onClick:function(){return u("reconnect")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,i.Button,{icon:s.inputting?"power-off":"times",content:s.inputting?"Injecting":"Off",selected:s.inputting,onClick:function(){return u("input")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:s.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return u("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,i.Button,{icon:s.outputting?"power-off":"times",content:s.outputting?"Open":"Closed",selected:s.outputting,onClick:function(){return u("output")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:parseFloat(s.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return u("pressure",{pressure:t})}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlPanel=void 0;var o=n(0),r=n(14),a=n(30),c=n(2),i=n(1),l=n(3);t.AtmosControlPanel=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.area+t})})),(0,r.sortBy)((function(e){return e.id}))])(u.excited_groups);return(0,o.createComponentVNode)(2,l.Window,{title:"SSAir Control Panel",width:900,height:500,resizable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{m:1,children:(0,o.createComponentVNode)(2,i.Flex,{justify:"space-between",align:"baseline",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{onClick:function(){return d("toggle-freeze")},color:1===u.frozen?"good":"bad",children:1===u.frozen?"Freeze Subsystem":"Unfreeze Subsystem"})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Fire Cnt: ",u.fire_count]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Active Turfs: ",u.active_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Excited Groups: ",u.excited_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Hotspots: ",u.hotspots_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Superconductors: ",u.conducting_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:u.showing_user,onClick:function(){return d("toggle_user_display")},children:"Personal View"})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:u.show_all,onClick:function(){return d("toggle_show_all")},children:"Display all"})})]})}),(0,o.createComponentVNode)(2,i.Box,{fillPositionedParent:!0,top:"45px",children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Area Name"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Breakdown"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Dismantle"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Turfs"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:1===u.display_max&&"Max Share"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Display"})]}),s.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Button,{content:e.area,onClick:function(){return d("move-to-target",{spot:e.jump_to})}}),2),(0,o.createVNode)(1,"td",null,e.breakdown,0),(0,o.createVNode)(1,"td",null,e.dismantle,0),(0,o.createVNode)(1,"td",null,e.size,0),(0,o.createVNode)(1,"td",null,1===u.display_max&&e.max_share,0),(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:e.should_show,onClick:function(){return d("toggle_show_group",{group:e.group})}}),2)],4,null,e.id)}))]})})})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(0),r=n(2),a=n(1),c=n(36),i=n(3);t.AtmosFilter=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.filter_types||[];return(0,o.createComponentVNode)(2,i.Window,{width:390,height:187,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.on?"power-off":"times",content:d.on?"On":"Off",selected:d.on,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(d.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return l("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:d.rate===d.max_rate,onClick:function(){return l("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,c.getGasLabel)(e.id,e.name),onClick:function(){return l("filter",{mode:e.id})}},e.id)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AtmosMixer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:370,height:165,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return i("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.set_pressure===l.max_pressure,onClick:function(){return i("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:l.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return i("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:l.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return i("node2",{concentration:t})}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AtmosPump=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:335,height:115,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,onClick:function(){return i("power")}})}),l.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return i("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.rate===l.max_rate,onClick:function(){return i("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return i("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.pressure===l.max_pressure,onClick:function(){return i("pressure",{pressure:"max"})}})]})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosRelief=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.AtmosRelief=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:335,height:115,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Open Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.open_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:l.max_pressure||4500,step:10,onChange:function(e,t){return i("open_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.open_pressure===l.max_pressure,onClick:function(){return i("open_pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Close Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.close_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:l.max_pressure||4500,step:10,onChange:function(e,t){return i("close_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.close_pressure===l.max_pressure,onClick:function(){return i("close_pressure",{pressure:"max"})}})]})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AutomatedAnnouncement=void 0;var o=n(0),r=(n(19),n(2)),a=n(1),c=n(3),i="%PERSON will be replaced with their name.\n%RANK with their job.";t.AutomatedAnnouncement=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.arrivalToggle,s=d.arrival,m=d.newheadToggle,p=d.newhead;return(0,o.createComponentVNode)(2,c.Window,{title:"Automated Announcement System",width:500,height:225,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Arrival Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",selected:u,content:u?"On":"Off",onClick:function(){return l("ArrivalToggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"info",tooltip:i,tooltipPosition:"left"}),children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:s,onChange:function(e,t){return l("ArrivalText",{newText:t})}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Departmental Head Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return l("NewheadToggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"info",tooltip:i,tooltipPosition:"left"}),children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:p,onChange:function(e,t){return l("NewheadText",{newText:t})}})})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.BankMachine=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.current_balance,s=d.siphoning,m=d.station_name;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:155,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"Authorized personnel only"}),(0,o.createComponentVNode)(2,a.Section,{title:m+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:s?"times":"sync",content:s?"Stop Siphoning":"Siphon Credits",selected:s,onClick:function(){return l(s?"halt":"siphon")}}),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u,format:function(e){return(0,c.formatMoney)(e)}})," cr"]})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Bepis=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.amount;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:480,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:l.manual_power?"Off":"On",selected:!l.manual_power,onClick:function(){return i("toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return i("account_reset")}}),children:["Console is currently being operated by ",l.account_owner?l.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:l.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[l.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:l.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:l.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return i("amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===l.manual_power||1===l.silicon_check,onClick:function(){return i("deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===l.manual_power,onClick:function(){return i("withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",l.mean_value]}),(0,o.createComponentVNode)(2,a.Box,{children:["Current chance of Success: Est. ",l.success_estimate,"%"]}),l.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===l.manual_power,onClick:function(){return i("begin_experiment")},content:"Begin Testing"})]})})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BiogeneratorContent=t.Biogenerator=void 0;var o=n(0),r=n(6),a=n(19),c=n(2),i=n(1),l=n(39),d=n(3);t.Biogenerator=function(e,t){var n=(0,c.useBackend)(t).data,r=n.beaker,a=n.processing;return(0,o.createComponentVNode)(2,d.Window,{width:550,height:380,resizable:!0,children:[!!a&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Processing..."]}),(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:[!r&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Container"}),!!r&&(0,o.createComponentVNode)(2,u)]})]})};var u=function(e,t){var n,r,d=(0,c.useBackend)(t),u=d.act,m=d.data,p=m.biomass,C=m.can_process,h=m.categories,N=void 0===h?[]:h,V=(0,c.useLocalState)(t,"searchText",""),b=V[0],f=V[1],g=(0,c.useLocalState)(t,"category",null==(n=N[0])?void 0:n.name),v=g[0],k=g[1],x=(0,a.createSearch)(b,(function(e){return e.name})),B=b.length>0&&N.flatMap((function(e){return e.items||[]})).filter(x).filter((function(e,t){return t<25}))||(null==(r=N.find((function(e){return e.name===v})))?void 0:r.items)||[];return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:p>0?"good":"bad",children:[(0,l.formatMoney)(p)," Biomass"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{autoFocus:!0,value:b,onInput:function(e,t){return f(t)},mx:1}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return u("detach")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Activate",disabled:!C,onClick:function(){return u("activate")}})],4),children:(0,o.createComponentVNode)(2,i.Flex,{children:[0===b.length&&(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:N.map((function(e){var t;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:e.name===v,onClick:function(){return k(e.name)},children:[e.name," (",(null==(t=e.items)?void 0:t.length)||0,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,basis:0,children:[0===B.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:0===b.length?"No items in this category.":"No results found."}),(0,o.createComponentVNode)(2,i.Table,{children:(0,o.createComponentVNode)(2,s,{biomass:p,items:B})})]})]})})};t.BiogeneratorContent=u;var s=function(e,t){var n=(0,c.useBackend)(t).act,a=(0,c.useLocalState)(t,"hoveredItem",{}),l=a[0],d=a[1],u=l&&l.cost||0;return e.items.map((function(n){var o=(0,c.useLocalState)(t,"amount"+n.name,1),r=o[0],a=o[1],i=l&&l.name!==n.name,d=e.biomass-u*l.amountV,onClick:function(){return d("select",{item:e.id})}})})]}),e.desc]},e.name)}))})]})]})]})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.buying,u=l.ltsrbt_built,s=l.money;if(!d)return null;var m=l.delivery_methods.map((function(e){var t=l.delivery_method_description[e.name];return Object.assign({},e,{description:t})}));return(0,o.createComponentVNode)(2,a.Modal,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:m.map((function(e){return"LTSRBT"!==e.name||u?(0,o.createComponentVNode)(2,a.Flex.Item,{mx:1,width:"250px",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"30px",children:e.name}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:e.description}),(0,o.createComponentVNode)(2,a.Button,{mt:2,content:(0,c.formatMoney)(e.price)+" cr",disabled:s=0||(r[n]=e[n]);return r}(t,["res","value"]),a=l(n),c=a[0],i=a[1];return(0,o.normalizeProps)((0,o.createVNode)(1,"canvas",null,"Canvas failed to render.",16,Object.assign({width:28*c||300,height:28*i||300},r,{onClick:function(t){return e.clickwrapper(t)}}),null,this.canvasRef))},r}(o.Component),l=function(e){var t=e.length;return[t,0!==t?e[0].length:0]};t.Canvas=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=l(u.grid),m=s[0],p=s[1];return(0,o.createComponentVNode)(2,c.Window,{width:Math.min(400,28*m*32+24),height:Math.min(400,28*p*32+24),resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,i,{value:u.grid,onCanvasClick:function(e,t){return d("paint",{x:e,y:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:[!u.finalized&&(0,o.createComponentVNode)(2,a.Button.Confirm,{onClick:function(){return d("finalize")},content:"Finalize"}),u.name]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoBountyConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.CargoBountyConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data.bountydata,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:750,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,l),buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print Bounty List",onClick:function(){return c("Print")}}),children:(0,o.createComponentVNode)(2,a.Table,{border:!0,children:[(0,o.createComponentVNode)(2,a.Table.Row,{bold:!0,italic:!0,color:"label",fontSize:1.25,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Bounty Object"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Description"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Progress"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Claim"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:1===e.priority?"rgba(252, 152, 3, 0.25)":"",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{italic:!0,textAlign:"center",p:1,children:e.description}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:[1===e.priority?(0,o.createComponentVNode)(2,a.Box,{children:"High Priority"}):"",e.completion_string]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:e.reward_string}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:1===e.claimed?"check":"",content:1===e.claimed?"Claimed":"Claim",disabled:1===e.claimed,color:1===e.can_claim?"green":"red",onClick:function(){return c("ClaimBounty",{bounty:e.bounty_ref})}})})]},e.name)}))]})})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.stored_cash);return(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i,format:function(e){return(0,c.formatMoney)(e)}})," credits"]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(203),l=n(64);t.CargoExpress=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data);return(0,o.createComponentVNode)(2,c.Window,{width:600,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.InterfaceLockNoticeBox,{accessText:"a QM-level ID card"}),!a.locked&&(0,o.createComponentVNode)(2,d)]})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(l.points)})," credits"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Cargo Bay",selected:!l.usingBeacon,onClick:function(){return c("LZCargo")}}),(0,o.createComponentVNode)(2,a.Button,{selected:l.usingBeacon,disabled:!l.hasBeacon,onClick:function(){return c("LZBeacon")},children:[l.beaconzone," (",l.beaconName,")"]}),(0,o.createComponentVNode)(2,a.Button,{content:l.printMsg,disabled:!l.canBuyBeacon,onClick:function(){return c("printBeacon")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Notice",children:l.message})]})}),(0,o.createComponentVNode)(2,i.CargoCatalog,{express:!0})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoHoldTerminal=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.CargoHoldTerminal=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.points,u=l.pad,s=l.sending,m=l.status_report;return(0,o.createComponentVNode)(2,c.Window,{width:600,height:230,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Cargo Value",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(d)})," credits"]})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Recalculate Value",disabled:!u,onClick:function(){return i("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{icon:s?"times":"arrow-up",content:s?"Stop Sending":"Send Goods",selected:s,disabled:!u,onClick:function(){return i(s?"stop":"send")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u?"good":"bad",children:u?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:m})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.CellularEmporium=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.abilities;return(0,o.createComponentVNode)(2,c.Window,{width:900,height:480,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!l.can_readapt,onClick:function(){return i("readapt")}}),children:l.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return i("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncher=void 0;var o=n(0),r=n(9),a=n(6),c=n(79),i=(n(19),n(204)),l=n(2),d=n(1),u=n(3);function s(e,t,n,o,r,a,c){try{var i=e[a](c),l=i.value}catch(d){return void n(d)}i.done?t(l):Promise.resolve(l).then(o,r)}function m(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var a=e.apply(t,n);function c(e){s(a,o,r,c,i,"next",e)}function i(e){s(a,o,r,c,i,"throw",e)}c(undefined)}))}}var p={color:"grey"},C=function(e){var t=(0,l.useLocalState)(e,"compact",!1),n=t[0],o=t[1];return[n,function(){return o(!n)}]};t.CentcomPodLauncher=function(e,t){var n=C(t)[0];return(0,o.createComponentVNode)(2,u.Window,{resizable:!0,title:n?"Use against Helen Weinstein":"Supply Pod Menu (Use against Helen Weinstein)",overflow:"hidden",width:n?435:690,height:n?360:440,children:(0,o.createComponentVNode)(2,h)},"CPL_"+n)};var h=function(e,t){var n=C(t)[0];return(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,d.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{grow:0,shrink:0,children:(0,o.createComponentVNode)(2,L)}),(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,grow:1,children:(0,o.createComponentVNode)(2,d.Flex,{height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{grow:1,shrink:0,basis:"13em",children:(0,o.createComponentVNode)(2,d.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,S)}),(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,grow:0,children:(0,o.createComponentVNode)(2,y)}),(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,d.Section,{children:(0,o.createComponentVNode)(2,I)})})]})}),!n&&(0,o.createComponentVNode)(2,d.Flex.Item,{ml:1,grow:3,children:(0,o.createComponentVNode)(2,x)}),(0,o.createComponentVNode)(2,d.Flex.Item,{ml:1,basis:"8em",children:(0,o.createComponentVNode)(2,d.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{children:(0,o.createComponentVNode)(2,A)}),(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,grow:1,children:(0,o.createComponentVNode)(2,P)}),!n&&(0,o.createComponentVNode)(2,d.Flex.Item,{mt:1,children:(0,o.createComponentVNode)(2,R)})]})}),(0,o.createComponentVNode)(2,d.Flex.Item,{ml:1,basis:"11em",children:(0,o.createComponentVNode)(2,T)})]})})]})})},N=[{title:"View Pod",component:function(){return B}},{title:"View Bay",component:function(){return _}},{title:"View Dropoff Location",component:function(){return w}}],V=[{title:"Mobs",icon:"user"},{title:"Unanchored\nObjects",key:"Unanchored",icon:"cube"},{title:"Anchored\nObjects",key:"Anchored",icon:"anchor"},{title:"Under-Floor",key:"Underfloor",icon:"eye-slash"},{title:"Wall-Mounted",key:"Wallmounted",icon:"link"},{title:"Floors",icon:"border-all"},{title:"Walls",icon:"square"}],b=[{title:"Pre",tooltip:"Time until pod gets to station"},{title:"Fall",tooltip:"Duration of pods\nfalling animation"},{title:"Open",tooltip:"Time it takes pod to open after landing"},{title:"Exit",tooltip:"Time for pod to\nleave after opening"}],f=[{title:"Fall",act:"fallingSound",tooltip:"Plays while pod falls, timed\nto end when pod lands"},{title:"Land",act:"landingSound",tooltip:"Plays after pod lands"},{title:"Open",act:"openingSound",tooltip:"Plays when pod opens"},{title:"Exit",act:"leavingSound",tooltip:"Plays when pod leaves"}],g=[{title:"Standard"},{title:"Advanced"},{title:"Nanotrasen"},{title:"Syndicate"},{title:"Deathsquad"},{title:"Cultist"},{title:"Missile"},{title:"Syndie Missile"},{title:"Supply Box"},{title:"Clown Pod"},{title:"Fruit"},{title:"Invisible"},{title:"Gondola"},{title:"Seethrough"}],v=[{title:"1"},{title:"2"},{title:"3"},{title:"4"},{title:"ERT"}],k=[{list:[{title:"Launch All Turfs",icon:"globe",choiceNumber:0,selected:"launchChoice",act:"launchAll"},{title:"Launch Turf Ordered",icon:"sort-amount-down-alt",choiceNumber:1,selected:"launchChoice",act:"launchOrdered"},{title:"Pick Random Turf",icon:"dice",choiceNumber:2,selected:"launchChoice",act:"launchRandomTurf"},{divider:1},{title:"Launch Whole Turf",icon:"expand",choiceNumber:0,selected:"launchRandomItem",act:"launchWholeTurf"},{title:"Pick Random Item",icon:"dice",choiceNumber:1,selected:"launchRandomItem",act:"launchRandomItem"},{divider:1},{title:"Clone",icon:"clone",soloSelected:"launchClone",act:"launchClone"}],label:"Load From",alt_label:"Load",tooltipPosition:"right"},{list:[{title:"Specific Target",icon:"user-check",soloSelected:"effectTarget",act:"effectTarget"},{title:"Pod Stays",icon:"hand-paper",choiceNumber:0,selected:"effectBluespace",act:"effectBluespace"},{title:"Stealth",icon:"user-ninja",soloSelected:"effectStealth",act:"effectStealth"},{title:"Quiet",icon:"volume-mute",soloSelected:"effectQuiet",act:"effectQuiet"},{title:"Missile Mode",icon:"rocket",soloSelected:"effectMissile",act:"effectMissile"},{title:"Burst Launch",icon:"certificate",soloSelected:"effectBurst",act:"effectBurst"},{title:"Any Descent Angle",icon:"ruler-combined",soloSelected:"effectCircle",act:"effectCircle"},{title:"No Ghost Alert\n(If you dont want to\nentertain bored ghosts)",icon:"ghost",choiceNumber:0,selected:"effectAnnounce",act:"effectAnnounce"}],label:"Normal Effects",tooltipPosition:"bottom"},{list:[{title:"Explosion Custom",icon:"bomb",choiceNumber:1,selected:"explosionChoice",act:"explosionCustom"},{title:"Adminbus Explosion\nWhat are they gonna do, ban you?",icon:"bomb",choiceNumber:2,selected:"explosionChoice",act:"explosionBus"},{divider:1},{title:"Custom Damage",icon:"skull",choiceNumber:1,selected:"damageChoice",act:"damageCustom"},{title:"Gib",icon:"skull-crossbones",choiceNumber:2,selected:"damageChoice",act:"damageGib"},{divider:1},{title:"Projectile Cloud",details:!0,icon:"cloud-meatball",soloSelected:"effectShrapnel",act:"effectShrapnel"},{title:"Stun",icon:"sun",soloSelected:"effectStun",act:"effectStun"},{title:"Delimb",icon:"socks",soloSelected:"effectLimb",act:"effectLimb"},{title:"Yeet Organs",icon:"book-dead",soloSelected:"effectOrgans",act:"effectOrgans"}],label:"Harmful Effects",tooltipPosition:"bottom"}],x=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data,c=(0,l.useLocalState)(t,"tabPageIndex",1),i=c[0],u=c[1],s=a.mapRef,m=N[i].component();return(0,o.createComponentVNode)(2,d.Section,{title:"View",fill:!0,buttons:(0,o.createFragment)([!!a.customDropoff&&1===a.effectReverse&&(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",tooltip:"View Dropoff Location",icon:"arrow-circle-down",selected:2===i,onClick:function(){u(2),r("tabSwitch",{tabIndex:2})}}),(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",tooltip:"View Pod",icon:"rocket",selected:0===i,onClick:function(){u(0),r("tabSwitch",{tabIndex:0})}}),(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",tooltip:"View Source Bay",icon:"th",selected:1===i,onClick:function(){u(1),r("tabSwitch",{tabIndex:1})}}),(0,o.createVNode)(1,"span",null,"|",16,{style:p}),!!a.customDropoff&&1===a.effectReverse&&(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",icon:"lightbulb",selected:a.renderLighting,tooltip:"Render Lighting for the dropoff view",onClick:function(){r("renderLighting"),r("refreshView")}}),(0,o.createComponentVNode)(2,d.Button,{inline:!0,color:"transparent",icon:"sync-alt",tooltip:"Refresh view window in case it breaks",onClick:function(){u(i),r("refreshView")}})],0),children:(0,o.createComponentVNode)(2,d.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,d.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,m)}),(0,o.createComponentVNode)(2,d.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,d.Section,{fill:!0,children:(0,o.createComponentVNode)(2,d.ByondUi,{fillPositionedParent:!0,params:{zoom:0,id:s,type:"map"}})})})]})})},B=function(e,t){return(0,o.createComponentVNode)(2,d.Box,{color:"label",children:["Note: You can right click on this",(0,o.createVNode)(1,"br"),"blueprint pod and edit vars directly"]})},_=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data;n.config;return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Button,{content:"Teleport",icon:"street-view",onClick:function(){return r("teleportCentcom")}}),(0,o.createComponentVNode)(2,d.Button,{content:a.oldArea?a.oldArea.substring(0,17):"Go Back",disabled:!a.oldArea,icon:"undo-alt",onClick:function(){return r("teleportBack")}})],4)},w=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data;n.config,a.mapRef;return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Button,{content:"Teleport",icon:"street-view",onClick:function(){return r("teleportDropoff")}}),(0,o.createComponentVNode)(2,d.Button,{content:a.oldArea?a.oldArea.substring(0,17):"Go Back",disabled:!a.oldArea,icon:"undo-alt",onClick:function(){return r("teleportBack")}})],4)},L=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data,c=C(t),i=c[0],u=c[1];return(0,o.createComponentVNode)(2,d.Section,{fill:!0,width:"100%",children:(0,o.createComponentVNode)(2,d.Flex,{children:k.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Flex.Item,{children:[(0,o.createComponentVNode)(2,d.Box,{bold:!0,color:"label",mb:1,children:[1===i&&e.alt_label?e.alt_label:e.label,":"]}),(0,o.createComponentVNode)(2,d.Box,{children:e.list.map((function(t,n){return(0,o.createFragment)([t.divider&&(0,o.createVNode)(1,"span",null,(0,o.createVNode)(1,"b",null,"|",16),2,{style:p}),!t.divider&&(0,o.createComponentVNode)(2,d.Button,{tooltip:t.details&&a.effectShrapnel?t.title+"\n"+a.shrapnelType+"\nMagnitude:"+a.shrapnelMagnitude:t.title,tooltipPosition:e.tooltipPosition,tooltipOverrideLong:!0,icon:t.icon,content:t.content,selected:t.soloSelected?a[t.soloSelected]:a[t.selected]===t.choiceNumber,onClick:function(){return 0!==a.payload?r(t.act,t.payload):r(t.act)},style:{"vertical-align":"middle","margin-left":0!==n?"1px":"0px","margin-right":n!==e.list.length-1?"1px":"0px","border-radius":"5px"}})],0,n)}))})]}),t=g.length-2?t%2==1?"top-left":"top-right":t%2==1?"bottom-left":"bottom-right",tooltip:e.title,style:{"vertical-align":"middle","margin-right":"5px","border-radius":"20px"},selected:c.styleChoice-1===t,onClick:function(){return r("setStyle",{style:t})},children:(0,o.createComponentVNode)(2,d.Box,{className:(0,a.classes)(["supplypods64x64","pod_asset"+(t+1)]),style:{transform:"rotate(45deg) translate(-25%,-10%)","pointer-events":"none"}})},t)}))})},A=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data;C(t)[0];return(0,o.createComponentVNode)(2,d.Section,{fill:!0,title:"Bay",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Button,{icon:"trash",color:"transparent",tooltip:"Clears everything\nfrom the selected bay",tooltipOverrideLong:!0,tooltipPosition:"bottom-right",onClick:function(){return r("clearBay")}}),(0,o.createComponentVNode)(2,d.Button,{icon:"question",color:"transparent",tooltip:'Each option corresponds\nto an area on centcom.\nLaunched pods will\nbe filled with items\nin these areas according\nto the "Load from Bay"\noptions at the top left.',tooltipOverrideLong:!0,tooltipPosition:"bottom-right"})],4),children:v.map((function(e,t){return(0,o.createComponentVNode)(2,d.Button,{content:e.title,tooltipPosition:"bottom-right",selected:a.bayNumber===""+(t+1),onClick:function(){return r("switchBay",{bayNumber:""+(t+1)})}},t)}))})},P=function(e,t){var n=(0,l.useBackend)(t),a=n.act,c=n.data;return(0,o.createComponentVNode)(2,d.Section,{fill:!0,title:"Delay",buttons:(0,o.createComponentVNode)(2,d.Button,{icon:"undo",color:"transparent",tooltip:"Reset all pod\ntimings/delays",tooltipOverrideLong:!0,tooltipPosition:"bottom-right",onClick:function(){return a("resetTiming")}}),children:(0,o.createComponentVNode)(2,d.LabeledControls,{wrap:!0,children:b.map((function(e,t){return(0,o.createComponentVNode)(2,d.LabeledControls.Item,{label:e.title,children:(0,o.createComponentVNode)(2,d.Knob,{inline:!0,step:.02,value:c["delay_"+(t+1)]/10,unclamped:!0,minValue:0,unit:"s",format:function(e){return(0,r.toFixed)(e,2)},maxValue:10,color:c["delay_"+(t+1)]/10>10?"orange":"default",onDrag:function(e,n){a("editTiming",{timer:t+1,value:Math.max(n,0)})}})},t)}))})})},R=function(e,t){var n=(0,l.useBackend)(t),r=n.act,a=n.data;return(0,o.createComponentVNode)(2,d.Section,{fill:!0,title:"Sounds",buttons:(0,o.createComponentVNode)(2,d.Button,{icon:"volume-up",color:"transparent",selected:a.soundVolume!==a.defaultSoundVolume,tooltip:"Sound Volume:"+a.soundVolume,tooltipOverrideLong:!0,onClick:function(){return r("soundVolume")}}),children:f.map((function(e,t){return(0,o.createComponentVNode)(2,d.Button,{content:e.title,tooltip:e.tooltip,tooltipPosition:"top-right",tooltipOverrideLong:!0,selected:a[e.act],onClick:function(){return r(e.act)}},t)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ChemAcclimator=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:320,height:271,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[l.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return i("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:l.target_temperature,stepPixelSize:2,onChange:function(e,t){i("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:l.enabled?"On":"Off",selected:l.enabled,onClick:function(){return i("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.max_volume,unit:"u",width:"50px",minValue:l.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return i("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:l.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:l.emptying?"Emptying":"Filling"})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ChemDebugSynthesizer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.amount,u=l.beakerCurrentVolume,s=l.beakerMaxVolume,m=l.isBeakerLoaded,p=l.beakerContents,C=void 0===p?[]:p;return(0,o.createComponentVNode)(2,c.Window,{width:390,height:330,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return i("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"u",minValue:1,maxValue:s,step:1,stepPixelSize:2,onChange:function(e,t){return i("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return i("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return i("makecup")}}),children:m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," / "+s+" u"]}),C.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(0),r=n(9),a=n(19),c=n(2),i=n(1),l=n(3);t.ChemDispenser=function(e,t){var n=(0,c.useBackend)(t),p=n.act,C=n.data,h=!!C.recordingRecipe,N=(0,c.useLocalState)(t,"fs_title",!1),V=N[0],b=N[1],f=(0,c.useLocalState)(t,"mode_toggle",!0),g=f[0],v=f[1],k=C.storedContents,x=void 0===k?[]:k,B=Object.keys(C.recipes).map((function(e){return{name:e,contents:C.recipes[e]}})),_=C.beakerTransferAmounts||[],w=h&&Object.keys(C.recordingRecipe).map((function(e){return{id:e,name:(0,a.toTitleCase)(e.replace(/_/," ")),volume:C.recordingRecipe[e]}}))||C.beakerContents||[];return(0,o.createComponentVNode)(2,l.Window,{width:565,height:C.canStore?720:620,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:"Status",buttons:[h&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,color:"red",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"circle",mr:1}),"Recording"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"cog",disabled:!C.isBeakerLoaded,tooltip:"Alternate between buttons and radial input",tooltipPosition:"bottom-left",selected:g,onClick:function(){return v(!g)}},"colorButton")],children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,i.ProgressBar,{value:C.energy/C.maxEnergy,children:(0,r.toFixed)(C.energy)+" units"})})})}),(0,o.createComponentVNode)(2,i.Section,{title:"Recipes",buttons:(0,o.createFragment)([!h&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:(0,o.createComponentVNode)(2,i.Button,{color:"transparent",content:"Clear recipes",onClick:function(){return p("clear_recipes")}})}),!h&&(0,o.createComponentVNode)(2,i.Button,{icon:"circle",disabled:!C.isBeakerLoaded,content:"Record",onClick:function(){return p("record_recipe")}}),h&&(0,o.createComponentVNode)(2,i.Button,{icon:"ban",color:"transparent",content:"Discard",onClick:function(){return p("cancel_recording")}}),h&&(0,o.createComponentVNode)(2,i.Button,{icon:"save",color:"green",content:"Save",onClick:function(){return p("save_recording")}})],0),children:(0,o.createComponentVNode)(2,i.Box,{mr:-1,children:[B.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",width:"129.5px",lineHeight:1.75,content:e.name,onClick:function(){return p("dispense_recipe",{recipe:e.name})}},e.name)})),0===B.length&&(0,o.createComponentVNode)(2,i.Box,{color:"light-gray",children:"No recipes."})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Dispense",buttons:[g?_.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",selected:e===C.amount,content:e,onClick:function(){return p("amount",{target:e})}},e)})):!!C.isBeakerLoaded&&(0,o.createComponentVNode)(2,i.NumberInput,{width:"65px",unit:"u",step:C.stepAmount,stepPixelSize:C.stepAmount,disabled:!C.isBeakerLoaded,value:C.amount,minValue:1,maxValue:C.beakerMaxVolume,onDrag:function(e,t){return p("amount",{target:t})}},"dispenseInput"),(0,o.createComponentVNode)(2,i.Button,{icon:"cog",tooltip:"Color code the reagents by pH",tooltipPosition:"bottom-left",selected:V,onClick:function(){return b(!V)}},"colorButton")],children:(0,o.createComponentVNode)(2,i.Box,{mr:-1,children:C.chemicals.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",width:"129.5px",lineHeight:1.75,content:e.title,tooltip:"pH: "+e.pH,backgroundColor:V?e.pHCol:"primary",onClick:function(){return p("dispense",{reagent:e.id})}},e.id)}))})},"dispense"),!!C.canStore&&(0,o.createComponentVNode)(2,i.Section,{title:"Storage",buttons:(0,o.createComponentVNode)(2,i.Box,{children:["Transfer amount:",(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:5,value:C.amount}),"u"]}),children:[(0,o.createComponentVNode)(2,i.ProgressBar,{value:C.storedVol/C.maxVol,children:(0,r.toFixed)(C.storedVol)+" units / "+C.maxVol+" units"}),(0,o.createComponentVNode)(2,d,{children:x.map((function(e){return(0,o.createComponentVNode)(2,u,{chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:_.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"minus",disabled:h,content:e,onClick:function(){return p("remove",{amount:e})}},e)})),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Beaker",buttons:!!C.isBeakerLoaded&&(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!C.isBeakerLoaded,onClick:function(){return p("eject")}}),children:(h?"Virtual beaker":C.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:0,value:C.beakerCurrentVolume}),(0,o.createTextVNode)("/"),C.beakerMaxVolume,(0,o.createTextVNode)(" units")],0))||"No beaker"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Contents",children:[(0,o.createComponentVNode)(2,i.Box,{color:"label",children:C.isBeakerLoaded||h?0===w.length&&"Nothing":"N/A"}),(0,o.createComponentVNode)(2,s,{children:w.map((function(e){return(0,o.createComponentVNode)(2,m,{chemical:e,transferTo:"beaker"},e.id)}))}),(0,o.createComponentVNode)(2,i.Box,{children:["pH:",(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:7,value:C.beakerCurrentpH})]},"pH")]})]})})]})})};var d=i.Table,u=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=e.chemical;e.transferTo;return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:l.volume,initial:0})," units of "+l.name]}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,i.Button,{content:"Dispense",icon:"download",disabled:!!a.recordingRecipe||!a.isBeakerLoaded,mt:.5,onClick:function(){return r("unstore",{id:l.id})}})})]},l.id)},s=i.Table,m=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=e.chemical;e.transferTo;return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:l.volume,initial:0})," units of "+l.name]}),!!a.canStore&&(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,i.Button,{content:"Store",icon:"upload",disabled:!!a.recordingRecipe,mt:.5,onClick:function(){return r("store",{id:l.id})}})})]},l.id)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=(0,r.useBackend)(t).act,c=e.title,i=e.list,l=e.reagentName,d=e.onReagentInput,u=c.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:c,minHeight:"240px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return d(t)}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",onClick:function(){return n("add",{which:u,name:l})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return n("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;t.ChemFilter=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data),d=l.left,u=void 0===d?[]:d,s=l.right,m=void 0===s?[]:s,p=(0,r.useLocalState)(t,"leftName",""),C=p[0],h=p[1],N=(0,r.useLocalState)(t,"rightName",""),V=N[0],b=N[1];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i,{title:"Left",list:u,reagentName:C,onReagentInput:function(e){return h(e)}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i,{title:"Right",list:m,reagentName:V,onReagentInput:function(e){return b(e)}})})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3),l=n(205);t.ChemHeater=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.targetTemp,m=u.isActive,p=u.isBeakerLoaded,C=u.currentTemp,h=u.beakerCurrentVolume,N=u.beakerMaxVolume,V=u.beakerContents,b=void 0===V?[]:V;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:320,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"Thermostat",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return d("power")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,c.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,r.round)(s),minValue:0,maxValue:1e3,onDrag:function(e,t){return d("temperature",{target:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Reading",children:(0,o.createComponentVNode)(2,c.Box,{width:"60px",textAlign:"right",children:p&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:C,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:2,children:[h," / ",N," units"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return d("eject")}})],4),children:[(0,o.createComponentVNode)(2,l.BeakerContents,{beakerLoaded:p,beakerContents:b}),(0,o.createComponentVNode)(2,c.Box,{color:"label",children:[Number(u.currentpH).toFixed(u.partRating)," pH"]},"pH")]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ChemMaster=function(e,t){var n=(0,r.useBackend)(t).data.screen;return(0,o.createComponentVNode)(2,c.Window,{width:465,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:"analyze"===n&&(0,o.createComponentVNode)(2,m)||(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,u=i.screen,p=i.beakerContents,C=void 0===p?[]:p,h=i.bufferContents,N=void 0===h?[]:h,V=i.beakerCurrentVolume,b=i.beakerMaxVolume,f=i.isBeakerLoaded,g=i.isPillBottleLoaded,v=i.pillBottleCurrentAmount,k=i.pillBottleMaxAmount;return"analyze"===u?(0,o.createComponentVNode)(2,m):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:!!i.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:V,initial:0})," / "+b+" units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}})],4),children:[!f&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"No beaker loaded."}),!!f&&0===C.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Beaker is empty."}),(0,o.createComponentVNode)(2,l,{children:C.map((function(e){return(0,o.createComponentVNode)(2,d,{chemical:e,transferTo:"buffer"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Buffer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Mode:"}),(0,o.createComponentVNode)(2,a.Button,{color:i.mode?"good":"bad",icon:i.mode?"exchange-alt":"times",content:i.mode?"Transfer":"Destroy",onClick:function(){return c("toggleMode")}})],4),children:[0===N.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Buffer is empty."}),(0,o.createComponentVNode)(2,l,{children:N.map((function(e){return(0,o.createComponentVNode)(2,d,{chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Packaging",children:(0,o.createComponentVNode)(2,s)}),!!g&&(0,o.createComponentVNode)(2,a.Section,{title:"Pill Bottle",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[v," / ",k," pills"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("ejectPillBottle")}})],4)})],0)},l=a.Table,d=function(e,t){var n=(0,r.useBackend)(t).act,c=e.chemical,i=e.transferTo;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.volume,initial:0})," units of "+c.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"1",onClick:function(){return n("transfer",{id:c.id,amount:1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"5",onClick:function(){return n("transfer",{id:c.id,amount:5,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"10",onClick:function(){return n("transfer",{id:c.id,amount:10,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"All",onClick:function(){return n("transfer",{id:c.id,amount:1e3,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"ellipsis-h",title:"Custom amount",onClick:function(){return n("transfer",{id:c.id,amount:-1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"question",title:"Analyze",onClick:function(){return n("analyze",{id:c.id})}})]})]},c.id)},u=function(e){var t=e.label,n=e.amountUnit,r=e.amount,c=e.onChangeAmount,i=e.onCreate,l=e.sideNote;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:[(0,o.createComponentVNode)(2,a.NumberInput,{width:"84px",unit:n,step:1,stepPixelSize:15,value:r,minValue:1,maxValue:20,onChange:c}),(0,o.createComponentVNode)(2,a.Button,{ml:1,content:"Create",onClick:i}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,ml:1,color:"label",children:l})]})},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useSharedState)(t,"pillAmount",1),d=l[0],s=l[1],m=(0,r.useSharedState)(t,"patchAmount",1),p=m[0],C=m[1],h=(0,r.useSharedState)(t,"bottleAmount",1),N=h[0],V=h[1],b=(0,r.useSharedState)(t,"packAmount",1),f=b[0],g=b[1],v=(0,r.useSharedState)(t,"setvialAmount",1),k=v[0],x=v[1],B=(0,r.useSharedState)(t,"setdartAmount",1),_=B[0],w=B[1],L=i.condi,y=i.chosenPillStyle,S=i.pillStyles,I=void 0===S?[]:S;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[!L&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill type",children:I.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"30px",selected:e.id===y,textAlign:"center",color:"transparent",onClick:function(){return c("pillStyle",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.className})},e.id)}))}),!L&&(0,o.createComponentVNode)(2,u,{label:"Pills",amount:d,amountUnit:"pills",sideNote:"max 50u",onChangeAmount:function(e,t){return s(t)},onCreate:function(){return c("create",{type:"pill",amount:d,volume:"auto"})}}),!L&&(0,o.createComponentVNode)(2,u,{label:"Patches",amount:p,amountUnit:"patches",sideNote:"max 40u",onChangeAmount:function(e,t){return C(t)},onCreate:function(){return c("create",{type:"patch",amount:p,volume:"auto"})}}),!L&&(0,o.createComponentVNode)(2,u,{label:"Bottles",amount:N,amountUnit:"bottles",sideNote:"max 30u",onChangeAmount:function(e,t){return V(t)},onCreate:function(){return c("create",{type:"bottle",amount:N,volume:"auto"})}}),!L&&(0,o.createComponentVNode)(2,u,{label:"Hypovials",amount:k,amountUnit:"vials",sideNote:"max 60u",onChangeAmount:function(e,t){return x(t)},onCreate:function(){return c("create",{type:"hypoVial",amount:k,volume:"auto"})}}),!L&&(0,o.createComponentVNode)(2,u,{label:"Smartdarts",amount:_,amountUnit:"darts",sideNote:"max 20u",onChangeAmount:function(e,t){return w(t)},onCreate:function(){return c("create",{type:"smartDart",amount:_,volume:"auto"})}}),!!L&&(0,o.createComponentVNode)(2,u,{label:"Packs",amount:f,amountUnit:"packs",sideNote:"max 10u",onChangeAmount:function(e,t){return g(t)},onCreate:function(){return c("create",{type:"condimentPack",amount:f,volume:"auto"})}}),!!L&&(0,o.createComponentVNode)(2,u,{label:"Bottles",amount:N,amountUnit:"bottles",sideNote:"max 50u",onChangeAmount:function(e,t){return V(t)},onCreate:function(){return c("create",{type:"condimentBottle",amount:N,volume:"auto"})}})]})},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(e.fermianalyze,i.analyzeVars);return(0,o.createComponentVNode)(2,a.Section,{title:"Analysis Results",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Back",onClick:function(){return c("goScreen",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",children:l.state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,a.ColorBox,{color:l.color,mr:1}),l.color]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:l.description}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Metabolization Rate",children:[l.metaRate," u/minute"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Threshold",children:l.overD}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Threshold",children:l.addicD}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Purity",children:l.purityF}),!!i.fermianalyze&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inverse Ratio",children:l.inverseRatioF}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Purity E",children:l.purityE}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Lower Optimal Temperature",children:l.minTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upper Optimal Temperature",children:l.maxTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosive Temperature",children:l.eTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"pH Peak",children:l.pHpeak})],4)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ChemPress=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.current_volume,u=l.product_name,s=l.pill_style,m=l.pill_styles,p=void 0===m?[]:m,C=l.product,h=l.min_volume,N=l.max_volume;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:227,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Product",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Pills",checked:"pill"===C,onClick:function(){return i("change_product",{product:"pill"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Patches",checked:"patch"===C,onClick:function(){return i("change_product",{product:"patch"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Bottles",checked:"bottle"===C,onClick:function(){return i("change_product",{product:"bottle"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"u",width:"43px",minValue:h,maxValue:N,step:1,stepPixelSize:2,onChange:function(e,t){return i("change_current_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:u,placeholder:u,onChange:function(e,t){return i("change_product_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Box,{as:"span",children:C})]}),"pill"===C&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"30px",selected:e.id===s,textAlign:"center",color:"transparent",onClick:function(){return i("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(0),r=n(14),a=n(6),c=n(2),i=n(1),l=n(3);t.ChemReactionChamber=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=(0,c.useLocalState)(t,"reagentName",""),m=s[0],p=s[1],C=(0,c.useLocalState)(t,"reagentQuantity",1),h=C[0],N=C[1],V=u.emptying,b=u.reagents||[];return(0,o.createComponentVNode)(2,l.Window,{width:250,height:225,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,color:V?"bad":"good",children:V?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,i.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(e,t){return p(t)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,a.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,i.NumberInput,{value:h,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(e,t){return N(t)}}),(0,o.createComponentVNode)(2,i.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:"plus",onClick:function(){return d("add",{chem:m,amount:h})}})],4)],4),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"minus",color:"bad",onClick:function(){return d("remove",{chem:t})}}),children:e},t)}))(b)]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.ChemSplitter=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.straight,s=d.side,m=d.max_transfer;return(0,o.createComponentVNode)(2,i.Window,{width:220,height:105,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:m,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return l("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:s,unit:"u",width:"55px",minValue:1,maxValue:m,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return l("set_amount",{target:"side",amount:t})}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.ChemSynthesizer=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.amount,s=d.current_reagent,m=d.chemicals,p=void 0===m?[]:m,C=d.possible_amounts,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:375,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Box,{children:h.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===u,onClick:function(){return l("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,c.Box,{mt:1,children:p.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===s,onClick:function(){return l("select",{reagent:e.id})}},e.id)}))})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CivCargoHoldTerminal=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.CivCargoHoldTerminal=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.pad,s=d.sending,m=d.status_report,p=d.id_inserted,C=d.id_bounty_info;d.id_bounty_value,d.id_bounty_num;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,width:500,height:375,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{color:p?"blue":"default",children:p?"Welcome valued employee.":"To begin, insert your ID into the console."}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u?"good":"bad",children:u?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:m})]})}),(0,o.createComponentVNode)(2,i)]}),(0,o.createComponentVNode)(2,a.Flex.Item,{m:1,children:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"sync",content:"Check Contents",disabled:!u||!p,onClick:function(){return l("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:s?"times":"arrow-up",content:s?"Stop Sending":"Send Goods",selected:s,disabled:!u||!p,onClick:function(){return l(s?"stop":"send")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:C?"recycle":"pen",color:C?"green":"default",content:C?"Replace Bounty":"New Bounty",disabled:!p,onClick:function(){return l("bounty")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Eject",disabled:!p,onClick:function(){return l("eject")}})],4)})]})})})};var i=function(e,t){var n=(0,r.useBackend)(t).data,c=n.id_bounty_info,i=n.id_bounty_value,l=n.id_bounty_num;return(0,o.createComponentVNode)(2,a.Section,{title:"Bounty Info",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:c||"N/A, please add a new bounty."}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Quantity",children:c?l:"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Value",children:c?i:"N/A"})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ClockworkSlab=void 0;for(var o=n(0),r=n(2),a=n(14),c=n(1),i=n(3),l="",d=0;d=w,tooltip:e.tip,tooltipPosition:"left",onClick:function(){return d("recite",{script:e.type})},children:"Recite "+e.required})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,disabled:!e.quickbind,onClick:function(){return d("bind",{script:e.type})},children:["content=",e.bound?"Unbind "+e.bound:"Quickbind"]})})]},e.name)}))})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"],l=["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"],d=["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"],u=["the Red","the Soulless","the Master","the Lord of all things","Jr."];t.CodexGigas=function(e,t){var n=(0,r.useBackend)(t),s=n.act,m=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:450,height:450,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[m.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==m.currentSection,onClick:function(){return s(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:m.currentSection>2,onClick:function(){return s(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:m.currentSection>4,onClick:function(){return s(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==m.currentSection,onClick:function(){return s(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:m.currentSection<4,onClick:function(){return s("search")}})})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(0),r=(n(19),n(2)),a=n(1),c=n(3);t.ComputerFabricator=function(e,t){var n=(0,r.useBackend)(t),s=n.act,m=n.data;return(0,o.createComponentVNode)(2,c.Window,{title:"Personal Computer Vendor",width:500,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==m.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return s("clean_order")}}),0===m.state&&(0,o.createComponentVNode)(2,i),1===m.state&&(0,o.createComponentVNode)(2,l),2===m.state&&(0,o.createComponentVNode)(2,d),3===m.state&&(0,o.createComponentVNode)(2,u)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act;n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:"306px",children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return c("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return c("pick_device",{pick:"2"})}})})]})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:"282px",buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return c("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return c("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Secondary Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a secondary RFID card reader, for manipulating or\nreading from a second standard RFID card.\nPlease note that a primary card reader is necessary to\nallow the device to read your identification, but one\nis included in the base price.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return c("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return c("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return c("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return c("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return c("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return c("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:2,onClick:function(){return c("confirm_order")}})]})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:"282px",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?c.COLORS.department.security:e>=20&&e<30?c.COLORS.department.medbay:e>=30&&e<40?c.COLORS.department.science:e>=40&&e<50?c.COLORS.department.engineering:e>=50&&e<60?c.COLORS.department.cargo:e>=200&&e<230?c.COLORS.department.centcom:c.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:2,color:c.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(){return(0,o.createComponentVNode)(2,i.Window,{title:"Crew Monitor",width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{minHeight:"540px",children:(0,o.createComponentVNode)(2,s)})})})};var s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,s=i.sensors||[];return(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(C=e.ijob,C%10==0),color:d(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,n=e.toxdam,r=e.burndam,s=e.brutedam,m=t+n+r+s,p=Math.min(Math.max(Math.ceil(m/25),0),5),l[p])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return c("select_person",{name:e.name})}})})]},e.name);var t,n,r,s,m,p,C}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(0),r=n(2),a=n(1),c=n(205),i=n(3),l=[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}];t.Cryo=function(){return(0,o.createComponentVNode)(2,i.Window,{width:400,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,d)})})};var d=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:d.occupant.name||"No Occupant"}),!!d.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:d.occupant.statstate,children:d.occupant.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:d.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.occupant.health/d.occupant.maxHealth,color:d.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant.health})})}),l.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.isOperating?"power-off":"times",disabled:d.isOpen,onClick:function(){return i("power")},color:d.isOperating&&"green",children:d.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:d.isOpen?"unlock":"lock",onClick:function(){return i("door")},content:d.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:d.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return i("autoeject")},content:d.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!d.isBeakerLoaded,onClick:function(){return i("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:d.isBeakerLoaded,beakerContents:d.beakerContents})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.DecalPainter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.decal_list||[],u=l.color_list||[],s=l.dir_list||[];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===l.decal_style,onClick:function(){return i("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===l.decal_color,onClick:function(){return i("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===l.decal_direction,onClick:function(){return i("selected direction",{dirs:e.dirs})}},e.dirs)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.DisposalUnit=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data;return u.full_pressure?(n="good",i="Ready"):u.panel_open?(n="bad",i="Power Disabled"):u.pressure_charging?(n="average",i="Pressurizing"):(n="bad",i="Off"),(0,o.createComponentVNode)(2,c.Window,{width:300,height:180,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:n,children:i}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:u.flush?"toggle-on":"toggle-off",disabled:u.isai||u.panel_open,content:u.flush?"Disengage":"Engage",onClick:function(){return d(u.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:u.isai,content:"Eject Contents",onClick:function(){return d("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:u.panel_open,selected:u.pressure_charging,onClick:function(){return d(u.pressure_charging?"pump-0":"pump-1")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaConsoleCommands=t.DnaConsole=void 0;var o=n(0),r=n(14),a=n(30),c=n(6),i=n(19),l=n(63),d=n(2),u=n(1),s=n(3);var m=["A","T","C","G"],p={A:"green",T:"green",G:"blue",C:"blue",X:"grey"},C={1:"good",2:"bad",4:"average"},h=function(e,t){return e.Alias===t.Alias&&e.AppliedChromo===t.AppliedChromo};t.DnaConsole=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=(n.act,r.isPulsingRads),c=r.radPulseSeconds,i=r.view.consoleMode;return(0,o.createComponentVNode)(2,s.Window,{title:"DNA Console",width:539,height:710,resizable:!0,children:[!!a&&(0,o.createComponentVNode)(2,u.Dimmer,{fontSize:"14px",textAlign:"center",children:[(0,o.createComponentVNode)(2,u.Icon,{mr:1,name:"spinner",spin:!0}),"Radiation pulse in progress...",(0,o.createComponentVNode)(2,u.Box,{mt:1}),c,"s"]}),(0,o.createComponentVNode)(2,s.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,N),(0,o.createComponentVNode)(2,g),"storage"===i&&(0,o.createComponentVNode)(2,k),"sequencer"===i&&(0,o.createComponentVNode)(2,L),"enzymes"===i&&(0,o.createComponentVNode)(2,T)]})]})};var N=function(e,t){return(0,o.createComponentVNode)(2,u.Section,{title:"DNA Scanner",buttons:(0,o.createComponentVNode)(2,V),children:(0,o.createComponentVNode)(2,f)})},V=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDelayedAction,i=r.isPulsingRads,l=r.isScannerConnected,s=r.isScrambleReady,m=r.isViableSubject,p=r.scannerLocked,C=r.scannerOpen,h=r.scrambleSeconds;return l?(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,u.Button,{content:"Cancel Delayed Action",onClick:function(){return a("cancel_delay")}}),!!m&&(0,o.createComponentVNode)(2,u.Button,{disabled:!s||i,onClick:function(){return a("scramble_dna")},children:["Scramble DNA",!s&&" ("+h+"s)"]}),(0,o.createComponentVNode)(2,u.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,u.Button,{icon:p?"lock":"lock-open",color:p&&"bad",disabled:C,content:p?"Locked":"Unlocked",onClick:function(){return a("toggle_lock")}}),(0,o.createComponentVNode)(2,u.Button,{disabled:p,content:C?"Close":"Open",onClick:function(){return a("toggle_door")}})],0):(0,o.createComponentVNode)(2,u.Button,{content:"Connect Scanner",onClick:function(){return a("connect_scanner")}})},b=function(e,t){var n=e.status;return 0===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"good",children:"Conscious"}):2===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"average",children:"Unconscious"}):1===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"average",children:"Critical"}):3===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"bad",children:"Dead"}):4===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"bad",children:"Transforming"}):(0,o.createComponentVNode)(2,u.Box,{inline:!0,children:"Unknown"})},f=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=(n.act,r.subjectName),c=r.isScannerConnected,i=r.isViableSubject,l=r.subjectHealth,s=r.subjectRads,m=r.subjectStatus;return c?i?(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Status",children:[a,(0,o.createComponentVNode)(2,u.Icon,{mx:1,color:"label",name:"long-arrow-alt-right"}),(0,o.createComponentVNode)(2,b,{status:m})]}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,u.ProgressBar,{value:l,minValue:0,maxValue:100,ranges:{olive:[101,Infinity],good:[70,101],average:[30,70],bad:[-Infinity,30]},children:[l,"%"]})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Radiation",children:(0,o.createComponentVNode)(2,u.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{bad:[71,Infinity],average:[30,71],good:[0,30],olive:[-Infinity,0]},children:[s,"%"]})})]}):(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"No viable subject found in DNA Scanner."}):(0,o.createComponentVNode)(2,u.Box,{color:"bad",children:"DNA Scanner is not connected."})},g=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDisk,i=r.isInjectorReady,l=r.injectorSeconds,s=r.view.consoleMode;return(0,o.createComponentVNode)(2,u.Section,{title:"DNA Console",buttons:!i&&(0,o.createComponentVNode)(2,u.Box,{lineHeight:"20px",color:"label",children:["Injector on cooldown (",l,"s)"]}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,u.Button,{content:"Storage",selected:"storage"===s,onClick:function(){return a("set_view",{consoleMode:"storage"})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Sequencer",disabled:!r.isViableSubject,selected:"sequencer"===s,onClick:function(){return a("set_view",{consoleMode:"sequencer"})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Enzymes",selected:"enzymes"===s,onClick:function(){return a("set_view",{consoleMode:"enzymes"})}})]}),!!c&&(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Disk",children:(0,o.createComponentVNode)(2,u.Button,{icon:"eject",content:"Eject",onClick:function(){a("eject_disk"),a("set_view",{storageMode:"console"})}})})]})})};t.DnaConsoleCommands=g;var v=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDisk,i=r.view,l=i.storageMode,s=i.storageConsSubMode,m=i.storageDiskSubMode;return(0,o.createFragment)(["console"===l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Button,{selected:"mutations"===s,content:"Mutations",onClick:function(){return a("set_view",{storageConsSubMode:"mutations"})}}),(0,o.createComponentVNode)(2,u.Button,{selected:"chromosomes"===s,content:"Chromosomes",onClick:function(){return a("set_view",{storageConsSubMode:"chromosomes"})}})],4),"disk"===l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Button,{selected:"mutations"===m,content:"Mutations",onClick:function(){return a("set_view",{storageDiskSubMode:"mutations"})}}),(0,o.createComponentVNode)(2,u.Button,{selected:"diskenzymes"===m,content:"Enzymes",onClick:function(){return a("set_view",{storageDiskSubMode:"diskenzymes"})}})],4),(0,o.createComponentVNode)(2,u.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,u.Button,{content:"Console",selected:"console"===l,onClick:function(){return a("set_view",{storageMode:"console",storageConsSubMode:"mutations"})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Disk",disabled:!c,selected:"disk"===l,onClick:function(){return a("set_view",{storageMode:"disk",storageDiskSubMode:"mutations"})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Adv. Injector",selected:"injector"===l,onClick:function(){return a("set_view",{storageMode:"injector"})}})],0)},k=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.view,i=c.storageMode,l=c.storageConsSubMode,s=c.storageDiskSubMode,m=r.diskMakeupBuffer,p=r.diskHasMakeup,C=r.storage[i];return(0,o.createComponentVNode)(2,u.Section,{title:"Storage",buttons:(0,o.createComponentVNode)(2,v),children:["console"===i&&"mutations"===l&&(0,o.createComponentVNode)(2,x,{mutations:C}),"console"===i&&"chromosomes"===l&&(0,o.createComponentVNode)(2,B),"disk"===i&&"mutations"===s&&(0,o.createComponentVNode)(2,x,{mutations:C}),"disk"===i&&"diskenzymes"===s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,M,{makeup:m}),(0,o.createComponentVNode)(2,u.Button,{icon:"times",color:"red",disabled:!p,content:"Delete",onClick:function(){return a("del_makeup_disk")}})],4),"injector"===i&&(0,o.createComponentVNode)(2,j)]})},x=function(e,t){var n=e.customMode,r=void 0===n?"":n,a=(0,d.useBackend)(t),c=a.data,l=a.act,s=e.mutations||[],m=c.view.storageMode+r,p=c.view["storage"+m+"MutationRef"],C=s.find((function(e){return e.ByondRef===p}));return!C&&s.length>0&&(C=s[0],p=C.ByondRef),(0,o.createComponentVNode)(2,u.Flex,{children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:"140px",children:(0,o.createComponentVNode)(2,u.Section,{title:(0,i.capitalize)(c.view.storageMode)+" Storage",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,u.Button,{fluid:!0,ellipsis:!0,color:"transparent",selected:e.ByondRef===p,content:e.Name,onClick:function(){var t;return l("set_view",((t={})["storage"+m+"MutationRef"]=e.ByondRef,t))}},e.ByondRef)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{children:(0,o.createComponentVNode)(2,u.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Mutation Info",level:2,children:(0,o.createComponentVNode)(2,_,{mutation:C})})})]})},B=function(e,t){var n,a=(0,d.useBackend)(t),c=a.data,i=a.act,l=null!=(n=c.chromoStorage)?n:[],s=(0,r.uniqBy)((function(e){return e.Name}))(l),m=c.view.storageChromoName,p=l.find((function(e){return e.Name===m}));return(0,o.createComponentVNode)(2,u.Flex,{children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:"140px",children:(0,o.createComponentVNode)(2,u.Section,{title:"Console Storage",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,u.Button,{fluid:!0,ellipsis:!0,color:"transparent",selected:e.Name===m,content:e.Name,onClick:function(){return i("set_view",{storageChromoName:e.Name})}},e.Index)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{children:(0,o.createComponentVNode)(2,u.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Chromosome Info",level:2,children:!p&&(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"Nothing to show."})||(0,o.createFragment)([(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:p.Name}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Description",children:p.Description}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Amount",children:l.filter((function(e){return e.Name===p.Name})).length})]}),(0,o.createComponentVNode)(2,u.Button,{mt:2,icon:"eject",content:"Eject Chromosome",onClick:function(){return i("eject_chromo",{chromo:p.Name})}})],4)})})]})},_=function(e,t){var n,c,i,l=e.mutation,s=(0,d.useBackend)(t),m=s.data,p=s.act,N=m.diskCapacity,V=m.diskReadOnly,b=m.hasDisk,f=m.isInjectorReady,g=null!=(n=m.storage.disk)?n:[],v=null!=(c=m.storage.console)?c:[],k=null!=(i=m.storage.injector)?i:[];if(!l)return(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"Nothing to show."});if("occupant"===l.Source&&!l.Discovered)return(0,o.createComponentVNode)(2,u.LabeledList,{children:(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:l.Alias})});var x=v.find((function(e){return h(e,l)})),B=g.find((function(e){return h(e,l)})),_=(0,a.flow)([(0,r.uniqBy)((function(e){return e.Name})),(0,r.filter)((function(e){return e.Name!==l.Name}))])([].concat(g,v));return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:C[l.Quality],children:l.Name})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Description",children:l.Description}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Instability",children:l.Instability})]}),(0,o.createComponentVNode)(2,u.Divider),(0,o.createComponentVNode)(2,u.Box,{children:["disk"===l.Source&&(0,o.createComponentVNode)(2,W,{disabled:!b||N<=0||V,mutations:_,source:l}),"console"===l.Source&&(0,o.createComponentVNode)(2,W,{mutations:_,source:l}),["occupant","disk","console"].includes(l.Source)&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:k.map((function(e){return e.name})),disabled:0===k.length||!l.Active,selected:"Add to advanced injector",onSelected:function(e){return p("add_advinj_mut",{mutref:l.ByondRef,advinj:e,source:l.Source})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"syringe",disabled:!f||!l.Active,content:"Print Activator",onClick:function(){return p("print_injector",{mutref:l.ByondRef,is_activator:1,source:l.Source})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"syringe",disabled:!f||!l.Active,content:"Print Mutator",onClick:function(){return p("print_injector",{mutref:l.ByondRef,is_activator:0,source:l.Source})}})],4)]}),["disk","occupant"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"save",disabled:x||!l.Active,content:"Save to Console",onClick:function(){return p("save_console",{mutref:l.ByondRef,source:l.Source})}}),["console","occupant"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"save",disabled:B||!b||N<=0||V||!l.Active,content:"Save to Disk",onClick:function(){return p("save_disk",{mutref:l.ByondRef,source:l.Source})}}),["console","disk","injector"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"times",color:"red",content:"Delete from "+l.Source,onClick:function(){return p("delete_"+l.Source+"_mut",{mutref:l.ByondRef})}}),(2===l.Class||!!l.Scrambled&&"occupant"===l.Source)&&(0,o.createComponentVNode)(2,u.Button,{content:"Nullify",onClick:function(){return p("nullify",{mutref:l.ByondRef})}}),(0,o.createComponentVNode)(2,u.Divider),(0,o.createComponentVNode)(2,w,{disabled:"occupant"!==l.Source,mutation:l})],0)},w=function(e,t){var n=e.mutation,r=e.disabled,a=(0,d.useBackend)(t),c=(a.data,a.act);return 0===n.CanChromo?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"No compatible chromosomes"}):1===n.CanChromo?r?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"No chromosome applied."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:n.ValidStoredChromos,disabled:0===n.ValidStoredChromos.length,selected:0===n.ValidStoredChromos.length?"No Suitable Chromosomes":"Select a chromosome",onSelected:function(e){return c("apply_chromo",{chromo:e,mutref:n.ByondRef})}}),(0,o.createComponentVNode)(2,u.Box,{color:"label",mt:1,children:["Compatible with: ",n.ValidChromos]})],4):2===n.CanChromo?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:["Applied chromosome: ",n.AppliedChromo]}):null},L=function(e,t){var n,r,a=(0,d.useBackend)(t),c=a.data,i=a.act,s=null!=(n=null==(r=c.storage)?void 0:r.occupant)?n:[],m=c.isJokerReady,p=c.isMonkey,C=c.jokerSeconds,h=c.subjectStatus,N=c.view,V=N.sequencerMutation,b=N.jokerActive,f=s.find((function(e){return e.Alias===V}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Flex,{spacing:1,mb:1,children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:s.length<=8?"154px":"174px",children:(0,o.createComponentVNode)(2,u.Section,{title:"Sequences",height:"214px",overflowY:s.length>8&&"scroll",children:s.map((function(e){return(0,o.createComponentVNode)(2,y,{url:(0,l.resolveAsset)(e.Image),selected:e.Alias===V,onClick:function(){i("set_view",{sequencerMutation:e.Alias}),i("check_discovery",{alias:e.Alias})}},e.Alias)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Sequence Info",minHeight:"100%",children:(0,o.createComponentVNode)(2,_,{mutation:f})})})]}),3===h&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: DECEASED."})||p&&"Monkified"!==(null==f?void 0:f.Name)&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: MONKEY."})||4===h&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: TRANSFORMING."})||(0,o.createComponentVNode)(2,u.Section,{title:"Genome Sequencer\u2122",buttons:!m&&(0,o.createComponentVNode)(2,u.Box,{lineHeight:"20px",color:"label",children:["Joker on cooldown (",C,"s)"]})||b&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Box,{mr:1,inline:!0,color:"label",children:"Click on a gene to reveal it."}),(0,o.createComponentVNode)(2,u.Button,{content:"Cancel Joker",onClick:function(){return i("set_view",{jokerActive:""})}})],4)||(0,o.createComponentVNode)(2,u.Button,{icon:"crown",color:"purple",content:"Use Joker",onClick:function(){return i("set_view",{jokerActive:"1"})}}),children:(0,o.createComponentVNode)(2,I,{mutation:f})})],0)},y=function(e,t){var n,r=e.url,a=e.selected,c=e.onClick;return a&&(n="2px solid #22aa00"),(0,o.createComponentVNode)(2,u.Box,{as:"img",src:r,style:{width:"64px",margin:"2px","margin-left":"4px",outline:n},onClick:c})},S=function(e,t){var n=e.gene,r=e.onChange,a=e.disabled,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["gene","onChange","disabled"]),i=m.length,l=m.indexOf(n),d=a&&p.X||p[n];return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Button,Object.assign({},c,{color:d,onClick:function(e){if(e.preventDefault(),r)if(-1!==l){var t=m[(l+1)%i];r(e,t)}else r(e,m[0])},oncontextmenu:function(e){if(e.preventDefault(),r)if(-1!==l){var t=m[(l-1+i)%i];r(e,t)}else r(e,m[i-1])},children:n})))},I=function(e,t){var n=e.mutation,r=(0,d.useBackend)(t),a=r.data,i=r.act,l=a.view.jokerActive;if(!n)return(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"No genome selected for sequencing."});if(n.Scrambled)return(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"Sequence unreadable due to unpredictable mutation."});for(var s=n.Sequence,m=n.DefaultSeq,p=[],C=function(e){var t=s.charAt(e),r=(0,o.createComponentVNode)(2,S,{width:"22px",textAlign:"center",disabled:!!n.Scrambled||1!==n.Class,className:"X"===(null==m?void 0:m.charAt(e))&&!n.Active&&(0,c.classes)(["outline-solid","outline-color-orange"]),gene:t,onChange:function(t,o){if(!t.ctrlKey)return l?(i("pulse_gene",{pos:e+1,gene:"J",alias:n.Alias}),void i("set_view",{jokerActive:""})):void i("pulse_gene",{pos:e+1,gene:o,alias:n.Alias});i("pulse_gene",{pos:e+1,gene:"X",alias:n.Alias})}});p.push(r)},h=0;h=3){var r=(0,o.createComponentVNode)(2,u.Box,{inline:!0,width:"22px",mx:"1px",children:s});l.push(r),s=[]}},p=0;p=i,onCommit:function(e,t){return a("new_adv_inj",{name:t})}})})]})},W=function(e,t){var n=e.mutations,r=void 0===n?[]:n,a=e.source,c=(0,d.useBackend)(t),i=c.act;c.data;return(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:r.map((function(e){return e.Name})),disabled:0===r.length,selected:"Combine mutations",onSelected:function(e){return i("combine_"+a.Source,{firstref:(t=e,null==(n=r.find((function(e){return e.Name===t})))?void 0:n.ByondRef),secondref:a.ByondRef});var t,n}},a.ByondRef)}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.DnaVault=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.completed,u=l.used,s=l.choiceA,m=l.choiceB,p=l.dna,C=l.dna_max,h=l.plants,N=l.plants_max,V=l.animals,b=l.animals_max;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p/C,children:p+" / "+C+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/N,children:h+" / "+N+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:V/V,children:V+" / "+b+" Samples"})})]})}),!(!d||u)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:s,textAlign:"center",onClick:function(){return i("gene",{choice:s})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:m,textAlign:"center",onClick:function(){return i("gene",{choice:m})}})})]})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(0),r=n(2),a=n(1),c=n(19),i=n(3);t.EightBallVote=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.shaking);return(0,o.createComponentVNode)(2,i.Window,{width:400,height:600,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})||(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.question,u=l.answers,s=void 0===u?[]:u;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',d,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,c.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return i("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Electrolyzer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Electrolyzer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!l.hasPowercell||!l.open,onClick:function(){return i("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,disabled:!l.hasPowercell,onClick:function(){return i("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!l.hasPowercell&&"bad",children:l.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.powerLevel/100,content:l.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Electropack=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.Electropack=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.power,s=d.code,m=d.frequency,p=d.minFrequency,C=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{width:260,height:137,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:p/10,maxValue:C/10,value:m/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onDrag:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Code",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:s,width:"80px",onDrag:function(e,t){return l("code",{code:t})}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.EmergencyShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.timer_str,u=l.enabled,s=l.emagged,m=l.engines_started,p=l.authorizations_remaining,C=l.authorizations,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:350,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:d}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:m?"good":"average",ml:1,children:m?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!u,onClick:function(){return i("abort")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!u,onClick:function(){return i("authorize")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!u,onClick:function(){return i("repeal")}})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:s?"bad":"good",children:s?"ERROR":"Remaining: "+p}),children:h.length>0?h.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"})})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(3);t.EngravedMessage=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.admin_mode,s=d.creator_key,m=d.creator_name,p=d.has_liked,C=d.has_disliked,h=d.hidden_message,N=d.is_creator,V=d.num_likes,b=d.num_dislikes,f=d.realdate;return(0,o.createComponentVNode)(2,i.Window,{width:600,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(h)}),(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"arrow-up",content:" "+V,disabled:N,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("like")}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"circle",disabled:N,selected:!C&&!p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("neutral")}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"arrow-down",content:" "+b,disabled:N,selected:C,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("dislike")}})})]})]}),(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Created On",children:f})})}),(0,o.createComponentVNode)(2,c.Section),!!u&&(0,o.createComponentVNode)(2,c.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return l("delete")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Creator Ckey",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Creator Character Name",children:m})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitControlConsole=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.ExosuitControlConsole=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data.mechs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[0===u.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No exosuits detected"}),u.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"envelope",content:"Send Message",disabled:!e.pilot,onClick:function(){return l("send_message",{tracker_ref:e.tracker_ref})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"wifi",content:e.emp_recharging?"Recharging...":"EMP Burst",color:"bad",disabled:e.emp_recharging,onClick:function(){return l("shock",{tracker_ref:e.tracker_ref})}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.integrity<=30?"bad":e.integrity<=70&&"average")||"good",children:[e.integrity,"%"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.charge<=30?"bad":e.charge<=70&&"average")||"good",children:"number"==typeof e.charge&&e.charge+"%"||"Not Found"})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Airtank",children:"number"==typeof e.airtank&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:e.airtank,format:function(e){return(0,r.toFixed)(e,2)+" kPa"}})||"Not Equipped"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pilot",children:e.pilot||"None"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Location",children:e.location||"Unknown"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Active Equipment",children:e.active_equipment||"None"}),e.cargo_space>=0&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Used Cargo Space",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.cargo_space<=30?"good":e.cargo_space<=70&&"average")||"bad",children:[e.cargo_space,"%"]})})]})},e.tracker_ref)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitFabricator=void 0;var o,r=n(0),a=n(6),c=n(14),i=n(2),l=n(39),d=n(1),u=n(3),s=n(19);function m(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nn?{color:2,deficit:e-n}:t>n?{color:1,deficit:e}:e+t>n?{color:1,deficit:e+t-n}:{color:0,deficit:0}},V=function(e,t,n){var o={textColor:0};return Object.keys(n.cost).forEach((function(r){o[r]=N(n.cost[r],t[r],e[r]),o[r].color>o.textColor&&(o.textColor=o[r].color)})),o};t.ExosuitFabricator=function(e,t){var n,o,a=(0,i.useBackend)(t),c=a.act,l=a.data,s=l.queue||[],m=(n=l.materials||[],o={},n.forEach((function(e){o[e.name]=e.amount})),o),p=function(e,t){var n={},o={},r={},a={};return t.forEach((function(t,c){a[c]=0,Object.keys(t.cost).forEach((function(i){n[i]=n[i]||0,r[i]=r[i]||0,o[i]=N(t.cost[i],n[i],e[i]),0!==o[i].color?a[c]1&&l=0&&m+"s"||"Dispensing..."})]})})})}}},function(e,t,n){"use strict";t.__esModule=!0,t.ForbiddenLore=void 0;var o=n(0),r=n(14),a=n(30),c=n(2),i=n(1),l=n(3);t.ForbiddenLore=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.charges,m=(0,a.flow)([(0,r.sortBy)((function(e){return"Research"!==e.state}),(function(e){return"Side"===e.path}))])(u.to_know||[]);return(0,o.createComponentVNode)(2,l.Window,{width:500,height:900,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{title:"Research Eldritch Knowledge",children:["Charges left : ",s,null!==m?m.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,my:1,children:[e.path," path"]}),(0,o.createComponentVNode)(2,i.Box,{my:1,children:[(0,o.createComponentVNode)(2,i.Button,{content:e.state,disabled:e.disabled,onClick:function(){return d("research",{name:e.name,cost:e.cost})}})," ","Cost : ",e.cost]}),(0,o.createComponentVNode)(2,i.Box,{italic:!0,my:1,children:e.flavour}),(0,o.createComponentVNode)(2,i.Box,{my:1,children:e.desc})]},e.name)})):(0,o.createComponentVNode)(2,i.Box,{children:"No more knowledge can be found"})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gateway=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Gateway=function(){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.gateway_present,d=void 0!==l&&l,u=i.gateway_status,s=void 0!==u&&u,m=i.current_target,p=void 0===m?null:m,C=i.destinations,h=void 0===C?[]:C;return d?p?(0,o.createComponentVNode)(2,a.Section,{title:p.name,children:[(0,o.createComponentVNode)(2,a.Icon,{name:"rainbow",size:4,color:"green"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("deactivate")},children:"Deactivate"})]}):h.length?(0,o.createFragment)([!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Gateway Unpowered"}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:e.available&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("activate",{destination:e.ref})},children:"Activate"})||(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{m:1,textColor:"bad",children:e.reason}),!!e.timeout&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.timeout,children:"Calibrating..."})],0)},e.ref)}))],0):(0,o.createComponentVNode)(2,a.Section,{children:"No gateway nodes detected."}):(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No linked gateway"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("linkup")},children:"Linkup"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.GhostPoolProtection=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GhostPoolProtection=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.events_or_midrounds,u=l.spawners,s=l.station_sentience,m=l.silicons,p=l.minigames;return(0,o.createComponentVNode)(2,c.Window,{title:"Ghost Pool Protection",width:400,height:270,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Flex,{grow:1,height:"100%",children:(0,o.createComponentVNode)(2,a.Section,{title:"Options",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{color:"good",icon:"plus-circle",content:"Enable Everything",onClick:function(){return i("all_roles")}}),(0,o.createComponentVNode)(2,a.Button,{color:"bad",icon:"minus-circle",content:"Disable Everything",onClick:function(){return i("no_roles")}})],4),children:[(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"For people creating a sneaky event: If you toggle Station Created Sentience, people may catch on that admins have disabled roles for your event..."}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:d?"good":"bad",icon:"meteor",content:"Events and Midround Rulesets",onClick:function(){return i("toggle_events_or_midrounds")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:u?"good":"bad",icon:"pastafarianism",content:"Ghost Role Spawners",onClick:function(){return i("toggle_spawners")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:s?"good":"bad",icon:"user-astronaut",content:"Station Created Sentience",onClick:function(){return i("toggle_station_sentience")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:m?"good":"bad",icon:"robot",content:"Silicons",onClick:function(){return i("toggle_silicons")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:p?"good":"bad",icon:"gamepad",content:"Minigames",onClick:function(){return i("toggle_minigames")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:"orange",icon:"check",content:"Apply Changes",onClick:function(){return i("apply_settings")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GlandDispenser=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GlandDispenser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.glands,d=void 0===l?[]:l;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:338,theme:"abductor",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"60px",height:"60px",m:.75,textAlign:"center",lineHeight:"55px",icon:"eject",backgroundColor:e.color,content:e.amount||"0",disabled:!e.amount,onClick:function(){return i("dispense",{gland_id:e.id})}},e.id)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(0),r=n(14),a=n(30),c=n(9),i=n(102),l=n(2),d=n(1),u=n(3),s=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e,t){var n=(0,l.useBackend)(t),m=n.act,p=n.data,C=p.currentArea,h=p.currentCoords,N=p.globalmode,V=p.power,b=p.tag,f=p.updating,g=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,i.vecLength)((0,i.vecSubtract)(s(h),s(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(p.signals||[]);return(0,o.createComponentVNode)(2,u.Window,{title:"Global Positioning System",width:470,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,d.Button,{icon:"power-off",content:V?"On":"Off",selected:V,onClick:function(){return m("power")}}),children:(0,o.createComponentVNode)(2,d.LabeledList,{children:[(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,d.Button,{icon:"pencil-alt",content:b,onClick:function(){return m("rename")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,d.Button,{icon:f?"unlock":"lock",content:f?"AUTO":"MANUAL",color:!f&&"bad",onClick:function(){return m("updating")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,d.Button,{icon:"sync",content:N?"MAXIMUM":"LOCAL",selected:!N,onClick:function(){return m("globalmode")}})})]})}),!!V&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,d.Box,{fontSize:"18px",children:[C," (",h,")"]})}),(0,o.createComponentVNode)(2,d.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,d.Table,{children:[(0,o.createComponentVNode)(2,d.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,d.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),g.map((function(e){return(0,o.createComponentVNode)(2,d.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,d.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,c.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,d.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GravityGenerator=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data),d=l.charging_state,u=l.operational;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:155,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No data available"}),!!u&&0!==d&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"WARNING - Radiation detected"}),!!u&&0===d&&(0,o.createComponentVNode)(2,a.NoticeBox,{success:!0,children:"No radiation detected"}),!!u&&(0,o.createComponentVNode)(2,i)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.breaker,d=i.charge_count,u=i.charging_state,s=i.on,m=i.operational;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:!m,onClick:function(){return c("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(s&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GulagItemReclaimer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.mobs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,c.Window,{width:325,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[0===u.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No stored items"}),u.length>0&&(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!l.can_reclaim,onClick:function(){return i("release_items",{mobref:e.mob})}})})]},e.mob)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.GulagTeleporterConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.teleporter,u=l.teleporter_lock,s=l.teleporter_state_open,m=l.teleporter_location,p=l.beacon,C=l.beacon_location,h=l.id,N=l.id_name,V=l.can_teleport,b=l.goal,f=void 0===b?0:b,g=l.prisoner,v=void 0===g?{}:g;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:295,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:s?"Open":"Closed",disabled:u,selected:s,onClick:function(){return i("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",selected:u,disabled:s,onClick:function(){return i("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:d?"good":"bad",buttons:!d&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return i("scan_teleporter")}}),children:d?m:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:p?"good":"bad",buttons:!p&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return i("scan_beacon")}}),children:p?C:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:h?N:"No ID",onClick:function(){return i("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:f,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return i("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:v.name||"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:v.crimstat||"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!V,textAlign:"center",color:"bad",onClick:function(){return i("teleport")}})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Holodeck=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.can_toggle_safety,u=l.default_programs,s=void 0===u?[]:u,m=l.emag_programs,p=void 0===m?[]:m,C=l.emagged,h=l.program;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:C?"unlock":"lock",content:"Safeties",color:"bad",disabled:!d,selected:!C,onClick:function(){return i("safety")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===h,onClick:function(){return i("load_program",{type:e.type})}},e.type)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===h,onClick:function(){return i("load_program",{type:e.type})}},e.type)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holopad=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Holopad=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data.calling;return(0,o.createComponentVNode)(2,c.Window,{width:440,height:245,resizable:!0,children:[!!d&&(0,o.createComponentVNode)(2,a.Modal,{fontSize:"36px",fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,mt:2,children:(0,o.createComponentVNode)(2,a.Icon,{name:"phone-alt",rotation:25})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,children:"Dialing..."})]}),(0,o.createComponentVNode)(2,a.Box,{mt:2,textAlign:"center",fontSize:"24px",children:(0,o.createComponentVNode)(2,a.Button,{lineHeight:"40px",icon:"times",content:"Hang Up",color:"bad",onClick:function(){return l("hang_up")}})})]}),(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})]})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.on_network,d=i.on_cooldown,u=i.allowed,s=i.disk,m=i.disk_record,p=i.replay_mode,C=i.loop_mode,h=i.record_mode,N=i.holo_calls,V=void 0===N?[]:N;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Holopad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"bell",content:d?"AI Presence Requested":"Request AI Presence",disabled:!l||d,onClick:function(){return c("AIrequest")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Communicator",children:(0,o.createComponentVNode)(2,a.Button,{icon:"phone-alt",content:u?"Connect To Holopad":"Call Holopad",disabled:!l,onClick:function(){return c("holocall",{headcall:u})}})}),V.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.connected?"Current Call":"Incoming Call",children:(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"phone-slash":"phone-alt",content:e.connected?"Disconnect call from "+e.caller:"Answer call from "+e.caller,color:e.connected?"bad":"good",disabled:!l,onClick:function(){return c(e.connected?"disconnectcall":"connectcall",{holopad:e.ref})}})},e.ref)}))]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holodisk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s||p||h,onClick:function(){return c("disk_eject")}}),children:!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No holodisk"})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk Player",children:[(0,o.createComponentVNode)(2,a.Button,{icon:p?"pause":"play",content:p?"Stop":"Replay",selected:p,disabled:h||!m,onClick:function(){return c("replay_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:C?"Looping":"Loop",selected:C,disabled:h||!m,onClick:function(){return c("loop_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"exchange-alt",content:"Change Offset",disabled:!p,onClick:function(){return c("offset")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Recorder",children:[(0,o.createComponentVNode)(2,a.Button,{icon:h?"pause":"video",content:h?"End Recording":"Record",selected:h,disabled:m&&!h||p,onClick:function(){return c("record_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Clear Recording",color:"bad",disabled:!m||p||h,onClick:function(){return c("record_clear")}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.HypnoChair=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.HypnoChair=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:480,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",children:"The Enhanced Interrogation Chamber is designed to induce a deep-rooted trance trigger into the subject. Once the procedure is complete, by using the implanted trigger phrase, the authorities are able to ensure immediate and complete obedience and truthfulness."}),(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.occupant.name?l.occupant.name:"No Occupant"}),!!l.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===l.occupant.stat?"good":1===l.occupant.stat?"average":"bad",children:0===l.occupant.stat?"Conscious":1===l.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.open?"unlock":"lock",color:l.open?"default":"red",content:l.open?"Open":"Closed",onClick:function(){return i("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Phrase",children:(0,o.createComponentVNode)(2,a.Input,{value:l.trigger,onChange:function(e,t){return i("set_phrase",{phrase:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Interrogate Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:l.interrogating?"Interrupt Interrogation":"Begin Enhanced Interrogation",onClick:function(){return i("interrogate")}}),1===l.interrogating&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ImplantChair=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:280,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.occupant.name||"No Occupant"}),!!l.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===l.occupant.stat?"good":1===l.occupant.stat?"average":"bad",children:0===l.occupant.stat?"Conscious":1===l.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.open?"unlock":"lock",color:l.open?"default":"red",content:l.open?"Open":"Closed",onClick:function(){return i("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:l.ready?l.special_name||"Implant":"Recharging",onClick:function(){return i("implant")}}),0===l.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[l.ready_implants,1===l.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.InfraredEmitter=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.InfraredEmitter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.on,u=l.visible;return(0,o.createComponentVNode)(2,c.Window,{width:225,height:110,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Visibility",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"eye":"eye-slash",content:u?"Visible":"Invisible",selected:u,onClick:function(){return i("visibility")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Intellicard=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.name,u=l.isDead,s=l.isBraindead,m=l.health,p=l.wireless,C=l.radio,h=l.wiping,N=l.laws,V=void 0===N?[]:N,b=u||s;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:d||"Empty Card",buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:h?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return i("wipe")}}),children:!!d&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:b?"bad":"good",children:b?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return i("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:C,onClick:function(){return i("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:V.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Jukebox=void 0;var o=n(0),r=n(14),a=n(30),c=n(2),i=n(1),l=n(3);t.Jukebox=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.active,m=u.track_selected,p=u.track_length,C=u.track_beat,h=u.volume,N=(0,a.flow)([(0,r.sortBy)((function(e){return e.name}))])(u.songs||[]);return(0,o.createComponentVNode)(2,l.Window,{width:370,height:313,children:(0,o.createComponentVNode)(2,l.Window.Content,{children:[(0,o.createComponentVNode)(2,i.Section,{title:"Song Player",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:s?"pause":"play",content:s?"Stop":"Play",selected:s,onClick:function(){return d("toggle")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Selected",children:(0,o.createComponentVNode)(2,i.Dropdown,{"overflow-y":"scroll",width:"240px",options:N.map((function(e){return e.name})),disabled:s,selected:m||"Select a Track",onSelected:function(e){return d("select_track",{track:e})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Length",children:m?p:"No Track Selected"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Beat",children:[m?C:"No Track Selected",1===C?" beat":" beats"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Machine Settings",children:(0,o.createComponentVNode)(2,i.LabeledControls,{justify:"center",children:(0,o.createComponentVNode)(2,i.LabeledControls.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,i.Box,{position:"relative",children:[(0,o.createComponentVNode)(2,i.Knob,{size:3.2,color:h>=50?"red":"green",value:h,unit:"%",minValue:0,maxValue:100,step:1,stepPixelSize:1,disabled:s,onDrag:function(e,t){return d("set_volume",{volume:t})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"-2px",right:"-22px",color:"transparent",icon:"fast-backward",onClick:function(){return d("set_volume",{volume:"min"})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"16px",right:"-22px",color:"transparent",icon:"fast-forward",onClick:function(){return d("set_volume",{volume:"max"})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"34px",right:"-22px",color:"transparent",icon:"undo",onClick:function(){return d("set_volume",{volume:"reset"})}})]})})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.KeycardAuth=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:125,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===l.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===l.waiting&&(0,o.createFragment)([!!l.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return i("auth_swipe")},content:"Authorize"}),0===l.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return i("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return i("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return i("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(3);t.LaborClaimConsole=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.can_go_home,s=d.id_points,m=d.ores,p=d.status_info,C=d.unclaimed_points;return(0,o.createComponentVNode)(2,i.Window,{width:315,height:440,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,c.Button,{content:"Move shuttle",disabled:!u,onClick:function(){return l("move_shuttle")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Points",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,c.Button,{content:"Claim points",disabled:!C,onClick:function(){return l("claim_points")}}),children:C})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),m.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.LanguageMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.admin_mode,u=l.is_living,s=l.omnitongue,m=l.languages,p=void 0===m?[]:m,C=l.unknown_languages,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{title:"Language Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!u&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return i("select_default",{language_name:e.name})}}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return i("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return i("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!d&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(s?"Enabled":"Disabled"),selected:s,onClick:function(){return i("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:h.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return i("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",!!e.shadow&&"(gained from mob)"," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadRemote=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(206);t.LaunchpadRemote=function(e,t){var n=(0,r.useBackend)(t).data,l=n.has_pad,d=n.pad_closed;return(0,o.createComponentVNode)(2,c.Window,{title:"Briefcase Launchpad Remote",width:300,height:240,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})||d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"})||(0,o.createComponentVNode)(2,i.LaunchpadControl,{topLevel:!0})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MafiaPanel=void 0;var o=n(0),r=n(6),a=(n(19),n(2)),c=n(1),i=n(3);t.MafiaPanel=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.lobbydata,m=u.players,p=u.actions,C=u.phase,h=u.roleinfo,N=u.role_theme,V=u.admin_controls,b=u.judgement_phase,f=u.timeleft,g=u.all_roles,v=h?30*m.length:7,k=s?s.filter((function(e){return"Ready"===e.status})):null;return(0,o.createComponentVNode)(2,i.Window,{title:"Mafia",theme:N,width:650,height:293+v,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:V,children:[!h&&(0,o.createComponentVNode)(2,c.Flex,{scrollable:!0,overflowY:"scroll",direction:"column",height:"100%",grow:1,children:(0,o.createComponentVNode)(2,c.Section,{title:"Lobby",mb:1,buttons:(0,o.createComponentVNode)(2,l,{phase:C,timeleft:f,admin_controls:V}),children:(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,c.NoticeBox,{info:!0,children:["The lobby currently has ",k.length,"/12 valid players signed up."]}),(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!s&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{basis:2,className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:2,align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{basis:0,children:e.name}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:"STATUS:"}),(0,o.createComponentVNode)(2,c.Flex.Item,{width:"30%",children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Box,{color:"Ready"===e.status?"green":"red",textAlign:"center",children:[e.status," ",e.spectating]})})})]})},e)}))})]})})}),!!h&&(0,o.createComponentVNode)(2,c.Section,{title:C,minHeight:"100px",maxHeight:"50px",buttons:(0,o.createComponentVNode)(2,c.Box,{children:[!!V&&(0,o.createComponentVNode)(2,c.Button,{color:"red",icon:"gavel",tooltipPosition:"bottom-left",tooltip:"Hello admin! If it is the admin controls you seek,\nplease notice the extra scrollbar you have that players\ndo not!"})," ",(0,o.createComponentVNode)(2,c.TimeDisplay,{auto:"down",value:f})]}),children:(0,o.createComponentVNode)(2,c.Flex,{justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{align:"center",textAlign:"center",maxWidth:"500px",children:[(0,o.createVNode)(1,"b",null,[(0,o.createTextVNode)("You are the "),h.role],0),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"b",null,h.desc,0)]}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:[(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["mafia32x32",h.revealed_icon]),style:{transform:"scale(2) translate(0px, 10%)","vertical-align":"middle"}}),(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["mafia32x32",h.hud_icon]),style:{transform:"scale(2) translate(-5px, -5px)","vertical-align":"middle"}})]})]})}),(0,o.createComponentVNode)(2,c.Flex,{children:!!p&&p.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return d("mf_action",{atype:e})},children:e})},e)}))}),!!h&&(0,o.createComponentVNode)(2,c.Section,{title:"Judgement",buttons:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"info",tooltipPosition:"left",tooltip:"When someone is on trial, you are in charge of their fate.\nInnocent winning means the person on trial can live to see\nanother day... and in losing they do not. You can go back\nto abstaining with the middle button if you reconsider."}),children:[(0,o.createComponentVNode)(2,c.Flex,{justify:"space-around",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"smile-beam",content:"INNOCENT!",color:"good",disabled:!b,onClick:function(){return d("vote_innocent")}}),!b&&(0,o.createComponentVNode)(2,c.Box,{children:"There is nobody on trial at the moment."}),!!b&&(0,o.createComponentVNode)(2,c.Box,{children:"It is now time to vote, vote the accused innocent or guilty!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"angry",content:"GUILTY!",color:"bad",disabled:!b,onClick:function(){return d("vote_guilty")}})]}),(0,o.createComponentVNode)(2,c.Flex,{justify:"center",children:(0,o.createComponentVNode)(2,c.Button,{icon:"meh",content:"Abstain",color:"white",disabled:!b,onClick:function(){return d("vote_abstain")}})})]}),"No Game"!==C&&(0,o.createComponentVNode)(2,c.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,c.Section,{title:"Players",buttons:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"info",tooltip:"This is the list of all the players in\nthe game, during the day phase you may vote on them and,\ndepending on your role, select players\nat certain phases to use your ability."}),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!m&&m.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:"18px",justify:"space-between",align:"center",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{basis:16,children:[!!e.alive&&(0,o.createComponentVNode)(2,c.Box,{children:e.name}),!e.alive&&(0,o.createComponentVNode)(2,c.Box,{color:"red",children:e.name})]}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:!e.alive&&(0,o.createComponentVNode)(2,c.Box,{color:"red",children:"DEAD"})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:e.votes!==undefined&&!!e.alive&&(0,o.createFragment)([(0,o.createTextVNode)("Votes : "),e.votes,(0,o.createTextVNode)(" ")],0)}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:!!e.actions&&e.actions.map((function(t){return(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return d("mf_targ_action",{atype:t,target:e.ref})},children:t},t)}))})]})},e.ref)}))})})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,c.Section,{title:"Roles and Notes",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"address-book",tooltipPosition:"bottom-left",tooltip:"The top section is the roles in the game. You can\npress the question mark to get a quick blurb\nabout the role itself."}),(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"edit",tooltipPosition:"bottom-left",tooltip:"The bottom section are your notes. on some roles this\nwill just be an empty box, but on others it records the\nactions of your abilities (so for example, your\ndetective work revealing a changeling)."})],4),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!g&&g.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:"18px",align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:e}),(0,o.createComponentVNode)(2,c.Flex.Item,{textAlign:"right",children:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"question",onClick:function(){return d("mf_lookup",{atype:e.slice(0,-3)})}})})]})},e)}))})}),!!h&&(0,o.createComponentVNode)(2,c.Flex.Item,{height:0,grow:1,children:(0,o.createComponentVNode)(2,c.Section,{scrollable:!0,fill:!0,overflowY:"scroll",children:h!==undefined&&!!h.action_log&&h.action_log.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:e},e)}))})})]})})]}),(0,o.createComponentVNode)(2,c.Flex,{mt:1,direction:"column",children:(0,o.createComponentVNode)(2,c.Flex.Item,{children:!!V&&(0,o.createComponentVNode)(2,c.Section,{textAlign:"center",children:(0,o.createComponentVNode)(2,c.Collapsible,{title:"ADMIN CONTROLS",color:"red",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"exclamation-triangle",color:"black",tooltipPosition:"top",tooltip:"Almost all of these are all built to help me debug\nthe game (ow, debugging a 12 player game!) So they are\nrudamentary and prone to breaking at the drop of a hat.\nMake sure you know what you're doing when you press one.\nAlso because an admin did it: do not gib/delete/dust\nanyone! It will runtime the game to death!",content:"A Kind, Coder Warning",onClick:function(){return d("next_phase")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-right",tooltipPosition:"top",tooltip:"This will advance the game to the next phase\n(day talk > day voting, day voting > night/trial)\npretty fun to just spam this and freak people out,\ntry that roundend!",content:"Next Phase",onClick:function(){return d("next_phase")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"home",tooltipPosition:"top",tooltip:"Hopefully you won't use this button\noften, it's a safety net just in case\nmafia players somehow escape (nullspace\nredirects to the error room then station)\nEither way, VERY BAD IF THAT HAPPENS as\ngodmoded assistants will run free. Use\nthis to recollect them then make a bug report.",content:"Send All Players Home",onClick:function(){return d("players_home")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync-alt",tooltipPosition:"top",tooltip:"This immediately ends the game, and attempts to start\nanother. Nothing will happen if another\ngame fails to start!",content:"New Game",onClick:function(){return d("new_game")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"skull",tooltipPosition:"top",tooltip:"Deletes the datum, clears all landmarks, makes mafia\nas it was roundstart: nonexistant. Use this if you\nreally mess things up. You did mess things up, didn't you.",content:"Nuke",onClick:function(){return d("nuke")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"paint-brush",tooltipPosition:"top",tooltip:"This is the custom game creator, it is... simple.\nYou put in roles and until you press CANCEL or FINISH\nit will keep letting you add more roles. Assitants\non the bottom because of pathing stuff. Resets after\nthe round finishes back to 12 player random setups.",content:"Create Custom Setup",onClick:function(){return d("debug_setup")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"paint-roller",tooltipPosition:"top",tooltip:"If you messed up and accidently didn't make it how\nyou wanted, simply just press this to reset it. The game\nwill auto reset after each game as well.",content:"Reset Custom Setup",onClick:function(){return d("cancel_setup")}})]})})})})]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.phase,d=i.timeleft,u=i.admin_controls;return(0,o.createComponentVNode)(2,c.Box,{children:["[Phase = ",l," | ",(0,o.createComponentVNode)(2,c.TimeDisplay,{auto:"down",value:d}),"]"," ",(0,o.createComponentVNode)(2,c.Button,{icon:"clipboard-check",tooltipPosition:"bottom-left",tooltip:"Signs you up for the next game. If there\nis an ongoing one, you will be signed up\nfor the next.",content:"Sign Up",onClick:function(){return r("mf_signup")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"eye",tooltipPosition:"bottom-left",tooltip:"Spectates games until you turn it off.\nAutomatically enabled when you die in game,\nbecause I assumed you would want to see the\nconclusion. You won't get messages if you\nrejoin SS13.",content:"Spectate",onClick:function(){return r("mf_spectate")}}),!!u&&(0,o.createComponentVNode)(2,c.Button,{color:"red",icon:"gavel",tooltipPosition:"bottom-left",tooltip:"Hello admin! If it is the admin controls you seek,\nplease notice the scrollbar you have that players\ndo not!"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.MalfunctionModulePicker=void 0;var o=n(0),r=n(2),a=n(3),c=n(142);t.MalfunctionModulePicker=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.processingTime);return(0,o.createComponentVNode)(2,a.Window,{width:620,height:525,theme:"malfunction",resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.GenericUplink,{currencyAmount:i,currencySymbol:"PT"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.MechBayPowerConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.recharge_port,d=l&&l.mech,u=d&&d.cell;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:200,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return i("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.health/d.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.charge/u.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.charge})," / "+u.maxcharge]})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechpadConsole=t.MechpadControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=e.topLevel,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.pad_name,u=l.connected_mechpad;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:d,width:"170px",onChange:function(e,t){return i("rename",{name:t})}}),level:n?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return i("remove")}}),children:!u&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No Pad Connected."})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return i("launch")}})})};t.MechpadControl=i;t.MechpadConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.mechpads,s=void 0===u?[]:u,m=d.selected_id;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:130,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:0===s.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"})||(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{minHeight:"70px",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"140px",minHeight:"70px",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,ellipsis:!0,content:e.name,selected:m===e.id,color:"transparent",onClick:function(){return l("select_pad",{id:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{minHeight:"100%",children:(0,o.createComponentVNode)(2,a.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,minHeight:"100%",children:m&&(0,o.createComponentVNode)(2,i)||(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MedicalKiosk=void 0;var o=n(0),r=(n(19),n(2)),a=n(1),c=n(3);t.MedicalKiosk=function(e,t){var n=(0,r.useBackend)(t),p=(n.act,n.data),C=(0,r.useSharedState)(t,"scanIndex")[0],h=p.active_status_1,N=p.active_status_2,V=p.active_status_3,b=p.active_status_4;return(0,o.createComponentVNode)(2,c.Window,{width:575,height:420,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:1,children:(0,o.createComponentVNode)(2,a.Section,{minHeight:"100%",children:[(0,o.createComponentVNode)(2,i,{index:1,icon:"procedures",name:"General Health Scan",description:"Reads back exact values of your general health scan."}),(0,o.createComponentVNode)(2,i,{index:2,icon:"heartbeat",name:"Symptom Based Checkup",description:"Provides information based on various non-obvious symptoms,\nlike blood levels or disease status."}),(0,o.createComponentVNode)(2,i,{index:3,icon:"radiation-alt",name:"Neurological/Radiological Scan",description:"Provides information about brain trauma and radiation."}),(0,o.createComponentVNode)(2,i,{index:4,icon:"mortar-pestle",name:"Chemical and Psychoactive Scan",description:"Provides a list of consumed chemicals, as well as potential\nside effects."})]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l)})]}),!!h&&1===C&&(0,o.createComponentVNode)(2,d),!!N&&2===C&&(0,o.createComponentVNode)(2,u),!!V&&3===C&&(0,o.createComponentVNode)(2,s),!!b&&4===C&&(0,o.createComponentVNode)(2,m)]})})};var i=function(e,t){var n=e.index,c=e.name,i=e.description,l=e.icon,d=(0,r.useBackend)(t),u=d.act,s=d.data,m=(0,r.useSharedState)(t,"scanIndex"),p=m[0],C=m[1],h=s["active_status_"+n];return(0,o.createComponentVNode)(2,a.Flex,{spacing:1,align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"16px",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Icon,{name:h?"check":"dollar-sign",color:h?"green":"grey"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:l,selected:h&&p===n,tooltip:i,tooltipPosition:"right",content:c,onClick:function(){h||u("beginScan_"+n),C(n)}})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.kiosk_cost,d=i.patient_name;return(0,o.createComponentVNode)(2,a.Section,{minHeight:"100%",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:["Greetings Valued Employee! Please select a desired automatic health check procedure. Diagnosis costs ",(0,o.createVNode)(1,"b",null,[l,(0,o.createTextVNode)(" credits.")],0)]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Patient:"}),d]}),(0,o.createComponentVNode)(2,a.Button,{mt:1,tooltip:"Resets the current scanning target, cancelling current scans.",icon:"sync",color:"average",onClick:function(){return c("clearTarget")},content:"Reset Scanner"})]})},d=function(e,t){var n=(0,r.useBackend)(t).data,c=n.patient_health,i=n.brute_health,l=n.burn_health,d=n.suffocation_health,u=n.toxin_health;return(0,o.createComponentVNode)(2,a.Section,{title:"Patient Health",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c/100,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c}),"%"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxin Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})})})]})})},u=function(e,t){var n=(0,r.useBackend)(t).data,c=n.patient_status,i=n.patient_illness,l=n.illness_info,d=n.bleed_status,u=n.blood_levels,s=n.blood_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Symptom Based Checkup",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patient Status",color:"good",children:c}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease Status",children:i}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease information",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Levels",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})}),(0,o.createComponentVNode)(2,a.Box,{mt:1,color:"label",children:d})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Information",children:s})]})})},s=function(e,t){var n=(0,r.useBackend)(t).data,c=n.clone_health,i=n.brain_damage,l=n.brain_health,d=n.rad_contamination_status,u=n.rad_contamination_value,s=n.rad_sickness_status,m=n.rad_sickness_value,p=n.trauma_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Patient Neurological and Radiological Health",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cellular Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c})})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Status",color:"health-0",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Trauma Status",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Sickness Status",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Sickness Percentage",children:[m,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Contamination Status",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Contamination Percentage",children:[u,"%"]})]})})},m=function(e,t){var n=(0,r.useBackend)(t).data,c=n.chemical_list,i=void 0===c?[]:c,l=n.overdose_list,d=void 0===l?[]:l,u=n.addict_list,s=void 0===u?[]:u,m=n.hallucinating_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Chemical and Psychoactive Analysis",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chemical Contents",children:[0===i.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No reagents detected."}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[e.volume," units of ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Status",color:"bad",children:[0===d.length&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient is not overdosing."}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Overdosing on ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Status",color:"bad",children:[0===s.length&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient has no addictions."}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Addicted to ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Psychoactive Status",children:m})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Microscope=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Microscope=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=(0,r.useSharedState)(t,"tab",1),m=s[0],p=s[1],C=u.has_dish,h=u.cell_lines,N=void 0===h?[]:h,V=u.viruses,b=void 0===V?[]:V;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Dish Sample",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!C,onClick:function(){return d("eject_petridish")}})})})}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"microscope",lineHeight:"23px",selected:1===m,onClick:function(){return p(1)},children:["Micro-Organisms (",N.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"microscope",lineHeight:"23px",selected:2===m,onClick:function(){return p(2)},children:["Viruses (",b.length,")"]})]}),1===m&&(0,o.createComponentVNode)(2,i,{cell_lines:N}),2===m&&(0,o.createComponentVNode)(2,l,{viruses:b})]})})};var i=function(e,t){var n=e.cell_lines,c=(0,r.useBackend)(t);c.act,c.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.desc,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:e.growth_rate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Virus Suspectibility",children:e.suspectibility}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Required Reagents",children:e.requireds}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supplementary Reagents",children:e.supplementaries}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suppresive reagents",children:e.suppressives})]})},e.desc)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No micro-organisms found"})},l=function(e,t){var n=e.viruses;(0,r.useBackend)(t).act;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.desc},e.desc)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No viruses found"})}},function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(0),r=n(6),a=n(2),c=n(1),i=n(3);t.MiningVendor=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=[].concat(d.product_records);return(0,o.createComponentVNode)(2,i.Window,{width:425,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"User",children:d.user&&(0,o.createComponentVNode)(2,c.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,d.user.name||"Unknown",0),","," ",(0,o.createVNode)(1,"b",null,d.user.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[d.user.points,(0,o.createTextVNode)(" mining points")],0),"."]})||(0,o.createComponentVNode)(2,c.Box,{color:"light-gray",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Equipment",children:(0,o.createComponentVNode)(2,c.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[(0,o.createVNode)(1,"span",(0,r.classes)(["vending32x32",e.path]),null,1,{style:{"vertical-align":"middle"}})," ",(0,o.createVNode)(1,"b",null,e.name,0)]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{style:{"min-width":"95px","text-align":"center"},disabled:!d.user||e.price>d.user.points,content:e.price+" points",onClick:function(){return l("purchase",{ref:e.ref})}})})]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mint=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.Mint=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.inserted_materials||[];return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Materials",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.processing?"times":"power-off",content:l.processing?"Stop":"Start",selected:l.processing,onClick:function(){return i(l.processing?"stoppress":"startpress")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.material,buttons:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:l.chosen_material===e.material,onClick:function(){return i("changematerial",{material_name:e.material})}}),children:[e.amount," cm\xb3"]},e.material)}))})}),(0,o.createComponentVNode)(2,a.Section,{children:["Pressed ",l.produced_coins," coins this cycle."]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(64);t.Mule=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.on,s=d.cell,m=d.cellPercent,p=d.load,C=d.mode,h=d.modeStatus,N=d.haspai,V=d.autoReturn,b=d.autoPickup,f=d.reportDelivery,g=d.destination,v=d.home,k=d.id,x=d.destinations,B=void 0===x?[]:x,_=d.locked&&!d.siliconUser;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:425,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Status",minHeight:"110px",buttons:!_&&(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:s?m/100:0,color:s?"good":"bad"}),(0,o.createComponentVNode)(2,a.Flex,{mt:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",color:h,children:C})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Load",color:p?"good":"average",children:p||"None"})})})]})]}),!_&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!p&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return l("unload")}}),!!N&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject PAI",onClick:function(){return l("ejectpai")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Input,{value:k,onChange:function(e,t){return l("setid",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:g||"None",options:B,width:"150px",onSelected:function(e){return l("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"stop",content:"Stop",onClick:function(){return l("stop")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"play",content:"Go",onClick:function(){return l("go")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:v,options:B,width:"150px",onSelected:function(e){return l("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",content:"Go Home",onClick:function(){return l("home")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:V,content:"Auto-Return",onClick:function(){return l("autored")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:b,content:"Auto-Pickup",onClick:function(){return l("autopick")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:f,content:"Report Delivery",onClick:function(){return l("report")}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControlContent=t.NaniteChamberControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NaniteChamberControl=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:380,height:570,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.status_msg,d=i.locked,u=i.occupant_name,s=i.has_nanites,m=i.nanite_volume,p=i.regen_rate,C=i.safety_threshold,h=i.cloud_id,N=i.scan_level;if(l)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:l});var V=i.mob_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Chamber: "+u,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"lock":"lock-open",content:d?"Locked":"Unlocked",color:d?"bad":"default",onClick:function(){return c("toggle_lock")}}),children:s?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Destroy Nanites",color:"bad",onClick:function(){return c("remove_nanites")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanite Volume",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety Threshold",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:C,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return c("set_safety",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:h,minValue:0,maxValue:100,step:1,stepPixelSize:3,width:"39px",onChange:function(e,t){return c("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:V.map((function(e){var t=e.extra_settings||[],n=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.desc}),N>=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),N>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),N>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),N>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return c("nanite_injection")}})],4)})};t.NaniteChamberControlContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=(0,r.useBackend)(t).data,c=n.has_disk,i=n.has_program,d=n.disk;return c?i?(0,o.createComponentVNode)(2,l,{program:d}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var l=function(e,t){var n=e.program,r=n.name,c=n.desc,i=n.activated,l=n.use_rate,d=n.can_trigger,u=n.trigger_cost,s=n.trigger_cooldown,m=n.activation_code,p=n.deactivation_code,C=n.kill_code,h=n.trigger_code,N=n.timer_restart,V=n.timer_shutdown,b=n.timer_trigger,f=n.timer_trigger_delay,g=n.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:r,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:c}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:l}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:s})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:C}),!!d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:h})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[N," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[V," s"]}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[b," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[f," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:g.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act;return(n.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return c("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=d;var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.current_view,u=i.disk,s=i.has_program,m=i.cloud_backup,p=u&&u.can_rule||!1;if(!m)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var C=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+d,level:2,buttons:!!s&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return c("upload_program")}}),children:C.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return c("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,l,{program:e}),(!!p||!!e.has_rules)&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:!!p&&(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return c("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return c("remove_rule",{program_id:e.id,rule_id:t.id})}})," "+t.display]},t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,s=n.data,m=s.has_disk,p=s.current_view,C=s.new_backup_id;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!m,onClick:function(){return l("eject")}}),children:(0,o.createComponentVNode)(2,i)}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return l("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:C,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return l("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return l("create_backup")}})],0),children:s.current_view?(0,o.createComponentVNode)(2,u):(0,o.createComponentVNode)(2,d)})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3);t.NaniteProgramHub=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.detail_view,s=d.disk,m=d.has_disk,p=d.has_program,C=d.programs,h=void 0===C?{}:C,N=(0,a.useSharedState)(t,"category"),V=N[0],b=N[1],f=h&&h[V]||[];return(0,o.createComponentVNode)(2,i.Window,{width:500,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return l("eject")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return l("clear")}})],4),children:m?p?(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Program Name",children:s.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:s.desc})]}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,c.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:u?"info":"list",content:u?"Detailed":"Compact",onClick:function(){return l("toggle_details")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Sync Research",onClick:function(){return l("refresh")}})],4),children:null!==h?(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{minWidth:"110px",children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var n=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:t===V,onClick:function(){return b(t)},children:n},t)}))(h)})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:u?f.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"download",content:"Download",disabled:!m,onClick:function(){return l("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,c.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"download",content:"Download",disabled:!m,onClick:function(){return l("download",{program_id:e.id})}})},e.id)}))})})]}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No nanite programs are currently researched."})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammerContent=t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=l;var d=function(e,t){var n=e.extra_setting,r=n.name,c=n.type,i={number:(0,o.createComponentVNode)(2,u,{extra_setting:n}),text:(0,o.createComponentVNode)(2,s,{extra_setting:n}),type:(0,o.createComponentVNode)(2,m,{extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:i[c]})};t.NaniteExtraEntry=d;var u=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.min,u=n.max,s=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:l,width:"64px",minValue:d,maxValue:u,unit:s,onChange:function(e,t){return c("set_extra_setting",{target_setting:i,value:t})}})};t.NaniteExtraNumber=u;var s=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:l,width:"200px",onInput:function(e,t){return c("set_extra_setting",{target_setting:i,value:t})}})};t.NaniteExtraText=s;var m=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:l,width:"150px",options:d,onSelected:function(e){return c("set_extra_setting",{target_setting:i,value:e})}})};t.NaniteExtraType=m;var p=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.true_text,u=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:l?d:u,checked:l,onClick:function(){return c("set_extra_setting",{target_setting:i})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:420,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,C)})})};var C=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.has_disk,m=u.has_program,p=u.name,C=u.desc,h=u.use_rate,N=u.can_trigger,V=u.trigger_cost,b=u.trigger_cooldown,f=u.activated,g=u.has_extra_settings,v=u.extra_settings,k=void 0===v?{}:v;return s?m?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:C}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:h}),!!N&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:V}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:b})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:f?"power-off":"times",content:f?"Active":"Inactive",selected:f,color:"bad",bold:!0,onClick:function(){return c("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i)}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,l)})]}),!!g&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:k.map((function(e){return(0,o.createComponentVNode)(2,d,{extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})};t.NaniteProgrammerContent=C},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemoteContent=t.NaniteRemote=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NaniteRemote=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:420,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.code,d=i.locked,u=i.mode,s=i.program_name,m=i.relay_code,p=i.comms,C=i.message,h=i.saved_settings,N=void 0===h?[]:h;return d?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return c("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:s,maxLength:14,width:"130px",onChange:function(e,t){return c("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return c("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return c("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:C,width:"270px",onChange:function(e,t){return c("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return c("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return c("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:N.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),N.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return c("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return c("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)};t.NaniteRemoteContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NotificationPreferences=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=(n.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,c.Window,{title:"Notification Preferences",width:270,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return i("toggle_ignore",{key:e.key})}},e.key)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtnetRelay=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.enabled,u=l.dos_capacity,s=l.dos_overload,m=l.dos_crashed;return(0,o.createComponentVNode)(2,c.Window,{title:"NtNet Quantum Relay",width:400,height:300,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:d,content:d?"ENABLED":"DISABLED",onClick:function(){return i("toggle")}}),children:m?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return i("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:u,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," GQ"," / ",u," GQ"]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosAiRestorer=void 0;var o=n(0),r=n(3),a=n(201);t.NtosAiRestorer=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:370,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.AiRestorerContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(0),r=n(63),a=n(2),c=n(1),i=n(3);t.NtosArcade=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:450,height:350,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,c.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,c.Box,{m:1}),(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[d.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[d.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,c.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,c.Section,{backgroundColor:1===d.PauseState?"#1b3622":"#471915",children:d.Status})]}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:[(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.Hitpoints,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:d.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,c.Box,{m:1}),(0,o.createComponentVNode)(2,c.Section,{inline:!0,width:"156px",textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:(0,r.resolveAsset)(d.BossID)})})]})]}),(0,o.createComponentVNode)(2,c.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,c.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===d.GameActive,onClick:function(){return l("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,c.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===d.GameActive,onClick:function(){return l("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,c.Box,{color:d.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",d.TicketCount]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosAtmos=void 0;var o=n(0),r=n(14),a=n(30),c=n(9),i=n(2),l=n(1),d=n(36),u=n(3);t.NtosAtmos=function(e,t){var n=(0,i.useBackend)(t),s=(n.act,n.data),m=s.AirTemp,p=s.AirPressure,C=(0,a.flow)([(0,r.filter)((function(e){return e.percentage>=.01})),(0,r.sortBy)((function(e){return-e.percentage}))])(s.AirData||[]),h=Math.max.apply(Math,[1].concat(C.map((function(e){return e.percentage}))));return(0,o.createComponentVNode)(2,u.NtosWindow,{width:300,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,u.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:[m,"\xb0C"]}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:[p," kPa"]})]})}),(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.percentage,minValue:0,maxValue:h,children:(0,c.toFixed)(e.percentage,2)+"%"})},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosBountyConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.NtosBountyConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data.bountydata,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:750,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,l),buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print Bounty List",onClick:function(){return c("Print")}}),children:(0,o.createComponentVNode)(2,a.Table,{border:!0,children:[(0,o.createComponentVNode)(2,a.Table.Row,{bold:!0,italic:!0,color:"label",fontSize:1.25,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Bounty Object"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Description"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Progress"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Claim"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:1===e.priority?"rgba(252, 152, 3, 0.25)":"",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{italic:!0,textAlign:"center",p:1,children:e.description}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:[1===e.priority?(0,o.createComponentVNode)(2,a.Box,{children:"High Priority"}):"",e.completion_string]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:e.reward_string}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:1===e.claimed?"check":"",content:1===e.claimed?"Claimed":"Claim",disabled:1===e.claimed,color:1===e.can_claim?"green":"red",onClick:function(){return c("ClaimBounty",{bounty:e.bounty_ref})}})})]},e.name)}))]})})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.stored_cash);return(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i,format:function(e){return(0,c.formatMoney)(e)}})," credits"]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCardContent=t.NtosCard=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(202);t.NtosCard=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:450,height:520,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=(0,r.useLocalState)(t,"tab",1),u=d[0],s=d[1],m=l.authenticated,p=l.regions,C=void 0===p?[]:p,h=l.access_on_card,N=void 0===h?[]:h,V=l.jobs,b=void 0===V?{}:V,f=l.id_rank,g=l.id_owner,v=l.has_id,k=l.have_printer,x=l.have_id_slot,B=l.id_name,_=(0,r.useLocalState)(t,"department",Object.keys(b)[0]),w=_[0],L=_[1];if(!x)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This program requires an ID slot in order to function"});var y=b[w]||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:v&&m?(0,o.createComponentVNode)(2,a.Input,{value:g,width:"250px",onInput:function(e,t){return c("PRG_edit",{name:t})}}):g||"No Card Inserted",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!k||!v,onClick:function(){return c("PRG_print")}}),(0,o.createComponentVNode)(2,a.Button,{icon:m?"sign-out-alt":"sign-in-alt",content:m?"Log Out":"Log In",color:m?"bad":"good",onClick:function(){c(m?"PRG_logout":"PRG_authenticate")}})],4),children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:B,onClick:function(){return c("PRG_eject")}})}),!!v&&!!m&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===u,onClick:function(){return s(1)},children:"Access"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===u,onClick:function(){return s(2)},children:"Jobs"})]}),1===u&&(0,o.createComponentVNode)(2,i.AccessList,{accesses:C,selectedList:N,accessMod:function(e){return c("PRG_access",{access_target:e})},grantAll:function(){return c("PRG_grantall")},denyAll:function(){return c("PRG_denyall")},grantDep:function(e){return c("PRG_grantregion",{region:e})},denyDep:function(e){return c("PRG_denyregion",{region:e})}}),2===u&&(0,o.createComponentVNode)(2,a.Section,{title:f,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"exclamation-triangle",content:"Terminate",color:"bad",onClick:function(){return c("PRG_terminate")}}),children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Custom...",onCommit:function(e,t){return c("PRG_assign",{assign_target:"Custom",custom_name:t})}}),(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:Object.keys(b).map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:e===w,onClick:function(){return L(e)},children:e},e)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:y.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.display_name,onClick:function(){return c("PRG_assign",{assign_target:e.job})}},e.job)}))})]})]})]})],0)};t.NtosCardContent=l},function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosConfiguration=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.PC_device_theme,u=l.power_usage,s=l.battery_exists,m=l.battery,p=void 0===m?{}:m,C=l.disk_size,h=l.disk_used,N=l.hardware,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,c.NtosWindow,{theme:d,width:420,height:630,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",u,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!s&&"average",children:s?(0,o.createComponentVNode)(2,a.ProgressBar,{value:p.charge,minValue:0,maxValue:p.max,ranges:{good:[p.max/2,Infinity],average:[p.max/4,p.max/2],bad:[-Infinity,p.max/4]},children:[p.charge," / ",p.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h,minValue:0,maxValue:C,color:"good",children:[h," GQ / ",C," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:V.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return i("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCrewManifest=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3);t.NtosCrewManifest=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.have_printer,s=d.manifest,m=void 0===s?{}:s;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:400,height:480,resizable:!0,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Section,{title:"Crew Manifest",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"print",content:"Print",disabled:!u,onClick:function(){return l("PRG_print")}}),children:(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Section,{level:2,title:t,children:(0,o.createComponentVNode)(2,c.Table,{children:e.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:["(",e.rank,")"]})]},e.name)}))})},t)}))(m)})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCyborgRemoteMonitorSyndicate=void 0;var o=n(0),r=n(3),a=n(207);t.NtosCyborgRemoteMonitorSyndicate=function(e,t){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:600,height:800,theme:"syndicate",children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.NtosCyborgRemoteMonitorContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosFileManager=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosFileManager=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.PC_device_theme,s=d.usbconnected,m=d.files,p=void 0===m?[]:m,C=d.usbfiles,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.NtosWindow,{resizable:!0,theme:u,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,i,{files:p,usbconnected:s,onUpload:function(e){return l("PRG_copytousb",{name:e})},onDelete:function(e){return l("PRG_deletefile",{name:e})},onRename:function(e,t){return l("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return l("PRG_clone",{file:e})}})}),s&&(0,o.createComponentVNode)(2,a.Section,{title:"Data Disk",children:(0,o.createComponentVNode)(2,i,{usbmode:!0,files:h,usbconnected:s,onUpload:function(e){return l("PRG_copyfromusb",{name:e})},onDelete:function(e){return l("PRG_deletefile",{name:e})},onRename:function(e,t){return l("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return l("PRG_clone",{file:e})}})})]})})};var i=function(e){var t=e.files,n=void 0===t?[]:t,r=e.usbconnected,c=e.usbmode,i=e.onUpload,l=e.onDelete,d=e.onRename;return(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"File"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Type"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Size"})]}),n.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.undeletable?e.name:(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:e.name,currentValue:e.name,tooltip:"Rename",onCommit:function(t,n){return d(e.name,n)}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.type}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.size}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:!e.undeletable&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",confirmIcon:"times",confirmContent:"",tooltip:"Delete",onClick:function(){return l(e.name)}}),!!r&&(c?(0,o.createComponentVNode)(2,a.Button,{icon:"download",tooltip:"Download",onClick:function(){return i(e.name)}}):(0,o.createComponentVNode)(2,a.Button,{icon:"upload",tooltip:"Upload",onClick:function(){return i(e.name)}}))],0)})]},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosJobManagerContent=t.NtosJobManager=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosJobManager=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:620,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.authed,d=i.cooldown,u=i.slots,s=void 0===u?[]:u,m=i.prioritized,p=void 0===m?[]:m;return l?(0,o.createComponentVNode)(2,a.Section,{children:[d>0&&(0,o.createComponentVNode)(2,a.Dimmer,{children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",children:["On Cooldown: ",d,"s"]})}),(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Prioritized"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Slots"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:e.title,disabled:e.total<=0,checked:e.total>0&&p.includes(e.title),onClick:function(){return c("PRG_priority",{target:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[e.current," / ",e.total]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"Open",disabled:!e.status_open,onClick:function(){return c("PRG_open_job",{target:e.title})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Close",disabled:!e.status_close,onClick:function(){return c("PRG_close_job",{target:e.title})}})]})]},e.title)}))]})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Current ID does not have access permissions to change job slots."})};t.NtosJobManagerContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug",job_manage:"address-book",crewmani:"clipboard-list",robocontrol:"robot",atmosscan:"thermometer-half",shipping:"tags"};t.NtosMain=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.device_theme,s=d.programs,m=void 0===s?[]:s,p=d.has_light,C=d.light_on,h=d.comp_light_color,N=d.removable_media,V=void 0===N?[]:N,b=d.login,f=void 0===b?[]:b;return(0,o.createComponentVNode)(2,c.NtosWindow,{title:"syndicate"===u?"Syndix Main Menu":"NtOS Main Menu",theme:u,width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[!!p&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:C,onClick:function(){return l("PC_toggle_light")},children:["Flashlight: ",C?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return l("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:h})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"User Login",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject ID",disabled:!f.IDName,onClick:function(){return l("PC_Eject_Disk",{name:"ID"})}}),children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:["ID Name: ",f.IDName]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:["Assignment: ",f.IDJob]})]})}),!!V.length&&(0,o.createComponentVNode)(2,a.Section,{title:"Media Eject",children:(0,o.createComponentVNode)(2,a.Table,{children:V.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,color:"transparent",icon:"eject",content:e,onClick:function(){return l("PC_Eject_Disk",{name:e})}})})},e)}))})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return l("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:"18px",children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return l("PC_killprogram",{name:e.name})}})})]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosNetChat=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.can_admin,u=l.adminmode,s=l.authed,m=l.username,p=l.active_channel,C=l.is_operator,h=l.all_channels,N=void 0===h?[]:h,V=l.clients,b=void 0===V?[]:V,f=l.messages,g=void 0===f?[]:f,v=null!==p,k=s||u;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:900,height:675,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return i("PRG_newchannel",{new_channel_name:t})}}),N.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===p,color:"transparent",onClick:function(){return i("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:m+"...",currentValue:m,onCommit:function(e,t){return i("PRG_changename",{new_name:t})}}),!!d&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(u?"ON":"OFF"),color:u?"bad":"good",onClick:function(){return i("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:v&&(k?g.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return i("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:b.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),v&&k&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return i("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return i("PRG_leavechannel")}})],4),!!C&&s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return i("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return i("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return i("PRG_setpassword",{new_password:t})}})],4)]})]})})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDosContent=t.NtosNetDos=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosNetDos=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:250,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.relays,d=void 0===l?[]:l,u=i.focus,s=i.target,m=i.speed,p=i.overload,C=i.capacity,h=i.error;if(h)return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:h}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Reset",textAlign:"center",onClick:function(){return c("PRG_reset")}})],4);var N=function(e){for(var t="",n=p/C;t.lengthn?t+="0":t+="1";return t};return s?(0,o.createComponentVNode)(2,a.Section,{fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:["CURRENT SPEED: ",m," GQ/s"]}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)})]}):(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.id,selected:u===e.id,onClick:function(){return c("PRG_target_relay",{targid:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"EXECUTE",color:"bad",textAlign:"center",disabled:!u,mt:1,onClick:function(){return c("PRG_execute")}})]})};t.NtosNetDosContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosNetDownloader=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.PC_device_theme,s=d.disk_size,m=d.disk_used,p=d.downloadable_programs,C=void 0===p?[]:p,h=d.error,N=d.hacked_programs,V=void 0===N?[]:N,b=d.hackedavailable;return(0,o.createComponentVNode)(2,c.NtosWindow,{theme:u,width:480,height:735,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[!!h&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:h}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return l("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:s,children:m+" GQ / "+s+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:C.map((function(e){return(0,o.createComponentVNode)(2,i,{program:e},e.filename)}))}),!!b&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),V.map((function(e){return(0,o.createComponentVNode)(2,i,{program:e},e.filename)}))]})]})})};var i=function(e,t){var n=e.program,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.disk_size,u=l.disk_used,s=l.downloadcompletion,m=l.downloading,p=l.downloadname,C=l.downloadsize,h=d-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:n.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[n.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:n.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:C,value:s})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:m||n.size>h,onClick:function(){return i("PRG_downloadfile",{filename:n.filename})}})})]}),"Compatible"!==n.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),n.size>h&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:n.fileinfo})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetMonitor=void 0;var o=n(0),r=n(1),a=n(2),c=n(3);t.NtosNetMonitor=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.ntnetrelays,u=l.ntnetstatus,s=l.config_softwaredownload,m=l.config_peertopeer,p=l.config_communication,C=l.config_systemcontrol,h=l.idsalarm,N=l.idsstatus,V=l.ntnetmaxlogs,b=l.maxlogs,f=l.minlogs,g=l.ntnetlogs,v=void 0===g?[]:g;return(0,o.createComponentVNode)(2,c.NtosWindow,{resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,r.NoticeBox,{children:"WARNING: Disabling wireless transmitters when using a wireless device may prevent you from reenabling them!"}),(0,o.createComponentVNode)(2,r.Section,{title:"Wireless Connectivity",buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:u?"power-off":"times",content:u?"ENABLED":"DISABLED",selected:u,onClick:function(){return i("toggleWireless")}}),children:d?(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Active NTNet Relays",children:d})}):"No Relays Connected"}),(0,o.createComponentVNode)(2,r.Section,{title:"Firewall Configuration",children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Software Downloads",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:s?"power-off":"times",content:s?"ENABLED":"DISABLED",selected:s,onClick:function(){return i("toggle_function",{id:"1"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Peer to Peer Traffic",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:m?"power-off":"times",content:m?"ENABLED":"DISABLED",selected:m,onClick:function(){return i("toggle_function",{id:"2"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Communication Systems",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:p?"power-off":"times",content:p?"ENABLED":"DISABLED",selected:p,onClick:function(){return i("toggle_function",{id:"3"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Remote System Control",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:C?"power-off":"times",content:C?"ENABLED":"DISABLED",selected:C,onClick:function(){return i("toggle_function",{id:"4"})}})})]})}),(0,o.createComponentVNode)(2,r.Section,{title:"Security Systems",children:[!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:"NETWORK INCURSION DETECTED"}),(0,o.createComponentVNode)(2,r.Box,{italics:!0,children:"Abnormal activity has been detected in the network. Check system logs for more information"})],4),(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"IDS Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button,{icon:N?"power-off":"times",content:N?"ENABLED":"DISABLED",selected:N,onClick:function(){return i("toggleIDS")}}),(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",color:"bad",onClick:function(){return i("resetIDS")}})],4)}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Max Log Count",buttons:(0,o.createComponentVNode)(2,r.NumberInput,{value:V,minValue:f,maxValue:b,width:"39px",onChange:function(e,t){return i("updatemaxlogs",{new_number:t})}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"System Log",level:2,buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:"trash",content:"Clear Logs",onClick:function(){return i("purgelogs")}}),children:v.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{className:"candystripe",children:e.entry},e.entry)}))})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosPowerMonitor=void 0;var o=n(0),r=n(3),a=n(143);t.NtosPowerMonitor=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:550,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.PowerMonitorContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRadarSyndicate=void 0;var o=n(0),r=n(3),a=n(208);t.NtosRadarSyndicate=function(e,t){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:800,height:600,theme:"syndicate",children:(0,o.createComponentVNode)(2,a.NtosRadarContent,{sig_err:"Out of Range"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRequestKiosk=void 0;var o=n(0),r=n(209),a=n(3);t.NtosRequestKiosk=function(e,t){return(0,o.createComponentVNode)(2,a.NtosWindow,{width:550,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,a.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,r.RequestKioskContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRevelation=void 0;var o=n(0),r=n(1),a=n(2),c=n(3);t.NtosRevelation=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:250,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Button.Input,{fluid:!0,content:"Obfuscate Name...",onCommit:function(e,t){return i("PRG_obfuscate",{new_name:t})},mb:1}),(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Payload Status",buttons:(0,o.createComponentVNode)(2,r.Button,{content:l.armed?"ARMED":"DISARMED",color:l.armed?"bad":"average",onClick:function(){return i("PRG_arm")}})})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,bold:!0,content:"ACTIVATE",textAlign:"center",color:"bad",disabled:!l.armed})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRoboControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosRoboControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.bots,s=d.id_owner,m=d.has_id;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:550,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Robot Control Console",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Id Card",children:[s,!!m&&(0,o.createComponentVNode)(2,a.Button,{ml:2,icon:"eject",content:"Eject",onClick:function(){return l("ejectcard")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Bots in range",children:d.botcount})]})}),null==u?void 0:u.map((function(e){return(0,o.createComponentVNode)(2,i,{robot:e},e.bot_ref)}))]})})};var i=function(e,t){var n=e.robot,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.mules||[],u=!!n.mule_check&&function(e,t){return null==e?void 0:e.find((function(e){return e.mule_ref===t}))}(d,n.bot_ref),s=1===n.mule_check?"rgba(110, 75, 14, 1)":"rgba(74, 59, 140, 1)";return(0,o.createComponentVNode)(2,a.Section,{title:n.name,style:{border:"4px solid "+s},buttons:u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"play",tooltip:"Go to Destination.",onClick:function(){return i("go",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pause",tooltip:"Stop Moving.",onClick:function(){return i("stop",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",tooltip:"Travel Home.",tooltipPosition:"bottom-left",onClick:function(){return i("home",{robot:u.mule_ref})}})],4),children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Model",children:n.model}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:n.locat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:n.mode}),u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Loaded Cargo",children:l.load||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:u.home}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:u.dest||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.power,minValue:0,maxValue:100,ranges:{good:[60,Infinity],average:[20,60],bad:[-Infinity,20]}})})],4)]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"150px",children:[u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Destination",onClick:function(){return i("destination",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set ID",onClick:function(){return i("setid",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Home",onClick:function(){return i("sethome",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Unload Cargo",onClick:function(){return i("unload",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Auto Return",checked:u.autoReturn,onClick:function(){return i("autoret",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Auto Pickup",checked:u.autoPickup,onClick:function(){return i("autopick",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Delivery Report",checked:u.reportDelivery,onClick:function(){return i("report",{robot:u.mule_ref})}})],4),!u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Stop Patrol",onClick:function(){return i("patroloff",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Start Patrol",onClick:function(){return i("patrolon",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Summon",onClick:function(){return i("summon",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Eject PAi",onClick:function(){return i("ejectpai",{robot:n.bot_ref})}})],4)]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosShipping=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.NtosShipping=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:450,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"NTOS Shipping Hub.",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Id",onClick:function(){return i("ejectid")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current User",children:l.current_user||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inserted Card",children:l.card_owner||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available Paper",children:l.has_printer?l.paperamt:"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Profit on Sale",children:[l.barcode_split,"%"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Shipping Options",children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"id-card",tooltip:"The currently ID card will become the current user.",tooltipPosition:"right",disabled:!l.has_id_slot,onClick:function(){return i("selectid")},content:"Set Current ID"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"print",tooltip:"Print a barcode to use on a wrapped package.",tooltipPosition:"right",disabled:!l.has_printer||!l.current_user,onClick:function(){return i("print")},content:"Print Barcode"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"tags",tooltip:"Set how much profit you'd like on your package.",tooltipPosition:"right",onClick:function(){return i("setsplit")},content:"Set Profit Margin"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",content:"Reset ID",onClick:function(){return i("resetid")}})})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosStationAlertConsole=void 0;var o=n(0),r=n(3),a=n(210);t.NtosStationAlertConsole=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:315,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.StationAlertConsoleContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitorContent=t.NtosSupermatterMonitor=void 0;var o=n(0),r=n(14),a=n(30),c=n(9),i=n(2),l=n(1),d=n(36),u=n(3),s=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e,t){return(0,o.createComponentVNode)(2,u.NtosWindow,{width:600,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,u.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,m)})})};var m=function(e,t){var n=(0,i.useBackend)(t),u=n.act,m=n.data,C=m.active,h=m.SM_integrity,N=m.SM_power,V=m.SM_ambienttemp,b=m.SM_ambientpressure;if(!C)return(0,o.createComponentVNode)(2,p);var f=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),g=Math.max.apply(Math,[1].concat(f.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:N,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,c.toFixed)(N)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(V),minValue:0,maxValue:s(1e4),ranges:{teal:[-Infinity,s(80)],good:[s(80),s(373)],average:[s(373),s(1e3)],bad:[s(1e3),Infinity]},children:(0,c.toFixed)(V)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(b),minValue:0,maxValue:s(5e4),ranges:{good:[s(1),s(300)],average:[-Infinity,s(1e3)],bad:[s(1e3),+Infinity]},children:(0,c.toFixed)(b)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return u("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:g,children:(0,c.toFixed)(e.amount,2)+"%"})},e.name)}))})})})]})};t.NtosSupermatterMonitorContent=m;var p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.supermatters,c=void 0===a?[]:a;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return r("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return r("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(0),r=n(6),a=n(2),c=n(1),i=n(3),l=function(e,t){var n=(0,a.useBackend)(t).act;return(0,o.createComponentVNode)(2,c.Box,{width:"185px",children:(0,o.createComponentVNode)(2,c.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,c.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,mb:"6px",content:e,textAlign:"center",fontSize:"40px",lineHeight:1.25,width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return n("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e,t){var n=(0,a.useBackend)(t),r=n.act,d=n.data,u=(d.anchored,d.disk_present,d.status1),s=d.status2;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:442,theme:"retro",children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Box,{m:"6px",children:[(0,o.createComponentVNode)(2,c.Box,{mb:"6px",className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,c.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,c.Box,{className:"NuclearBomb__displayBox",children:s})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{icon:"eject",fontSize:"24px",lineHeight:1,textAlign:"center",width:"43px",ml:"6px",mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,c.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,l)}),(0,o.createComponentVNode)(2,c.Flex.Item,{ml:"6px",width:"129px",children:(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:1.1,mb:"6px",className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:1.1,className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,c.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,c.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}];t.OperatingComputer=function(e,t){var n=(0,r.useSharedState)(t,"tab",1),i=n[0],u=n[1];return(0,o.createComponentVNode)(2,c.Window,{width:350,height:470,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===i,onClick:function(){return u(1)},children:"Patient State"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===i,onClick:function(){return u(2)},children:"Surgery Procedures"})]}),1===i&&(0,o.createComponentVNode)(2,l),2===i&&(0,o.createComponentVNode)(2,d)]})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data),l=c.table,d=c.procedures,u=void 0===d?[]:d,s=c.patient,m=void 0===s?{}:s;return l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",children:m&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:m.is_robotic_organism&&"Toxin"===e.label?"Corruption":e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]})||"No Patient Detected"}),0===u.length&&(0,o.createComponentVNode)(2,a.Section,{children:"No Active Procedures"}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!c.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)}))],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.surgeries,l=void 0===i?[]:i;return(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return c("sync")}}),l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Orbit=void 0;var o=n(0),r=n(19),a=n(63),c=n(2),i=n(1),l=n(3);function d(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nt},C=function(e,t){var n=e.name,o=t.name,r=n.match(s),a=o.match(s);return r&&a&&n.replace(s,"")===o.replace(s,"")?parseInt(r[1],10)-parseInt(a[1],10):p(n,o)},h=function(e,t){var n=(0,c.useBackend)(t).act,r=e.searchText,a=e.source,l=e.title,d=a.filter(m(r));return d.sort(C),a.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:l+" - ("+a.length+")",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{content:e.name,onClick:function(){return n("orbit",{ref:e.ref})}},e.name)}))})},N=function(e,t){var n=(0,c.useBackend)(t).act,r=e.color,l=e.thing;return(0,o.createComponentVNode)(2,i.Button,{color:r,onClick:function(){return n("orbit",{ref:l.ref})},children:[l.name,l.orbiters&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,ml:1,children:["(",l.orbiters," ",(0,o.createComponentVNode)(2,i.Box,{as:"img",src:(0,a.resolveAsset)("ghost.png"),opacity:.7}),")"]})]})};t.Orbit=function(e,t){for(var n,r=(0,c.useBackend)(t),a=r.act,u=r.data,s=u.alive,V=u.antagonists,b=u.auto_observe,f=u.dead,g=u.ghosts,v=u.misc,k=u.npcs,x=(0,c.useLocalState)(t,"searchText",""),B=x[0],_=x[1],w={},L=d(V);!(n=L()).done;){var y=n.value;w[y.antag]===undefined&&(w[y.antag]=[]),w[y.antag].push(y)}var S=Object.entries(w);S.sort((function(e,t){return p(e[0],t[0])}));return(0,o.createComponentVNode)(2,l.Window,{title:"Orbit",width:350,height:700,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Flex,{children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Icon,{name:"search",mr:1})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Input,{placeholder:"Search...",autoFocus:!0,fluid:!0,value:B,onInput:function(e,t){return _(t)},onEnter:function(e,t){return function(e){for(var t=0,n=[S.map((function(e){return e[0],e[1]})),s,g,f,k,v];t0&&(0,o.createComponentVNode)(2,i.Section,{title:"Ghost-Visible Antagonists",children:S.map((function(e){var t=e[0],n=e[1];return(0,o.createComponentVNode)(2,i.Section,{title:t,level:2,children:n.filter(m(B)).sort(C).map((function(e){return(0,o.createComponentVNode)(2,N,{color:"bad",thing:e},e.name)}))},t)}))}),(0,o.createComponentVNode)(2,i.Section,{title:"Alive - ("+s.length+")",children:s.filter(m(B)).sort(C).map((function(e){return(0,o.createComponentVNode)(2,N,{color:"good",thing:e},e.name)}))}),(0,o.createComponentVNode)(2,h,{title:"Ghosts - ("+g.length+")",source:g,searchText:B}),(0,o.createComponentVNode)(2,h,{title:"Dead",source:f,searchText:B}),(0,o.createComponentVNode)(2,h,{title:"NPCs",source:k,searchText:B}),(0,o.createComponentVNode)(2,h,{title:"Misc",source:v,searchText:B})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(0),r=n(19),a=n(1),c=n(2),i=n(3);t.OreBox=function(e,t){var n=(0,c.useBackend)(t),l=n.act,d=n.data.materials;return(0,o.createComponentVNode)(2,i.Window,{width:335,height:415,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Empty",onClick:function(){return l("removeall")}}),children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,a.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(3);t.OreRedemptionMachine=function(e,t){var n=(0,a.useBackend)(t),r=n.act,d=n.data,u=d.unclaimedPoints,s=d.materials,m=d.alloys,p=d.diskDesigns,C=d.hasDisk;return(0,o.createComponentVNode)(2,i.Window,{title:"Ore Redemption Machine",width:440,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),u,(0,o.createComponentVNode)(2,c.Button,{ml:2,content:"Claim",disabled:0===u,onClick:function(){return r("Claim")}})]})]}),(0,o.createComponentVNode)(2,c.Section,{children:C&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{mb:1,children:(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return r("diskEject")}})}),(0,o.createComponentVNode)(2,c.Table,{children:p.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,c.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return r("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,c.Button,{icon:"save",content:"Insert design disk",onClick:function(){return r("diskInsert")}})}),(0,o.createComponentVNode)(2,c.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,c.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,l,{material:e,onRelease:function(t){return r("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,c.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,c.Table,{children:m.map((function(e){return(0,o.createComponentVNode)(2,l,{material:e,onRelease:function(t){return r("Smelt",{id:e.id,sheets:t})}},e.id)}))})})]})})};var l=function(e,t){var n=e.material,i=e.onRelease,l=(0,a.useLocalState)(t,"amount"+n.name,1),d=l[0],u=l[1],s=Math.floor(n.amount);return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(n.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{mr:2,color:"label",inline:!0,children:n.value&&n.value+" cr"})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{mr:2,color:"label",inline:!0,children:[s," sheets"]})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:d,onChange:function(e,t){return u(t)}}),(0,o.createComponentVNode)(2,c.Button,{disabled:s<1,content:"Release",onClick:function(){return i(d)}})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3),l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.has_beaker,d=i.beaker_empty,u=i.has_blood,s=i.blood,m=!l||d;return(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:m,onClick:function(){return r("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"trash",content:"Empty",disabled:m,onClick:function(){return r("empty_beaker")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return r("eject_beaker")}})],4),children:l?d?(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood DNA",children:s&&s.dna||"Unknown"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood Type",children:s&&s.type||"Unknown"})]}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=l;var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.is_ready;return(i.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,c.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,c.Input,{value:e.name,onChange:function(t,n){return r("rename_disease",{index:e.index,name:n})}}):e.name,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"flask",content:"Create culture bottle",disabled:!l,onClick:function(){return r("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,c.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=d;var u=function(e,t){var n=e.symptom,a=n.name,i=n.desc,l=n.stealth,d=n.resistance,u=n.stage_speed,s=n.transmission,m=n.level,p=n.neutered,C=(0,r.map)((function(e,t){return{desc:e,label:t}}))(n.threshold_desc||{});return(0,o.createComponentVNode)(2,c.Section,{title:a,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:2,children:i}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Level",children:m}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Resistance",children:d}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stealth",children:l}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Transmission",children:s})]})})]}),C.length>0&&(0,o.createComponentVNode)(2,c.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.resistances||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Antibodies",children:l.length>0?(0,o.createComponentVNode)(2,c.LabeledList,{children:l.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,c.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!i.is_ready,onClick:function(){return r("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=s;t.Pandemic=function(e,t){var n=(0,a.useBackend)(t).data;return(0,o.createComponentVNode)(2,i.Window,{width:520,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l),!!n.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,s)],4)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PaperSheet=void 0;var o=n(0),r=n(6),a=n(102),c=s(n(613)),i=s(n(614)),l=n(2),d=n(1),u=n(3);function s(e){return e&&e.__esModule?e:{"default":e}}function m(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function p(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}function C(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n]+)>/g,(function(e,t){return"$"+n[t]})))}if("function"==typeof t){var a=this;return o[Symbol.replace].call(this,e,(function(){var e=[];return e.push.apply(e,arguments),"object"!=typeof e[e.length-1]&&e.push(c(e,a)),t.apply(this,e)}))}return o[Symbol.replace].call(this,e,t)},N.apply(this,arguments)}function V(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}function b(e){var t="function"==typeof Map?new Map:undefined;return(b=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return f(e,arguments,k(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),v(o,e)})(e)}function f(e,t,n){return(f=g()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&v(r,n.prototype),r}).apply(null,arguments)}function g(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var x=function(e,t,n,o){return void 0===o&&(o=!1),"'+e+""},B=/\[(_+)\]/g,_=N(/\[\]/gm,{id:2}),w=/%s(?:ign)?(?=\\s|$)/gim,L=function(e,t,n,o,r){var a=e.replace(B,(function(e,a,c,i){var l=function(e,t,n){t=n+"x "+t;var o=document.createElement("canvas").getContext("2d");return o.font=t,o.measureText(e).width}(e,t,n)+"px";return function(e,t,n,o,r,a){return'['+(n=a,r=l,(r?n.replace(/")};return(0,o.createComponentVNode)(2,d.Box,{position:"relative",backgroundColor:i,width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,d.Box,{fillPositionedParent:!0,width:"100%",height:"100%",dangerouslySetInnerHTML:s,p:"10px"}),u.map((function(e,t){return(0,o.createComponentVNode)(2,S,{image:{sprite:e[0],x:e[1],y:e[2],rotate:e[3]}},e[0]+t)}))]})},T=function(e){function t(t,n){var o;return(o=e.call(this,t,n)||this).state={x:0,y:0,rotate:0},o}m(t,e);var n=t.prototype;return n.findStampPosition=function(e){for(var t=event.pageX,n=event.pageY,o={left:e.target.offsetLeft,top:e.target.offsetTop},r=e.target.offsetParent;r;)o.left+=r.offsetLeft,o.top+=r.offsetTop,r=r.offsetParent;var c=[t-o.left,n-o.top],i=(0,a.vecScale)([121,51],.5);return(0,a.vecSubtract)(c,i)},n.componentDidMount=function(){document.onwheel=this.handleWheel.bind(this)},n.handleMouseMove=function(e){var t=this.findStampPosition(e);y(e),this.setState({x:t[0],y:t[1]})},n.handleMouseClick=function(e){var t=this.findStampPosition(e),n=(0,l.useBackend)(this.context),o=n.act,r=n.data;o("stamp",{x:t[0],y:t[1],r:this.state.rotate,stamp_class:this.props.stamp_class,stamp_icon_state:r.stamp_icon_state}),this.setState({x:t[0],y:t[1]})},n.handleWheel=function(e){var t=e.deltaY>0?15:-15;if(e.deltaY<0&&0===this.state.rotate)this.setState({rotate:360+t});else if(e.deltaY>0&&360===this.state.rotate)this.setState({rotate:t});else{var n={rotate:t+this.state.rotate};this.setState((function(){return n}))}y(e)},n.render=function(){var e=this.props,t=e.value,n=e.stamp_class,r=e.stamps,a=p(e,["value","stamp_class","stamps"]),c=r||[],i={sprite:n,x:this.state.x,y:this.state.y,rotate:this.state.rotate};return(0,o.normalizeProps)((0,o.createComponentVNode)(2,d.Box,Object.assign({onClick:this.handleMouseClick.bind(this),onMouseMove:this.handleMouseMove.bind(this),onwheel:this.handleWheel.bind(this)},a,{children:[(0,o.createComponentVNode)(2,I,{readOnly:!0,value:t,stamps:c}),(0,o.createComponentVNode)(2,S,{opacity:.5,image:i})]})))},t}(o.Component),A=function(e){function t(t,n){var o;return(o=e.call(this,t,n)||this).state={previewSelected:"Preview",old_text:t.value||"",textarea_text:"",combined_text:t.value||""},o}m(t,e);var n=t.prototype;return n.createPreview=function(e,t){void 0===t&&(t=!1);var n,o,r=(0,l.useBackend)(this.context).data,a=r.text,d=r.pen_color,u=r.pen_font,s=r.is_crayon,m=r.field_counter,p=r.edit_usr,h={text:a};if((e=e.trim()).length>0){var N=function(e){return c["default"].sanitize(e,{FORBID_ATTR:["class","style"],ALLOWED_TAGS:["br","code","li","p","pre","span","table","td","tr","th","ul","ol","menu","font","b","center","table","tr","th"]})}(e+="\n"===e[e.length]?" \n":"\n \n"),V=(n=d,o=p,N.replace(w,(function(){return x(o,"Times New Roman",n,!0)}))),b=L(V,u,12,d,m),f=function(e){return(0,i["default"])(e,{breaks:!0,smartypants:!0,smartLists:!0,walkTokens:function(e){switch(e.type){case"url":case"autolink":case"reflink":case"link":case"image":e.type="text",e.href=""}},baseUrl:"thisshouldbreakhttp"})}(b.text),g=x(f,u,d,s);h.text+=g,h.field_counter=b.counter}if(t){var v=function(e,t,n,o,r){var a;void 0===r&&(r=!1);for(var i={},l=[];null!==(a=_.exec(e));){var d=a[0],u=a.groups.id;if(u){var s=document.getElementById(u);if(0===(s&&s.value?s.value:"").length)continue;var m=c["default"].sanitize(s.value.trim(),{ALLOWED_TAGS:[]});if(0===m.length)continue;var p=s.cloneNode(!0);m.match(w)?(p.style.fontFamily="Times New Roman",r=!0,p.defaultValue=o):(p.style.fontFamily=t,p.defaultValue=m),r&&(p.style.fontWeight="bold"),p.style.color=n,p.disabled=!0;var h=document.createElement("div");h.appendChild(p),i[u]=m,l.push({value:"["+h.innerHTML+"]",raw_text:d})}}if(l.length>0)for(var N,V=C(l);!(N=V()).done;){var b=N.value;e=e.replace(b.raw_text,b.value)}return{text:e,fields:i}}(h.text,u,d,p,s);h.text=v.text,h.form_fields=v.fields}return h},n.onInputHandler=function(e,t){var n=this;if(t!==this.state.textarea_text){var o=this.state.old_text.length+this.state.textarea_text.length;if(o>5e3&&(t=o-5e3>=t.length?"":t.substr(0,t.length-(o-5e3)))===this.state.textarea_text)return;this.setState((function(){return{textarea_text:t,combined_text:n.createPreview(t)}}))}},n.finalUpdate=function(e){var t=(0,l.useBackend)(this.context).act,n=this.createPreview(e,!0);t("save",n),this.setState((function(){return{textarea_text:"",previewSelected:"save",combined_text:n.text}}))},n.render=function(){var e=this,t=this.props,n=(t.value,t.textColor),r=t.fontFamily,a=t.stamps,c=t.backgroundColor;return p(t,["value","textColor","fontFamily","stamps","backgroundColor"]),(0,o.createComponentVNode)(2,d.Flex,{direction:"column",fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,d.Flex.Item,{children:(0,o.createComponentVNode)(2,d.Tabs,{children:[(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"Edit"===this.state.previewSelected?"grey":"white",selected:"Edit"===this.state.previewSelected,onClick:function(){return e.setState({previewSelected:"Edit"})},children:"Edit"},"marked_edit"),(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"Preview"===this.state.previewSelected?"grey":"white",selected:"Preview"===this.state.previewSelected,onClick:function(){return e.setState((function(){return{previewSelected:"Preview",textarea_text:e.state.textarea_text,combined_text:e.createPreview(e.state.textarea_text).text}}))},children:"Preview"},"marked_preview"),(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"confirm"===this.state.previewSelected?"red":"save"===this.state.previewSelected?"grey":"white",selected:"confirm"===this.state.previewSelected||"save"===this.state.previewSelected,onClick:function(){"confirm"===e.state.previewSelected?e.finalUpdate(e.state.textarea_text):"Edit"===e.state.previewSelected?e.setState((function(){return{previewSelected:"confirm",textarea_text:e.state.textarea_text,combined_text:e.createPreview(e.state.textarea_text).text}})):e.setState({previewSelected:"confirm"})},children:"confirm"===this.state.previewSelected?"confirm":"save"},"marked_done")]})}),(0,o.createComponentVNode)(2,d.Flex.Item,{grow:1,basis:1,children:"Edit"===this.state.previewSelected&&(0,o.createComponentVNode)(2,d.TextArea,{value:this.state.textarea_text,textColor:n,fontFamily:r,height:window.innerHeight-80+"px",backgroundColor:c,onInput:this.onInputHandler.bind(this)})||(0,o.createComponentVNode)(2,I,{value:this.state.combined_text,stamps:a,fontFamily:r,textColor:n})})]})},t}(o.Component);t.PaperSheet=function(e,t){var n=(0,l.useBackend)(t).data,r=n.edit_mode,a=n.text,c=n.paper_color,i=n.pen_color,s=void 0===i?"black":i,m=n.pen_font,p=void 0===m?"Verdana":m,C=n.stamps,h=n.stamp_class,N=(n.stamped,c&&"white"!==c?c:"#FFFFFF"),V=C&&null!==C?C:[];return(0,o.createComponentVNode)(2,u.Window,{theme:"paper",width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,d.Box,{fillPositionedParent:!0,backgroundColor:N,children:function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,I,{value:a,stamps:V,readOnly:!0});case 1:return(0,o.createComponentVNode)(2,A,{value:a,textColor:s,fontFamily:p,stamps:V,backgroundColor:N});case 2:return(0,o.createComponentVNode)(2,T,{value:a,stamps:V,stamp_class:h});default:return"ERROR ERROR WE CANNOT BE HERE!!"}}(r)})})})}},,,function(e,t,n){"use strict";t.__esModule=!0,t.ParticleAccelerator=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ParticleAccelerator=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.assembled,u=l.power,s=l.strength;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:185,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Run Scan",onClick:function(){return i("scan")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"good":"bad",children:d?"Ready - All parts in place":"Unable to detect all parts"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Particle Accelerator Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,disabled:!d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Particle Strength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:!d,onClick:function(){return i("remove_strength")}})," ",String(s).padStart(1,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:!d,onClick:function(){return i("add_strength")}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);function i(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n50?"good":d>15&&"average")||"bad";return(0,o.createComponentVNode)(2,c.Window,{width:450,height:340,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!l.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!l.ready_to_boot,children:l.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:l.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:u,children:l.sheets}),l.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:l.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:l.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):l.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:l.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:l.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:l.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!l.connected&&"bad",children:l.connected?l.power_available:"Unconnected"})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PortablePump=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(211);t.PortablePump=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.direction,s=(d.holding,d.target_pressure),m=d.default_pressure,p=d.min_pressure,C=d.max_pressure;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:315,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,i.PortableBasicInfo),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-in-alt":"sign-out-alt",content:u?"In":"Out",selected:u,onClick:function(){return l("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,unit:"kPa",width:"75px",minValue:p,maxValue:C,step:10,onChange:function(e,t){return l("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:s===p,onClick:function(){return l("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:s===m,onClick:function(){return l("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:s===C,onClick:function(){return l("pressure",{pressure:"max"})}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=void 0;var o=n(0),r=n(2),a=n(1),c=n(36),i=n(3),l=n(211);t.PortableScrubber=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data.filter_types||[];return(0,o.createComponentVNode)(2,i.Window,{width:320,height:350,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,l.PortableBasicInfo),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,c.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return d("toggle_filter",{val:e.gas_id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableTurret=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.PortableTurret=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.silicon_user,u=l.locked,s=l.on,m=l.check_weapons,p=l.neutralize_criminals,C=l.neutralize_all,h=l.neutralize_unidentified,N=l.neutralize_nonmindshielded,V=l.neutralize_cyborgs,b=l.neutralize_heads,f=l.manual_control,g=l.allow_manual_control,v=l.lasertag_turret;return(0,o.createComponentVNode)(2,c.Window,{width:310,height:v?110:292,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe an ID card to ",u?"unlock":"lock"," this interface."]}),(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:!v&&(!!g||!!f&&!!d)&&(0,o.createComponentVNode)(2,a.Button,{icon:f?"wifi":"terminal",content:f?"Remotely Controlled":"Manual Control",disabled:f,color:"bad",onClick:function(){return i("manual")}}),children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"power-off":"times",content:s?"On":"Off",selected:s,disabled:u,onClick:function(){return i("power")}})})})}),!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Target Settings",buttons:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:!b,content:"Ignore Command",disabled:u,onClick:function(){return i("shootheads")}}),children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:C,content:"Non-Security and Non-Command",disabled:u,onClick:function(){return i("shootall")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:m,content:"Unauthorized Weapons",disabled:u,onClick:function(){return i("authweapon")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:h,content:"Unidentified Life Signs",disabled:u,onClick:function(){return i("checkxenos")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:N,content:"Non-Mindshielded",disabled:u,onClick:function(){return i("checkloyal")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:p,content:"Wanted Criminals",disabled:u,onClick:function(){return i("shootcriminals")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:V,content:"Cyborgs",disabled:u,onClick:function(){return i("shootborgs")}})]})],0)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ProbingConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ProbingConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.open,u=l.feedback,s=l.occupant,m=l.occupant_name,p=l.occupant_status;return(0,o.createComponentVNode)(2,c.Window,{width:330,height:207,theme:"abductor",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Machine Report",children:u})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"sign-out-alt":"sign-in-alt",content:d?"Close":"Open",onClick:function(){return i("door")}}),children:s&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:3===p?"bad":2===p?"average":"good",children:3===p?"Deceased":2===p?"Unconscious":"Conscious"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Experiments",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer",content:"Probe",onClick:function(){return i("experiment",{experiment_type:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"brain",content:"Dissect",onClick:function(){return i("experiment",{experiment_type:2})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"search",content:"Analyze",onClick:function(){return i("experiment",{experiment_type:3})}})]})]})||(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Subject"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ProximitySensor=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ProximitySensor=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.minutes,u=l.seconds,s=l.timing,m=l.scanning,p=l.sensitivity;return(0,o.createComponentVNode)(2,c.Window,{width:250,height:185,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"lock":"unlock",content:m?"Armed":"Not Armed",selected:m,onClick:function(){return i("scanning")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Detection Range",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:m,onClick:function(){return i("sense",{range:-1})}})," ",String(p).padStart(1,"1")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:m,onClick:function(){return i("sense",{range:1})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Auto Arm",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:s?"Stop":"Start",selected:s,disabled:m,onClick:function(){return i("time")}}),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:m||s,onClick:function(){return i("input",{adjust:-30})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:m||s,onClick:function(){return i("input",{adjust:-1})}})," ",String(d).padStart(2,"0"),":",String(u).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:m||s,onClick:function(){return i("input",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:m||s,onClick:function(){return i("input",{adjust:30})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(0),r=n(14),a=n(9),c=n(2),i=n(1),l=n(36),d=n(3);t.Radio=function(e,t){var n=(0,c.useBackend)(t),u=n.act,s=n.data,m=s.freqlock,p=s.frequency,C=s.minFrequency,h=s.maxFrequency,N=s.listening,V=s.broadcasting,b=s.command,f=s.useCommand,g=s.subspace,v=s.subspaceSwitchable,k=l.RADIO_CHANNELS.find((function(e){return e.freq===p})),x=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(s.channels),B=106;return g&&(x.length>0?B+=21*x.length+6:B+=24),(0,o.createComponentVNode)(2,d.Window,{width:360,height:B,children:(0,o.createComponentVNode)(2,d.Window.Content,{children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Frequency",children:[m&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(p/10,1)+" kHz"})||(0,o.createComponentVNode)(2,i.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:C/10,maxValue:h/10,value:p/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return u("frequency",{adjust:t-p/10})}}),k&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:k.color,ml:2,children:["[",k.name,"]"]})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,i.Button,{textAlign:"center",width:"37px",icon:N?"volume-up":"volume-mute",selected:N,onClick:function(){return u("listen")}}),(0,o.createComponentVNode)(2,i.Button,{textAlign:"center",width:"37px",icon:V?"microphone":"microphone-slash",selected:V,onClick:function(){return u("broadcast")}}),!!b&&(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:"bullhorn",selected:f,content:"High volume "+(f?"ON":"OFF"),onClick:function(){return u("command")}}),!!v&&(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:"bullhorn",selected:g,content:"Subspace Tx "+(g?"ON":"OFF"),onClick:function(){return u("subspace")}})]}),!!g&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Channels",children:[0===x.length&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),x.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,i.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return u("channel",{channel:e.name})}})},e.name)}))]})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RadioactiveMicrolaser=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.RadioactiveMicrolaser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.irradiate,u=l.stealth,s=l.scanmode,m=l.intensity,p=l.wavelength,C=l.on_cooldown,h=l.cooldown;return(0,o.createComponentVNode)(2,c.Window,{title:"Radioactive Microlaser",width:320,height:335,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Status",children:(0,o.createComponentVNode)(2,a.Box,{color:C?"average":"good",children:C?"Recharging":"Ready"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Irradiation",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return i("irradiate")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stealth Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"eye-slash":"eye",content:u?"On":"Off",disabled:!d,selected:u,onClick:function(){return i("stealth")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"mortar-pestle":"heartbeat",content:s?"Scan Reagents":"Scan Health",disabled:d&&u,onClick:function(){return i("scanmode")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laser Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Intensity",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return i("radintensity",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return i("radintensity",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(m),width:"40px",minValue:1,maxValue:20,onChange:function(e,t){return i("radintensity",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return i("radintensity",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return i("radintensity",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Wavelength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return i("radwavelength",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return i("radwavelength",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(p),width:"40px",minValue:0,maxValue:120,onChange:function(e,t){return i("radwavelength",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return i("radwavelength",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return i("radwavelength",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Cooldown",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:h})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(0),r=n(6),a=n(2),c=n(1),i=n(3),l=["Atmospherics","Disposals","Transit Tubes"],d={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},s=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e,t){var n=(0,a.useBackend)(t),m=n.act,p=n.data,C=p.category,h=p.categories,N=void 0===h?[]:h,V=p.selected_color,b=p.piping_layer,f=p.mode,g=p.preview_rows.flatMap((function(e){return e.previews})),v=(0,a.useLocalState)(t,"categoryName"),k=v[0],x=v[1],B=N.find((function(e){return e.cat_name===k}))||N[0];return(0,o.createComponentVNode)(2,i.Window,{width:425,height:515,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Category",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,c.Button,{selected:C===t,icon:d[e],color:"transparent",content:e,onClick:function(){return m("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Modes",children:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{checked:f&e.bitmask,content:e.name,onClick:function(){return m("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,width:"64px",color:u[V],children:V}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,c.ColorBox,{ml:1,color:u[e],onClick:function(){return m("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,c.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,c.Section,{children:[0===C&&(0,o.createComponentVNode)(2,c.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{fluid:!0,checked:e===b,content:"Layer "+e,onClick:function(){return m("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,c.Box,{width:"108px",children:g.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return m("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,c.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Tabs,{children:N.map((function(e,t){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{fluid:!0,icon:d[e.cat_name],selected:e.cat_name===B.cat_name,onClick:function(){return x(e.cat_name)},children:e.cat_name},e.cat_name)}))}),null==B?void 0:B.recipes.map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:e.selected,content:e.pipe_name,title:e.pipe_name,onClick:function(){return m("pipe_type",{pipe_type:e.pipe_index,category:B.cat_name})}},e.pipe_index)}))]})})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RemoteRobotControlContent=t.RemoteRobotControl=void 0;var o=n(0),r=n(19),a=n(2),c=n(1),i=n(3);t.RemoteRobotControl=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{title:"Remote Robot Control",width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.robots,d=void 0===l?[]:l;return d.length?d.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name+" ("+e.model+")",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"tools",content:"Interface",onClick:function(){return i("interface",{ref:e.ref})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"phone-alt",content:"Call",onClick:function(){return i("callbot",{ref:e.ref})}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"Inactive"===(0,r.decodeHtmlEntities)(e.mode)?"bad":"Idle"===(0,r.decodeHtmlEntities)(e.mode)?"average":"good",children:(0,r.decodeHtmlEntities)(e.mode)})," ",e.hacked&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"(HACKED)"})||""]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Location",children:e.location})]})},e.ref)})):(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.NoticeBox,{textAlign:"center",children:"No robots detected"})})};t.RemoteRobotControlContent=l},function(e,t,n){"use strict";t.__esModule=!0,t.RoboticsControlConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.RoboticsControlConsole=function(e,t){var n=(0,r.useBackend)(t),d=(n.act,n.data),u=(0,r.useSharedState)(t,"tab",1),s=u[0],m=u[1],p=d.can_hack,C=d.can_convert,h=d.cyborgs,N=void 0===h?[]:h,V=d.drones,b=void 0===V?[]:V;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:460,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:1===s,onClick:function(){return m(1)},children:["Cyborgs (",N.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:2===s,onClick:function(){return m(2)},children:["Drones (",b.length,")"]})]}),1===s&&(0,o.createComponentVNode)(2,i,{cyborgs:N,can_hack:p,can_convert:C}),2===s&&(0,o.createComponentVNode)(2,l,{drones:b})]})})};var i=function(e,t){var n=e.cyborgs,c=e.can_hack,i=e.can_convert,l=(0,r.useBackend)(t),d=l.act;l.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([!!c&&!e.emagged&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return d("magbot",{ref:e.ref})}}),!!i&&!e.servant&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Convert",color:"bad",onClick:function(){return d("convert",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",onClick:function(){return d("stopbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return d("killbot",{ref:e.ref})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:(0,o.createComponentVNode)(2,a.Box,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.ref)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected within access parameters"})},l=function(e,t){var n=e.drones,c=(0,r.useBackend)(t).act;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return c("killdrone",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":"good",children:e.status?"Not Responding":"Nominal"})})})},e.ref)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No drone units detected within access parameters"})}},function(e,t,n){"use strict";t.__esModule=!0,t.Roulette=t.RouletteBetTable=t.RouletteBoard=t.RouletteNumberButton=void 0;var o=n(0),r=n(6),a=n(2),c=n(1),i=n(3),l=function(e){if(0===e)return"green";for(var t=[[1,10],[19,28]],n=!0,o=0;o=r[0]&&e<=r[1]){n=!1;break}}var a=e%2==0;return(n?a:!a)?"red":"black"},d=function(e,t){var n=e.number,r=(0,a.useBackend)(t).act;return(0,o.createComponentVNode)(2,c.Button,{bold:!0,content:n,color:l(n),width:"40px",height:"28px",fontSize:"20px",textAlign:"center",mb:0,className:"Roulette__board-extrabutton",onClick:function(){return r("ChangeBetType",{type:n})}})};t.RouletteNumberButton=d;var u=function(e,t){var n=(0,a.useBackend)(t).act;return(0,o.createVNode)(1,"table","Table",[(0,o.createVNode)(1,"tr","Roulette__board-row",[(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{content:"0",color:"transparent",height:"88px",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:0})}}),2,{rowSpan:"3"}),[3,6,9,12,15,18,21,24,27,30,33,36].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s3rd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[2,5,8,11,14,17,20,23,26,29,32,35].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s2nd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[1,4,7,10,13,16,19,22,25,28,31,34].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1st col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"1st 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-12"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2nd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s13-24"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"3rd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s25-36"})}}),2,{colSpan:"4"})],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"1-18",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-18"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Even",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"even"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Black",color:"black",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"black"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Red",color:"red",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"red"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Odd",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"odd"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"19-36",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s19-36"})}}),2,{colSpan:"2"})],4)],4,{style:{width:"1px"}})};t.RouletteBoard=u;var s=function(e,t){var n=(0,a.useBackend)(t),i=n.act,d=n.data,u=(0,a.useLocalState)(t,"customBet",500),s=u[0],m=u[1],p=d.BetType;return p.startsWith("s")&&(p=p.substring(1,p.length)),(0,o.createVNode)(1,"table","Roulette__lowertable",[(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Last Spun:",16),(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Current Bet:",16)],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--spinresult","Roulette__lowertable--spinresult-"+l(d.LastSpin)]),d.LastSpin,0),(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--betscell"]),[(0,o.createComponentVNode)(2,c.Box,{bold:!0,mt:1,mb:1,fontSize:"25px",textAlign:"center",children:[d.BetAmount," cr on ",p]}),(0,o.createComponentVNode)(2,c.Box,{ml:1,mr:1,children:[(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 10 cr",onClick:function(){return i("ChangeBetAmount",{amount:10})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 50 cr",onClick:function(){return i("ChangeBetAmount",{amount:50})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 100 cr",onClick:function(){return i("ChangeBetAmount",{amount:100})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 500 cr",onClick:function(){return i("ChangeBetAmount",{amount:500})}}),(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet custom amount...",onClick:function(){return i("ChangeBetAmount",{amount:s})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{size:.1,children:(0,o.createComponentVNode)(2,c.NumberInput,{value:s,minValue:0,maxValue:1e3,step:10,stepPixelSize:4,width:"40px",onChange:function(e,t){return m(t)}})})]})]})],4)],4),(0,o.createVNode)(1,"tr",null,(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Box,{bold:!0,m:1,fontSize:"14px",textAlign:"center",children:"Swipe an ID card with a connected account to spin!"}),2,{colSpan:"2"}),2),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","Roulette__lowertable--cell",[(0,o.createComponentVNode)(2,c.Box,{inline:!0,bold:!0,mr:1,children:"House Balance:"}),(0,o.createComponentVNode)(2,c.Box,{inline:!0,children:d.HouseBalance?d.HouseBalance+" cr":"None"})],4),(0,o.createVNode)(1,"td","Roulette__lowertable--cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:d.IsAnchored?"Bolted":"Unbolted",m:1,color:"transparent",textAlign:"center",onClick:function(){return i("anchor")}}),2)],4)],4)};t.RouletteBetTable=s;t.Roulette=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:603,height:475,theme:"cardtable",children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(0),r=n(2),a=n(1),c=n(198),i=n(3);t.SatelliteControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.satellites||[];return(0,o.createComponentVNode)(2,i.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[d.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.meteor_shield_coverage/d.meteor_shield_coverage_max,content:100*d.meteor_shield_coverage/d.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return l("toggle",{id:e.id})}},e.id)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(0),r=n(2),a=n(1),c=n(64),i=n(3),l=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],d=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e,t){var n=(0,r.useBackend)(t),a=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:400,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{onLockedStatusChange:function(){return a("toggle_lock")}}),!l.locked&&(0,o.createComponentVNode)(2,m)]})})};var s={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return C}},Guns:{title:"Scanner Mode: Guns",component:function(){return h}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return N}},Disease:{title:"Scanner Mode: Disease",component:function(){return V}},Species:{title:"Scanner Mode: Species",component:function(){return b}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return f}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return g}}},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.scan_mode,l=s[i]||s.off,d=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==i&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return c("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,d)})},p=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return n("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return n("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return n("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return n("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return n("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return n("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return n("set_mode",{new_mode:"Nanites"})}})]})],4)},C=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,v)],4)},h=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,v)],4)},N=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,v)],4)},V=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.reverse,u=i.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",d?"does not have":"has"," ","a disease equal or worse than ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===u,content:e,onClick:function(){return c("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,v)],4)},b=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,u=i.target_species,s=d.find((function(e){return e.value===u}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",l?"not":""," ","of the ",s.name," species.","zombie"===u&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===u,content:e.name,onClick:function(){return c("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,v)],4)},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,d=i.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return c("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,v)],4)},g=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,d=i.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return c("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,v)],4)},v=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return c("toggle_reverse")},color:i?"bad":"good"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SeedExtractor=void 0;var o=n(0),r=n(14),a=n(30),c=n(19),i=n(2),l=n(1),d=n(3);t.SeedExtractor=function(e,t){var n,u,s=(0,i.useBackend)(t),m=s.act,p=s.data,C=(n=p.seeds,u=Object.keys(n).map((function(e){var t=function(e){var t,n=/([^;=]+)=([^;]+)/g,o={};do{(t=n.exec(e))&&(o[t[1]]=t[2]+"")}while(t);return o}(e);return t.amount=n[e],t.key=e,t.name=(0,c.toTitleCase)(t.name.replace("pack of ","")),t})),(0,a.flow)([(0,r.sortBy)((function(e){return e.name}))])(u));return(0,o.createComponentVNode)(2,d.Window,{width:1e3,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Stored seeds:",children:(0,o.createComponentVNode)(2,l.Table,{cellpadding:"3",textAlign:"center",children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Lifespan"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Endurance"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Maturation"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Production"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Yield"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Potency"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Instability"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Stock"})]}),C.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.lifespan}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.endurance}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.maturation}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.production}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.yield}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.potency}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.instability}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:[(0,o.createComponentVNode)(2,l.Button,{content:"Vend",onClick:function(){return m("select",{item:e.key})}}),"(",e.amount," left)"]})]},e.key)}))]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleConsole=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.ShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.authorization_required;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:230,children:[!!l&&(0,o.createComponentVNode)(2,a.Modal,{ml:1,mt:1,width:26,height:12,fontSize:"28px",fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mt:2,children:(0,o.createComponentVNode)(2,a.Icon,{name:"minus-circle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mt:2,ml:2,color:"bad",children:"SHUTTLE LOCKED"})]}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",mt:4,children:(0,o.createComponentVNode)(2,a.Button,{lineHeight:"40px",icon:"arrow-circle-right",content:"Request Authorization",color:"bad",onClick:function(){return i("request")}})})]}),(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,d)})]})};var i=function(e,t){var n;return null==e||null==(n=e.find((function(e){return e.id===t})))?void 0:n.name},l=function(e,t){var n;return null==e||null==(n=e.find((function(e){return e.name===t})))?void 0:n.id},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data,u=d.status,s=d.locked,m=d.authorization_required,p=d.destination,C=d.docked_location,h=d.timer_str,N=d.locations,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"26px",textAlign:"center",fontFamily:"monospace",children:h||"00:00"}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",fontSize:"14px",mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:"STATUS:"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"In Transit"===u?"good":"Idle"===u||"Igniting"===u?"average":"bad",ml:1,children:u||"Not Available"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Shuttle Controls",level:2,children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:C||"Not Available"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:0===V.length&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Available"})||1===V.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:i(V,p)})||(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,width:"240px",options:V.map((function(e){return e.name})),disabled:s||m,selected:i(V,p)||"Select a Destination",onSelected:function(e){return c("set_destination",{destination:l(V,e)})}})})]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Depart",disabled:!i(V,p)||s||m,mt:1.5,icon:"arrow-up",textAlign:"center",onClick:function(){return c("move",{shuttle_id:p})}})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulatorModification=t.ShuttleManipulatorTemplates=t.ShuttleManipulatorStatus=t.ShuttleManipulator=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3);t.ShuttleManipulator=function(e,t){var n=(0,a.useLocalState)(t,"tab",1),r=n[0],s=n[1];return(0,o.createComponentVNode)(2,i.Window,{title:"Shuttle Manipulator",width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===r,onClick:function(){return s(1)},children:"Status"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:2===r,onClick:function(){return s(2)},children:"Templates"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:3===r,onClick:function(){return s(3)},children:"Modification"})]}),1===r&&(0,o.createComponentVNode)(2,l),2===r&&(0,o.createComponentVNode)(2,d),3===r&&(0,o.createComponentVNode)(2,u)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.shuttles||[];return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Table,{children:i.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{content:"JMP",onClick:function(){return r("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return r("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,c.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return r("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})};t.ShuttleManipulatorStatus=l;var d=function(e,t){var n,i=(0,a.useBackend)(t),l=i.act,d=i.data,u=d.templates||{},s=d.selected||{},m=(0,a.useLocalState)(t,"templateId",Object.keys(u)[0]),p=m[0],C=m[1],h=null==(n=u[p])?void 0:n.templates;return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:p===t,onClick:function(){return C(t)},children:e.port_id},t)}))(u)})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:h.map((function(e){var t=e.shuttle_id===s.shuttle_id;return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return l("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,c.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))})]})})};t.ShuttleManipulatorTemplates=d;var u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.selected||{},d=i.existing_shuttle||{};return(0,o.createComponentVNode)(2,c.Section,{children:l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{level:2,title:l.name,children:(!!l.description||!!l.admin_notes)&&(0,o.createComponentVNode)(2,c.LabeledList,{children:[!!l.description&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:l.description}),!!l.admin_notes&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Admin Notes",children:l.admin_notes})]})}),d?(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Existing Shuttle: "+d.name,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,c.Button,{content:"Jump To",onClick:function(){return r("jump_to",{type:"mobile",id:d.id})}}),children:[d.status,!!d.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),d.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,c.Button,{content:"Preview",onClick:function(){return r("preview",{shuttle_id:l.shuttle_id})}}),(0,o.createComponentVNode)(2,c.Button,{content:"Load",color:"bad",onClick:function(){return r("load",{shuttle_id:l.shuttle_id})}})]})],0):"No shuttle selected"})};t.ShuttleManipulatorModification=u},function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(0),r=n(9),a=n(2),c=n(1),i=n(3);t.Signaler=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.code,s=d.frequency,m=d.minFrequency,p=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{width:280,height:132,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:m/10,maxValue:p/10,value:s/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onDrag:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,c.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:u,width:"80px",onDrag:function(e,t){return l("code",{code:t})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,c.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return l("signal")}})})})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SkillPanel=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i={color:"lightgreen",fontWeight:"bold"},l={color:"#FFDB58",fontWeight:"bold"};t.SkillPanel=function(e,t){var n=(0,r.useBackend)(t),u=n.act,s=n.data,m=s.skills||[];return(0,o.createComponentVNode)(2,c.Window,{title:"Manage Skills",width:600,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:m.playername,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[(0,o.createVNode)(1,"span",null,e.desc,0,{style:l}),(0,o.createVNode)(1,"br"),!!e.level_based&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d,{skill_lvl_num:e.lvl_base_num,skill_lvl:e.lvl_base}),(0,o.createVNode)(1,"br")],4),"Total Experience: [",e.value_base," XP]",(0,o.createVNode)(1,"br"),"XP To Next Level:",e.level_based?(0,o.createVNode)(1,"span",null,e.xp_next_lvl_base,0):(0,o.createVNode)(1,"span",null,"[MAXXED]",16,{style:i}),(0,o.createVNode)(1,"br"),e.base_readout,(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.percent_base,color:"good"}),(0,o.createVNode)(1,"br"),!!s.admin&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Adjust Exp",onClick:function(){return u("adj_exp",{skill:e.path})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Set Exp",onClick:function(){return u("set_exp",{skill:e.path})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Set Level",onClick:function(){return u("set_lvl",{skill:e.path})}}),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"br")],4)]},e.name)}))})})})})};var d=function(e){var t=e.skill_lvl_num,n=e.skill_lvl;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:["Level: [",(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,textColor:"hsl("+50*t+", 50%, 50%)",children:n}),"]"]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SkillStation=t.TimeFormat=t.ImplantedSkillchips=t.InsertedSkillchip=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=n(9),l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.skillchip_ready,d=i.slot_use,u=i.slots_used,s=i.slots_max,m=i.implantable_reason,p=i.implantable,C=i.complexity,h=i.skill_name,N=i.skill_desc,V=i.skill_icon,b=i.working;return l?(0,o.createComponentVNode)(2,a.Section,{title:"Inserted Skillchip",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"syringe",disabled:!p||!!b,color:p?"good":"default",onClick:function(){return c("implant")},content:"Implant",tooltip:m}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!!b,onClick:function(){return c("eject")},content:"Eject"})],4),children:(0,o.createComponentVNode)(2,a.Flex,{spacing:2,height:"100%",width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{height:"100%",align:"center",children:(0,o.createComponentVNode)(2,a.Icon,{size:3,name:V})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"100%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Skillchip",children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:N})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Complexity",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"brain",width:"15px",textAlign:"center"})," ",C]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Slot Size",children:(0,o.createComponentVNode)(2,a.Box,{color:u+d>s&&"red",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"save",width:"15px",textAlign:"center"})," ",d]})}),!!m&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Error",color:p?"good":"bad",children:m})]})})]})}):!b&&(0,o.createComponentVNode)(2,a.NoticeBox,{info:!0,children:"Please insert a skillchip."})};t.InsertedSkillchip=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.slots_used,d=i.slots_max,u=i.complexity_used,s=i.complexity_max,m=i.working,p=i.current||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Implanted Skillchips",children:[!p.length&&"No skillchips detected.",!!p.length&&(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Chip"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"brain",tooltip:"Complexity",tooltipPosition:"top",content:u+"/"+s})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"save",tooltip:"Slot Size",tooltipPosition:"top",content:l+"/"+d})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"check",tooltip:"Is Active",tooltipPosition:"top"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"hourglass-half",tooltip:"Cooldown",tooltipPosition:"top"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"tasks",tooltip:"Actions",tooltipPosition:"top"})})]}),p.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Icon,{textAlign:"center",width:"18px",mr:1,name:e.icon}),e.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:(!e.active?e.complexity+u>s&&"bad":"good")||"grey",textAlign:"center",children:e.complexity}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"good",textAlign:"center",children:e.slot_use}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Icon,{name:e.active?"check":"times",color:e.active?"good":"bad"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.cooldown>0&&Math.ceil(e.cooldown/10)+"s"||"0s"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("remove",{ref:e.ref})},icon:e.removable?"eject":"trash",color:e.removable?"good":"bad",tooltip:e.removable?"Extract":"Destroy",tooltipPosition:"left",disabled:e.cooldown||m}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("toggle_activate",{ref:e.ref})},icon:e.active?"check-square-o":"square-o",color:e.active?"good":"default",tooltip:!!e.active_error&&!e.active&&e.active_error||e.active&&"Deactivate"||"Activate",tooltipPosition:"left",disabled:e.cooldown||m||!e.active&&e.complexity+u>s})]})]},e.ref)}))]})]})};t.ImplantedSkillchips=d;var u=function(e,t){var n=e.value,o=(0,i.toFixed)(Math.floor(n/10%60)).padStart(2,"0"),r=(0,i.toFixed)(Math.floor(n/600%60)).padStart(2,"0");return(0,i.toFixed)(Math.floor(n/36e3%24)).padStart(2,"0")+":"+r+":"+o};t.TimeFormat=u;t.SkillStation=function(e,t){var n=(0,r.useBackend)(t).data,i=n.working,s=n.timeleft,m=n.error;return(0,o.createComponentVNode)(2,c.Window,{title:"Skillsoft Station",width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:m}),!!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mb:.5,children:"Operation in progress. Please do not leave the chamber."}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["Time Left: ",(0,o.createComponentVNode)(2,u,{value:s})]})]})}),(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,d)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i=[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Oxygen",type:"oxyLoss"}];t.Sleeper=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.open,s=d.occupant,m=void 0===s?{}:s,p=d.occupied,C=(d.chems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,c.Window,{width:310,height:465,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:m.name?m.name:"No Occupant",minHeight:"210px",buttons:!!m.stat&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:m.statstate,children:m.stat}),children:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,ranges:{good:[50,Infinity],average:[0,50],bad:[-Infinity,0]}}),(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:m.is_robotic_organism&&"Toxin"===e.label?"Corruption":e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type],minValue:0,maxValue:m.maxHealth,color:"bad"})},e.type)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cells",color:m.cloneLoss?"bad":"good",children:m.cloneLoss?"Damaged":"Healthy"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain",color:m.brainLoss?"bad":"good",children:m.brainLoss?"Abnormal":"Healthy"})]})],4)}),(0,o.createComponentVNode)(2,a.Section,{title:"Medicines",minHeight:"205px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"door-open":"door-closed",content:u?"Open":"Closed",onClick:function(){return l("door")}}),children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,disabled:!p||!e.allowed,width:"140px",onClick:function(){return l("inject",{chem:e.id})}},e.name)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(0),r=n(2),a=n(1),c=n(3),i={Dead:"bad",Unconscious:"average",Conscious:"good"},l={owner:"You Are Here",stranger:"Occupied",available:"Swap"},d=function(e,t){var n=e.body,r=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:n.htmlcolor,children:n.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:l[n.occupied],selected:"owner"===n.occupied,color:"stranger"===n.occupied&&"bad",onClick:function(){return r()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:i[n.status],children:n.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:n.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:n.area})]})})};t.BodyEntry=d;t.SlimeBodySwapper=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.bodies,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:u.map((function(e){return(0,o.createComponentVNode)(2,d,{body:e,swapFunc:function(){return i("swap",{ref:e.ref})}},e.name)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(0),r=n(14),a=n(2),c=n(1),i=n(3);t.SmartVend=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:440,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Section,{title:"Storage",buttons:!!d.isdryer&&(0,o.createComponentVNode)(2,c.Button,{icon:d.drying?"stop":"tint",onClick:function(){return l("Dry")},children:d.drying?"Stop drying":"Dry"}),children:0===d.contents.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:["Unfortunately, this ",d.name," is empty."]})||(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"center",children:d.verb?d.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.Button,{content:"One",disabled:e.amount<1,onClick:function(){return l("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,c.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return l("Release",{name:e.name})}})]})]},t)}))(d.contents)]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(0),r=n(2),a=n(1),c=n(39),i=n(3);t.Smes=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.capacityPercent,s=(d.capacity,d.charge),m=d.inputAttempt,p=d.inputting,C=d.inputLevel,h=d.inputLevelMax,N=d.inputAvailable,V=d.outputAttempt,b=d.outputting,f=d.outputLevel,g=d.outputLevelMax,v=d.outputUsed,k=(u>=100?"good":p&&"average")||"bad",x=(b?"good":s>0&&"average")||"bad";return(0,o.createComponentVNode)(2,i.Window,{width:340,height:350,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*u,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"sync-alt":"times",selected:m,onClick:function(){return l("tryinput")},children:m?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:k,children:(u>=100?"Fully Charged":p&&"Charging")||"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===C,onClick:function(){return l("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===C,onClick:function(){return l("input",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:C/1e3,fillValue:N/1e3,minValue:0,maxValue:h/1e3,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(1e3*e,1)},onDrag:function(e,t){return l("input",{target:1e3*t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:C===h,onClick:function(){return l("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:C===h,onClick:function(){return l("input",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:(0,c.formatPower)(N)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:V?"power-off":"times",selected:V,onClick:function(){return l("tryoutput")},children:V?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:x,children:b?"Sending":s>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===f,onClick:function(){return l("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===f,onClick:function(){return l("output",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:f/1e3,minValue:0,maxValue:g/1e3,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(1e3*e,1)},onDrag:function(e,t){return l("output",{target:1e3*t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:f===g,onClick:function(){return l("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:f===g,onClick:function(){return l("output",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:(0,c.formatPower)(v)})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.SmokeMachine=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.TankContents,u=(l.isTankLoaded,l.TankCurrentVolume),s=l.TankMaxVolume,m=l.active,p=l.setting,C=(l.screen,l.maxSetting),h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:350,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return i("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/s,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:u||0})," / "+s]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:p===e,icon:"plus",content:3*e,disabled:h0?"good":"bad",children:h})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:u,children:d+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===C,onClick:function(){return i("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===C,onClick:function(){return i("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===C,disabled:!N,onClick:function(){return i("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===C||1===C)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:s,onDrag:function(e,t){return i("azimuth",{value:t})}}),1===C&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-p-.01,maxValue:p+.01,value:m,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return i("azimuth_rate",{value:t})}}),2===C&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[s+" \xb0"," (auto)"]})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.SpaceHeater=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!l.hasPowercell||!l.open,onClick:function(){return i("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,disabled:!l.hasPowercell,onClick:function(){return i("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!l.hasPowercell&&"bad",children:l.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.powerLevel/100,ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]},children:l.powerLevel+"%"})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(l.targetTemp-l.currentTemp)>50?"bad":Math.abs(l.targetTemp-l.currentTemp)>20?"average":"good",children:[l.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:l.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.targetTemp),width:"65px",unit:"\xb0C",minValue:l.minTemp,maxValue:l.maxTemp,onChange:function(e,t){return i("target",{target:t})}})||l.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:l.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===l.mode,onClick:function(){return i("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===l.mode,onClick:function(){return i("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===l.mode,onClick:function(){return i("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.SpawnersMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.spawners||[];return(0,o.createComponentVNode)(2,c.Window,{title:"Spawners Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return i("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return i("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.SuitStorageUnit=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.locked,u=l.open,s=l.safeties,m=l.uv_active,p=l.occupied,C=l.suit,h=l.helmet,N=l.mask,V=l.storage;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!(!p||!s)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!u&&(0,o.createComponentVNode)(2,a.Button,{icon:d?"unlock":"lock",content:d?"Unlock":"Lock",onClick:function(){return i("lock")}}),!d&&(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-out-alt":"sign-in-alt",content:u?"Close":"Open",onClick:function(){return i("door")}})],0),children:d&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||u&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return i("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:C?"square":"square-o",content:C||"Empty",disabled:!C,onClick:function(){return i("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:N?"square":"square-o",content:N||"Empty",disabled:!N,onClick:function(){return i("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:V?"square":"square-o",content:V||"Empty",disabled:!V,onClick:function(){return i("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:p&&s,textAlign:"center",onClick:function(){return i("uv")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SyndPane=t.StatusPane=t.SyndContractorContent=t.SyndContractor=t.FakeTerminal=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);var i=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.tick=function(){var e=this.props,t=this.state;t.currentIndex<=e.allMessages.length?(this.setState((function(e){return{currentIndex:e.currentIndex+1}})),t.currentDisplay.push(e.allMessages[t.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))},c.componentDidMount=function(){var e=this,t=this.props.linesPerSecond,n=void 0===t?2.5:t;this.timer=setInterval((function(){return e.tick()}),1e3/n)},c.componentWillUnmount=function(){clearTimeout(this.timer)},c.render=function(){return(0,o.createComponentVNode)(2,a.Box,{m:1,children:this.state.currentDisplay.map((function(e){return(0,o.createFragment)([e,(0,o.createVNode)(1,"br")],0,e)}))})},r}(o.Component);t.FakeTerminal=i;t.SyndContractor=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:500,height:600,theme:"syndicate",resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.data,l=n.act,d=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(2e4*Math.random()),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"],s=!!c.error&&(0,o.createComponentVNode)(2,a.Modal,{backgroundColor:"red",children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,children:(0,o.createComponentVNode)(2,a.Icon,{size:4,name:"exclamation-triangle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,grow:1,textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{width:"260px",textAlign:"left",minHeight:"80px",children:c.error}),(0,o.createComponentVNode)(2,a.Button,{content:"Dismiss",onClick:function(){return l("PRG_clear_error")}})]})]})});return c.logged_in?c.logged_in&&c.first_load?(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"525px",children:(0,o.createComponentVNode)(2,i,{allMessages:d,finishedTimeout:3e3,onFinished:function(){return l("PRG_set_first_load_finished")}})}):c.info_screen?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"500px",children:(0,o.createComponentVNode)(2,i,{allMessages:["SyndTract v2.0","","We've identified potentional high-value targets that are","currently assigned to your mission area. They are believed","to hold valuable information which could be of immediate","importance to our organisation.","","Listed below are all of the contracts available to you. You","are to bring the specified target to the designated","drop-off, and contact us via this uplink. We will send","a specialised extraction unit to put the body into.","","We want targets alive - but we will sometimes pay slight","amounts if they're not, you just won't recieve the shown","bonus. You can redeem your payment through this uplink in","the form of raw telecrystals, which can be put into your","regular Syndicate uplink to purchase whatever you may need.","We provide you with these crystals the moment you send the","target up to us, which can be collected at anytime through","this system.","","Targets extracted will be ransomed back to the station once","their use to us is fulfilled, with us providing you a small","percentage cut. You may want to be mindful of them","identifying you when they come back. We provide you with","a standard contractor loadout, which will help cover your","identity."],linesPerSecond:10})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"CONTINUE",color:"transparent",textAlign:"center",onClick:function(){return l("PRG_toggle_info")}})],4):(0,o.createFragment)([s,(0,o.createComponentVNode)(2,u)],0):(0,o.createComponentVNode)(2,a.Section,{minHeight:"525px",children:[(0,o.createComponentVNode)(2,a.Box,{width:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{content:"REGISTER USER",color:"transparent",onClick:function(){return l("PRG_login")}})}),!!c.error&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c.error})]})};t.SyndContractorContent=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createFragment)([(0,o.createTextVNode)("Contractor Status"),(0,o.createComponentVNode)(2,a.Button,{content:"View Information Again",color:"transparent",mb:0,ml:1,onClick:function(){return c("PRG_toggle_info")}})],4),buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,mr:1,children:[i.contract_rep," Rep"]}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.85,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Available",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Claim",disabled:i.redeemable_tc<=0,onClick:function(){return c("PRG_redeem_TC")}}),children:i.redeemable_tc}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Earned",children:i.earned_tc})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contracts Completed",children:i.contracts_completed}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Status",children:"ACTIVE"})]})})]})})};t.StatusPane=d;var u=function(e,t){var n=(0,r.useLocalState)(t,"tab",1),c=n[0],i=n[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,d,{state:e.state}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,onClick:function(){return i(1)},children:"Contracts"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,onClick:function(){return i(2)},children:"Hub"})]}),1===c&&(0,o.createComponentVNode)(2,s),2===c&&(0,o.createComponentVNode)(2,m)],0)};t.SyndPane=u;var s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.contracts||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Available Contracts",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Call Extraction",disabled:!i.ongoing_contract||i.extraction_enroute,onClick:function(){return c("PRG_call_extraction")}}),children:l.map((function(e){if(!i.ongoing_contract||2===e.status){var t=e.status>1;if(!(e.status>=5))return(0,o.createComponentVNode)(2,a.Section,{title:e.target?e.target+" ("+e.target_rank+")":"Invalid Target",level:t?1:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:[e.payout," (+",e.payout_bonus,") TC"]}),(0,o.createComponentVNode)(2,a.Button,{content:t?"Abort":"Accept",disabled:e.extraction_enroute,color:t&&"bad",onClick:function(){return c("PRG_contract"+(t?"_abort":"-accept"),{contract_id:e.id})}})],4),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.message}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,children:"Dropoff Location:"}),(0,o.createComponentVNode)(2,a.Box,{children:e.dropoff})]})]})},e.target)}}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Dropoff Locator",textAlign:"center",opacity:i.ongoing_contract?100:0,children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:i.dropoff_direction})})],4)},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.contractor_hub_items||[];return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){var t=e.cost?e.cost+" Rep":"FREE",n=-1!==e.limited;return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" - "+t,level:2,buttons:(0,o.createFragment)([n&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:[e.limited," remaining"]}),(0,o.createComponentVNode)(2,a.Button,{content:"Purchase",disabled:i.contract_repl.user.cash),content:h?"FREE":d.price+" cr",onClick:function(){return i("vend",{ref:d.ref})}})})]})};t.Vending=function(e,t){var n,r=(0,a.useBackend)(t),d=(r.act,r.data),u=d.user,s=d.onstation,m=d.product_records,p=void 0===m?[]:m,C=d.coin_records,h=void 0===C?[]:C,N=d.hidden_records,V=void 0===N?[]:N,b=d.stock,f=!1;return d.vending_machine_input?(n=d.vending_machine_input||[],f=!0):(n=[].concat(p,h),d.extended_inventory&&(n=[].concat(n,V))),n=n.filter((function(e){return!!e})),(0,o.createComponentVNode)(2,i.Window,{title:"Vending Machine",width:450,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[!!s&&(0,o.createComponentVNode)(2,c.Section,{title:"User",children:u&&(0,o.createComponentVNode)(2,c.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,u.name,0),","," ",(0,o.createVNode)(1,"b",null,u.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[u.cash,(0,o.createTextVNode)(" credits")],0),"."]})||(0,o.createComponentVNode)(2,c.Box,{color:"light-grey",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Products",children:(0,o.createComponentVNode)(2,c.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,l,{custom:f,product:e,productStock:b[e.name]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.VrSleeper=void 0;var o=n(0),r=n(2),a=n(1),c=n(3);t.VrSleeper=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:340,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!l.emagged&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Safety restraints disabled."})}),(0,o.createComponentVNode)(2,a.Section,{title:"Virtual Avatar",children:l.vr_avatar?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.vr_avatar.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l.vr_avatar.status}),!!l.vr_avatar&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.vr_avatar.health/l.vr_avatar.maxhealth,ranges:{good:[.9,Infinity],average:[.7,.8],bad:[-Infinity,.5]}})})]}):"No Virtual Avatar detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"VR Commands",children:[(0,o.createComponentVNode)(2,a.Button,{icon:l.toggle_open?"unlock":"lock",disabled:l.stored