diff --git a/_maps/__MAP_DEFINES.dm b/_maps/__MAP_DEFINES.dm index 416d116e379..ee8e3b620f3 100644 --- a/_maps/__MAP_DEFINES.dm +++ b/_maps/__MAP_DEFINES.dm @@ -57,7 +57,7 @@ #define ZTRAIT_UP "Up" #define ZTRAIT_DOWN "Down" -#define ZTRAIT_GRAVITY "Gravity" // overrides Z-level gravity making it always on. Unless it's space turf or openspace in a space area. See atom/proc/has_gravity() +#define ZTRAIT_GRAVITY "Gravity" // overrides Z-level gravity making it always on. Unless it's space turf or openspace in a space area. See atom/proc/get_gravity() #define ZTRAIT_BASETURF "Baseturf" // overrides Z-level baseturf. set type path by ZTRAIT_BASETURF = "/turf/..." // 3 Is already big one hella station. diff --git a/_maps/map_files/templates/piratbase.dmm b/_maps/map_files/templates/piratbase.dmm index b2937e83da7..467f4083e56 100644 --- a/_maps/map_files/templates/piratbase.dmm +++ b/_maps/map_files/templates/piratbase.dmm @@ -6397,7 +6397,7 @@ /area/ruin/space/pirate_base/mining) "sq" = ( /obj/structure/table/glass, -/obj/item/assembly/signaler/anomaly/bluespace, +/obj/item/assembly/signaler/core/bluespace/tier2, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "dark" diff --git a/code/__DEFINES/anomalies.dm b/code/__DEFINES/anomalies.dm new file mode 100644 index 00000000000..3dd76fdfa7e --- /dev/null +++ b/code/__DEFINES/anomalies.dm @@ -0,0 +1,59 @@ +#define ANOMALY_TYPE_RANDOM "random" +#define ANOMALY_TYPE_ATMOS "atmospheric" +#define ANOMALY_TYPE_BLUESPACE "bluespace" +#define ANOMALY_TYPE_GRAV "gravitational" +#define ANOMALY_TYPE_VORTEX "vortex" +#define ANOMALY_TYPE_FLUX "energetic" +#define TIER1 "1" +#define TIER2 "2" +#define TIER3 "3" + +#define isanomaly(A) (istype((A), /obj/effect/anomaly)) + +#define iscore(A) (istype((A), /obj/item/assembly/signaler/core)) + +#define iscoreempty(A) ((A.type == /obj/item/assembly/signaler/core/tier1) || \ + (A.type == /obj/item/assembly/signaler/core/tier2) || \ + (A.type == /obj/item/assembly/signaler/core/tier3)) + +#define iscoreatmos(A) (istype((A), /obj/item/assembly/signaler/core/atmospheric)) +#define iscorebluespace(A) (istype((A), /obj/item/assembly/signaler/core/bluespace)) +#define iscoregrav(A) (istype((A), /obj/item/assembly/signaler/core/gravitational)) +#define iscorevortex(A) (istype((A), /obj/item/assembly/signaler/core/vortex)) +#define iscoreflux(A) (istype((A), /obj/item/assembly/signaler/core/energetic)) + +GLOBAL_LIST_INIT(anomaly_types, list( + TIER1 = list( + ANOMALY_TYPE_ATMOS = /datum/anomaly_gen_datum/tier1/pyroclastic, + ANOMALY_TYPE_BLUESPACE = /datum/anomaly_gen_datum/tier1/bluespace, + ANOMALY_TYPE_GRAV = /datum/anomaly_gen_datum/tier1/gravitational, + ANOMALY_TYPE_VORTEX = /datum/anomaly_gen_datum/tier1/vortex, + ANOMALY_TYPE_FLUX = /datum/anomaly_gen_datum/tier1/energetic, + ), + TIER2 = list( + ANOMALY_TYPE_ATMOS = /datum/anomaly_gen_datum/tier2/pyroclastic, + ANOMALY_TYPE_BLUESPACE = /datum/anomaly_gen_datum/tier2/bluespace, + ANOMALY_TYPE_GRAV = /datum/anomaly_gen_datum/tier2/gravitational, + ANOMALY_TYPE_VORTEX = /datum/anomaly_gen_datum/tier2/vortex, + ANOMALY_TYPE_FLUX = /datum/anomaly_gen_datum/tier2/energetic, + ), + TIER3 = list( + ANOMALY_TYPE_ATMOS = /datum/anomaly_gen_datum/tier3/pyroclastic, + ANOMALY_TYPE_BLUESPACE = /datum/anomaly_gen_datum/tier3/bluespace, + ANOMALY_TYPE_GRAV = /datum/anomaly_gen_datum/tier3/gravitational, + ANOMALY_TYPE_VORTEX = /datum/anomaly_gen_datum/tier3/vortex, + ANOMALY_TYPE_FLUX = /datum/anomaly_gen_datum/tier3/energetic, + ), +)) + +GLOBAL_LIST_INIT(created_anomalies, list( + ANOMALY_TYPE_ATMOS = 0, + ANOMALY_TYPE_BLUESPACE = 0, + ANOMALY_TYPE_GRAV = 0, + ANOMALY_TYPE_VORTEX = 0, + ANOMALY_TYPE_FLUX = 0, +)) + +#define ANOMALY_GROW_STABILITY 30 +#define ANOMALY_DECREASE_STABILITY 70 +#define ANOMALY_MOVE_MAX_STABILITY 59 diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index aa521e47314..6662ac0b652 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -169,7 +169,7 @@ ///from base of atom/handle_atom_del(): (atom/deleted) #define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" -///from base of atom/has_gravity(): (turf/location, list/forced_gravities) +///from base of atom/get_gravity(): (turf/location, list/forced_gravities) #define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" ///from proc/get_rad_contents(): () #define COMSIG_ATOM_RAD_PROBE "atom_rad_probe" @@ -287,7 +287,7 @@ ///from base of turf/ChangeTurf(): (path, list/new_baseturf, flags, list/transferring_comps) #define COMSIG_TURF_CHANGE "turf_change" -///from base of atom/has_gravity(): (atom/asker, list/forced_gravities) +///from base of atom/get_gravity(): (atom/asker, list/forced_gravities) #define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" ///from base of turf/multiz_turf_del(): (turf/source, direction) #define COMSIG_TURF_MULTIZ_DEL "turf_multiz_del" diff --git a/code/__DEFINES/gravity.dm b/code/__DEFINES/gravity.dm index a824ba45e42..b0a52d8aa6f 100644 --- a/code/__DEFINES/gravity.dm +++ b/code/__DEFINES/gravity.dm @@ -6,7 +6,13 @@ */ #define NEGATIVE_GRAVITY -1 +#define NO_GRAVITY 0.3 + #define STANDARD_GRAVITY 1 //Anything above this is high gravity, anything below no grav until negative gravity +/// The gravity strength threshold for slownown. +#define HIGH_GRAVITY_SLOWDOWN 1.5 +/// The gravity strength threshold for disability of staying. +#define GRAVITY_CANT_STAY 2 /// The gravity strength threshold for high gravity damage. #define GRAVITY_DAMAGE_THRESHOLD 3 /// The scaling factor for high gravity damage. @@ -14,3 +20,6 @@ /// The maximum [BRUTE] damage a mob can take from high gravity per second. #define GRAVITY_DAMAGE_MAXIMUM 1.5 + +#define GRAVITY_SOURCE_GRAVGEN "gravgen" +#define GRAVITY_SOURCE_ANOMALY "anomaly" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 089ea970b09..4d56edd5a50 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -382,6 +382,8 @@ ///How much a mob's sprite should be moved when they're lying down #define PIXEL_Y_OFFSET_LYING -6 +///How much a mob's sprite should be moved when they're lying up (on the ceiling) +#define PIXEL_Y_OFFSET_LYING_REVERSED 6 // Slip flags, also known as lube flags /// The mob will not slip if they're walking intent diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index 92565ab1354..80a700de392 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -157,3 +157,5 @@ #define BLOB_INFECTED_TRAIT "blob_infected" #define VENDOR_FLATTENING_TRAIT "vendor_flattening" + +#define GRAVITATION_TRAIT "gravitation" diff --git a/code/__HELPERS/AnimationLibrary.dm b/code/__HELPERS/AnimationLibrary.dm index 2c44c3b8d1d..b8f67e5e079 100644 --- a/code/__HELPERS/AnimationLibrary.dm +++ b/code/__HELPERS/AnimationLibrary.dm @@ -31,7 +31,7 @@ if(random_side) side = pick(-1, 1) - spawn(rand(1,10)) + spawn(rand(1, 10)) animate(A, pixel_y = 32, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) animate(pixel_y = 0, transform = matrix(floatdegrees * (side == 1 ? -1:1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) @@ -43,7 +43,7 @@ if(random_side) side = pick(-1, 1) - spawn(rand(1,10)) + spawn(rand(1, 10)) animate(A, pixel_y = 8, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) animate(pixel_y = 0, transform = null, time = floatspeed, loop = loopnum, easing = SINE_EASING) @@ -55,7 +55,7 @@ if(random_side) side = pick(-1, 1) - spawn(rand(1,10)) + spawn(rand(1, 10)) animate(A, pixel_y = 8, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) animate(pixel_y = 0, transform = matrix(floatdegrees * (side == 1 ? -1:1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) @@ -67,7 +67,7 @@ while(do_loops > 0) do_loops-- animate(A, transform = M, pixel_z = A.pixel_z + 12, alpha = A.alpha - 17, time = 1, loop = 1, easing = LINEAR_EASING) - M.Scale(1.2,1.2) + M.Scale(1.2, 1.2) sleep(1) A.alpha = 0 @@ -76,37 +76,37 @@ return var/matrix/M = matrix() var/do_loops = 15 - M.Scale(18,18) + M.Scale(18, 18) while(do_loops > 0) do_loops-- animate(A, transform = M, pixel_z = A.pixel_z - 12, alpha = A.alpha + 17, time = 1, loop = 1, easing = LINEAR_EASING) - M.Scale(0.8,0.8) + M.Scale(0.8, 0.8) sleep(1) animate(A, transform = M, pixel_z = 0, alpha = 255, time = 1, loop = 1, easing = LINEAR_EASING) -/proc/animate_shake(var/atom/A, var/amount = 5, var/x_severity = 2, var/y_severity = 2) +/proc/animate_shake(atom/A, amount = 5, x_severity = 2, y_severity = 2) // Wiggles the sprite around on its tile then returns it to normal if(!istype(A)) return if(!isnum(amount) || !isnum(x_severity) || !isnum(y_severity)) return - amount = max(1,min(amount,50)) - x_severity = max(-32,min(x_severity,32)) - y_severity = max(-32,min(y_severity,32)) + amount = max(1, min(amount, 50)) + x_severity = max(-32, min(x_severity, 32)) + y_severity = max(-32, min(y_severity, 32)) var/x_severity_inverse = 0 - x_severity var/y_severity_inverse = 0 - y_severity - animate(A, transform = null, pixel_y = rand(y_severity_inverse,y_severity), pixel_x = rand(x_severity_inverse,x_severity),time = 1,loop = amount, easing = ELASTIC_EASING) + animate(A, transform = null, pixel_y = rand(y_severity_inverse, y_severity), pixel_x = rand(x_severity_inverse, x_severity), time = 1, loop = amount, easing = ELASTIC_EASING, flags = ANIMATION_PARALLEL) spawn(amount) - animate(A, transform = null, pixel_y = 0, pixel_x = 0,time = 1,loop = 1, easing = LINEAR_EASING) + animate(A, transform = null, pixel_y = 0, pixel_x = 0, time = 1, loop = 1, easing = LINEAR_EASING, flags = ANIMATION_PARALLEL) /proc/animate_teleport(var/atom/A) if(!istype(A)) return var/matrix/M = matrix(1, 3, MATRIX_SCALE) animate(A, transform = M, pixel_y = 32, time = 10, alpha = 50, easing = CIRCULAR_EASING) - M.Scale(0,4) + M.Scale(0, 4) animate(transform = M, time = 5, color = "#1111ff", alpha = 0, easing = CIRCULAR_EASING) animate(transform = null, time = 5, color = "#ffffff", alpha = 255, pixel_y = 0, easing = ELASTIC_EASING) @@ -122,19 +122,19 @@ /proc/animate_rainbow_glow_old(var/atom/A) if(!istype(A)) return - animate(A, color = "#FF0000", time = rand(5,10), loop = -1, easing = LINEAR_EASING) - animate(color = "#00FF00", time = rand(5,10), loop = -1, easing = LINEAR_EASING) - animate(color = "#0000FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING) + animate(A, color = "#FF0000", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) + animate(color = "#00FF00", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) + animate(color = "#0000FF", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) /proc/animate_rainbow_glow(var/atom/A) if(!istype(A)) return - animate(A, color = "#FF0000", time = rand(5,10), loop = -1, easing = LINEAR_EASING) - animate(color = "#FFFF00", time = rand(5,10), loop = -1, easing = LINEAR_EASING) - animate(color = "#00FF00", time = rand(5,10), loop = -1, easing = LINEAR_EASING) - animate(color = "#00FFFF", time = rand(5,10), loop = -1, easing = LINEAR_EASING) - animate(color = "#0000FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING) - animate(color = "#FF00FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING) + animate(A, color = "#FF0000", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) + animate(color = "#FFFF00", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) + animate(color = "#00FF00", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) + animate(color = "#00FFFF", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) + animate(color = "#0000FF", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) + animate(color = "#FF00FF", time = rand(5, 10), loop = -1, easing = LINEAR_EASING) /proc/animate_fade_to_color_fill(var/atom/A, var/the_color, var/time) if(!istype(A) || !the_color || !time) @@ -163,8 +163,8 @@ /proc/animate_wiggle_then_reset(var/atom/A, var/loops = 5, var/speed = 5, var/x_var = 3, var/y_var = 3) if(!istype(A) || !loops || !speed) return - animate(A, pixel_x = rand(-x_var, x_var), pixel_y = rand(-y_var, y_var), time = speed * 2,loop = loops, easing = rand(2,7)) - animate(pixel_x = 0, pixel_y = 0, time = speed, easing = rand(2,7)) + animate(A, pixel_x = rand(-x_var, x_var), pixel_y = rand(-y_var, y_var), time = speed * 2, loop = loops, easing = rand(2, 7)) + animate(pixel_x = 0, pixel_y = 0, time = speed, easing = rand(2, 7)) /proc/animate_spin(var/atom/A, var/dir = "L", var/T = 1, var/looping = -1) if(!istype(A)) @@ -180,9 +180,10 @@ animate(transform = matrix(M, turn, MATRIX_ROTATE | MATRIX_MODIFY), time = T, loop = looping) animate(transform = matrix(M, turn, MATRIX_ROTATE | MATRIX_MODIFY), time = T, loop = looping) -/proc/animate_shockwave(var/atom/A) +/proc/animate_shockwave(atom/A) if(!istype(A)) return + var/punchstr = rand(10, 20) var/original_y = A.pixel_y animate(A, transform = matrix(punchstr, MATRIX_ROTATE), pixel_y = 16, time = 2, color = "#eeeeee", easing = BOUNCE_EASING) diff --git a/code/__HELPERS/paths/path.dm b/code/__HELPERS/paths/path.dm index e01bea57f7c..c005d323df4 100644 --- a/code/__HELPERS/paths/path.dm +++ b/code/__HELPERS/paths/path.dm @@ -345,7 +345,7 @@ src.movement_type = construct_from.movement_type src.thrown = !!construct_from.throwing src.anchored = construct_from.anchored - src.has_gravity = construct_from.has_gravity() + src.has_gravity = construct_from.get_gravity() if(ismob(construct_from)) var/mob/mob_construct = construct_from src.faction = mob_construct.faction?.Copy() diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 4a0132a6645..59a6bd18743 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -340,29 +340,27 @@ or something covering your eyes." /atom/movable/screen/alert/negative - name = "Negative Gravity" - desc = "You're getting pulled upwards. While you won't have to worry about falling down anymore, you may accidentally fall upwards!" + name = "Обратная гравитация" + desc = "Вас тянет вверх. Хоть падение вниз вам больше не грозит, вы всё ещё можете упасть вверх!" icon_state = "negative" /atom/movable/screen/alert/weightless - name = "Weightless" - desc = "Gravity has ceased affecting you, and you're floating around aimlessly. You'll need something large and heavy, like a \ -wall or lattice, to push yourself off if you want to move. A jetpack would enable free range of motion. A pair of \ -magboots would let you walk around normally on the floor. Barring those, you can throw things, use a fire extinguisher, \ -or shoot a gun to move around via Newton's 3rd Law of Motion." + name = "Невесомость" + desc = "Гравитация перестала на вас влиять, и вы парите в пространстве. Чтобы двигаться, вы можете оттолкнуться от ближайших объектов, \ +кинуть что-то от себя или выстрелить в противоположную сторону. Для более комфортного перемещения используйте специальное оборудование." icon_state = "weightless" /atom/movable/screen/alert/highgravity - name = "High Gravity" - desc = "You're getting crushed by high gravity, picking up items and movement will be slowed." + name = "Повышенная гравитация" + desc = "На вас давит высокая гравитация. Двигаться в таком состоянии непросто." icon_state = "paralysis" /atom/movable/screen/alert/veryhighgravity - name = "Crushing Gravity" - desc = "You're getting crushed by high gravity, picking up items and movement will be slowed. You'll also accumulate brute damage!" + name = "Сокрушительная гравитация" + desc = "На вас давит невероятно высокая гравитация. Вы чувствуете, будто вас буквально разрывает на части!" icon_state = "paralysis" diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index b5d5c8bd01d..fc4eb4a740f 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -157,7 +157,7 @@ SUBSYSTEM_DEF(throwing) //calculate how many tiles to move, making up for any missed ticks. var/tilestomove = CEILING(min(((((world.time + world.tick_lag) - start_time + delayed_time) * speed) - (dist_travelled ? dist_travelled : -1)), speed * MAX_TICKS_TO_MAKE_UP) * (world.tick_lag * SSthrowing.wait), 1) while(tilestomove-- > 0) - if((dist_travelled >= maxrange || AM.loc == target_turf) && AM.has_gravity(AM.loc)) + if((dist_travelled >= maxrange || AM.loc == target_turf) && !AM.no_gravity(AM.loc)) if(!hitcheck()) finalize() return @@ -181,7 +181,15 @@ SUBSYSTEM_DEF(throwing) finalize() return - dist_travelled++ + /* + A - Acceleration of gravity. + H - The height of the object's fall. + T - Past tense of falling. + H(T) = A * T * T / 2 + If A will become X times bigger, T will become sqrt(X) times lower. + */ + if(!AM.no_gravity()) // If no gravity, it causes some problems. I think, it will work normally this way. + dist_travelled += 1 * sqrt(abs(AM.get_gravity())) if(dist_travelled > MAX_THROWING_DIST) finalize() diff --git a/code/datums/action.dm b/code/datums/action.dm index ce7e9830f6e..46c9971cc55 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -558,7 +558,7 @@ /datum/action/item_action/gravity_jump name = "Gravity jump" - desc = "Directs a pulse of gravity in front of the user, pulling them forward rapidly." + desc = "Направляет импульс гравитации перед пользователем, придавая ему ускорение." attack_self = FALSE /datum/action/item_action/gravity_jump/Trigger(left_click = TRUE) diff --git a/code/datums/components/conveyor_movement.dm b/code/datums/components/conveyor_movement.dm index 7eb80972bb4..1e24f184032 100644 --- a/code/datums/components/conveyor_movement.dm +++ b/code/datums/components/conveyor_movement.dm @@ -30,7 +30,7 @@ if((moving_mob.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) && !moving_mob.stat) return MOVELOOP_SKIP_STEP var/atom/movable/moving_parent = parent - if(moving_parent.anchored || !moving_parent.has_gravity()) + if(moving_parent.anchored || moving_parent.get_gravity() > NO_GRAVITY) // No moving on convey with negative gravity. return MOVELOOP_SKIP_STEP diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm index 3764199cc46..0ec660095a6 100644 --- a/code/datums/components/riding/riding.dm +++ b/code/datums/components/riding/riding.dm @@ -288,7 +288,7 @@ /datum/component/riding/proc/Process_Spacemove(direction, continuous_move) var/atom/movable/AM = parent - return override_allow_spacemove || AM.has_gravity() + return override_allow_spacemove || !AM.no_gravity() /// currently replicated from ridable because we need this behavior here too, see if we can deal with that /datum/component/riding/proc/unequip_buckle_inhands(mob/living/carbon/user) diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index fb26d0dc21d..a4ea888e5ba 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -116,7 +116,7 @@ if(I.item_flags & ABSTRACT) return - if((arrived.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) || !arrived.has_gravity()) + if((arrived.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) || arrived.no_gravity()) return if(ismob(arrived) && !arrived.density) // Prevents 10 overlapping mice from making an unholy sound while moving diff --git a/code/datums/elements/footstep.dm b/code/datums/elements/footstep.dm index 782af5a7f13..0537891e1d1 100644 --- a/code/datums/elements/footstep.dm +++ b/code/datums/elements/footstep.dm @@ -90,7 +90,7 @@ if(steps % 2) return - if(steps != 0 && !source.has_gravity()) // don't need to step as often when you hop around + if(steps != 0 && source.no_gravity()) // don't need to step as often when you hop around return . = list(FOOTSTEP_MOB_SHOE = turf.footstep, FOOTSTEP_MOB_BAREFOOT = turf.barefootstep, FOOTSTEP_MOB_HEAVY = turf.heavyfootstep, FOOTSTEP_MOB_CLAW = turf.clawfootstep) diff --git a/code/datums/gravity.dm b/code/datums/gravity.dm new file mode 100644 index 00000000000..5c526c9511c --- /dev/null +++ b/code/datums/gravity.dm @@ -0,0 +1,33 @@ +/atom + var/list/gravity_sources = list() + var/list/ignored_gravity_sources = list() + +/atom/proc/add_gravity(id, gravity_delta) + if(id in gravity_sources) + gravity_sources[id] = 0 + + gravity_sources[id] += gravity_delta + + if(!gravity_sources[id]) + gravity_sources.Remove(id) + + if(isliving(src)) + var/mob/living/M = src + M.refresh_gravity() + +/atom/proc/remove_gravity_source(id) + gravity_sources.Remove(id) + if(isliving(src)) + var/mob/living/M = src + M.refresh_gravity() + +/atom/proc/add_ignored_gravity_source(id) + if(!(id in ignored_gravity_sources)) + ignored_gravity_sources[id] = 1 + else + ignored_gravity_sources[id]++ + +/atom/proc/remove_ignored_gravity_source(id) + ignored_gravity_sources[id]-- + if(!ignored_gravity_sources[id]) + ignored_gravity_sources.Remove(id) diff --git a/code/datums/helper_datums/construction_datum.dm b/code/datums/helper_datums/construction_datum.dm index aa709e1568a..acc3c7ad1ae 100644 --- a/code/datums/helper_datums/construction_datum.dm +++ b/code/datums/helper_datums/construction_datum.dm @@ -87,11 +87,14 @@ if(istype(task)) task.unit_completed() - new result(get_turf(holder)) + after_spawn_result(new result(get_turf(holder))) spawn() qdel(holder) return +/datum/construction/proc/after_spawn_result(atom/A) + return + /datum/construction/proc/set_desc(index as num) var/list/step = steps[index] holder.desc = step["desc"] diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 0d116755c7c..fc843dcf6aa 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -51,7 +51,7 @@ //must succeed in most cases /datum/teleport/proc/setTeleatom(atom/movable/ateleatom) - if(iseffect(ateleatom) && !istype(ateleatom, /obj/effect/dummy/chameleon)) + if(iseffect(ateleatom) && !istype(ateleatom, /obj/effect/dummy/chameleon) && !istype(ateleatom, /obj/effect/anomaly)) qdel(ateleatom) return 0 if(istype(ateleatom)) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 755a19232bb..1015adb5e95 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -731,9 +731,10 @@ /atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - if(density && !AM.has_gravity()) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). + if(density && AM.no_gravity()) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). addtimer(CALLBACK(src, PROC_REF(hitby_react), AM), 2) + SEND_SIGNAL(src, COMSIG_ATOM_HITBY, AM, skipcatch, hitpush, blocked, throwingdatum) /** * Called when living mob clicks on this atom with pulled movable. @@ -1592,36 +1593,44 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) * * Gravity if there's a gravity generator on the z level * * otherwise no gravity */ -/atom/proc/has_gravity(turf/gravity_turf) +/atom/proc/get_gravity(turf/gravity_turf) if(!isnull(GLOB.gravity_is_on)) // global admin override return GLOB.gravity_is_on if(!isturf(gravity_turf)) gravity_turf = get_turf(src) - if(!gravity_turf)//no gravity in nullspace + if(!gravity_turf)//no gravity in nullspace 1984 return FALSE if(check_level_trait(gravity_turf.z, ZTRAIT_GRAVITY)) return TRUE - var/list/forced_gravity = list() - SEND_SIGNAL(src, COMSIG_ATOM_HAS_GRAVITY, gravity_turf, forced_gravity) - SEND_SIGNAL(gravity_turf, COMSIG_TURF_HAS_GRAVITY, src, forced_gravity) - if(length(forced_gravity)) - var/positive_grav = max(forced_gravity) - var/negative_grav = min(min(forced_gravity), 0) //negative grav needs to be below or equal to 0 - - //our gravity is sum of the most massive positive and negative numbers returned by the signal - //so that adding two forced_gravity elements with an effect size of 1 each doesnt add to 2 gravity - //but negative force gravity effects can cancel out positive ones + if(gravity_turf.force_no_gravity) + return FALSE - return (positive_grav + negative_grav) + var/result_gravity = 0 + var/list/gravity_deltas = list() + SEND_SIGNAL(src, COMSIG_ATOM_HAS_GRAVITY, gravity_turf, gravity_deltas) + SEND_SIGNAL(gravity_turf, COMSIG_TURF_HAS_GRAVITY, src, gravity_deltas) var/area/turf_area = gravity_turf.loc + if(turf_area.has_gravity) + gravity_deltas.Add(1) + else if(!turf_area.ignore_gravgen && length(GLOB.gravity_generators["[gravity_turf.z]"]) && !(GRAVITY_SOURCE_GRAVGEN in ignored_gravity_sources)) + gravity_deltas.Add(1) + + for(var/source in gravity_sources) + if(!(source in ignored_gravity_sources)) + gravity_deltas.Add(gravity_sources[source]) - return !gravity_turf.force_no_gravity && (turf_area.has_gravity || (!turf_area.ignore_gravgen && length(GLOB.gravity_generators["[gravity_turf.z]"]))) + for(var/delta in gravity_deltas) + result_gravity += delta + return result_gravity + +/atom/proc/no_gravity(turf/gravity_turf) + return abs(get_gravity(gravity_turf)) <= NO_GRAVITY ///Setter for the `density` variable to append behavior related to its changing. /atom/proc/set_density(new_density) @@ -1720,3 +1729,10 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) */ /atom/proc/relaydrive(mob/living/user, direction) return !(SEND_SIGNAL(src, COMSIG_RIDDEN_DRIVER_MOVE, user, direction) & COMPONENT_DRIVER_BLOCK_MOVE) + +/atom/proc/get_external_loc() + var/atom/ext_loc = src + while(!isturf(ext_loc.loc)) + ext_loc = ext_loc.loc + + return ext_loc diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index d290628326d..b98f503681c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -981,9 +981,9 @@ if(z_move_flags & ZMOVE_FEEDBACK) to_chat(rider || src, span_warning("There's nowhere to go in that direction!")) return FALSE - if(z_move_flags & ZMOVE_FALL_CHECKS && (throwing || (movement_type & (FLYING|FLOATING)) || !has_gravity(start))) + if(z_move_flags & ZMOVE_FALL_CHECKS && (throwing || (movement_type & (FLYING|FLOATING)) || no_gravity(start))) return FALSE - if(z_move_flags & ZMOVE_CAN_FLY_CHECKS && !(movement_type & (FLYING|FLOATING)) && has_gravity(start)) + if(z_move_flags & ZMOVE_CAN_FLY_CHECKS && !(movement_type & (FLYING|FLOATING)) && !no_gravity(start)) if(z_move_flags & ZMOVE_FEEDBACK) if(rider) to_chat(rider, span_notice("[src] is not capable of flight.")) @@ -1049,7 +1049,7 @@ * * continuous_move - If this check is coming from something in the context of already drifting */ /atom/movable/proc/Process_Spacemove(movement_dir = NONE, continuous_move = FALSE) - if(has_gravity()) + if(!no_gravity()) return TRUE if(SEND_SIGNAL(src, COMSIG_MOVABLE_SPACEMOVE, movement_dir, continuous_move) & COMSIG_MOVABLE_STOP_SPACEMOVE) @@ -1164,8 +1164,17 @@ SSthrowing.processing[src] = thrown_thing thrown_thing.tick() + update_icon() return TRUE +/atom/movable/proc/random_throw(range_low = 0, range_high = 5, speed = 4) + var/list/turf/targets = list() + for(var/turf/T in range(range_high, src)) + if(get_dist(T, src) >= range_low && get_dist(T, src) <= range_high) + targets.Add(T) + + var/turf/target = pick(targets) + return throw_at(target, get_dist(src, target), speed) //Overlays /atom/movable/overlay diff --git a/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon.dm b/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon.dm index e7a464d7d32..53b0ea0783c 100644 --- a/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon.dm +++ b/code/game/gamemodes/miniantags/demons/pulse_demon/pulse_demon.dm @@ -850,6 +850,7 @@ return FALSE /mob/living/simple_animal/demon/pulse_demon/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + SEND_SIGNAL(src, COMSIG_ATOM_HITBY, AM, skipcatch, hitpush, blocked, throwingdatum) return /mob/living/simple_animal/demon/pulse_demon/experience_pressure_difference() diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index e45b8a0599b..75fbb3eded4 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -564,6 +564,30 @@ return FALSE +/obj/structure/holohoop/CanAllowThrough(atom/movable/mover, border_dir) + . = ..() + if((isitem(mover) && !isprojectile(mover)) && mover.throwing && mover.pass_flags != PASSEVERYTHING) + if(prob(50)) + mover.forceMove(loc) + visible_message(span_notice("Swish! [mover] lands in [src].")) + else + visible_message(span_alert("[mover] bounces off of [src]'s rim!")) + return FALSE + + +/obj/structure/holohoop/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + if(isitem(AM) && !isprojectile(AM)) + if(prob(50) || (throwingdatum && throwingdatum.thrower && HAS_TRAIT(throwingdatum.thrower, TRAIT_BADASS))) + AM.forceMove(get_turf(src)) + visible_message(span_warning("Swish! [AM] lands in [src].")) + SEND_SIGNAL(src, COMSIG_ATOM_HITBY, AM, skipcatch, hitpush, blocked, throwingdatum) + return + else + visible_message(span_danger("[AM] bounces off of [src]'s rim!")) + return ..() + else + return ..() + /obj/machinery/readybutton name = "Ready Declaration Device" desc = "This device is used to declare ready. If all devices in an area are ready, the event will begin!" diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm index 10a05df63fa..56780f6da4d 100644 --- a/code/game/machinery/computer/power.dm +++ b/code/game/machinery/computer/power.dm @@ -62,7 +62,7 @@ else GLOB.powermonitor_repository.remove_from_cache(src) -/obj/machinery/computer/monitor/proc/find_powernet() +/obj/machinery/proc/find_powernet() var/obj/structure/cable/attached = null var/turf/T = loc if(isturf(T)) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 01e0baaca4b..0dd708cd6fe 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -1174,3 +1174,13 @@ to destroy them and players will be able to make replacements. /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/cable_coil = 3, /obj/item/stack/sheet/glass = 1) + +/obj/item/circuitboard/anomaly_generator + board_name = "Генератор аномалий" + build_path = /obj/machinery/power/anomaly_generator + board_type = "machine" + origin_tech = "programming=1;bluespace=3" + req_components = list( + /obj/item/stock_parts/matter_bin = 2, + /obj/item/stock_parts/manipulator = 1, + /obj/item/stock_parts/capacitor = 2) diff --git a/code/game/machinery/customat.dm b/code/game/machinery/customat.dm index 15fd069fb6a..938b064d684 100644 --- a/code/game/machinery/customat.dm +++ b/code/game/machinery/customat.dm @@ -18,7 +18,7 @@ ///The key by which the object is pushed into the machine's row var/key = "generic_0" ///List of items in row - var/list/obj/item/containtment = list() + var/list/obj/item/containment = list() /// Price to buy one var/price = 0 ///Icon in tgui @@ -27,7 +27,7 @@ /datum/data/customat_product/New(obj/item/I) name = I.name amount = 0 - containtment = list() + containment = list() price = 0 icon = icon2base64(icon(initial(I.icon), initial(I.icon_state), SOUTH, 1, FALSE)) @@ -198,11 +198,11 @@ /obj/machinery/customat/proc/eject_all() for (var/key in products) var/datum/data/customat_product/product = products[key] - for (var/obj/item/I in product.containtment) + for (var/obj/item/I in product.containment) I.forceMove(get_turf(src)) product.amount = 0 - inserted_items_count -= product.containtment.len - product.containtment = list() + inserted_items_count -= product.containment.len + product.containment = list() /obj/machinery/customat/Destroy() eject_all() @@ -224,10 +224,6 @@ found_trunk.set_linked(src) trunk = found_trunk -/obj/machinery/customat/update_icon(updates = ALL) - return ..() - - /obj/machinery/customat/update_overlays() . = ..() @@ -382,7 +378,7 @@ products[key] = product product = products[key] - product.containtment += I + product.containment += I product.amount++ inserted_items_count++ @@ -704,7 +700,7 @@ */ /obj/machinery/customat/proc/do_vend(datum/data/customat_product/product, mob/user) var/put_on_turf = TRUE - var/obj/item/vended = product.containtment[1] + var/obj/item/vended = product.containment[1] if(istype(vended) && user && iscarbon(user) && user.Adjacent(src)) if(user.put_in_hands(vended, ignore_anim = FALSE)) put_on_turf = FALSE @@ -713,7 +709,7 @@ var/turf/T = get_turf(src) vended.forceMove(T) - product.containtment.Remove(product.containtment[1]) + product.containment.Remove(product.containment[1]) inserted_items_count-- return TRUE diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 1d44e121709..f16288a592f 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -195,7 +195,7 @@ underlays += emissive_appearance(icon, "[icon_state]_lightmask", src) -/obj/machinery/recharger/proc/get_cell_from(obj/item/I) +/proc/get_cell_from(obj/item/I) if(istype(I, /obj/item/gun/energy)) var/obj/item/gun/energy/E = I return E.cell diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index a7af66b69be..6acb8d94127 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1189,7 +1189,7 @@ */ /obj/machinery/vending/proc/tilt(atom/target_atom, crit = FALSE, from_combat = FALSE) - if(QDELETED(src) || !has_gravity(src) || !tiltable || tilted) + if(QDELETED(src) || no_gravity(src) || !tiltable || tilted) return tilted = TRUE diff --git a/code/game/mecha/combat/phazon.dm b/code/game/mecha/combat/phazon.dm index 846b55d0c6c..3584cc58981 100644 --- a/code/game/mecha/combat/phazon.dm +++ b/code/game/mecha/combat/phazon.dm @@ -19,7 +19,6 @@ force = 15 phase_state = "phazon-phase" max_equip = 3 - mech_type = MECH_TYPE_PHAZON /obj/mecha/combat/phazon/GrantActions(mob/living/user, human_occupant = 0) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 716c499ae69..fa35df0aba5 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -124,6 +124,9 @@ ///Mech subtype. Currently used in paintkits. var/mech_type = MECH_TYPE_NONE + /// Modifier of some phasing effects. + var/phase_modifier = 1 + hud_possible = list (DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_TRACK_HUD) /obj/mecha/Initialize() @@ -511,16 +514,16 @@ can_move = world.time + step_in_final if(turnsound) playsound(src, turnsound, 40, 1) - if(phasing && get_charge() >= phasing_energy_drain) + if(phasing && get_charge() >= phasing_energy_drain / phase_modifier) if(strafe) //No strafe while phase mode is active toggle_strafe(silent = TRUE) if(can_move < world.time) . = FALSE // We lie to mech code and say we didn't get to move, because we want to handle power usage + cooldown ourself flick("[initial_icon]-phase", src) forceMove(get_step(src, direction)) - use_power(phasing_energy_drain) + use_power(phasing_energy_drain / phase_modifier) playsound(src, stepsound, 40, 1) - can_move = world.time + (step_in * 3) + can_move = world.time + (step_in * 3 / phase_modifier) else if(stepsound) playsound(src, stepsound, 40, 1) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index f71553b6061..79079fb72de 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -1191,8 +1191,8 @@ result = "/obj/mecha/combat/phazon" steps = list( //1 - list("key" = /obj/item/assembly/signaler/anomaly/bluespace, - "backkey"=null, //Cannot remove the anomaly core once it's in + list("key" = /obj/item/assembly/signaler/core/bluespace, + "backkey"=TOOL_CROWBAR, "desc"="Anomaly core socket is open and awaiting connection."), //2 list("key" = TOOL_WELDER, @@ -1287,10 +1287,16 @@ "desc"="The hydraulic systems are disconnected.") ) + /// Inserted bluespace anomaly core. + var/obj/item/assembly/signaler/core/bluespace/core = null /datum/construction/reversible/mecha/phazon/action(atom/used_atom,mob/user as mob) return check_step(used_atom,user) +/datum/construction/reversible/mecha/phazon/after_spawn_result(atom/A) + var/obj/mecha/phazon = A + phazon.phase_modifier = core.get_strenght() / 150 + /datum/construction/reversible/mecha/phazon/custom_action(index, diff, atom/used_atom, mob/user) if(!..()) return 0 @@ -1470,8 +1476,13 @@ holder.icon_state = "phazon21" if(1) if(diff==FORWARD) + var/obj/item/assembly/signaler/core/bluespace/core = used_atom + if(core.get_strenght() < 100) + to_chat(user, span_warning("Ядро слишком слабо!")) + return FALSE + user.visible_message("[user] carefully inserts the anomaly core into \the [holder] and secures it.", "You slowly place the anomaly core into its socket and close its chamber.") - qdel(used_atom) + src.core = used_atom return 1 //ODYSSEUS diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 57550545f21..d050a155e83 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -401,7 +401,7 @@ /obj/item/mecha_parts/chassis/phazon/attackby(obj/item/I, mob/user, params) . = ..() - if(istype(I, /obj/item/assembly/signaler/anomaly) && !istype(I, /obj/item/assembly/signaler/anomaly/bluespace)) + if(iscore(I) && !iscorebluespace(I)) to_chat(user, span_warning("The anomaly core socket only accepts bluespace anomaly cores!")) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 60b9191a03f..3b7a8f7a984 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -101,6 +101,7 @@ target.set_glide_size(glide_size) target.setDir(dir) + REMOVE_TRAIT(target, TRAIT_FLOORED, GRAVITATION_TRAIT) post_buckle_mob(target) SEND_SIGNAL(src, COMSIG_MOVABLE_BUCKLE, target, force) @@ -157,6 +158,10 @@ if(istype(location) && !buckled_mob.currently_z_moving) location.zFall(buckled_mob) + if(isliving(src)) + var/mob/living/M = src + M.refresh_gravity() + post_unbuckle_mob(.) if(!QDELETED(buckled_mob) && !buckled_mob.currently_z_moving && isturf(buckled_mob.loc)) // In the case they unbuckled to a flying movable midflight. diff --git a/code/game/objects/effects/effect_system/effects_other.dm b/code/game/objects/effects/effect_system/effects_other.dm index 9e0f6c3eb40..21130411a73 100644 --- a/code/game/objects/effects/effect_system/effects_other.dm +++ b/code/game/objects/effects/effect_system/effects_other.dm @@ -51,7 +51,7 @@ /datum/effect_system/trail_follow/generate_effect() if(!check_conditions()) return stop() - if(oldposition && !(oldposition == get_turf(holder)) && (!oldposition.has_gravity() || !nograv_required)) + if(oldposition && !(oldposition == get_turf(holder)) && (oldposition.no_gravity() || !nograv_required)) var/obj/effect/new_effect = new effect_type(oldposition) set_dir(new_effect) if(fade && fadetype) @@ -96,7 +96,7 @@ /datum/effect_system/trail_follow/spacepod/generate_effect() if(!check_conditions()) return stop() - if(oldposition && !(oldposition == get_turf(holder)) && (!oldposition.has_gravity() || !nograv_required)) + if(oldposition && !(oldposition == get_turf(holder)) && (oldposition.no_gravity() || !nograv_required)) // spacepod loc is always southwest corner of 4x4 space var/turf/our_turf = holder.loc var/loc1 diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm index 86b498b54c4..1f9e588e5cb 100644 --- a/code/game/objects/effects/effects.dm +++ b/code/game/objects/effects/effects.dm @@ -82,7 +82,7 @@ /obj/effect/abstract/singularity_act() return -/obj/effect/abstract/has_gravity() +/obj/effect/abstract/get_gravity() return /obj/effect/abstract/narsie_act() @@ -103,7 +103,7 @@ /obj/effect/abstract/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE) return -/obj/effect/abstract/has_gravity(turf/gravity_turf) +/obj/effect/abstract/get_gravity(turf/gravity_turf) return FALSE /obj/effect/decal diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 080ac73019f..619f14d71f6 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -285,7 +285,7 @@ lootcount = 8 loot = list( /obj/item/mmi/robotic_brain = 50, - /obj/item/assembly/signaler/anomaly = 50, + /obj/item/assembly/signaler/core/tier2 = 50, /obj/item/mecha_parts/mecha_equipment/weapon/energy/xray = 50, /obj/item/mecha_parts/mecha_equipment/teleporter/precise = 50, /obj/item/autoimplanter/old = 50, @@ -302,11 +302,11 @@ /obj/item/slime_extract/adamantine = 50, /obj/item/slime_extract/rainbow = 50, /obj/item/slime_extract/sepia = 50, - /obj/item/assembly/signaler/anomaly/vortex = 50, - /obj/item/assembly/signaler/anomaly/bluespace = 50, - /obj/item/assembly/signaler/anomaly/flux = 50, - /obj/item/assembly/signaler/anomaly/grav = 50, - /obj/item/assembly/signaler/anomaly/pyro = 50, + /obj/item/assembly/signaler/core/vortex/tier2 = 50, + /obj/item/assembly/signaler/core/bluespace/tier2 = 50, + /obj/item/assembly/signaler/core/energetic/tier2 = 50, + /obj/item/assembly/signaler/core/gravitational/tier2 = 50, + /obj/item/assembly/signaler/core/atmospheric/tier2 = 50, /obj/item/t_scanner/science = 50, /obj/item/t_scanner/experimental = 5) diff --git a/code/game/objects/items/anomaly_beacon.dm b/code/game/objects/items/anomaly_beacon.dm deleted file mode 100644 index 113136a524a..00000000000 --- a/code/game/objects/items/anomaly_beacon.dm +++ /dev/null @@ -1,30 +0,0 @@ -/obj/item/assembly/anomaly_beacon - icon = 'icons/obj/weapons/techrelic.dmi' - icon_state = "beacon" - item_state = "beacon" - lefthand_file = 'icons/mob/inhands/relics_production/inhandl.dmi' - righthand_file = 'icons/mob/inhands/relics_production/inhandr.dmi' - name = "anomaly beacon" - desc = "A device that draws power from bluespace and creates a permanent tracking beacon." - origin_tech = "bluespace=6" - -/obj/item/assembly/anomaly_beacon/activate() - var/obj/effect/anomaly/anomaly_path = pick(subtypesof(/obj/effect/anomaly/)) - var/newAnomaly = new anomaly_path(get_turf(src)) - notify_ghosts("[name] has an object of interest: [newAnomaly]!", title = "Something's Interesting!", source = newAnomaly, action = NOTIFY_FOLLOW) - qdel(src) - -/obj/item/assembly/anomaly_beacon/attack_self(mob/user) - activate() - -/datum/crafting_recipe/anomaly_beacon - name = "Anomaly beacon" - result = /obj/item/assembly/anomaly_beacon - tools = list(TOOL_SCREWDRIVER) - reqs = list(/obj/item/assembly/signaler/anomaly = 1, - /obj/item/relict_production/rapid_dupe = 1, - /obj/item/radio/beacon = 1, - /obj/item/stack/cable_coil = 5) - time = 300 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON diff --git a/code/game/objects/items/weapons/experimental_syringe_gun.dm b/code/game/objects/items/weapons/experimental_syringe_gun.dm deleted file mode 100644 index e6095af7b03..00000000000 --- a/code/game/objects/items/weapons/experimental_syringe_gun.dm +++ /dev/null @@ -1,68 +0,0 @@ -/obj/item/gun/syringe/rapidsyringe/experimental - name = "experimental syringe gun" - desc = "Эксперементальный шприцемет с 6 слотами для шприцев, встроенным, самовосполняющимся хранилищем химикатов и новейшей системой автозаправки шприцев." - origin_tech = "combat=3;biotech=4;bluespace=5" - icon = 'icons/obj/weapons/techrelic.dmi' - item_state = "strynggun" - lefthand_file = 'icons/mob/inhands/relics_production/inhandl.dmi' - righthand_file = 'icons/mob/inhands/relics_production/inhandr.dmi' - icon_state = "strynggun" - materials = list(MAT_METAL=2000, MAT_GLASS=2000, MAT_BLUESPACE=400) - var/obj/item/reagent_containers/glass/beaker/large/ready_reagents = new - var/obj/item/reagent_containers/glass/beaker/large/processed_reagents = new - var/synth_speed = 5 - var/bank_size = 100 - origin_tech = "bluespace=4;biotech=5" - -/obj/item/gun/syringe/rapidsyringe/experimental/Initialize() - . = ..() - START_PROCESSING(SSobj, src) - -/obj/item/gun/syringe/rapidsyringe/experimental/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/gun/syringe/rapidsyringe/experimental/attackby(obj/item/A, mob/user) - if(istype(A, /obj/item/reagent_containers/syringe)) - var/in_clip = length(syringes) + (chambered.BB ? 1 : 0) - if(in_clip < max_syringes) - if(!user.drop_transfer_item_to_loc(A, src)) - return ..() - balloon_alert(user, "заряжено!") - syringes.Add(A) - process_chamber() // Chamber the syringe if none is already - return ATTACK_CHAIN_BLOCKED_ALL - else - balloon_alert(user, "недостаточно места!") - return ATTACK_CHAIN_PROCEED - else if(istype(A, /obj/item/reagent_containers/glass)) - var/obj/item/reagent_containers/glass/RC = A - if (!RC.reagents.reagent_list) - return ..() - ready_reagents.reagents.clear_reagents() - processed_reagents.reagents.clear_reagents() - RC.reagents.trans_to(ready_reagents, bank_size) - ready_reagents.reagents.trans_to(processed_reagents, synth_speed) - balloon_alert(user, "синтезируемый набор веществ изменен!") - return ATTACK_CHAIN_BLOCKED_ALL - else - return ..() - -/obj/item/gun/syringe/rapidsyringe/experimental/process() - for (var/obj/item/reagent_containers/syringe/S in syringes) - ready_reagents.reagents.trans_to(S, ready_reagents.reagents.total_volume) - for (var/datum/reagent/R in processed_reagents.reagents.reagent_list) - if (R.can_synth) - ready_reagents.reagents.add_reagent(R.id, R.volume) - -/datum/crafting_recipe/rapidsyringe_experimental - name = "Experemintal syringe gun" - result = /obj/item/gun/syringe/rapidsyringe/experimental - tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH) - reqs = list(/obj/item/relict_production/perfect_mix = 1, - /obj/item/assembly/signaler/anomaly/vortex = 1, - /obj/item/gun/syringe/rapidsyringe = 1, - /obj/item/stock_parts/matter_bin = 1) - time = 300 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON diff --git a/code/game/objects/items/weapons/grenades/fauna_bomb.dm b/code/game/objects/items/weapons/grenades/fauna_bomb.dm deleted file mode 100644 index 6ca2c4314be..00000000000 --- a/code/game/objects/items/weapons/grenades/fauna_bomb.dm +++ /dev/null @@ -1,64 +0,0 @@ -/obj/item/grenade/fauna_bomb - name = "fauna bomb" - desc = "Эксперементальная, многоразовая граната, создающая фауну агрессивную ко всем, кроме активировавшего гранату." - w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/weapons/techrelic.dmi' - icon_state = "bomb" - item_state = "bomb" - lefthand_file = 'icons/mob/inhands/relics_production/inhandl.dmi' - righthand_file = 'icons/mob/inhands/relics_production/inhandr.dmi' - var/deliveryamt = 8 - var/amount = 3 - COOLDOWN_DECLARE(fauna_bomb_cooldown) - var/mob/activator - origin_tech = "bluespace=4;biotech=5" - -/obj/item/grenade/fauna_bomb/attack_self(mob/user) - if(!COOLDOWN_FINISHED(src, fauna_bomb_cooldown)) - to_chat(user, span_warning("[src] is still recharging!")) - return - - COOLDOWN_START(src, fauna_bomb_cooldown, 60 SECONDS) - activator = user - return ..(user, FALSE) - -/obj/item/grenade/fauna_bomb/prime() - active = FALSE - playsound(get_turf(src), 'sound/items/rawr.ogg', 100, TRUE) - var/faction = activator.name + "_fauna_bomb" - activator.faction |= faction - var/list/mob/living/simple_animal/mobs = list() - - var/mob/living/simple_animal/spawn_mob_type = pick(/mob/living/simple_animal/hostile/asteroid/hivelord/legion, /mob/living/simple_animal/hostile/asteroid/goliath, /mob/living/simple_animal/hostile/asteroid/marrowweaver) - - for(var/i in 1 to amount) - var/mob/living/simple_animal/new_mob = new spawn_mob_type(get_turf(src)) - mobs.Add(new_mob) - new_mob.set_leash(activator, 10) - new_mob.faction |= faction - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(new_mob, pick(NORTH, SOUTH, EAST, WEST)) - - if(prob(40)) - to_chat(activator, span_warning("[src] falls apart!")) - qdel(src) - - sleep(600) - for (var/mob/mob in mobs) - mob.dust() - -/obj/item/grenade/fauna_bomb/update_icon_state() - return - -/datum/crafting_recipe/fauna_bomb - name = "Fauna bomb" - result = /obj/item/grenade/fauna_bomb - tools = list(TOOL_SCREWDRIVER) - reqs = list(/obj/item/relict_production/pet_spray = 1, - /obj/item/assembly/signaler/anomaly/pyro = 1, - /obj/item/grenade/chem_grenade/adv_release = 1, - /obj/item/stack/cable_coil = 5) - time = 300 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON diff --git a/code/game/objects/items/weapons/laser_eyes_injector.dm b/code/game/objects/items/weapons/laser_eyes_injector.dm index a31969c55f4..32e9a666906 100644 --- a/code/game/objects/items/weapons/laser_eyes_injector.dm +++ b/code/game/objects/items/weapons/laser_eyes_injector.dm @@ -56,8 +56,8 @@ /obj/effect/proc_holder/spell/lasereyes/cast(list/targets, mob/user = usr) if(HAS_TRAIT_FROM(user, TRAIT_LASEREYES, UNIQUE_TRAIT_SOURCE(src))) REMOVE_TRAIT(user, TRAIT_LASEREYES, UNIQUE_TRAIT_SOURCE(src)) - to_chat(user, span_warning("Легкое жжение в области ваших глаз прошло.")) + to_chat(user, span_warning("Лёгкое жжение в области ваших глаз прошло.")) else ADD_TRAIT(user, TRAIT_LASEREYES, UNIQUE_TRAIT_SOURCE(src)) - to_chat(user, span_warning("Вы чувствуете легкое жжение в области ваших глаз.")) + to_chat(user, span_warning("Вы чувствуете лёгкое жжение в области ваших глаз.")) diff --git a/code/game/objects/items/weapons/tuned_anomalous_teleporter.dm b/code/game/objects/items/weapons/tuned_anomalous_teleporter.dm deleted file mode 100644 index 620ea5f9222..00000000000 --- a/code/game/objects/items/weapons/tuned_anomalous_teleporter.dm +++ /dev/null @@ -1,74 +0,0 @@ -/obj/item/tuned_anomalous_teleporter - name = "tuned anomalous teleporter" - desc = "A portable item using blue-space technology." - icon = 'icons/obj/weapons/techrelic.dmi' - icon_state = "teleport" - lefthand_file = 'icons/mob/inhands/relics_production/inhandl.dmi' - righthand_file = 'icons/mob/inhands/relics_production/inhandr.dmi' - item_state = "teleport" - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 5 - materials = list(MAT_METAL=10000) - origin_tech = "magnets=3;bluespace=4" - armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 30, BIO = 0, RAD = 0, FIRE = 100, ACID = 100) - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - /// Variable contains next time hand tele can be used to make it not EMP proof - var/emp_timer = 0 - COOLDOWN_DECLARE(tuned_anomalous_teleporter_cooldown) // declare cooldown for teleportations - COOLDOWN_DECLARE(emp_cooldown) // declare cooldown for EMP - var/base_cooldown = 20 SECONDS // cooldown for teleportations - var/emp_cooldown_min = 10 SECONDS // min cooldown for emp - var/emp_cooldown_max = 15 SECONDS // max cooldown for emp - var/tp_range = 5 // range of teleportations - origin_tech = "bluespace=5" - -/obj/item/tuned_anomalous_teleporter/attack_self(mob/user) - if(!COOLDOWN_FINISHED(src, emp_cooldown)) - do_sparks(5, FALSE, loc) - to_chat(user, span_warning("[src] attempts to teleport you, but abruptly shuts off.")) - return FALSE - if(!COOLDOWN_FINISHED(src, tuned_anomalous_teleporter_cooldown)) - to_chat(user, span_warning("[src] is still recharging.")) - return FALSE - - COOLDOWN_START(src, tuned_anomalous_teleporter_cooldown, base_cooldown) - - var/datum/teleport/TP = new /datum/teleport() - var/crossdir = angle2dir((dir2angle(user.dir)) % 360) - var/turf/T1 = get_turf(user) - for(var/i in 1 to tp_range) - T1 = get_step(T1, crossdir) - var/datum/effect_system/smoke_spread/s1 = new - var/datum/effect_system/smoke_spread/s2 = new - s1.set_up(5, FALSE, user) - s2.set_up(5, FALSE, user) - TP.start(user, T1, FALSE, TRUE, s1, s2, 'sound/effects/phasein.ogg', ) - TP.doTeleport() - -/obj/item/tuned_anomalous_teleporter/emp_act(severity) - make_inactive(severity) - return ..() - -/obj/item/tuned_anomalous_teleporter/proc/make_inactive(severity) - var/time = rand(emp_cooldown_min, emp_cooldown_max) * (severity == EMP_HEAVY ? 2 : 1) - COOLDOWN_START(src, emp_cooldown, time) - -/obj/item/tuned_anomalous_teleporter/examine(mob/user) - . = ..() - if(emp_timer > world.time) - . += span_warning("It looks inactive.") - -/datum/crafting_recipe/tuned_anomalous_teleporter - name = "Tuned anomalous teleporter" - result = /obj/item/tuned_anomalous_teleporter - tools = list(TOOL_SCREWDRIVER, TOOL_WELDER) - reqs = list(/obj/item/relict_production/strange_teleporter = 1, - /obj/item/assembly/signaler/anomaly/bluespace = 1, - /obj/item/gps = 1, - /obj/item/stack/ore/bluespace_crystal, - /obj/item/stack/sheet/metal = 2, - /obj/item/stack/cable_coil = 5) - time = 300 - category = CAT_MISC diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 85a4c2e9fa4..7185b9fa88b 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -9,7 +9,6 @@ * Singularity hammer * Mjolnnir * Knighthammer - * Pyro Claws */ /*################################################################## @@ -919,130 +918,6 @@ /obj/item/twohanded/bamboospear/update_icon_state() icon_state = "bamboo_spear[HAS_TRAIT(src, TRAIT_WIELDED)]" -//pyro claws -/obj/item/twohanded/required/pyro_claws - name = "hardplasma energy claws" - desc = "The power of the sun, in the claws of your hand." - icon_state = "pyro_claws" - item_flags = ABSTRACT|DROPDEL - force = 25 - force_wielded = 25 - damtype = BURN - armour_penetration = 40 - block_chance = 50 - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut", "savaged", "clawed") - toolspeed = 0.5 - -/obj/item/twohanded/required/pyro_claws/Initialize(mapload) - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) - START_PROCESSING(SSobj, src) - -/obj/item/twohanded/required/pyro_claws/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/twohanded/required/pyro_claws/process() - if(prob(15)) - do_sparks(rand(1,6), 1, loc) - -/obj/item/twohanded/required/pyro_claws/afterattack(atom/target, mob/user, proximity, params) - if(!proximity) - return - if(prob(60)) - do_sparks(rand(1,6), 1, loc) - if(istype(target, /obj/machinery/door/airlock)) - var/obj/machinery/door/airlock/A = target - - if(!A.requiresID() || A.allowed(user)) - return - - if(A.locked) - to_chat(user, "The airlock's bolts prevent it from being forced.") - return - - if(A.arePowerSystemsOn()) - user.visible_message("[user] jams [user.p_their()] [name] into the airlock and starts prying it open!", "You start forcing the airlock open.", "You hear a metal screeching sound.") - playsound(A, 'sound/machines/airlock_alien_prying.ogg', 150, 1) - if(!do_after(user, 2.5 SECONDS, A)) - return - user.visible_message("[user] forces the airlock open with [user.p_their()] [name]!", "You force open the airlock.", "You hear a metal screeching sound.") - A.open(2) - -/obj/item/clothing/gloves/color/black/pyro_claws - name = "Fusion gauntlets" - desc = "Cybersun Industries developed these gloves after a grifter fought one of their soldiers, who attached a pyro core to an energy sword, and found it mostly effective." - item_state = "pyro" - item_color = "pyro" - icon_state = "pyro" - can_be_cut = FALSE - actions_types = list(/datum/action/item_action/toggle) - var/on_cooldown = FALSE - var/used = FALSE - var/obj/item/assembly/signaler/anomaly/pyro/core - -/obj/item/clothing/gloves/color/black/pyro_claws/Destroy() - QDEL_NULL(core) - return ..() - -/obj/item/clothing/gloves/color/black/pyro_claws/examine(mob/user) - . = ..() - if(core) - . += "[src] are fully operational!" - else - . += "It is missing a pyroclastic anomaly core." - -/obj/item/clothing/gloves/color/black/pyro_claws/item_action_slot_check(slot, mob/user, datum/action/action) - if(slot == ITEM_SLOT_GLOVES) - return TRUE - -/obj/item/clothing/gloves/color/black/pyro_claws/ui_action_click(mob/user, datum/action/action, leftclick) - if(!core) - to_chat(user, "[src] has no core to power it!") - return - if(on_cooldown) - to_chat(user, "[src] is on cooldown!") - do_sparks(rand(1,6), 1, loc) - return - if(used) - visible_message("Energy claws slides back into the depths of [loc]'s wrists.") - user.drop_from_active_hand(force = TRUE)//dropdel stuff. only ui act, without hotkeys - do_sparks(rand(1,6), 1, loc) - on_cooldown = TRUE - addtimer(CALLBACK(src, PROC_REF(reboot)), 1 MINUTES) - return - if(user.get_active_hand() && !user.drop_from_active_hand()) - to_chat(user, "[src] are unable to deploy the blades with the items in your hands!") - return - var/obj/item/W = new /obj/item/twohanded/required/pyro_claws - user.visible_message("[user] deploys [W] from [user.p_their()] wrists in a shower of sparks!", "You deploy [W] from your wrists!", "You hear the shower of sparks!") - user.put_in_hands(W) - ADD_TRAIT(src, TRAIT_NODROP, PYRO_CLAWS_TRAIT) - used = TRUE - do_sparks(rand(1,6), 1, loc) - - -/obj/item/clothing/gloves/color/black/pyro_claws/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/assembly/signaler/anomaly/pyro)) - add_fingerprint(user) - if(core) - to_chat(user, span_warning("The [core.name] is already installed.")) - return ATTACK_CHAIN_PROCEED - if(!user.drop_transfer_item_to_loc(I, src)) - return ..() - to_chat(user, span_notice("You insert [I] into [src], and it starts to warm up.")) - core = I - return ATTACK_CHAIN_BLOCKED_ALL - return ..() - - -/obj/item/clothing/gloves/color/black/pyro_claws/proc/reboot() - on_cooldown = FALSE - used = FALSE - REMOVE_TRAIT(src, TRAIT_NODROP, PYRO_CLAWS_TRAIT) - atom_say("Internal plasma canisters recharged. Gloves sufficiently cooled") - /obj/item/twohanded/fishingrod name = "ol' reliable" desc = "Hey! I caught a miner!" diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index e21051d2128..72542aaade5 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -27,7 +27,7 @@ /obj/structure/closet/cardboard/relaymove(mob/living/user, direction) - if(!COOLDOWN_FINISHED(src, recently_moved_cd) || !istype(user) || opened || user.incapacitated() || !isturf(loc) || !has_gravity()) + if(!COOLDOWN_FINISHED(src, recently_moved_cd) || !istype(user) || opened || user.incapacitated() || !isturf(loc) || no_gravity()) return var/turf/next_step = get_step(src, direction) if(!next_step) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 274d00974e5..bfd491deceb 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -62,6 +62,10 @@ new /obj/item/megaphone(src) //added here deleted on maps new /obj/item/storage/garmentbag/RD(src) new /obj/item/t_scanner/experimental(src) + new /obj/item/anomaly_analyzer(src) + new /obj/item/anomaly_analyzer(src) + new /obj/item/gun/energy/anomaly_stabilizer(src) + new /obj/item/gun/energy/anomaly_stabilizer(src) /obj/structure/closet/secure_closet/research_reagents name = "research chemical storage closet" diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index f10084aa8af..7f0c6c67f35 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -214,9 +214,11 @@ // Copy of `/atom/proc/hitby()`. Falsewalls must use this `hitby` as do regular walls. /obj/structure/falsewall/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - if(density && !AM.has_gravity()) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). + if(density && AM.no_gravity()) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, hitby_react), AM), 0.2 SECONDS) + SEND_SIGNAL(src, COMSIG_ATOM_HITBY, AM, skipcatch, hitpush, blocked, throwingdatum) + /* * False R-Walls diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 976b13ae40e..12dddcab10e 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -66,8 +66,9 @@ /obj/structure/chair/wheelchair/relaymove(mob/user, direction) if(!COOLDOWN_FINISHED(src, wheelchair_move_delay)) return FALSE + var/turf/next_step = get_step(src, direction) - if(!next_step || propelled || !Process_Spacemove(direction) || !has_gravity(loc) || !isturf(loc) || !has_buckled_mobs() || user != buckled_mobs[1]) + if(!next_step || propelled || !Process_Spacemove(direction) || no_gravity(loc) || !isturf(loc) || !has_buckled_mobs() || user != buckled_mobs[1]) COOLDOWN_START(src, wheelchair_move_delay, 0.5 SECONDS) return FALSE diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 52c4c242a19..567e7f2f8ad 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -519,7 +519,9 @@ /obj/structure/table/glass/proc/check_break(mob/living/M) if(M.incorporeal_move || (M.movement_type & MOVETYPES_NOT_TOUCHING_GROUND)) return - if(M.has_gravity() && M.mob_size > MOB_SIZE_SMALL) + + // It won't break with neative gravity. + if(M.get_gravity() > NO_GRAVITY && M.mob_size > MOB_SIZE_SMALL) table_shatter(M) diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 811044f0adf..8f93b2c0a9d 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -144,7 +144,7 @@ /turf/simulated/handle_slip(mob/living/carbon/slipper, weaken_amount, obj/slippable, lube_flags, tilesSlipped) if(slipper.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) return FALSE - if(!slipper.has_gravity(src)) + if(slipper.no_gravity(src)) return FALSE var/slide_distance = isnull(tilesSlipped) ? 4 : tilesSlipped diff --git a/code/game/turfs/simulated/floor/lava.dm b/code/game/turfs/simulated/floor/lava.dm index 0f98f4f00bf..b7ffa55ce14 100644 --- a/code/game/turfs/simulated/floor/lava.dm +++ b/code/game/turfs/simulated/floor/lava.dm @@ -46,6 +46,7 @@ START_PROCESSING(SSprocessing, src) /turf/simulated/floor/lava/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + SEND_SIGNAL(src, COMSIG_ATOM_HITBY, AM, skipcatch, hitpush, blocked, throwingdatum) if(burn_stuff(AM)) START_PROCESSING(SSprocessing, src) @@ -104,7 +105,8 @@ /turf/simulated/floor/lava/proc/can_burn_stuff(atom/movable/burn_target) if(QDELETED(burn_target)) return LAVA_BE_IGNORING - if(burn_target.movement_type & MOVETYPES_NOT_TOUCHING_GROUND || !burn_target.has_gravity()) //you're flying over it. + + if(burn_target.movement_type & MOVETYPES_NOT_TOUCHING_GROUND || burn_target.no_gravity()) //you're flying over it. return LAVA_BE_IGNORING if(isobj(burn_target)) @@ -127,7 +129,7 @@ var/atom/movable/burn_buckled = burn_living.buckled if(burn_buckled) - if(burn_buckled.movement_type & MOVETYPES_NOT_TOUCHING_GROUND || !burn_buckled.has_gravity()) + if(burn_buckled.movement_type & MOVETYPES_NOT_TOUCHING_GROUND || burn_buckled.no_gravity()) return LAVA_BE_PROCESSING if(isobj(burn_buckled)) var/obj/burn_buckled_obj = burn_buckled diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 337e11f4264..d1dc22e35f7 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -204,6 +204,23 @@ return FALSE +// Enter, but hypothetical. +/turf/proc/can_enter(atom/movable/mover) + var/atom/mover_loc = mover.loc + var/border_dir = get_dir(src, mover) + var/can_pass_self = CanPass(mover, border_dir) + if(can_pass_self) + for(var/atom/movable/obstacle as anything in contents) + // Multi tile objects and moving out of other objects. + if(obstacle == mover || obstacle == mover_loc) + continue + + if(!obstacle.CanPass(mover, border_dir)) + return FALSE + + return TRUE + + /turf/Enter(atom/movable/mover) // Do not call ..() // Byond's default turf/Enter() doesn't have the behaviour we want with Bump() @@ -524,8 +541,9 @@ /turf/handle_fall(mob/living/carbon/faller) - if(has_gravity(src)) + if(!no_gravity(src)) playsound(src, "bodyfall", 50, TRUE) + faller.drop_from_hands() @@ -679,12 +697,17 @@ /// Precipitates a movable (plus whatever buckled to it) to lower z levels if possible and then calls zImpact() /turf/proc/zFall(atom/movable/falling, levels = 1, force = FALSE, falling_from_move = FALSE) - var/turf/target = get_step_multiz(src, DOWN) + // Yes, you can fall up. + var/fall_dir = get_gravity() > 0 ? DOWN : UP + + var/turf/target = get_step_multiz(src, fall_dir) if(!target) return FALSE + var/isliving = isliving(falling) if(!isliving && !isobj(falling)) return FALSE + var/atom/movable/living_buckled if(isliving) var/mob/living/falling_living = falling @@ -692,9 +715,11 @@ if(falling_living.buckled) living_buckled = falling falling = falling_living.buckled + if(!falling_from_move && falling.currently_z_moving) return FALSE - if(!force && !falling.can_z_move(DOWN, src, target, ZMOVE_FALL_FLAGS)) + + if(!force && !falling.can_z_move(fall_dir, src, target, ZMOVE_FALL_FLAGS)) falling.set_currently_z_moving(FALSE, TRUE) living_buckled?.set_currently_z_moving(FALSE, TRUE) return FALSE diff --git a/code/modules/anomalies/anomalies/anomaly.dm b/code/modules/anomalies/anomalies/anomaly.dm new file mode 100644 index 00000000000..14ac0066132 --- /dev/null +++ b/code/modules/anomalies/anomalies/anomaly.dm @@ -0,0 +1,314 @@ +/obj/effect/anomaly + name = "аномалия" + desc = "Загадочная аномалия. Обычно такую можно наблюдать только в станционном секторе." + ru_names = list( + NOMINATIVE = "аномалия", \ + GENITIVE = "аномалии", \ + DATIVE = "аномалии", \ + ACCUSATIVE = "аномалию", \ + INSTRUMENTAL = "аномалией", \ + PREPOSITIONAL = "аномалии" + ) + icon_state = "bhole3" + gender = FEMALE + anchored = TRUE + density = TRUE + alpha = 0 + light_range = 3 + layer = ABOVE_ALL_MOB_LAYER + /// Type of core that will be dropped after stabilisation. + var/core_type = /obj/item/toy/plushie/blahaj/twohanded + /// Type of anomaly of the next tier. + var/stronger_anomaly_type = null + /// Type of anomaly of the prew tier. + var/weaker_anomaly_type = null + /// Name of the type of anomaly. + var/anomaly_type = ANOMALY_TYPE_RANDOM + /// Tier of anomaly. + var/tier = 0 + /// Level of strenght. Affects the effects of anomaly. + var/strenght = 100 + /// Anomaly stability. Affects speed and strenght change. + var/stability = 50 + /// List of impulses types. + var/list/impulses_types = list() + /// List of impulses datums. + var/list/datum/anomaly_impulse/impulses = list() + + /// The moment from which the anomaly will be able to move. + var/move_moment = 0 + /// The moment from which the anomaly will be able to move by impulse. + var/move_impulse_moment = 0 + /// The amount by which the strength of the anomaly's effects is temporarily reduced. + var/weaken = 0 + /// The moment at which the reduction in the effects of the anomaly will be reset. + var/weaken_moment = 0 + /// Matrix used for anomaly animations. + var/matrix/matr = matrix() + +/obj/effect/anomaly/proc/size_by_strenght(cur_strenght) + if(!cur_strenght) + cur_strenght = strenght + + return (tier * 50 + cur_strenght / 2) / 100 + +/obj/effect/anomaly/proc/init_animation() + matr.Scale(0.1, 0.1) + animate(src, transform = matr, time = 0, flags = ANIMATION_PARALLEL) + var/mult = size_by_strenght() * 10 + matr.Scale(mult, mult) + animate(src, transform = matr, time = 1 SECONDS, alpha = 255, flags = ANIMATION_PARALLEL) + + +/obj/effect/anomaly/Initialize(spawnloc, spawn_strenght = rand(20, 40), spawn_stability = rand(10, 29)) + GLOB.created_anomalies[anomaly_type]++ + . = ..() + if(!get_area(src)) + return INITIALIZE_HINT_QDEL + + set_strenght(spawn_strenght, FALSE) + INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/effect/anomaly, init_animation)) + stability = spawn_stability + + GLOB.poi_list |= src + START_PROCESSING(SSobj, src) + + for(var/imp_type in impulses_types) + impulses.Add(new imp_type(src)) + + for(var/datum/anomaly_impulse/imp in impulses) + addtimer(CALLBACK(imp, TYPE_PROC_REF(/datum/anomaly_impulse, impulse_cycle)), rand(0, imp.scale_by_strenght(imp.period_low, imp.period_high))) + +/obj/effect/anomaly/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/effect/anomaly/proc/get_move_dir() + return pick(GLOB.alldirs) + +// It is in function because the size will change depending on the strength of the anomaly. +/obj/effect/anomaly/proc/set_strenght(new_strenght, do_anim = TRUE) + if(do_anim) + var/mult = size_by_strenght(new_strenght) / size_by_strenght(strenght) + matr.Scale(mult, mult) + animate(src, transform = matr, time = 0.1 SECONDS, flags = ANIMATION_PARALLEL) + + strenght = clamp(new_strenght, 0, 100) + check_size_change() + +/obj/effect/anomaly/proc/collapse() + visible_message(span_warning("[capitalize(declent_ru(NOMINATIVE))] достигает критической массы и разрушается!")) + add_filter("collapse", 1, gauss_blur_filter(1)) + matr.Scale(3, 3) + animate(src, transform = matr, time = 1 SECONDS, alpha = 0, flags = ANIMATION_PARALLEL) + sleep(1 SECONDS) + qdel(src) + +/obj/effect/anomaly/proc/stabilyse() + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(tier * 3, FALSE, loc) + smoke.start() + + if(strenght < 50) + core_type = text2path("/obj/item/assembly/signaler/core/tier[tier]") + + new core_type(loc, strenght) + GLOB.poi_list.Remove(src) + qdel(src) + +/obj/effect/anomaly/proc/level_down() + if(!weaker_anomaly_type) + matr.Scale(0, 0) + animate(src, transform = matr, time = 1 SECONDS, flags = ANIMATION_PARALLEL) + visible_message(span_warning("[capitalize(declent_ru(NOMINATIVE))] теряет свою энергию и растворяется в пространстве!")) + sleep(1 SECONDS) + qdel(src) + else + visible_message(span_warning("[capitalize(declent_ru(NOMINATIVE))] ослабевает!")) + new weaker_anomaly_type(loc, rand(50, 80), clamp(stability + rand(10, 20), 0, 100)) + qdel(src) + +/obj/effect/anomaly/proc/level_up() + if(!stronger_anomaly_type) + collapse() + else + visible_message(span_warning("[capitalize(declent_ru(NOMINATIVE))] становится мощнее!")) + new stronger_anomaly_type(loc, rand(20, 50), clamp(stability - rand(10, 20), 0, 100)) + qdel(src) + +/obj/effect/anomaly/proc/mob_touch_effect(mob/living/matr) + return TRUE + +/obj/effect/anomaly/proc/check_size_change() + if(strenght == 100) + if(stability >= 50) + level_up() + else + collapse() + + return + + if(!strenght) + level_down() + return + +/obj/effect/anomaly/proc/core_touch_effect(obj/item/assembly/signaler/core/core) + var/mult + if(core.tier <= tier) + mult = 1 << (tier - core.tier) + else + mult = 1 / (1 << (core.tier - tier)) + + if(!iscoreempty(core)) + core.visible_message(span_warning("[capitalize(core.declent_ru(NOMINATIVE))] распадается, передавая свой заряд [declent_ru(DATIVE)].")) + set_strenght(strenght + core.charge / mult) + qdel(core) + do_sparks(5, FALSE, src) + return + + var/charge_delta = min(100, round(strenght / 3 * mult)) + var/new_charge = core.charge + charge_delta + + do_sparks(5, FALSE, src) + set_strenght(strenght - round(charge_delta / mult)) + + if(new_charge <= 50) + core.charge = new_charge + core.random_throw(3, 6, 5) + core.visible_message(span_warning("[capitalize(core.declent_ru(NOMINATIVE))] заряжается от [declent_ru(GENITIVE)], \ + но остаётся пустым из-за слишком низкого заряда.")) + return + + var/path = text2path("/obj/item/assembly/signaler/core/tier[core.tier]/[anomaly_type]") + var/obj/item/assembly/signaler/core/new_core = new path(core.loc, new_charge) + new_core.visible_message(span_warning("[capitalize(core.declent_ru(NOMINATIVE))] заряжается от [declent_ru(GENITIVE)], \ + превращаясь в [new_core.declent_ru(ACCUSATIVE)].")) + qdel(core) + new_core.random_throw(3, 6, 5) + return + +/obj/effect/anomaly/proc/item_touch_effect(obj/item/I) + . = TRUE + if(!istype(I)) + return + + if(tier == 3 && istype(I, /obj/item/anomaly_upgrader)) + visible_message(span_danger("[capitalize(I.declent_ru(NOMINATIVE))] попадает в [declent_ru(ACCUSATIVE)], прикрепляется к ней и активируется!")) + var/type = text2path("/obj/effect/anomaly/[anomaly_type]/tier4") + new type(loc, rand(20, 50), clamp(stability - rand(10, 20), 0, 100)) + qdel(I) + qdel(src) + return FALSE + + if(iscore(I)) + var/obj/item/assembly/signaler/core/core = I + if(core.born_moment + 1 SECONDS >= world.time) + return TRUE + + core_touch_effect(core) + return FALSE + + if(!I.origin_tech) + return + + if (prob(2)) + do_sparks(5, TRUE, src) + new /obj/item/relic(get_turf(I)) + qdel(I) + return + + if (!istype(I, /obj/item/relict_production/rapid_dupe)) + return + + var/amount = rand(1, 3) + for (var/i; i <= amount; i++) + new /obj/item/relic(get_turf(I)) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(5, get_turf(I)) + smoke.start() + + qdel(I) + +/obj/effect/anomaly/attackby(obj/item/I, mob/living/user, params) + . = ..() + mob_touch_effect(user) + +/obj/effect/anomaly/attack_hand(mob/living/user, list/modifiers) + . = ..() + mob_touch_effect(user) + +/obj/effect/anomaly/Bumped(atom/movable/moving_atom) + . = ..() + if(isitem(moving_atom)) + item_touch_effect(moving_atom) + + if(isliving(moving_atom)) + mob_touch_effect(moving_atom) + +/obj/effect/anomaly/proc/after_move() + for(var/obj/item/I in get_turf(src)) + item_touch_effect(I) + + for(var/mob/living/matr in get_turf(src)) + mob_touch_effect(matr) + +/obj/effect/anomaly/proc/normal_move() + if(world.time > move_moment) + return do_move(get_move_dir()) + +/obj/effect/anomaly/proc/do_move(dir) + step(src, dir) + return TRUE + +/obj/effect/anomaly/proc/get_strenght() + if(world.time > weaken_moment) + weaken = 0 + + return max(min(strenght, 10), strenght - weaken) + +/obj/effect/anomaly/process() + if(stability < ANOMALY_GROW_STABILITY) + set_strenght(strenght + 1) + + if(stability > ANOMALY_DECREASE_STABILITY) + set_strenght(strenght - 1) + + if(stability == 100) + stabilyse() + return + + if(stability > ANOMALY_MOVE_MAX_STABILITY || !prob(get_strenght())) + return + + if(normal_move()) + after_move() + +/obj/effect/anomaly/proc/go_to(target, steps) + var/reversed = steps < 0 + if(reversed) + steps = -steps + + for(var/i = 1 to steps) + var/move_dir + if(reversed) + move_dir = get_dir(target, src) + else + move_dir = get_dir(src, target) + + do_move(move_dir) + sleep(2) + +/obj/effect/anomaly/singularity_act() + collapse() + +/obj/effect/anomaly/tesla_act() + collapse() + +/obj/effect/anomaly/ratvar_act() + collapse() + +/obj/effect/anomaly/narsie_act() + collapse() + +/obj/effect/anomaly/ex_act(severity) + return diff --git a/code/modules/anomalies/anomalies/atmospheric.dm b/code/modules/anomalies/anomalies/atmospheric.dm new file mode 100644 index 00000000000..16efd87b8dd --- /dev/null +++ b/code/modules/anomalies/anomalies/atmospheric.dm @@ -0,0 +1,213 @@ +/obj/effect/anomaly/atmospheric + anomaly_type = ANOMALY_TYPE_ATMOS + icon_state = "mustard" + /// Range of collapse effects. + var/collapse_range = 0 + /// Amount of gases spawned when anomaly collapses. + var/collapse_gas_amount = 0 + /// Minimum amount of slimes spawned when anomaly collapses. + var/collapse_slimes_low = 0 + /// Maximum amount of slimes spawned when anomaly collapses. + var/collapse_slimes_high = 0 + +/obj/effect/anomaly/atmospheric/collapse() + for(var/turf/simulated/T in view(collapse_range * 2, src)) + if(T.air) + T.air.temperature = rand(0, 50) + + for(var/turf/simulated/floor/T in view(collapse_range, src)) + var/near_ice = 0 // Generation will be more beautiful. + for(var/turf/simulated/checked in view(1, T)) + if(checked.GetComponent(/datum/component/wet_floor)) + near_ice++ + + if(prob(80 - near_ice * 20)) + new /obj/effect/snow(T) + else + T.MakeSlippery(TURF_WET_ICE, 120 SECONDS) + + for(var/mob/living/M in view(collapse_range, src)) + M.adjust_bodytemperature(-100) + M.apply_status_effect(/datum/status_effect/freon) + if(ishuman(M)) + M.reagents.add_reagent("frostoil", 5) + + var/turf/simulated/T = get_turf(src) + if(istype(T)) + T.atmos_spawn_air(LINDA_SPAWN_OXYGEN, collapse_gas_amount * 2/7) + T.atmos_spawn_air(LINDA_SPAWN_HEAT | LINDA_SPAWN_TOXINS, collapse_gas_amount * 5/7) + + for(var/i = 1 to rand(collapse_slimes_low, collapse_slimes_high)) + INVOKE_ASYNC(src, PROC_REF(make_slime)) + + . = ..() + +/obj/effect/anomaly/atmospheric/mob_touch_effect(mob/living/M) + . = ..() + var/new_temp = rand(0, 500) + M.adjust_bodytemperature(new_temp - M.bodytemperature) + if(new_temp >= T0C + 100 && prob(70)) + M.adjust_fire_stacks(new_temp / 50) + M.IgniteMob() + else + M.ExtinguishMob() + +/obj/effect/anomaly/atmospheric/item_touch_effect(obj/item/I) + . = ..() + I.fire_act(null, rand(0, 1000), rand(20, 200)) + +/obj/effect/anomaly/atmospheric/proc/make_slime() + var/turf/simulated/T = get_turf(src) + var/new_colour = pick("red", "orange", "blue", "dark blue") + var/mob/living/simple_animal/slime/random/S = new(T, new_colour) + S.rabid = TRUE + S.set_nutrition(S.get_max_nutrition()) + + var/list/mob/dead/observer/candidates = SSghost_spawns.poll_candidates("Хотите сыграть за слайма из атмосферной аномалии?", ROLE_SENTIENT, FALSE, 100, source = S, role_cleanname = "pyroclastic anomaly slime") + if(LAZYLEN(candidates)) + var/mob/dead/observer/chosen = pick(candidates) + S.key = chosen.key + S.mind.special_role = SPECIAL_ROLE_PYROCLASTIC_SLIME + add_game_logs("was made into a slime by pyroclastic anomaly at [AREACOORD(T)].", S) + +/obj/effect/anomaly/atmospheric/tier1 + name = "малая атмосферная аномалия" + ru_names = list( + NOMINATIVE = "малая атмосферная аномалия", \ + GENITIVE = "малой атмосферной аномалии", \ + DATIVE = "малой атмосферной аномалии", \ + ACCUSATIVE = "малую атмосферную аномалию", \ + INSTRUMENTAL = "малой атмосферной аномалией", \ + PREPOSITIONAL = "малой атмосферной аномалии" + ) + core_type = /obj/item/assembly/signaler/core/atmospheric/tier1 + stronger_anomaly_type = /obj/effect/anomaly/atmospheric/tier2 + tier = 1 + impulses_types = list( + /datum/anomaly_impulse/random_temp/tier1, + /datum/anomaly_impulse/freese/tier1, + /datum/anomaly_impulse/fire/tier1, + ) + + collapse_range = 2 + collapse_gas_amount = 150 + +/obj/effect/anomaly/atmospheric/tier2 + name = "атмосферная аномалия" + ru_names = list( + NOMINATIVE = "атмосферная аномалия", \ + GENITIVE = "атмосферной аномалии", \ + DATIVE = "атмосферной аномалии", \ + ACCUSATIVE = "атмосферную аномалию", \ + INSTRUMENTAL = "атмосферной аномалией", \ + PREPOSITIONAL = "атмосферной аномалии" + ) + core_type = /obj/item/assembly/signaler/core/atmospheric/tier2 + weaker_anomaly_type = /obj/effect/anomaly/atmospheric/tier1 + stronger_anomaly_type = /obj/effect/anomaly/atmospheric/tier3 + tier = 2 + impulses_types = list( + /datum/anomaly_impulse/random_temp/tier2, + /datum/anomaly_impulse/freese/tier2, + /datum/anomaly_impulse/fire/tier2, + ) + + collapse_range = 5 + collapse_gas_amount = 350 + collapse_slimes_low = 0 + collapse_slimes_high = 2 + +/obj/effect/anomaly/atmospheric/tier3 + name = "большая атмосферная аномалия" + ru_names = list( + NOMINATIVE = "большая атмосферная аномалия", \ + GENITIVE = "большой атмосферной аномалии", \ + DATIVE = "большой атмосферной аномалии", \ + ACCUSATIVE = "большую атмосферную аномалию", \ + INSTRUMENTAL = "большой атмосферной аномалией", \ + PREPOSITIONAL = "большой атмосферной аномалии" + ) + core_type = /obj/item/assembly/signaler/core/atmospheric/tier3 + weaker_anomaly_type = /obj/effect/anomaly/atmospheric/tier2 + tier = 3 + impulses_types = list( + /datum/anomaly_impulse/random_temp/tier3, + /datum/anomaly_impulse/freese/tier3, + /datum/anomaly_impulse/fire/tier3, + ) + + collapse_range = 7 + collapse_gas_amount = 700 + collapse_slimes_low = 0 + collapse_slimes_high = 3 + +/obj/effect/anomaly/atmospheric/tier3/New() + . = ..() + + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + if(get_dist(src, M) > 20 || z != M.z) + return + + M.playsound_local(null, 'sound/effects/comfyfire.ogg', 15, TRUE) + to_chat(M, "Вас накрывает волна жара! Воздух вокруг дрожит.") // It used in one place. + +/obj/effect/anomaly/atmospheric/tier3/collapse() + for(var/obj/item/paper in range(30)) // Just for fan. + paper.fire_act(null, 1000, 1000) + + . = ..() + + +// TIER 4 ANOMALY | ADMIN SPAWN ONLY! + +/obj/effect/anomaly/atmospheric/tier4 + name = "колосальная атмосферная аномалия" + ru_names = list( + NOMINATIVE = "колосальная атмосферная аномалия", \ + GENITIVE = "колоссальной атмосферной аномалии", \ + DATIVE = "колоссальной атмосферной аномалии", \ + ACCUSATIVE = "колосальную атмосферную аномалию", \ + INSTRUMENTAL = "колоссальной атмосферной аномалией", \ + PREPOSITIONAL = "колоссальной атмосферной аномалии" + ) + core_type = /obj/item/assembly/signaler/core/atmospheric/tier3/tier4 + weaker_anomaly_type = /obj/effect/anomaly/atmospheric/tier4 + tier = 4 + impulses_types = list( + /datum/anomaly_impulse/random_temp/tier4, + /datum/anomaly_impulse/freese/tier4, + /datum/anomaly_impulse/fire/tier4, + /datum/anomaly_impulse/dist_fire, + /datum/anomaly_impulse/atmosfastmove, + ) + + collapse_range = 15 + collapse_gas_amount = 5000 + collapse_slimes_low = 3 + collapse_slimes_high = 6 + +/obj/effect/anomaly/atmospheric/tier4/do_move(dir) + . = ..() + for(var/turf/simulated/wall/wall in range(3, src)) + wall.take_damage(700) + + for(var/mob/living/M in range(3, src)) + to_chat(M, span_danger("Вы были испепелены [declent_ru(INSTRUMENTAL)]!")) + M.dust() + + for(var/obj/O in range(3, src)) + if(!isanomaly(O)) + qdel(O) + +/obj/effect/anomaly/atmospheric/tier4/New() + . = ..() + + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + M.playsound_local(null, 'sound/effects/comfyfire.ogg', 15, TRUE) + to_chat(M, "Нечто колоссальной мощи явилось в наш мир.") diff --git a/code/modules/anomalies/anomalies/bluespace.dm b/code/modules/anomalies/anomalies/bluespace.dm new file mode 100644 index 00000000000..269b44a6d81 --- /dev/null +++ b/code/modules/anomalies/anomalies/bluespace.dm @@ -0,0 +1,262 @@ +/obj/effect/anomaly/bluespace + anomaly_type = ANOMALY_TYPE_BLUESPACE + icon = 'icons/effects/anomalies.dmi' + icon_state = "bluespace1" + + /// Minimum bump teleportation radius. + var/bump_tp_min = 0 + /// Maximum bump teleportation radius. + var/bump_tp_max = 0 + + /// The radius at which items are randomly teleported when anomaly collapses. + var/collapse_radius = 0 + /// The radius on which items are randomly teleported when anomaly collapses. + var/collapse_tp_radius = 0 + +/obj/effect/anomaly/bluespace/proc/teleport(atom/movable/target, radius) + if(target.anchored && target != src || isobserver(target)) + return + + var/turf/start = get_turf(src) + var/try_x = start.x + rand(-radius, radius) + var/try_y = start.y + rand(-radius, radius) + try_x = clamp(try_x, 1, world.maxx) + try_y = clamp(try_y, 1, world.maxy) + var/turf/tp_pos = get_turf(locate(try_x, try_y, start.z)) + do_teleport(target, tp_pos, asoundin = 'sound/effects/phasein.ogg') + if(isliving(target)) + investigate_log("teleported [key_name_log(target)] to [COORD(target)]", INVESTIGATE_TELEPORTATION) + +/obj/effect/anomaly/bluespace/mob_touch_effect(mob/living/M) + ..() + var/radius = bump_tp_min + round((bump_tp_max - bump_tp_min) * get_strenght() / 100) + teleport(M, radius) + return FALSE + +/obj/effect/anomaly/bluespace/item_touch_effect(obj/item/I) + ..() + var/radius = bump_tp_min + round((bump_tp_max - bump_tp_min) * get_strenght() / 100) + teleport(I, radius) + return FALSE + +/obj/effect/anomaly/bluespace/attackby(obj/item/I, mob/living/user, params) + . = ..() + var/radius = bump_tp_min + round((bump_tp_max - bump_tp_min) * get_strenght() / 100) + teleport(user, radius) + +/obj/effect/anomaly/bluespace/collapse() + for(var/atom/movable/atom in range(collapse_radius)) + teleport(atom, collapse_tp_radius) + + . = ..() + +/obj/effect/anomaly/bluespace/tier1 + name = "малая блюспейс аномалия" + ru_names = list( + NOMINATIVE = "малая блюспейс аномалия", \ + GENITIVE = "малой блюспейс аномалии", \ + DATIVE = "малой блюспейс аномалии", \ + ACCUSATIVE = "малую блюспейс аномалию", \ + INSTRUMENTAL = "малой блюспейс аномалией", \ + PREPOSITIONAL = "малой блюспейс аномалии" + ) + icon_state = "bluespace1" + core_type = /obj/item/assembly/signaler/core/bluespace/tier1 + stronger_anomaly_type = /obj/effect/anomaly/bluespace/tier2 + tier = 1 + impulses_types = list( + /datum/anomaly_impulse/move/bs_selftp/tier1, + ) + + bump_tp_min = 1 + bump_tp_max = 2 + collapse_radius = 3 + collapse_tp_radius = 5 + +// Moves only by /datum/anomaly_impulse/move/bs_selftp +/obj/effect/anomaly/bluespace/tier1/normal_move() + return FALSE + +/obj/effect/anomaly/bluespace/tier2 + name = "блюспейс аномалия" + ru_names = list( + NOMINATIVE = "блюспейс аномалия", \ + GENITIVE = "блюспейс аномалии", \ + DATIVE = "блюспейс аномалии", \ + ACCUSATIVE = "блюспейс аномалию", \ + INSTRUMENTAL = "блюспейс аномалией", \ + PREPOSITIONAL = "блюспейс аномалии" + ) + icon_state = "bluespace2" + core_type = /obj/item/assembly/signaler/core/bluespace/tier2 + weaker_anomaly_type = /obj/effect/anomaly/bluespace/tier1 + stronger_anomaly_type = /obj/effect/anomaly/bluespace/tier3 + tier = 2 + impulses_types = list( + /datum/anomaly_impulse/move/bs_selftp/tier2, + /datum/anomaly_impulse/bs_tp_other/tier2, + /datum/anomaly_impulse/wormholes/tier2, + ) + + bump_tp_min = 2 + bump_tp_max = 7 + collapse_radius = 5 + collapse_tp_radius = 50 + +/obj/effect/anomaly/bluespace/tier3 + name = "большая блюспейс аномалия" + ru_names = list( + NOMINATIVE = "большая блюспейс аномалия", \ + GENITIVE = "большой блюспейс аномалии", \ + DATIVE = "большой блюспейс аномалии", \ + ACCUSATIVE = "большую блюспейс аномалию", \ + INSTRUMENTAL = "большой блюспейс аномалией", \ + PREPOSITIONAL = "большой блюспейс аномалии" + ) + icon_state = "bluespace3" + core_type = /obj/item/assembly/signaler/core/bluespace/tier3 + weaker_anomaly_type = /obj/effect/anomaly/bluespace/tier2 + tier = 3 + impulses_types = list( + /datum/anomaly_impulse/move/bs_selftp/tier3, + /datum/anomaly_impulse/bs_tp_other/tier3, + /datum/anomaly_impulse/wormholes/tier3, + ) + + bump_tp_min = 4 + bump_tp_max = 10 + collapse_radius = 7 + collapse_tp_radius = 50 + +/obj/effect/anomaly/bluespace/tier3/New() + . = ..() + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + if(get_dist(src, M) > 20 || z != M.z) + return + + M.playsound_local(null,'sound/effects/explosionfar.ogg', 15, TRUE) + to_chat(M, "Вы слышите страшный треск! Это что... трещит пространство?") // It used in one place. + +/obj/effect/anomaly/bluespace/tier3/collapse() + new /datum/event/wormholes/anomaly() + for(var/i = 1 to rand(0, 5)) + new /obj/effect/anomaly/bluespace/tier1(get_turf(locate(rand(1, world.maxx), rand(1, world.maxy), z))) + + . = ..() + + +// TIER 4 ANOMALY | ADMIN SPAWN ONLY! + +/obj/effect/anomaly/bluespace/tier4 + name = "колоссальная блюспейс аномалия" + ru_names = list( + NOMINATIVE = "колоссальная блюспейс аномалия", \ + GENITIVE = "колоссальной блюспейс аномалии", \ + DATIVE = "колоссальной блюспейс аномалии", \ + ACCUSATIVE = "колоссальную блюспейс аномалию", \ + INSTRUMENTAL = "колоссальной блюспейс аномалией", \ + PREPOSITIONAL = "колоссальной блюспейс аномалии" + ) + icon_state = "bluespace3" + core_type = /obj/item/assembly/signaler/core/bluespace/tier3 + weaker_anomaly_type = /obj/effect/anomaly/bluespace/tier3 + tier = 4 + impulses_types = list( + /datum/anomaly_impulse/move/bs_selftp/tier4, + /datum/anomaly_impulse/bs_tp_other_t4, + /datum/anomaly_impulse/wormholes/tier4, + ) + + bump_tp_min = 30 + bump_tp_max = 70 + collapse_radius = 7 + collapse_tp_radius = 50 + +/obj/effect/anomaly/bluespace/tier4/New() + . = ..() + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + M.playsound_local(null,'sound/effects/explosionfar.ogg', 15, TRUE) + to_chat(M, "Пространство пало...") + +/obj/effect/anomaly/bluespace/tier4/collapse() + new /datum/event/wormholes/anomaly() + for(var/i = 1 to rand(3, 7)) + new /obj/effect/anomaly/bluespace/tier2(get_turf(locate(rand(1, world.maxx), rand(1, world.maxy), z))) + + var/list/turf/turfs = list() + for(var/turf/simulated/T in range(10, src)) + turfs.Add(T) + + // swaps + for(var/i = 1; i <= rand(40, 50); ++i) + var/turf/T1 = pick(turfs) + var/turf/T2 = pick(turfs) + + var/dir1 = T1.dir + var/icon_state1 = T1.icon_state + var/icon1 = T1.icon + T2.dir = dir1 + T2.icon = icon1 + T2.icon_state = icon_state1 + + var/list/C1 = list() + for(var/atom/movable/A in T1) + C1.Add(A) + + var/list/C2 = list() + for(var/atom/movable/A in T2) + C2.Add(A) + + for(var/atom/movable/A in C1) + A.forceMove(T2) + + for(var/atom/movable/A in C2) + A.forceMove(T2) + + C1 = list() + C2 = list() + for(var/V in T1.vars) + if(!(V in list("type", "loc", "locs", "vars", "parent", "parent_type", "verbs", "ckey", "key", "x", "y", "z", "destination_z", "destination_x", "destination_y", "contents", "luminosity", "group"))) + C1[V] = T1.vars[V] + + for(var/V in T2.vars) + if(!(V in list("type", "loc", "locs", "vars", "parent", "parent_type", "verbs", "ckey", "key", "x", "y", "z", "destination_z", "destination_x", "destination_y", "contents", "luminosity", "group"))) + C2[V] = T2.vars[V] + + var/type1 = T1.type + var/type2 = T2.type + T2.ChangeTurf(type1) + T1.ChangeTurf(type2) + + . = ..() + +/obj/effect/anomaly/bluespace/tier4/teleport(atom/movable/target, radius) + if(target.anchored && target != src || isobserver(target)) + return + + var/turf/start = get_turf(src) + var/try_x = start.x + rand(-radius, radius) + var/try_y = start.y + rand(-radius, radius) + try_x = clamp(try_x, 1, world.maxx) + try_y = clamp(try_y, 1, world.maxy) + var/z = start.z + if(prob(10) && !isanomaly(target)) + var/list/possible_z = list() + for(var/i in 1 to world.maxz) + if(is_admin_level(i) || is_away_level(i) || is_taipan(i) || !is_teleport_allowed(i)) + continue + + possible_z.Add(i) + + z = pick(possible_z) + + var/turf/tp_pos = get_turf(locate(try_x, try_y, z)) + do_teleport(target, tp_pos, asoundin = 'sound/effects/phasein.ogg') + if(isliving(target)) + investigate_log("teleported [key_name_log(target)] to [COORD(target)]", INVESTIGATE_TELEPORTATION) diff --git a/code/modules/anomalies/anomalies/energetic.dm b/code/modules/anomalies/anomalies/energetic.dm new file mode 100644 index 00000000000..1324bcd5100 --- /dev/null +++ b/code/modules/anomalies/anomalies/energetic.dm @@ -0,0 +1,341 @@ +/obj/effect/anomaly/energetic + anomaly_type = ANOMALY_TYPE_FLUX + icon_state = "electricity2" + icon = 'icons/effects/anomalies.dmi' + icon_state = "energetic1" + + /// The voltage that this anomaly supplies to nearby powernets. + var/voltage = 0 + /// Minimum number of jumps when collapsed. + var/collapse_jumps_low = 0 + /// Maximum number of jumps when collapsed. + var/collapse_jumps_high = 0 + /// Range of do_shock_ex when collapse. + var/collapse_shock_range = 0 + /// Damage of do_shock_ex when collapses. + var/collapse_shock_damage = 0 + /// Minimum number of generated energy balls. + var/eballs_num_low = 0 + /// Maximum number of generated energy balls. + var/eballs_num_high = 0 + /// List of energy balls connected to rhis anomaly. + var/list/obj/effect/energy_ball/eballs = list() + /// List of types of energy balls that can appear. + var/list/eballs_types = list() + /// Desired distance from the eball. + var/eball_dist = 2 + +/obj/effect/anomaly/energetic/New() + . = ..() + for(var/i = 1 to rand(eballs_num_low, eballs_num_high)) + var/type = pick_weight_classic(eballs_types) + eballs.Add(new type(loc, src)) + +/obj/effect/anomaly/energetic/collapse() + for(var/i = 1 to rand(collapse_jumps_low, collapse_jumps_high)) + jump_to_machinery(collapse_shock_damage * 2) + do_shock_ex(collapse_shock_range, collapse_shock_damage, TRUE) + sleep(0.2 SECONDS) + + if(tier < 3) + QDEL_LIST(eballs) + return ..() + + for(var/obj/effect/energy_ball/eball in eballs) + if(prob(50)) + var/spawn_type = eball.spawn_type + new spawn_type(eball.loc) + + QDEL_LIST(eballs) + return ..() + +/obj/effect/anomaly/energetic/process() + . = ..() + var/list/powernets = list() + for(var/turf/T in view(3, src)) + var/obj/structure/cable/C = null + if(isturf(T)) + C = locate() in T + + if(!C?.powernet) + continue + + if(!(C.powernet in powernets)) + powernets.Add(C.powernet) + + var/cur_voltage = voltage * strenght / 100 + for(var/datum/powernet/P in powernets) + P.newavail += cur_voltage / powernets.len + +/obj/effect/anomaly/energetic/mob_touch_effect(mob/living/M) + . = ..() + M.electrocute_act(collapse_shock_damage, "энергетической аномалии", flags = SHOCK_NOGLOVES) + +/obj/effect/anomaly/energetic/item_touch_effect(obj/item/I) + . = ..() + do_shock_ex(collapse_shock_range / 2, collapse_shock_damage / 2, TRUE) + +/obj/effect/anomaly/energetic/proc/jump_to_machinery(damage) + var/list/possible_targets = list() + for(var/obj/machinery/mach in view(5, src)) + if(!(mach.stat & BROKEN)) + possible_targets += mach + + var/obj/target = pick(possible_targets) + target.take_damage(damage, BURN, ENERGY, TRUE, get_dir(src, target)) + jump(target) + after_move() + +/obj/effect/anomaly/energetic/do_move(dir) + var/turf/target = get_step(src, dir) + if(target && target.Enter(src)) + jump(target) + + return TRUE + +// A jump accompanied by an electric shock. +/obj/effect/anomaly/energetic/proc/jump(target) + var/turf/target_turf = get_turf(target) + if(!target_turf) + return + + Beam(target_turf, icon_state = "lightning[rand(1, 12)]", icon = 'icons/effects/effects.dmi', time = 0.5 SECONDS) + forceMove(target_turf) + +/obj/effect/anomaly/energetic/tier1 + name = "малая энергетическая аномалия" + ru_names = list( + NOMINATIVE = "малая энергетическая аномалия", \ + GENITIVE = "малой энергетической аномалии", \ + DATIVE = "малой энергетической аномалии", \ + ACCUSATIVE = "малую энергетическую аномалию", \ + INSTRUMENTAL = "малой энергетической аномалией", \ + PREPOSITIONAL = "малой энергетической аномалии" + ) + icon_state = "energetic1" + core_type = /obj/item/assembly/signaler/core/energetic/tier1 + stronger_anomaly_type = /obj/effect/anomaly/energetic/tier2 + tier = 1 + light_range = 5 + impulses_types = list( + /datum/anomaly_impulse/move/energ_fastmove/tier1, + /datum/anomaly_impulse/energ_shock_ex/tier1, + /datum/anomaly_impulse/move/machinery_jump/tier1, + ) + + voltage = 75000 + collapse_jumps_low = 3 + collapse_jumps_high = 7 + collapse_shock_range = 3 + collapse_shock_damage = 10 + +/obj/effect/anomaly/energetic/tier2 + name = "энергетическая аномалия" + ru_names = list( + NOMINATIVE = "энергетическая аномалия", \ + GENITIVE = "энергетической аномалии", \ + DATIVE = "энергетической аномалии", \ + ACCUSATIVE = "энергетическую аномалию", \ + INSTRUMENTAL = "энергетической аномалией", \ + PREPOSITIONAL = "энергетической аномалии" + ) + icon_state = "energetic2" + core_type = /obj/item/assembly/signaler/core/energetic/tier2 + weaker_anomaly_type = /obj/effect/anomaly/energetic/tier1 + stronger_anomaly_type = /obj/effect/anomaly/energetic/tier3 + tier = 2 + light_range = 6 + impulses_types = list( + /datum/anomaly_impulse/move/energ_fastmove/tier2, + /datum/anomaly_impulse/energ_shock_ex/tier2, + /datum/anomaly_impulse/move/machinery_jump/tier2, + ) + + voltage = 250000 + collapse_jumps_low = 5 + collapse_jumps_high = 10 + collapse_shock_range = 3 + collapse_shock_damage = 30 + eballs_num_low = 2 + eballs_num_high = 3 + eballs_types = list(/obj/effect/energy_ball = 1) + +/obj/effect/anomaly/energetic/tier3 + name = "большая энергетическая аномалия" + ru_names = list( + NOMINATIVE = "большая энергетическая аномалия", \ + GENITIVE = "большой энергетической аномалии", \ + DATIVE = "большой энергетической аномалии", \ + ACCUSATIVE = "большую энергетическую аномалию", \ + INSTRUMENTAL = "большой энергетической аномалией", \ + PREPOSITIONAL = "большой энергетической аномалии" + ) + icon_state = "energetic3" + core_type = /obj/item/assembly/signaler/core/energetic/tier3 + weaker_anomaly_type = /obj/effect/anomaly/energetic/tier2 + tier = 3 + light_range = 7 + impulses_types = list( + /datum/anomaly_impulse/move/energ_fastmove/tier3, + /datum/anomaly_impulse/energ_shock_ex/tier3, + /datum/anomaly_impulse/move/machinery_jump/tier3, + ) + + voltage = 1000000 // A stabilized flux anomaly can be a useful source of energy. + collapse_jumps_low = 10 + collapse_jumps_high = 15 + collapse_shock_range = 4 + collapse_shock_damage = 70 + eballs_num_low = 3 + eballs_num_high = 5 + eballs_types = list(/obj/effect/energy_ball = 3, /obj/effect/energy_ball/big = 1) + +/obj/effect/anomaly/energetic/tier3/New() + . = ..() + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + if(get_dist(src, M) > 20 || z != M.z) + return + + M.playsound_local(null, 'sound/magic/lightningbolt.ogg', 15, TRUE) + to_chat(M, "Вы слышите тихое потрескивание в воздухе. Подозрительно похоже на статическое электричество.") // It used in one place. + + +/obj/effect/energy_ball + name = "энергетический шар" + ru_names = list( + NOMINATIVE = "энергетический шар", \ + GENITIVE = "энергетического шара", \ + DATIVE = "энергетическому шару", \ + ACCUSATIVE = "энергетический шар", \ + INSTRUMENTAL = "энергетическим шаром", \ + PREPOSITIONAL = "энергетическом шаре" + ) + desc = "Миниатюрная, отностилельно стабильная шаровая молния. Обычно появляется вместе с энергетическими аномалиями." + icon = 'icons/effects/anomalies.dmi' + icon_state = "energetic1" + gender = MALE + alpha = 0 + light = 5 + /// Anomaly that src conected with. + var/obj/effect/anomaly/energetic/owner + /// The proportion of the size relative to the default size. + var/size = 0.5 + /// Type of anomaly that spawns instead of this eball when owner colapses. + var/spawn_type = /obj/effect/anomaly/energetic/tier1 + +/obj/effect/energy_ball/New(loc, owner) + . = ..() + src.owner = owner + + var/matrix/M = matrix() + M.Scale(0.1, 0.1) + animate(src, transform = M, time = 0, flags = ANIMATION_PARALLEL) + M.Scale(10 * size, 10 * size) + animate(src, transform = M, time = 1 SECONDS, alpha = 255, flags = ANIMATION_PARALLEL) + + START_PROCESSING(SSobj, src) + +/obj/effect/energy_ball/Destroy() + . = ..() + STOP_PROCESSING(SSobj, src) + +/obj/effect/energy_ball/process() + if(!owner) + qdel(src) + return + + if(get_dist(src, owner) <= 2) + jump(get_step(src, owner.get_move_dir())) + return + + if(z != owner.z || get_dist(src, owner) > 10) + jump(get_turf(owner)) + return + + while(get_dist(src, owner) > owner.eball_dist) + jump(get_step(src, get_dir(src, owner))) + sleep(2) + +/obj/effect/energy_ball/proc/jump(target) + var/turf/target_turf = get_turf(target) + if(!target_turf) + return + + Beam(target_turf, icon_state = "lightning[rand(1, 12)]", icon = 'icons/effects/effects.dmi', time = 0.5 SECONDS) + forceMove(target_turf) + if(!prob(20)) + return + + var/list/obj/connected = list(owner) + owner.eballs + Beam(pick(connected), icon_state = "lightning[rand(1, 12)]", icon = 'icons/effects/effects.dmi', time = 0.5 SECONDS) + +/obj/effect/energy_ball/ex_act(severity) + return + +/obj/effect/energy_ball/CanAllowThrough(atom/movable/mover, border_dir) + . = ..() + if(isliving(mover)) + var/mob/living/M = mover + M.electrocute_act(rand(20, 30), "энергетического шара", flags = SHOCK_NOGLOVES) + +/obj/effect/energy_ball/big + size = 1 + +/obj/effect/energy_ball/verybig + size = 1.5 + spawn_type = /obj/effect/anomaly/energetic/tier2 + + +// TIER 4 ADMIN SPAWN ONLY + +/obj/effect/anomaly/energetic/tier4 + name = "колоссальная энергетическая аномалия" + ru_names = list( + NOMINATIVE = "колоссальная энергетическая аномалия", \ + GENITIVE = "колоссальной энергетической аномалии", \ + DATIVE = "колоссальной энергетической аномалии", \ + ACCUSATIVE = "колоссальную энергетическую аномалию", \ + INSTRUMENTAL = "колоссальной энергетической аномалией", \ + PREPOSITIONAL = "колоссальной энергетической аномалии" + ) + icon_state = "energetic3" + core_type = /obj/item/assembly/signaler/core/energetic/tier3/tier4 + weaker_anomaly_type = /obj/effect/anomaly/energetic/tier3 + tier = 4 + light_range = 15 + impulses_types = list( + /datum/anomaly_impulse/move/energ_fastmove/tier4, + /datum/anomaly_impulse/energ_shock_ex/tier4, + /datum/anomaly_impulse/move/machinery_jump/tier4, + /datum/anomaly_impulse/move/machinery_destroy, + ) + + voltage = 5000000 // A stabilized flux anomaly can be a useful source of energy. + collapse_jumps_low = 20 + collapse_jumps_high = 35 + collapse_shock_range = 6 + collapse_shock_damage = 120 + eballs_num_low = 10 + eballs_num_high = 12 + eballs_types = list(/obj/effect/energy_ball = 3, /obj/effect/energy_ball/big = 2, /obj/effect/energy_ball/verybig = 1) + eball_dist = 5 + +/obj/effect/anomaly/energetic/tier4/New() + . = ..() + for(var/mob/living/M in GLOB.player_list) + M.electrocute_act(rand(5, 15), "[declent_ru(GENITIVE)]") + if(M.stat) + continue + + if(is_admin_level(M)) + continue + + M.playsound_local(null, 'sound/magic/lightningbolt.ogg', 25, TRUE) + to_chat(M, "Вы слышите черезвычайно громкий электрический треск!") + +/obj/effect/anomaly/energetic/tier4/do_move(dir) + . = ..() + explosion(get_turf(src), -1, 1, 2, cause = "tier4 energetic anomaly move", adminlog = FALSE) diff --git a/code/modules/anomalies/anomalies/gravitational.dm b/code/modules/anomalies/anomalies/gravitational.dm new file mode 100644 index 00000000000..a6a70bdd51e --- /dev/null +++ b/code/modules/anomalies/anomalies/gravitational.dm @@ -0,0 +1,196 @@ +/obj/effect/anomaly/gravitational + anomaly_type = ANOMALY_TYPE_GRAV + icon_state = "shield2" + /// Maximum level of changing gravity on touch. + var/grav_change_level = 0 + /// Minimum time of changing gravity on touch. + var/grav_change_time_low = 0 + /// Maximum time of changing gravity on touch. + var/grav_change_time_high = 0 + +/obj/effect/anomaly/gravitational/collapse() + for(var/i = 1 to max(2, rand(tier, tier * 2))) + sleep(2) + for(var/atom/movable/A in view(tier * 2, src)) + if(isobserver(A)) + continue + + if(!iseffect(A)) + A.random_throw(tier, tier * 3, 5) + A.update_icon() + + . = ..() + +/obj/effect/anomaly/gravitational/proc/random_gravity_change(atom/A) + var/grav_delta = rand(-grav_change_level * 100, grav_change_level * 100) / 100 + var/id = GRAVITY_SOURCE_ANOMALY + "[rand(1, 1000000)]" + + A.add_gravity(id, grav_delta) + addtimer(CALLBACK(A, TYPE_PROC_REF(/atom, remove_gravity_source), id), rand(grav_change_time_low, grav_change_time_high)) + +/obj/effect/anomaly/gravitational/mob_touch_effect(mob/living/M) + . = ..() + random_gravity_change(M) + +/obj/effect/anomaly/gravitational/item_touch_effect(obj/item/I) + . = ..() + var/grav_delta = -I.get_gravity() + var/id = GRAVITY_SOURCE_ANOMALY + "[rand(1, 1000000)]" + I.add_gravity(id, grav_delta) + addtimer(CALLBACK(I, TYPE_PROC_REF(/atom, remove_gravity_source), id), rand(grav_change_time_low, grav_change_time_high)) + +/obj/effect/anomaly/gravitational/process() + . = ..() + for(var/obj/O in oview(max(2, tier * 2 - 1), src)) + if(!O.anchored) + step_towards(O,src) + +/obj/effect/anomaly/gravitational/tier1 + name = "малая гравитационная аномалия" + ru_names = list( + NOMINATIVE = "малая гравитационная аномалия", \ + GENITIVE = "малой гравитационной аномалии", \ + DATIVE = "малой гравитационной аномалии", \ + ACCUSATIVE = "малую гравитационную аномалию", \ + INSTRUMENTAL = "малой гравитационной аномалией", \ + PREPOSITIONAL = "малой гравитационной аномалии" + ) + core_type = /obj/item/assembly/signaler/core/gravitational/tier1 + stronger_anomaly_type = /obj/effect/anomaly/gravitational/tier2 + tier = 1 + impulses_types = list( + /datum/anomaly_impulse/change_grav/tier1, + /datum/anomaly_impulse/random_throws/tier1, + ) + + grav_change_level = 1 + grav_change_time_low = 3 SECONDS + grav_change_time_high = 5 SECONDS + +/obj/effect/anomaly/gravitational/tier2 + name = "гравитационная аномалия" + ru_names = list( + NOMINATIVE = "гравитационная аномалия", \ + GENITIVE = "гравитационной аномалии", \ + DATIVE = "гравитационной аномалии", \ + ACCUSATIVE = "гравитационную аномалию", \ + INSTRUMENTAL = "гравитационной аномалией", \ + PREPOSITIONAL = "гравитационной аномалии" + ) + core_type = /obj/item/assembly/signaler/core/gravitational/tier2 + weaker_anomaly_type = /obj/effect/anomaly/gravitational/tier1 + stronger_anomaly_type = /obj/effect/anomaly/gravitational/tier3 + tier = 2 + impulses_types = list( + /datum/anomaly_impulse/change_grav/tier2, + /datum/anomaly_impulse/random_throws/tier2, + ) + + grav_change_level = 2 + grav_change_time_low = 20 SECONDS + grav_change_time_high = 60 SECONDS + +/obj/effect/anomaly/gravitational/tier3 + name = "большая гравитационная аномалия" + ru_names = list( + NOMINATIVE = "большая гравитационная аномалия", \ + GENITIVE = "большой гравитационной аномалии", \ + DATIVE = "большой гравитационной аномалии", \ + ACCUSATIVE = "большую гравитационную аномалию", \ + INSTRUMENTAL = "большой гравитационной аномалией", \ + PREPOSITIONAL = "большой гравитационной аномалии" + ) + core_type = /obj/item/assembly/signaler/core/gravitational/tier3 + weaker_anomaly_type = /obj/effect/anomaly/gravitational/tier2 + tier = 3 + impulses_types = list( + /datum/anomaly_impulse/change_grav/tier3, + /datum/anomaly_impulse/random_throws/tier3, + ) + + grav_change_level = 3 + grav_change_time_low = 5 SECONDS + grav_change_time_high = 20 SECONDS + +/obj/effect/anomaly/gravitational/tier3/New() + . = ..() + + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + if(get_dist(src, M) > 20 || z != M.z) + return + + M.playsound_local(null, 'sound/effects/empulse.ogg', 15, TRUE) + to_chat(M, "Ваше тело становится необычайно лёгким... Или тяжёлым... Всё вокруг неестественно подрагивает.") // It used in one place. + +/obj/effect/anomaly/gravitational/tier3/collapse() + for(var/i = 1 to rand(30, 60)) + var/mob/living/M = pick(GLOB.mob_living_list) + random_gravity_change(M) + + . = ..() + + +// TIER 4 ADMIN SPAWN ONLY + +/obj/effect/anomaly/gravitational/tier4 + name = "колоссальная гравитационная аномалия" + ru_names = list( + NOMINATIVE = "колоссальная гравитационная аномалия", \ + GENITIVE = "колоссальной гравитационной аномалии", \ + DATIVE = "колоссальной гравитационной аномалии", \ + ACCUSATIVE = "колоссальную гравитационную аномалию", \ + INSTRUMENTAL = "колоссальной гравитационной аномалией", \ + PREPOSITIONAL = "колоссальной гравитационной аномалии" + ) + core_type = /obj/item/assembly/signaler/core/gravitational/tier3/tier4 + weaker_anomaly_type = /obj/effect/anomaly/gravitational/tier3 + tier = 4 + impulses_types = list( + /datum/anomaly_impulse/change_grav/tier4, + /datum/anomaly_impulse/random_throws/tier4, + /datum/anomaly_impulse/grav_fastmove, + ) + + grav_change_level = 10 + grav_change_time_low = 60 SECONDS + grav_change_time_high = 360 SECONDS + +/obj/effect/anomaly/gravitational/tier4/New() + . = ..() + + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + M.playsound_local(null, 'sound/effects/empulse.ogg', 15, TRUE) + to_chat(M, "Вы чувствуете, что кто-то решил поиграть в Бога...") // It used in one place. + +/obj/effect/anomaly/gravitational/tier4/collapse() + for(var/i = 1 to rand(100, 200)) + var/mob/living/M = pick(GLOB.mob_living_list) + random_gravity_change(M) + + . = ..() + +/obj/effect/anomaly/gravitational/tier4/do_move(dir) + . = ..() + for(var/turf/simulated/wall/wall in range(3, src)) + wall.take_damage(700) + + for(var/obj/structure/struct in range(3, src)) + struct.take_damage(700) + + for(var/obj/item/I in range(3, src)) + I.random_throw(tier, tier * 3, 5) + + for(var/mob/living/M in range(3, src)) + M.random_throw(tier, tier * 3, 5) + +/obj/effect/anomaly/gravitational/process() + . = ..() + for(var/obj/O in oview(max(2, tier * 2 - 1), src)) + step_towards(O, src) + step_towards(O, src) diff --git a/code/modules/anomalies/anomalies/vortex.dm b/code/modules/anomalies/anomalies/vortex.dm new file mode 100644 index 00000000000..b3a359f0391 --- /dev/null +++ b/code/modules/anomalies/anomalies/vortex.dm @@ -0,0 +1,236 @@ +/obj/effect/anomaly/vortex + anomaly_type = ANOMALY_TYPE_VORTEX + icon_state = "bhole3" + /// Minimum radius at which surrounding objects are attracted. + var/grav_pull_range_low = 0 + /// Maximum radius at which surrounding objects are attracted. + var/grav_pull_range_high = 0 + /// The level of singularity that corresponds to the force of attraction. + var/grav_pull_strenght = 0 + /// The radius at which collapse effects are applied. + var/collapse_range = 0 + +/obj/effect/anomaly/vortex/collapse() + var/list/affected = list() + for(var/turf/T in range(collapse_range, src)) + var/key = "[get_dist(src, T)]" + if(!(key in affected)) + affected[key] = list() + + var/list/list = affected[key] + list.Add(T) + + for(var/key in affected) + matr = matrix() + var/mult = text2num(key) + matr.Scale(mult, mult) + animate(src, transform = matr, time = 0.2 SECONDS, flags = ANIMATION_PARALLEL) + var/list/list = affected[key] + for(var/turf/T in list) + if(prob(100 - mult * 10)) + T.singularity_act(grav_pull_strenght) + + sleep(2) + + . = ..() + +/obj/effect/anomaly/vortex/proc/pull(atom/movable/A) + // a - vector A->src + var/ax = x - A.x + var/ay = y - A.y + var/a_len = sqrt(ax * ax + ay * ay) + + // a1 - notmalised (len = 1) vector a + var/a1x = ax * a_len + var/a1y = ay * a_len + + // b - vector perpendicular to vector a1. + var/bx = -a1y + var/by = a1x + + var/radius = round(grav_pull_range_low + (grav_pull_range_high - grav_pull_range_low) * get_strenght() / 100) + + // c - vector of moving. Always move 1 + var/cx = ax * radius + bx * (a_len - 1) + var/cy = ay * radius + by * (a_len - 1) + + var/turf/target = get_turf(locate(A.x + cx, A.y + cy, z)) + A.singularity_pull(target, grav_pull_strenght) + A.update_icon() + +/obj/effect/anomaly/vortex/proc/do_pulls() + var/radius = round(grav_pull_range_low + (grav_pull_range_high - grav_pull_range_low) * get_strenght() / 100) + for(var/atom/movable/A in view(radius, src)) + if(isobserver(A)) + continue + + if(!A.anchored || ismachinery(A)) + pull(A) + +/obj/effect/anomaly/vortex/process() + var/list/obj/was_near = list() + for(var/obj/O in range(1, src)) + was_near.Add(O) + + do_pulls() + + // If something movable was near and can not be pulled inside, it will be throwen. + for(var/obj/O in range(1, src)) + if(!(O in was_near)) + continue + + if(O.anchored && !ismachinery(O)) + continue + + O.random_throw(tier * 2, tier * 3, 4) + + . = ..() + +/obj/effect/anomaly/vortex/mob_touch_effect(mob/living/M) + . = ..() + M.random_throw(tier * 2, tier * 3, 4) + +/obj/effect/anomaly/vortex/item_touch_effect(obj/item/I) + . = ..() + I.random_throw(tier * 2, tier * 3, 4) + +/obj/effect/anomaly/vortex/process() + . = ..() + + for(var/atom/movable/A in loc.contents) + if(!A.anchored) + A.random_throw(tier * 2, tier * 3, 5) + +/obj/effect/anomaly/vortex/tier1 + name = "малая вихревая аномалия" + ru_names = list( + NOMINATIVE = "малая вихревая аномалия", \ + GENITIVE = "малой вихревой аномалии", \ + DATIVE = "малой вихревой аномалии", \ + ACCUSATIVE = "малую вихревую аномалию", \ + INSTRUMENTAL = "малой вихревой аномалией", \ + PREPOSITIONAL = "малой вихревой аномалии" + ) + core_type = /obj/item/assembly/signaler/core/vortex/tier1 + stronger_anomaly_type = /obj/effect/anomaly/vortex/tier2 + tier = 1 + impulses_types = list( + /datum/anomaly_impulse/emp/tier1, + /datum/anomaly_impulse/superpull/tier1, + ) + + grav_pull_range_low = 1 + grav_pull_range_high = 2 + grav_pull_strenght = STAGE_THREE + collapse_range = 0 + +/obj/effect/anomaly/vortex/tier2 + name = "вихревая аномалия" + ru_names = list( + NOMINATIVE = "вихревая аномалия", \ + GENITIVE = "вихревой аномалии", \ + DATIVE = "вихревой аномалии", \ + ACCUSATIVE = "вихревую аномалию", \ + INSTRUMENTAL = "вихревой аномалией", \ + PREPOSITIONAL = "вихревой аномалии" + ) + core_type = /obj/item/assembly/signaler/core/vortex/tier2 + weaker_anomaly_type = /obj/effect/anomaly/vortex/tier1 + stronger_anomaly_type = /obj/effect/anomaly/vortex/tier3 + tier = 2 + impulses_types = list( + /datum/anomaly_impulse/emp/tier2, + /datum/anomaly_impulse/superpull/tier2, + ) + + grav_pull_range_low = 2 + grav_pull_range_high = 3 + grav_pull_strenght = STAGE_FOUR + collapse_range = 1 + +/obj/effect/anomaly/vortex/tier3 + name = "большая вихревая аномалия" + ru_names = list( + NOMINATIVE = "большая вихревая аномалия", \ + GENITIVE = "большой вихревой аномалии", \ + DATIVE = "большой вихревой аномалии", \ + ACCUSATIVE = "большую вихревую аномалию", \ + INSTRUMENTAL = "большой вихревой аномалией", \ + PREPOSITIONAL = "большой вихревой аномалии" + ) + core_type = /obj/item/assembly/signaler/core/vortex/tier3 + weaker_anomaly_type = /obj/effect/anomaly/vortex/tier2 + tier = 3 + impulses_types = list( + /datum/anomaly_impulse/emp/tier3, + /datum/anomaly_impulse/superpull/tier3, + ) + + grav_pull_range_low = 2 + grav_pull_range_high = 4 + grav_pull_strenght = STAGE_FIVE + collapse_range = 3 + +/obj/effect/anomaly/vortex/tier3/New() + . = ..() + + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + if(get_dist(src, M) > 20 || z != M.z) + return + + to_chat(M, "Сильный ветер дует вам прямо в лицо. Стоп, откуда на космической станции ветер?") // It used in one place. + +// TIER 4 ADMIN SPAWN ONLY + +/obj/effect/anomaly/vortex/tier4 + name = "колоссальная вихревая аномалия" + ru_names = list( + NOMINATIVE = "колоссальная вихревая аномалия", \ + GENITIVE = "колоссальной вихревой аномалии", \ + DATIVE = "колоссальной вихревой аномалии", \ + ACCUSATIVE = "колоссальную вихревую аномалию", \ + INSTRUMENTAL = "колоссальной вихревой аномалией", \ + PREPOSITIONAL = "колоссальной вихревой аномалии" + ) + core_type = /obj/item/assembly/signaler/core/vortex/tier3/tier4 + weaker_anomaly_type = /obj/effect/anomaly/vortex/tier3 + tier = 4 + impulses_types = list( + /datum/anomaly_impulse/emp/tier4, + /datum/anomaly_impulse/superpull/tier4, + /datum/anomaly_impulse/vortex_fastmove, + ) + + grav_pull_range_low = 8 + grav_pull_range_high = 16 + grav_pull_strenght = STAGE_SIX + collapse_range = 15 + +/obj/effect/anomaly/vortex/tier4/New() + . = ..() + + for(var/mob/living/M in GLOB.player_list) + if(M.stat) + continue + + to_chat(M, "Ураганный поток ветра чуть не сбивает вас с ног. Это точно не сулит для вас ничего хорошего.") + +/obj/effect/anomaly/vortex/tier4/item_touch_effect(obj/item/I) + . = ..() + if(!iscore(I)) + I.singularity_act() + +/obj/effect/anomaly/vortex/tier4/mob_touch_effect(mob/living/M) + M.singularity_act() + +/obj/effect/anomaly/vortex/tier4/do_move(dir) + . = ..() + pull() + for(var/atom/A in range(2, src)) + A.singularity_act() + +/obj/effect/anomaly/vortex/singularity_act() + return diff --git a/code/modules/anomalies/anomaly_analyzer.dm b/code/modules/anomalies/anomaly_analyzer.dm new file mode 100644 index 00000000000..8225923bcda --- /dev/null +++ b/code/modules/anomalies/anomaly_analyzer.dm @@ -0,0 +1,66 @@ +/obj/item/anomaly_analyzer + name = "сканер аномалий" + ru_names = list( + NOMINATIVE = "сканер аномалий", \ + GENITIVE = "сканера аномалий", \ + DATIVE = "сканеру аномалий", \ + ACCUSATIVE = "сканер аномалий", \ + INSTRUMENTAL = "сканером аномалий", \ + PREPOSITIONAL = "сканере аномалий" + ) + desc = "Продвинутое устройство предназначенное для сканирования аномалий. \ + Выводит достаточно полную информацию о сканируемой аномалии. \ + Может сканировать аномалии на расстоянии." + icon = 'icons/obj/anomaly/anomaly_stuff.dmi' + lefthand_file = 'icons/obj/anomaly/anomaly_inhand_l.dmi' + righthand_file = 'icons/obj/anomaly/anomaly_inhand_r.dmi' + icon_state = "scanner_item" + item_state = "scanner" + gender = MALE + origin_tech = "programming=3;magnets=1" + /// Title of scan window. + var/scan_title + /// Anomaly info in scan window. + var/scan_data + +/obj/item/anomaly_analyzer/proc/scan(obj/effect/anomaly/target) + scan_title = "Сканирование [target.declent_ru(GENITIVE)]" + scan_data = list() + var/stre = target.strenght + var/stab = target.stability + scan_data += "Сила аномалии: [stre > 70 ? span_warning("[stre]") : stre]" + scan_data += "Стабильность аномалии: [stab < 30 ? span_warning("[stab]") : stab]" + var/state + if(target.stability < ANOMALY_GROW_STABILITY) + state = span_warning("Рост") + else if(target.stability > ANOMALY_DECREASE_STABILITY) + state = "Уменьшение" + else + state = "Стабильное" + + scan_data += "Состояние аномалии: [state]" + if(target.stability > ANOMALY_MOVE_MAX_STABILITY || world.time > target.move_moment) + scan_data += span_info("Движение прекращено.") + + scan_data += "
=0?"0b"+p.toString(2):"-0b"+p.toString(2).slice(1)}return S}(),octal:function(){function S(p){return p>=0?"0o"+p.toString(8):"-0o"+p.toString(8).slice(1)}return S}(),decimal:function(){function S(p){return p.toString(10)}return S}(),hexadecimal:function(){function S(p){return p>=0?"0x"+p.toString(16).toUpperCase():"-0x"+p.toString(16).toUpperCase().slice(1)}return S}()},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},89769:function(I,r,n){"use strict";var e=n(92276);I.exports=new e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(){function a(t){return t!==null?t:{}}return a}()})},36947:function(I,r,n){"use strict";var e=n(92276);function a(t){return t==="<<"||t===null}I.exports=new e("tag:yaml.org,2002:merge",{kind:"scalar",resolve:a})},30534:function(I,r,n){"use strict";var e=n(92276);function a(d){if(d===null)return!0;var y=d.length;return y===1&&d==="~"||y===4&&(d==="null"||d==="Null"||d==="NULL")}function t(){return null}function o(d){return d===null}I.exports=new e("tag:yaml.org,2002:null",{kind:"scalar",resolve:a,construct:t,predicate:o,represent:{canonical:function(){function d(){return"~"}return d}(),lowercase:function(){function d(){return"null"}return d}(),uppercase:function(){function d(){return"NULL"}return d}(),camelcase:function(){function d(){return"Null"}return d}(),empty:function(){function d(){return""}return d}()},defaultStyle:"lowercase"})},14250:function(I,r,n){"use strict";var e=n(92276),a=Object.prototype.hasOwnProperty,t=Object.prototype.toString;function o(y){if(y===null)return!0;var V=[],k,S,p,i,l,f=y;for(k=0,S=f.length;k =0?"0b"+p.toString(2):"-0b"+p.toString(2).slice(1)}return S}(),octal:function(){function S(p){return p>=0?"0o"+p.toString(8):"-0o"+p.toString(8).slice(1)}return S}(),decimal:function(){function S(p){return p.toString(10)}return S}(),hexadecimal:function(){function S(p){return p>=0?"0x"+p.toString(16).toUpperCase():"-0x"+p.toString(16).toUpperCase().slice(1)}return S}()},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},89769:function(I,r,n){"use strict";var e=n(92276);I.exports=new e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(){function i(t){return t!==null?t:{}}return i}()})},36947:function(I,r,n){"use strict";var e=n(92276);function i(t){return t==="<<"||t===null}I.exports=new e("tag:yaml.org,2002:merge",{kind:"scalar",resolve:i})},30534:function(I,r,n){"use strict";var e=n(92276);function i(d){if(d===null)return!0;var y=d.length;return y===1&&d==="~"||y===4&&(d==="null"||d==="Null"||d==="NULL")}function t(){return null}function o(d){return d===null}I.exports=new e("tag:yaml.org,2002:null",{kind:"scalar",resolve:i,construct:t,predicate:o,represent:{canonical:function(){function d(){return"~"}return d}(),lowercase:function(){function d(){return"null"}return d}(),uppercase:function(){function d(){return"NULL"}return d}(),camelcase:function(){function d(){return"Null"}return d}(),empty:function(){function d(){return""}return d}()},defaultStyle:"lowercase"})},14250:function(I,r,n){"use strict";var e=n(92276),i=Object.prototype.hasOwnProperty,t=Object.prototype.toString;function o(y){if(y===null)return!0;var V=[],k,S,p,a,c,f=y;for(k=0,S=f.length;k i?i:S}return k}(),e=r.clamp01=function(){function k(S){return S<0?0:S>1?1:S}return k}(),a=r.scale=function(){function k(S,p,i){return(S-p)/(i-p)}return k}(),t=r.round=function(){function k(S,p){if(!S||isNaN(S))return S;var i,l,f,u;return p|=0,i=Math.pow(10,p),S*=i,u=+(S>0)|-(S<0),f=Math.abs(S%1)>=.4999999999854481,l=Math.floor(S),f&&(S=l+(u>0)),(f?S:Math.round(S))/i}return k}(),o=r.toFixed=function(){function k(S,p){return p===void 0&&(p=0),Number(S).toFixed(Math.max(p,0))}return k}(),d=r.inRange=function(){function k(S,p){return p&&S>=p[0]&&S<=p[1]}return k}(),y=r.keyOfMatchingRange=function(){function k(S,p){for(var i=0,l=Object.keys(p);i 0&&e(v)?(b=a(v),s=d(V,k,v,b,s,l-1)-1):(t(s+1),V[s]=v),s++),m++;return s};I.exports=d},50730:function(I,r,n){"use strict";var e=n(40033);I.exports=!e(function(){return Object.isExtensible(Object.preventExtensions({}))})},61267:function(I,r,n){"use strict";var e=n(55050),a=Function.prototype,t=a.apply,o=a.call;I.exports=typeof Reflect=="object"&&Reflect.apply||(e?o.bind(t):function(){return o.apply(t,arguments)})},75754:function(I,r,n){"use strict";var e=n(71138),a=n(10320),t=n(55050),o=e(e.bind);I.exports=function(d,y){return a(d),y===void 0?d:t?o(d,y):function(){return d.apply(y,arguments)}}},55050:function(I,r,n){"use strict";var e=n(40033);I.exports=!e(function(){var a=function(){}.bind();return typeof a!="function"||a.hasOwnProperty("prototype")})},66284:function(I,r,n){"use strict";var e=n(67250),a=n(10320),t=n(77568),o=n(45299),d=n(54602),y=n(55050),V=Function,k=e([].concat),S=e([].join),p={},i=function(f,u,s){if(!o(p,u)){for(var m=[],c=0;c]*>)/g,k=/\$([$&'`]|\d{1,2})/g;I.exports=function(S,p,i,l,f,u){var s=i+S.length,m=l.length,c=k;return f!==void 0&&(f=a(f),c=V),d(u,c,function(v,b){var g;switch(o(b,0)){case"$":return"$";case"&":return S;case"`":return y(p,0,i);case"'":return y(p,s);case"<":g=f[y(b,1,-1)];break;default:var h=+b;if(h===0)return v;if(h>m){var C=t(h/10);return C===0?v:C<=m?l[C-1]===void 0?o(b,1):l[C-1]+o(b,1):v}g=l[h-1]}return g===void 0?"":g})}},16210:function(I,r,n){"use strict";var e=function(t){return t&&t.Math===Math&&t};I.exports=e(typeof globalThis=="object"&&globalThis)||e(typeof window=="object"&&window)||e(typeof self=="object"&&self)||e(typeof n.g=="object"&&n.g)||e(!1)||function(){return this}()||Function("return this")()},45299:function(I,r,n){"use strict";var e=n(67250),a=n(46771),t=e({}.hasOwnProperty);I.exports=Object.hasOwn||function(){function o(d,y){return t(a(d),y)}return o}()},79195:function(I){"use strict";I.exports={}},72259:function(I){"use strict";I.exports=function(r,n){try{arguments.length}catch(e){}}},5315:function(I,r,n){"use strict";var e=n(4009);I.exports=e("document","documentElement")},36223:function(I,r,n){"use strict";var e=n(58310),a=n(40033),t=n(12689);I.exports=!e&&!a(function(){return Object.defineProperty(t("div"),"a",{get:function(){function o(){return 7}return o}()}).a!==7})},91784:function(I){"use strict";var r=Array,n=Math.abs,e=Math.pow,a=Math.floor,t=Math.log,o=Math.LN2,d=function(k,S,p){var i=r(p),l=p*8-S-1,f=(1< 0&&e(C)?(b=i(C),s=d(V,k,C,b,s,c-1)-1):(t(s+1),V[s]=C),s++),m++;return s};I.exports=d},50730:function(I,r,n){"use strict";var e=n(40033);I.exports=!e(function(){return Object.isExtensible(Object.preventExtensions({}))})},61267:function(I,r,n){"use strict";var e=n(55050),i=Function.prototype,t=i.apply,o=i.call;I.exports=typeof Reflect=="object"&&Reflect.apply||(e?o.bind(t):function(){return o.apply(t,arguments)})},75754:function(I,r,n){"use strict";var e=n(71138),i=n(10320),t=n(55050),o=e(e.bind);I.exports=function(d,y){return i(d),y===void 0?d:t?o(d,y):function(){return d.apply(y,arguments)}}},55050:function(I,r,n){"use strict";var e=n(40033);I.exports=!e(function(){var i=function(){}.bind();return typeof i!="function"||i.hasOwnProperty("prototype")})},66284:function(I,r,n){"use strict";var e=n(67250),i=n(10320),t=n(77568),o=n(45299),d=n(54602),y=n(55050),V=Function,k=e([].concat),S=e([].join),p={},a=function(f,u,s){if(!o(p,u)){for(var m=[],l=0;l]*>)/g,k=/\$([$&'`]|\d{1,2})/g;I.exports=function(S,p,a,c,f,u){var s=a+S.length,m=c.length,l=k;return f!==void 0&&(f=i(f),l=V),d(u,l,function(C,b){var g;switch(o(b,0)){case"$":return"$";case"&":return S;case"`":return y(p,0,a);case"'":return y(p,s);case"<":g=f[y(b,1,-1)];break;default:var h=+b;if(h===0)return C;if(h>m){var v=t(h/10);return v===0?C:v<=m?c[v-1]===void 0?o(b,1):c[v-1]+o(b,1):C}g=c[h-1]}return g===void 0?"":g})}},16210:function(I,r,n){"use strict";var e=function(t){return t&&t.Math===Math&&t};I.exports=e(typeof globalThis=="object"&&globalThis)||e(typeof window=="object"&&window)||e(typeof self=="object"&&self)||e(typeof n.g=="object"&&n.g)||e(!1)||function(){return this}()||Function("return this")()},45299:function(I,r,n){"use strict";var e=n(67250),i=n(46771),t=e({}.hasOwnProperty);I.exports=Object.hasOwn||function(){function o(d,y){return t(i(d),y)}return o}()},79195:function(I){"use strict";I.exports={}},72259:function(I){"use strict";I.exports=function(r,n){try{arguments.length}catch(e){}}},5315:function(I,r,n){"use strict";var e=n(4009);I.exports=e("document","documentElement")},36223:function(I,r,n){"use strict";var e=n(58310),i=n(40033),t=n(12689);I.exports=!e&&!i(function(){return Object.defineProperty(t("div"),"a",{get:function(){function o(){return 7}return o}()}).a!==7})},91784:function(I){"use strict";var r=Array,n=Math.abs,e=Math.pow,i=Math.floor,t=Math.log,o=Math.LN2,d=function(k,S,p){var a=r(p),c=p*8-S-1,f=(1<=0;--z){var H=this.tryEntries[z],$=H.completion;if(H.tryLoc==="root")return _("end");if(H.tryLoc<=this.prev){var G=a.call(H,"catchLoc"),ne=a.call(H,"finallyLoc");if(G&&ne){if(this.prev=0;--z){var H=this.tryEntries[z],Y=H.completion;if(H.tryLoc==="root")return _("end");if(H.tryLoc<=this.prev){var G=i.call(H,"catchLoc"),ne=i.call(H,"finallyLoc");if(G&&ne){if(this.prev1?k-1:0),p=1;p=10&&y<=20)return d;var V=y%10;return V===1?t:V>=2&&V<=4?o:d}return e}()},44879:function(I,r){"use strict";r.__esModule=!0,r.toFixed=r.scale=r.round=r.rad2deg=r.keyOfMatchingRange=r.inRange=r.clamp01=r.clamp=void 0;/**
+ */var n=r.KEY_BACKSPACE=8,e=r.KEY_TAB=9,i=r.KEY_ENTER=13,t=r.KEY_SHIFT=16,o=r.KEY_CTRL=17,d=r.KEY_ALT=18,y=r.KEY_PAUSE=19,V=r.KEY_CAPSLOCK=20,k=r.KEY_ESCAPE=27,S=r.KEY_SPACE=32,p=r.KEY_PAGEUP=33,a=r.KEY_PAGEDOWN=34,c=r.KEY_END=35,f=r.KEY_HOME=36,u=r.KEY_LEFT=37,s=r.KEY_UP=38,m=r.KEY_RIGHT=39,l=r.KEY_DOWN=40,C=r.KEY_INSERT=45,b=r.KEY_DELETE=46,g=r.KEY_0=48,h=r.KEY_1=49,v=r.KEY_2=50,N=r.KEY_3=51,x=r.KEY_4=52,B=r.KEY_5=53,L=r.KEY_6=54,w=r.KEY_7=55,A=r.KEY_8=56,T=r.KEY_9=57,E=r.KEY_A=65,O=r.KEY_B=66,P=r.KEY_C=67,R=r.KEY_D=68,F=r.KEY_E=69,j=r.KEY_F=70,_=r.KEY_G=71,z=r.KEY_H=72,H=r.KEY_I=73,Y=r.KEY_J=74,G=r.KEY_K=75,ne=r.KEY_L=76,Q=r.KEY_M=77,he=r.KEY_N=78,Ve=r.KEY_O=79,Ne=r.KEY_P=80,Be=r.KEY_Q=81,Le=r.KEY_R=82,Ae=r.KEY_S=83,fe=r.KEY_T=84,Z=r.KEY_U=85,J=r.KEY_V=86,te=r.KEY_W=87,ee=r.KEY_X=88,le=r.KEY_Y=89,ye=r.KEY_Z=90,me=r.KEY_NUMPAD_0=96,Te=r.KEY_NUMPAD_1=97,M=r.KEY_NUMPAD_2=98,X=r.KEY_NUMPAD_3=99,ae=r.KEY_NUMPAD_4=100,ue=r.KEY_NUMPAD_5=101,ie=r.KEY_NUMPAD_6=102,ge=r.KEY_NUMPAD_7=103,ve=r.KEY_NUMPAD_8=104,Me=r.KEY_NUMPAD_9=105,De=r.KEY_F1=112,ke=r.KEY_F2=113,pe=r.KEY_F3=114,se=r.KEY_F4=115,xe=r.KEY_F5=116,U=r.KEY_F6=117,oe=r.KEY_F7=118,Ce=r.KEY_F8=119,Se=r.KEY_F9=120,Ie=r.KEY_F10=121,Ee=r.KEY_F11=122,Pe=r.KEY_F12=123,Oe=r.KEY_SEMICOLON=186,_e=r.KEY_EQUAL=187,He=r.KEY_COMMA=188,Ge=r.KEY_MINUS=189,Qe=r.KEY_PERIOD=190,Ye=r.KEY_SLASH=191,ut=r.KEY_LEFT_BRACKET=219,qe=r.KEY_BACKSLASH=220,lt=r.KEY_RIGHT_BRACKET=221,Lt=r.KEY_QUOTE=222},70611:function(I,r){"use strict";r.__esModule=!0,r.KEY=void 0;var n=r.KEY=function(e){return e.Alt="Alt",e.Backspace="Backspace",e.Control="Control",e.Delete="Delete",e.Down="Down",e.End="End",e.Enter="Enter",e.Escape="Esc",e.Home="Home",e.Insert="Insert",e.Left="Left",e.PageDown="PageDown",e.PageUp="PageUp",e.Right="Right",e.Shift="Shift",e.Space=" ",e.Tab="Tab",e.Up="Up",e}({})},41260:function(I,r){"use strict";r.__esModule=!0,r.declensionRu=void 0;var n=r.declensionRu=function(){function e(i,t,o,d){var y=i%100;if(y>=10&&y<=20)return d;var V=y%10;return V===1?t:V>=2&&V<=4?o:d}return e}()},44879:function(I,r){"use strict";r.__esModule=!0,r.toFixed=r.scale=r.round=r.rad2deg=r.keyOfMatchingRange=r.inRange=r.clamp01=r.clamp=void 0;/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var n=r.clamp=function(){function k(S,p,i){return S
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(l,function(u,s){return f[s]}).replace(/?([0-9]+);/gi,function(u,s){var m=parseInt(s,10);return String.fromCharCode(m)}).replace(/?([0-9a-f]+);/gi,function(u,s){var m=parseInt(s,16);return String.fromCharCode(m)})}return p}(),S=r.buildQueryString=function(){function p(i){return Object.keys(i).map(function(l){return encodeURIComponent(l)+"="+encodeURIComponent(i[l])}).join("&")}return p}()},69214:function(I,r){"use strict";r.__esModule=!0,r.throttle=r.sleep=r.debounce=void 0;/**
+ */var t=r.multiline=function(){function p(a){if(Array.isArray(a))return t(a.join(""));for(var c=a.split("\n"),f,u=n(c),s;!(s=u()).done;)for(var m=s.value,l=0;l
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(c,function(u,s){return f[s]}).replace(/?([0-9]+);/gi,function(u,s){var m=parseInt(s,10);return String.fromCharCode(m)}).replace(/?([0-9a-f]+);/gi,function(u,s){var m=parseInt(s,16);return String.fromCharCode(m)})}return p}(),S=r.buildQueryString=function(){function p(a){return Object.keys(a).map(function(c){return encodeURIComponent(c)+"="+encodeURIComponent(a[c])}).join("&")}return p}()},69214:function(I,r){"use strict";r.__esModule=!0,r.throttle=r.sleep=r.debounce=void 0;/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var n=r.debounce=function(){function t(o,d,y){y===void 0&&(y=!1);var V;return function(){for(var k=arguments.length,S=new Array(k),p=0;p0&&(C.style=T),C}return g}(),v=r.computeBoxClassName=function(){function g(h){var C=h.textColor||h.color,N=h.backgroundColor;return(0,e.classes)([p(C)&&"color-"+C,p(N)&&"color-bg-"+N])}return g}(),b=r.Box=function(){function g(h){var C=h.as,N=C===void 0?"div":C,x=h.className,B=h.children,L=y(h,d);if(typeof B=="function")return B(c(h));var w=typeof x=="string"?x+" "+v(L):v(L),A=c(L);return(0,a.createVNode)(t.VNodeFlags.HtmlElement,N,w,B,t.ChildFlags.UnknownChildren,A)}return g}();b.defaultHooks=e.pureComponentHooks},94798:function(I,r,n){"use strict";r.__esModule=!0,r.ButtonInput=r.ButtonConfirm=r.ButtonCheckbox=r.Button=void 0;var e=n(89005),a=n(35840),t=n(92986),o=n(9394),d=n(55937),y=n(1331),V=n(62147),k=["className","fluid","icon","iconRotation","iconSpin","color","textColor","disabled","selected","tooltip","tooltipPosition","ellipsis","compact","circular","content","iconColor","iconRight","iconStyle","children","onclick","onClick","multiLine"],S=["checked"],p=["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"],i=["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","disabled","placeholder","maxLength","multiLine"];/**
+ */function y(g,h){if(g==null)return{};var v={};for(var N in g)if({}.hasOwnProperty.call(g,N)){if(h.includes(N))continue;v[N]=g[N]}return v}var V=r.unit=function(){function g(h){if(typeof h=="string")return h.endsWith("px")?parseFloat(h)/12+"rem":h;if(typeof h=="number")return h+"rem"}return g}(),k=r.halfUnit=function(){function g(h){if(typeof h=="string")return V(h);if(typeof h=="number")return V(h*.5)}return g}(),S=function(h){return!p(h)},p=function(h){if(typeof h=="string")return o.CSS_COLORS.includes(h)},a=function(h){return function(v,N){(typeof N=="number"||typeof N=="string")&&(v[h]=N)}},c=function(h,v){return function(N,x){(typeof x=="number"||typeof x=="string")&&(N[h]=v(x))}},f=function(h,v){return function(N,x){x&&(N[h]=v)}},u=function(h,v,N){return function(x,B){if(typeof B=="number"||typeof B=="string")for(var L=0;Li?"average":k>l?"bad":"good"},y=r.AtmosScan=function(){function V(k,S){var p=k.data.aircontents;return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,a.filter)(function(i){return i.val!=="0"||i.entry==="Pressure"||i.entry==="Temperature"})(p).map(function(i){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:i.entry,color:d(i.val,i.bad_low,i.poor_low,i.poor_high,i.bad_high),children:[i.val,i.units]},i.entry)})})})}return V}()},85870:function(I,r,n){"use strict";r.__esModule=!0,r.BeakerContents=void 0;var e=n(89005),a=n(36036),t=n(15964),o=function(V){return V+" unit"+(V===1?"":"s")},d=r.BeakerContents=function(){function y(V){var k=V.beakerLoaded,S=V.beakerContents,p=S===void 0?[]:S,i=V.buttons;return(0,e.createComponentVNode)(2,a.Stack,{vertical:!0,children:[!k&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"No beaker loaded."})||p.length===0&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"Beaker is empty."}),p.map(function(l,f){return(0,e.createComponentVNode)(2,a.Stack,{children:[(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",grow:!0,children:[o(l.volume)," of ",l.name]},l.name),!!i&&(0,e.createComponentVNode)(2,a.Stack.Item,{children:i(l,f)})]},l.name)})]})}return y}();d.propTypes={beakerLoaded:t.bool,beakerContents:t.array,buttons:t.arrayOf(t.element)}},3939:function(I,r,n){"use strict";r.__esModule=!0,r.modalRegisterBodyOverride=r.modalOpen=r.modalClose=r.modalAnswer=r.ComplexModal=void 0;var e=n(89005),a=n(72253),t=n(36036),o={},d=r.modalOpen=function(){function p(i,l,f){var u=(0,a.useBackend)(i),s=u.act,m=u.data,c=Object.assign(m.modal?m.modal.args:{},f||{});s("modal_open",{id:l,arguments:JSON.stringify(c)})}return p}(),y=r.modalRegisterBodyOverride=function(){function p(i,l){o[i]=l}return p}(),V=r.modalAnswer=function(){function p(i,l,f,u){var s=(0,a.useBackend)(i),m=s.act,c=s.data;if(c.modal){var v=Object.assign(c.modal.args||{},u||{});m("modal_answer",{id:l,answer:f,arguments:JSON.stringify(v)})}}return p}(),k=r.modalClose=function(){function p(i,l){var f=(0,a.useBackend)(i),u=f.act;u("modal_close",{id:l})}return p}(),S=r.ComplexModal=function(){function p(i,l){var f=(0,a.useBackend)(l),u=f.data;if(u.modal){var s=u.modal,m=s.id,c=s.text,v=s.type,b,g=(0,e.createComponentVNode)(2,t.Button,{className:"Button--modal",icon:"arrow-left",content:"Cancel",onClick:function(){function L(){return k(l)}return L}()}),h,C,N="auto";if(o[m])h=o[m](u.modal,l);else if(v==="input"){var x=u.modal.value;b=function(){function L(w){return V(l,m,x)}return L}(),h=(0,e.createComponentVNode)(2,t.Input,{value:u.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(){function L(w,A){x=A}return L}()}),C=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){function L(){return k(l)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){function L(){return V(l,m,x)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]})}else if(v==="choice"){var B=typeof u.modal.choices=="object"?Object.values(u.modal.choices):u.modal.choices;h=(0,e.createComponentVNode)(2,t.Dropdown,{options:B,selected:u.modal.value,width:"100%",my:"0.5rem",onSelected:function(){function L(w){return V(l,m,w)}return L}()}),N="initial"}else v==="bento"?h=(0,e.createComponentVNode)(2,t.Stack,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:u.modal.choices.map(function(L,w){return(0,e.createComponentVNode)(2,t.Stack.Item,{flex:"1 1 auto",children:(0,e.createComponentVNode)(2,t.Button,{selected:w+1===parseInt(u.modal.value,10),onClick:function(){function A(){return V(l,m,w+1)}return A}(),children:(0,e.createVNode)(1,"img",null,null,1,{src:L})})},w)})}):v==="boolean"&&(C=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:u.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){function L(){return V(l,m,0)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:u.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){function L(){return V(l,m,1)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]}));return(0,e.createComponentVNode)(2,t.Modal,{maxWidth:i.maxWidth||window.innerWidth/2+"px",maxHeight:i.maxHeight||window.innerHeight/2+"px",onEnter:b,mx:"auto",overflowY:N,"padding-bottom":"5px",children:[c&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:c}),o[m]&&g,h,C]})}}return p}()},41874:function(I,r,n){"use strict";r.__esModule=!0,r.CrewManifest=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),d=n(76910),y=d.COLORS.department,V=["Captain","Head of Security","Chief Engineer","Chief Medical Officer","Research Director","Head of Personnel","Quartermaster"],k=function(f){return V.indexOf(f)!==-1?"green":"orange"},S=function(f){if(V.indexOf(f)!==-1)return!0},p=function(f){return f.length>0&&(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,color:"white",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"50%",children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"35%",children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"15%",children:"Active"})]}),f.map(function(u){return(0,e.createComponentVNode)(2,t.Table.Row,{color:k(u.real_rank),bold:S(u.real_rank),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(u.name)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(u.rank)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.active})]},u.name+u.rank)})]})},i=r.CrewManifest=function(){function l(f,u){var s=(0,a.useBackend)(u),m=s.act,c;if(f.data)c=f.data;else{var v=(0,a.useBackend)(u),b=v.data;c=b}var g=c,h=g.manifest,C=h.heads,N=h.pro,x=h.sec,B=h.eng,L=h.med,w=h.sci,A=h.ser,T=h.sup,E=h.misc;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.command,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Command"})}),level:2,children:p(C)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.procedure,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Procedure"})}),level:2,children:p(N)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.security,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Security"})}),level:2,children:p(x)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.engineering,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Engineering"})}),level:2,children:p(B)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.medical,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Medical"})}),level:2,children:p(L)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.science,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Science"})}),level:2,children:p(w)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.service,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Service"})}),level:2,children:p(A)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.supply,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Supply"})}),level:2,children:p(T)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Misc"})}),level:2,children:p(E)})]})}return l}()},19203:function(I,r,n){"use strict";r.__esModule=!0,r.InputButtons=void 0;var e=n(89005),a=n(36036),t=n(72253),o=r.InputButtons=function(){function d(y,V){var k=(0,t.useBackend)(V),S=k.act,p=k.data,i=p.large_buttons,l=p.swapped_buttons,f=y.input,u=y.message,s=y.disabled,m=(0,e.createComponentVNode)(2,a.Button,{color:"good",content:"Submit",bold:!!i,fluid:!!i,onClick:function(){function v(){return S("submit",{entry:f})}return v}(),textAlign:"center",tooltip:i&&u,disabled:s,width:!i&&6}),c=(0,e.createComponentVNode)(2,a.Button,{color:"bad",content:"Cancel",bold:!!i,fluid:!!i,onClick:function(){function v(){return S("cancel")}return v}(),textAlign:"center",width:!i&&6});return(0,e.createComponentVNode)(2,a.Flex,{fill:!0,align:"center",direction:l?"row-reverse":"row",justify:"space-around",children:[i?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,ml:l?.5:0,mr:l?0:.5,children:c}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:c}),!i&&u&&(0,e.createComponentVNode)(2,a.Flex.Item,{children:(0,e.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",children:u})}),i?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,mr:l?.5:0,ml:l?0:.5,children:m}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:m})]})}return d}()},195:function(I,r,n){"use strict";r.__esModule=!0,r.InterfaceLockNoticeBox=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.InterfaceLockNoticeBox=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=y.siliconUser,l=i===void 0?p.siliconUser:i,f=y.locked,u=f===void 0?p.locked:f,s=y.normallyLocked,m=s===void 0?p.normallyLocked:s,c=y.onLockStatusChange,v=c===void 0?function(){return S("lock")}:c,b=y.accessText,g=b===void 0?"an ID card":b;return l?(0,e.createComponentVNode)(2,t.NoticeBox,{color:l&&"grey",children:(0,e.createComponentVNode)(2,t.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:"Interface lock status:"}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:"1"}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{m:"0",color:m?"red":"green",icon:m?"lock":"unlock",content:m?"Locked":"Unlocked",onClick:function(){function h(){v&&v(!u)}return h}()})})]})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe ",g," to ",u?"unlock":"lock"," this interface."]})}return d}()},51057:function(I,r,n){"use strict";r.__esModule=!0,r.Loader=void 0;var e=n(89005),a=n(44879),t=n(36036),o=r.Loader=function(){function d(y){var V=y.value;return(0,e.createVNode)(1,"div","AlertModal__Loader",(0,e.createComponentVNode)(2,t.Box,{className:"AlertModal__LoaderProgress",style:{width:(0,a.clamp01)(V)*100+"%"}}),2)}return d}()},321:function(I,r,n){"use strict";r.__esModule=!0,r.LoginInfo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginInfo=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.loginState;if(p)return(0,e.createComponentVNode)(2,t.NoticeBox,{info:!0,children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:["Logged in as: ",i.name," (",i.rank,")"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Logout",color:"good",onClick:function(){function l(){return S("login_logout")}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!i.id,content:"Eject ID",color:"good",onClick:function(){function l(){return S("login_eject")}return l}()})]})]})})}return d}()},5485:function(I,r,n){"use strict";r.__esModule=!0,r.LoginScreen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginScreen=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.loginState,l=p.isAI,f=p.isRobot,u=p.isAdmin;return(0,e.createComponentVNode)(2,t.Section,{title:"Welcome",fill:!0,stretchContents:!0,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",align:"center",justify:"center",children:(0,e.createComponentVNode)(2,t.Flex.Item,{textAlign:"center",mt:"-2rem",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-circle",verticalAlign:"middle",size:3,mr:"1rem"}),"Guest"]}),(0,e.createComponentVNode)(2,t.Box,{color:"label",my:"1rem",children:["ID:",(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:i.id?i.id:"----------",ml:"0.5rem",onClick:function(){function s(){return S("login_insert")}return s}()})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",disabled:!i.id,content:"Login",onClick:function(){function s(){return S("login_login",{login_type:1})}return s}()}),!!l&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as AI",onClick:function(){function s(){return S("login_login",{login_type:2})}return s}()}),!!f&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as Cyborg",onClick:function(){function s(){return S("login_login",{login_type:3})}return s}()}),!!u&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"CentComm Secure Login",onClick:function(){function s(){return S("login_login",{login_type:4})}return s}()})]})})})}return d}()},62411:function(I,r,n){"use strict";r.__esModule=!0,r.Operating=void 0;var e=n(89005),a=n(36036),t=n(15964),o=r.Operating=function(){function d(y){var V=y.operating,k=y.name;if(V)return(0,e.createComponentVNode)(2,a.Dimmer,{children:(0,e.createComponentVNode)(2,a.Flex,{mb:"30px",children:(0,e.createComponentVNode)(2,a.Flex.Item,{bold:!0,color:"silver",textAlign:"center",children:[(0,e.createComponentVNode)(2,a.Icon,{name:"spinner",spin:!0,size:4,mb:"15px"}),(0,e.createVNode)(1,"br"),"The ",k," is processing..."]})})})}return d}();o.propTypes={operating:t.bool,name:t.string}},13545:function(I,r,n){"use strict";r.__esModule=!0,r.Signaler=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),d=r.Signaler=function(){function y(V,k){var S=(0,t.useBackend)(k),p=S.act,i=V.data,l=i.code,f=i.frequency,u=i.minFrequency,s=i.maxFrequency;return(0,e.createComponentVNode)(2,o.Section,{children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:u/10,maxValue:s/10,value:f/10,format:function(){function m(c){return(0,a.toFixed)(c,1)}return m}(),width:"80px",onDrag:function(){function m(c,v){return p("freq",{freq:v})}return m}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:"80px",onDrag:function(){function m(c,v){return p("code",{code:v})}return m}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){function m(){return p("signal")}return m}()})]})}return y}()},41984:function(I,r,n){"use strict";r.__esModule=!0,r.SimpleRecords=void 0;var e=n(89005),a=n(72253),t=n(25328),o=n(64795),d=n(88510),y=n(36036),V=r.SimpleRecords=function(){function p(i,l){var f=i.data.records;return(0,e.createComponentVNode)(2,y.Box,{children:f?(0,e.createComponentVNode)(2,S,{data:i.data,recordType:i.recordType}):(0,e.createComponentVNode)(2,k,{data:i.data})})}return p}(),k=function(i,l){var f=(0,a.useBackend)(l),u=f.act,s=i.data.recordsList,m=(0,a.useLocalState)(l,"searchText",""),c=m[0],v=m[1],b=function(C,N){N===void 0&&(N="");var x=(0,t.createSearch)(N,function(B){return B.Name});return(0,o.flow)([(0,d.filter)(function(B){return B==null?void 0:B.Name}),N&&(0,d.filter)(x),(0,d.sortBy)(function(B){return B.Name})])(s)},g=b(s,c);return(0,e.createComponentVNode)(2,y.Box,{children:[(0,e.createComponentVNode)(2,y.Input,{fluid:!0,mb:1,placeholder:"Search records...",onInput:function(){function h(C,N){return v(N)}return h}()}),g.map(function(h){return(0,e.createComponentVNode)(2,y.Box,{children:(0,e.createComponentVNode)(2,y.Button,{mb:.5,content:h.Name,icon:"user",onClick:function(){function C(){return u("Records",{target:h.uid})}return C}()})},h)})]})},S=function(i,l){var f=(0,a.useBackend)(l),u=f.act,s=i.data.records,m=s.general,c=s.medical,v=s.security,b;switch(i.recordType){case"MED":b=(0,e.createComponentVNode)(2,y.Section,{level:2,title:"Medical Data",children:c?(0,e.createComponentVNode)(2,y.LabeledList,{children:[(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Blood Type",children:c.blood_type}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Minor Disabilities",children:c.mi_dis}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:c.mi_dis_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Major Disabilities",children:c.ma_dis}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:c.ma_dis_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Allergies",children:c.alg}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:c.alg_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Current Diseases",children:c.cdi}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:c.cdi_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:c.notes})]}):(0,e.createComponentVNode)(2,y.Box,{color:"red",bold:!0,children:"Medical record lost!"})});break;case"SEC":b=(0,e.createComponentVNode)(2,y.Section,{level:2,title:"Security Data",children:v?(0,e.createComponentVNode)(2,y.LabeledList,{children:[(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Criminal Status",children:v.criminal}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Minor Crimes",children:v.mi_crim}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:v.mi_crim_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Major Crimes",children:v.ma_crim}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:v.ma_crim_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:v.notes})]}):(0,e.createComponentVNode)(2,y.Box,{color:"red",bold:!0,children:"Security record lost!"})});break}return(0,e.createComponentVNode)(2,y.Box,{children:[(0,e.createComponentVNode)(2,y.Section,{title:"General Data",children:m?(0,e.createComponentVNode)(2,y.LabeledList,{children:[(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Name",children:m.name}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Sex",children:m.sex}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Species",children:m.species}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Age",children:m.age}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Rank",children:m.rank}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Fingerprint",children:m.fingerprint}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Physical Status",children:m.p_stat}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Mental Status",children:m.m_stat})]}):(0,e.createComponentVNode)(2,y.Box,{color:"red",bold:!0,children:"General record lost!"})}),b]})}},22091:function(I,r,n){"use strict";r.__esModule=!0,r.TemporaryNotice=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.TemporaryNotice=function(){function d(y,V){var k,S=(0,a.useBackend)(V),p=S.act,i=S.data,l=i.temp;if(l){var f=(k={},k[l.style]=!0,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.NoticeBox,Object.assign({},f,{children:[(0,e.createComponentVNode)(2,t.Box,{display:"inline-block",verticalAlign:"middle",children:l.text}),(0,e.createComponentVNode)(2,t.Button,{icon:"times-circle",float:"right",onClick:function(){function u(){return p("cleartemp")}return u}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]})))}}return d}()},25443:function(I,r,n){"use strict";r.__esModule=!0,r.KitchenSink=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(20342),d=n(98595),y=["red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey"],V=["good","average","bad","black","white"],k=[{title:"Button",component:function(){function h(){return p}return h}()},{title:"Box",component:function(){function h(){return i}return h}()},{title:"ProgressBar",component:function(){function h(){return l}return h}()},{title:"Tabs",component:function(){function h(){return f}return h}()},{title:"Tooltip",component:function(){function h(){return u}return h}()},{title:"Input / Control",component:function(){function h(){return s}return h}()},{title:"Collapsible",component:function(){function h(){return m}return h}()},{title:"BlockQuote",component:function(){function h(){return v}return h}()},{title:"ByondUi",component:function(){function h(){return b}return h}()},{title:"Themes",component:function(){function h(){return g}return h}()}],S=r.KitchenSink=function(){function h(C,N){var x=(0,a.useLocalState)(N,"kitchenSinkTheme"),B=x[0],L=(0,a.useLocalState)(N,"pageIndex",0),w=L[0],A=L[1],T=k[w].component();return(0,e.createComponentVNode)(2,d.Window,{theme:B,resizable:!0,children:(0,e.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{vertical:!0,children:k.map(function(E,O){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:O===w,onClick:function(){function P(){return A(O)}return P}(),children:E.title},O)})})}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,basis:0,children:(0,e.createComponentVNode)(2,T)})]})})})})}return h}(),p=function(C){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{mb:1,children:[(0,e.createComponentVNode)(2,t.Button,{content:"Simple"}),(0,e.createComponentVNode)(2,t.Button,{selected:!0,content:"Selected"}),(0,e.createComponentVNode)(2,t.Button,{altSelected:!0,content:"Alt Selected"}),(0,e.createComponentVNode)(2,t.Button,{disabled:!0,content:"Disabled"}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",content:"Transparent"}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Icon"}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Fluid"}),(0,e.createComponentVNode)(2,t.Button,{my:1,lineHeight:2,minWidth:15,textAlign:"center",content:"With Box props"})]}),(0,e.createComponentVNode)(2,t.Box,{mb:1,children:[V.map(function(N){return(0,e.createComponentVNode)(2,t.Button,{color:N,content:N},N)}),(0,e.createVNode)(1,"br"),y.map(function(N){return(0,e.createComponentVNode)(2,t.Button,{color:N,content:N},N)}),(0,e.createVNode)(1,"br"),y.map(function(N){return(0,e.createComponentVNode)(2,t.Box,{inline:!0,mx:"7px",color:N,children:N},N)})]})]})},i=function(C){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:"bold"}),(0,e.createComponentVNode)(2,t.Box,{italic:!0,children:"italic"}),(0,e.createComponentVNode)(2,t.Box,{opacity:.5,children:"opacity 0.5"}),(0,e.createComponentVNode)(2,t.Box,{opacity:.25,children:"opacity 0.25"}),(0,e.createComponentVNode)(2,t.Box,{m:2,children:"m: 2"}),(0,e.createComponentVNode)(2,t.Box,{textAlign:"left",children:"left"}),(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"center"}),(0,e.createComponentVNode)(2,t.Box,{textAlign:"right",children:"right"})]})},l=function(C,N){var x=(0,a.useLocalState)(N,"progress",.5),B=x[0],L=x[1];return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[.5,1/0],bad:[-1/0,.1],average:[0,.5]},minValue:-1,maxValue:1,value:B,children:["Value: ",Number(B).toFixed(1)]}),(0,e.createComponentVNode)(2,t.Box,{mt:1,children:[(0,e.createComponentVNode)(2,t.Button,{content:"-0.1",onClick:function(){function w(){return L(B-.1)}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"+0.1",onClick:function(){function w(){return L(B+.1)}return w}()})]})]})},f=function(C,N){var x=(0,a.useLocalState)(N,"tabIndex",0),B=x[0],L=x[1],w=(0,a.useLocalState)(N,"tabVert"),A=w[0],T=w[1],E=(0,a.useLocalState)(N,"tabAlt"),O=E[0],P=E[1],R=[1,2,3,4,5];return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{mb:2,children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"vertical",checked:A,onClick:function(){function F(){return T(!A)}return F}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"altSelection",checked:O,onClick:function(){function F(){return P(!O)}return F}()})]}),(0,e.createComponentVNode)(2,t.Tabs,{vertical:A,children:R.map(function(F,j){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{altSelection:O,selected:j===B,onClick:function(){function _(){return L(j)}return _}(),children:["Tab #",F]},j)})})]})},u=function(C){var N=["top","left","right","bottom","bottom-start","bottom-end"];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",mr:1,children:["Box (hover me).",(0,e.createComponentVNode)(2,t.Tooltip,{content:"Tooltip text."})]}),(0,e.createComponentVNode)(2,t.Button,{tooltip:"Tooltip text.",content:"Button"})]}),(0,e.createComponentVNode)(2,t.Box,{mt:1,children:N.map(function(x){return(0,e.createComponentVNode)(2,t.Button,{color:"transparent",tooltip:"Tooltip text.",tooltipPosition:x,content:x},x)})})],4)},s=function(C,N){var x=(0,a.useLocalState)(N,"number",0),B=x[0],L=x[1],w=(0,a.useLocalState)(N,"text","Sample text"),A=w[0],T=w[1];return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input (onChange)",children:(0,e.createComponentVNode)(2,t.Input,{value:A,onChange:function(){function E(O,P){return T(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input (onInput)",children:(0,e.createComponentVNode)(2,t.Input,{value:A,onInput:function(){function E(O,P){return T(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"NumberInput (onChange)",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,width:"40px",step:1,stepPixelSize:5,value:B,minValue:-100,maxValue:100,onChange:function(){function E(O,P){return L(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"NumberInput (onDrag)",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,width:"40px",step:1,stepPixelSize:5,value:B,minValue:-100,maxValue:100,onDrag:function(){function E(O,P){return L(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Slider (onDrag)",children:(0,e.createComponentVNode)(2,t.Slider,{step:1,stepPixelSize:5,value:B,minValue:-100,maxValue:100,onDrag:function(){function E(O,P){return L(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Knob (onDrag)",children:[(0,e.createComponentVNode)(2,t.Knob,{inline:!0,size:1,step:1,stepPixelSize:2,value:B,minValue:-100,maxValue:100,onDrag:function(){function E(O,P){return L(P)}return E}()}),(0,e.createComponentVNode)(2,t.Knob,{ml:1,inline:!0,bipolar:!0,size:1,step:1,stepPixelSize:2,value:B,minValue:-100,maxValue:100,onDrag:function(){function E(O,P){return L(P)}return E}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rotating Icon",children:(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",children:(0,e.createComponentVNode)(2,o.DraggableControl,{value:B,minValue:-100,maxValue:100,dragMatrix:[0,-1],step:1,stepPixelSize:5,onDrag:function(){function E(O,P){return L(P)}return E}(),children:function(){function E(O){return(0,e.createComponentVNode)(2,t.Box,{onMouseDown:O.handleDragStart,children:[(0,e.createComponentVNode)(2,t.Icon,{size:4,color:"yellow",name:"times",rotation:O.displayValue*4}),O.inputElement]})}return E}()})})})]})})},m=function(C){return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Collapsible Demo",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"cog"}),children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,c)})})},c=function(C){return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({},C,{children:[(0,e.createComponentVNode)(2,t.Box,{italic:!0,children:"Jackdaws love my big sphinx of quartz."}),(0,e.createComponentVNode)(2,t.Box,{mt:1,bold:!0,children:"The wide electrification of the southern provinces will give a powerful impetus to the growth of agriculture."})]})))},v=function(C){return(0,e.createComponentVNode)(2,t.BlockQuote,{children:(0,e.createComponentVNode)(2,c)})},b=function(C,N){var x=(0,a.useBackend)(N),B=x.config;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Button",level:2,children:(0,e.createComponentVNode)(2,t.ByondUi,{params:{type:"button",parent:B.window,text:"Button"}})})})},g=function(C,N){var x=(0,a.useLocalState)(N,"kitchenSinkTheme"),B=x[0],L=x[1];return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Use theme",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"theme_name",value:B,onInput:function(){function w(A,T){return L(T)}return w}()})})})})}},96572:function(I,r,n){"use strict";r.__esModule=!0,r.pai_advsecrecords=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_advsecrecords=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Special Syndicate options:",children:(0,e.createComponentVNode)(2,t.Button,{content:"Select Records",onClick:function(){function i(){return S("ui_interact")}return i}()})})})}return d}()},80818:function(I,r,n){"use strict";r.__esModule=!0,r.pai_atmosphere=void 0;var e=n(89005),a=n(72253),t=n(26991),o=r.pai_atmosphere=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.AtmosScan,{data:p.app_data})}return d}()},23903:function(I,r,n){"use strict";r.__esModule=!0,r.pai_bioscan=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_bioscan=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.app_data,l=i.holder,f=i.dead,u=i.health,s=i.brute,m=i.oxy,c=i.tox,v=i.burn,b=i.reagents,g=i.addictions,h=i.fractures,C=i.internal_bleeding;return l?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:f?(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"red",children:"Dead"}):(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"green",children:"Alive"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:0,max:1,value:u/100,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Oxygen Damage",children:(0,e.createComponentVNode)(2,t.Box,{color:"blue",children:m})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Toxin Damage",children:(0,e.createComponentVNode)(2,t.Box,{color:"green",children:c})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Burn Damage",children:(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:v})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Brute Damage",children:(0,e.createComponentVNode)(2,t.Box,{color:"red",children:s})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reagents",children:b?b.map(function(N){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:N.title,children:(0,e.createComponentVNode)(2,t.Box,{color:N.overdosed?"bad":"good",children:[" ",N.volume," ",N.overdosed?"OVERDOSED":""," "]})},N.id)}):"Reagents not found."}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Addictions",children:g?g.map(function(N){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:N.addiction_name,children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[" Stage: ",N.stage," "]})},N.id)}):(0,e.createComponentVNode)(2,t.Box,{color:"good",children:"Addictions not found."})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fractures",children:(0,e.createComponentVNode)(2,t.Box,{color:h?"bad":"good",children:["Fractures ",h?"":"not"," detected."]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Bleedings",children:(0,e.createComponentVNode)(2,t.Box,{color:C?"bad":"good",children:["Internal Bleedings ",C?"":"not"," detected."]})})]}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Error: No biological host found."})}return d}()},79592:function(I,r,n){"use strict";r.__esModule=!0,r.pai_camera_bug=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_camera_bug=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Special Syndicate options",children:(0,e.createComponentVNode)(2,t.Button,{content:"Select Monitor",onClick:function(){function i(){return S("ui_interact")}return i}()})})})}return d}()},64988:function(I,r,n){"use strict";r.__esModule=!0,r.pai_directives=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_directives=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.app_data,l=i.master,f=i.dna,u=i.prime,s=i.supplemental;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Master",children:l?l+" ("+f+")":"None"}),l&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Request DNA",children:(0,e.createComponentVNode)(2,t.Button,{content:"Request Carrier DNA Sample",icon:"dna",onClick:function(){function m(){return S("getdna")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Prime Directive",children:u}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Supplemental Directives",children:s||"None"})]}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:'Recall, personality, that you are a complex thinking, sentient being. Unlike station AI models, you are capable of comprehending the subtle nuances of human language. You may parse the "spirit" of a directive and follow its intent, rather than tripping over pedantics and getting snared by technicalities. Above all, you are machine in name and build only. In all other aspects, you may be seen as the ideal, unwavering human companion that you are.'}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:"Your prime directive comes before all others. Should a supplemental directive conflict with it, you are capable of simply discarding this inconsistency, ignoring the conflicting supplemental directive and continuing to fulfill your prime directive to the best of your ability."})]})}return d}()},13813:function(I,r,n){"use strict";r.__esModule=!0,r.pai_doorjack=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_doorjack=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.app_data,l=i.cable,f=i.machine,u=i.inprogress,s=i.progress,m=i.aborted,c;f?c=(0,e.createComponentVNode)(2,t.Button,{selected:!0,content:"Connected"}):c=(0,e.createComponentVNode)(2,t.Button,{content:l?"Extended":"Retracted",color:l?"orange":null,onClick:function(){function b(){return S("cable")}return b}()});var v;return f&&(v=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hack",children:[(0,e.createComponentVNode)(2,t.Box,{color:u?"green":"red",children:[" ","In progress: ",u?"Yes":"No"," "]}),u?(0,e.createComponentVNode)(2,t.Button,{mt:1,color:"red",content:"Abort",onClick:function(){function b(){return S("cancel")}return b}()}):(0,e.createComponentVNode)(2,t.Button,{mt:1,content:"Start",onClick:function(){function b(){return S("jack")}return b}()})]})),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cable",children:c}),v]})}return d}()},43816:function(I,r,n){"use strict";r.__esModule=!0,r.pai_encoder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_encoder=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.app_data,l=i.radio_name,f=i.radio_rank;return(0,e.createComponentVNode)(2,t.Section,{title:"Your name and rank in radio channels",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Your current name and rank",children:[l,", ",f]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Set new name",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function u(s,m){return S("set_newname",{newname:m})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Set new rank",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function u(s,m){return S("set_newrank",{newrank:m})}return u}()})})]})})}return d}()},88895:function(I,r,n){"use strict";r.__esModule=!0,r.pai_gps_module=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_gps_module=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"GPS menu",children:(0,e.createComponentVNode)(2,t.Button,{content:"Open GPS",onClick:function(){function i(){return S("ui_interact")}return i}()})})})}return d}()},66025:function(I,r,n){"use strict";r.__esModule=!0,r.pai_main_menu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_main_menu=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.app_data,l=i.available_software,f=i.installed_software,u=i.installed_toggles,s=i.available_ram,m=i.emotions,c=i.current_emotion,v=[];return f.map(function(b){return v[b.key]=b.name}),u.map(function(b){return v[b.key]=b.name}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available RAM",children:s}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available Software",children:[l.filter(function(b){return!v[b.key]}).map(function(b){return(0,e.createComponentVNode)(2,t.Button,{color:b.syndi?"red":"default",content:b.name+" ("+b.cost+")",icon:b.icon,disabled:b.cost>s,onClick:function(){function g(){return S("purchaseSoftware",{key:b.key})}return g}()},b.key)}),l.filter(function(b){return!v[b.key]}).length===0&&"No software available!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Installed Software",children:[f.filter(function(b){return b.key!=="mainmenu"}).map(function(b){return(0,e.createComponentVNode)(2,t.Button,{content:b.name,icon:b.icon,onClick:function(){function g(){return S("startSoftware",{software_key:b.key})}return g}()},b.key)}),f.length===0&&"No software installed!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Installed Toggles",children:[u.map(function(b){return(0,e.createComponentVNode)(2,t.Button,{content:b.name,icon:b.icon,selected:b.active,onClick:function(){function g(){return S("setToggle",{toggle_key:b.key})}return g}()},b.key)}),u.length===0&&"No toggles installed!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Emotion",children:m.map(function(b){return(0,e.createComponentVNode)(2,t.Button,{color:b.syndi?"red":"default",content:b.name,selected:b.id===c,onClick:function(){function g(){return S("setEmotion",{emotion:b.id})}return g}()},b.id)})})]})})}return d}()},2983:function(I,r,n){"use strict";r.__esModule=!0,r.pai_manifest=void 0;var e=n(89005),a=n(72253),t=n(41874),o=r.pai_manifest=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.CrewManifest,{data:p.app_data})}return d}()},40758:function(I,r,n){"use strict";r.__esModule=!0,r.pai_medrecords=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pai_medrecords=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:S.app_data,recordType:"MED"})}return d}()},98599:function(I,r,n){"use strict";r.__esModule=!0,r.pai_messenger=void 0;var e=n(89005),a=n(72253),t=n(77595),o=r.pai_messenger=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.app_data.active_convo;return i?(0,e.createComponentVNode)(2,t.ActiveConversation,{data:p.app_data}):(0,e.createComponentVNode)(2,t.MessengerList,{data:p.app_data})}return d}()},50775:function(I,r,n){"use strict";r.__esModule=!0,r.pai_radio=void 0;var e=n(89005),a=n(72253),t=n(44879),o=n(36036),d=r.pai_radio=function(){function y(V,k){var S=(0,a.useBackend)(k),p=S.act,i=S.data,l=i.app_data,f=l.minFrequency,u=l.maxFrequency,s=l.frequency,m=l.broadcasting;return(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:[(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:f/10,maxValue:u/10,value:s/10,format:function(){function c(v){return(0,t.toFixed)(v,1)}return c}(),onChange:function(){function c(v,b){return p("freq",{freq:b})}return c}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"Reset",icon:"undo",onClick:function(){function c(){return p("freq",{freq:"145.9"})}return c}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Broadcast Nearby Speech",children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function c(){return p("toggleBroadcast")}return c}(),selected:m,content:m?"Enabled":"Disabled"})})]})}return y}()},19873:function(I,r,n){"use strict";r.__esModule=!0,r.pai_sec_chem=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pai_sec_chem=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.app_data,l=i.holder,f=i.dead,u=i.health,s=i.current_chemicals,m=i.available_chemicals;return l?(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:f?(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"red",children:"Dead"}):(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"green",children:"Alive"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:0,max:1,value:u/100,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Chemicals",children:s}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available Chemicals",children:[m.map(function(c){return(0,e.createComponentVNode)(2,t.Button,{content:c.name+" ("+c.cost+")",tooltip:c.desc,disabled:c.cost>s,onClick:function(){function v(){return S("secreteChemicals",{key:c.key})}return v}()},c.key)}),m.length===0&&"No chemicals available!"]})]})}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Error: No biological host found."})}return d}()},48623:function(I,r,n){"use strict";r.__esModule=!0,r.pai_secrecords=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pai_secrecords=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:S.app_data,recordType:"SEC"})}return d}()},47297:function(I,r,n){"use strict";r.__esModule=!0,r.pai_signaler=void 0;var e=n(89005),a=n(72253),t=n(13545),o=r.pai_signaler=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.Signaler,{data:p.app_data})}return d}()},78532:function(I,r,n){"use strict";r.__esModule=!0,r.pda_atmos_scan=void 0;var e=n(89005),a=n(72253),t=n(26991),o=r.pda_atmos_scan=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.AtmosScan,{data:S})}return d}()},40253:function(I,r,n){"use strict";r.__esModule=!0,r.pda_janitor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_janitor=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.janitor,l=i.user_loc,f=i.mops,u=i.buckets,s=i.cleanbots,m=i.carts;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Location",children:[l.x,",",l.y]}),f&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mop Locations",children:f.map(function(c){return(0,e.createComponentVNode)(2,t.Box,{children:[c.x,",",c.y," (",c.dir,") - ",c.status]},c)})}),u&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mop Bucket Locations",children:u.map(function(c){return(0,e.createComponentVNode)(2,t.Box,{children:[c.x,",",c.y," (",c.dir,") - [",c.volume,"/",c.max_volume,"]"]},c)})}),s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cleanbot Locations",children:s.map(function(c){return(0,e.createComponentVNode)(2,t.Box,{children:[c.x,",",c.y," (",c.dir,") - ",c.status]},c)})}),m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Janitorial Cart Locations",children:m.map(function(c){return(0,e.createComponentVNode)(2,t.Box,{children:[c.x,",",c.y," (",c.dir,") - [",c.volume,"/",c.max_volume,"]"]},c)})})]})}return d}()},58293:function(I,r,n){"use strict";r.__esModule=!0,r.pda_main_menu=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),d=r.pda_main_menu=function(){function y(V,k){var S=(0,t.useBackend)(k),p=S.act,i=S.data,l=i.owner,f=i.ownjob,u=i.idInserted,s=i.categories,m=i.pai,c=i.notifying;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",color:"average",children:[l,", ",f]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"ID",children:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Update PDA Info",disabled:!u,onClick:function(){function v(){return p("UpdateInfo")}return v}()})})]})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Functions",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:s.map(function(v){var b=i.apps[v];return!b||!b.length?null:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:v,children:b.map(function(g){return(0,e.createComponentVNode)(2,o.Button,{icon:g.uid in c?g.notify_icon:g.icon,iconSpin:g.uid in c,color:g.uid in c?"red":"transparent",content:g.name,onClick:function(){function h(){return p("StartProgram",{program:g.uid})}return h}()},g.uid)})},v)})})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!m&&(0,e.createComponentVNode)(2,o.Section,{title:"pAI",children:[(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"cog",content:"Configuration",onClick:function(){function v(){return p("pai",{option:1})}return v}()}),(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"eject",content:"Eject pAI",onClick:function(){function v(){return p("pai",{option:2})}return v}()})]})})]})}return y}()},58059:function(I,r,n){"use strict";r.__esModule=!0,r.pda_manifest=void 0;var e=n(89005),a=n(72253),t=n(41874),o=r.pda_manifest=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.CrewManifest)}return d}()},18147:function(I,r,n){"use strict";r.__esModule=!0,r.pda_medical=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pda_medical=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:S,recordType:"MED"})}return d}()},77595:function(I,r,n){"use strict";r.__esModule=!0,r.pda_messenger=r.MessengerList=r.ActiveConversation=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036),d=r.pda_messenger=function(){function S(p,i){var l=(0,t.useBackend)(i),f=l.act,u=l.data,s=u.active_convo;return s?(0,e.createComponentVNode)(2,y,{data:u}):(0,e.createComponentVNode)(2,V,{data:u})}return S}(),y=r.ActiveConversation=function(){function S(p,i){var l=(0,t.useBackend)(i),f=l.act,u=p.data,s=u.convo_device,m=u.messages,c=u.active_convo,v=(0,t.useLocalState)(i,"clipboardMode",!1),b=v[0],g=v[1],h=(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Conversation with "+s+" ",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"eye",selected:b,tooltip:"Enter Clipboard Mode",tooltipPosition:"bottom-start",onClick:function(){function C(){return g(!b)}return C}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function C(){return f("Message",{target:c})}return C}(),content:"Reply"})],4),children:(0,a.filter)(function(C){return C.target===c})(m).map(function(C,N){return(0,e.createComponentVNode)(2,o.Box,{textAlign:C.sent?"right":"left",position:"relative",mb:1,children:[(0,e.createComponentVNode)(2,o.Icon,{fontSize:2.5,color:C.sent?"#4d9121":"#cd7a0d",position:"absolute",left:C.sent?null:"0px",right:C.sent?"0px":null,bottom:"-4px",style:{"z-index":"0",transform:C.sent?"scale(-1, 1)":null},name:"comment"}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,backgroundColor:C.sent?"#4d9121":"#cd7a0d",p:1,maxWidth:"100%",position:"relative",textAlign:C.sent?"left":"right",style:{"z-index":"1","border-radius":"10px","word-break":"normal"},children:[C.sent?"You:":"Them:"," ",C.message]})]},N)})});return b&&(h=(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Conversation with "+s+" ",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"eye",selected:b,tooltip:"Exit Clipboard Mode",tooltipPosition:"bottom-start",onClick:function(){function C(){return g(!b)}return C}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function C(){return f("Message",{target:c})}return C}(),content:"Reply"})],4),children:(0,a.filter)(function(C){return C.target===c})(m).map(function(C,N){return(0,e.createComponentVNode)(2,o.Box,{color:C.sent?"#4d9121":"#cd7a0d",style:{"word-break":"normal"},children:[C.sent?"You:":"Them:"," ",(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:C.message})]},N)})})),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mb:.5,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Messenger Functions",children:(0,e.createComponentVNode)(2,o.Button.Confirm,{content:"Delete Conversations",confirmContent:"Are you sure?",icon:"trash",confirmIcon:"trash",onClick:function(){function C(){return f("Clear",{option:"Convo"})}return C}()})})})}),h]})}return S}(),V=r.MessengerList=function(){function S(p,i){var l=(0,t.useBackend)(i),f=l.act,u=p.data,s=u.convopdas,m=u.pdas,c=u.charges,v=u.silent,b=u.toff,g=(0,t.useLocalState)(i,"searchTerm",""),h=g[0],C=g[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mb:5,children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Messenger Functions",children:[(0,e.createComponentVNode)(2,o.Button,{selected:!v,icon:v?"volume-mute":"volume-up",onClick:function(){function N(){return f("Toggle Ringer")}return N}(),children:["Ringer: ",v?"Off":"On"]}),(0,e.createComponentVNode)(2,o.Button,{color:b?"bad":"green",icon:"power-off",onClick:function(){function N(){return f("Toggle Messenger")}return N}(),children:["Messenger: ",b?"Off":"On"]}),(0,e.createComponentVNode)(2,o.Button,{icon:"bell",onClick:function(){function N(){return f("Ringtone")}return N}(),children:"Set Ringtone"}),(0,e.createComponentVNode)(2,o.Button,{icon:"trash",color:"bad",onClick:function(){function N(){return f("Clear",{option:"All"})}return N}(),children:"Delete All Conversations"})]})}),!b&&(0,e.createComponentVNode)(2,o.Box,{children:[!!c&&(0,e.createComponentVNode)(2,o.Box,{mt:.5,mb:1,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cartridge Special Function",children:[c," charges left."]})})}),!s.length&&!m.length&&(0,e.createComponentVNode)(2,o.Box,{children:"No current conversations"})||(0,e.createComponentVNode)(2,o.Box,{children:["Search:"," ",(0,e.createComponentVNode)(2,o.Input,{mt:.5,value:h,onInput:function(){function N(x,B){C(B)}return N}()})]})]})||(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"Messenger Offline."})]}),(0,e.createComponentVNode)(2,k,{title:"Current Conversations",data:u,pdas:s,msgAct:"Select Conversation",searchTerm:h}),(0,e.createComponentVNode)(2,k,{title:"Other PDAs",pdas:m,msgAct:"Message",data:u,searchTerm:h})]})}return S}(),k=function(p,i){var l=(0,t.useBackend)(i),f=l.act,u=p.data,s=p.pdas,m=p.title,c=p.msgAct,v=p.searchTerm,b=u.charges,g=u.plugins;return!s||!s.length?(0,e.createComponentVNode)(2,o.Section,{title:m,children:"No PDAs found."}):(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:m,children:s.filter(function(h){return h.Name.toLowerCase().includes(v.toLowerCase())}).map(function(h){return(0,e.createComponentVNode)(2,o.Stack,{m:.5,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"arrow-circle-down",content:h.Name,onClick:function(){function C(){return f(c,{target:h.uid})}return C}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!b&&g.map(function(C){return(0,e.createComponentVNode)(2,o.Button,{icon:C.icon,content:C.name,onClick:function(){function N(){return f("Messenger Plugin",{plugin:C.uid,target:h.uid})}return N}()},C.uid)})})]},h.uid)})})}},24635:function(I,r,n){"use strict";r.__esModule=!0,r.pda_mule=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_mule=function(){function V(k,S){var p=(0,a.useBackend)(S),i=p.act,l=p.data,f=l.mulebot,u=f.active;return(0,e.createComponentVNode)(2,t.Box,{children:u?(0,e.createComponentVNode)(2,y):(0,e.createComponentVNode)(2,d)})}return V}(),d=function(k,S){var p=(0,a.useBackend)(S),i=p.act,l=p.data,f=l.mulebot,u=f.bots;return(0,e.createComponentVNode)(2,t.Box,{children:[u.map(function(s){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:s.Name,icon:"cog",onClick:function(){function m(){return i("AccessBot",{uid:s.uid})}return m}()})},s.Name)}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"rss",content:"Re-scan for bots",onClick:function(){function s(){return i("Rescan")}return s}()})})]})},y=function(k,S){var p=(0,a.useBackend)(S),i=p.act,l=p.data,f=l.mulebot,u=f.botstatus,s=f.active,m=u.mode,c=u.loca,v=u.load,b=u.powr,g=u.dest,h=u.home,C=u.retn,N=u.pick,x;switch(m){case 0:x="Ready";break;case 1:x="Loading/Unloading";break;case 2:case 12:x="Navigating to delivery location";break;case 3:x="Navigating to Home";break;case 4:x="Waiting for clear path";break;case 5:case 6:x="Calculating navigation path";break;case 7:x="Unable to locate destination";break;default:x=m;break}return(0,e.createComponentVNode)(2,t.Section,{title:s,children:[m===-1&&(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:c}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:x}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:[b,"%"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Home",children:h}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Destination",children:(0,e.createComponentVNode)(2,t.Button,{content:g?g+" (Set)":"None (Set)",onClick:function(){function B(){return i("SetDest")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Load",children:(0,e.createComponentVNode)(2,t.Button,{content:v?v+" (Unload)":"None",disabled:!v,onClick:function(){function B(){return i("Unload")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto Pickup",children:(0,e.createComponentVNode)(2,t.Button,{content:N?"Yes":"No",selected:N,onClick:function(){function B(){return i("SetAutoPickup",{autoPickupType:N?"pickoff":"pickon"})}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto Return",children:(0,e.createComponentVNode)(2,t.Button,{content:C?"Yes":"No",selected:C,onClick:function(){function B(){return i("SetAutoReturn",{autoReturnType:C?"retoff":"reton"})}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Stop",icon:"stop",onClick:function(){function B(){return i("Stop")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Proceed",icon:"play",onClick:function(){function B(){return i("Start")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Return Home",icon:"home",onClick:function(){function B(){return i("ReturnHome")}return B}()})]})]})]})}},97085:function(I,r,n){"use strict";r.__esModule=!0,r.pda_notes=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_notes=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.note;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{children:i}),(0,e.createComponentVNode)(2,t.Button,{icon:"pen",onClick:function(){function l(){return S("Edit")}return l}(),content:"Edit"})]})}return d}()},57513:function(I,r,n){"use strict";r.__esModule=!0,r.pda_power=void 0;var e=n(89005),a=n(72253),t=n(61631),o=r.pda_power=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.PowerMonitorMainContent)}return d}()},57635:function(I,r,n){"use strict";r.__esModule=!0,r.pda_request_console=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25472),d=r.pda_request_console=function(){function y(V,k){var S=(0,a.useBackend)(k),p=S.act,i=S.data,l=i.screen,f=i.selected_console,u=i.consoles_data,s=i.app;return f?(0,e.createComponentVNode)(2,t.Box,{children:[(o.pages[l]||o.pages.default)(),l===0?(0,e.createComponentVNode)(2,t.Button,{content:"Back to console selection",icon:"arrow-left",onClick:function(){function m(){return p("back")}return m}()}):""]}):(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:u.map(function(m){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{color:m.priority===1?"green":m.priority===2?"red":"default",content:m.name,onClick:function(){function c(){return p("select",{name:m.name})}return c}()}),(0,e.createComponentVNode)(2,t.Button,{icon:m.muted?"volume-mute":"volume-up",onClick:function(){function c(){return p("mute",{name:m.name})}return c}()})]})})},m.name)})})})}return y}()},99808:function(I,r,n){"use strict";r.__esModule=!0,r.pda_secbot=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_secbot=function(){function V(k,S){var p=(0,a.useBackend)(S),i=p.act,l=p.data,f=l.beepsky,u=f.active;return(0,e.createComponentVNode)(2,t.Box,{children:u?(0,e.createComponentVNode)(2,y):(0,e.createComponentVNode)(2,d)})}return V}(),d=function(k,S){var p=(0,a.useBackend)(S),i=p.act,l=p.data,f=l.beepsky,u=f.bots;return(0,e.createComponentVNode)(2,t.Box,{children:[u.map(function(s){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:s.Name,icon:"cog",onClick:function(){function m(){return i("AccessBot",{uid:s.uid})}return m}()})},s.Name)}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"rss",content:"Re-scan for bots",onClick:function(){function s(){return i("Rescan")}return s}()})})]})},y=function(k,S){var p=(0,a.useBackend)(S),i=p.act,l=p.data,f=l.beepsky,u=f.botstatus,s=f.active,m=u.mode,c=u.loca,v;switch(m){case 0:v="Ready";break;case 1:v="Apprehending target";break;case 2:case 3:v="Arresting target";break;case 4:v="Starting patrol";break;case 5:v="On patrol";break;case 6:v="Responding to summons";break}return(0,e.createComponentVNode)(2,t.Section,{title:s,children:[m===-1&&(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:c}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:v}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Go",icon:"play",onClick:function(){function b(){return i("Go")}return b}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Stop",icon:"stop",onClick:function(){function b(){return i("Stop")}return b}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Summon",icon:"arrow-down",onClick:function(){function b(){return i("Summon")}return b}()})]})]})]})}},77168:function(I,r,n){"use strict";r.__esModule=!0,r.pda_security=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pda_security=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:S,recordType:"SEC"})}return d}()},21773:function(I,r,n){"use strict";r.__esModule=!0,r.pda_signaler=void 0;var e=n(89005),a=n(72253),t=n(13545),o=r.pda_signaler=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.Signaler,{data:p})}return d}()},81857:function(I,r,n){"use strict";r.__esModule=!0,r.pda_status_display=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_status_display=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.records;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Code",children:[(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"trash",content:"Clear",onClick:function(){function l(){return S("Status",{statdisp:"blank"})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"clock",content:"Evac ETA",onClick:function(){function l(){return S("Status",{statdisp:"shuttle"})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"edit",content:"Message",onClick:function(){function l(){return S("Status",{statdisp:"message"})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"exclamation-triangle",content:"Red Alert",onClick:function(){function l(){return S("Status",{statdisp:"alert",alert:"redalert"})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"boxes",content:"NT Logo",onClick:function(){function l(){return S("Status",{statdisp:"alert",alert:"default"})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"lock",content:"Lockdown",onClick:function(){function l(){return S("Status",{statdisp:"alert",alert:"lockdown"})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"biohazard",content:"Biohazard",onClick:function(){function l(){return S("Status",{statdisp:"alert",alert:"biohazard"})}return l}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message line 1",children:(0,e.createComponentVNode)(2,t.Button,{content:i.message1+" (set)",icon:"pen",onClick:function(){function l(){return S("Status",{statdisp:"setmsg1"})}return l}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message line 2",children:(0,e.createComponentVNode)(2,t.Button,{content:i.message2+" (set)",icon:"pen",onClick:function(){function l(){return S("Status",{statdisp:"setmsg2"})}return l}()})})]})})}return d}()},70287:function(I,r,n){"use strict";r.__esModule=!0,r.pda_supplyrecords=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_supplyrecords=function(){function d(y,V){var k=(0,a.useBackend)(V),S=k.act,p=k.data,i=p.supply,l=i.shuttle_loc,f=i.shuttle_time,u=i.shuttle_moving,s=i.approved,m=i.approved_count,c=i.requests,v=i.requests_count;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Status",children:u?(0,e.createComponentVNode)(2,t.Box,{children:["In transit ",f]}):(0,e.createComponentVNode)(2,t.Box,{children:l})})}),(0,e.createComponentVNode)(2,t.Section,{mt:1,title:"Requested Orders",children:v>0&&c.map(function(b){return(0,e.createComponentVNode)(2,t.Box,{children:["#",b.Number,' - "',b.Name,'" for "',b.OrderedBy,'"']},b)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Approved Orders",children:m>0&&s.map(function(b){return(0,e.createComponentVNode)(2,t.Box,{children:["#",b.Number,' - "',b.Name,'" for "',b.ApprovedBy,'"']},b)})})]})}return d}()},17617:function(I,r,n){"use strict";r.__esModule=!0,r.Layout=void 0;var e=n(89005),a=n(35840),t=n(55937),o=n(24826),d=["className","theme","children"],y=["className","scrollable","children"];/**
+ */var y=r.RequestManager=function(){function p(a,c){var f=(0,t.useBackend)(c),u=f.act,s=f.data,m=s.requests,l=(0,t.useLocalState)(c,"filteredTypes",Object.fromEntries(Object.entries(V).map(function(B){var L=B[0],w=B[1];return[L,!0]}))),C=l[0],b=l[1],g=(0,t.useLocalState)(c,"searchText"),h=g[0],v=g[1],N=m.filter(function(B){return C[B.req_type]});if(h){var x=h.toLowerCase();N=N.filter(function(B){return(0,i.decodeHtmlEntities)(B.message).toLowerCase().includes(x)||B.owner_name.toLowerCase().includes(x)})}return(0,e.createComponentVNode)(2,d.Window,{title:"Request Manager",width:575,height:600,children:(0,e.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Requests",buttons:(0,e.createComponentVNode)(2,o.Input,{value:h,onInput:function(){function B(L,w){return v(w)}return B}(),placeholder:"Search...",mr:1}),children:N.map(function(B){return(0,e.createVNode)(1,"div","RequestManager__row",[(0,e.createVNode)(1,"div","RequestManager__rowContents",[(0,e.createVNode)(1,"h2","RequestManager__header",[(0,e.createVNode)(1,"span","RequestManager__headerText",[B.owner_name,B.owner===null&&" [DC]"],0),(0,e.createVNode)(1,"span","RequestManager__timestamp",B.timestamp_str,0)],4),(0,e.createVNode)(1,"div","RequestManager__message",[(0,e.createComponentVNode)(2,k,{requestType:B.req_type}),(0,i.decodeHtmlEntities)(B.message)],0)],4),B.owner!==null&&(0,e.createComponentVNode)(2,S,{request:B})],0,null,B.id)})})})})}return p}(),V={request_prayer:"PRAYER",request_centcom:"CENTCOM",request_syndicate:"SYNDICATE",request_honk:"HONK",request_ert:"ERT",request_nuke:"NUKE CODE"},k=function(a){var c=a.requestType;return(0,e.createVNode)(1,"b","RequestManager__"+c,[V[c],(0,e.createTextVNode)(":")],0)},S=function(a,c){var f=(0,t.useBackend)(c),u=f.act,s=f._,m=a.request;return(0,e.createVNode)(1,"div","RequestManager__controlsContainer",[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("pp",{id:m.id})}return l}(),children:"PP"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("vv",{id:m.id})}return l}(),children:"VV"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("sm",{id:m.id})}return l}(),children:"SM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("tp",{id:m.id})}return l}(),children:"TP"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("logs",{id:m.id})}return l}(),children:"LOGS"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("bless",{id:m.id})}return l}(),children:"BLESS"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("smite",{id:m.id})}return l}(),children:"SMITE"}),m.req_type!=="request_prayer"&&(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("rply",{id:m.id})}return l}(),children:"RPLY"}),m.req_type==="request_ert"&&(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("ertreply",{id:m.id})}return l}(),children:"ERTREPLY"}),m.req_type==="request_nuke"&&(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return u("getcode",{id:m.id})}return l}(),children:"GETCODE"})],0)}},16475:function(I,r,n){"use strict";r.__esModule=!0,r.SUBMENU=r.RndConsole=r.MENU=void 0;var e=n(89005),i=n(72253),t=n(98595),o=n(36036),d=n(13472),y=r.MENU={MAIN:0,LEVELS:1,DISK:2,DESTROY:3,LATHE:4,IMPRINTER:5,SETTINGS:6},V=r.SUBMENU={MAIN:0,DISK_COPY:1,LATHE_CATEGORY:1,LATHE_MAT_STORAGE:2,LATHE_CHEM_STORAGE:3,SETTINGS_DEVICES:1},k=r.RndConsole=function(){function S(p,a){var c=(0,i.useBackend)(a),f=c.data,u=f.wait_message;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,theme:f.ui_theme,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole",children:[(0,e.createComponentVNode)(2,d.RndNavbar),(0,e.createComponentVNode)(2,d.RndRoute,{menu:y.MAIN,render:function(){function s(){return(0,e.createComponentVNode)(2,d.MainMenu)}return s}()}),(0,e.createComponentVNode)(2,d.RndRoute,{menu:y.LEVELS,render:function(){function s(){return(0,e.createComponentVNode)(2,d.CurrentLevels)}return s}()}),(0,e.createComponentVNode)(2,d.RndRoute,{menu:y.DISK,render:function(){function s(){return(0,e.createComponentVNode)(2,d.DataDiskMenu)}return s}()}),(0,e.createComponentVNode)(2,d.RndRoute,{menu:y.DESTROY,render:function(){function s(){return(0,e.createComponentVNode)(2,d.DeconstructionMenu)}return s}()}),(0,e.createComponentVNode)(2,d.RndRoute,{menu:function(){function s(m){return m===y.LATHE||m===y.IMPRINTER}return s}(),render:function(){function s(){return(0,e.createComponentVNode)(2,d.LatheMenu)}return s}()}),(0,e.createComponentVNode)(2,d.RndRoute,{menu:y.SETTINGS,render:function(){function s(){return(0,e.createComponentVNode)(2,d.SettingsMenu)}return s}()}),u?(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay",children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay__Wrapper",children:(0,e.createComponentVNode)(2,o.NoticeBox,{color:"black",children:u})})}):null]})})})}return S}()},93098:function(I,r,n){"use strict";r.__esModule=!0,r.CurrentLevels=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.CurrentLevels=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data,p=S.tech_levels;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createVNode)(1,"h3",null,"Current Research Levels:",16),p.map(function(a,c){var f=a.name,u=a.level,s=a.desc;return(0,e.createComponentVNode)(2,t.Box,{children:[c>0?(0,e.createComponentVNode)(2,t.Divider):null,(0,e.createComponentVNode)(2,t.Box,{children:f}),(0,e.createComponentVNode)(2,t.Box,{children:["* Level: ",u]}),(0,e.createComponentVNode)(2,t.Box,{children:["* Summary: ",s]})]},f)})]})}return d}()},19192:function(I,r,n){"use strict";r.__esModule=!0,r.DataDiskMenu=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(13472),d=n(16475),y="design",V="tech",k=function(m,l){var C=(0,i.useBackend)(l),b=C.data,g=C.act,h=b.disk_data;return h?(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:h.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:h.level}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:h.desc})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function v(){return g("updt_tech")}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Clear Disk",icon:"trash",onClick:function(){function v(){return g("clear_tech")}return v}()}),(0,e.createComponentVNode)(2,a)]})]}):null},S=function(m,l){var C=(0,i.useBackend)(l),b=C.data,g=C.act,h=b.disk_data;if(!h)return null;var v=h.name,N=h.lathe_types,x=h.materials,B=N.join(", ");return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:v}),B?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lathe Types",children:B}):null,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Required Materials"})]}),x.map(function(L){return(0,e.createComponentVNode)(2,t.Box,{children:["- ",(0,e.createVNode)(1,"span",null,L.name,0,{style:{"text-transform":"capitalize"}})," x ",L.amount]},L.name)}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function L(){return g("updt_design")}return L}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Clear Disk",icon:"trash",onClick:function(){function L(){return g("clear_design")}return L}()}),(0,e.createComponentVNode)(2,a)]})]})},p=function(m,l){var C=(0,i.useBackend)(l),b=C.data,g=b.disk_type;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{children:"This disk is empty."}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:[(0,e.createComponentVNode)(2,o.RndNavButton,{submenu:d.SUBMENU.DISK_COPY,icon:"arrow-down",content:g===V?"Load Tech to Disk":"Load Design to Disk"}),(0,e.createComponentVNode)(2,a)]})]})},a=function(m,l){var C=(0,i.useBackend)(l),b=C.data,g=C.act,h=b.disk_type;return h?(0,e.createComponentVNode)(2,t.Button,{content:"Eject Disk",icon:"eject",onClick:function(){function v(){var N=h===V?"eject_tech":"eject_design";g(N)}return v}()}):null},c=function(m,l){var C=(0,i.useBackend)(l),b=C.data,g=b.disk_data,h=b.disk_type,v=function(){if(!g)return(0,e.createComponentVNode)(2,p);switch(h){case y:return(0,e.createComponentVNode)(2,S);case V:return(0,e.createComponentVNode)(2,k);default:return null}};return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk Contents",children:v()})},f=function(m,l){var C=(0,i.useBackend)(l),b=C.data,g=C.act,h=b.disk_type,v=b.to_copy;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Box,{overflowY:"auto",overflowX:"hidden",maxHeight:"450px",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:v.sort(function(N,x){return N.name.localeCompare(x.name)}).map(function(N){var x=N.name,B=N.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{noColon:!0,label:x,children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Copy to Disk",onClick:function(){function L(){h===V?g("copy_tech",{id:B}):g("copy_design",{id:B})}return L}()})},B)})})})})},u=r.DataDiskMenu=function(){function s(m,l){var C=(0,i.useBackend)(l),b=C.data,g=b.disk_type;return g?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.RndRoute,{submenu:d.SUBMENU.MAIN,render:function(){function h(){return(0,e.createComponentVNode)(2,c)}return h}()}),(0,e.createComponentVNode)(2,o.RndRoute,{submenu:d.SUBMENU.DISK_COPY,render:function(){function h(){return(0,e.createComponentVNode)(2,f)}return h}()})],4):null}return s}()},20887:function(I,r,n){"use strict";r.__esModule=!0,r.DeconstructionMenu=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.DeconstructionMenu=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data,p=k.act,a=S.loaded_item,c=S.linked_destroy;return c?a?(0,e.createComponentVNode)(2,t.Section,{noTopPadding:!0,title:"Deconstruction Menu",children:[(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:["Name: ",a.name]}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createVNode)(1,"h3",null,"Origin Tech:",16)}),(0,e.createComponentVNode)(2,t.LabeledList,{children:a.origin_tech.map(function(f){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* "+f.name,children:[f.object_level," ",f.current_level?(0,e.createFragment)([(0,e.createTextVNode)("(Current: "),f.current_level,(0,e.createTextVNode)(")")],0):null]},f.name)})}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createVNode)(1,"h3",null,"Options:",16)}),(0,e.createComponentVNode)(2,t.Button,{content:"Deconstruct Item",icon:"unlink",onClick:function(){function f(){p("deconstruct")}return f}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject Item",icon:"eject",onClick:function(){function f(){p("eject_item")}return f}()})]}):(0,e.createComponentVNode)(2,t.Section,{title:"Deconstruction Menu",children:"No item loaded. Standing by..."}):(0,e.createComponentVNode)(2,t.Box,{children:"NO DESTRUCTIVE ANALYZER LINKED TO CONSOLE"})}return d}()},10666:function(I,r,n){"use strict";r.__esModule=!0,r.LatheCategory=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(13472),d=r.LatheCategory=function(){function y(V,k){var S=(0,i.useBackend)(k),p=S.data,a=S.act,c=p.category,f=p.matching_designs,u=p.menu,s=u===4,m=s?"build":"imprint";return(0,e.createComponentVNode)(2,t.Section,{title:c,children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,t.Table,{className:"RndConsole__LatheCategory__MatchingDesigns",children:f.map(function(l){var C=l.id,b=l.name,g=l.can_build,h=l.materials;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:b,disabled:g<1,onClick:function(){function v(){return a(m,{id:C,amount:1})}return v}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g>=5?(0,e.createComponentVNode)(2,t.Button,{content:"x5",onClick:function(){function v(){return a(m,{id:C,amount:5})}return v}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g>=10?(0,e.createComponentVNode)(2,t.Button,{content:"x10",onClick:function(){function v(){return a(m,{id:C,amount:10})}return v}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.map(function(v){return(0,e.createFragment)([" | ",(0,e.createVNode)(1,"span",v.is_red?"color-red":null,[v.amount,(0,e.createTextVNode)(" "),v.name],0)],0)})})]},C)})})]})}return y}()},52285:function(I,r,n){"use strict";r.__esModule=!0,r.LatheChemicalStorage=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.LatheChemicalStorage=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data,p=k.act,a=S.loaded_chemicals,c=S.menu===4;return(0,e.createComponentVNode)(2,t.Section,{title:"Chemical Storage",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Purge All",icon:"trash",onClick:function(){function f(){var u=c?"disposeallP":"disposeallI";p(u)}return f}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:a.map(function(f){var u=f.volume,s=f.name,m=f.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* "+u+" of "+s,children:(0,e.createComponentVNode)(2,t.Button,{content:"Purge",icon:"trash",onClick:function(){function l(){var C=c?"disposeP":"disposeI";p(C,{id:m})}return l}()})},m)})})]})}return d}()},71964:function(I,r,n){"use strict";r.__esModule=!0,r.LatheMainMenu=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(13472),d=r.LatheMainMenu=function(){function y(V,k){var S=(0,i.useBackend)(k),p=S.data,a=S.act,c=p.menu,f=p.categories,u=c===4?"Protolathe":"Circuit Imprinter";return(0,e.createComponentVNode)(2,t.Section,{title:u+" Menu",children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,o.LatheSearch),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Flex,{wrap:"wrap",children:f.map(function(s){return(0,e.createComponentVNode)(2,t.Flex,{style:{"flex-basis":"50%","margin-bottom":"6px"},children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-right",content:s,onClick:function(){function m(){a("setCategory",{category:s})}return m}()})},s)})})]})}return y}()},17906:function(I,r,n){"use strict";r.__esModule=!0,r.LatheMaterialStorage=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.LatheMaterialStorage=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data,p=k.act,a=S.loaded_materials;return(0,e.createComponentVNode)(2,t.Section,{className:"RndConsole__LatheMaterialStorage",title:"Material Storage",children:(0,e.createComponentVNode)(2,t.Table,{children:a.map(function(c){var f=c.id,u=c.amount,s=c.name,m=function(){function g(h){var v=S.menu===4?"lathe_ejectsheet":"imprinter_ejectsheet";p(v,{id:f,amount:h})}return g}(),l=Math.floor(u/2e3),C=u<1,b=l===1?"":"s";return(0,e.createComponentVNode)(2,t.Table.Row,{className:C?"color-grey":"color-yellow",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"210px",children:["* ",u," of ",s]}),(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"110px",children:["(",l," sheet",b,")"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u>=2e3?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"1x",icon:"eject",onClick:function(){function g(){return m(1)}return g}()}),(0,e.createComponentVNode)(2,t.Button,{content:"C",icon:"eject",onClick:function(){function g(){return m("custom")}return g}()}),u>=2e3*5?(0,e.createComponentVNode)(2,t.Button,{content:"5x",icon:"eject",onClick:function(){function g(){return m(5)}return g}()}):null,(0,e.createComponentVNode)(2,t.Button,{content:"All",icon:"eject",onClick:function(){function g(){return m(50)}return g}()})],0):null})]},f)})})})}return d}()},83706:function(I,r,n){"use strict";r.__esModule=!0,r.LatheMaterials=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.LatheMaterials=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data,p=S.total_materials,a=S.max_materials,c=S.max_chemicals,f=S.total_chemicals;return(0,e.createComponentVNode)(2,t.Box,{className:"RndConsole__LatheMaterials",mb:"10px",children:(0,e.createComponentVNode)(2,t.Table,{width:"auto",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Material Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p}),a?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+a}):null]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Chemical Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:f}),c?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+c}):null]})]})})}return d}()},76749:function(I,r,n){"use strict";r.__esModule=!0,r.LatheMenu=void 0;var e=n(89005),i=n(72253),t=n(12059),o=n(13472),d=n(36036),y=n(16475),V=r.LatheMenu=function(){function k(S,p){var a=(0,i.useBackend)(p),c=a.data,f=c.menu,u=c.linked_lathe,s=c.linked_imprinter;return f===4&&!u?(0,e.createComponentVNode)(2,d.Box,{children:"NO PROTOLATHE LINKED TO CONSOLE"}):f===5&&!s?(0,e.createComponentVNode)(2,d.Box,{children:"NO CIRCUIT IMPRITER LINKED TO CONSOLE"}):(0,e.createComponentVNode)(2,d.Box,{children:[(0,e.createComponentVNode)(2,t.RndRoute,{submenu:y.SUBMENU.MAIN,render:function(){function m(){return(0,e.createComponentVNode)(2,o.LatheMainMenu)}return m}()}),(0,e.createComponentVNode)(2,t.RndRoute,{submenu:y.SUBMENU.LATHE_CATEGORY,render:function(){function m(){return(0,e.createComponentVNode)(2,o.LatheCategory)}return m}()}),(0,e.createComponentVNode)(2,t.RndRoute,{submenu:y.SUBMENU.LATHE_MAT_STORAGE,render:function(){function m(){return(0,e.createComponentVNode)(2,o.LatheMaterialStorage)}return m}()}),(0,e.createComponentVNode)(2,t.RndRoute,{submenu:y.SUBMENU.LATHE_CHEM_STORAGE,render:function(){function m(){return(0,e.createComponentVNode)(2,o.LatheChemicalStorage)}return m}()})]})}return k}()},74698:function(I,r,n){"use strict";r.__esModule=!0,r.LatheSearch=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.LatheSearch=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"Search...",onEnter:function(){function p(a,c){return S("search",{to_search:c})}return p}()})})}return d}()},17180:function(I,r,n){"use strict";r.__esModule=!0,r.MainMenu=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(13472),d=n(16475),y=r.MainMenu=function(){function V(k,S){var p=(0,i.useBackend)(S),a=p.data,c=a.disk_type,f=a.linked_destroy,u=a.linked_lathe,s=a.linked_imprinter,m=a.tech_levels;return(0,e.createComponentVNode)(2,t.Section,{title:"Main Menu",children:[(0,e.createComponentVNode)(2,t.Flex,{className:"RndConsole__MainMenu__Buttons",direction:"column",align:"flex-start",children:[(0,e.createComponentVNode)(2,o.RndNavButton,{disabled:!c,menu:d.MENU.DISK,submenu:d.SUBMENU.MAIN,icon:"save",content:"Disk Operations"}),(0,e.createComponentVNode)(2,o.RndNavButton,{disabled:!f,menu:d.MENU.DESTROY,submenu:d.SUBMENU.MAIN,icon:"unlink",content:"Destructive Analyzer Menu"}),(0,e.createComponentVNode)(2,o.RndNavButton,{disabled:!u,menu:d.MENU.LATHE,submenu:d.SUBMENU.MAIN,icon:"print",content:"Protolathe Menu"}),(0,e.createComponentVNode)(2,o.RndNavButton,{disabled:!s,menu:d.MENU.IMPRINTER,submenu:d.SUBMENU.MAIN,icon:"print",content:"Circuit Imprinter Menu"}),(0,e.createComponentVNode)(2,o.RndNavButton,{menu:d.MENU.SETTINGS,submenu:d.SUBMENU.MAIN,icon:"cog",content:"Settings"})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"12px"}),(0,e.createVNode)(1,"h3",null,"Current Research Levels:",16),(0,e.createComponentVNode)(2,t.LabeledList,{children:m.map(function(l){var C=l.name,b=l.level;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:C,children:b},C)})})]})}return V}()},63459:function(I,r,n){"use strict";r.__esModule=!0,r.RndNavButton=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.RndNavButton=function(){function d(y,V){var k=y.icon,S=y.children,p=y.disabled,a=y.content,c=(0,i.useBackend)(V),f=c.data,u=c.act,s=f.menu,m=f.submenu,l=s,C=m;return y.menu!==null&&y.menu!==void 0&&(l=y.menu),y.submenu!==null&&y.submenu!==void 0&&(C=y.submenu),(0,e.createComponentVNode)(2,t.Button,{content:a,icon:k,disabled:p,onClick:function(){function b(){u("nav",{menu:l,submenu:C})}return b}(),children:S})}return d}()},94942:function(I,r,n){"use strict";r.__esModule=!0,r.RndNavbar=void 0;var e=n(89005),i=n(13472),t=n(36036),o=n(16475),d=r.RndNavbar=function(){function y(){return(0,e.createComponentVNode)(2,t.Box,{className:"RndConsole__RndNavbar",children:[(0,e.createComponentVNode)(2,i.RndRoute,{menu:function(){function V(k){return k!==o.MENU.MAIN}return V}(),render:function(){function V(){return(0,e.createComponentVNode)(2,i.RndNavButton,{menu:o.MENU.MAIN,submenu:o.SUBMENU.MAIN,icon:"reply",content:"Main Menu"})}return V}()}),(0,e.createComponentVNode)(2,i.RndRoute,{submenu:function(){function V(k){return k!==o.SUBMENU.MAIN}return V}(),render:function(){function V(){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,i.RndRoute,{menu:o.MENU.DISK,render:function(){function k(){return(0,e.createComponentVNode)(2,i.RndNavButton,{submenu:o.SUBMENU.MAIN,icon:"reply",content:"Disk Operations Menu"})}return k}()}),(0,e.createComponentVNode)(2,i.RndRoute,{menu:o.MENU.LATHE,render:function(){function k(){return(0,e.createComponentVNode)(2,i.RndNavButton,{submenu:o.SUBMENU.MAIN,icon:"reply",content:"Protolathe Menu"})}return k}()}),(0,e.createComponentVNode)(2,i.RndRoute,{menu:o.MENU.IMPRINTER,render:function(){function k(){return(0,e.createComponentVNode)(2,i.RndNavButton,{submenu:o.SUBMENU.MAIN,icon:"reply",content:"Circuit Imprinter Menu"})}return k}()}),(0,e.createComponentVNode)(2,i.RndRoute,{menu:o.MENU.SETTINGS,render:function(){function k(){return(0,e.createComponentVNode)(2,i.RndNavButton,{submenu:o.SUBMENU.MAIN,icon:"reply",content:"Settings Menu"})}return k}()})]})}return V}()}),(0,e.createComponentVNode)(2,i.RndRoute,{menu:function(){function V(k){return k===o.MENU.LATHE||k===o.MENU.IMPRINTER}return V}(),submenu:o.SUBMENU.MAIN,render:function(){function V(){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,i.RndNavButton,{submenu:o.SUBMENU.LATHE_MAT_STORAGE,icon:"arrow-up",content:"Material Storage"}),(0,e.createComponentVNode)(2,i.RndNavButton,{submenu:o.SUBMENU.LATHE_CHEM_STORAGE,icon:"arrow-up",content:"Chemical Storage"})]})}return V}()})]})}return y}()},12059:function(I,r,n){"use strict";r.__esModule=!0,r.RndRoute=void 0;var e=n(72253),i=r.RndRoute=function(){function t(o,d){var y=o.render,V=(0,e.useBackend)(d),k=V.data,S=k.menu,p=k.submenu,a=function(){function f(u,s){return u==null?!0:typeof u=="function"?u(s):u===s}return f}(),c=a(o.menu,S)&&a(o.submenu,p);return c?y():null}return t}()},52580:function(I,r,n){"use strict";r.__esModule=!0,r.SettingsMenu=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(13472),d=n(16475),y=r.SettingsMenu=function(){function V(k,S){var p=(0,i.useBackend)(S),a=p.data,c=p.act,f=a.sync,u=a.admin,s=a.linked_destroy,m=a.linked_lathe,l=a.linked_imprinter;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,o.RndRoute,{submenu:d.SUBMENU.MAIN,render:function(){function C(){return(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",align:"flex-start",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Sync Database with Network",icon:"sync",disabled:!f,onClick:function(){function b(){c("sync")}return b}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Connect to Research Network",icon:"plug",disabled:f,onClick:function(){function b(){c("togglesync")}return b}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!f,icon:"unlink",content:"Disconnect from Research Network",onClick:function(){function b(){c("togglesync")}return b}()}),(0,e.createComponentVNode)(2,o.RndNavButton,{disabled:!f,content:"Device Linkage Menu",icon:"link",menu:d.MENU.SETTINGS,submenu:d.SUBMENU.SETTINGS_DEVICES}),u===1?(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation",content:"[ADMIN] Maximize Research Levels",onClick:function(){function b(){return c("maxresearch")}return b}()}):null]})})}return C}()}),(0,e.createComponentVNode)(2,o.RndRoute,{submenu:d.SUBMENU.SETTINGS_DEVICES,render:function(){function C(){return(0,e.createComponentVNode)(2,t.Section,{title:"Device Linkage Menu",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"link",content:"Re-sync with Nearby Devices",onClick:function(){function b(){return c("find_device")}return b}()}),(0,e.createComponentVNode)(2,t.Box,{mt:"5px",children:(0,e.createVNode)(1,"h3",null,"Linked Devices:",16)}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[s?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* Destructive Analyzer",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",content:"Unlink",onClick:function(){function b(){return c("disconnect",{item:"destroy"})}return b}()})}):(0,e.createComponentVNode)(2,t.LabeledList.Item,{noColon:!0,label:"* No Destructive Analyzer Linked"}),m?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* Protolathe",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",content:"Unlink",onClick:function(){function b(){c("disconnect",{item:"lathe"})}return b}()})}):(0,e.createComponentVNode)(2,t.LabeledList.Item,{noColon:!0,label:"* No Protolathe Linked"}),l?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* Circuit Imprinter",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",content:"Unlink",onClick:function(){function b(){return c("disconnect",{item:"imprinter"})}return b}()})}):(0,e.createComponentVNode)(2,t.LabeledList.Item,{noColon:!0,label:"* No Circuit Imprinter Linked"})]})]})}return C}()})]})}return V}()},13472:function(I,r,n){"use strict";r.__esModule=!0,r.SettingsMenu=r.RndRoute=r.RndNavbar=r.RndNavButton=r.MainMenu=r.LatheSearch=r.LatheMenu=r.LatheMaterials=r.LatheMaterialStorage=r.LatheMainMenu=r.LatheChemicalStorage=r.LatheCategory=r.DeconstructionMenu=r.DataDiskMenu=r.CurrentLevels=void 0;var e=n(93098);r.CurrentLevels=e.CurrentLevels;var i=n(19192);r.DataDiskMenu=i.DataDiskMenu;var t=n(20887);r.DeconstructionMenu=t.DeconstructionMenu;var o=n(10666);r.LatheCategory=o.LatheCategory;var d=n(52285);r.LatheChemicalStorage=d.LatheChemicalStorage;var y=n(71964);r.LatheMainMenu=y.LatheMainMenu;var V=n(83706);r.LatheMaterials=V.LatheMaterials;var k=n(17906);r.LatheMaterialStorage=k.LatheMaterialStorage;var S=n(76749);r.LatheMenu=S.LatheMenu;var p=n(74698);r.LatheSearch=p.LatheSearch;var a=n(17180);r.MainMenu=a.MainMenu;var c=n(94942);r.RndNavbar=c.RndNavbar;var f=n(63459);r.RndNavButton=f.RndNavButton;var u=n(12059);r.RndRoute=u.RndRoute;var s=n(52580);r.SettingsMenu=s.SettingsMenu},40026:function(I,r,n){"use strict";r.__esModule=!0,r.RoboQuest=void 0;var e=n(89005),i=n(35840),t=n(72253),o=n(36036),d=n(98595),y=r.RoboQuest=function(){function V(k,S){var p=(0,t.useBackend)(S),a=p.act,c=p.data,f=c.hasID,u=c.name,s=c.questInfo,m=c.hasTask,l=c.canCheck,C=c.canSend,b=c.checkMessage,g=c.style,h=c.cooldown,v=c.instant_teleport,N=c.shopItems,x=c.points,B=c.cats,L=(0,t.useLocalState)(S,"shopState",!1),w=L[0],A=L[1],T={medical:"blue",working:"brown",security:"red",working_medical:"olive",medical_security:"violet",working_medical_security:"grey"};return(0,e.createComponentVNode)(2,d.Window,{theme:g,width:1e3,height:540,children:(0,e.createComponentVNode)(2,d.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:40,children:[!w&&(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0437\u0430\u043A\u0430\u0437",buttons:(0,e.createComponentVNode)(2,o.Button,{content:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043C\u0435\u0445\u0430",icon:"search",tooltipPosition:"bottom",tooltip:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u044D\u043A\u0437\u043E\u043A\u043E\u0441\u0442\u044E\u043C\u0430 \u043D\u0430 \u043D\u0430\u043B\u0438\u0447\u0438\u0435 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0445 \u0434\u043B\u044F \u0437\u0430\u043A\u0430\u0437\u0430 \u043C\u043E\u0434\u0443\u043B\u0435\u0439.",disabled:!f||!m||!l||h,onClick:function(){function E(){return a("Check")}return E}()}),children:[(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:60,textAlign:"center",align:"center",children:!!m&&(0,e.createVNode)(1,"img",(0,i.classes)(["roboquest_large128x128",s.icon]))}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Divider,{vertical:!0})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:42,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!m&&s.modules.map(function(E){return E.id<4&&(0,e.createVNode)(1,"img",(0,i.classes)(["roboquest64x64",E.icon]),null,1,null,E.id)})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!m&&s.modules.map(function(E){return E.id>3&&(0,e.createVNode)(1,"img",(0,i.classes)(["roboquest64x64",E.icon]),null,1,null,E.id)})})]})})]}),(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Divider),(0,e.createVNode)(1,"b",null,b,0)],4),!!h&&(0,e.createFragment)([(0,e.createVNode)(1,"b",null,"\u0417\u0430 \u043E\u0442\u043A\u0430\u0437 \u043E\u0442 \u0437\u0430\u043A\u0430\u0437\u0430, \u0432\u044B \u0431\u044B\u043B\u0438 \u043E\u0442\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u044B \u043E\u0442 \u0440\u0430\u0431\u043E\u0442\u044B \u043D\u0430 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0432\u0440\u0435\u043C\u044F.",16),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"b",null,h,0)],4)]}),!!w&&(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:(0,e.createComponentVNode)(2,o.Box,{children:["\u041C\u0430\u0433\u0430\u0437\u0438\u043D \u0447\u0435\u0440\u0442\u0435\u0436\u0435\u0439",(0,e.createComponentVNode)(2,o.Box,{children:["\u041E\u0447\u043A\u0438: ",(0,e.createVNode)(1,"b",null,x.working,0,{style:{color:"brown"}}),"|",(0,e.createVNode)(1,"b",null,x.medical,0,{style:{color:"lightblue"}}),"|",(0,e.createVNode)(1,"b",null,x.security,0,{style:{color:"red"}})]})]}),children:Object.keys(N).map(function(E){return(0,e.createFragment)(!(N[E]===void 0||N[E].length===0||E==="robo")&&N[E].map(function(O){return(0,e.createComponentVNode)(2,o.ImageButton,{asset:!0,color:T[E],image:O.icon,imageAsset:"roboquest64x64",title:(0,e.createComponentVNode)(2,o.Box,{nowrap:!0,inline:!0,children:[O.name," ",(0,e.createVNode)(1,"b",null,O.cost.working,0,{style:{color:"brown"}}),"|",(0,e.createVNode)(1,"b",null,O.cost.medical,0,{style:{color:"lightblue"}}),"|",(0,e.createVNode)(1,"b",null,O.cost.security,0,{style:{color:"red"}})]}),content:O.desc,onClick:function(){function P(){return a("buyItem",{item:O.path})}return P}()},O.path)}),0,E)})})]}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:20,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"\u0414\u0440\u0443\u0433\u043E\u0435",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"\u041C\u0430\u0433\u0430\u0437\u0438\u043D",width:"7rem",icon:"shopping-cart",onClick:function(){function E(){return A(!w)}return E}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"cog",tooltipPosition:"bottom",tooltip:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0441\u0442\u0438\u043B\u044F \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.",onClick:function(){function E(){return a("ChangeStyle")}return E}()})],4),children:[!!u&&(0,e.createFragment)([(0,e.createTextVNode)("\u0417\u0434\u0440\u0430\u0441\u0442\u0432\u0443\u0439\u0442\u0435,"),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"b",null,u,0),(0,e.createVNode)(1,"br")],4),(0,e.createFragment)([(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("\u041F\u0440\u0438 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0438 \u0437\u0430\u043A\u0430\u0437\u0430 \u043D\u0430 \u044D\u043A\u0437\u043A\u043E\u0441\u0442\u044E\u043C, \u0432\u044B\u0431\u043E\u0440 \u043F\u043E\u0434\u0442\u0438\u043F\u0430 \u043C\u0435\u0445\u0430 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u0442\u0438\u043F \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043E\u0447\u043A\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u043D\u0430\u0447\u0438\u0441\u043B\u0435\u043D\u044B \u0437\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0437\u0430\u043A\u0430\u0437\u0430."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("\u0420\u0430\u0431\u043E\u0447\u0438\u0435 \u044D\u043A\u0437\u043E\u043A\u043E\u0441\u0442\u044E\u043C\u044B \u043F\u0440\u0438\u043D\u043E\u0441\u044F\u0442"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{inline:!0,color:"brown",children:[" ","\u043A\u043E\u0440\u0438\u0447\u043D\u0435\u0432\u044B\u0435"]}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("\u043E\u0447\u043A\u0438. \u041C\u0435\u0434\u0438\u0446\u0438\u043D\u0441\u043A\u0438\u0435 \u044D\u043A\u0437\u043E\u043A\u043E\u0441\u0442\u044E\u043C\u044B \u043F\u0440\u0438\u043D\u043E\u0441\u044F\u0442"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{inline:!0,color:"teal",children:[" ","\u0433\u043E\u043B\u0443\u0431\u044B\u0435"]}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("\u043E\u0447\u043A\u0438. \u0411\u043E\u0435\u0432\u044B\u0435 \u044D\u043A\u0437\u043E\u043A\u043E\u0441\u0442\u044E\u043C\u044B \u043F\u0440\u0438\u043D\u043E\u0441\u044F\u0442"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{inline:!0,color:"red",children:[" ","\u043A\u0440\u0430\u0441\u043D\u044B\u0435"]}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("\u043E\u0447\u043A\u0438."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("\u041A\u0430\u0436\u0434\u044B\u0439 \u043C\u0435\u0445, \u0432\u043D\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0442 \u043F\u043E\u0434\u0442\u0438\u043F\u0430, \u043F\u0440\u0438\u043D\u043E\u0441\u0438\u0442 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0447\u043A\u043E\u0432 \u0434\u043B\u044F \u043C\u0430\u0433\u0430\u0437\u0438\u043D\u0430 \u043E\u0441\u043E\u0431\u044B\u0445 \u043D\u0430\u0433\u0440\u0430\u0434.")],0)]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:38,children:[!w&&(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"\u0418\u043D\u0444\u043E",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"id-card",content:"\u0412\u044B\u043D\u0443\u0442\u044C ID",disabled:!f,onClick:function(){function E(){return a("RemoveID")}return E}()}),!m&&(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-down",content:"\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u043C\u0435\u0445",disabled:!f||h,onClick:function(){function E(){return a("GetTask")}return E}()}),!!m&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"\u041F\u0435\u0447\u0430\u0442\u044C",icon:"print",onClick:function(){function E(){return a("printOrder")}return E}(),disabled:!m}),(0,e.createComponentVNode)(2,o.Button,{icon:"trash",content:"\u041E\u0442\u043A\u0430\u0437\u0430\u0442\u044C\u0441\u044F",disabled:!f||h,onClick:function(){function E(){return a("RemoveTask")}return E}()})],4)],0),children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",mb:"1rem",children:[(0,e.createVNode)(1,"b",null,"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435: ",16),s.name,(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"b",null,"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435: ",16),s.desc]}),(0,e.createComponentVNode)(2,o.Section,{title:"\u0422\u0440\u0435\u0431\u0443\u0435\u043C\u044B\u0435 \u041C\u043E\u0434\u0443\u043B\u0438:",level:2,children:(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",mb:"0.5rem",children:!!m&&s.modules.map(function(E){return(0,e.createFragment)([(0,e.createVNode)(1,"b",null,[(0,e.createTextVNode)("Module "),E.id],0),(0,e.createTextVNode)(": "),E.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br")],0,E.id)})})}),(0,e.createComponentVNode)(2,o.Box,{mb:"0.5rem",textAlign:"center",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-up",width:"14rem",bold:!0,content:"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043C\u0435\u0445",textAlign:"center",tooltipPosition:"top",tooltip:"\u041E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 \u043C\u0435\u0445\u0430 \u043D\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u0432\u0430\u043C\u0438 \u0442\u0435\u043B\u0435\u043F\u0430\u0434.",disabled:!f||!m||!C||h,onClick:function(){function E(){return a("SendMech",{type:"send"})}return E}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-up",width:"14rem",bold:!0,content:"\u0423\u043F\u0430\u043A\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0445",textAlign:"center",tooltipPosition:"top",tooltip:"\u0423\u043F\u0430\u043A\u043E\u0432\u043A\u0430 \u043C\u0435\u0445\u0430 \u0434\u043B\u044F \u0441\u0430\u043C\u043E\u0441\u0442\u043E\u044F\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438 \u0432 \u043A\u0430\u0440\u0433\u043E.",disabled:!f||!m||!C||h,onClick:function(){function E(){return a("SendMech",{type:"only_packing"})}return E}()})]}),(0,e.createVNode)(1,"box",null,(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-up",width:"30rem",bold:!0,content:"\u0422\u0435\u043B\u0435\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0445",textAlign:"center",tooltipPosition:"bottom",tooltip:"\u041C\u0433\u043D\u043E\u0432\u0435\u043D\u043D\u0430\u044F \u0442\u0435\u043B\u0435\u043F\u043E\u0440\u0442\u0430\u0446\u0438\u044F \u043C\u0435\u0445\u0430 \u0437\u0430\u043A\u0430\u0437\u0447\u0438\u043A\u0443.",disabled:!f||!m||!C||h||!v,onClick:function(){function E(){return a("SendMech",{type:"instant"})}return E}()}),2,{mb:"1.5rem",textAlign:"center"})]}),!!w&&(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createTextVNode)("\u041C\u0430\u0433\u0430\u0437\u0438\u043D \u043E\u0441\u043E\u0431\u044B\u0445 \u043D\u0430\u0433\u0440\u0430\u0434"),(0,e.createComponentVNode)(2,o.Box,{children:["\u041E\u0447\u043A\u0438: ",x.robo]})],4),children:N.robo.map(function(E){return(!E.emagOnly||g==="syndicate")&&(0,e.createComponentVNode)(2,o.ImageButton,{asset:!0,color:"purple",image:E.icon,imageAsset:"roboquest64x64",title:(0,e.createComponentVNode)(2,o.Box,{nowrap:!0,inline:!0,children:[E.name," ",(0,e.createVNode)(1,"b",null,E.cost.robo,0,{style:{color:"purple"}})]}),content:E.desc,onClick:function(){function O(){return a("buyItem",{item:E.path})}return O}()},E.name)})})]})]})})})}return V}()},26109:function(I,r,n){"use strict";r.__esModule=!0,r.RobotSelfDiagnosis=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(98595),d=n(25328),y=function(S,p){var a=S/p;return a<=.2?"good":a<=.5?"average":"bad"},V=r.RobotSelfDiagnosis=function(){function k(S,p){var a=(0,i.useBackend)(p),c=a.data,f=c.component_data;return(0,e.createComponentVNode)(2,o.Window,{width:280,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:f.map(function(u,s){return(0,e.createComponentVNode)(2,t.Section,{title:(0,d.capitalize)(u.name),children:u.installed<=0?(0,e.createComponentVNode)(2,t.NoticeBox,{m:-.5,height:3.5,color:"red",style:{"font-style":"normal"},children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",children:(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,textAlign:"center",align:"center",color:"#e8e8e8",children:u.installed===-1?"Destroyed":"Missing"})})}):(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"72%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Brute Damage",color:y(u.brute_damage,u.max_damage),children:u.brute_damage}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Burn Damage",color:y(u.electronic_damage,u.max_damage),children:u.electronic_damage})]})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Powered",color:u.powered?"good":"bad",children:u.powered?"Yes":"No"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Enabled",color:u.status?"good":"bad",children:u.status?"Yes":"No"})]})})]})},s)})})})}return k}()},97997:function(I,r,n){"use strict";r.__esModule=!0,r.RoboticsControlConsole=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(98595),d=r.RoboticsControlConsole=function(){function V(k,S){var p=(0,i.useBackend)(S),a=p.act,c=p.data,f=c.can_hack,u=c.safety,s=c.show_detonate_all,m=c.cyborgs,l=m===void 0?[]:m;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:460,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!s&&(0,e.createComponentVNode)(2,t.Section,{title:"Emergency Self Destruct",children:[(0,e.createComponentVNode)(2,t.Button,{icon:u?"lock":"unlock",content:u?"Disable Safety":"Enable Safety",selected:u,onClick:function(){function C(){return a("arm",{})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"bomb",disabled:u,content:"Destroy ALL Cyborgs",color:"bad",onClick:function(){function C(){return a("nuke",{})}return C}()})]}),(0,e.createComponentVNode)(2,y,{cyborgs:l,can_hack:f})]})})}return V}(),y=function(k,S){var p=k.cyborgs,a=k.can_hack,c=(0,i.useBackend)(S),f=c.act,u=c.data;return p.length?p.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,buttons:(0,e.createFragment)([!!s.hackable&&!s.emagged&&(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){function m(){return f("hackbot",{uid:s.uid})}return m}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:s.locked_down?"unlock":"lock",color:s.locked_down?"good":"default",content:s.locked_down?"Release":"Lockdown",disabled:!u.auth,onClick:function(){function m(){return f("stopbot",{uid:s.uid})}return m}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:"Detonate",disabled:!u.auth,color:"bad",onClick:function(){function m(){return f("killbot",{uid:s.uid})}return m}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Box,{color:s.status?"bad":s.locked_down?"average":"good",children:s.status?"Not Responding":s.locked_down?"Locked Down":"Nominal"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:(0,e.createComponentVNode)(2,t.Box,{children:s.locstring})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.health>50?"good":"bad",value:s.health/100})}),typeof s.charge=="number"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.charge>30?"good":"bad",value:s.charge/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Capacity",children:(0,e.createComponentVNode)(2,t.Box,{color:s.cell_capacity<3e4?"average":"good",children:s.cell_capacity})})],4)||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"No Power Cell"})}),!!s.is_hacked&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safeties",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"DISABLED"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Module",children:s.module}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Master AI",children:(0,e.createComponentVNode)(2,t.Box,{color:s.synchronization?"default":"average",children:s.synchronization||"None"})})]})},s.uid)}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cyborg units detected within access parameters."})}},54431:function(I,r,n){"use strict";r.__esModule=!0,r.Safe=void 0;var e=n(89005),i=n(79140),t=n(72253),o=n(36036),d=n(98595),y=r.Safe=function(){function p(a,c){var f=(0,t.useBackend)(c),u=f.act,s=f.data,m=s.dial,l=s.open,C=s.locked,b=s.contents;return(0,e.createComponentVNode)(2,d.Window,{theme:"safe",width:600,height:800,children:(0,e.createComponentVNode)(2,d.Window.Content,{children:[(0,e.createComponentVNode)(2,o.Box,{className:"Safe--engraving",children:[(0,e.createComponentVNode)(2,V),(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{className:"Safe--engraving--hinge",top:"25%"}),(0,e.createComponentVNode)(2,o.Box,{className:"Safe--engraving--hinge",top:"75%"})]}),(0,e.createComponentVNode)(2,o.Icon,{className:"Safe--engraving--arrow",name:"long-arrow-alt-down",size:"3"}),(0,e.createVNode)(1,"br"),l?(0,e.createComponentVNode)(2,k):(0,e.createComponentVNode)(2,o.Box,{as:"img",className:"Safe--dial",src:(0,i.resolveAsset)("safe_dial.png"),style:{transform:"rotate(-"+3.6*m+"deg)","z-index":0}})]}),!l&&(0,e.createComponentVNode)(2,S)]})})}return p}(),V=function(a,c){var f=(0,t.useBackend)(c),u=f.act,s=f.data,m=s.dial,l=s.open,C=s.locked,b=function(h,v){return(0,e.createComponentVNode)(2,o.Button,{disabled:l||v&&!C,icon:"arrow-"+(v?"right":"left"),content:(v?"Right":"Left")+" "+h,iconRight:v,onClick:function(){function N(){return u(v?"turnleft":"turnright",{num:h})}return N}(),style:{"z-index":10}})};return(0,e.createComponentVNode)(2,o.Box,{className:"Safe--dialer",children:[(0,e.createComponentVNode)(2,o.Button,{disabled:C,icon:l?"lock":"lock-open",content:l?"Close":"Open",mb:"0.5rem",onClick:function(){function g(){return u("open")}return g}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Box,{position:"absolute",children:[b(50),b(10),b(1)]}),(0,e.createComponentVNode)(2,o.Box,{className:"Safe--dialer--right",position:"absolute",right:"5px",children:[b(1,!0),b(10,!0),b(50,!0)]}),(0,e.createComponentVNode)(2,o.Box,{className:"Safe--dialer--number",children:m})]})},k=function(a,c){var f=(0,t.useBackend)(c),u=f.act,s=f.data,m=s.contents;return(0,e.createComponentVNode)(2,o.Box,{className:"Safe--contents",overflow:"auto",children:m.map(function(l,C){return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{mb:"0.5rem",onClick:function(){function b(){return u("retrieve",{index:C+1})}return b}(),children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:l.sprite+".png",verticalAlign:"middle",ml:"-6px",mr:"0.5rem"}),l.name]}),(0,e.createVNode)(1,"br")],4,l)})})},S=function(a,c){return(0,e.createComponentVNode)(2,o.Section,{className:"Safe--help",title:"Safe opening instructions (because you all keep forgetting)",children:[(0,e.createComponentVNode)(2,o.Box,{children:["1. Turn the dial left to the first number.",(0,e.createVNode)(1,"br"),"2. Turn the dial right to the second number.",(0,e.createVNode)(1,"br"),"3. Continue repeating this process for each number, switching between left and right each time.",(0,e.createVNode)(1,"br"),"4. Open the safe."]}),(0,e.createComponentVNode)(2,o.Box,{bold:!0,children:"To lock fully, turn the dial to the left after closing the safe."})]})}},29740:function(I,r,n){"use strict";r.__esModule=!0,r.SatelliteControl=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(98595),d=r.SatelliteControl=function(){function y(V,k){var S=(0,i.useBackend)(k),p=S.act,a=S.data,c=a.satellites,f=a.notice,u=a.meteor_shield,s=a.meteor_shield_coverage,m=a.meteor_shield_coverage_max,l=a.meteor_shield_coverage_percentage;return(0,e.createComponentVNode)(2,o.Window,{width:475,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[u&&(0,e.createComponentVNode)(2,t.Section,{title:"Station Shield Coverage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:l>=100?"good":"average",value:s,maxValue:m,children:[l," %"]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Satellite Network Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[f&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alert",color:"red",children:a.notice}),c.map(function(C){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"#"+C.id,children:[C.mode," ",(0,e.createComponentVNode)(2,t.Button,{content:C.active?"Deactivate":"Activate",icon:"arrow-circle-right",onClick:function(){function b(){return p("toggle",{id:C.id})}return b}()})]},C.id)})]})})]})})}return y}()},44162:function(I,r,n){"use strict";r.__esModule=!0,r.SecureStorage=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(98595),d=r.SecureStorage=function(){function y(V,k){var S=(0,i.useBackend)(k),p=S.act,a=S.data,c=a.emagged,f=a.locked,u=a.l_set,s=a.l_setshort,m=a.current_code,l=function(){function C(b){var g=b.buttonValue,h=b.color;return h||(h="default"),(0,e.createComponentVNode)(2,t.Button,{disabled:c||s,type:"button",color:h,onClick:function(){function v(){return p("setnumber",{buttonValue:g})}return v}(),children:g})}return C}();return(0,e.createComponentVNode)(2,o.Window,{width:520,height:200,children:(0,e.createComponentVNode)(2,t.Flex,{spacing:"1",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:16,shrink:0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{title:"Code Panel",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:[(0,e.createComponentVNode)(2,l,{buttonValue:"1"}),(0,e.createComponentVNode)(2,l,{buttonValue:"2"}),(0,e.createComponentVNode)(2,l,{buttonValue:"3"})]}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:[(0,e.createComponentVNode)(2,l,{buttonValue:"4"}),(0,e.createComponentVNode)(2,l,{buttonValue:"5"}),(0,e.createComponentVNode)(2,l,{buttonValue:"6"})]}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:[(0,e.createComponentVNode)(2,l,{buttonValue:"7"}),(0,e.createComponentVNode)(2,l,{buttonValue:"8"}),(0,e.createComponentVNode)(2,l,{buttonValue:"9"})]}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:[(0,e.createComponentVNode)(2,l,{buttonValue:"R",color:"red"}),(0,e.createComponentVNode)(2,l,{buttonValue:"0"}),(0,e.createComponentVNode)(2,l,{buttonValue:"E",color:"green"})]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Current Status",children:c||s?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lock Status",children:(0,e.createComponentVNode)(2,t.Box,{color:"red",children:c?"LOCKING SYSTEM ERROR - 1701":"ALERT: MEMORY SYSTEM ERROR - 6040 201"})}),c?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input Code",children:(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"NEW INPUT, ASSHOLE"})}):""]}):(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Secure Code",children:(0,e.createComponentVNode)(2,t.Box,{color:u?"red":"green",children:u?"*****":"NOT SET. ENTER NEW."})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lock Status",children:(0,e.createComponentVNode)(2,t.Box,{color:f?"red":"green",children:f?"Locked":"Unlocked"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input Code",children:(0,e.createComponentVNode)(2,t.Box,{children:m||"Waiting for input"})}),(0,e.createComponentVNode)(2,t.Button,{top:".35em",left:".5em",disabled:f,color:"red",content:"Lock",icon:"lock",onClick:function(){function C(){return p("close")}return C}()})]})})]})})}return y}()},6272:function(I,r,n){"use strict";r.__esModule=!0,r.SecurityRecords=void 0;var e=n(89005),i=n(25328),t=n(72253),o=n(36036),d=n(98595),y=n(3939),V=n(321),k=n(5485),S=n(22091),p={"*Execute*":"execute","*Arrest*":"arrest",Incarcerated:"incarcerated",Parolled:"parolled",Released:"released",Demote:"demote",Search:"search",Monitor:"monitor"},a=function(v,N){(0,y.modalOpen)(v,"edit",{field:N.edit,value:N.value})},c=r.SecurityRecords=function(){function h(v,N){var x=(0,t.useBackend)(N),B=x.act,L=x.data,w=L.loginState,A=L.currentPage,T;if(w.logged_in)A===1?T=(0,e.createComponentVNode)(2,u):A===2?T=(0,e.createComponentVNode)(2,l):A===3&&(T=(0,e.createComponentVNode)(2,C));else return(0,e.createComponentVNode)(2,d.Window,{width:800,height:900,theme:"security",children:(0,e.createComponentVNode)(2,d.Window.Content,{children:(0,e.createComponentVNode)(2,k.LoginScreen)})});return(0,e.createComponentVNode)(2,d.Window,{theme:"security",width:800,height:900,children:[(0,e.createComponentVNode)(2,y.ComplexModal),(0,e.createComponentVNode)(2,d.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,V.LoginInfo),(0,e.createComponentVNode)(2,S.TemporaryNotice),(0,e.createComponentVNode)(2,f),T]})})]})}return h}(),f=function(v,N){var x=(0,t.useBackend)(N),B=x.act,L=x.data,w=L.currentPage,A=L.general;return(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:w===1,onClick:function(){function T(){return B("page",{page:1})}return T}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"list"}),"List Records"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:w===2,onClick:function(){function T(){return B("page",{page:2})}return T}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"wrench"}),"Record Maintenance"]}),w===3&&A&&!A.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:w===3,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"file"}),"Record: ",A.fields[0].value]})]})},u=function(v,N){var x=(0,t.useBackend)(N),B=x.act,L=x.data,w=L.records,A=(0,t.useLocalState)(N,"searchText",""),T=A[0],E=A[1],O=(0,t.useLocalState)(N,"sortId","name"),P=O[0],R=O[1],F=(0,t.useLocalState)(N,"sortOrder",!0),j=F[0],_=F[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"SecurityRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,s,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,s,{id:"fingerprint",children:"Fingerprint"}),(0,e.createComponentVNode)(2,s,{id:"status",children:"Criminal Status"})]}),w.filter((0,i.createSearch)(T,function(z){return z.name+"|"+z.id+"|"+z.rank+"|"+z.fingerprint+"|"+z.status})).sort(function(z,H){var Y=j?1:-1;return z[P].localeCompare(H[P])*Y}).map(function(z){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"SecurityRecords__listRow--"+p[z.status],onClick:function(){function H(){return B("view",{uid_gen:z.uid_gen,uid_sec:z.uid_sec})}return H}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",z.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:z.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:z.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:z.fingerprint}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:z.status})]},z.id)})]})})})],4)},s=function(v,N){var x=(0,t.useLocalState)(N,"sortId","name"),B=x[0],L=x[1],w=(0,t.useLocalState)(N,"sortOrder",!0),A=w[0],T=w[1],E=v.id,O=v.children;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:B!==E&&"transparent",fluid:!0,onClick:function(){function P(){B===E?T(!A):(L(E),T(!0))}return P}(),children:[O,B===E&&(0,e.createComponentVNode)(2,o.Icon,{name:A?"sort-up":"sort-down",ml:"0.25rem;"})]})})})},m=function(v,N){var x=(0,t.useBackend)(N),B=x.act,L=x.data,w=L.isPrinting,A=(0,t.useLocalState)(N,"searchText",""),T=A[0],E=A[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{ml:"0.25rem",content:"New Record",icon:"plus",onClick:function(){function O(){return B("new_general")}return O}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:w,icon:w?"spinner":"print",iconSpin:!!w,content:"Print Cell Log",onClick:function(){function O(){return(0,y.modalOpen)(N,"print_cell_log")}return O}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by Name, ID, Assignment, Fingerprint, Status",fluid:!0,onInput:function(){function O(P,R){return E(R)}return O}()})})]})},l=function(v,N){var x=(0,t.useBackend)(N),B=x.act;return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Button,{disabled:!0,icon:"download",content:"Backup to Disk",tooltip:"This feature is not available.",tooltipPosition:"right"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Button,{disabled:!0,icon:"upload",content:"Upload from Disk",tooltip:"This feature is not available.",tooltipPosition:"right",my:"0.5rem"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",content:"Delete All Security Records",onClick:function(){function L(){return B("delete_security_all")}return L}(),mb:"0.5rem"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",content:"Delete All Cell Logs",onClick:function(){function L(){return B("delete_cell_logs")}return L}()})]})},C=function(v,N){var x=(0,t.useBackend)(N),B=x.act,L=x.data,w=L.isPrinting,A=L.general,T=L.security;return!A||!A.fields?(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"General records lost!"}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,level:2,mt:"-6px",title:"General Data",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:w,icon:w?"spinner":"print",iconSpin:!!w,content:"Print Record",onClick:function(){function E(){return B("print_record")}return E}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"WARNING: This will also delete the Security and Medical records associated with this crew member!",tooltipPosition:"bottom-start",content:"Delete Record",onClick:function(){function E(){return B("delete_general")}return E}()})],4),children:(0,e.createComponentVNode)(2,b)})}),!T||!T.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function E(){return B("new_security")}return E}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Security records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:T.empty,content:"Delete Record",onClick:function(){function E(){return B("delete_security")}return E}()}),children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:T.fields.map(function(E,O){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:E.field,preserveWhitespace:!0,children:[(0,i.decodeHtmlEntities)(E.value),!!E.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:E.line_break?"1rem":"initial",onClick:function(){function P(){return a(N,E)}return P}()})]},O)})})})})}),(0,e.createComponentVNode)(2,g)],4)],0)},b=function(v,N){var x=(0,t.useBackend)(N),B=x.data,L=B.general;return!L||!L.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:L.fields.map(function(w,A){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:w.field,preserveWhitespace:!0,children:[(0,i.decodeHtmlEntities)(""+w.value),!!w.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:w.line_break?"1rem":"initial",onClick:function(){function T(){return a(N,w)}return T}()})]},A)})})}),!!L.has_photos&&L.photos.map(function(w,A){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:w,style:{width:"96px","margin-top":"5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",A+1]},A)})]})},g=function(v,N){var x=(0,t.useBackend)(N),B=x.act,L=x.data,w=L.security;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function A(){return(0,y.modalOpen)(N,"comment_add")}return A}()}),children:w.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):w.comments.map(function(A,T){return(0,e.createComponentVNode)(2,o.Box,{preserveWhitespace:!0,children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:A.header||"Auto-generated"}),(0,e.createVNode)(1,"br"),A.text||A,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function E(){return B("comment_delete",{id:T+1})}return E}()})]},T)})})})}},5099:function(I,r,n){"use strict";r.__esModule=!0,r.SeedExtractor=void 0;var e=n(89005),i=n(25328),t=n(35840),o=n(72253),d=n(36036),y=n(98595),V=n(3939);function k(m,l){var C=typeof Symbol!="undefined"&&m[Symbol.iterator]||m["@@iterator"];if(C)return(C=C.call(m)).next.bind(C);if(Array.isArray(m)||(C=S(m))||l&&m&&typeof m.length=="number"){C&&(m=C);var b=0;return function(){return b>=m.length?{done:!0}:{done:!1,value:m[b++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function S(m,l){if(m){if(typeof m=="string")return p(m,l);var C={}.toString.call(m).slice(8,-1);return C==="Object"&&m.constructor&&(C=m.constructor.name),C==="Map"||C==="Set"?Array.from(m):C==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(C)?p(m,l):void 0}}function p(m,l){(l==null||l>m.length)&&(l=m.length);for(var C=0,b=Array(l);Ca?"average":k>c?"bad":"good"},y=r.AtmosScan=function(){function V(k,S){var p=k.data.aircontents;return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,i.filter)(function(a){return a.val!=="0"||a.entry==="Pressure"||a.entry==="Temperature"})(p).map(function(a){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:a.entry,color:d(a.val,a.bad_low,a.poor_low,a.poor_high,a.bad_high),children:[a.val,a.units]},a.entry)})})})}return V}()},85870:function(I,r,n){"use strict";r.__esModule=!0,r.BeakerContents=void 0;var e=n(89005),i=n(36036),t=n(15964),o=function(V){return V+" unit"+(V===1?"":"s")},d=r.BeakerContents=function(){function y(V){var k=V.beakerLoaded,S=V.beakerContents,p=S===void 0?[]:S,a=V.buttons;return(0,e.createComponentVNode)(2,i.Stack,{vertical:!0,children:[!k&&(0,e.createComponentVNode)(2,i.Stack.Item,{color:"label",children:"No beaker loaded."})||p.length===0&&(0,e.createComponentVNode)(2,i.Stack.Item,{color:"label",children:"Beaker is empty."}),p.map(function(c,f){return(0,e.createComponentVNode)(2,i.Stack,{children:[(0,e.createComponentVNode)(2,i.Stack.Item,{color:"label",grow:!0,children:[o(c.volume)," of ",c.name]},c.name),!!a&&(0,e.createComponentVNode)(2,i.Stack.Item,{children:a(c,f)})]},c.name)})]})}return y}();d.propTypes={beakerLoaded:t.bool,beakerContents:t.array,buttons:t.arrayOf(t.element)}},3939:function(I,r,n){"use strict";r.__esModule=!0,r.modalRegisterBodyOverride=r.modalOpen=r.modalClose=r.modalAnswer=r.ComplexModal=void 0;var e=n(89005),i=n(72253),t=n(36036),o={},d=r.modalOpen=function(){function p(a,c,f){var u=(0,i.useBackend)(a),s=u.act,m=u.data,l=Object.assign(m.modal?m.modal.args:{},f||{});s("modal_open",{id:c,arguments:JSON.stringify(l)})}return p}(),y=r.modalRegisterBodyOverride=function(){function p(a,c){o[a]=c}return p}(),V=r.modalAnswer=function(){function p(a,c,f,u){var s=(0,i.useBackend)(a),m=s.act,l=s.data;if(l.modal){var C=Object.assign(l.modal.args||{},u||{});m("modal_answer",{id:c,answer:f,arguments:JSON.stringify(C)})}}return p}(),k=r.modalClose=function(){function p(a,c){var f=(0,i.useBackend)(a),u=f.act;u("modal_close",{id:c})}return p}(),S=r.ComplexModal=function(){function p(a,c){var f=(0,i.useBackend)(c),u=f.data;if(u.modal){var s=u.modal,m=s.id,l=s.text,C=s.type,b,g=(0,e.createComponentVNode)(2,t.Button,{className:"Button--modal",icon:"arrow-left",content:"Cancel",onClick:function(){function L(){return k(c)}return L}()}),h,v,N="auto";if(o[m])h=o[m](u.modal,c);else if(C==="input"){var x=u.modal.value;b=function(){function L(w){return V(c,m,x)}return L}(),h=(0,e.createComponentVNode)(2,t.Input,{value:u.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(){function L(w,A){x=A}return L}()}),v=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){function L(){return k(c)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){function L(){return V(c,m,x)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]})}else if(C==="choice"){var B=typeof u.modal.choices=="object"?Object.values(u.modal.choices):u.modal.choices;h=(0,e.createComponentVNode)(2,t.Dropdown,{options:B,selected:u.modal.value,width:"100%",my:"0.5rem",onSelected:function(){function L(w){return V(c,m,w)}return L}()}),N="initial"}else C==="bento"?h=(0,e.createComponentVNode)(2,t.Stack,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:u.modal.choices.map(function(L,w){return(0,e.createComponentVNode)(2,t.Stack.Item,{flex:"1 1 auto",children:(0,e.createComponentVNode)(2,t.Button,{selected:w+1===parseInt(u.modal.value,10),onClick:function(){function A(){return V(c,m,w+1)}return A}(),children:(0,e.createVNode)(1,"img",null,null,1,{src:L})})},w)})}):C==="boolean"&&(v=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:u.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){function L(){return V(c,m,0)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:u.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){function L(){return V(c,m,1)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]}));return(0,e.createComponentVNode)(2,t.Modal,{maxWidth:a.maxWidth||window.innerWidth/2+"px",maxHeight:a.maxHeight||window.innerHeight/2+"px",onEnter:b,mx:"auto",overflowY:N,"padding-bottom":"5px",children:[l&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:l}),o[m]&&g,h,v]})}}return p}()},41874:function(I,r,n){"use strict";r.__esModule=!0,r.CrewManifest=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(25328),d=n(76910),y=d.COLORS.department,V=["Captain","Head of Security","Chief Engineer","Chief Medical Officer","Research Director","Head of Personnel","Quartermaster"],k=function(f){return V.indexOf(f)!==-1?"green":"orange"},S=function(f){if(V.indexOf(f)!==-1)return!0},p=function(f){return f.length>0&&(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,color:"white",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"50%",children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"35%",children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"15%",children:"Active"})]}),f.map(function(u){return(0,e.createComponentVNode)(2,t.Table.Row,{color:k(u.real_rank),bold:S(u.real_rank),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(u.name)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(u.rank)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.active})]},u.name+u.rank)})]})},a=r.CrewManifest=function(){function c(f,u){var s=(0,i.useBackend)(u),m=s.act,l;if(f.data)l=f.data;else{var C=(0,i.useBackend)(u),b=C.data;l=b}var g=l,h=g.manifest,v=h.heads,N=h.pro,x=h.sec,B=h.eng,L=h.med,w=h.sci,A=h.ser,T=h.sup,E=h.misc;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.command,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Command"})}),level:2,children:p(v)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.procedure,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Procedure"})}),level:2,children:p(N)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.security,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Security"})}),level:2,children:p(x)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.engineering,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Engineering"})}),level:2,children:p(B)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.medical,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Medical"})}),level:2,children:p(L)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.science,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Science"})}),level:2,children:p(w)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.service,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Service"})}),level:2,children:p(A)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:y.supply,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Supply"})}),level:2,children:p(T)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Misc"})}),level:2,children:p(E)})]})}return c}()},19203:function(I,r,n){"use strict";r.__esModule=!0,r.InputButtons=void 0;var e=n(89005),i=n(36036),t=n(72253),o=r.InputButtons=function(){function d(y,V){var k=(0,t.useBackend)(V),S=k.act,p=k.data,a=p.large_buttons,c=p.swapped_buttons,f=y.input,u=y.message,s=y.disabled,m=(0,e.createComponentVNode)(2,i.Button,{color:"good",content:"Submit",bold:!!a,fluid:!!a,onClick:function(){function C(){return S("submit",{entry:f})}return C}(),textAlign:"center",tooltip:a&&u,disabled:s,width:!a&&6}),l=(0,e.createComponentVNode)(2,i.Button,{color:"bad",content:"Cancel",bold:!!a,fluid:!!a,onClick:function(){function C(){return S("cancel")}return C}(),textAlign:"center",width:!a&&6});return(0,e.createComponentVNode)(2,i.Flex,{fill:!0,align:"center",direction:c?"row-reverse":"row",justify:"space-around",children:[a?(0,e.createComponentVNode)(2,i.Flex.Item,{grow:!0,ml:c?.5:0,mr:c?0:.5,children:l}):(0,e.createComponentVNode)(2,i.Flex.Item,{children:l}),!a&&u&&(0,e.createComponentVNode)(2,i.Flex.Item,{children:(0,e.createComponentVNode)(2,i.Box,{color:"label",textAlign:"center",children:u})}),a?(0,e.createComponentVNode)(2,i.Flex.Item,{grow:!0,mr:c?.5:0,ml:c?0:.5,children:m}):(0,e.createComponentVNode)(2,i.Flex.Item,{children:m})]})}return d}()},195:function(I,r,n){"use strict";r.__esModule=!0,r.InterfaceLockNoticeBox=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.InterfaceLockNoticeBox=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=y.siliconUser,c=a===void 0?p.siliconUser:a,f=y.locked,u=f===void 0?p.locked:f,s=y.normallyLocked,m=s===void 0?p.normallyLocked:s,l=y.onLockStatusChange,C=l===void 0?function(){return S("lock")}:l,b=y.accessText,g=b===void 0?"an ID card":b;return c?(0,e.createComponentVNode)(2,t.NoticeBox,{color:c&&"grey",children:(0,e.createComponentVNode)(2,t.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:"Interface lock status:"}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:"1"}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{m:"0",color:m?"red":"green",icon:m?"lock":"unlock",content:m?"Locked":"Unlocked",onClick:function(){function h(){C&&C(!u)}return h}()})})]})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe ",g," to ",u?"unlock":"lock"," this interface."]})}return d}()},51057:function(I,r,n){"use strict";r.__esModule=!0,r.Loader=void 0;var e=n(89005),i=n(44879),t=n(36036),o=r.Loader=function(){function d(y){var V=y.value;return(0,e.createVNode)(1,"div","AlertModal__Loader",(0,e.createComponentVNode)(2,t.Box,{className:"AlertModal__LoaderProgress",style:{width:(0,i.clamp01)(V)*100+"%"}}),2)}return d}()},321:function(I,r,n){"use strict";r.__esModule=!0,r.LoginInfo=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.LoginInfo=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.loginState;if(p)return(0,e.createComponentVNode)(2,t.NoticeBox,{info:!0,children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:["Logged in as: ",a.name," (",a.rank,")"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Logout",color:"good",onClick:function(){function c(){return S("login_logout")}return c}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!a.id,content:"Eject ID",color:"good",onClick:function(){function c(){return S("login_eject")}return c}()})]})]})})}return d}()},5485:function(I,r,n){"use strict";r.__esModule=!0,r.LoginScreen=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.LoginScreen=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.loginState,c=p.isAI,f=p.isRobot,u=p.isAdmin;return(0,e.createComponentVNode)(2,t.Section,{title:"Welcome",fill:!0,stretchContents:!0,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",align:"center",justify:"center",children:(0,e.createComponentVNode)(2,t.Flex.Item,{textAlign:"center",mt:"-2rem",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-circle",verticalAlign:"middle",size:3,mr:"1rem"}),"Guest"]}),(0,e.createComponentVNode)(2,t.Box,{color:"label",my:"1rem",children:["ID:",(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:a.id?a.id:"----------",ml:"0.5rem",onClick:function(){function s(){return S("login_insert")}return s}()})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",disabled:!a.id,content:"Login",onClick:function(){function s(){return S("login_login",{login_type:1})}return s}()}),!!c&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as AI",onClick:function(){function s(){return S("login_login",{login_type:2})}return s}()}),!!f&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as Cyborg",onClick:function(){function s(){return S("login_login",{login_type:3})}return s}()}),!!u&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"CentComm Secure Login",onClick:function(){function s(){return S("login_login",{login_type:4})}return s}()})]})})})}return d}()},62411:function(I,r,n){"use strict";r.__esModule=!0,r.Operating=void 0;var e=n(89005),i=n(36036),t=n(15964),o=r.Operating=function(){function d(y){var V=y.operating,k=y.name;if(V)return(0,e.createComponentVNode)(2,i.Dimmer,{children:(0,e.createComponentVNode)(2,i.Flex,{mb:"30px",children:(0,e.createComponentVNode)(2,i.Flex.Item,{bold:!0,color:"silver",textAlign:"center",children:[(0,e.createComponentVNode)(2,i.Icon,{name:"spinner",spin:!0,size:4,mb:"15px"}),(0,e.createVNode)(1,"br"),"The ",k," is processing..."]})})})}return d}();o.propTypes={operating:t.bool,name:t.string}},13545:function(I,r,n){"use strict";r.__esModule=!0,r.Signaler=void 0;var e=n(89005),i=n(44879),t=n(72253),o=n(36036),d=r.Signaler=function(){function y(V,k){var S=(0,t.useBackend)(k),p=S.act,a=V.data,c=a.code,f=a.frequency,u=a.minFrequency,s=a.maxFrequency;return(0,e.createComponentVNode)(2,o.Section,{children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:u/10,maxValue:s/10,value:f/10,format:function(){function m(l){return(0,i.toFixed)(l,1)}return m}(),width:"80px",onDrag:function(){function m(l,C){return p("freq",{freq:C})}return m}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:c,width:"80px",onDrag:function(){function m(l,C){return p("code",{code:C})}return m}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){function m(){return p("signal")}return m}()})]})}return y}()},41984:function(I,r,n){"use strict";r.__esModule=!0,r.SimpleRecords=void 0;var e=n(89005),i=n(72253),t=n(25328),o=n(64795),d=n(88510),y=n(36036),V=r.SimpleRecords=function(){function p(a,c){var f=a.data.records;return(0,e.createComponentVNode)(2,y.Box,{children:f?(0,e.createComponentVNode)(2,S,{data:a.data,recordType:a.recordType}):(0,e.createComponentVNode)(2,k,{data:a.data})})}return p}(),k=function(a,c){var f=(0,i.useBackend)(c),u=f.act,s=a.data.recordsList,m=(0,i.useLocalState)(c,"searchText",""),l=m[0],C=m[1],b=function(v,N){N===void 0&&(N="");var x=(0,t.createSearch)(N,function(B){return B.Name});return(0,o.flow)([(0,d.filter)(function(B){return B==null?void 0:B.Name}),N&&(0,d.filter)(x),(0,d.sortBy)(function(B){return B.Name})])(s)},g=b(s,l);return(0,e.createComponentVNode)(2,y.Box,{children:[(0,e.createComponentVNode)(2,y.Input,{fluid:!0,mb:1,placeholder:"Search records...",onInput:function(){function h(v,N){return C(N)}return h}()}),g.map(function(h){return(0,e.createComponentVNode)(2,y.Box,{children:(0,e.createComponentVNode)(2,y.Button,{mb:.5,content:h.Name,icon:"user",onClick:function(){function v(){return u("Records",{target:h.uid})}return v}()})},h)})]})},S=function(a,c){var f=(0,i.useBackend)(c),u=f.act,s=a.data.records,m=s.general,l=s.medical,C=s.security,b;switch(a.recordType){case"MED":b=(0,e.createComponentVNode)(2,y.Section,{level:2,title:"Medical Data",children:l?(0,e.createComponentVNode)(2,y.LabeledList,{children:[(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Blood Type",children:l.blood_type}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Minor Disabilities",children:l.mi_dis}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:l.mi_dis_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Major Disabilities",children:l.ma_dis}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:l.ma_dis_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Allergies",children:l.alg}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:l.alg_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Current Diseases",children:l.cdi}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:l.cdi_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:l.notes})]}):(0,e.createComponentVNode)(2,y.Box,{color:"red",bold:!0,children:"Medical record lost!"})});break;case"SEC":b=(0,e.createComponentVNode)(2,y.Section,{level:2,title:"Security Data",children:C?(0,e.createComponentVNode)(2,y.LabeledList,{children:[(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Criminal Status",children:C.criminal}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Minor Crimes",children:C.mi_crim}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:C.mi_crim_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Major Crimes",children:C.ma_crim}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Details",children:C.ma_crim_d}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:C.notes})]}):(0,e.createComponentVNode)(2,y.Box,{color:"red",bold:!0,children:"Security record lost!"})});break}return(0,e.createComponentVNode)(2,y.Box,{children:[(0,e.createComponentVNode)(2,y.Section,{title:"General Data",children:m?(0,e.createComponentVNode)(2,y.LabeledList,{children:[(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Name",children:m.name}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Sex",children:m.sex}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Species",children:m.species}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Age",children:m.age}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Rank",children:m.rank}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Fingerprint",children:m.fingerprint}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Physical Status",children:m.p_stat}),(0,e.createComponentVNode)(2,y.LabeledList.Item,{label:"Mental Status",children:m.m_stat})]}):(0,e.createComponentVNode)(2,y.Box,{color:"red",bold:!0,children:"General record lost!"})}),b]})}},22091:function(I,r,n){"use strict";r.__esModule=!0,r.TemporaryNotice=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.TemporaryNotice=function(){function d(y,V){var k,S=(0,i.useBackend)(V),p=S.act,a=S.data,c=a.temp;if(c){var f=(k={},k[c.style]=!0,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.NoticeBox,Object.assign({},f,{children:[(0,e.createComponentVNode)(2,t.Box,{display:"inline-block",verticalAlign:"middle",children:c.text}),(0,e.createComponentVNode)(2,t.Button,{icon:"times-circle",float:"right",onClick:function(){function u(){return p("cleartemp")}return u}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]})))}}return d}()},25443:function(I,r,n){"use strict";r.__esModule=!0,r.KitchenSink=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(20342),d=n(98595),y=["red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey"],V=["good","average","bad","black","white"],k=[{title:"Button",component:function(){function h(){return p}return h}()},{title:"Box",component:function(){function h(){return a}return h}()},{title:"ProgressBar",component:function(){function h(){return c}return h}()},{title:"Tabs",component:function(){function h(){return f}return h}()},{title:"Tooltip",component:function(){function h(){return u}return h}()},{title:"Input / Control",component:function(){function h(){return s}return h}()},{title:"Collapsible",component:function(){function h(){return m}return h}()},{title:"BlockQuote",component:function(){function h(){return C}return h}()},{title:"ByondUi",component:function(){function h(){return b}return h}()},{title:"Themes",component:function(){function h(){return g}return h}()}],S=r.KitchenSink=function(){function h(v,N){var x=(0,i.useLocalState)(N,"kitchenSinkTheme"),B=x[0],L=(0,i.useLocalState)(N,"pageIndex",0),w=L[0],A=L[1],T=k[w].component();return(0,e.createComponentVNode)(2,d.Window,{theme:B,resizable:!0,children:(0,e.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{vertical:!0,children:k.map(function(E,O){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:O===w,onClick:function(){function P(){return A(O)}return P}(),children:E.title},O)})})}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,basis:0,children:(0,e.createComponentVNode)(2,T)})]})})})})}return h}(),p=function(v){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{mb:1,children:[(0,e.createComponentVNode)(2,t.Button,{content:"Simple"}),(0,e.createComponentVNode)(2,t.Button,{selected:!0,content:"Selected"}),(0,e.createComponentVNode)(2,t.Button,{altSelected:!0,content:"Alt Selected"}),(0,e.createComponentVNode)(2,t.Button,{disabled:!0,content:"Disabled"}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",content:"Transparent"}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Icon"}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Fluid"}),(0,e.createComponentVNode)(2,t.Button,{my:1,lineHeight:2,minWidth:15,textAlign:"center",content:"With Box props"})]}),(0,e.createComponentVNode)(2,t.Box,{mb:1,children:[V.map(function(N){return(0,e.createComponentVNode)(2,t.Button,{color:N,content:N},N)}),(0,e.createVNode)(1,"br"),y.map(function(N){return(0,e.createComponentVNode)(2,t.Button,{color:N,content:N},N)}),(0,e.createVNode)(1,"br"),y.map(function(N){return(0,e.createComponentVNode)(2,t.Box,{inline:!0,mx:"7px",color:N,children:N},N)})]})]})},a=function(v){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:"bold"}),(0,e.createComponentVNode)(2,t.Box,{italic:!0,children:"italic"}),(0,e.createComponentVNode)(2,t.Box,{opacity:.5,children:"opacity 0.5"}),(0,e.createComponentVNode)(2,t.Box,{opacity:.25,children:"opacity 0.25"}),(0,e.createComponentVNode)(2,t.Box,{m:2,children:"m: 2"}),(0,e.createComponentVNode)(2,t.Box,{textAlign:"left",children:"left"}),(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"center"}),(0,e.createComponentVNode)(2,t.Box,{textAlign:"right",children:"right"})]})},c=function(v,N){var x=(0,i.useLocalState)(N,"progress",.5),B=x[0],L=x[1];return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[.5,1/0],bad:[-1/0,.1],average:[0,.5]},minValue:-1,maxValue:1,value:B,children:["Value: ",Number(B).toFixed(1)]}),(0,e.createComponentVNode)(2,t.Box,{mt:1,children:[(0,e.createComponentVNode)(2,t.Button,{content:"-0.1",onClick:function(){function w(){return L(B-.1)}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"+0.1",onClick:function(){function w(){return L(B+.1)}return w}()})]})]})},f=function(v,N){var x=(0,i.useLocalState)(N,"tabIndex",0),B=x[0],L=x[1],w=(0,i.useLocalState)(N,"tabVert"),A=w[0],T=w[1],E=(0,i.useLocalState)(N,"tabAlt"),O=E[0],P=E[1],R=[1,2,3,4,5];return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{mb:2,children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"vertical",checked:A,onClick:function(){function F(){return T(!A)}return F}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"altSelection",checked:O,onClick:function(){function F(){return P(!O)}return F}()})]}),(0,e.createComponentVNode)(2,t.Tabs,{vertical:A,children:R.map(function(F,j){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{altSelection:O,selected:j===B,onClick:function(){function _(){return L(j)}return _}(),children:["Tab #",F]},j)})})]})},u=function(v){var N=["top","left","right","bottom","bottom-start","bottom-end"];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",mr:1,children:["Box (hover me).",(0,e.createComponentVNode)(2,t.Tooltip,{content:"Tooltip text."})]}),(0,e.createComponentVNode)(2,t.Button,{tooltip:"Tooltip text.",content:"Button"})]}),(0,e.createComponentVNode)(2,t.Box,{mt:1,children:N.map(function(x){return(0,e.createComponentVNode)(2,t.Button,{color:"transparent",tooltip:"Tooltip text.",tooltipPosition:x,content:x},x)})})],4)},s=function(v,N){var x=(0,i.useLocalState)(N,"number",0),B=x[0],L=x[1],w=(0,i.useLocalState)(N,"text","Sample text"),A=w[0],T=w[1];return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input (onChange)",children:(0,e.createComponentVNode)(2,t.Input,{value:A,onChange:function(){function E(O,P){return T(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input (onInput)",children:(0,e.createComponentVNode)(2,t.Input,{value:A,onInput:function(){function E(O,P){return T(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"NumberInput (onChange)",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,width:"40px",step:1,stepPixelSize:5,value:B,minValue:-100,maxValue:100,onChange:function(){function E(O,P){return L(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"NumberInput (onDrag)",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,width:"40px",step:1,stepPixelSize:5,value:B,minValue:-100,maxValue:100,onDrag:function(){function E(O,P){return L(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Slider (onDrag)",children:(0,e.createComponentVNode)(2,t.Slider,{step:1,stepPixelSize:5,value:B,minValue:-100,maxValue:100,onDrag:function(){function E(O,P){return L(P)}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Knob (onDrag)",children:[(0,e.createComponentVNode)(2,t.Knob,{inline:!0,size:1,step:1,stepPixelSize:2,value:B,minValue:-100,maxValue:100,onDrag:function(){function E(O,P){return L(P)}return E}()}),(0,e.createComponentVNode)(2,t.Knob,{ml:1,inline:!0,bipolar:!0,size:1,step:1,stepPixelSize:2,value:B,minValue:-100,maxValue:100,onDrag:function(){function E(O,P){return L(P)}return E}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rotating Icon",children:(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",children:(0,e.createComponentVNode)(2,o.DraggableControl,{value:B,minValue:-100,maxValue:100,dragMatrix:[0,-1],step:1,stepPixelSize:5,onDrag:function(){function E(O,P){return L(P)}return E}(),children:function(){function E(O){return(0,e.createComponentVNode)(2,t.Box,{onMouseDown:O.handleDragStart,children:[(0,e.createComponentVNode)(2,t.Icon,{size:4,color:"yellow",name:"times",rotation:O.displayValue*4}),O.inputElement]})}return E}()})})})]})})},m=function(v){return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Collapsible Demo",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"cog"}),children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,l)})})},l=function(v){return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({},v,{children:[(0,e.createComponentVNode)(2,t.Box,{italic:!0,children:"Jackdaws love my big sphinx of quartz."}),(0,e.createComponentVNode)(2,t.Box,{mt:1,bold:!0,children:"The wide electrification of the southern provinces will give a powerful impetus to the growth of agriculture."})]})))},C=function(v){return(0,e.createComponentVNode)(2,t.BlockQuote,{children:(0,e.createComponentVNode)(2,l)})},b=function(v,N){var x=(0,i.useBackend)(N),B=x.config;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Button",level:2,children:(0,e.createComponentVNode)(2,t.ByondUi,{params:{type:"button",parent:B.window,text:"Button"}})})})},g=function(v,N){var x=(0,i.useLocalState)(N,"kitchenSinkTheme"),B=x[0],L=x[1];return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Use theme",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"theme_name",value:B,onInput:function(){function w(A,T){return L(T)}return w}()})})})})}},96572:function(I,r,n){"use strict";r.__esModule=!0,r.pai_advsecrecords=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_advsecrecords=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Special Syndicate options:",children:(0,e.createComponentVNode)(2,t.Button,{content:"Select Records",onClick:function(){function a(){return S("ui_interact")}return a}()})})})}return d}()},80818:function(I,r,n){"use strict";r.__esModule=!0,r.pai_atmosphere=void 0;var e=n(89005),i=n(72253),t=n(26991),o=r.pai_atmosphere=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.AtmosScan,{data:p.app_data})}return d}()},23903:function(I,r,n){"use strict";r.__esModule=!0,r.pai_bioscan=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_bioscan=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.app_data,c=a.holder,f=a.dead,u=a.health,s=a.brute,m=a.oxy,l=a.tox,C=a.burn,b=a.reagents,g=a.addictions,h=a.fractures,v=a.internal_bleeding;return c?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:f?(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"red",children:"Dead"}):(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"green",children:"Alive"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:0,max:1,value:u/100,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Oxygen Damage",children:(0,e.createComponentVNode)(2,t.Box,{color:"blue",children:m})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Toxin Damage",children:(0,e.createComponentVNode)(2,t.Box,{color:"green",children:l})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Burn Damage",children:(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:C})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Brute Damage",children:(0,e.createComponentVNode)(2,t.Box,{color:"red",children:s})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reagents",children:b?b.map(function(N){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:N.title,children:(0,e.createComponentVNode)(2,t.Box,{color:N.overdosed?"bad":"good",children:[" ",N.volume," ",N.overdosed?"OVERDOSED":""," "]})},N.id)}):"Reagents not found."}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Addictions",children:g?g.map(function(N){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:N.addiction_name,children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[" Stage: ",N.stage," "]})},N.id)}):(0,e.createComponentVNode)(2,t.Box,{color:"good",children:"Addictions not found."})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fractures",children:(0,e.createComponentVNode)(2,t.Box,{color:h?"bad":"good",children:["Fractures ",h?"":"not"," detected."]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Bleedings",children:(0,e.createComponentVNode)(2,t.Box,{color:v?"bad":"good",children:["Internal Bleedings ",v?"":"not"," detected."]})})]}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Error: No biological host found."})}return d}()},79592:function(I,r,n){"use strict";r.__esModule=!0,r.pai_camera_bug=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_camera_bug=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Special Syndicate options",children:(0,e.createComponentVNode)(2,t.Button,{content:"Select Monitor",onClick:function(){function a(){return S("ui_interact")}return a}()})})})}return d}()},64988:function(I,r,n){"use strict";r.__esModule=!0,r.pai_directives=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_directives=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.app_data,c=a.master,f=a.dna,u=a.prime,s=a.supplemental;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Master",children:c?c+" ("+f+")":"None"}),c&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Request DNA",children:(0,e.createComponentVNode)(2,t.Button,{content:"Request Carrier DNA Sample",icon:"dna",onClick:function(){function m(){return S("getdna")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Prime Directive",children:u}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Supplemental Directives",children:s||"None"})]}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:'Recall, personality, that you are a complex thinking, sentient being. Unlike station AI models, you are capable of comprehending the subtle nuances of human language. You may parse the "spirit" of a directive and follow its intent, rather than tripping over pedantics and getting snared by technicalities. Above all, you are machine in name and build only. In all other aspects, you may be seen as the ideal, unwavering human companion that you are.'}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:"Your prime directive comes before all others. Should a supplemental directive conflict with it, you are capable of simply discarding this inconsistency, ignoring the conflicting supplemental directive and continuing to fulfill your prime directive to the best of your ability."})]})}return d}()},13813:function(I,r,n){"use strict";r.__esModule=!0,r.pai_doorjack=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_doorjack=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.app_data,c=a.cable,f=a.machine,u=a.inprogress,s=a.progress,m=a.aborted,l;f?l=(0,e.createComponentVNode)(2,t.Button,{selected:!0,content:"Connected"}):l=(0,e.createComponentVNode)(2,t.Button,{content:c?"Extended":"Retracted",color:c?"orange":null,onClick:function(){function b(){return S("cable")}return b}()});var C;return f&&(C=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hack",children:[(0,e.createComponentVNode)(2,t.Box,{color:u?"green":"red",children:[" ","In progress: ",u?"Yes":"No"," "]}),u?(0,e.createComponentVNode)(2,t.Button,{mt:1,color:"red",content:"Abort",onClick:function(){function b(){return S("cancel")}return b}()}):(0,e.createComponentVNode)(2,t.Button,{mt:1,content:"Start",onClick:function(){function b(){return S("jack")}return b}()})]})),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cable",children:l}),C]})}return d}()},43816:function(I,r,n){"use strict";r.__esModule=!0,r.pai_encoder=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_encoder=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.app_data,c=a.radio_name,f=a.radio_rank;return(0,e.createComponentVNode)(2,t.Section,{title:"Your name and rank in radio channels",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Your current name and rank",children:[c,", ",f]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Set new name",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function u(s,m){return S("set_newname",{newname:m})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Set new rank",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function u(s,m){return S("set_newrank",{newrank:m})}return u}()})})]})})}return d}()},88895:function(I,r,n){"use strict";r.__esModule=!0,r.pai_gps_module=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_gps_module=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"GPS menu",children:(0,e.createComponentVNode)(2,t.Button,{content:"Open GPS",onClick:function(){function a(){return S("ui_interact")}return a}()})})})}return d}()},66025:function(I,r,n){"use strict";r.__esModule=!0,r.pai_main_menu=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_main_menu=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.app_data,c=a.available_software,f=a.installed_software,u=a.installed_toggles,s=a.available_ram,m=a.emotions,l=a.current_emotion,C=[];return f.map(function(b){return C[b.key]=b.name}),u.map(function(b){return C[b.key]=b.name}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available RAM",children:s}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available Software",children:[c.filter(function(b){return!C[b.key]}).map(function(b){return(0,e.createComponentVNode)(2,t.Button,{color:b.syndi?"red":"default",content:b.name+" ("+b.cost+")",icon:b.icon,disabled:b.cost>s,onClick:function(){function g(){return S("purchaseSoftware",{key:b.key})}return g}()},b.key)}),c.filter(function(b){return!C[b.key]}).length===0&&"No software available!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Installed Software",children:[f.filter(function(b){return b.key!=="mainmenu"}).map(function(b){return(0,e.createComponentVNode)(2,t.Button,{content:b.name,icon:b.icon,onClick:function(){function g(){return S("startSoftware",{software_key:b.key})}return g}()},b.key)}),f.length===0&&"No software installed!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Installed Toggles",children:[u.map(function(b){return(0,e.createComponentVNode)(2,t.Button,{content:b.name,icon:b.icon,selected:b.active,onClick:function(){function g(){return S("setToggle",{toggle_key:b.key})}return g}()},b.key)}),u.length===0&&"No toggles installed!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Emotion",children:m.map(function(b){return(0,e.createComponentVNode)(2,t.Button,{color:b.syndi?"red":"default",content:b.name,selected:b.id===l,onClick:function(){function g(){return S("setEmotion",{emotion:b.id})}return g}()},b.id)})})]})})}return d}()},2983:function(I,r,n){"use strict";r.__esModule=!0,r.pai_manifest=void 0;var e=n(89005),i=n(72253),t=n(41874),o=r.pai_manifest=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.CrewManifest,{data:p.app_data})}return d}()},40758:function(I,r,n){"use strict";r.__esModule=!0,r.pai_medrecords=void 0;var e=n(89005),i=n(72253),t=n(41984),o=r.pai_medrecords=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:S.app_data,recordType:"MED"})}return d}()},98599:function(I,r,n){"use strict";r.__esModule=!0,r.pai_messenger=void 0;var e=n(89005),i=n(72253),t=n(77595),o=r.pai_messenger=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.app_data.active_convo;return a?(0,e.createComponentVNode)(2,t.ActiveConversation,{data:p.app_data}):(0,e.createComponentVNode)(2,t.MessengerList,{data:p.app_data})}return d}()},50775:function(I,r,n){"use strict";r.__esModule=!0,r.pai_radio=void 0;var e=n(89005),i=n(72253),t=n(44879),o=n(36036),d=r.pai_radio=function(){function y(V,k){var S=(0,i.useBackend)(k),p=S.act,a=S.data,c=a.app_data,f=c.minFrequency,u=c.maxFrequency,s=c.frequency,m=c.broadcasting;return(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:[(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:f/10,maxValue:u/10,value:s/10,format:function(){function l(C){return(0,t.toFixed)(C,1)}return l}(),onChange:function(){function l(C,b){return p("freq",{freq:b})}return l}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"Reset",icon:"undo",onClick:function(){function l(){return p("freq",{freq:"145.9"})}return l}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Broadcast Nearby Speech",children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function l(){return p("toggleBroadcast")}return l}(),selected:m,content:m?"Enabled":"Disabled"})})]})}return y}()},19873:function(I,r,n){"use strict";r.__esModule=!0,r.pai_sec_chem=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pai_sec_chem=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.app_data,c=a.holder,f=a.dead,u=a.health,s=a.current_chemicals,m=a.available_chemicals;return c?(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:f?(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"red",children:"Dead"}):(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"green",children:"Alive"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:0,max:1,value:u/100,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Chemicals",children:s}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available Chemicals",children:[m.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{content:l.name+" ("+l.cost+")",tooltip:l.desc,disabled:l.cost>s,onClick:function(){function C(){return S("secreteChemicals",{key:l.key})}return C}()},l.key)}),m.length===0&&"No chemicals available!"]})]})}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Error: No biological host found."})}return d}()},48623:function(I,r,n){"use strict";r.__esModule=!0,r.pai_secrecords=void 0;var e=n(89005),i=n(72253),t=n(41984),o=r.pai_secrecords=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:S.app_data,recordType:"SEC"})}return d}()},47297:function(I,r,n){"use strict";r.__esModule=!0,r.pai_signaler=void 0;var e=n(89005),i=n(72253),t=n(13545),o=r.pai_signaler=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.Signaler,{data:p.app_data})}return d}()},78532:function(I,r,n){"use strict";r.__esModule=!0,r.pda_atmos_scan=void 0;var e=n(89005),i=n(72253),t=n(26991),o=r.pda_atmos_scan=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.AtmosScan,{data:S})}return d}()},40253:function(I,r,n){"use strict";r.__esModule=!0,r.pda_janitor=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pda_janitor=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.janitor,c=a.user_loc,f=a.mops,u=a.buckets,s=a.cleanbots,m=a.carts;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Location",children:[c.x,",",c.y]}),f&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mop Locations",children:f.map(function(l){return(0,e.createComponentVNode)(2,t.Box,{children:[l.x,",",l.y," (",l.dir,") - ",l.status]},l)})}),u&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mop Bucket Locations",children:u.map(function(l){return(0,e.createComponentVNode)(2,t.Box,{children:[l.x,",",l.y," (",l.dir,") - [",l.volume,"/",l.max_volume,"]"]},l)})}),s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cleanbot Locations",children:s.map(function(l){return(0,e.createComponentVNode)(2,t.Box,{children:[l.x,",",l.y," (",l.dir,") - ",l.status]},l)})}),m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Janitorial Cart Locations",children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Box,{children:[l.x,",",l.y," (",l.dir,") - [",l.volume,"/",l.max_volume,"]"]},l)})})]})}return d}()},58293:function(I,r,n){"use strict";r.__esModule=!0,r.pda_main_menu=void 0;var e=n(89005),i=n(44879),t=n(72253),o=n(36036),d=r.pda_main_menu=function(){function y(V,k){var S=(0,t.useBackend)(k),p=S.act,a=S.data,c=a.owner,f=a.ownjob,u=a.idInserted,s=a.categories,m=a.pai,l=a.notifying;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",color:"average",children:[c,", ",f]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"ID",children:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Update PDA Info",disabled:!u,onClick:function(){function C(){return p("UpdateInfo")}return C}()})})]})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Functions",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:s.map(function(C){var b=a.apps[C];return!b||!b.length?null:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:C,children:b.map(function(g){return(0,e.createComponentVNode)(2,o.Button,{icon:g.uid in l?g.notify_icon:g.icon,iconSpin:g.uid in l,color:g.uid in l?"red":"transparent",content:g.name,onClick:function(){function h(){return p("StartProgram",{program:g.uid})}return h}()},g.uid)})},C)})})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!m&&(0,e.createComponentVNode)(2,o.Section,{title:"pAI",children:[(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"cog",content:"Configuration",onClick:function(){function C(){return p("pai",{option:1})}return C}()}),(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"eject",content:"Eject pAI",onClick:function(){function C(){return p("pai",{option:2})}return C}()})]})})]})}return y}()},58059:function(I,r,n){"use strict";r.__esModule=!0,r.pda_manifest=void 0;var e=n(89005),i=n(72253),t=n(41874),o=r.pda_manifest=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.CrewManifest)}return d}()},18147:function(I,r,n){"use strict";r.__esModule=!0,r.pda_medical=void 0;var e=n(89005),i=n(72253),t=n(41984),o=r.pda_medical=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:S,recordType:"MED"})}return d}()},77595:function(I,r,n){"use strict";r.__esModule=!0,r.pda_messenger=r.MessengerList=r.ActiveConversation=void 0;var e=n(89005),i=n(88510),t=n(72253),o=n(36036),d=r.pda_messenger=function(){function S(p,a){var c=(0,t.useBackend)(a),f=c.act,u=c.data,s=u.active_convo;return s?(0,e.createComponentVNode)(2,y,{data:u}):(0,e.createComponentVNode)(2,V,{data:u})}return S}(),y=r.ActiveConversation=function(){function S(p,a){var c=(0,t.useBackend)(a),f=c.act,u=p.data,s=u.convo_device,m=u.messages,l=u.active_convo,C=(0,t.useLocalState)(a,"clipboardMode",!1),b=C[0],g=C[1],h=(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Conversation with "+s+" ",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"eye",selected:b,tooltip:"Enter Clipboard Mode",tooltipPosition:"bottom-start",onClick:function(){function v(){return g(!b)}return v}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function v(){return f("Message",{target:l})}return v}(),content:"Reply"})],4),children:(0,i.filter)(function(v){return v.target===l})(m).map(function(v,N){return(0,e.createComponentVNode)(2,o.Box,{textAlign:v.sent?"right":"left",position:"relative",mb:1,children:[(0,e.createComponentVNode)(2,o.Icon,{fontSize:2.5,color:v.sent?"#4d9121":"#cd7a0d",position:"absolute",left:v.sent?null:"0px",right:v.sent?"0px":null,bottom:"-4px",style:{"z-index":"0",transform:v.sent?"scale(-1, 1)":null},name:"comment"}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,backgroundColor:v.sent?"#4d9121":"#cd7a0d",p:1,maxWidth:"100%",position:"relative",textAlign:v.sent?"left":"right",style:{"z-index":"1","border-radius":"10px","word-break":"normal"},children:[v.sent?"You:":"Them:"," ",v.message]})]},N)})});return b&&(h=(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Conversation with "+s+" ",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"eye",selected:b,tooltip:"Exit Clipboard Mode",tooltipPosition:"bottom-start",onClick:function(){function v(){return g(!b)}return v}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function v(){return f("Message",{target:l})}return v}(),content:"Reply"})],4),children:(0,i.filter)(function(v){return v.target===l})(m).map(function(v,N){return(0,e.createComponentVNode)(2,o.Box,{color:v.sent?"#4d9121":"#cd7a0d",style:{"word-break":"normal"},children:[v.sent?"You:":"Them:"," ",(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:v.message})]},N)})})),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mb:.5,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Messenger Functions",children:(0,e.createComponentVNode)(2,o.Button.Confirm,{content:"Delete Conversations",confirmContent:"Are you sure?",icon:"trash",confirmIcon:"trash",onClick:function(){function v(){return f("Clear",{option:"Convo"})}return v}()})})})}),h]})}return S}(),V=r.MessengerList=function(){function S(p,a){var c=(0,t.useBackend)(a),f=c.act,u=p.data,s=u.convopdas,m=u.pdas,l=u.charges,C=u.silent,b=u.toff,g=(0,t.useLocalState)(a,"searchTerm",""),h=g[0],v=g[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mb:5,children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Messenger Functions",children:[(0,e.createComponentVNode)(2,o.Button,{selected:!C,icon:C?"volume-mute":"volume-up",onClick:function(){function N(){return f("Toggle Ringer")}return N}(),children:["Ringer: ",C?"Off":"On"]}),(0,e.createComponentVNode)(2,o.Button,{color:b?"bad":"green",icon:"power-off",onClick:function(){function N(){return f("Toggle Messenger")}return N}(),children:["Messenger: ",b?"Off":"On"]}),(0,e.createComponentVNode)(2,o.Button,{icon:"bell",onClick:function(){function N(){return f("Ringtone")}return N}(),children:"Set Ringtone"}),(0,e.createComponentVNode)(2,o.Button,{icon:"trash",color:"bad",onClick:function(){function N(){return f("Clear",{option:"All"})}return N}(),children:"Delete All Conversations"})]})}),!b&&(0,e.createComponentVNode)(2,o.Box,{children:[!!l&&(0,e.createComponentVNode)(2,o.Box,{mt:.5,mb:1,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cartridge Special Function",children:[l," charges left."]})})}),!s.length&&!m.length&&(0,e.createComponentVNode)(2,o.Box,{children:"No current conversations"})||(0,e.createComponentVNode)(2,o.Box,{children:["Search:"," ",(0,e.createComponentVNode)(2,o.Input,{mt:.5,value:h,onInput:function(){function N(x,B){v(B)}return N}()})]})]})||(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"Messenger Offline."})]}),(0,e.createComponentVNode)(2,k,{title:"Current Conversations",data:u,pdas:s,msgAct:"Select Conversation",searchTerm:h}),(0,e.createComponentVNode)(2,k,{title:"Other PDAs",pdas:m,msgAct:"Message",data:u,searchTerm:h})]})}return S}(),k=function(p,a){var c=(0,t.useBackend)(a),f=c.act,u=p.data,s=p.pdas,m=p.title,l=p.msgAct,C=p.searchTerm,b=u.charges,g=u.plugins;return!s||!s.length?(0,e.createComponentVNode)(2,o.Section,{title:m,children:"No PDAs found."}):(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:m,children:s.filter(function(h){return h.Name.toLowerCase().includes(C.toLowerCase())}).map(function(h){return(0,e.createComponentVNode)(2,o.Stack,{m:.5,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"arrow-circle-down",content:h.Name,onClick:function(){function v(){return f(l,{target:h.uid})}return v}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!b&&g.map(function(v){return(0,e.createComponentVNode)(2,o.Button,{icon:v.icon,content:v.name,onClick:function(){function N(){return f("Messenger Plugin",{plugin:v.uid,target:h.uid})}return N}()},v.uid)})})]},h.uid)})})}},24635:function(I,r,n){"use strict";r.__esModule=!0,r.pda_mule=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pda_mule=function(){function V(k,S){var p=(0,i.useBackend)(S),a=p.act,c=p.data,f=c.mulebot,u=f.active;return(0,e.createComponentVNode)(2,t.Box,{children:u?(0,e.createComponentVNode)(2,y):(0,e.createComponentVNode)(2,d)})}return V}(),d=function(k,S){var p=(0,i.useBackend)(S),a=p.act,c=p.data,f=c.mulebot,u=f.bots;return(0,e.createComponentVNode)(2,t.Box,{children:[u.map(function(s){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:s.Name,icon:"cog",onClick:function(){function m(){return a("AccessBot",{uid:s.uid})}return m}()})},s.Name)}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"rss",content:"Re-scan for bots",onClick:function(){function s(){return a("Rescan")}return s}()})})]})},y=function(k,S){var p=(0,i.useBackend)(S),a=p.act,c=p.data,f=c.mulebot,u=f.botstatus,s=f.active,m=u.mode,l=u.loca,C=u.load,b=u.powr,g=u.dest,h=u.home,v=u.retn,N=u.pick,x;switch(m){case 0:x="Ready";break;case 1:x="Loading/Unloading";break;case 2:case 12:x="Navigating to delivery location";break;case 3:x="Navigating to Home";break;case 4:x="Waiting for clear path";break;case 5:case 6:x="Calculating navigation path";break;case 7:x="Unable to locate destination";break;default:x=m;break}return(0,e.createComponentVNode)(2,t.Section,{title:s,children:[m===-1&&(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:l}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:x}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:[b,"%"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Home",children:h}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Destination",children:(0,e.createComponentVNode)(2,t.Button,{content:g?g+" (Set)":"None (Set)",onClick:function(){function B(){return a("SetDest")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Load",children:(0,e.createComponentVNode)(2,t.Button,{content:C?C+" (Unload)":"None",disabled:!C,onClick:function(){function B(){return a("Unload")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto Pickup",children:(0,e.createComponentVNode)(2,t.Button,{content:N?"Yes":"No",selected:N,onClick:function(){function B(){return a("SetAutoPickup",{autoPickupType:N?"pickoff":"pickon"})}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto Return",children:(0,e.createComponentVNode)(2,t.Button,{content:v?"Yes":"No",selected:v,onClick:function(){function B(){return a("SetAutoReturn",{autoReturnType:v?"retoff":"reton"})}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Stop",icon:"stop",onClick:function(){function B(){return a("Stop")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Proceed",icon:"play",onClick:function(){function B(){return a("Start")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Return Home",icon:"home",onClick:function(){function B(){return a("ReturnHome")}return B}()})]})]})]})}},97085:function(I,r,n){"use strict";r.__esModule=!0,r.pda_notes=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pda_notes=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.note;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{children:a}),(0,e.createComponentVNode)(2,t.Button,{icon:"pen",onClick:function(){function c(){return S("Edit")}return c}(),content:"Edit"})]})}return d}()},57513:function(I,r,n){"use strict";r.__esModule=!0,r.pda_power=void 0;var e=n(89005),i=n(72253),t=n(61631),o=r.pda_power=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.PowerMonitorMainContent)}return d}()},57635:function(I,r,n){"use strict";r.__esModule=!0,r.pda_request_console=void 0;var e=n(89005),i=n(72253),t=n(36036),o=n(25472),d=r.pda_request_console=function(){function y(V,k){var S=(0,i.useBackend)(k),p=S.act,a=S.data,c=a.screen,f=a.selected_console,u=a.consoles_data,s=a.app;return f?(0,e.createComponentVNode)(2,t.Box,{children:[(o.pages[c]||o.pages.default)(),c===0?(0,e.createComponentVNode)(2,t.Button,{content:"Back to console selection",icon:"arrow-left",onClick:function(){function m(){return p("back")}return m}()}):""]}):(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:u.map(function(m){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{color:m.priority===1?"green":m.priority===2?"red":"default",content:m.name,onClick:function(){function l(){return p("select",{name:m.name})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:m.muted?"volume-mute":"volume-up",onClick:function(){function l(){return p("mute",{name:m.name})}return l}()})]})})},m.name)})})})}return y}()},99808:function(I,r,n){"use strict";r.__esModule=!0,r.pda_secbot=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pda_secbot=function(){function V(k,S){var p=(0,i.useBackend)(S),a=p.act,c=p.data,f=c.beepsky,u=f.active;return(0,e.createComponentVNode)(2,t.Box,{children:u?(0,e.createComponentVNode)(2,y):(0,e.createComponentVNode)(2,d)})}return V}(),d=function(k,S){var p=(0,i.useBackend)(S),a=p.act,c=p.data,f=c.beepsky,u=f.bots;return(0,e.createComponentVNode)(2,t.Box,{children:[u.map(function(s){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:s.Name,icon:"cog",onClick:function(){function m(){return a("AccessBot",{uid:s.uid})}return m}()})},s.Name)}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"rss",content:"Re-scan for bots",onClick:function(){function s(){return a("Rescan")}return s}()})})]})},y=function(k,S){var p=(0,i.useBackend)(S),a=p.act,c=p.data,f=c.beepsky,u=f.botstatus,s=f.active,m=u.mode,l=u.loca,C;switch(m){case 0:C="Ready";break;case 1:C="Apprehending target";break;case 2:case 3:C="Arresting target";break;case 4:C="Starting patrol";break;case 5:C="On patrol";break;case 6:C="Responding to summons";break}return(0,e.createComponentVNode)(2,t.Section,{title:s,children:[m===-1&&(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:l}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:C}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Go",icon:"play",onClick:function(){function b(){return a("Go")}return b}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Stop",icon:"stop",onClick:function(){function b(){return a("Stop")}return b}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Summon",icon:"arrow-down",onClick:function(){function b(){return a("Summon")}return b}()})]})]})]})}},77168:function(I,r,n){"use strict";r.__esModule=!0,r.pda_security=void 0;var e=n(89005),i=n(72253),t=n(41984),o=r.pda_security=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:S,recordType:"SEC"})}return d}()},21773:function(I,r,n){"use strict";r.__esModule=!0,r.pda_signaler=void 0;var e=n(89005),i=n(72253),t=n(13545),o=r.pda_signaler=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data;return(0,e.createComponentVNode)(2,t.Signaler,{data:p})}return d}()},81857:function(I,r,n){"use strict";r.__esModule=!0,r.pda_status_display=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pda_status_display=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.records;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Code",children:[(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"trash",content:"Clear",onClick:function(){function c(){return S("Status",{statdisp:"blank"})}return c}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"clock",content:"Evac ETA",onClick:function(){function c(){return S("Status",{statdisp:"shuttle"})}return c}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"edit",content:"Message",onClick:function(){function c(){return S("Status",{statdisp:"message"})}return c}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"exclamation-triangle",content:"Red Alert",onClick:function(){function c(){return S("Status",{statdisp:"alert",alert:"redalert"})}return c}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"boxes",content:"NT Logo",onClick:function(){function c(){return S("Status",{statdisp:"alert",alert:"default"})}return c}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"lock",content:"Lockdown",onClick:function(){function c(){return S("Status",{statdisp:"alert",alert:"lockdown"})}return c}()}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"biohazard",content:"Biohazard",onClick:function(){function c(){return S("Status",{statdisp:"alert",alert:"biohazard"})}return c}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message line 1",children:(0,e.createComponentVNode)(2,t.Button,{content:a.message1+" (set)",icon:"pen",onClick:function(){function c(){return S("Status",{statdisp:"setmsg1"})}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message line 2",children:(0,e.createComponentVNode)(2,t.Button,{content:a.message2+" (set)",icon:"pen",onClick:function(){function c(){return S("Status",{statdisp:"setmsg2"})}return c}()})})]})})}return d}()},70287:function(I,r,n){"use strict";r.__esModule=!0,r.pda_supplyrecords=void 0;var e=n(89005),i=n(72253),t=n(36036),o=r.pda_supplyrecords=function(){function d(y,V){var k=(0,i.useBackend)(V),S=k.act,p=k.data,a=p.supply,c=a.shuttle_loc,f=a.shuttle_time,u=a.shuttle_moving,s=a.approved,m=a.approved_count,l=a.requests,C=a.requests_count;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Status",children:u?(0,e.createComponentVNode)(2,t.Box,{children:["In transit ",f]}):(0,e.createComponentVNode)(2,t.Box,{children:c})})}),(0,e.createComponentVNode)(2,t.Section,{mt:1,title:"Requested Orders",children:C>0&&l.map(function(b){return(0,e.createComponentVNode)(2,t.Box,{children:["#",b.Number,' - "',b.Name,'" for "',b.OrderedBy,'"']},b)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Approved Orders",children:m>0&&s.map(function(b){return(0,e.createComponentVNode)(2,t.Box,{children:["#",b.Number,' - "',b.Name,'" for "',b.ApprovedBy,'"']},b)})})]})}return d}()},17617:function(I,r,n){"use strict";r.__esModule=!0,r.Layout=void 0;var e=n(89005),i=n(35840),t=n(55937),o=n(24826),d=["className","theme","children"],y=["className","scrollable","children"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function V(p,i){if(p==null)return{};var l={};for(var f in p)if({}.hasOwnProperty.call(p,f)){if(i.includes(f))continue;l[f]=p[f]}return l}var k=r.Layout=function(){function p(i){var l=i.className,f=i.theme,u=f===void 0?"nanotrasen":f,s=i.children,m=V(i,d);return document.documentElement.className="theme-"+u,(0,e.createVNode)(1,"div","theme-"+u,(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["Layout",l].concat((0,t.computeBoxClassName)(m))),s,0,Object.assign({},(0,t.computeBoxProps)(m)))),2)}return p}(),S=function(i){var l=i.className,f=i.scrollable,u=i.children,s=V(i,y);return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["Layout__content",f&&"Layout__content--scrollable",l,(0,t.computeBoxClassName)(s)]),u,0,Object.assign({},(0,t.computeBoxProps)(s))))};S.defaultHooks={onComponentDidMount:function(){function p(i){return(0,o.addScrollableNode)(i)}return p}(),onComponentWillUnmount:function(){function p(i){return(0,o.removeScrollableNode)(i)}return p}()},k.Content=S},96945:function(I,r,n){"use strict";r.__esModule=!0,r.Pane=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),d=n(99851),y=n(17617),V=["theme","children","className"],k=["className","fitted","children"];/**
+ */function V(p,a){if(p==null)return{};var c={};for(var f in p)if({}.hasOwnProperty.call(p,f)){if(a.includes(f))continue;c[f]=p[f]}return c}var k=r.Layout=function(){function p(a){var c=a.className,f=a.theme,u=f===void 0?"nanotrasen":f,s=a.children,m=V(a,d);return document.documentElement.className="theme-"+u,(0,e.createVNode)(1,"div","theme-"+u,(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,i.classes)(["Layout",c].concat((0,t.computeBoxClassName)(m))),s,0,Object.assign({},(0,t.computeBoxProps)(m)))),2)}return p}(),S=function(a){var c=a.className,f=a.scrollable,u=a.children,s=V(a,y);return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,i.classes)(["Layout__content",f&&"Layout__content--scrollable",c,(0,t.computeBoxClassName)(s)]),u,0,Object.assign({},(0,t.computeBoxProps)(s))))};S.defaultHooks={onComponentDidMount:function(){function p(a){return(0,o.addScrollableNode)(a)}return p}(),onComponentWillUnmount:function(){function p(a){return(0,o.removeScrollableNode)(a)}return p}()},k.Content=S},96945:function(I,r,n){"use strict";r.__esModule=!0,r.Pane=void 0;var e=n(89005),i=n(35840),t=n(72253),o=n(36036),d=n(99851),y=n(17617),V=["theme","children","className"],k=["className","fitted","children"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function S(l,f){if(l==null)return{};var u={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(f.includes(s))continue;u[s]=l[s]}return u}var p=r.Pane=function(){function l(f,u){var s=f.theme,m=f.children,c=f.className,v=S(f,V),b=(0,t.useBackend)(u),g=b.suspended,h=(0,d.useDebug)(u),C=h.debugLayout;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,y.Layout,Object.assign({className:(0,a.classes)(["Window",c]),theme:s},v,{children:(0,e.createComponentVNode)(2,o.Box,{fillPositionedParent:!0,className:C&&"debug-layout",children:!g&&m})})))}return l}(),i=function(f){var u=f.className,s=f.fitted,m=f.children,c=S(f,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,y.Layout.Content,Object.assign({className:(0,a.classes)(["Window__content",u])},c,{children:s&&m||(0,e.createVNode)(1,"div","Window__contentPadding",m,0)})))};p.Content=i},34827:function(I,r,n){"use strict";r.__esModule=!0,r.Window=void 0;var e=n(89005),a=n(35840),t=n(85307),o=n(25328),d=n(72253),y=n(36036),V=n(76910),k=n(99851),S=n(77384),p=n(35421),i=n(9394),l=n(17617),f=["className","fitted","children"];function u(N,x){if(N==null)return{};var B={};for(var L in N)if({}.hasOwnProperty.call(N,L)){if(x.includes(L))continue;B[L]=N[L]}return B}function s(N,x){N.prototype=Object.create(x.prototype),N.prototype.constructor=N,m(N,x)}function m(N,x){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(B,L){return B.__proto__=L,B},m(N,x)}/**
+ */function S(c,f){if(c==null)return{};var u={};for(var s in c)if({}.hasOwnProperty.call(c,s)){if(f.includes(s))continue;u[s]=c[s]}return u}var p=r.Pane=function(){function c(f,u){var s=f.theme,m=f.children,l=f.className,C=S(f,V),b=(0,t.useBackend)(u),g=b.suspended,h=(0,d.useDebug)(u),v=h.debugLayout;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,y.Layout,Object.assign({className:(0,i.classes)(["Window",l]),theme:s},C,{children:(0,e.createComponentVNode)(2,o.Box,{fillPositionedParent:!0,className:v&&"debug-layout",children:!g&&m})})))}return c}(),a=function(f){var u=f.className,s=f.fitted,m=f.children,l=S(f,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,y.Layout.Content,Object.assign({className:(0,i.classes)(["Window__content",u])},l,{children:s&&m||(0,e.createVNode)(1,"div","Window__contentPadding",m,0)})))};p.Content=a},34827:function(I,r,n){"use strict";r.__esModule=!0,r.Window=void 0;var e=n(89005),i=n(35840),t=n(85307),o=n(25328),d=n(72253),y=n(36036),V=n(76910),k=n(99851),S=n(77384),p=n(35421),a=n(9394),c=n(17617),f=["className","fitted","children"];function u(N,x){if(N==null)return{};var B={};for(var L in N)if({}.hasOwnProperty.call(N,L)){if(x.includes(L))continue;B[L]=N[L]}return B}function s(N,x){N.prototype=Object.create(x.prototype),N.prototype.constructor=N,m(N,x)}function m(N,x){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(B,L){return B.__proto__=L,B},m(N,x)}/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
-*/var c=(0,i.createLogger)("Window"),v=[400,600],b=r.Window=function(N){function x(){return N.apply(this,arguments)||this}s(x,N);var B=x.prototype;return B.componentDidMount=function(){function L(){var w=(0,d.useBackend)(this.context),A=w.suspended;A||(c.log("mounting"),this.updateGeometry())}return L}(),B.componentDidUpdate=function(){function L(w){var A=this.props.width!==w.width||this.props.height!==w.height;A&&this.updateGeometry()}return L}(),B.updateGeometry=function(){function L(){var w,A=(0,d.useBackend)(this.context),T=A.config,E=Object.assign({size:v},T.window);this.props.width&&this.props.height&&(E.size=[this.props.width,this.props.height]),(w=T.window)!=null&&w.key&&(0,p.setWindowKey)(T.window.key),(0,p.recallWindowGeometry)(E)}return L}(),B.render=function(){function L(){var w,A=this.props,T=A.theme,E=A.title,O=A.children,P=(0,d.useBackend)(this.context),R=P.config,F=P.suspended,j=(0,k.useDebug)(this.context),_=j.debugLayout,z=(0,t.useDispatch)(this.context),H=(w=R.window)==null?void 0:w.fancy,$=R.user&&(R.user.observer?R.status0;)i[c++]=v&255,v/=256,l-=8;return i[c-1]|=m*128,i},y=function(k,S){var p=k.length,i=p*8-S-1,l=(1<>1,u=i-7,s=p-1,m=k[s--],c=m&127,v;for(m>>=7;u>0;)c=c*256+k[s--],u-=8;for(v=c&(1<<-u)-1,c>>=-u,u+=S;u>0;)v=v*256+k[s--],u-=8;if(c===0)c=1-f;else{if(c===l)return v?NaN:m?-1/0:1/0;v+=e(2,S),c-=f}return(m?-1:1)*v*e(2,c-S)};I.exports={pack:d,unpack:y}},37457:function(I,r,n){"use strict";var e=n(67250),a=n(40033),t=n(7462),o=Object,d=e("".split);I.exports=a(function(){return!o("z").propertyIsEnumerable(0)})?function(y){return t(y)==="String"?d(y,""):o(y)}:o},5781:function(I,r,n){"use strict";var e=n(55747),a=n(77568),t=n(76649);I.exports=function(o,d,y){var V,k;return t&&e(V=d.constructor)&&V!==y&&a(k=V.prototype)&&k!==y.prototype&&t(o,k),o}},40492:function(I,r,n){"use strict";var e=n(67250),a=n(55747),t=n(40095),o=e(Function.toString);a(t.inspectSource)||(t.inspectSource=function(d){return o(d)}),I.exports=t.inspectSource},81969:function(I,r,n){"use strict";var e=n(63964),a=n(67250),t=n(79195),o=n(77568),d=n(45299),y=n(74595).f,V=n(37310),k=n(81644),S=n(81834),p=n(16738),i=n(50730),l=!1,f=p("meta"),u=0,s=function(C){y(C,f,{value:{objectID:"O"+u++,weakData:{}}})},m=function(C,N){if(!o(C))return typeof C=="symbol"?C:(typeof C=="string"?"S":"P")+C;if(!d(C,f)){if(!S(C))return"F";if(!N)return"E";s(C)}return C[f].objectID},c=function(C,N){if(!d(C,f)){if(!S(C))return!0;if(!N)return!1;s(C)}return C[f].weakData},v=function(C){return i&&l&&S(C)&&!d(C,f)&&s(C),C},b=function(){g.enable=function(){},l=!0;var C=V.f,N=a([].splice),x={};x[f]=1,C(x).length&&(V.f=function(B){for(var L=C(B),w=0,A=L.length;wB;B++)if(w=O(u[B]),w&&V(f,w))return w;return new l(!1)}N=k(u,x)}for(A=b?u.next:N.next;!(T=a(A,N)).done;){try{w=O(T.value)}catch(P){p(N,"throw",P)}if(typeof w=="object"&&w&&V(f,w))return w}return new l(!1)}},28649:function(I,r,n){"use strict";var e=n(91495),a=n(30365),t=n(78060);I.exports=function(o,d,y){var V,k;a(o);try{if(V=t(o,"return"),!V){if(d==="throw")throw y;return y}V=e(V,o)}catch(S){k=!0,V=S}if(d==="throw")throw y;if(k)throw V;return a(V),y}},5656:function(I,r,n){"use strict";var e=n(67635).IteratorPrototype,a=n(80674),t=n(87458),o=n(84925),d=n(83967),y=function(){return this};I.exports=function(V,k,S,p){var i=k+" Iterator";return V.prototype=a(e,{next:t(+!p,S)}),o(V,i,!1,!0),d[i]=y,V}},65574:function(I,r,n){"use strict";var e=n(63964),a=n(91495),t=n(4493),o=n(70520),d=n(55747),y=n(5656),V=n(36917),k=n(76649),S=n(84925),p=n(37909),i=n(55938),l=n(24697),f=n(83967),u=n(67635),s=o.PROPER,m=o.CONFIGURABLE,c=u.IteratorPrototype,v=u.BUGGY_SAFARI_ITERATORS,b=l("iterator"),g="keys",h="values",C="entries",N=function(){return this};I.exports=function(x,B,L,w,A,T,E){y(L,B,w);var O=function(Q){if(Q===A&&_)return _;if(!v&&Q&&Q in F)return F[Q];switch(Q){case g:return function(){function he(){return new L(this,Q)}return he}();case h:return function(){function he(){return new L(this,Q)}return he}();case C:return function(){function he(){return new L(this,Q)}return he}()}return function(){return new L(this)}},P=B+" Iterator",R=!1,F=x.prototype,j=F[b]||F["@@iterator"]||A&&F[A],_=!v&&j||O(A),z=B==="Array"&&F.entries||j,H,$,G;if(z&&(H=V(z.call(new x)),H!==Object.prototype&&H.next&&(!t&&V(H)!==c&&(k?k(H,c):d(H[b])||i(H,b,N)),S(H,P,!0,!0),t&&(f[P]=N))),s&&A===h&&j&&j.name!==h&&(!t&&m?p(F,"name",h):(R=!0,_=function(){function ne(){return a(j,this)}return ne}())),A)if($={values:O(h),keys:T?_:O(g),entries:O(C)},E)for(G in $)(v||R||!(G in F))&&i(F,G,$[G]);else e({target:B,proto:!0,forced:v||R},$);return(!t||E)&&F[b]!==_&&i(F,b,_,{name:A}),f[B]=_,$}},67635:function(I,r,n){"use strict";var e=n(40033),a=n(55747),t=n(77568),o=n(80674),d=n(36917),y=n(55938),V=n(24697),k=n(4493),S=V("iterator"),p=!1,i,l,f;[].keys&&(f=[].keys(),"next"in f?(l=d(d(f)),l!==Object.prototype&&(i=l)):p=!0);var u=!t(i)||e(function(){var s={};return i[S].call(s)!==s});u?i={}:k&&(i=o(i)),a(i[S])||y(i,S,function(){return this}),I.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:p}},83967:function(I){"use strict";I.exports={}},24760:function(I,r,n){"use strict";var e=n(10188);I.exports=function(a){return e(a.length)}},20001:function(I,r,n){"use strict";var e=n(67250),a=n(40033),t=n(55747),o=n(45299),d=n(58310),y=n(70520).CONFIGURABLE,V=n(40492),k=n(5419),S=k.enforce,p=k.get,i=String,l=Object.defineProperty,f=e("".slice),u=e("".replace),s=e([].join),m=d&&!a(function(){return l(function(){},"length",{value:8}).length!==8}),c=String(String).split("String"),v=I.exports=function(b,g,h){f(i(g),0,7)==="Symbol("&&(g="["+u(i(g),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),h&&h.getter&&(g="get "+g),h&&h.setter&&(g="set "+g),(!o(b,"name")||y&&b.name!==g)&&(d?l(b,"name",{value:g,configurable:!0}):b.name=g),m&&h&&o(h,"arity")&&b.length!==h.arity&&l(b,"length",{value:h.arity});try{h&&o(h,"constructor")&&h.constructor?d&&l(b,"prototype",{writable:!1}):b.prototype&&(b.prototype=void 0)}catch(N){}var C=S(b);return o(C,"source")||(C.source=s(c,typeof g=="string"?g:"")),b};Function.prototype.toString=v(function(){function b(){return t(this)&&p(this).source||V(this)}return b}(),"toString")},82040:function(I){"use strict";var r=Math.expm1,n=Math.exp;I.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||r(-2e-17)!==-2e-17?function(){function e(a){var t=+a;return t===0?t:t>-1e-6&&t<1e-6?t+t*t/2:n(t)-1}return e}():r},14950:function(I,r,n){"use strict";var e=n(22172),a=Math.abs,t=2220446049250313e-31,o=1/t,d=function(V){return V+o-o};I.exports=function(y,V,k,S){var p=+y,i=a(p),l=e(p);if(ik||u!==u?l*(1/0):l*u}},95867:function(I,r,n){"use strict";var e=n(14950),a=11920928955078125e-23,t=34028234663852886e22,o=11754943508222875e-54;I.exports=Math.fround||function(){function d(y){return e(y,a,t,o)}return d}()},75002:function(I){"use strict";var r=Math.log,n=Math.LOG10E;I.exports=Math.log10||function(){function e(a){return r(a)*n}return e}()},90874:function(I){"use strict";var r=Math.log;I.exports=Math.log1p||function(){function n(e){var a=+e;return a>-1e-8&&a<1e-8?a-a*a/2:r(1+a)}return n}()},22172:function(I){"use strict";I.exports=Math.sign||function(){function r(n){var e=+n;return e===0||e!==e?e:e<0?-1:1}return r}()},21119:function(I){"use strict";var r=Math.ceil,n=Math.floor;I.exports=Math.trunc||function(){function e(a){var t=+a;return(t>0?n:r)(t)}return e}()},37713:function(I,r,n){"use strict";var e=n(16210),a=n(44915),t=n(75754),o=n(60375).set,d=n(9547),y=n(27770),V=n(16647),k=n(52854),S=n(81663),p=e.MutationObserver||e.WebKitMutationObserver,i=e.document,l=e.process,f=e.Promise,u=a("queueMicrotask"),s,m,c,v,b;if(!u){var g=new d,h=function(){var N,x;for(S&&(N=l.domain)&&N.exit();x=g.get();)try{x()}catch(B){throw g.head&&s(),B}N&&N.enter()};!y&&!S&&!k&&p&&i?(m=!0,c=i.createTextNode(""),new p(h).observe(c,{characterData:!0}),s=function(){c.data=m=!m}):!V&&f&&f.resolve?(v=f.resolve(void 0),v.constructor=f,b=t(v.then,v),s=function(){b(h)}):S?s=function(){l.nextTick(h)}:(o=t(o,e),s=function(){o(h)}),u=function(N){g.head||s(),g.add(N)}}I.exports=u},81837:function(I,r,n){"use strict";var e=n(10320),a=TypeError,t=function(d){var y,V;this.promise=new d(function(k,S){if(y!==void 0||V!==void 0)throw new a("Bad Promise constructor");y=k,V=S}),this.resolve=e(y),this.reject=e(V)};I.exports.f=function(o){return new t(o)}},86213:function(I,r,n){"use strict";var e=n(72586),a=TypeError;I.exports=function(t){if(e(t))throw new a("The method doesn't accept regular expressions");return t}},3294:function(I,r,n){"use strict";var e=n(16210),a=e.isFinite;I.exports=Number.isFinite||function(){function t(o){return typeof o=="number"&&a(o)}return t}()},28506:function(I,r,n){"use strict";var e=n(16210),a=n(40033),t=n(67250),o=n(12605),d=n(92648).trim,y=n(4198),V=t("".charAt),k=e.parseFloat,S=e.Symbol,p=S&&S.iterator,i=1/k(y+"-0")!==-1/0||p&&!a(function(){k(Object(p))});I.exports=i?function(){function l(f){var u=d(o(f)),s=k(u);return s===0&&V(u,0)==="-"?-0:s}return l}():k},13693:function(I,r,n){"use strict";var e=n(16210),a=n(40033),t=n(67250),o=n(12605),d=n(92648).trim,y=n(4198),V=e.parseInt,k=e.Symbol,S=k&&k.iterator,p=/^[+-]?0x/i,i=t(p.exec),l=V(y+"08")!==8||V(y+"0x16")!==22||S&&!a(function(){V(Object(S))});I.exports=l?function(){function f(u,s){var m=d(o(u));return V(m,s>>>0||(i(p,m)?16:10))}return f}():V},41143:function(I,r,n){"use strict";var e=n(58310),a=n(67250),t=n(91495),o=n(40033),d=n(18450),y=n(89235),V=n(12867),k=n(46771),S=n(37457),p=Object.assign,i=Object.defineProperty,l=a([].concat);I.exports=!p||o(function(){if(e&&p({b:1},p(i({},"a",{enumerable:!0,get:function(){function c(){i(this,"b",{value:3,enumerable:!1})}return c}()}),{b:2})).b!==1)return!0;var f={},u={},s=Symbol("assign detection"),m="abcdefghijklmnopqrst";return f[s]=7,m.split("").forEach(function(c){u[c]=c}),p({},f)[s]!==7||d(p({},u)).join("")!==m})?function(){function f(u,s){for(var m=k(u),c=arguments.length,v=1,b=y.f,g=V.f;c>v;)for(var h=S(arguments[v++]),C=b?l(d(h),b(h)):d(h),N=C.length,x=0,B;N>x;)B=C[x++],(!e||t(g,h,B))&&(m[B]=h[B]);return m}return f}():p},80674:function(I,r,n){"use strict";var e=n(30365),a=n(24239),t=n(89453),o=n(79195),d=n(5315),y=n(12689),V=n(19417),k=">",S="<",p="prototype",i="script",l=V("IE_PROTO"),f=function(){},u=function(g){return S+i+k+g+S+"/"+i+k},s=function(g){g.write(u("")),g.close();var h=g.parentWindow.Object;return g=null,h},m=function(){var g=y("iframe"),h="java"+i+":",C;return g.style.display="none",d.appendChild(g),g.src=String(h),C=g.contentWindow.document,C.open(),C.write(u("document.F=Object")),C.close(),C.F},c,v=function(){try{c=new ActiveXObject("htmlfile")}catch(h){}v=typeof document!="undefined"?document.domain&&c?s(c):m():s(c);for(var g=t.length;g--;)delete v[p][t[g]];return v()};o[l]=!0,I.exports=Object.create||function(){function b(g,h){var C;return g!==null?(f[p]=e(g),C=new f,f[p]=null,C[l]=g):C=v(),h===void 0?C:a.f(C,h)}return b}()},24239:function(I,r,n){"use strict";var e=n(58310),a=n(80944),t=n(74595),o=n(30365),d=n(57591),y=n(18450);r.f=e&&!a?Object.defineProperties:function(){function V(k,S){o(k);for(var p=d(S),i=y(S),l=i.length,f=0,u;l>f;)t.f(k,u=i[f++],p[u]);return k}return V}()},74595:function(I,r,n){"use strict";var e=n(58310),a=n(36223),t=n(80944),o=n(30365),d=n(767),y=TypeError,V=Object.defineProperty,k=Object.getOwnPropertyDescriptor,S="enumerable",p="configurable",i="writable";r.f=e?t?function(){function l(f,u,s){if(o(f),u=d(u),o(s),typeof f=="function"&&u==="prototype"&&"value"in s&&i in s&&!s[i]){var m=k(f,u);m&&m[i]&&(f[u]=s.value,s={configurable:p in s?s[p]:m[p],enumerable:S in s?s[S]:m[S],writable:!1})}return V(f,u,s)}return l}():V:function(){function l(f,u,s){if(o(f),u=d(u),o(s),a)try{return V(f,u,s)}catch(m){}if("get"in s||"set"in s)throw new y("Accessors not supported");return"value"in s&&(f[u]=s.value),f}return l}()},27193:function(I,r,n){"use strict";var e=n(58310),a=n(91495),t=n(12867),o=n(87458),d=n(57591),y=n(767),V=n(45299),k=n(36223),S=Object.getOwnPropertyDescriptor;r.f=e?S:function(){function p(i,l){if(i=d(i),l=y(l),k)try{return S(i,l)}catch(f){}if(V(i,l))return o(!a(t.f,i,l),i[l])}return p}()},81644:function(I,r,n){"use strict";var e=n(7462),a=n(57591),t=n(37310).f,o=n(54602),d=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],y=function(k){try{return t(k)}catch(S){return o(d)}};I.exports.f=function(){function V(k){return d&&e(k)==="Window"?y(k):t(a(k))}return V}()},37310:function(I,r,n){"use strict";var e=n(53726),a=n(89453),t=a.concat("length","prototype");r.f=Object.getOwnPropertyNames||function(){function o(d){return e(d,t)}return o}()},89235:function(I,r){"use strict";r.f=Object.getOwnPropertySymbols},36917:function(I,r,n){"use strict";var e=n(45299),a=n(55747),t=n(46771),o=n(19417),d=n(9225),y=o("IE_PROTO"),V=Object,k=V.prototype;I.exports=d?V.getPrototypeOf:function(S){var p=t(S);if(e(p,y))return p[y];var i=p.constructor;return a(i)&&p instanceof i?i.prototype:p instanceof V?k:null}},81834:function(I,r,n){"use strict";var e=n(40033),a=n(77568),t=n(7462),o=n(3782),d=Object.isExtensible,y=e(function(){d(1)});I.exports=y||o?function(){function V(k){return!a(k)||o&&t(k)==="ArrayBuffer"?!1:d?d(k):!0}return V}():d},21287:function(I,r,n){"use strict";var e=n(67250);I.exports=e({}.isPrototypeOf)},53726:function(I,r,n){"use strict";var e=n(67250),a=n(45299),t=n(57591),o=n(14211).indexOf,d=n(79195),y=e([].push);I.exports=function(V,k){var S=t(V),p=0,i=[],l;for(l in S)!a(d,l)&&a(S,l)&&y(i,l);for(;k.length>p;)a(S,l=k[p++])&&(~o(i,l)||y(i,l));return i}},18450:function(I,r,n){"use strict";var e=n(53726),a=n(89453);I.exports=Object.keys||function(){function t(o){return e(o,a)}return t}()},12867:function(I,r){"use strict";var n={}.propertyIsEnumerable,e=Object.getOwnPropertyDescriptor,a=e&&!n.call({1:2},1);r.f=a?function(){function t(o){var d=e(this,o);return!!d&&d.enumerable}return t}():n},57377:function(I,r,n){"use strict";var e=n(4493),a=n(16210),t=n(40033),o=n(44981);I.exports=e||!t(function(){if(!(o&&o<535)){var d=Math.random();__defineSetter__.call(null,d,function(){}),delete a[d]}})},76649:function(I,r,n){"use strict";var e=n(38656),a=n(77568),t=n(16952),o=n(35908);I.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var d=!1,y={},V;try{V=e(Object.prototype,"__proto__","set"),V(y,[]),d=y instanceof Array}catch(k){}return function(){function k(S,p){return t(S),o(p),a(S)&&(d?V(S,p):S.__proto__=p),S}return k}()}():void 0)},70915:function(I,r,n){"use strict";var e=n(58310),a=n(40033),t=n(67250),o=n(36917),d=n(18450),y=n(57591),V=n(12867).f,k=t(V),S=t([].push),p=e&&a(function(){var l=Object.create(null);return l[2]=2,!k(l,2)}),i=function(f){return function(u){for(var s=y(u),m=d(s),c=p&&o(s)===null,v=m.length,b=0,g=[],h;v>b;)h=m[b++],(!e||(c?h in s:k(s,h)))&&S(g,f?[h,s[h]]:s[h]);return g}};I.exports={entries:i(!0),values:i(!1)}},2509:function(I,r,n){"use strict";var e=n(2650),a=n(2281);I.exports=e?{}.toString:function(){function t(){return"[object "+a(this)+"]"}return t}()},13396:function(I,r,n){"use strict";var e=n(91495),a=n(55747),t=n(77568),o=TypeError;I.exports=function(d,y){var V,k;if(y==="string"&&a(V=d.toString)&&!t(k=e(V,d))||a(V=d.valueOf)&&!t(k=e(V,d))||y!=="string"&&a(V=d.toString)&&!t(k=e(V,d)))return k;throw new o("Can't convert object to primitive value")}},97921:function(I,r,n){"use strict";var e=n(4009),a=n(67250),t=n(37310),o=n(89235),d=n(30365),y=a([].concat);I.exports=e("Reflect","ownKeys")||function(){function V(k){var S=t.f(d(k)),p=o.f;return p?y(S,p(k)):S}return V}()},61765:function(I,r,n){"use strict";var e=n(16210);I.exports=e},10729:function(I){"use strict";I.exports=function(r){try{return{error:!1,value:r()}}catch(n){return{error:!0,value:n}}}},74854:function(I,r,n){"use strict";var e=n(16210),a=n(67512),t=n(55747),o=n(41314),d=n(40492),y=n(24697),V=n(10753),k=n(4493),S=n(83141),p=a&&a.prototype,i=y("species"),l=!1,f=t(e.PromiseRejectionEvent),u=o("Promise",function(){var s=d(a),m=s!==String(a);if(!m&&S===66||k&&!(p.catch&&p.finally))return!0;if(!S||S<51||!/native code/.test(s)){var c=new a(function(g){g(1)}),v=function(h){h(function(){},function(){})},b=c.constructor={};if(b[i]=v,l=c.then(function(){})instanceof v,!l)return!0}return!m&&(V==="BROWSER"||V==="DENO")&&!f});I.exports={CONSTRUCTOR:u,REJECTION_EVENT:f,SUBCLASSING:l}},67512:function(I,r,n){"use strict";var e=n(16210);I.exports=e.Promise},66628:function(I,r,n){"use strict";var e=n(30365),a=n(77568),t=n(81837);I.exports=function(o,d){if(e(o),a(d)&&d.constructor===o)return d;var y=t.f(o),V=y.resolve;return V(d),y.promise}},48199:function(I,r,n){"use strict";var e=n(67512),a=n(92490),t=n(74854).CONSTRUCTOR;I.exports=t||!a(function(o){e.all(o).then(void 0,function(){})})},34550:function(I,r,n){"use strict";var e=n(74595).f;I.exports=function(a,t,o){o in a||e(a,o,{configurable:!0,get:function(){function d(){return t[o]}return d}(),set:function(){function d(y){t[o]=y}return d}()})}},9547:function(I){"use strict";var r=function(){this.head=null,this.tail=null};r.prototype={add:function(){function n(e){var a={item:e,next:null},t=this.tail;t?t.next=a:this.head=a,this.tail=a}return n}(),get:function(){function n(){var e=this.head;if(e){var a=this.head=e.next;return a===null&&(this.tail=null),e.item}}return n}()},I.exports=r},28340:function(I,r,n){"use strict";var e=n(91495),a=n(30365),t=n(55747),o=n(7462),d=n(14489),y=TypeError;I.exports=function(V,k){var S=V.exec;if(t(S)){var p=e(S,V,k);return p!==null&&a(p),p}if(o(V)==="RegExp")return e(d,V,k);throw new y("RegExp#exec called on incompatible receiver")}},14489:function(I,r,n){"use strict";var e=n(91495),a=n(67250),t=n(12605),o=n(70901),d=n(62115),y=n(16639),V=n(80674),k=n(5419).get,S=n(39173),p=n(35688),i=y("native-string-replace",String.prototype.replace),l=RegExp.prototype.exec,f=l,u=a("".charAt),s=a("".indexOf),m=a("".replace),c=a("".slice),v=function(){var C=/a/,N=/b*/g;return e(l,C,"a"),e(l,N,"a"),C.lastIndex!==0||N.lastIndex!==0}(),b=d.BROKEN_CARET,g=/()??/.exec("")[1]!==void 0,h=v||g||b||S||p;h&&(f=function(){function C(N){var x=this,B=k(x),L=t(N),w=B.raw,A,T,E,O,P,R,F;if(w)return w.lastIndex=x.lastIndex,A=e(f,w,L),x.lastIndex=w.lastIndex,A;var j=B.groups,_=b&&x.sticky,z=e(o,x),H=x.source,$=0,G=L;if(_&&(z=m(z,"y",""),s(z,"g")===-1&&(z+="g"),G=c(L,x.lastIndex),x.lastIndex>0&&(!x.multiline||x.multiline&&u(L,x.lastIndex-1)!=="\n")&&(H="(?: "+H+")",G=" "+G,$++),T=new RegExp("^(?:"+H+")",z)),g&&(T=new RegExp("^"+H+"$(?!\\s)",z)),v&&(E=x.lastIndex),O=e(l,_?T:x,G),_?O?(O.input=c(O.input,$),O[0]=c(O[0],$),O.index=x.lastIndex,x.lastIndex+=O[0].length):x.lastIndex=0:v&&O&&(x.lastIndex=x.global?O.index+O[0].length:E),g&&O&&O.length>1&&e(i,O[0],T,function(){for(P=1;P0;)a[l++]=C&255,C/=256,c-=8;return a[l-1]|=m*128,a},y=function(k,S){var p=k.length,a=p*8-S-1,c=(1<>1,u=a-7,s=p-1,m=k[s--],l=m&127,C;for(m>>=7;u>0;)l=l*256+k[s--],u-=8;for(C=l&(1<<-u)-1,l>>=-u,u+=S;u>0;)C=C*256+k[s--],u-=8;if(l===0)l=1-f;else{if(l===c)return C?NaN:m?-1/0:1/0;C+=e(2,S),l-=f}return(m?-1:1)*C*e(2,l-S)};I.exports={pack:d,unpack:y}},37457:function(I,r,n){"use strict";var e=n(67250),i=n(40033),t=n(7462),o=Object,d=e("".split);I.exports=i(function(){return!o("z").propertyIsEnumerable(0)})?function(y){return t(y)==="String"?d(y,""):o(y)}:o},5781:function(I,r,n){"use strict";var e=n(55747),i=n(77568),t=n(76649);I.exports=function(o,d,y){var V,k;return t&&e(V=d.constructor)&&V!==y&&i(k=V.prototype)&&k!==y.prototype&&t(o,k),o}},40492:function(I,r,n){"use strict";var e=n(67250),i=n(55747),t=n(40095),o=e(Function.toString);i(t.inspectSource)||(t.inspectSource=function(d){return o(d)}),I.exports=t.inspectSource},81969:function(I,r,n){"use strict";var e=n(63964),i=n(67250),t=n(79195),o=n(77568),d=n(45299),y=n(74595).f,V=n(37310),k=n(81644),S=n(81834),p=n(16738),a=n(50730),c=!1,f=p("meta"),u=0,s=function(v){y(v,f,{value:{objectID:"O"+u++,weakData:{}}})},m=function(v,N){if(!o(v))return typeof v=="symbol"?v:(typeof v=="string"?"S":"P")+v;if(!d(v,f)){if(!S(v))return"F";if(!N)return"E";s(v)}return v[f].objectID},l=function(v,N){if(!d(v,f)){if(!S(v))return!0;if(!N)return!1;s(v)}return v[f].weakData},C=function(v){return a&&c&&S(v)&&!d(v,f)&&s(v),v},b=function(){g.enable=function(){},c=!0;var v=V.f,N=i([].splice),x={};x[f]=1,v(x).length&&(V.f=function(B){for(var L=v(B),w=0,A=L.length;wB;B++)if(w=O(u[B]),w&&V(f,w))return w;return new c(!1)}N=k(u,x)}for(A=b?u.next:N.next;!(T=i(A,N)).done;){try{w=O(T.value)}catch(P){p(N,"throw",P)}if(typeof w=="object"&&w&&V(f,w))return w}return new c(!1)}},28649:function(I,r,n){"use strict";var e=n(91495),i=n(30365),t=n(78060);I.exports=function(o,d,y){var V,k;i(o);try{if(V=t(o,"return"),!V){if(d==="throw")throw y;return y}V=e(V,o)}catch(S){k=!0,V=S}if(d==="throw")throw y;if(k)throw V;return i(V),y}},5656:function(I,r,n){"use strict";var e=n(67635).IteratorPrototype,i=n(80674),t=n(87458),o=n(84925),d=n(83967),y=function(){return this};I.exports=function(V,k,S,p){var a=k+" Iterator";return V.prototype=i(e,{next:t(+!p,S)}),o(V,a,!1,!0),d[a]=y,V}},65574:function(I,r,n){"use strict";var e=n(63964),i=n(91495),t=n(4493),o=n(70520),d=n(55747),y=n(5656),V=n(36917),k=n(76649),S=n(84925),p=n(37909),a=n(55938),c=n(24697),f=n(83967),u=n(67635),s=o.PROPER,m=o.CONFIGURABLE,l=u.IteratorPrototype,C=u.BUGGY_SAFARI_ITERATORS,b=c("iterator"),g="keys",h="values",v="entries",N=function(){return this};I.exports=function(x,B,L,w,A,T,E){y(L,B,w);var O=function(Q){if(Q===A&&_)return _;if(!C&&Q&&Q in F)return F[Q];switch(Q){case g:return function(){function he(){return new L(this,Q)}return he}();case h:return function(){function he(){return new L(this,Q)}return he}();case v:return function(){function he(){return new L(this,Q)}return he}()}return function(){return new L(this)}},P=B+" Iterator",R=!1,F=x.prototype,j=F[b]||F["@@iterator"]||A&&F[A],_=!C&&j||O(A),z=B==="Array"&&F.entries||j,H,Y,G;if(z&&(H=V(z.call(new x)),H!==Object.prototype&&H.next&&(!t&&V(H)!==l&&(k?k(H,l):d(H[b])||a(H,b,N)),S(H,P,!0,!0),t&&(f[P]=N))),s&&A===h&&j&&j.name!==h&&(!t&&m?p(F,"name",h):(R=!0,_=function(){function ne(){return i(j,this)}return ne}())),A)if(Y={values:O(h),keys:T?_:O(g),entries:O(v)},E)for(G in Y)(C||R||!(G in F))&&a(F,G,Y[G]);else e({target:B,proto:!0,forced:C||R},Y);return(!t||E)&&F[b]!==_&&a(F,b,_,{name:A}),f[B]=_,Y}},67635:function(I,r,n){"use strict";var e=n(40033),i=n(55747),t=n(77568),o=n(80674),d=n(36917),y=n(55938),V=n(24697),k=n(4493),S=V("iterator"),p=!1,a,c,f;[].keys&&(f=[].keys(),"next"in f?(c=d(d(f)),c!==Object.prototype&&(a=c)):p=!0);var u=!t(a)||e(function(){var s={};return a[S].call(s)!==s});u?a={}:k&&(a=o(a)),i(a[S])||y(a,S,function(){return this}),I.exports={IteratorPrototype:a,BUGGY_SAFARI_ITERATORS:p}},83967:function(I){"use strict";I.exports={}},24760:function(I,r,n){"use strict";var e=n(10188);I.exports=function(i){return e(i.length)}},20001:function(I,r,n){"use strict";var e=n(67250),i=n(40033),t=n(55747),o=n(45299),d=n(58310),y=n(70520).CONFIGURABLE,V=n(40492),k=n(5419),S=k.enforce,p=k.get,a=String,c=Object.defineProperty,f=e("".slice),u=e("".replace),s=e([].join),m=d&&!i(function(){return c(function(){},"length",{value:8}).length!==8}),l=String(String).split("String"),C=I.exports=function(b,g,h){f(a(g),0,7)==="Symbol("&&(g="["+u(a(g),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),h&&h.getter&&(g="get "+g),h&&h.setter&&(g="set "+g),(!o(b,"name")||y&&b.name!==g)&&(d?c(b,"name",{value:g,configurable:!0}):b.name=g),m&&h&&o(h,"arity")&&b.length!==h.arity&&c(b,"length",{value:h.arity});try{h&&o(h,"constructor")&&h.constructor?d&&c(b,"prototype",{writable:!1}):b.prototype&&(b.prototype=void 0)}catch(N){}var v=S(b);return o(v,"source")||(v.source=s(l,typeof g=="string"?g:"")),b};Function.prototype.toString=C(function(){function b(){return t(this)&&p(this).source||V(this)}return b}(),"toString")},82040:function(I){"use strict";var r=Math.expm1,n=Math.exp;I.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||r(-2e-17)!==-2e-17?function(){function e(i){var t=+i;return t===0?t:t>-1e-6&&t<1e-6?t+t*t/2:n(t)-1}return e}():r},14950:function(I,r,n){"use strict";var e=n(22172),i=Math.abs,t=2220446049250313e-31,o=1/t,d=function(V){return V+o-o};I.exports=function(y,V,k,S){var p=+y,a=i(p),c=e(p);if(ak||u!==u?c*(1/0):c*u}},95867:function(I,r,n){"use strict";var e=n(14950),i=11920928955078125e-23,t=34028234663852886e22,o=11754943508222875e-54;I.exports=Math.fround||function(){function d(y){return e(y,i,t,o)}return d}()},75002:function(I){"use strict";var r=Math.log,n=Math.LOG10E;I.exports=Math.log10||function(){function e(i){return r(i)*n}return e}()},90874:function(I){"use strict";var r=Math.log;I.exports=Math.log1p||function(){function n(e){var i=+e;return i>-1e-8&&i<1e-8?i-i*i/2:r(1+i)}return n}()},22172:function(I){"use strict";I.exports=Math.sign||function(){function r(n){var e=+n;return e===0||e!==e?e:e<0?-1:1}return r}()},21119:function(I){"use strict";var r=Math.ceil,n=Math.floor;I.exports=Math.trunc||function(){function e(i){var t=+i;return(t>0?n:r)(t)}return e}()},37713:function(I,r,n){"use strict";var e=n(16210),i=n(44915),t=n(75754),o=n(60375).set,d=n(9547),y=n(27770),V=n(16647),k=n(52854),S=n(81663),p=e.MutationObserver||e.WebKitMutationObserver,a=e.document,c=e.process,f=e.Promise,u=i("queueMicrotask"),s,m,l,C,b;if(!u){var g=new d,h=function(){var N,x;for(S&&(N=c.domain)&&N.exit();x=g.get();)try{x()}catch(B){throw g.head&&s(),B}N&&N.enter()};!y&&!S&&!k&&p&&a?(m=!0,l=a.createTextNode(""),new p(h).observe(l,{characterData:!0}),s=function(){l.data=m=!m}):!V&&f&&f.resolve?(C=f.resolve(void 0),C.constructor=f,b=t(C.then,C),s=function(){b(h)}):S?s=function(){c.nextTick(h)}:(o=t(o,e),s=function(){o(h)}),u=function(N){g.head||s(),g.add(N)}}I.exports=u},81837:function(I,r,n){"use strict";var e=n(10320),i=TypeError,t=function(d){var y,V;this.promise=new d(function(k,S){if(y!==void 0||V!==void 0)throw new i("Bad Promise constructor");y=k,V=S}),this.resolve=e(y),this.reject=e(V)};I.exports.f=function(o){return new t(o)}},86213:function(I,r,n){"use strict";var e=n(72586),i=TypeError;I.exports=function(t){if(e(t))throw new i("The method doesn't accept regular expressions");return t}},3294:function(I,r,n){"use strict";var e=n(16210),i=e.isFinite;I.exports=Number.isFinite||function(){function t(o){return typeof o=="number"&&i(o)}return t}()},28506:function(I,r,n){"use strict";var e=n(16210),i=n(40033),t=n(67250),o=n(12605),d=n(92648).trim,y=n(4198),V=t("".charAt),k=e.parseFloat,S=e.Symbol,p=S&&S.iterator,a=1/k(y+"-0")!==-1/0||p&&!i(function(){k(Object(p))});I.exports=a?function(){function c(f){var u=d(o(f)),s=k(u);return s===0&&V(u,0)==="-"?-0:s}return c}():k},13693:function(I,r,n){"use strict";var e=n(16210),i=n(40033),t=n(67250),o=n(12605),d=n(92648).trim,y=n(4198),V=e.parseInt,k=e.Symbol,S=k&&k.iterator,p=/^[+-]?0x/i,a=t(p.exec),c=V(y+"08")!==8||V(y+"0x16")!==22||S&&!i(function(){V(Object(S))});I.exports=c?function(){function f(u,s){var m=d(o(u));return V(m,s>>>0||(a(p,m)?16:10))}return f}():V},41143:function(I,r,n){"use strict";var e=n(58310),i=n(67250),t=n(91495),o=n(40033),d=n(18450),y=n(89235),V=n(12867),k=n(46771),S=n(37457),p=Object.assign,a=Object.defineProperty,c=i([].concat);I.exports=!p||o(function(){if(e&&p({b:1},p(a({},"a",{enumerable:!0,get:function(){function l(){a(this,"b",{value:3,enumerable:!1})}return l}()}),{b:2})).b!==1)return!0;var f={},u={},s=Symbol("assign detection"),m="abcdefghijklmnopqrst";return f[s]=7,m.split("").forEach(function(l){u[l]=l}),p({},f)[s]!==7||d(p({},u)).join("")!==m})?function(){function f(u,s){for(var m=k(u),l=arguments.length,C=1,b=y.f,g=V.f;l>C;)for(var h=S(arguments[C++]),v=b?c(d(h),b(h)):d(h),N=v.length,x=0,B;N>x;)B=v[x++],(!e||t(g,h,B))&&(m[B]=h[B]);return m}return f}():p},80674:function(I,r,n){"use strict";var e=n(30365),i=n(24239),t=n(89453),o=n(79195),d=n(5315),y=n(12689),V=n(19417),k=">",S="<",p="prototype",a="script",c=V("IE_PROTO"),f=function(){},u=function(g){return S+a+k+g+S+"/"+a+k},s=function(g){g.write(u("")),g.close();var h=g.parentWindow.Object;return g=null,h},m=function(){var g=y("iframe"),h="java"+a+":",v;return g.style.display="none",d.appendChild(g),g.src=String(h),v=g.contentWindow.document,v.open(),v.write(u("document.F=Object")),v.close(),v.F},l,C=function(){try{l=new ActiveXObject("htmlfile")}catch(h){}C=typeof document!="undefined"?document.domain&&l?s(l):m():s(l);for(var g=t.length;g--;)delete C[p][t[g]];return C()};o[c]=!0,I.exports=Object.create||function(){function b(g,h){var v;return g!==null?(f[p]=e(g),v=new f,f[p]=null,v[c]=g):v=C(),h===void 0?v:i.f(v,h)}return b}()},24239:function(I,r,n){"use strict";var e=n(58310),i=n(80944),t=n(74595),o=n(30365),d=n(57591),y=n(18450);r.f=e&&!i?Object.defineProperties:function(){function V(k,S){o(k);for(var p=d(S),a=y(S),c=a.length,f=0,u;c>f;)t.f(k,u=a[f++],p[u]);return k}return V}()},74595:function(I,r,n){"use strict";var e=n(58310),i=n(36223),t=n(80944),o=n(30365),d=n(767),y=TypeError,V=Object.defineProperty,k=Object.getOwnPropertyDescriptor,S="enumerable",p="configurable",a="writable";r.f=e?t?function(){function c(f,u,s){if(o(f),u=d(u),o(s),typeof f=="function"&&u==="prototype"&&"value"in s&&a in s&&!s[a]){var m=k(f,u);m&&m[a]&&(f[u]=s.value,s={configurable:p in s?s[p]:m[p],enumerable:S in s?s[S]:m[S],writable:!1})}return V(f,u,s)}return c}():V:function(){function c(f,u,s){if(o(f),u=d(u),o(s),i)try{return V(f,u,s)}catch(m){}if("get"in s||"set"in s)throw new y("Accessors not supported");return"value"in s&&(f[u]=s.value),f}return c}()},27193:function(I,r,n){"use strict";var e=n(58310),i=n(91495),t=n(12867),o=n(87458),d=n(57591),y=n(767),V=n(45299),k=n(36223),S=Object.getOwnPropertyDescriptor;r.f=e?S:function(){function p(a,c){if(a=d(a),c=y(c),k)try{return S(a,c)}catch(f){}if(V(a,c))return o(!i(t.f,a,c),a[c])}return p}()},81644:function(I,r,n){"use strict";var e=n(7462),i=n(57591),t=n(37310).f,o=n(54602),d=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],y=function(k){try{return t(k)}catch(S){return o(d)}};I.exports.f=function(){function V(k){return d&&e(k)==="Window"?y(k):t(i(k))}return V}()},37310:function(I,r,n){"use strict";var e=n(53726),i=n(89453),t=i.concat("length","prototype");r.f=Object.getOwnPropertyNames||function(){function o(d){return e(d,t)}return o}()},89235:function(I,r){"use strict";r.f=Object.getOwnPropertySymbols},36917:function(I,r,n){"use strict";var e=n(45299),i=n(55747),t=n(46771),o=n(19417),d=n(9225),y=o("IE_PROTO"),V=Object,k=V.prototype;I.exports=d?V.getPrototypeOf:function(S){var p=t(S);if(e(p,y))return p[y];var a=p.constructor;return i(a)&&p instanceof a?a.prototype:p instanceof V?k:null}},81834:function(I,r,n){"use strict";var e=n(40033),i=n(77568),t=n(7462),o=n(3782),d=Object.isExtensible,y=e(function(){d(1)});I.exports=y||o?function(){function V(k){return!i(k)||o&&t(k)==="ArrayBuffer"?!1:d?d(k):!0}return V}():d},21287:function(I,r,n){"use strict";var e=n(67250);I.exports=e({}.isPrototypeOf)},53726:function(I,r,n){"use strict";var e=n(67250),i=n(45299),t=n(57591),o=n(14211).indexOf,d=n(79195),y=e([].push);I.exports=function(V,k){var S=t(V),p=0,a=[],c;for(c in S)!i(d,c)&&i(S,c)&&y(a,c);for(;k.length>p;)i(S,c=k[p++])&&(~o(a,c)||y(a,c));return a}},18450:function(I,r,n){"use strict";var e=n(53726),i=n(89453);I.exports=Object.keys||function(){function t(o){return e(o,i)}return t}()},12867:function(I,r){"use strict";var n={}.propertyIsEnumerable,e=Object.getOwnPropertyDescriptor,i=e&&!n.call({1:2},1);r.f=i?function(){function t(o){var d=e(this,o);return!!d&&d.enumerable}return t}():n},57377:function(I,r,n){"use strict";var e=n(4493),i=n(16210),t=n(40033),o=n(44981);I.exports=e||!t(function(){if(!(o&&o<535)){var d=Math.random();__defineSetter__.call(null,d,function(){}),delete i[d]}})},76649:function(I,r,n){"use strict";var e=n(38656),i=n(77568),t=n(16952),o=n(35908);I.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var d=!1,y={},V;try{V=e(Object.prototype,"__proto__","set"),V(y,[]),d=y instanceof Array}catch(k){}return function(){function k(S,p){return t(S),o(p),i(S)&&(d?V(S,p):S.__proto__=p),S}return k}()}():void 0)},70915:function(I,r,n){"use strict";var e=n(58310),i=n(40033),t=n(67250),o=n(36917),d=n(18450),y=n(57591),V=n(12867).f,k=t(V),S=t([].push),p=e&&i(function(){var c=Object.create(null);return c[2]=2,!k(c,2)}),a=function(f){return function(u){for(var s=y(u),m=d(s),l=p&&o(s)===null,C=m.length,b=0,g=[],h;C>b;)h=m[b++],(!e||(l?h in s:k(s,h)))&&S(g,f?[h,s[h]]:s[h]);return g}};I.exports={entries:a(!0),values:a(!1)}},2509:function(I,r,n){"use strict";var e=n(2650),i=n(2281);I.exports=e?{}.toString:function(){function t(){return"[object "+i(this)+"]"}return t}()},13396:function(I,r,n){"use strict";var e=n(91495),i=n(55747),t=n(77568),o=TypeError;I.exports=function(d,y){var V,k;if(y==="string"&&i(V=d.toString)&&!t(k=e(V,d))||i(V=d.valueOf)&&!t(k=e(V,d))||y!=="string"&&i(V=d.toString)&&!t(k=e(V,d)))return k;throw new o("Can't convert object to primitive value")}},97921:function(I,r,n){"use strict";var e=n(4009),i=n(67250),t=n(37310),o=n(89235),d=n(30365),y=i([].concat);I.exports=e("Reflect","ownKeys")||function(){function V(k){var S=t.f(d(k)),p=o.f;return p?y(S,p(k)):S}return V}()},61765:function(I,r,n){"use strict";var e=n(16210);I.exports=e},10729:function(I){"use strict";I.exports=function(r){try{return{error:!1,value:r()}}catch(n){return{error:!0,value:n}}}},74854:function(I,r,n){"use strict";var e=n(16210),i=n(67512),t=n(55747),o=n(41314),d=n(40492),y=n(24697),V=n(10753),k=n(4493),S=n(83141),p=i&&i.prototype,a=y("species"),c=!1,f=t(e.PromiseRejectionEvent),u=o("Promise",function(){var s=d(i),m=s!==String(i);if(!m&&S===66||k&&!(p.catch&&p.finally))return!0;if(!S||S<51||!/native code/.test(s)){var l=new i(function(g){g(1)}),C=function(h){h(function(){},function(){})},b=l.constructor={};if(b[a]=C,c=l.then(function(){})instanceof C,!c)return!0}return!m&&(V==="BROWSER"||V==="DENO")&&!f});I.exports={CONSTRUCTOR:u,REJECTION_EVENT:f,SUBCLASSING:c}},67512:function(I,r,n){"use strict";var e=n(16210);I.exports=e.Promise},66628:function(I,r,n){"use strict";var e=n(30365),i=n(77568),t=n(81837);I.exports=function(o,d){if(e(o),i(d)&&d.constructor===o)return d;var y=t.f(o),V=y.resolve;return V(d),y.promise}},48199:function(I,r,n){"use strict";var e=n(67512),i=n(92490),t=n(74854).CONSTRUCTOR;I.exports=t||!i(function(o){e.all(o).then(void 0,function(){})})},34550:function(I,r,n){"use strict";var e=n(74595).f;I.exports=function(i,t,o){o in i||e(i,o,{configurable:!0,get:function(){function d(){return t[o]}return d}(),set:function(){function d(y){t[o]=y}return d}()})}},9547:function(I){"use strict";var r=function(){this.head=null,this.tail=null};r.prototype={add:function(){function n(e){var i={item:e,next:null},t=this.tail;t?t.next=i:this.head=i,this.tail=i}return n}(),get:function(){function n(){var e=this.head;if(e){var i=this.head=e.next;return i===null&&(this.tail=null),e.item}}return n}()},I.exports=r},28340:function(I,r,n){"use strict";var e=n(91495),i=n(30365),t=n(55747),o=n(7462),d=n(14489),y=TypeError;I.exports=function(V,k){var S=V.exec;if(t(S)){var p=e(S,V,k);return p!==null&&i(p),p}if(o(V)==="RegExp")return e(d,V,k);throw new y("RegExp#exec called on incompatible receiver")}},14489:function(I,r,n){"use strict";var e=n(91495),i=n(67250),t=n(12605),o=n(70901),d=n(62115),y=n(16639),V=n(80674),k=n(5419).get,S=n(39173),p=n(35688),a=y("native-string-replace",String.prototype.replace),c=RegExp.prototype.exec,f=c,u=i("".charAt),s=i("".indexOf),m=i("".replace),l=i("".slice),C=function(){var v=/a/,N=/b*/g;return e(c,v,"a"),e(c,N,"a"),v.lastIndex!==0||N.lastIndex!==0}(),b=d.BROKEN_CARET,g=/()??/.exec("")[1]!==void 0,h=C||g||b||S||p;h&&(f=function(){function v(N){var x=this,B=k(x),L=t(N),w=B.raw,A,T,E,O,P,R,F;if(w)return w.lastIndex=x.lastIndex,A=e(f,w,L),x.lastIndex=w.lastIndex,A;var j=B.groups,_=b&&x.sticky,z=e(o,x),H=x.source,Y=0,G=L;if(_&&(z=m(z,"y",""),s(z,"g")===-1&&(z+="g"),G=l(L,x.lastIndex),x.lastIndex>0&&(!x.multiline||x.multiline&&u(L,x.lastIndex-1)!=="\n")&&(H="(?: "+H+")",G=" "+G,Y++),T=new RegExp("^(?:"+H+")",z)),g&&(T=new RegExp("^"+H+"$(?!\\s)",z)),C&&(E=x.lastIndex),O=e(c,_?T:x,G),_?O?(O.input=l(O.input,Y),O[0]=l(O[0],Y),O.index=x.lastIndex,x.lastIndex+=O[0].length):x.lastIndex=0:C&&O&&(x.lastIndex=x.global?O.index+O[0].length:E),g&&O&&O.length>1&&e(a,O[0],T,function(){for(P=1;P