From 7e09ac0036ddd651c88f6aa1c14c7bc9e958e35b Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Jan 2020 18:55:16 -0800 Subject: [PATCH 001/115] datums and shit --- code/__DEFINES/movespeed_modification.dm | 10 --- code/datums/components/mood.dm | 25 ++++++-- code/datums/components/shrink.dm | 10 ++- code/modules/mob/mob_movespeed.dm | 78 +++++++++++++++++------- 4 files changed, 82 insertions(+), 41 deletions(-) diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index ae2a753f1c6..eb1d4eeba03 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -1,12 +1,3 @@ -#define MOVESPEED_DATA_INDEX_PRIORITY 1 -#define MOVESPEED_DATA_INDEX_FLAGS 2 -#define MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN 3 -#define MOVESPEED_DATA_INDEX_MOVETYPE 4 -#define MOVESPEED_DATA_INDEX_BL_MOVETYPE 5 -#define MOVESPEED_DATA_INDEX_CONFLICT 6 - -#define MOVESPEED_DATA_INDEX_MAX 6 - //flags #define IGNORE_NOSLOW (1 << 0) @@ -78,4 +69,3 @@ #define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE" #define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING" #define MOVESPEED_ID_LENTURI "LENTURI_SLOWDOWN" - diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 13d3cdcd589..3cfc773cfa7 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -208,30 +208,43 @@ switch(sanity) if(SANITY_INSANE to SANITY_CRAZY) setInsanityEffect(MAJOR_INSANITY_PEN) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=1, movetypes=(~FLYING)) + master._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/sanity/insane, override = TRUE) sanity_level = 6 if(SANITY_CRAZY to SANITY_UNSTABLE) setInsanityEffect(MINOR_INSANITY_PEN) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=0.5, movetypes=(~FLYING)) + master._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/sanity/crazy, override = TRUE) sanity_level = 5 if(SANITY_UNSTABLE to SANITY_DISTURBED) setInsanityEffect(0) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=0.25, movetypes=(~FLYING)) + master._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/sanity/disturbed, override = TRUE) sanity_level = 4 if(SANITY_DISTURBED to SANITY_NEUTRAL) setInsanityEffect(0) - master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE) + master._REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 3 if(SANITY_NEUTRAL+1 to SANITY_GREAT+1) //shitty hack but +1 to prevent it from responding to super small differences setInsanityEffect(0) - master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE) + master._REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 2 if(SANITY_GREAT+1 to INFINITY) setInsanityEffect(0) - master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE) + master._REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 1 update_mood_icon() +/datum/movespeed_modifier/sanity + id = MOVESPEED_ID_SANITY + movetypes = (~FLYING) + +/datum/movespeed_modifier/sanity/insane + multiplicative_slowdown = 1 + +/datum/movespeed_modifier/sanity/crazy + multiplicative_slowdown = 0.5 + +/datum/movespeed_modifier/sanity/disturbed + multiplicative_slowdown = 0.25 + /datum/component/mood/proc/setInsanityEffect(newval) if(newval == insanity_effect) return diff --git a/code/datums/components/shrink.dm b/code/datums/components/shrink.dm index 48ab864c79d..7d5492e4bd2 100644 --- a/code/datums/components/shrink.dm +++ b/code/datums/components/shrink.dm @@ -14,7 +14,7 @@ parent_atom.opacity = 0 if(isliving(parent_atom)) var/mob/living/L = parent_atom - L.add_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY, update=TRUE, priority=100, multiplicative_slowdown=4, movetypes=GROUND) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modification/shrink_ray) if(iscarbon(L)) var/mob/living/carbon/C = L C.unequip_everything() @@ -27,7 +27,6 @@ "Everything grows bigger!") QDEL_IN(src, shrink_time) - /datum/component/shrink/Destroy() var/atom/parent_atom = parent parent_atom.transform = parent_atom.transform.Scale(2,2) @@ -35,8 +34,13 @@ parent_atom.opacity = oldopac if(isliving(parent_atom)) var/mob/living/L = parent_atom - L.remove_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY) + L._REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY) if(ishuman(L)) var/mob/living/carbon/human/H = L H.physiology.damage_resistance += 100 ..() + +/datum/movespeed_modification/shrink_ray + id = MOVESPEED_ID_SHRINK_RAY + movetypes = GROUNd + multiplicative_slowdown = 4 diff --git a/code/modules/mob/mob_movespeed.dm b/code/modules/mob/mob_movespeed.dm index 60af7098853..277844e2b15 100644 --- a/code/modules/mob/mob_movespeed.dm +++ b/code/modules/mob/mob_movespeed.dm @@ -34,25 +34,40 @@ Key procs //ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! +GLOBAL_LIST_EMPTY(movespeed_modification_cache) +/proc/get_cached_movespeed_modification(modtype) + if(!ispath(modtype, /datum/movespeed_modification)) + CRASH("[modtype] is not a movespeed modification type.") + var/datum/movespeed_modification/M = GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) + return M + ///Add a move speed modifier to a mob -/mob/proc/add_movespeed_modifier(id, update=TRUE, priority=0, flags=NONE, override=FALSE, multiplicative_slowdown=0, movetypes=ALL, blacklisted_movetypes=NONE, conflict=FALSE) - var/list/temp = list(priority, flags, multiplicative_slowdown, movetypes, blacklisted_movetypes, conflict) //build the modification list - var/resort = TRUE - if(LAZYACCESS(movespeed_modification, id)) - var/list/existing_data = movespeed_modification[id] - if(movespeed_modifier_identical_check(existing_data, temp)) +/mob/proc/_REFACTORING_add_movespeed_modifier(datum/movespeed_modification/type_or_datum, update = TRUE, override = FALSE) + if(ispath(type_or_datum)) + type_or_datum = get_cached_movespeed_modification(type_or_datum) + if(!istype(type_or_datum)) + CRASH("Invalid modification datum") + var/oldpriority + var/datum/movespeed_modification/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) + if(existing) + if(existing == type_or_datum) //same thing don't need to touch + return TRUE + if(!override) //not overriding, do not overwrite same ID. return FALSE - if(!override) - return FALSE - if(priority == existing_data[MOVESPEED_DATA_INDEX_PRIORITY]) - resort = FALSE // We don't need to re-sort if we're replacing something already there and it's the same priority - LAZYSET(movespeed_modification, id, temp) + oldpriority = existing.priority + remove_movespeed_modifier(existing, FLASE) + LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) + var/resort = type_or_datum.priority == oldpriority if(update) update_movespeed(resort) return TRUE ///Remove a move speed modifier from a mob -/mob/proc/remove_movespeed_modifier(id, update = TRUE) +/mob/proc/_REFACTORING_remove_movespeed_modifier(datum/movespeed_modification/type_id_datum, update = TRUE) + if(ispath(type_id_datum)) + type_id_datum = get_cached_movespeed_modification(type_id_datum) + if(istype(type_id_datum)) + type_id_datum = type_id_datum.id if(!LAZYACCESS(movespeed_modification, id)) return FALSE LAZYREMOVE(movespeed_modification, id) @@ -73,7 +88,11 @@ Key procs add_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT, TRUE, 100, override = TRUE, multiplicative_slowdown = diff) ///Is there a movespeed modifier for this mob -/mob/proc/has_movespeed_modifier(id) +/mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) + if(ispath(datum_type_id)) + datum_type_id = get_cached_movespeed_modification(datum_type_id) + if(istype(datum_type_id)) + datum_type_id = datum_type_id.id return LAZYACCESS(movespeed_modification, id) ///Set or update the global movespeed config on a mob @@ -115,15 +134,6 @@ Key procs /mob/proc/get_movespeed_modifiers() return movespeed_modification -///Check if a movespeed modifier is identical to another -/mob/proc/movespeed_modifier_identical_check(list/mod1, list/mod2) - if(!islist(mod1) || !islist(mod2) || mod1.len < MOVESPEED_DATA_INDEX_MAX || mod2.len < MOVESPEED_DATA_INDEX_MAX) - return FALSE - for(var/i in 1 to MOVESPEED_DATA_INDEX_MAX) - if(mod1[i] != mod2[i]) - return FALSE - return TRUE - ///Calculate the total slowdown of all movespeed modifiers /mob/proc/total_multiplicative_slowdown() . = 0 @@ -164,3 +174,27 @@ Key procs assembled[our_id] = our_data movespeed_modification = assembled UNSETEMPTY(movespeed_modification) + +/** + * Movespeed modification datums. + */ + +/datum/movespeed_modification + /// Unique ID. You can never have different modifications with the same ID + var/id = "ERROR" + + /// Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding. + var/priority = 0 + var/flags = NONE + + /// Multiplicative slowdown + var/multiplicative_slowdown = 0 + + /// Movetypes this applies to + var/movetypes = ALL + + /// Movetypes this never applies to + var/blacklisted_movetypes = NONE + + /// Other modification datums this conflicts with. + var/conflicts_with From bb95b2a8704a07a6e467451467e5964faac50f1d Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Jan 2020 19:13:30 -0800 Subject: [PATCH 002/115] changes --- code/datums/components/shrink.dm | 4 ++-- code/datums/elements/snail_crawl.dm | 9 +++++++-- code/game/objects/effects/mines.dm | 9 +++++++-- .../changeling/powers/strained_muscles.dm | 9 +++++++-- code/modules/mob/living/carbon/carbon.dm | 8 ++++++-- code/modules/mob/mob_movespeed.dm | 14 ++++++++------ .../xenobiology/crossbreeding/_status_effects.dm | 16 ++++++++++++---- 7 files changed, 49 insertions(+), 20 deletions(-) diff --git a/code/datums/components/shrink.dm b/code/datums/components/shrink.dm index 7d5492e4bd2..4c6d5883dde 100644 --- a/code/datums/components/shrink.dm +++ b/code/datums/components/shrink.dm @@ -14,7 +14,7 @@ parent_atom.opacity = 0 if(isliving(parent_atom)) var/mob/living/L = parent_atom - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modification/shrink_ray) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/shrink_ray) if(iscarbon(L)) var/mob/living/carbon/C = L C.unequip_everything() @@ -40,7 +40,7 @@ H.physiology.damage_resistance += 100 ..() -/datum/movespeed_modification/shrink_ray +/datum/movespeed_modifier/shrink_ray id = MOVESPEED_ID_SHRINK_RAY movetypes = GROUNd multiplicative_slowdown = 4 diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm index a3ce8213387..2b24fc359fa 100644 --- a/code/datums/elements/snail_crawl.dm +++ b/code/datums/elements/snail_crawl.dm @@ -20,12 +20,17 @@ /datum/element/snailcrawl/proc/snail_crawl(mob/living/carbon/snail) if(snail.resting && !snail.buckled && lubricate(snail)) - snail.add_movespeed_modifier(MOVESPEED_ID_SNAIL_CRAWL, update=TRUE, priority=100, multiplicative_slowdown=-7, movetypes=GROUND) + snail._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) else - snail.remove_movespeed_modifier(MOVESPEED_ID_SNAIL_CRAWL) + snail._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) /datum/element/snailcrawl/proc/lubricate(atom/movable/snail) var/turf/open/OT = get_turf(snail) if(istype(OT)) OT.MakeSlippery(TURF_WET_LUBE, 20) return TRUE + +/datum/movespeed_modifier/snail_crawl + id = MOVESPEED_ID_SNAIL_CRAWL + multiplicative_slowdown = -7 + movetypes = GROUnD diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 32998fbfd9e..4b98939b353 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -172,7 +172,12 @@ if(!victim.client || !istype(victim)) return to_chat(victim, "You feel fast!") - victim.add_movespeed_modifier(MOVESPEED_ID_YELLOW_ORB, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING)) + victim._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) sleep(duration) - victim.remove_movespeed_modifier(MOVESPEED_ID_YELLOW_ORB) + victim._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) to_chat(victim, "You slow down.") + +/datum/movespeed_modifier/yellow_orb + id = MOVESPEED_ID_YELLOW_ORB + multiplicative_slowdown = -2 + blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index 4432aa21fa0..fef709ee293 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -31,12 +31,12 @@ /datum/action/changeling/strained_muscles/proc/muscle_loop(mob/living/carbon/user) while(active) - user.add_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + user._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) if(user.stat != CONSCIOUS || user.staminaloss >= 90) active = !active to_chat(user, "Our muscles relax without the energy to strengthen them.") user.Paralyze(40) - user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES) + user._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) break stacks++ @@ -51,3 +51,8 @@ while(!active && stacks) //Damage stacks decrease fairly rapidly while not in sanic mode stacks-- sleep(20) + +/datum/movespeed_modifier/strained_muscles + id = MOVESPEED_ID_CHANGELING_MUSCLES + multiplicative_slowdown = -1 + blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index c3e13671110..d6de331c403 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -497,9 +497,13 @@ /mob/living/carbon/update_mobility() . = ..() if(!(mobility_flags & MOBILITY_STAND)) - add_movespeed_modifier(MOVESPEED_ID_CARBON_CRAWLING, TRUE, multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN) + _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling) else - remove_movespeed_modifier(MOVESPEED_ID_CARBON_CRAWLING, TRUE) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling) + +/datum/movespeed_modifier/carbon_crawling + id = MOVESPEED_ID_CARBON_CRAWLING + multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN //Updates the mob's health from bodyparts and mob damage variables /mob/living/carbon/updatehealth() diff --git a/code/modules/mob/mob_movespeed.dm b/code/modules/mob/mob_movespeed.dm index 277844e2b15..bfb7de05676 100644 --- a/code/modules/mob/mob_movespeed.dm +++ b/code/modules/mob/mob_movespeed.dm @@ -35,10 +35,12 @@ Key procs //ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! GLOBAL_LIST_EMPTY(movespeed_modification_cache) + +/// Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO! /proc/get_cached_movespeed_modification(modtype) - if(!ispath(modtype, /datum/movespeed_modification)) + if(!ispath(modtype, /datum/movespeed_modifier)) CRASH("[modtype] is not a movespeed modification type.") - var/datum/movespeed_modification/M = GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) + var/datum/movespeed_modifier/M = GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) return M ///Add a move speed modifier to a mob @@ -48,7 +50,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(!istype(type_or_datum)) CRASH("Invalid modification datum") var/oldpriority - var/datum/movespeed_modification/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) + var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) if(existing) if(existing == type_or_datum) //same thing don't need to touch return TRUE @@ -68,7 +70,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) type_id_datum = get_cached_movespeed_modification(type_id_datum) if(istype(type_id_datum)) type_id_datum = type_id_datum.id - if(!LAZYACCESS(movespeed_modification, id)) + if(!LAZYACCESS(movespeed_modification, type_id_datum)) return FALSE LAZYREMOVE(movespeed_modification, id) UNSETEMPTY(movespeed_modification) @@ -93,7 +95,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) datum_type_id = get_cached_movespeed_modification(datum_type_id) if(istype(datum_type_id)) datum_type_id = datum_type_id.id - return LAZYACCESS(movespeed_modification, id) + return LAZYACCESS(movespeed_modification, datum_type_id) ///Set or update the global movespeed config on a mob /mob/proc/update_config_movespeed() @@ -179,7 +181,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) * Movespeed modification datums. */ -/datum/movespeed_modification +/datum/movespeed_modifier /// Unique ID. You can never have different modifications with the same ID var/id = "ERROR" diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index be3276bbeb2..2fdd2e77da0 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -185,7 +185,7 @@ alert_type = /obj/screen/alert/status_effect/bloodchill /datum/status_effect/bloodchill/on_apply() - owner.add_movespeed_modifier("bloodchilled", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = 3) + owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/bloodchill) return ..() /datum/status_effect/bloodchill/tick() @@ -193,7 +193,11 @@ owner.adjustFireLoss(2) /datum/status_effect/bloodchill/on_remove() - owner.remove_movespeed_modifier("bloodchilled") + owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bloodchill) + +/datum/movespeed_modifier/bloodchill + id = "bloodchilled" + multiplicative_slowdown = 3 /datum/status_effect/bonechill id = "bonechill" @@ -201,7 +205,7 @@ alert_type = /obj/screen/alert/status_effect/bonechill /datum/status_effect/bonechill/on_apply() - owner.add_movespeed_modifier("bonechilled", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = 3) + owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/bonechill) return ..() /datum/status_effect/bonechill/tick() @@ -211,7 +215,11 @@ owner.adjust_bodytemperature(-10) /datum/status_effect/bonechill/on_remove() - owner.remove_movespeed_modifier("bonechilled") + owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bonechill) + +/datum/movespeed_modifier/bonechill + id = "bonechilled" + multiplicative_slowdown = 3 /obj/screen/alert/status_effect/bonechill name = "Bonechilled" From 46451e23ea965b7908ea39f019c4dad2cb9ff592 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Jan 2020 07:27:44 -0800 Subject: [PATCH 003/115] move stuff --- code/datums/components/shrink.dm | 5 - code/datums/elements/snail_crawl.dm | 5 - .../changeling/powers/strained_muscles.dm | 5 - .../_movespeed_modifier.dm} | 404 +++++++++--------- .../modules/movespeed/modifiers/components.dm | 9 + code/modules/movespeed/modifiers/innate.dm | 4 + code/modules/movespeed/modifiers/reagent.dm | 9 + .../movespeed/modifiers/status_effects.dm | 7 + .../chemistry/reagents/medicine_reagents.dm | 8 +- .../crossbreeding/_status_effects.dm | 9 - tgstation.dme | 6 +- 11 files changed, 240 insertions(+), 231 deletions(-) rename code/modules/{mob/mob_movespeed.dm => movespeed/_movespeed_modifier.dm} (96%) create mode 100644 code/modules/movespeed/modifiers/components.dm create mode 100644 code/modules/movespeed/modifiers/innate.dm create mode 100644 code/modules/movespeed/modifiers/reagent.dm create mode 100644 code/modules/movespeed/modifiers/status_effects.dm diff --git a/code/datums/components/shrink.dm b/code/datums/components/shrink.dm index 4c6d5883dde..155c27a9035 100644 --- a/code/datums/components/shrink.dm +++ b/code/datums/components/shrink.dm @@ -39,8 +39,3 @@ var/mob/living/carbon/human/H = L H.physiology.damage_resistance += 100 ..() - -/datum/movespeed_modifier/shrink_ray - id = MOVESPEED_ID_SHRINK_RAY - movetypes = GROUNd - multiplicative_slowdown = 4 diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm index 2b24fc359fa..4f30524254e 100644 --- a/code/datums/elements/snail_crawl.dm +++ b/code/datums/elements/snail_crawl.dm @@ -29,8 +29,3 @@ if(istype(OT)) OT.MakeSlippery(TURF_WET_LUBE, 20) return TRUE - -/datum/movespeed_modifier/snail_crawl - id = MOVESPEED_ID_SNAIL_CRAWL - multiplicative_slowdown = -7 - movetypes = GROUnD diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index fef709ee293..51f1d65d383 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -51,8 +51,3 @@ while(!active && stacks) //Damage stacks decrease fairly rapidly while not in sanic mode stacks-- sleep(20) - -/datum/movespeed_modifier/strained_muscles - id = MOVESPEED_ID_CHANGELING_MUSCLES - multiplicative_slowdown = -1 - blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/mob/mob_movespeed.dm b/code/modules/movespeed/_movespeed_modifier.dm similarity index 96% rename from code/modules/mob/mob_movespeed.dm rename to code/modules/movespeed/_movespeed_modifier.dm index bfb7de05676..30871b1e01f 100644 --- a/code/modules/mob/mob_movespeed.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -1,202 +1,202 @@ -/*! How move speed for mobs works - -Move speed is now calculated by using a list of movespeed modifiers, which is a list itself (to avoid datum overhead) - -This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be - -THey can have unique sources and a bunch of extra fancy flags that control behaviour - -Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower - -This list takes the following format - -```Current movespeed modification list format: - list( - id = list( - priority, - flags, - legacy slowdown/speedup amount, - movetype_flags - ) - ) -``` - -WHen update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions -this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob -can next move - -Key procs -* [add_movespeed_modifier](mob.html#proc/add_movespeed_modifier) -* [remove_movespeed_modifier](mob.html#proc/remove_movespeed_modifier) -* [has_movespeed_modifier](mob.html#proc/has_movespeed_modifier) -* [update_movespeed](mob.html#proc/update_movespeed) -*/ - -//ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! - -GLOBAL_LIST_EMPTY(movespeed_modification_cache) - -/// Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO! -/proc/get_cached_movespeed_modification(modtype) - if(!ispath(modtype, /datum/movespeed_modifier)) - CRASH("[modtype] is not a movespeed modification type.") - var/datum/movespeed_modifier/M = GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) - return M - -///Add a move speed modifier to a mob -/mob/proc/_REFACTORING_add_movespeed_modifier(datum/movespeed_modification/type_or_datum, update = TRUE, override = FALSE) - if(ispath(type_or_datum)) - type_or_datum = get_cached_movespeed_modification(type_or_datum) - if(!istype(type_or_datum)) - CRASH("Invalid modification datum") - var/oldpriority - var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) - if(existing) - if(existing == type_or_datum) //same thing don't need to touch - return TRUE - if(!override) //not overriding, do not overwrite same ID. - return FALSE - oldpriority = existing.priority - remove_movespeed_modifier(existing, FLASE) - LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) - var/resort = type_or_datum.priority == oldpriority - if(update) - update_movespeed(resort) - return TRUE - -///Remove a move speed modifier from a mob -/mob/proc/_REFACTORING_remove_movespeed_modifier(datum/movespeed_modification/type_id_datum, update = TRUE) - if(ispath(type_id_datum)) - type_id_datum = get_cached_movespeed_modification(type_id_datum) - if(istype(type_id_datum)) - type_id_datum = type_id_datum.id - if(!LAZYACCESS(movespeed_modification, type_id_datum)) - return FALSE - LAZYREMOVE(movespeed_modification, id) - UNSETEMPTY(movespeed_modification) - if(update) - update_movespeed(FALSE) - return TRUE - -///Handles the special case of editing the movement var -/mob/vv_edit_var(var_name, var_value) - var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) - var/diff - if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value)) - remove_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT) - diff = var_value - cached_multiplicative_slowdown - . = ..() - if(. && slowdown_edit && isnum(diff)) - add_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT, TRUE, 100, override = TRUE, multiplicative_slowdown = diff) - -///Is there a movespeed modifier for this mob -/mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) - if(ispath(datum_type_id)) - datum_type_id = get_cached_movespeed_modification(datum_type_id) - if(istype(datum_type_id)) - datum_type_id = datum_type_id.id - return LAZYACCESS(movespeed_modification, datum_type_id) - -///Set or update the global movespeed config on a mob -/mob/proc/update_config_movespeed() - add_movespeed_modifier(MOVESPEED_ID_CONFIG_SPEEDMOD, FALSE, 100, override = TRUE, multiplicative_slowdown = get_config_multiplicative_speed()) - -///Get the global config movespeed of a mob by type -/mob/proc/get_config_multiplicative_speed() - if(!islist(GLOB.mob_config_movespeed_type_lookup) || !GLOB.mob_config_movespeed_type_lookup[type]) - return 0 - else - return GLOB.mob_config_movespeed_type_lookup[type] - -///Go through the list of movespeed modifiers and calculate a final movespeed -/mob/proc/update_movespeed(resort = TRUE) - if(resort) - sort_movespeed_modlist() - . = 0 - var/list/conflict_tracker = list() - for(var/id in get_movespeed_modifiers()) - var/list/data = movespeed_modification[id] - if(!(data[MOVESPEED_DATA_INDEX_MOVETYPE] & movement_type)) // We don't affect any of these move types, skip - continue - if(data[MOVESPEED_DATA_INDEX_BL_MOVETYPE] & movement_type) // There's a movetype here that disables this modifier, skip - continue - var/conflict = data[MOVESPEED_DATA_INDEX_CONFLICT] - var/amt = data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] - if(conflict) - // Conflicting modifiers prioritize the larger slowdown or the larger speedup - // We purposefuly don't handle mixing speedups and slowdowns on the same id - if(abs(conflict_tracker[conflict]) < abs(amt)) - conflict_tracker[conflict] = amt - else - continue - . += amt - cached_multiplicative_slowdown = . - -///Get the move speed modifiers list of the mob -/mob/proc/get_movespeed_modifiers() - return movespeed_modification - -///Calculate the total slowdown of all movespeed modifiers -/mob/proc/total_multiplicative_slowdown() - . = 0 - for(var/id in get_movespeed_modifiers()) - var/list/data = movespeed_modification[id] - . += data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] - -///Checks if a move speed modifier is valid and not missing any data -/proc/movespeed_data_null_check(list/data) //Determines if a data list is not meaningful and should be discarded. - . = TRUE - if(data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN]) - . = FALSE - -/** - * Sort the list of move speed modifiers - * - * Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied) - */ -/mob/proc/sort_movespeed_modlist() - if(!movespeed_modification) - return - var/list/assembled = list() - for(var/our_id in movespeed_modification) - var/list/our_data = movespeed_modification[our_id] - if(!islist(our_data) || (our_data.len < MOVESPEED_DATA_INDEX_PRIORITY) || movespeed_data_null_check(our_data)) - movespeed_modification -= our_id - continue - var/our_priority = our_data[MOVESPEED_DATA_INDEX_PRIORITY] - var/resolved = FALSE - for(var/their_id in assembled) - var/list/their_data = assembled[their_id] - if(their_data[MOVESPEED_DATA_INDEX_PRIORITY] < our_priority) - assembled.Insert(assembled.Find(their_id), our_id) - assembled[our_id] = our_data - resolved = TRUE - break - if(!resolved) - assembled[our_id] = our_data - movespeed_modification = assembled - UNSETEMPTY(movespeed_modification) - -/** - * Movespeed modification datums. - */ - -/datum/movespeed_modifier - /// Unique ID. You can never have different modifications with the same ID - var/id = "ERROR" - - /// Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding. - var/priority = 0 - var/flags = NONE - - /// Multiplicative slowdown - var/multiplicative_slowdown = 0 - - /// Movetypes this applies to - var/movetypes = ALL - - /// Movetypes this never applies to - var/blacklisted_movetypes = NONE - - /// Other modification datums this conflicts with. - var/conflicts_with +/** + * Movespeed modification datums. + */ + +/datum/movespeed_modifier + /// Unique ID. You can never have different modifications with the same ID + var/id = "ERROR" + + /// Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding. + var/priority = 0 + var/flags = NONE + + /// Multiplicative slowdown + var/multiplicative_slowdown = 0 + + /// Movetypes this applies to + var/movetypes = ALL + + /// Movetypes this never applies to + var/blacklisted_movetypes = NONE + + /// Other modification datums this conflicts with. + var/conflicts_with + +/*! How move speed for mobs works + +Move speed is now calculated by using a list of movespeed modifiers, which is a list itself (to avoid datum overhead) + +This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be + +THey can have unique sources and a bunch of extra fancy flags that control behaviour + +Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower + +This list takes the following format + +```Current movespeed modification list format: + list( + id = list( + priority, + flags, + legacy slowdown/speedup amount, + movetype_flags + ) + ) +``` + +WHen update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions +this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob +can next move + +Key procs +* [add_movespeed_modifier](mob.html#proc/add_movespeed_modifier) +* [remove_movespeed_modifier](mob.html#proc/remove_movespeed_modifier) +* [has_movespeed_modifier](mob.html#proc/has_movespeed_modifier) +* [update_movespeed](mob.html#proc/update_movespeed) +*/ + +//ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! + +GLOBAL_LIST_EMPTY(movespeed_modification_cache) + +/// Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO! +/proc/get_cached_movespeed_modification(modtype) + if(!ispath(modtype, /datum/movespeed_modifier)) + CRASH("[modtype] is not a movespeed modification type.") + var/datum/movespeed_modifier/M = GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) + return M + +///Add a move speed modifier to a mob +/mob/proc/_REFACTORING_add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE, override = FALSE) + if(ispath(type_or_datum)) + type_or_datum = get_cached_movespeed_modification(type_or_datum) + if(!istype(type_or_datum)) + CRASH("Invalid modification datum") + var/oldpriority + var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) + if(existing) + if(existing == type_or_datum) //same thing don't need to touch + return TRUE + if(!override) //not overriding, do not overwrite same ID. + return FALSE + oldpriority = existing.priority + remove_movespeed_modifier(existing, FLASE) + LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) + var/resort = type_or_datum.priority == oldpriority + if(update) + update_movespeed(resort) + return TRUE + +///Remove a move speed modifier from a mob +/mob/proc/_REFACTORING_remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) + if(ispath(type_id_datum)) + type_id_datum = get_cached_movespeed_modification(type_id_datum) + if(istype(type_id_datum)) + type_id_datum = type_id_datum.id + if(!LAZYACCESS(movespeed_modification, type_id_datum)) + return FALSE + LAZYREMOVE(movespeed_modification, id) + UNSETEMPTY(movespeed_modification) + if(update) + update_movespeed(FALSE) + return TRUE + +///Handles the special case of editing the movement var +/mob/vv_edit_var(var_name, var_value) + var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) + var/diff + if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value)) + remove_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT) + diff = var_value - cached_multiplicative_slowdown + . = ..() + if(. && slowdown_edit && isnum(diff)) + add_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT, TRUE, 100, override = TRUE, multiplicative_slowdown = diff) + +///Is there a movespeed modifier for this mob +/mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) + if(ispath(datum_type_id)) + datum_type_id = get_cached_movespeed_modification(datum_type_id) + if(istype(datum_type_id)) + datum_type_id = datum_type_id.id + return LAZYACCESS(movespeed_modification, datum_type_id) + +///Set or update the global movespeed config on a mob +/mob/proc/update_config_movespeed() + add_movespeed_modifier(MOVESPEED_ID_CONFIG_SPEEDMOD, FALSE, 100, override = TRUE, multiplicative_slowdown = get_config_multiplicative_speed()) + +///Get the global config movespeed of a mob by type +/mob/proc/get_config_multiplicative_speed() + if(!islist(GLOB.mob_config_movespeed_type_lookup) || !GLOB.mob_config_movespeed_type_lookup[type]) + return 0 + else + return GLOB.mob_config_movespeed_type_lookup[type] + +///Go through the list of movespeed modifiers and calculate a final movespeed +/mob/proc/update_movespeed(resort = TRUE) + if(resort) + sort_movespeed_modlist() + . = 0 + var/list/conflict_tracker = list() + for(var/id in get_movespeed_modifiers()) + var/list/data = movespeed_modification[id] + if(!(data[MOVESPEED_DATA_INDEX_MOVETYPE] & movement_type)) // We don't affect any of these move types, skip + continue + if(data[MOVESPEED_DATA_INDEX_BL_MOVETYPE] & movement_type) // There's a movetype here that disables this modifier, skip + continue + var/conflict = data[MOVESPEED_DATA_INDEX_CONFLICT] + var/amt = data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] + if(conflict) + // Conflicting modifiers prioritize the larger slowdown or the larger speedup + // We purposefuly don't handle mixing speedups and slowdowns on the same id + if(abs(conflict_tracker[conflict]) < abs(amt)) + conflict_tracker[conflict] = amt + else + continue + . += amt + cached_multiplicative_slowdown = . + +///Get the move speed modifiers list of the mob +/mob/proc/get_movespeed_modifiers() + return movespeed_modification + +///Calculate the total slowdown of all movespeed modifiers +/mob/proc/total_multiplicative_slowdown() + . = 0 + for(var/id in get_movespeed_modifiers()) + var/list/data = movespeed_modification[id] + . += data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] + +///Checks if a move speed modifier is valid and not missing any data +/proc/movespeed_data_null_check(list/data) //Determines if a data list is not meaningful and should be discarded. + . = TRUE + if(data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN]) + . = FALSE + +/** + * Sort the list of move speed modifiers + * + * Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied) + */ +/mob/proc/sort_movespeed_modlist() + if(!movespeed_modification) + return + var/list/assembled = list() + for(var/our_id in movespeed_modification) + var/list/our_data = movespeed_modification[our_id] + if(!islist(our_data) || (our_data.len < MOVESPEED_DATA_INDEX_PRIORITY) || movespeed_data_null_check(our_data)) + movespeed_modification -= our_id + continue + var/our_priority = our_data[MOVESPEED_DATA_INDEX_PRIORITY] + var/resolved = FALSE + for(var/their_id in assembled) + var/list/their_data = assembled[their_id] + if(their_data[MOVESPEED_DATA_INDEX_PRIORITY] < our_priority) + assembled.Insert(assembled.Find(their_id), our_id) + assembled[our_id] = our_data + resolved = TRUE + break + if(!resolved) + assembled[our_id] = our_data + movespeed_modification = assembled + UNSETEMPTY(movespeed_modification) diff --git a/code/modules/movespeed/modifiers/components.dm b/code/modules/movespeed/modifiers/components.dm new file mode 100644 index 00000000000..040a7950fac --- /dev/null +++ b/code/modules/movespeed/modifiers/components.dm @@ -0,0 +1,9 @@ +/datum/movespeed_modifier/shrink_ray + id = MOVESPEED_ID_SHRINK_RAY + movetypes = GROUND + multiplicative_slowdown = 4 + +/datum/movespeed_modifier/snail_crawl + id = MOVESPEED_ID_SNAIL_CRAWL + multiplicative_slowdown = -7 + movetypes = GROUND diff --git a/code/modules/movespeed/modifiers/innate.dm b/code/modules/movespeed/modifiers/innate.dm new file mode 100644 index 00000000000..d11c51f9f80 --- /dev/null +++ b/code/modules/movespeed/modifiers/innate.dm @@ -0,0 +1,4 @@ +/datum/movespeed_modifier/strained_muscles + id = MOVESPEED_ID_CHANGELING_MUSCLES + multiplicative_slowdown = -1 + blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/movespeed/modifiers/reagent.dm b/code/modules/movespeed/modifiers/reagent.dm new file mode 100644 index 00000000000..a66b6c730ee --- /dev/null +++ b/code/modules/movespeed/modifiers/reagent.dm @@ -0,0 +1,9 @@ +/datum/movespeed_modifier/reagent/stimulants + id = "stimulants_reagent" + multiplicative_slowdown = -1 + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/reagent/ephedrine + id = "ephedrine_reagent" + multiplicative_slowdown = -0.5 + blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm new file mode 100644 index 00000000000..b4bb2b07ba6 --- /dev/null +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -0,0 +1,7 @@ +/datum/movespeed_modifier/bloodchill + id = "bloodchilled" + multiplicative_slowdown = 3 + +/datum/movespeed_modifier/bonechill + id = "bonechilled" + multiplicative_slowdown = 3 diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index a1a915693d2..79c87e51c88 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -422,11 +422,11 @@ /datum/reagent/medicine/ephedrine/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.5, blacklisted_movetypes=(FLYING|FLOATING)) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine) ADD_TRAIT(L, TRAIT_STUNRESISTANCE, type) /datum/reagent/medicine/ephedrine/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine) REMOVE_TRAIT(L, TRAIT_STUNRESISTANCE, type) ..() @@ -806,11 +806,11 @@ /datum/reagent/medicine/stimulants/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants) ADD_TRAIT(L, TRAIT_STUNRESISTANCE, type) /datum/reagent/medicine/stimulants/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants) REMOVE_TRAIT(L, TRAIT_STUNRESISTANCE, type) ..() diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 2fdd2e77da0..af254f6c028 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -195,10 +195,6 @@ /datum/status_effect/bloodchill/on_remove() owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bloodchill) -/datum/movespeed_modifier/bloodchill - id = "bloodchilled" - multiplicative_slowdown = 3 - /datum/status_effect/bonechill id = "bonechill" duration = 80 @@ -216,11 +212,6 @@ /datum/status_effect/bonechill/on_remove() owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bonechill) - -/datum/movespeed_modifier/bonechill - id = "bonechilled" - multiplicative_slowdown = 3 - /obj/screen/alert/status_effect/bonechill name = "Bonechilled" desc = "You feel a shiver down your spine after hearing the haunting noise of bone rattling. You'll move slower and get frostbite for a while!" diff --git a/tgstation.dme b/tgstation.dme index ca23a270dfb..e550eeec980 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2022,7 +2022,6 @@ #include "code\modules\mob\mob_defines.dm" #include "code\modules\mob\mob_helpers.dm" #include "code\modules\mob\mob_movement.dm" -#include "code\modules\mob\mob_movespeed.dm" #include "code\modules\mob\mob_transformation_simple.dm" #include "code\modules\mob\say.dm" #include "code\modules\mob\status_procs.dm" @@ -2379,6 +2378,11 @@ #include "code\modules\modular_computers\hardware\printer.dm" #include "code\modules\modular_computers\hardware\recharger.dm" #include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\movespeed\_movespeed_modifier.dm" +#include "code\modules\movespeed\modifiers\components.dm" +#include "code\modules\movespeed\modifiers\innate.dm" +#include "code\modules\movespeed\modifiers\reagent.dm" +#include "code\modules\movespeed\modifiers\status_effects.dm" #include "code\modules\ninja\__ninjaDefines.dm" #include "code\modules\ninja\energy_katana.dm" #include "code\modules\ninja\ninja_event.dm" From 75c575acef74f9853eb59edf9c018779abdf5529 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Jan 2020 13:36:32 -0800 Subject: [PATCH 004/115] move some stuff add some stuff yadda yadda --- .../antagonists/slaughter/slaughter.dm | 2 +- .../mob/living/carbon/monkey/monkey.dm | 2 -- code/modules/movespeed/_movespeed_modifier.dm | 26 +++++++++---------- code/modules/movespeed/modifiers/reagent.dm | 15 +++++++++++ .../chemistry/reagents/drink_reagents.dm | 5 ++-- .../chemistry/reagents/food_reagents.dm | 4 +-- .../chemistry/reagents/medicine_reagents.dm | 4 +-- 7 files changed, 35 insertions(+), 23 deletions(-) diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 4f3f49e04cd..c4fb5deb541 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -33,7 +33,7 @@ health = 200 healable = 0 environment_smash = ENVIRONMENT_SMASH_STRUCTURES - obj_damage = 50 + obj_damage = 5 melee_damage_lower = 30 melee_damage_upper = 30 see_in_dark = 8 diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 51a1a284c54..15ae5c68270 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -95,8 +95,6 @@ if(changeling) stat("Chemical Storage", "[changeling.chem_charges]/[changeling.chem_storage]") stat("Absorbed DNA", changeling.absorbedcount) - return - /mob/living/carbon/monkey/verb/removeinternal() set name = "Remove Internals" diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 30871b1e01f..2df0435bfb5 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -96,7 +96,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) type_id_datum = type_id_datum.id if(!LAZYACCESS(movespeed_modification, type_id_datum)) return FALSE - LAZYREMOVE(movespeed_modification, id) + LAZYREMOVE(movespeed_modification, type_id_datum) UNSETEMPTY(movespeed_modification) if(update) update_movespeed(FALSE) @@ -139,13 +139,13 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) . = 0 var/list/conflict_tracker = list() for(var/id in get_movespeed_modifiers()) - var/list/data = movespeed_modification[id] - if(!(data[MOVESPEED_DATA_INDEX_MOVETYPE] & movement_type)) // We don't affect any of these move types, skip + var/datum/movespeed_modifier/M = movespeed_modification[id] + if(!(M.movetypes & movement_type)) // We don't affect any of these move types, skip continue - if(data[MOVESPEED_DATA_INDEX_BL_MOVETYPE] & movement_type) // There's a movetype here that disables this modifier, skip + if(M.blacklisted_movetypes & movement_type) // There's a movetype here that disables this modifier, skip continue - var/conflict = data[MOVESPEED_DATA_INDEX_CONFLICT] - var/amt = data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] + var/conflict = M.conflict + var/amt = M.multiplicative_slowdown if(conflict) // Conflicting modifiers prioritize the larger slowdown or the larger speedup // We purposefuly don't handle mixing speedups and slowdowns on the same id @@ -183,20 +183,20 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) return var/list/assembled = list() for(var/our_id in movespeed_modification) - var/list/our_data = movespeed_modification[our_id] - if(!islist(our_data) || (our_data.len < MOVESPEED_DATA_INDEX_PRIORITY) || movespeed_data_null_check(our_data)) + var/datum/movespeed_modifier/M = movespeed_modification[our_id] + if(!istype(M) || movespeed_data_null_check(M)) movespeed_modification -= our_id continue - var/our_priority = our_data[MOVESPEED_DATA_INDEX_PRIORITY] + var/our_priority = M.priority var/resolved = FALSE for(var/their_id in assembled) - var/list/their_data = assembled[their_id] - if(their_data[MOVESPEED_DATA_INDEX_PRIORITY] < our_priority) + var/datum/movespeed_modifier/other = assembled[their_id] + if(other.priority < our_priority) assembled.Insert(assembled.Find(their_id), our_id) - assembled[our_id] = our_data + assembled[our_id] = M resolved = TRUE break if(!resolved) - assembled[our_id] = our_data + assembled[our_id] = M movespeed_modification = assembled UNSETEMPTY(movespeed_modification) diff --git a/code/modules/movespeed/modifiers/reagent.dm b/code/modules/movespeed/modifiers/reagent.dm index a66b6c730ee..90d4348486c 100644 --- a/code/modules/movespeed/modifiers/reagent.dm +++ b/code/modules/movespeed/modifiers/reagent.dm @@ -7,3 +7,18 @@ id = "ephedrine_reagent" multiplicative_slowdown = -0.5 blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/reagent/pepperspray + id = MOVESPEED_ID_PEPPER_SPRAY + multiplicative_slowdown = 0.25 + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/reagent/badstims + id = "reagent_badstims" + multiplicative_slowdown = -0.35 + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/reagent/monkey_energy + id = "reagent_monkey_energy" + multiplicative_slowdown = -0.35 + blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 3f2592dfc46..b291206e370 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -556,17 +556,16 @@ /datum/reagent/consumable/monkey_energy/on_mob_metabolize(mob/living/L) ..() if(ismonkey(L)) - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.35, blacklisted_movetypes=(FLYING|FLOATING)) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/monkey_energy) /datum/reagent/consumable/monkey_energy/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/monkey_energy) ..() /datum/reagent/consumable/monkey_energy/overdose_process(mob/living/M) if(prob(15)) M.say(pick_list_replacements(BOOMER_FILE, "boomer"), forced = /datum/reagent/consumable/monkey_energy) ..() - return /datum/reagent/consumable/ice name = "Ice" diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 017b30a369a..0159f6852ff 100755 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -293,8 +293,8 @@ victim.blind_eyes(3) // 6 seconds victim.confused = max(M.confused, 5) // 10 seconds victim.Knockdown(3 SECONDS) - victim.add_movespeed_modifier(MOVESPEED_ID_PEPPER_SPRAY, update=TRUE, priority=100, multiplicative_slowdown=0.25, blacklisted_movetypes=(FLYING|FLOATING)) - addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, MOVESPEED_ID_PEPPER_SPRAY), 10 SECONDS) + victim._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray) + addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) victim.update_damage_hud() if(method == INGEST) if(!holder.has_reagent(/datum/reagent/consumable/milk)) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 79c87e51c88..2115a2d8a95 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1348,14 +1348,14 @@ ..() ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, type) ADD_TRAIT(L, TRAIT_STUNRESISTANCE, type) - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.35, blacklisted_movetypes=(FLYING|FLOATING)) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/badstims) L.ignore_slowdown(type) /datum/reagent/medicine/badstims/on_mob_end_metabolize(mob/living/L) ..() REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type) REMOVE_TRAIT(L, TRAIT_STUNRESISTANCE, type) - L.remove_movespeed_modifier(type) + L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/badstims) L.unignore_slowdown(type) L.Dizzy(0) L.Jitter(0) From 9725ba6b571ae07bddd1775c75387ca8a74e372c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Jan 2020 14:49:59 -0800 Subject: [PATCH 005/115] variable modifiers --- .../mob/living/carbon/monkey/monkey.dm | 7 +- code/modules/mob/mob_movement.dm | 16 ++-- code/modules/movespeed/_movespeed_modifier.dm | 74 ++++++++++++++++--- code/modules/movespeed/modifiers/variable.dm | 10 +++ tgstation.dme | 1 + 5 files changed, 86 insertions(+), 22 deletions(-) create mode 100644 code/modules/movespeed/modifiers/variable.dm diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 15ae5c68270..c8dd9a90e36 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -60,14 +60,13 @@ /mob/living/carbon/monkey/on_reagent_change() . = ..() - remove_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE) var/amount if(reagents.has_reagent(/datum/reagent/medicine/morphine)) amount = -1 if(reagents.has_reagent(/datum/reagent/consumable/nuka_cola)) amount = -1 if(amount) - add_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) + add_or_update_movespeed_modifier(/datum/movespeed_modifier/variable/monkey_reagent_speedmod, TRUE, amount) /mob/living/carbon/monkey/updatehealth() . = ..() @@ -76,14 +75,14 @@ var/health_deficiency = (maxHealth - health) if(health_deficiency >= 45) slow += (health_deficiency / 25) - add_movespeed_modifier(MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = slow) + add_or_update_movespeed_modifier(/datum/movespeed_modifier/variable/monkey_health_speedmod, TRUE, slow) /mob/living/carbon/monkey/adjust_bodytemperature(amount) . = ..() var/slow = 0 if (bodytemperature < 283.222) slow += ((283.222 - bodytemperature) / 10) * 1.75 - add_movespeed_modifier(MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = slow) + add_or_update_movespeed_modifier(/datum/movespeed_modifier/variable/monkey_temperature_speedmod, TRUE, slow) /mob/living/carbon/monkey/Stat() ..() diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 98a59b851cd..4f49da4c02a 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -38,17 +38,17 @@ * Move a client in a direction * * Huge proc, has a lot of functionality - * + * * Mostly it will despatch to the mob that you are the owner of to actually move * in the physical realm - * + * * Things that stop you moving as a mob: * * world time being less than your next move_delay * * not being in a mob, or that mob not having a loc * * missing the n and direction parameters * * being in remote control of an object (calls Moveobject instead) * * being dead (it ghosts you instead) - * + * * Things that stop you moving as a mob living (why even have OO if you're just shoving it all * in the parent proc with istype checks right?): * * having incorporeal_move set (calls Process_Incorpmove() instead) @@ -68,7 +68,7 @@ * * Finally if you're pulling an object and it's dense, you are turned 180 after the move * (if you ask me, this should be at the top of the move so you don't dance around) - * + * */ /client/Move(n, direct) if(world.time < move_delay) //do not move anything ahead of this check please @@ -175,7 +175,7 @@ * Allows mobs to ignore density and phase through objects * * Called by client/Move() - * + * * The behaviour depends on the incorporeal_move value of the mob * * * INCORPOREAL_MOVE_BASIC - forceMoved to the next tile with no stop @@ -263,9 +263,9 @@ * Handles mob/living movement in space (or no gravity) * * Called by /client/Move() - * + * * return TRUE for movement or FALSE for none - * + * * You can move in space if you have a spacewalk ability */ /mob/Process_Spacemove(movement_dir = 0) @@ -443,7 +443,7 @@ /** * Toggle the move intent of the mob - * + * * triggers an update the move intent hud as well */ /mob/proc/toggle_move_intent(mob/user) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 2df0435bfb5..a9315a4f9f9 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -63,14 +63,21 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) /// Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO! /proc/get_cached_movespeed_modification(modtype) if(!ispath(modtype, /datum/movespeed_modifier)) - CRASH("[modtype] is not a movespeed modification type.") + CRASH("[modtype] is not a movespeed modification typepath.") + if(ispath(modtype, /datum/movespeed_modifier/variable)) + CRASH("[modtype] is a variable modifier, and can never be cached.") var/datum/movespeed_modifier/M = GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) return M -///Add a move speed modifier to a mob +///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. /mob/proc/_REFACTORING_add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE, override = FALSE) + var/created = FALSE if(ispath(type_or_datum)) - type_or_datum = get_cached_movespeed_modification(type_or_datum) + if(!ispath(type_or_datum, /datum/movespeed_modifier/variable)) + type_or_datum = get_cached_movespeed_modification(type_or_datum) + else + created = TRUE + type_or_datum = new type_or_datum if(!istype(type_or_datum)) CRASH("Invalid modification datum") var/oldpriority @@ -79,19 +86,24 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(existing == type_or_datum) //same thing don't need to touch return TRUE if(!override) //not overriding, do not overwrite same ID. + if(created) //make sure we clean up after ourselves. + qdel(type_or_datum) return FALSE oldpriority = existing.priority - remove_movespeed_modifier(existing, FLASE) + remove_movespeed_modifier(existing, FALSE) LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) var/resort = type_or_datum.priority == oldpriority if(update) update_movespeed(resort) return TRUE -///Remove a move speed modifier from a mob +///Remove a move speed modifier from a mob, whether static or variable. /mob/proc/_REFACTORING_remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) if(ispath(type_id_datum)) - type_id_datum = get_cached_movespeed_modification(type_id_datum) + if(!ispath(type_id_datum, /datum/movespeed_modifier/variable)) + type_id_datum = get_cached_movespeed_modification(type_id_datum) + else + type_id_datum = initial(type_id_datum.id) if(istype(type_id_datum)) type_id_datum = type_id_datum.id if(!LAZYACCESS(movespeed_modification, type_id_datum)) @@ -102,6 +114,48 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) update_movespeed(FALSE) return TRUE +/// Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. +/// Implies override. +/mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/variable/type_id_datum, update = TRUE, multiplicative_slowdown) + /* + How this SHOULD work is: + 1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list. + 2. Instantiate a new datum if type_id_datum isn't already instantiated + in the list, using the type. Obviously, wouldn't work for ID only. + 3. Add the datum if necessary using the regular add proc + 4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum + 5. Update if necessary + */ + . = FALSE + var/modified = FALSE + var/inject = FALSE + var/datum/movespeed_modifier/variable/final + if(istext(type_id_datum)) + final = LAZYACCESS(movespeed_modification, type_id_datum) + if(!istype(final)) + CRASH("Couldn't find existing modification when only provided an ID.") + else if(ispath(type_id_datum)) + var/id = initial(type_id_datum.id) + final = LAZYACCESS(movespeed_modification, type_id_datum) + if(!istype(final)) + final = new + inject = TRUE + modified = TRUE + else if(istype(type_id_datum)) + final = type_id_datum + if(!LAZYACCESS(movespeed_modification, final.id)) + inject = TRUE + modified = TRUE + else + CRASH("Invalid modifier") + if(!isnull(multiplicative_slowdown) + final.multiplicative_slowdown = multiplicative_slowdown + modified = TRUE + if(inject) + _REFACTORING_add_movespeed_modifier(final, FALSE, TRUE) + if(update && modified) + update_movespeed(TRUE) + return TRUE + ///Handles the special case of editing the movement var /mob/vv_edit_var(var_name, var_value) var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) @@ -164,13 +218,13 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) /mob/proc/total_multiplicative_slowdown() . = 0 for(var/id in get_movespeed_modifiers()) - var/list/data = movespeed_modification[id] - . += data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] + var/datum/movespeed_modifier/M = movespeed_modification[id] + . += M.multiplicative_slowdown() ///Checks if a move speed modifier is valid and not missing any data -/proc/movespeed_data_null_check(list/data) //Determines if a data list is not meaningful and should be discarded. +/proc/movespeed_data_null_check(datum/movespeed_modifier/M) //Determines if a data list is not meaningful and should be discarded. . = TRUE - if(data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN]) + if(M.multiplicative_slowdown) . = FALSE /** diff --git a/code/modules/movespeed/modifiers/variable.dm b/code/modules/movespeed/modifiers/variable.dm new file mode 100644 index 00000000000..f7836a90c9e --- /dev/null +++ b/code/modules/movespeed/modifiers/variable.dm @@ -0,0 +1,10 @@ +/datum/movespeed_modifier/variable + +/datum/movespeed_modifier/variable/monkey_reagent_speedmod + id = MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD + +/datum/movespeed_modifier/variable/monkey_health_speedmod + id = MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD + +/datum/movespeed_modifier/variable/monkey_temperature_speedmod + id = MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD diff --git a/tgstation.dme b/tgstation.dme index e550eeec980..7642b2722b8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2383,6 +2383,7 @@ #include "code\modules\movespeed\modifiers\innate.dm" #include "code\modules\movespeed\modifiers\reagent.dm" #include "code\modules\movespeed\modifiers\status_effects.dm" +#include "code\modules\movespeed\modifiers\variable.dm" #include "code\modules\ninja\__ninjaDefines.dm" #include "code\modules\ninja\energy_katana.dm" #include "code\modules\ninja\ninja_event.dm" From b3237ada7dea054c901e423bcd8fadd9b3cea4df Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Jan 2020 14:51:15 -0800 Subject: [PATCH 006/115] compile --- code/modules/movespeed/_movespeed_modifier.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index a9315a4f9f9..a6d9c3972ba 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -147,7 +147,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) modified = TRUE else CRASH("Invalid modifier") - if(!isnull(multiplicative_slowdown) + if(!isnull(multiplicative_slowdown)) final.multiplicative_slowdown = multiplicative_slowdown modified = TRUE if(inject) From 935817e607d137a3b69aa9fa77bea9cf0e55188a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 15:36:32 -0800 Subject: [PATCH 007/115] a a a a a --- code/datums/components/riding.dm | 2 +- .../antagonists/slaughter/slaughter.dm | 5 ++- code/modules/mob/living/carbon/human/human.dm | 17 +++++---- .../mob/living/carbon/human/human_movement.dm | 10 +++--- .../mob/living/carbon/human/species.dm | 11 +++--- .../mob/living/carbon/monkey/monkey.dm | 6 ++-- code/modules/mob/living/silicon/pai/pai.dm | 4 +-- code/modules/movespeed/_movespeed_modifier.dm | 27 +++++++++----- code/modules/movespeed/modifiers/mobs.dm | 35 +++++++++++++++++++ code/modules/movespeed/modifiers/reagent.dm | 28 ++++++++++++--- .../movespeed/modifiers/status_effects.dm | 19 ++++++++-- code/modules/movespeed/modifiers/variable.dm | 10 ------ .../reagents/cat2_medicine_reagents.dm | 22 ++++++------ .../chemistry/reagents/drink_reagents.dm | 4 +-- .../chemistry/reagents/drug_reagents.dm | 4 +-- .../chemistry/reagents/food_reagents.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 4 +-- .../chemistry/reagents/other_reagents.dm | 4 +-- .../crossbreeding/_status_effects.dm | 22 ++++++------ code/modules/station_goals/dna_vault.dm | 2 -- tgstation.dme | 2 +- 21 files changed, 152 insertions(+), 88 deletions(-) create mode 100644 code/modules/movespeed/modifiers/mobs.dm delete mode 100644 code/modules/movespeed/modifiers/variable.dm diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index 3840845a4c4..c8c916e465a 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -364,4 +364,4 @@ if(rider in AM.buckled_mobs) AM.unbuckle_mob(rider) . = ..() - + diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index c4fb5deb541..127a5bb15a2 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -67,9 +67,8 @@ /mob/living/simple_animal/slaughter/phasein() . = ..() - add_movespeed_modifier(MOVESPEED_ID_SLAUGHTER, update=TRUE, priority=100, multiplicative_slowdown=-1) - addtimer(CALLBACK(src, .proc/remove_movespeed_modifier, MOVESPEED_ID_SLAUGHTER, TRUE), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) - + _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/slaughter) + addtimer(CALLBACK(src, .proc/_REFACTORING_remove_movespeed_modifier, /datum/movespeed_modifier/slaughter), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) //The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl /obj/item/organ/heart/demon diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 41d82045c8f..fcedbba7d61 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1031,24 +1031,23 @@ . = ..() dna?.species.spec_updatehealth(src) if(HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) return var/health_deficiency = max((maxHealth - health), staminaloss) if(health_deficiency >= 40) - add_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN, override = TRUE, multiplicative_slowdown = (health_deficiency / 75), blacklisted_movetypes = FLOATING|FLYING) - add_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING, override = TRUE, multiplicative_slowdown = (health_deficiency / 25), movetypes = FLOATING) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) else - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) - -/mob/living/carbon/human/adjust_nutrition(var/change) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks +/mob/living/carbon/human/adjust_nutrition(change) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks if(HAS_TRAIT(src, TRAIT_NOHUNGER)) return FALSE return ..() -/mob/living/carbon/human/set_nutrition(var/change) //Seriously fuck you oldcoders. +/mob/living/carbon/human/set_nutrition(change) //Seriously fuck you oldcoders. if(HAS_TRAIT(src, TRAIT_NOHUNGER)) return FALSE return ..() diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 7f1c7c4c2fb..fd46ad8b9f1 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,11 +1,11 @@ /mob/living/carbon/human/get_movespeed_modifiers() var/list/considering = ..() - . = considering + . = list() if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN)) - for(var/id in .) - var/list/data = .[id] - if(data[MOVESPEED_DATA_INDEX_FLAGS] & IGNORE_NOSLOW) - .[id] = data + for(var/id in considering) + var/datum/movespeed_modifier/M = considering[id] + if(M.flags & IGNORE_NOSLOW) + .[id] = M /mob/living/carbon/human/slip(knockdown_amount, obj/O, lube, paralyze, forcedrop) if(HAS_TRAIT(src, TRAIT_NOSLIPALL)) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 6ae31b7febd..3f04b2df013 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1018,7 +1018,6 @@ GLOBAL_LIST_EMPTY(roundstart_races) //////// //LIFE// //////// - /datum/species/proc/handle_digestion(mob/living/carbon/human/H) if(HAS_TRAIT(src, TRAIT_NOHUNGER)) return //hunger is for BABIES @@ -1028,14 +1027,14 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.overeatduration < 100) to_chat(H, "You feel fit again!") REMOVE_TRAIT(H, TRAIT_FAT, OBESITY) - H.remove_movespeed_modifier(MOVESPEED_ID_FAT) + H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/obesity) H.update_inv_w_uniform() H.update_inv_wear_suit() else if(H.overeatduration >= 100) to_chat(H, "You suddenly feel blubbery!") ADD_TRAIT(H, TRAIT_FAT, OBESITY) - H.add_movespeed_modifier(MOVESPEED_ID_FAT, multiplicative_slowdown = 1.5) + H._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/obesity) H.update_inv_w_uniform() H.update_inv_wear_suit() @@ -1090,13 +1089,13 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(!HAS_TRAIT(H, TRAIT_NOHUNGER)) var/hungry = (500 - H.nutrition) / 5 //So overeat would be 100 and default level would be 80 if(hungry >= 70) - H.add_movespeed_modifier(MOVESPEED_ID_HUNGRY, override = TRUE, multiplicative_slowdown = (hungry / 50)) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/hunger, multiplicative_slowdown = (hungry / 50)) else if(isethereal(H)) var/datum/species/ethereal/E = H.dna.species if(E.get_charge(H) <= ETHEREAL_CHARGE_NORMAL) - H.add_movespeed_modifier(MOVESPEED_ID_HUNGRY, override = TRUE, multiplicative_slowdown = (1.5 * (1 - E.get_charge(H) / 100))) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/hunger, multiplicative_slowdown = (1.5 * (1 - E.get_charge(H) / 100))) else - H.remove_movespeed_modifier(MOVESPEED_ID_HUNGRY) + H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/hunger) switch(H.nutrition) if(NUTRITION_LEVEL_FULL to INFINITY) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index c8dd9a90e36..0452cebe784 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -66,7 +66,7 @@ if(reagents.has_reagent(/datum/reagent/consumable/nuka_cola)) amount = -1 if(amount) - add_or_update_movespeed_modifier(/datum/movespeed_modifier/variable/monkey_reagent_speedmod, TRUE, amount) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_reagent_speedmod, TRUE, amount) /mob/living/carbon/monkey/updatehealth() . = ..() @@ -75,14 +75,14 @@ var/health_deficiency = (maxHealth - health) if(health_deficiency >= 45) slow += (health_deficiency / 25) - add_or_update_movespeed_modifier(/datum/movespeed_modifier/variable/monkey_health_speedmod, TRUE, slow) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_health_speedmod, TRUE, slow) /mob/living/carbon/monkey/adjust_bodytemperature(amount) . = ..() var/slow = 0 if (bodytemperature < 283.222) slow += ((283.222 - bodytemperature) / 10) * 1.75 - add_or_update_movespeed_modifier(/datum/movespeed_modifier/variable/monkey_temperature_speedmod, TRUE, slow) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_temperature_speedmod, TRUE, slow) /mob/living/carbon/monkey/Stat() ..() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 89a627ce9e5..bd2f9e085fd 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -254,9 +254,9 @@ /mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) . = ..() if(!.) - add_movespeed_modifier(MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD, TRUE, 100, multiplicative_slowdown = 2) + _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk) return TRUE - remove_movespeed_modifier(MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD, TRUE) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk) return TRUE /mob/living/silicon/pai/examine(mob/user) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index a6d9c3972ba..6f00153abc4 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -3,6 +3,9 @@ */ /datum/movespeed_modifier + /// Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason) + var/variable = FALSE + /// Unique ID. You can never have different modifications with the same ID var/id = "ERROR" @@ -64,16 +67,16 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) /proc/get_cached_movespeed_modification(modtype) if(!ispath(modtype, /datum/movespeed_modifier)) CRASH("[modtype] is not a movespeed modification typepath.") - if(ispath(modtype, /datum/movespeed_modifier/variable)) + var/datum/movespeed_modifier/M = modtype + if(initial(M.variable)) CRASH("[modtype] is a variable modifier, and can never be cached.") - var/datum/movespeed_modifier/M = GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) - return M + return GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) ///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. /mob/proc/_REFACTORING_add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE, override = FALSE) var/created = FALSE if(ispath(type_or_datum)) - if(!ispath(type_or_datum, /datum/movespeed_modifier/variable)) + if(!initial(type_or_datum.variable)) type_or_datum = get_cached_movespeed_modification(type_or_datum) else created = TRUE @@ -100,12 +103,14 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) ///Remove a move speed modifier from a mob, whether static or variable. /mob/proc/_REFACTORING_remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) if(ispath(type_id_datum)) - if(!ispath(type_id_datum, /datum/movespeed_modifier/variable)) + if(!initial(type_id_datum.variable)) type_id_datum = get_cached_movespeed_modification(type_id_datum) else type_id_datum = initial(type_id_datum.id) if(istype(type_id_datum)) type_id_datum = type_id_datum.id + if(!istext(type_id_datum)) + CRASH("Invalid ID") if(!LAZYACCESS(movespeed_modification, type_id_datum)) return FALSE LAZYREMOVE(movespeed_modification, type_id_datum) @@ -116,7 +121,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) /// Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. /// Implies override. -/mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/variable/type_id_datum, update = TRUE, multiplicative_slowdown) +/mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE, multiplicative_slowdown) /* How this SHOULD work is: 1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list. @@ -128,12 +133,14 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) . = FALSE var/modified = FALSE var/inject = FALSE - var/datum/movespeed_modifier/variable/final + var/datum/movespeed_modifier/final if(istext(type_id_datum)) final = LAZYACCESS(movespeed_modification, type_id_datum) if(!istype(final)) CRASH("Couldn't find existing modification when only provided an ID.") else if(ispath(type_id_datum)) + if(!initial(type_id_datum.variable)) + CRASH("Not a variable modifier") var/id = initial(type_id_datum.id) final = LAZYACCESS(movespeed_modification, type_id_datum) if(!istype(final)) @@ -141,6 +148,8 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) inject = TRUE modified = TRUE else if(istype(type_id_datum)) + if(!initial(type_id_datum.variable)) + CRASH("Not a variable modifier") final = type_id_datum if(!LAZYACCESS(movespeed_modification, final.id)) inject = TRUE @@ -198,7 +207,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) continue if(M.blacklisted_movetypes & movement_type) // There's a movetype here that disables this modifier, skip continue - var/conflict = M.conflict + var/conflict = M.conflicts_with var/amt = M.multiplicative_slowdown if(conflict) // Conflicting modifiers prioritize the larger slowdown or the larger speedup @@ -219,7 +228,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) . = 0 for(var/id in get_movespeed_modifiers()) var/datum/movespeed_modifier/M = movespeed_modification[id] - . += M.multiplicative_slowdown() + . += M.multiplicative_slowdown ///Checks if a move speed modifier is valid and not missing any data /proc/movespeed_data_null_check(datum/movespeed_modifier/M) //Determines if a data list is not meaningful and should be discarded. diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm new file mode 100644 index 00000000000..23084dc0ea2 --- /dev/null +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -0,0 +1,35 @@ +/datum/movespeed_modifier/obesity + id = MOVESPEED_ID_FAT + multiplicative_slowdown = 1.5 + +/datum/movespeed_modifier/monkey_reagent_speedmod + variable = TRUE + id = MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD + +/datum/movespeed_modifier/monkey_health_speedmod + variable = TRUE + id = MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD + +/datum/movespeed_modifier/monkey_temperature_speedmod + variable = TRUE + id = MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD + +/datum/movespeed_modifier/hunger + id = MOVESPEED_ID_HUNGRY + variable = TRUE + +/datum/movespeed_modifier/slaughter + id = MOVESPEED_ID_SLAUGHTER + multiplicative_slowdown = -1 + +/datum/movespeed_modifier/damage_slowdown + id = MOVESPEED_ID_DAMAGE_SLOWDOWN + blacklisted_movetypes = FLOATING|FLYING + +/datum/movespeed_modifier/damage_slowdown_flying + id = MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING + movetypes = FLOATING + +/datum/movespeed_modifier/pai_spacewalk + id = MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD + multiplicative_slowdown = 2 diff --git a/code/modules/movespeed/modifiers/reagent.dm b/code/modules/movespeed/modifiers/reagent.dm index 90d4348486c..708925bda2b 100644 --- a/code/modules/movespeed/modifiers/reagent.dm +++ b/code/modules/movespeed/modifiers/reagent.dm @@ -1,24 +1,42 @@ +/datum/movespeed_modifier/reagent + blacklisted_movetypes = (FLYING|FLOATING) + /datum/movespeed_modifier/reagent/stimulants id = "stimulants_reagent" multiplicative_slowdown = -1 - blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/reagent/ephedrine id = "ephedrine_reagent" multiplicative_slowdown = -0.5 - blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/reagent/pepperspray id = MOVESPEED_ID_PEPPER_SPRAY multiplicative_slowdown = 0.25 - blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/reagent/badstims id = "reagent_badstims" multiplicative_slowdown = -0.35 - blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/reagent/monkey_energy id = "reagent_monkey_energy" multiplicative_slowdown = -0.35 - blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/reagent/changelinghaste + id = "reagent_changelinghaste" + multiplicative_slowdown = -2 + +/datum/movespeed_modifier/reagent/methamphetamine + id = "reagent_methamphetamine" + multiplicative_slowdown = -0.65 + +/datum/movespeed_modifier/reagent/nitryl + id = "reagent_nitryl" + multiplicative_slowdown = -0.65 + +/datum/movespeed_modifier/reagent/lenturi + id = "reagent_lenturi" + multiplicative_slowdown = 1.5 + +/datum/movespeed_modifier/reagent/nuka_cola + id = "reagent_nukacola" + multiplicative_slowdown = -0.35 diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm index b4bb2b07ba6..de68bd78ed1 100644 --- a/code/modules/movespeed/modifiers/status_effects.dm +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -1,7 +1,22 @@ -/datum/movespeed_modifier/bloodchill +/datum/movespeed_modifier/status_effect/bloodchill id = "bloodchilled" multiplicative_slowdown = 3 -/datum/movespeed_modifier/bonechill +/datum/movespeed_modifier/status_effect/bonechill id = "bonechilled" multiplicative_slowdown = 3 + +/datum/movespeed_modifier/status_effect/lightpink + id = MOVESPEED_ID_SLIME_STATUS + multiplicative_slowdown = -0.5 + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/status_effect/tarfoot + id = MOVESPEED_ID_TARFOOT + multiplicative_slowdown = 0.5 + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/status_effect/sepia + variable = TRUE + id = MOVESPEED_ID_SEPIA + blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/movespeed/modifiers/variable.dm b/code/modules/movespeed/modifiers/variable.dm deleted file mode 100644 index f7836a90c9e..00000000000 --- a/code/modules/movespeed/modifiers/variable.dm +++ /dev/null @@ -1,10 +0,0 @@ -/datum/movespeed_modifier/variable - -/datum/movespeed_modifier/variable/monkey_reagent_speedmod - id = MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD - -/datum/movespeed_modifier/variable/monkey_health_speedmod - id = MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD - -/datum/movespeed_modifier/variable/monkey_temperature_speedmod - id = MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index 4fc4fca9bf2..67e57ddf168 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -100,17 +100,19 @@ var/spammer = 0 /datum/reagent/medicine/C2/lenturi/on_mob_life(mob/living/carbon/M) - M.adjustFireLoss(-3 * REM) - M.adjustOrganLoss(ORGAN_SLOT_STOMACH, 0.4 * REM) - ..() - return TRUE -/datum/reagent/medicine/C2/lenturi/on_mob_metabolize(mob/living/carbon/M) - M.add_movespeed_modifier(MOVESPEED_ID_LENTURI, update=TRUE, priority=100, multiplicative_slowdown=1.50, blacklisted_movetypes=(FLYING|FLOATING)) - . = ..() -/datum/reagent/medicine/C2/lenturi/on_mob_end_metabolize(mob/living/carbon/M) - M.remove_movespeed_modifier(MOVESPEED_ID_LENTURI) + M.adjustFireLoss(-3 * REM) + M.adjustOrganLoss(ORGAN_SLOT_STOMACH, 0.4 * REM) + ..() + return TRUE + +/datum/reagent/medicine/C2/lenturi/on_mob_metabolize(mob/living/carbon/M) + M._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/lenturi) + return ..() + +/datum/reagent/medicine/C2/lenturi/on_mob_end_metabolize(mob/living/carbon/M) + M._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/lenturi) + return ..() - . = ..() /datum/reagent/medicine/C2/aiuri name = "Aiuri" description = "Used to treat burns. Does minor eye damage." diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index b291206e370..1df4e807393 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -376,10 +376,10 @@ /datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.35, blacklisted_movetypes=(FLYING|FLOATING)) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) /datum/reagent/consumable/nuka_cola/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) ..() /datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 87c1fe954a0..9af53eff1da 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -174,10 +174,10 @@ /datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.65, blacklisted_movetypes=(FLYING|FLOATING)) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) /datum/reagent/drug/methamphetamine/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) ..() /datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 0159f6852ff..bd9d3286014 100755 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -294,7 +294,7 @@ victim.confused = max(M.confused, 5) // 10 seconds victim.Knockdown(3 SECONDS) victim._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray) - addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) + addtimer(CALLBACK(victim, /mob.proc/_REFACTORING_remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) victim.update_damage_hud() if(method == INGEST) if(!holder.has_reagent(/datum/reagent/consumable/milk)) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 2115a2d8a95..23cad61cc2e 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1038,10 +1038,10 @@ /datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING)) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) /datum/reagent/medicine/changelinghaste/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) ..() /datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 52ad85ec33a..828ea4779d1 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1230,10 +1230,10 @@ /datum/reagent/nitryl/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.65, blacklisted_movetypes=(FLYING|FLOATING)) + L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl) /datum/reagent/nitryl/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl) ..() /////////////////////////Colorful Powder//////////////////////////// diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index af254f6c028..cf5a55d1287 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -185,7 +185,7 @@ alert_type = /obj/screen/alert/status_effect/bloodchill /datum/status_effect/bloodchill/on_apply() - owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/bloodchill) + owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill) return ..() /datum/status_effect/bloodchill/tick() @@ -193,7 +193,7 @@ owner.adjustFireLoss(2) /datum/status_effect/bloodchill/on_remove() - owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bloodchill) + owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill) /datum/status_effect/bonechill id = "bonechill" @@ -201,7 +201,7 @@ alert_type = /obj/screen/alert/status_effect/bonechill /datum/status_effect/bonechill/on_apply() - owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/bonechill) + owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill) return ..() /datum/status_effect/bonechill/tick() @@ -211,7 +211,7 @@ owner.adjust_bodytemperature(-10) /datum/status_effect/bonechill/on_remove() - owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bonechill) + owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill) /obj/screen/alert/status_effect/bonechill name = "Bonechilled" desc = "You feel a shiver down your spine after hearing the haunting noise of bone rattling. You'll move slower and get frostbite for a while!" @@ -365,11 +365,11 @@ datum/status_effect/rebreathing/tick() duration = 30 /datum/status_effect/tarfoot/on_apply() - owner.add_movespeed_modifier(MOVESPEED_ID_TARFOOT, update=TRUE, priority=100, multiplicative_slowdown=0.5, blacklisted_movetypes=(FLYING|FLOATING)) + owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot) return ..() /datum/status_effect/tarfoot/on_remove() - owner.remove_movespeed_modifier(MOVESPEED_ID_TARFOOT) + owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot) /datum/status_effect/spookcookie id = "spookcookie" @@ -683,15 +683,15 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/sepia/tick() if(prob(50) && mod > -1) mod-- - owner.add_movespeed_modifier(MOVESPEED_ID_SEPIA, override = TRUE, update=TRUE, priority=100, multiplicative_slowdown=-0.5, blacklisted_movetypes=(FLYING|FLOATING)) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = -0.5) else if(mod < 1) mod++ // yeah a value of 0 does nothing but replacing the trait in place is cheaper than removing and adding repeatedly - owner.add_movespeed_modifier(MOVESPEED_ID_SEPIA, override = TRUE, update=TRUE, priority=100, multiplicative_slowdown=0, blacklisted_movetypes=(FLYING|FLOATING)) + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = 0) return ..() /datum/status_effect/stabilized/sepia/on_remove() - owner.remove_movespeed_modifier(MOVESPEED_ID_SEPIA) + owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia) /datum/status_effect/stabilized/cerulean id = "stabilizedcerulean" @@ -899,7 +899,7 @@ datum/status_effect/stabilized/blue/on_remove() colour = "light pink" /datum/status_effect/stabilized/lightpink/on_apply() - owner.add_movespeed_modifier(MOVESPEED_ID_SLIME_STATUS, update=TRUE, priority=100, multiplicative_slowdown=-0.5, blacklisted_movetypes=(FLYING|FLOATING)) + owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink) return ..() /datum/status_effect/stabilized/lightpink/tick() @@ -910,7 +910,7 @@ datum/status_effect/stabilized/blue/on_remove() return ..() /datum/status_effect/stabilized/lightpink/on_remove() - owner.remove_movespeed_modifier(MOVESPEED_ID_SLIME_STATUS) + owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink) /datum/status_effect/stabilized/adamantine id = "stabilizedadamantine" diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index e040ea422a4..98cafcb0bda 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -248,8 +248,6 @@ else return ..() - - /obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H,upgrade_type) if(!(upgrade_type in power_lottery[H])) return diff --git a/tgstation.dme b/tgstation.dme index 7642b2722b8..6e500d532af 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2381,9 +2381,9 @@ #include "code\modules\movespeed\_movespeed_modifier.dm" #include "code\modules\movespeed\modifiers\components.dm" #include "code\modules\movespeed\modifiers\innate.dm" +#include "code\modules\movespeed\modifiers\mobs.dm" #include "code\modules\movespeed\modifiers\reagent.dm" #include "code\modules\movespeed\modifiers\status_effects.dm" -#include "code\modules\movespeed\modifiers\variable.dm" #include "code\modules\ninja\__ninjaDefines.dm" #include "code\modules\ninja\energy_katana.dm" #include "code\modules\ninja\ninja_event.dm" From 63d54e3e4f828abcc47d9b1b665f818a38d273dc Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 22:11:29 -0800 Subject: [PATCH 008/115] PAIN --- .../configuration/entries/game_options.dm | 10 +++ code/datums/components/riding.dm | 4 +- code/datums/elements/snail_crawl.dm | 2 +- code/game/objects/items/tanks/jetpack.dm | 4 +- .../changeling/powers/strained_muscles.dm | 2 +- .../awaymissions/mission_code/Academy.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 2 +- .../mob/living/carbon/human/species.dm | 15 ++-- code/modules/mob/living/living.dm | 4 +- code/modules/mob/living/living_movement.dm | 25 ++---- .../simple_animal/hostile/giant_spider.dm | 4 +- .../mob/living/simple_animal/simple_animal.dm | 4 +- .../mob/living/simple_animal/slime/slime.dm | 8 +- code/modules/mob/mob.dm | 14 ++- code/modules/mob/mob_movement.dm | 4 +- code/modules/movespeed/_movespeed_modifier.dm | 30 +++---- code/modules/movespeed/modifiers/innate.dm | 14 +++ code/modules/movespeed/modifiers/items.dm | 15 ++++ code/modules/movespeed/modifiers/misc.dm | 3 + code/modules/movespeed/modifiers/mobs.dm | 90 ++++++++++++++++++- .../crossbreeding/_status_effects.dm | 2 +- code/modules/station_goals/dna_vault.dm | 2 +- code/modules/surgery/organs/augments_chest.dm | 4 +- tgstation.dme | 2 + 25 files changed, 194 insertions(+), 76 deletions(-) create mode 100644 code/modules/movespeed/modifiers/items.dm create mode 100644 code/modules/movespeed/modifiers/misc.dm diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index ac6ab78afb3..b8fa4e456dd 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -241,9 +241,19 @@ /datum/config_entry/number/movedelay/run_delay integer = FALSE +/datum/config_entry/number/movedelay/run_delay/ValidateAndSet() + . = ..() + var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/run) + M.sync() + /datum/config_entry/number/movedelay/walk_delay integer = FALSE +/datum/config_entry/number/movedelay/walk_delay/ValidateAndSet() + . = ..() + var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/walk) + M.sync() + /////////////////////////////////////////////////Outdated move delay /datum/config_entry/number/outdated_movedelay deprecated_by = /datum/config_entry/keyed_list/multiplicative_movespeed diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index c8c916e465a..b4248189d23 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -212,13 +212,13 @@ /datum/component/riding/human/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE) var/mob/living/carbon/human/H = parent - H.remove_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING) + H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/human_carry) . = ..() /datum/component/riding/human/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE) . = ..() var/mob/living/carbon/human/H = parent - H.add_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING, multiplicative_slowdown = HUMAN_CARRY_SLOWDOWN) + H._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/human_carry) /datum/component/riding/human/proc/on_host_unarmed_melee(atom/target) var/mob/living/carbon/human/H = parent diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm index 4f30524254e..d8e6341e975 100644 --- a/code/datums/elements/snail_crawl.dm +++ b/code/datums/elements/snail_crawl.dm @@ -16,7 +16,7 @@ . = ..() UnregisterSignal(target, COMSIG_MOVABLE_MOVED) if(istype(target)) - target.remove_movespeed_modifier(MOVESPEED_ID_SNAIL_CRAWL) + target._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) /datum/element/snailcrawl/proc/snail_crawl(mob/living/carbon/snail) if(snail.resting && !snail.buckled && lubricate(snail)) diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index e44b22581c8..198fd4329a6 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -56,7 +56,7 @@ ion_trail.start() RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/move_react) if(full_speed) - user.add_movespeed_modifier(MOVESPEED_ID_JETPACK, priority=100, multiplicative_slowdown=-0.5, movetypes=FLOATING, conflict=MOVE_CONFLICT_JETPACK) + user._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) /obj/item/tank/jetpack/proc/turn_off(mob/user) on = FALSE @@ -64,7 +64,7 @@ icon_state = initial(icon_state) ion_trail.stop() UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - user.remove_movespeed_modifier(MOVESPEED_ID_JETPACK) + user._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) /obj/item/tank/jetpack/proc/move_react(mob/user) allow_thrust(0.01, user) diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index 51f1d65d383..cf2c73aa1a0 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -18,7 +18,7 @@ if(active) to_chat(user, "Our muscles tense and strengthen.") else - user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES) + user._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) to_chat(user, "Our muscles relax.") if(stacks >= 10) to_chat(user, "We collapse in exhaustion.") diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index cebfc1641cd..833776486e2 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -252,7 +252,7 @@ if(6) //Cut speed T.visible_message("[user] starts moving slower!") - user.add_movespeed_modifier(MOVESPEED_ID_DIE_OF_FATE, update=TRUE, priority=100, multiplicative_slowdown=1) + user._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/die_of_fate) if(7) //Throw T.visible_message("Unseen forces throw [user]!") diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index d6de331c403..a6e3fb7ec39 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -526,9 +526,9 @@ med_hud_set_health() if(stat == SOFT_CRIT) - add_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE, multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN) + _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit) else - remove_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit) /mob/living/carbon/update_stamina() var/stam = getStaminaLoss() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index fcedbba7d61..f53689f1f04 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1018,7 +1018,7 @@ return FALSE /mob/living/carbon/human/proc/clear_shove_slowdown() - remove_movespeed_modifier(MOVESPEED_ID_SHOVE) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/shove) var/active_item = get_active_held_item() if(is_type_in_typecache(active_item, GLOB.shove_disarming_types)) visible_message("[src.name] regains their grip on \the [active_item]!", "You regain your grip on \the [active_item]", null, COMBAT_MESSAGE_RANGE) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 3f04b2df013..7841c02e0e9 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -318,11 +318,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) fly = new fly.Grant(C) - C.add_movespeed_modifier(MOVESPEED_ID_SPECIES, TRUE, 100, override=TRUE, multiplicative_slowdown=speedmod, movetypes=(~FLYING)) + C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, multiplicative_slowdown=speedmod) SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species) - /datum/species/proc/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load) if(C.dna.species.exotic_bloodtype) C.dna.blood_type = random_blood_type() @@ -354,7 +353,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) C.dna.features["wings"] = "None" C.update_body() - C.remove_movespeed_modifier(MOVESPEED_ID_SPECIES) + C._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/species) SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) @@ -1378,8 +1377,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/knocked_item = FALSE if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types)) target_held_item = null - if(!target.has_movespeed_modifier(MOVESPEED_ID_SHOVE)) - target.add_movespeed_modifier(MOVESPEED_ID_SHOVE, multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH) + if(!target._REFACTORING_has_movespeed_modifier(/datum/movespeed_modifier/shove)) + target._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/shove) if(target_held_item) target.visible_message("[target.name]'s grip on \the [target_held_item] loosens!", "Your grip on \the [target_held_item] loosens!", null, COMBAT_MESSAGE_RANGE) @@ -1644,7 +1643,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot) - H.remove_movespeed_modifier(MOVESPEED_ID_COLD) + H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/cold) var/burn_damage var/firemodifier = H.fire_stacks / 50 @@ -1670,7 +1669,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold) //Sorry for the nasty oneline but I don't want to assign a variable on something run pretty frequently - H.add_movespeed_modifier(MOVESPEED_ID_COLD, override = TRUE, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR), blacklisted_movetypes = FLOATING) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR)) switch(H.bodytemperature) if(200 to BODYTEMP_COLD_DAMAGE_LIMIT) H.throw_alert("temp", /obj/screen/alert/cold, 1) @@ -1684,7 +1683,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) else H.clear_alert("temp") - H.remove_movespeed_modifier(MOVESPEED_ID_COLD) + H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/cold) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 9f6ddea959f..b5e3dbc5634 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1208,9 +1208,9 @@ if(!has_legs && has_arms < 2) limbless_slowdown += 6 - (has_arms * 3) if(limbless_slowdown) - add_movespeed_modifier(MOVESPEED_ID_LIVING_LIMBLESS, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=limbless_slowdown, movetypes=GROUND) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/limbless, multiplicative_slowdown = limbless_slowdown) else - remove_movespeed_modifier(MOVESPEED_ID_LIVING_LIMBLESS, update=TRUE) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/limbless) /mob/living/proc/fall(forced) if(!(mobility_flags & MOBILITY_USE)) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 89ce99f58ec..8dde0fdcebb 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -26,38 +26,31 @@ return ..() /mob/living/proc/update_move_intent_slowdown() - var/mod = 0 - if(m_intent == MOVE_INTENT_WALK) - mod = CONFIG_GET(number/movedelay/walk_delay) - else - mod = CONFIG_GET(number/movedelay/run_delay) - if(!isnum(mod)) - mod = 1 - add_movespeed_modifier(MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + _REFACTORING_add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run, override = TRUE) /mob/living/proc/update_turf_movespeed(turf/open/T) - if(isopenturf(T)) - add_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=T.slowdown, movetypes=GROUND) + if(istype(T)) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown, multiplicative_slowdown = T.slowdown) else - remove_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown) /mob/living/proc/update_pull_movespeed() if(pulling) if(isliving(pulling)) var/mob/living/L = pulling if(!slowed_by_drag || (L.mobility_flags & MOBILITY_STAND) || L.buckled || grab_state >= GRAB_AGGRESSIVE) - remove_movespeed_modifier(MOVESPEED_ID_BULKY_DRAGGING) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) return - add_movespeed_modifier(MOVESPEED_ID_BULKY_DRAGGING, multiplicative_slowdown = PULL_PRONE_SLOWDOWN) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = PULL_PRONE_SLOWDOWN) return if(isobj(pulling)) var/obj/structure/S = pulling if(!slowed_by_drag || !S.drag_slowdown) - remove_movespeed_modifier(MOVESPEED_ID_BULKY_DRAGGING) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) return - add_movespeed_modifier(MOVESPEED_ID_BULKY_DRAGGING, multiplicative_slowdown = S.drag_slowdown) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = S.drag_slowdown) return - remove_movespeed_modifier(MOVESPEED_ID_BULKY_DRAGGING) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) /mob/living/can_zFall(turf/T, levels) return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index a0db19cd2f2..290b57438e1 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -206,10 +206,10 @@ . = ..() if(slowed_by_webs) if(!(locate(/obj/structure/spider/stickyweb) in loc)) - remove_movespeed_modifier(MOVESPEED_ID_TARANTULA_WEB) + remove_movespeed_modifier(/datum/movespeed_modifier/tarantula_web) slowed_by_webs = FALSE else if(locate(/obj/structure/spider/stickyweb) in loc) - add_movespeed_modifier(MOVESPEED_ID_TARANTULA_WEB, priority=100, multiplicative_slowdown=3) + add_movespeed_modifier(/datum/movespeed_modifier/tarantula_web) slowed_by_webs = TRUE /mob/living/simple_animal/hostile/poison/giant_spider/ice //spiders dont usually like tempatures of 140 kelvin who knew diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0f45982d030..27ce3a64a89 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -367,8 +367,8 @@ /mob/living/simple_animal/proc/update_simplemob_varspeed() if(speed == 0) - remove_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE) - add_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE, 100, multiplicative_slowdown = speed, override = TRUE) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed, multiplicative_slowdown = speed) /mob/living/simple_animal/Stat() ..() diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index f34194de8cd..247466a4f0a 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -145,14 +145,14 @@ /mob/living/simple_animal/slime/on_reagent_change() . = ..() - remove_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE) + remove_movespeed_modifier(/datum/movespeed_modifier/slime_reagentmod) var/amount = 0 if(reagents.has_reagent(/datum/reagent/medicine/morphine)) // morphine slows slimes down amount = 2 if(reagents.has_reagent(/datum/reagent/consumable/frostoil)) // Frostoil also makes them move VEEERRYYYYY slow amount = 5 if(amount) - add_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_reagentmod, multiplicative_slowdown = amount) /mob/living/simple_animal/slime/updatehealth() . = ..() @@ -163,7 +163,7 @@ mod += (health_deficiency / 25) if(health <= 0) mod += 2 - add_movespeed_modifier(MOVESPEED_ID_SLIME_HEALTHMOD, TRUE, 100, multiplicative_slowdown = mod, override = TRUE) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod, multiplicative_slowdown = mod) update_health_hud() /mob/living/simple_animal/slime/update_health_hud() @@ -204,7 +204,7 @@ else if(bodytemperature < 283.222) mod = ((283.222 - bodytemperature) / 10) * 1.75 if(mod) - add_movespeed_modifier(MOVESPEED_ID_SLIME_TEMPMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_tempmod, multiplicative_slowdown = mod) /mob/living/simple_animal/slime/ObjBump(obj/O) if(!client && powerlevel > 0) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 9d68c3290cc..413177f8e0b 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1232,16 +1232,22 @@ /mob/setGrabState(newstate) . = ..() if(grab_state == GRAB_PASSIVE) - remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE, update=TRUE) + _REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE) else - add_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=grab_state*3, blacklisted_movetypes=FLOATING) + switch(grab_state) + if(GRAB_AGGRESSIVE) + _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/aggressive) + if(GRAB_NECK) + _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/neck) + if(GRAB_KILL) + _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/kill) /mob/proc/update_equipment_speed_mods() var/speedies = equipped_speed_mods() if(!speedies) - remove_movespeed_modifier(MOVESPEED_ID_MOB_EQUIPMENT, update=TRUE) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod) else - add_movespeed_modifier(MOVESPEED_ID_MOB_EQUIPMENT, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=speedies, blacklisted_movetypes=FLOATING) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod, multiplicative_slowdown = speedies) /// Gets the combined speed modification of all worn items /// Except base mob type doesnt really wear items diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 4f49da4c02a..9330926db99 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -330,9 +330,9 @@ /mob/proc/update_gravity(has_gravity, override=FALSE) var/speed_change = max(0, has_gravity - STANDARD_GRAVITY) if(!speed_change) - remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAVITY, update=TRUE) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/gravity) else - add_movespeed_modifier(MOVESPEED_ID_MOB_GRAVITY, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=speed_change, blacklisted_movetypes=FLOATING) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/gravity, multiplicative_slowdown=speed_change) //bodypart selection verbs - Cyberboss //8:repeated presses toggles through head - eyes - mouth diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 6f00153abc4..7725260c628 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -64,7 +64,7 @@ Key procs GLOBAL_LIST_EMPTY(movespeed_modification_cache) /// Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO! -/proc/get_cached_movespeed_modification(modtype) +/proc/get_cached_movespeed_modifier(modtype) if(!ispath(modtype, /datum/movespeed_modifier)) CRASH("[modtype] is not a movespeed modification typepath.") var/datum/movespeed_modifier/M = modtype @@ -73,13 +73,11 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) return GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) ///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. -/mob/proc/_REFACTORING_add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE, override = FALSE) - var/created = FALSE +/mob/proc/_REFACTORING_add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE) if(ispath(type_or_datum)) if(!initial(type_or_datum.variable)) - type_or_datum = get_cached_movespeed_modification(type_or_datum) + type_or_datum = get_cached_movespeed_modifier(type_or_datum) else - created = TRUE type_or_datum = new type_or_datum if(!istype(type_or_datum)) CRASH("Invalid modification datum") @@ -88,10 +86,6 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(existing) if(existing == type_or_datum) //same thing don't need to touch return TRUE - if(!override) //not overriding, do not overwrite same ID. - if(created) //make sure we clean up after ourselves. - qdel(type_or_datum) - return FALSE oldpriority = existing.priority remove_movespeed_modifier(existing, FALSE) LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) @@ -104,7 +98,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) /mob/proc/_REFACTORING_remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) if(ispath(type_id_datum)) if(!initial(type_id_datum.variable)) - type_id_datum = get_cached_movespeed_modification(type_id_datum) + type_id_datum = get_cached_movespeed_modifier(type_id_datum) else type_id_datum = initial(type_id_datum.id) if(istype(type_id_datum)) @@ -119,8 +113,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) update_movespeed(FALSE) return TRUE -/// Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. -/// Implies override. +/// Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Implies override. Returns the modifier datum if successful /mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE, multiplicative_slowdown) /* How this SHOULD work is: @@ -130,7 +123,6 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) 4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum 5. Update if necessary */ - . = FALSE var/modified = FALSE var/inject = FALSE var/datum/movespeed_modifier/final @@ -142,7 +134,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(!initial(type_id_datum.variable)) CRASH("Not a variable modifier") var/id = initial(type_id_datum.id) - final = LAZYACCESS(movespeed_modification, type_id_datum) + final = LAZYACCESS(movespeed_modification, id) if(!istype(final)) final = new inject = TRUE @@ -163,23 +155,23 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) _REFACTORING_add_movespeed_modifier(final, FALSE, TRUE) if(update && modified) update_movespeed(TRUE) - return TRUE + return final ///Handles the special case of editing the movement var /mob/vv_edit_var(var_name, var_value) var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) var/diff if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value)) - remove_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT) + _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/admin_varedit) diff = var_value - cached_multiplicative_slowdown . = ..() if(. && slowdown_edit && isnum(diff)) - add_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT, TRUE, 100, override = TRUE, multiplicative_slowdown = diff) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/admin_varedit, multiplicative_slowdown = diff) ///Is there a movespeed modifier for this mob -/mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) +/mob/proc/_REFACTORING_has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) if(ispath(datum_type_id)) - datum_type_id = get_cached_movespeed_modification(datum_type_id) + datum_type_id = get_cached_movespeed_modifier(datum_type_id) if(istype(datum_type_id)) datum_type_id = datum_type_id.id return LAZYACCESS(movespeed_modification, datum_type_id) diff --git a/code/modules/movespeed/modifiers/innate.dm b/code/modules/movespeed/modifiers/innate.dm index d11c51f9f80..cd4b4601f82 100644 --- a/code/modules/movespeed/modifiers/innate.dm +++ b/code/modules/movespeed/modifiers/innate.dm @@ -2,3 +2,17 @@ id = MOVESPEED_ID_CHANGELING_MUSCLES multiplicative_slowdown = -1 blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/pai_spacewalk + id = MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD + multiplicative_slowdown = 2 + +/datum/movespeed_modifier/species + id = MOVESPEED_ID_SPECIES + movetypes = ~FLYING + variable = TRUE + +/datum/movespeed_modifier/dna_vault_speedup + id = MOVESPEED_ID_DNA_VAULT + blacklisted_movetypes = (FLYING|FLOATING) + multiplicative_slowdown = -0.4 diff --git a/code/modules/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm new file mode 100644 index 00000000000..d1ec480b465 --- /dev/null +++ b/code/modules/movespeed/modifiers/items.dm @@ -0,0 +1,15 @@ +/datum/movespeed_modifier/jetpack + conflicts_with = MOVE_CONFLICT_JETPACK + movetypes = FLOATING + +/datum/movespeed_modifier/jetpack/cybernetic + id = MOVESPEED_ID_CYBER_THRUSTER + multiplicative_slowdown = -0.5 + +/datum/movespeed_modifier/jetpack/fullspeed + id = MOVESPEED_ID_JETPACK + multiplicative_slowdown = -0.5 + +/datum/movespeed_modifier/die_of_fate + id = MOVESPEED_ID_DIE_OF_FATE + multiplicative_slowdown = 1 diff --git a/code/modules/movespeed/modifiers/misc.dm b/code/modules/movespeed/modifiers/misc.dm new file mode 100644 index 00000000000..548b35708a7 --- /dev/null +++ b/code/modules/movespeed/modifiers/misc.dm @@ -0,0 +1,3 @@ +/datum/movespeed_modifier/admin_varedit + variable = TRUE + id = MOVESPEED_ID_ADMIN_VAREDIT diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 23084dc0ea2..164dc57c506 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -30,6 +30,90 @@ id = MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING movetypes = FLOATING -/datum/movespeed_modifier/pai_spacewalk - id = MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD - multiplicative_slowdown = 2 +/datum/movespeed_modifier/equipment_speedmod + variable = TRUE + id = MOVESPEED_ID_MOB_EQUIPMENT + blacklisted_movetypes = FLOATING + +/datum/movespeed_modifier/grab_slowdown + id = MOVESPEED_ID_MOB_GRAB_STATE + blacklisted_movetypes = FLOATING + +/datum/movespeed_modifier/grab_slowdown/aggressive + multiplicative_slowdown = 3 + +/datum/movespeed_modifier/grab_slowdown/neck + multiplicative_slowdown = 6 + +/datum/movespeed_modifier/grab_slowdown/kill + multiplicative_slowdown = 9 + +/datum/movespeed_modifier/slime_reagentmod + id = MOVESPEED_ID_SLIME_REAGENTMOD + variable = TRUE + +/datum/movespeed_modifier/slime_healthmod + id = MOVESPEED_ID_SLIME_HEALTHMOD + variable = TRUE + +/datum/movespeed_modifier/config_walk_run + id = MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED + multiplicative_slowdown = 1 + +/datum/movespeed_modifier/config_walk_run/proc/sync() + +/datum/movespeed_modifier/config_walk_run/walk/sync() + var/mod = CONFIG_GET(number/movedelay/walk_delay) + multiplicative_slowdown = isnum(mod)? mod : initial(multiplicative_slowdown) + +/datum/movespeed_modifier/config_walk_run/run/sync() + var/mod = CONFIG_GET(number/movedelay/run_delay) + multiplicative_slowdown = isnum(mod)? mod : initial(multiplicative_slowdown) + +/datum/movespeed_modifier/turf_slowdown + id = MOVESPEED_ID_LIVING_TURF_SPEEDMOD + movetypes = GROUND + variable = TRUE + +/datum/movespeed_modifier/bulky_drag + id = MOVESPEED_ID_BULKY_DRAGGING + variable = TRUE + +/datum/movespeed_modifier/cold + id = MOVESPEED_ID_COLD + blacklisted_movetypes = FLOATING + variable = TRUE + +/datum/movespeed_modifier/shove + id = MOVESPEED_ID_SHOVE + multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH + +/datum/movespeed_modifier/human_carry + id = MOVESPEED_ID_HUMAN_CARRYING + multiplicative_slowdown = HUMAN_CARRY_SLOWDOWN + +/datum/movespeed_modifier/limbless + id = MOVESPEED_ID_LIVING_LIMBLESS + variable = TRUE + movetypes = GROUND + +/datum/movespeed_modifier/simplemob_varspeed + id = MOVESPEED_ID_SIMPLEMOB_VARSPEED + variable = TRUE + +/datum/movespeed_modifier/tarantula_web + id = MOVESPEED_ID_TARANTULA_WEB + multiplicative_slowdown = 3 + +/datum/movespeed_modifier/gravity + id = MOVESPEED_ID_MOB_GRAVITY + blacklisted_movetypes = FLOATING + variable = TRUE + +/datum/movespeed_modifier/carbon_softcrit + id = MOVESPEED_ID_CARBON_SOFTCRIT + multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN + +/datum/movespeed_modifier/slime_tempmod + id = MOVESPEED_ID_SLIME_TEMPMOD + variable = TRUE diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index cf5a55d1287..785a93f9e0f 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -683,7 +683,7 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/sepia/tick() if(prob(50) && mod > -1) mod-- - owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = -0.5) + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = -0.5) else if(mod < 1) mod++ // yeah a value of 0 does nothing but replacing the trait in place is cheaper than removing and adding repeatedly diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 98cafcb0bda..71708bc91cd 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -277,7 +277,7 @@ ADD_TRAIT(H, TRAIT_PIERCEIMMUNE, "dna_vault") if(VAULT_SPEED) to_chat(H, "Your legs feel faster.") - H.add_movespeed_modifier(MOVESPEED_ID_DNA_VAULT, update=TRUE, priority=100, multiplicative_slowdown=-0.4, blacklisted_movetypes=(FLYING|FLOATING)) + H._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/dna_vault_speedup) if(VAULT_QUICK) to_chat(H, "Your arms move as fast as lightning.") H.next_move_modifier = 0.5 diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index 69d4c8ffc2e..eb51bc15417 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -152,13 +152,13 @@ if(allow_thrust(0.01)) ion_trail.start() RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/move_react) - owner.add_movespeed_modifier(MOVESPEED_ID_CYBER_THRUSTER, priority=100, multiplicative_slowdown=-0.5, movetypes=FLOATING, conflict=MOVE_CONFLICT_JETPACK) + owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) if(!silent) to_chat(owner, "You turn your thrusters set on.") else ion_trail.stop() UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) - owner.remove_movespeed_modifier(MOVESPEED_ID_CYBER_THRUSTER) + owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) if(!silent) to_chat(owner, "You turn your thrusters set off.") on = FALSE diff --git a/tgstation.dme b/tgstation.dme index 6e500d532af..d31ff93dbac 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2381,6 +2381,8 @@ #include "code\modules\movespeed\_movespeed_modifier.dm" #include "code\modules\movespeed\modifiers\components.dm" #include "code\modules\movespeed\modifiers\innate.dm" +#include "code\modules\movespeed\modifiers\items.dm" +#include "code\modules\movespeed\modifiers\misc.dm" #include "code\modules\movespeed\modifiers\mobs.dm" #include "code\modules\movespeed\modifiers\reagent.dm" #include "code\modules\movespeed\modifiers\status_effects.dm" From ce02e45ecb275ba869f64196e370fd5664b7061a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 22:12:07 -0800 Subject: [PATCH 009/115] get rid of refactor tags --- code/datums/components/mood.dm | 12 ++++++------ code/datums/components/riding.dm | 4 ++-- code/datums/components/shrink.dm | 4 ++-- code/datums/elements/snail_crawl.dm | 6 +++--- code/game/objects/effects/mines.dm | 4 ++-- code/game/objects/items/tanks/jetpack.dm | 4 ++-- .../changeling/powers/strained_muscles.dm | 6 +++--- .../modules/antagonists/slaughter/slaughter.dm | 4 ++-- .../awaymissions/mission_code/Academy.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 8 ++++---- code/modules/mob/living/carbon/human/human.dm | 10 +++++----- .../modules/mob/living/carbon/human/species.dm | 16 ++++++++-------- code/modules/mob/living/living.dm | 2 +- code/modules/mob/living/living_movement.dm | 10 +++++----- code/modules/mob/living/silicon/pai/pai.dm | 4 ++-- .../mob/living/simple_animal/simple_animal.dm | 2 +- code/modules/mob/mob.dm | 10 +++++----- code/modules/mob/mob_movement.dm | 2 +- code/modules/movespeed/_movespeed_modifier.dm | 10 +++++----- .../reagents/cat2_medicine_reagents.dm | 4 ++-- .../chemistry/reagents/drink_reagents.dm | 8 ++++---- .../chemistry/reagents/drug_reagents.dm | 4 ++-- .../chemistry/reagents/food_reagents.dm | 4 ++-- .../chemistry/reagents/medicine_reagents.dm | 16 ++++++++-------- .../chemistry/reagents/other_reagents.dm | 4 ++-- .../crossbreeding/_status_effects.dm | 18 +++++++++--------- code/modules/station_goals/dna_vault.dm | 2 +- code/modules/surgery/organs/augments_chest.dm | 4 ++-- 28 files changed, 92 insertions(+), 92 deletions(-) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 3cfc773cfa7..42ce42434db 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -208,27 +208,27 @@ switch(sanity) if(SANITY_INSANE to SANITY_CRAZY) setInsanityEffect(MAJOR_INSANITY_PEN) - master._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/sanity/insane, override = TRUE) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/insane, override = TRUE) sanity_level = 6 if(SANITY_CRAZY to SANITY_UNSTABLE) setInsanityEffect(MINOR_INSANITY_PEN) - master._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/sanity/crazy, override = TRUE) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/crazy, override = TRUE) sanity_level = 5 if(SANITY_UNSTABLE to SANITY_DISTURBED) setInsanityEffect(0) - master._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/sanity/disturbed, override = TRUE) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/disturbed, override = TRUE) sanity_level = 4 if(SANITY_DISTURBED to SANITY_NEUTRAL) setInsanityEffect(0) - master._REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_SANITY) + master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 3 if(SANITY_NEUTRAL+1 to SANITY_GREAT+1) //shitty hack but +1 to prevent it from responding to super small differences setInsanityEffect(0) - master._REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_SANITY) + master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 2 if(SANITY_GREAT+1 to INFINITY) setInsanityEffect(0) - master._REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_SANITY) + master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 1 update_mood_icon() diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index b4248189d23..05629e8ae54 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -212,13 +212,13 @@ /datum/component/riding/human/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE) var/mob/living/carbon/human/H = parent - H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/human_carry) + H.remove_movespeed_modifier(/datum/movespeed_modifier/human_carry) . = ..() /datum/component/riding/human/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE) . = ..() var/mob/living/carbon/human/H = parent - H._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/human_carry) + H.add_movespeed_modifier(/datum/movespeed_modifier/human_carry) /datum/component/riding/human/proc/on_host_unarmed_melee(atom/target) var/mob/living/carbon/human/H = parent diff --git a/code/datums/components/shrink.dm b/code/datums/components/shrink.dm index 155c27a9035..157eb36c373 100644 --- a/code/datums/components/shrink.dm +++ b/code/datums/components/shrink.dm @@ -14,7 +14,7 @@ parent_atom.opacity = 0 if(isliving(parent_atom)) var/mob/living/L = parent_atom - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/shrink_ray) + L.add_movespeed_modifier(/datum/movespeed_modifier/shrink_ray) if(iscarbon(L)) var/mob/living/carbon/C = L C.unequip_everything() @@ -34,7 +34,7 @@ parent_atom.opacity = oldopac if(isliving(parent_atom)) var/mob/living/L = parent_atom - L._REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY) + L.remove_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY) if(ishuman(L)) var/mob/living/carbon/human/H = L H.physiology.damage_resistance += 100 diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm index d8e6341e975..b726c55e425 100644 --- a/code/datums/elements/snail_crawl.dm +++ b/code/datums/elements/snail_crawl.dm @@ -16,13 +16,13 @@ . = ..() UnregisterSignal(target, COMSIG_MOVABLE_MOVED) if(istype(target)) - target._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) + target.remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) /datum/element/snailcrawl/proc/snail_crawl(mob/living/carbon/snail) if(snail.resting && !snail.buckled && lubricate(snail)) - snail._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) + snail.add_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) else - snail._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) + snail.remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) /datum/element/snailcrawl/proc/lubricate(atom/movable/snail) var/turf/open/OT = get_turf(snail) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 4b98939b353..f31e849b67b 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -172,9 +172,9 @@ if(!victim.client || !istype(victim)) return to_chat(victim, "You feel fast!") - victim._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) + victim.add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) sleep(duration) - victim._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) + victim.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) to_chat(victim, "You slow down.") /datum/movespeed_modifier/yellow_orb diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index 198fd4329a6..a5660c6ca2a 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -56,7 +56,7 @@ ion_trail.start() RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/move_react) if(full_speed) - user._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) + user.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) /obj/item/tank/jetpack/proc/turn_off(mob/user) on = FALSE @@ -64,7 +64,7 @@ icon_state = initial(icon_state) ion_trail.stop() UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - user._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) + user.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) /obj/item/tank/jetpack/proc/move_react(mob/user) allow_thrust(0.01, user) diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index cf2c73aa1a0..8844c5844c3 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -18,7 +18,7 @@ if(active) to_chat(user, "Our muscles tense and strengthen.") else - user._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) + user.remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) to_chat(user, "Our muscles relax.") if(stacks >= 10) to_chat(user, "We collapse in exhaustion.") @@ -31,12 +31,12 @@ /datum/action/changeling/strained_muscles/proc/muscle_loop(mob/living/carbon/user) while(active) - user._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) + user.add_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) if(user.stat != CONSCIOUS || user.staminaloss >= 90) active = !active to_chat(user, "Our muscles relax without the energy to strengthen them.") user.Paralyze(40) - user._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) + user.remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) break stacks++ diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 127a5bb15a2..61072f6cf9b 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -67,8 +67,8 @@ /mob/living/simple_animal/slaughter/phasein() . = ..() - _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/slaughter) - addtimer(CALLBACK(src, .proc/_REFACTORING_remove_movespeed_modifier, /datum/movespeed_modifier/slaughter), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + add_movespeed_modifier(/datum/movespeed_modifier/slaughter) + addtimer(CALLBACK(src, .proc/remove_movespeed_modifier, /datum/movespeed_modifier/slaughter), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) //The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl /obj/item/organ/heart/demon diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 833776486e2..a3be1020169 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -252,7 +252,7 @@ if(6) //Cut speed T.visible_message("[user] starts moving slower!") - user._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/die_of_fate) + user.add_movespeed_modifier(/datum/movespeed_modifier/die_of_fate) if(7) //Throw T.visible_message("Unseen forces throw [user]!") diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a6e3fb7ec39..d4e7509d97c 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -497,9 +497,9 @@ /mob/living/carbon/update_mobility() . = ..() if(!(mobility_flags & MOBILITY_STAND)) - _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling) + add_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling) else - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling) + remove_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling) /datum/movespeed_modifier/carbon_crawling id = MOVESPEED_ID_CARBON_CRAWLING @@ -526,9 +526,9 @@ med_hud_set_health() if(stat == SOFT_CRIT) - _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit) + add_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit) else - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit) + remove_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit) /mob/living/carbon/update_stamina() var/stam = getStaminaLoss() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f53689f1f04..1665829f3c5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1018,7 +1018,7 @@ return FALSE /mob/living/carbon/human/proc/clear_shove_slowdown() - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/shove) + remove_movespeed_modifier(/datum/movespeed_modifier/shove) var/active_item = get_active_held_item() if(is_type_in_typecache(active_item, GLOB.shove_disarming_types)) visible_message("[src.name] regains their grip on \the [active_item]!", "You regain your grip on \the [active_item]", null, COMBAT_MESSAGE_RANGE) @@ -1031,16 +1031,16 @@ . = ..() dna?.species.spec_updatehealth(src) if(HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) return var/health_deficiency = max((maxHealth - health), staminaloss) if(health_deficiency >= 40) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) else - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) /mob/living/carbon/human/adjust_nutrition(change) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks if(HAS_TRAIT(src, TRAIT_NOHUNGER)) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 7841c02e0e9..5b3fe0ec903 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -353,7 +353,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) C.dna.features["wings"] = "None" C.update_body() - C._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/species) + C.remove_movespeed_modifier(/datum/movespeed_modifier/species) SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) @@ -1026,14 +1026,14 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.overeatduration < 100) to_chat(H, "You feel fit again!") REMOVE_TRAIT(H, TRAIT_FAT, OBESITY) - H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/obesity) + H.remove_movespeed_modifier(/datum/movespeed_modifier/obesity) H.update_inv_w_uniform() H.update_inv_wear_suit() else if(H.overeatduration >= 100) to_chat(H, "You suddenly feel blubbery!") ADD_TRAIT(H, TRAIT_FAT, OBESITY) - H._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/obesity) + H.add_movespeed_modifier(/datum/movespeed_modifier/obesity) H.update_inv_w_uniform() H.update_inv_wear_suit() @@ -1094,7 +1094,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(E.get_charge(H) <= ETHEREAL_CHARGE_NORMAL) H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/hunger, multiplicative_slowdown = (1.5 * (1 - E.get_charge(H) / 100))) else - H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/hunger) + H.remove_movespeed_modifier(/datum/movespeed_modifier/hunger) switch(H.nutrition) if(NUTRITION_LEVEL_FULL to INFINITY) @@ -1377,8 +1377,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/knocked_item = FALSE if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types)) target_held_item = null - if(!target._REFACTORING_has_movespeed_modifier(/datum/movespeed_modifier/shove)) - target._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/shove) + if(!target.has_movespeed_modifier(/datum/movespeed_modifier/shove)) + target.add_movespeed_modifier(/datum/movespeed_modifier/shove) if(target_held_item) target.visible_message("[target.name]'s grip on \the [target_held_item] loosens!", "Your grip on \the [target_held_item] loosens!", null, COMBAT_MESSAGE_RANGE) @@ -1643,7 +1643,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot) - H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/cold) + H.remove_movespeed_modifier(/datum/movespeed_modifier/cold) var/burn_damage var/firemodifier = H.fire_stacks / 50 @@ -1683,7 +1683,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) else H.clear_alert("temp") - H._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/cold) + H.remove_movespeed_modifier(/datum/movespeed_modifier/cold) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b5e3dbc5634..49419e62646 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1210,7 +1210,7 @@ if(limbless_slowdown) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/limbless, multiplicative_slowdown = limbless_slowdown) else - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/limbless) + remove_movespeed_modifier(/datum/movespeed_modifier/limbless) /mob/living/proc/fall(forced) if(!(mobility_flags & MOBILITY_USE)) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 8dde0fdcebb..2fb42d1e96c 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -26,31 +26,31 @@ return ..() /mob/living/proc/update_move_intent_slowdown() - _REFACTORING_add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run, override = TRUE) + add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run, override = TRUE) /mob/living/proc/update_turf_movespeed(turf/open/T) if(istype(T)) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown, multiplicative_slowdown = T.slowdown) else - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown) + remove_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown) /mob/living/proc/update_pull_movespeed() if(pulling) if(isliving(pulling)) var/mob/living/L = pulling if(!slowed_by_drag || (L.mobility_flags & MOBILITY_STAND) || L.buckled || grab_state >= GRAB_AGGRESSIVE) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) + remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) return add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = PULL_PRONE_SLOWDOWN) return if(isobj(pulling)) var/obj/structure/S = pulling if(!slowed_by_drag || !S.drag_slowdown) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) + remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) return add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = S.drag_slowdown) return - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) + remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) /mob/living/can_zFall(turf/T, levels) return ..() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index bd2f9e085fd..897ec8ad578 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -254,9 +254,9 @@ /mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) . = ..() if(!.) - _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk) + add_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk) return TRUE - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk) + remove_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk) return TRUE /mob/living/silicon/pai/examine(mob/user) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 27ce3a64a89..3413865db47 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -367,7 +367,7 @@ /mob/living/simple_animal/proc/update_simplemob_varspeed() if(speed == 0) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed) + remove_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed, multiplicative_slowdown = speed) /mob/living/simple_animal/Stat() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 413177f8e0b..b1aab6af4e3 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1232,20 +1232,20 @@ /mob/setGrabState(newstate) . = ..() if(grab_state == GRAB_PASSIVE) - _REFACTORING_remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE) + remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE) else switch(grab_state) if(GRAB_AGGRESSIVE) - _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/aggressive) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/aggressive) if(GRAB_NECK) - _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/neck) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/neck) if(GRAB_KILL) - _REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/kill) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/kill) /mob/proc/update_equipment_speed_mods() var/speedies = equipped_speed_mods() if(!speedies) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod) + remove_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod) else add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod, multiplicative_slowdown = speedies) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 9330926db99..45a3e8d88e0 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -330,7 +330,7 @@ /mob/proc/update_gravity(has_gravity, override=FALSE) var/speed_change = max(0, has_gravity - STANDARD_GRAVITY) if(!speed_change) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/gravity) + remove_movespeed_modifier(/datum/movespeed_modifier/gravity) else add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/gravity, multiplicative_slowdown=speed_change) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 7725260c628..3e68ab7bfa0 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -73,7 +73,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) return GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) ///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. -/mob/proc/_REFACTORING_add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE) +/mob/proc/add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE) if(ispath(type_or_datum)) if(!initial(type_or_datum.variable)) type_or_datum = get_cached_movespeed_modifier(type_or_datum) @@ -95,7 +95,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) return TRUE ///Remove a move speed modifier from a mob, whether static or variable. -/mob/proc/_REFACTORING_remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) +/mob/proc/remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) if(ispath(type_id_datum)) if(!initial(type_id_datum.variable)) type_id_datum = get_cached_movespeed_modifier(type_id_datum) @@ -152,7 +152,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) final.multiplicative_slowdown = multiplicative_slowdown modified = TRUE if(inject) - _REFACTORING_add_movespeed_modifier(final, FALSE, TRUE) + add_movespeed_modifier(final, FALSE, TRUE) if(update && modified) update_movespeed(TRUE) return final @@ -162,14 +162,14 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) var/diff if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value)) - _REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/admin_varedit) + remove_movespeed_modifier(/datum/movespeed_modifier/admin_varedit) diff = var_value - cached_multiplicative_slowdown . = ..() if(. && slowdown_edit && isnum(diff)) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/admin_varedit, multiplicative_slowdown = diff) ///Is there a movespeed modifier for this mob -/mob/proc/_REFACTORING_has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) +/mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) if(ispath(datum_type_id)) datum_type_id = get_cached_movespeed_modifier(datum_type_id) if(istype(datum_type_id)) diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index 67e57ddf168..82d538429e9 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -106,11 +106,11 @@ return TRUE /datum/reagent/medicine/C2/lenturi/on_mob_metabolize(mob/living/carbon/M) - M._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/lenturi) + M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/lenturi) return ..() /datum/reagent/medicine/C2/lenturi/on_mob_end_metabolize(mob/living/carbon/M) - M._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/lenturi) + M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/lenturi) return ..() /datum/reagent/medicine/C2/aiuri diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 1df4e807393..938770294a5 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -376,10 +376,10 @@ /datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/L) ..() - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) /datum/reagent/consumable/nuka_cola/on_mob_end_metabolize(mob/living/L) - L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) ..() /datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M) @@ -556,10 +556,10 @@ /datum/reagent/consumable/monkey_energy/on_mob_metabolize(mob/living/L) ..() if(ismonkey(L)) - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/monkey_energy) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/monkey_energy) /datum/reagent/consumable/monkey_energy/on_mob_end_metabolize(mob/living/L) - L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/monkey_energy) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/monkey_energy) ..() /datum/reagent/consumable/monkey_energy/overdose_process(mob/living/M) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 9af53eff1da..a3136823542 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -174,10 +174,10 @@ /datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L) ..() - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) /datum/reagent/drug/methamphetamine/on_mob_end_metabolize(mob/living/L) - L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) ..() /datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index bd9d3286014..3755e541308 100755 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -293,8 +293,8 @@ victim.blind_eyes(3) // 6 seconds victim.confused = max(M.confused, 5) // 10 seconds victim.Knockdown(3 SECONDS) - victim._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray) - addtimer(CALLBACK(victim, /mob.proc/_REFACTORING_remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) + victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray) + addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) victim.update_damage_hud() if(method == INGEST) if(!holder.has_reagent(/datum/reagent/consumable/milk)) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 23cad61cc2e..0b5e2493413 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -422,11 +422,11 @@ /datum/reagent/medicine/ephedrine/on_mob_metabolize(mob/living/L) ..() - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine) ADD_TRAIT(L, TRAIT_STUNRESISTANCE, type) /datum/reagent/medicine/ephedrine/on_mob_end_metabolize(mob/living/L) - L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine) REMOVE_TRAIT(L, TRAIT_STUNRESISTANCE, type) ..() @@ -806,11 +806,11 @@ /datum/reagent/medicine/stimulants/on_mob_metabolize(mob/living/L) ..() - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants) ADD_TRAIT(L, TRAIT_STUNRESISTANCE, type) /datum/reagent/medicine/stimulants/on_mob_end_metabolize(mob/living/L) - L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants) REMOVE_TRAIT(L, TRAIT_STUNRESISTANCE, type) ..() @@ -1038,10 +1038,10 @@ /datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L) ..() - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) /datum/reagent/medicine/changelinghaste/on_mob_end_metabolize(mob/living/L) - L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) ..() /datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M) @@ -1348,14 +1348,14 @@ ..() ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, type) ADD_TRAIT(L, TRAIT_STUNRESISTANCE, type) - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/badstims) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/badstims) L.ignore_slowdown(type) /datum/reagent/medicine/badstims/on_mob_end_metabolize(mob/living/L) ..() REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type) REMOVE_TRAIT(L, TRAIT_STUNRESISTANCE, type) - L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/badstims) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/badstims) L.unignore_slowdown(type) L.Dizzy(0) L.Jitter(0) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 828ea4779d1..185a273f23f 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1230,10 +1230,10 @@ /datum/reagent/nitryl/on_mob_metabolize(mob/living/L) ..() - L._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl) /datum/reagent/nitryl/on_mob_end_metabolize(mob/living/L) - L._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl) ..() /////////////////////////Colorful Powder//////////////////////////// diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 785a93f9e0f..8857bca4bd5 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -185,7 +185,7 @@ alert_type = /obj/screen/alert/status_effect/bloodchill /datum/status_effect/bloodchill/on_apply() - owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill) return ..() /datum/status_effect/bloodchill/tick() @@ -193,7 +193,7 @@ owner.adjustFireLoss(2) /datum/status_effect/bloodchill/on_remove() - owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill) /datum/status_effect/bonechill id = "bonechill" @@ -201,7 +201,7 @@ alert_type = /obj/screen/alert/status_effect/bonechill /datum/status_effect/bonechill/on_apply() - owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill) return ..() /datum/status_effect/bonechill/tick() @@ -211,7 +211,7 @@ owner.adjust_bodytemperature(-10) /datum/status_effect/bonechill/on_remove() - owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill) /obj/screen/alert/status_effect/bonechill name = "Bonechilled" desc = "You feel a shiver down your spine after hearing the haunting noise of bone rattling. You'll move slower and get frostbite for a while!" @@ -365,11 +365,11 @@ datum/status_effect/rebreathing/tick() duration = 30 /datum/status_effect/tarfoot/on_apply() - owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot) return ..() /datum/status_effect/tarfoot/on_remove() - owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot) /datum/status_effect/spookcookie id = "spookcookie" @@ -691,7 +691,7 @@ datum/status_effect/stabilized/blue/on_remove() return ..() /datum/status_effect/stabilized/sepia/on_remove() - owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia) /datum/status_effect/stabilized/cerulean id = "stabilizedcerulean" @@ -899,7 +899,7 @@ datum/status_effect/stabilized/blue/on_remove() colour = "light pink" /datum/status_effect/stabilized/lightpink/on_apply() - owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink) return ..() /datum/status_effect/stabilized/lightpink/tick() @@ -910,7 +910,7 @@ datum/status_effect/stabilized/blue/on_remove() return ..() /datum/status_effect/stabilized/lightpink/on_remove() - owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink) /datum/status_effect/stabilized/adamantine id = "stabilizedadamantine" diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 71708bc91cd..a66b07ec039 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -277,7 +277,7 @@ ADD_TRAIT(H, TRAIT_PIERCEIMMUNE, "dna_vault") if(VAULT_SPEED) to_chat(H, "Your legs feel faster.") - H._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/dna_vault_speedup) + H.add_movespeed_modifier(/datum/movespeed_modifier/dna_vault_speedup) if(VAULT_QUICK) to_chat(H, "Your arms move as fast as lightning.") H.next_move_modifier = 0.5 diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index eb51bc15417..500785f1418 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -152,13 +152,13 @@ if(allow_thrust(0.01)) ion_trail.start() RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/move_react) - owner._REFACTORING_add_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) + owner.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) if(!silent) to_chat(owner, "You turn your thrusters set on.") else ion_trail.stop() UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) - owner._REFACTORING_remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) if(!silent) to_chat(owner, "You turn your thrusters set off.") on = FALSE From 6da319481bc484ec823ec75ab433fde9d76861b5 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 22:23:37 -0800 Subject: [PATCH 010/115] woops forgot those --- code/datums/components/mood.dm | 19 +++---------------- code/game/objects/effects/mines.dm | 5 ----- code/modules/mob/living/carbon/carbon.dm | 4 ---- .../modules/movespeed/modifiers/components.dm | 13 +++++++++++++ code/modules/movespeed/modifiers/misc.dm | 5 +++++ code/modules/movespeed/modifiers/mobs.dm | 4 ++++ 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index f9f2914ed52..63976bd3abc 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -208,15 +208,15 @@ switch(sanity) if(SANITY_INSANE to SANITY_CRAZY) setInsanityEffect(MAJOR_INSANITY_PEN) - master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/insane, override = TRUE) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/insane) sanity_level = 6 if(SANITY_CRAZY to SANITY_UNSTABLE) setInsanityEffect(MINOR_INSANITY_PEN) - master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/crazy, override = TRUE) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/crazy) sanity_level = 5 if(SANITY_UNSTABLE to SANITY_DISTURBED) setInsanityEffect(0) - master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/disturbed, override = TRUE) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/disturbed) sanity_level = 4 if(SANITY_DISTURBED to SANITY_NEUTRAL) setInsanityEffect(0) @@ -232,19 +232,6 @@ sanity_level = 1 update_mood_icon() -/datum/movespeed_modifier/sanity - id = MOVESPEED_ID_SANITY - movetypes = (~FLYING) - -/datum/movespeed_modifier/sanity/insane - multiplicative_slowdown = 1 - -/datum/movespeed_modifier/sanity/crazy - multiplicative_slowdown = 0.5 - -/datum/movespeed_modifier/sanity/disturbed - multiplicative_slowdown = 0.25 - /datum/component/mood/proc/setInsanityEffect(newval) if(newval == insanity_effect) return diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index f31e849b67b..cdb06ba00ba 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -176,8 +176,3 @@ sleep(duration) victim.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) to_chat(victim, "You slow down.") - -/datum/movespeed_modifier/yellow_orb - id = MOVESPEED_ID_YELLOW_ORB - multiplicative_slowdown = -2 - blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index d4e7509d97c..dda46b08455 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -501,10 +501,6 @@ else remove_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling) -/datum/movespeed_modifier/carbon_crawling - id = MOVESPEED_ID_CARBON_CRAWLING - multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN - //Updates the mob's health from bodyparts and mob damage variables /mob/living/carbon/updatehealth() if(status_flags & GODMODE) diff --git a/code/modules/movespeed/modifiers/components.dm b/code/modules/movespeed/modifiers/components.dm index 040a7950fac..ec4c4e11973 100644 --- a/code/modules/movespeed/modifiers/components.dm +++ b/code/modules/movespeed/modifiers/components.dm @@ -7,3 +7,16 @@ id = MOVESPEED_ID_SNAIL_CRAWL multiplicative_slowdown = -7 movetypes = GROUND + +/datum/movespeed_modifier/sanity + id = MOVESPEED_ID_SANITY + movetypes = (~FLYING) + +/datum/movespeed_modifier/sanity/insane + multiplicative_slowdown = 1 + +/datum/movespeed_modifier/sanity/crazy + multiplicative_slowdown = 0.5 + +/datum/movespeed_modifier/sanity/disturbed + multiplicative_slowdown = 0.25 diff --git a/code/modules/movespeed/modifiers/misc.dm b/code/modules/movespeed/modifiers/misc.dm index 548b35708a7..7e606e3f1e9 100644 --- a/code/modules/movespeed/modifiers/misc.dm +++ b/code/modules/movespeed/modifiers/misc.dm @@ -1,3 +1,8 @@ /datum/movespeed_modifier/admin_varedit variable = TRUE id = MOVESPEED_ID_ADMIN_VAREDIT + +/datum/movespeed_modifier/yellow_orb + id = MOVESPEED_ID_YELLOW_ORB + multiplicative_slowdown = -2 + blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 42fc0409433..50f44a96ccc 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -118,3 +118,7 @@ /datum/movespeed_modifier/slime_tempmod id = MOVESPEED_ID_SLIME_TEMPMOD variable = TRUE + +/datum/movespeed_modifier/carbon_crawling + id = MOVESPEED_ID_CARBON_CRAWLING + multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN From 58e364834090851bb41ed5b1eb88ac6153e4aae6 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 22:30:13 -0800 Subject: [PATCH 011/115] 150 hours of testing --- code/modules/mob/living/living_movement.dm | 2 +- code/modules/movespeed/_movespeed_modifier.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 39978822a8a..90e8a498f15 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -26,7 +26,7 @@ return ..() /mob/living/proc/update_move_intent_slowdown() - add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run, override = TRUE) + add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run) /mob/living/proc/update_turf_movespeed(turf/open/T) if(istype(T)) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 3e68ab7bfa0..4aaed2502f4 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -178,7 +178,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) ///Set or update the global movespeed config on a mob /mob/proc/update_config_movespeed() - add_movespeed_modifier(MOVESPEED_ID_CONFIG_SPEEDMOD, FALSE, 100, override = TRUE, multiplicative_slowdown = get_config_multiplicative_speed()) + add_movespeed_modifier(MOVESPEED_ID_CONFIG_SPEEDMOD, FALSE, 100, multiplicative_slowdown = get_config_multiplicative_speed()) ///Get the global config movespeed of a mob by type /mob/proc/get_config_multiplicative_speed() From f56844d54a4161dac58100d9e2cff2d1e69dadcd Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 22:38:35 -0800 Subject: [PATCH 012/115] i forgot how bad i was at coding --- code/modules/movespeed/_movespeed_modifier.dm | 2 +- code/modules/movespeed/modifiers/mobs.dm | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 4aaed2502f4..03a657be7e3 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -178,7 +178,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) ///Set or update the global movespeed config on a mob /mob/proc/update_config_movespeed() - add_movespeed_modifier(MOVESPEED_ID_CONFIG_SPEEDMOD, FALSE, 100, multiplicative_slowdown = get_config_multiplicative_speed()) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/mob_config_speedmod, multiplicative_slowdown = get_config_multiplicative_speed()) ///Get the global config movespeed of a mob by type /mob/proc/get_config_multiplicative_speed() diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 50f44a96ccc..376b3ae94f0 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -122,3 +122,6 @@ /datum/movespeed_modifier/carbon_crawling id = MOVESPEED_ID_CARBON_CRAWLING multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN + +/datum/movespeed_modifier/mob_config_speedmod + id = MOVESPEED_ID_CONFIG_SPEEDMOD From e5136f86b26924096c9436a8c49410445289efa7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 23:28:31 -0800 Subject: [PATCH 013/115] *yawn --- code/controllers/subsystem/dcs.dm | 4 ++-- code/modules/mob/living/carbon/human/human_movement.dm | 2 ++ code/modules/movespeed/_movespeed_modifier.dm | 8 ++++---- code/modules/movespeed/modifiers/mobs.dm | 3 +++ 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/code/controllers/subsystem/dcs.dm b/code/controllers/subsystem/dcs.dm index 53c4b7fa311..ae27e42a617 100644 --- a/code/controllers/subsystem/dcs.dm +++ b/code/controllers/subsystem/dcs.dm @@ -9,7 +9,7 @@ PROCESSING_SUBSYSTEM_DEF(dcs) /datum/controller/subsystem/processing/dcs/proc/GetElement(datum/element/eletype, ...) var/element_id = eletype - + if(initial(eletype.element_flags) & ELEMENT_BESPOKE) var/list/fullid = list("[eletype]") for(var/i in initial(eletype.id_arg_index) to length(args)) @@ -19,7 +19,7 @@ PROCESSING_SUBSYSTEM_DEF(dcs) else fullid += "[REF(argument)]" element_id = fullid.Join("&") - + . = elements_by_type[element_id] if(.) return diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index fd46ad8b9f1..53872edc816 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -6,6 +6,8 @@ var/datum/movespeed_modifier/M = considering[id] if(M.flags & IGNORE_NOSLOW) .[id] = M + else + . = considering /mob/living/carbon/human/slip(knockdown_amount, obj/O, lube, paralyze, forcedrop) if(HAS_TRAIT(src, TRAIT_NOSLIPALL)) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 03a657be7e3..20c2fb8c61b 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -72,7 +72,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) CRASH("[modtype] is a variable modifier, and can never be cached.") return GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) -///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. +///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID. /mob/proc/add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE) if(ispath(type_or_datum)) if(!initial(type_or_datum.variable)) @@ -113,7 +113,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) update_movespeed(FALSE) return TRUE -/// Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Implies override. Returns the modifier datum if successful +/// Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful /mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE, multiplicative_slowdown) /* How this SHOULD work is: @@ -136,7 +136,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) var/id = initial(type_id_datum.id) final = LAZYACCESS(movespeed_modification, id) if(!istype(final)) - final = new + final = new type_id_datum inject = TRUE modified = TRUE else if(istype(type_id_datum)) @@ -152,7 +152,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) final.multiplicative_slowdown = multiplicative_slowdown modified = TRUE if(inject) - add_movespeed_modifier(final, FALSE, TRUE) + add_movespeed_modifier(final, FALSE) if(update && modified) update_movespeed(TRUE) return final diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 376b3ae94f0..99bc4a17706 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -25,10 +25,12 @@ /datum/movespeed_modifier/damage_slowdown id = MOVESPEED_ID_DAMAGE_SLOWDOWN blacklisted_movetypes = FLOATING|FLYING + variable = TRUE /datum/movespeed_modifier/damage_slowdown_flying id = MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING movetypes = FLOATING + variable = TRUE /datum/movespeed_modifier/equipment_speedmod variable = TRUE @@ -125,3 +127,4 @@ /datum/movespeed_modifier/mob_config_speedmod id = MOVESPEED_ID_CONFIG_SPEEDMOD + variable = TRUE From 67a21c2bd4d977c28db467bc22df43257f44dfea Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 23:34:44 -0800 Subject: [PATCH 014/115] wups --- code/modules/mob/living/carbon/human/human.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1665829f3c5..b62e40f0712 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1036,8 +1036,8 @@ return var/health_deficiency = max((maxHealth - health), staminaloss) if(health_deficiency >= 40) - add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) - add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, multiplicative_slowdown = health_deficiency / 75) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, multiplicative_slowdown = health_deficiency / 25) else remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) From 225be9b2ea82ce85973b9fb809e0de7a9b060e38 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 11 Jan 2020 23:35:02 -0800 Subject: [PATCH 015/115] wups --- code/modules/mob/living/carbon/human/human.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index b62e40f0712..b1356716e84 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1037,7 +1037,7 @@ var/health_deficiency = max((maxHealth - health), staminaloss) if(health_deficiency >= 40) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, multiplicative_slowdown = health_deficiency / 75) - add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, multiplicative_slowdown = health_deficiency / 25) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, TRUE, multiplicative_slowdown = health_deficiency / 25) else remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) From f9806e94f307124c2329e80f6da31fba31c3e533 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 13 Jan 2020 18:54:39 -0700 Subject: [PATCH 016/115] stuff --- code/modules/movespeed/_movespeed_modifier.dm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 20c2fb8c61b..1d7e24fec77 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -7,7 +7,7 @@ var/variable = FALSE /// Unique ID. You can never have different modifications with the same ID - var/id = "ERROR" + var/id /// Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding. var/priority = 0 @@ -101,14 +101,13 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) type_id_datum = get_cached_movespeed_modifier(type_id_datum) else type_id_datum = initial(type_id_datum.id) - if(istype(type_id_datum)) + else type_id_datum = type_id_datum.id if(!istext(type_id_datum)) CRASH("Invalid ID") if(!LAZYACCESS(movespeed_modification, type_id_datum)) return FALSE LAZYREMOVE(movespeed_modification, type_id_datum) - UNSETEMPTY(movespeed_modification) if(update) update_movespeed(FALSE) return TRUE @@ -128,14 +127,14 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) var/datum/movespeed_modifier/final if(istext(type_id_datum)) final = LAZYACCESS(movespeed_modification, type_id_datum) - if(!istype(final)) + if(!final) CRASH("Couldn't find existing modification when only provided an ID.") else if(ispath(type_id_datum)) if(!initial(type_id_datum.variable)) CRASH("Not a variable modifier") var/id = initial(type_id_datum.id) final = LAZYACCESS(movespeed_modification, id) - if(!istype(final)) + if(!final) final = new type_id_datum inject = TRUE modified = TRUE @@ -172,7 +171,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) /mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) if(ispath(datum_type_id)) datum_type_id = get_cached_movespeed_modifier(datum_type_id) - if(istype(datum_type_id)) + else if(!istext(datum_type_id)) datum_type_id = datum_type_id.id return LAZYACCESS(movespeed_modification, datum_type_id) From f19086786a1bf9003323aef4ac268677e02393ad Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 13 Jan 2020 19:00:07 -0700 Subject: [PATCH 017/115] stuff --- code/modules/movespeed/_movespeed_modifier.dm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 1d7e24fec77..dc2b7b0304a 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -27,7 +27,7 @@ /*! How move speed for mobs works -Move speed is now calculated by using a list of movespeed modifiers, which is a list itself (to avoid datum overhead) +Move speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need. This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be @@ -79,8 +79,6 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) type_or_datum = get_cached_movespeed_modifier(type_or_datum) else type_or_datum = new type_or_datum - if(!istype(type_or_datum)) - CRASH("Invalid modification datum") var/oldpriority var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) if(existing) @@ -138,7 +136,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) final = new type_id_datum inject = TRUE modified = TRUE - else if(istype(type_id_datum)) + else if(!initial(type_id_datum.variable)) CRASH("Not a variable modifier") final = type_id_datum @@ -238,7 +236,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) var/list/assembled = list() for(var/our_id in movespeed_modification) var/datum/movespeed_modifier/M = movespeed_modification[our_id] - if(!istype(M) || movespeed_data_null_check(M)) + if(movespeed_data_null_check(M)) movespeed_modification -= our_id continue var/our_priority = M.priority From 3659ac328bf52b0253dfb7df4acb0afc5d866083 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 13 Jan 2020 19:35:19 -0700 Subject: [PATCH 018/115] ok --- code/modules/movespeed/_movespeed_modifier.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index dc2b7b0304a..f0578ad1c7d 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -70,7 +70,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) var/datum/movespeed_modifier/M = modtype if(initial(M.variable)) CRASH("[modtype] is a variable modifier, and can never be cached.") - return GLOB.movespeed_modification_cache[modtype] || ((GLOB.movespeed_modification_cache[modtype] = new modtype)) + return GLOB.movespeed_modification_cache[modtype] || (GLOB.movespeed_modification_cache[modtype] = new modtype) ///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID. /mob/proc/add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE) @@ -143,8 +143,6 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(!LAZYACCESS(movespeed_modification, final.id)) inject = TRUE modified = TRUE - else - CRASH("Invalid modifier") if(!isnull(multiplicative_slowdown)) final.multiplicative_slowdown = multiplicative_slowdown modified = TRUE From 0affadce7f1fd599603952614717941782efa5fd Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 14 Jan 2020 16:06:58 -0700 Subject: [PATCH 019/115] aah. --- code/modules/movespeed/_movespeed_modifier.dm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index f0578ad1c7d..525704459e4 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -92,17 +92,12 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) update_movespeed(resort) return TRUE -///Remove a move speed modifier from a mob, whether static or variable. +/// Remove a move speed modifier from a mob, whether static or variable. /mob/proc/remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) if(ispath(type_id_datum)) - if(!initial(type_id_datum.variable)) - type_id_datum = get_cached_movespeed_modifier(type_id_datum) - else - type_id_datum = initial(type_id_datum.id) - else + ype_id_datum = initial(type_id_datum.id) + else if(!istext(type_id_datum)) //if it isn't text it has to be a datum, as it isn't a type. type_id_datum = type_id_datum.id - if(!istext(type_id_datum)) - CRASH("Invalid ID") if(!LAZYACCESS(movespeed_modification, type_id_datum)) return FALSE LAZYREMOVE(movespeed_modification, type_id_datum) From a6a585af744c9576bcd7a099eb60504306fae426 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 14 Jan 2020 16:08:34 -0700 Subject: [PATCH 020/115] typo --- code/modules/movespeed/_movespeed_modifier.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 525704459e4..6a6bf29f1cb 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -95,7 +95,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) /// Remove a move speed modifier from a mob, whether static or variable. /mob/proc/remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) if(ispath(type_id_datum)) - ype_id_datum = initial(type_id_datum.id) + type_id_datum = initial(type_id_datum.id) else if(!istext(type_id_datum)) //if it isn't text it has to be a datum, as it isn't a type. type_id_datum = type_id_datum.id if(!LAZYACCESS(movespeed_modification, type_id_datum)) From bab0e4ba81013729ce39026fd8bcd6e8019dd4e3 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 16 Jan 2020 02:03:21 -0700 Subject: [PATCH 021/115] binary insert wew --- code/modules/movespeed/_movespeed_modifier.dm | 57 ++++++++----------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 6a6bf29f1cb..b1e41e2cdd8 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -79,17 +79,36 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) type_or_datum = get_cached_movespeed_modifier(type_or_datum) else type_or_datum = new type_or_datum - var/oldpriority var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) if(existing) if(existing == type_or_datum) //same thing don't need to touch return TRUE oldpriority = existing.priority remove_movespeed_modifier(existing, FALSE) + LAZYINITLIST(movespeed_modification) + var/listlen = length(movespeed_modification) + if(!listlen) + movespeed_modification[type_or_datum.id] = type_or_datum + else + var/left = 1 + var/right = listlen + var/mid = (left + right) >> 1 + var/datum/movespeed_modifier/curr + while(left < right) + var/id = movespeed_modification[mid] + curr = movespeed_modification[id] + if(curr.priority <= type_or_datum.priority) + left = mid + 1 + else + right = mid + mid = (left + right) >> 1 + curr = movespeed_modification[mid] + mid = curr.priority > type_or_datum.priority? mid : mid + 1 + movespeed_modification.Insert(mid, type_or_datum.id) + movespeed_modification[type_or_datum.id] = type_or_datum LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) - var/resort = type_or_datum.priority == oldpriority if(update) - update_movespeed(resort) + update_movespeed() return TRUE /// Remove a move speed modifier from a mob, whether static or variable. @@ -178,9 +197,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) return GLOB.mob_config_movespeed_type_lookup[type] ///Go through the list of movespeed modifiers and calculate a final movespeed -/mob/proc/update_movespeed(resort = TRUE) - if(resort) - sort_movespeed_modlist() +/mob/proc/update_movespeed() . = 0 var/list/conflict_tracker = list() for(var/id in get_movespeed_modifiers()) @@ -217,31 +234,3 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) . = TRUE if(M.multiplicative_slowdown) . = FALSE - -/** - * Sort the list of move speed modifiers - * - * Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied) - */ -/mob/proc/sort_movespeed_modlist() - if(!movespeed_modification) - return - var/list/assembled = list() - for(var/our_id in movespeed_modification) - var/datum/movespeed_modifier/M = movespeed_modification[our_id] - if(movespeed_data_null_check(M)) - movespeed_modification -= our_id - continue - var/our_priority = M.priority - var/resolved = FALSE - for(var/their_id in assembled) - var/datum/movespeed_modifier/other = assembled[their_id] - if(other.priority < our_priority) - assembled.Insert(assembled.Find(their_id), our_id) - assembled[our_id] = M - resolved = TRUE - break - if(!resolved) - assembled[our_id] = M - movespeed_modification = assembled - UNSETEMPTY(movespeed_modification) From 0f5075ccd0ffbca84e837bfce1a87b994802a358 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 16 Jan 2020 02:27:29 -0700 Subject: [PATCH 022/115] compile --- code/modules/movespeed/_movespeed_modifier.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index b1e41e2cdd8..a2f706f231c 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -83,7 +83,6 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(existing) if(existing == type_or_datum) //same thing don't need to touch return TRUE - oldpriority = existing.priority remove_movespeed_modifier(existing, FALSE) LAZYINITLIST(movespeed_modification) var/listlen = length(movespeed_modification) From b5430eb68c37487ee2e8ef3ccd41e02e228bdb0e Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 24 Jan 2020 14:39:19 -0700 Subject: [PATCH 023/115] fuck --- .../mob/living/carbon/human/species.dm | 11 +-------- code/modules/movespeed/_movespeed_modifier.dm | 23 ++----------------- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 3987f64b745..e80dc5d94c7 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1712,19 +1712,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) // clear any hot moods and apply cold mood SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold) -<<<<<<< HEAD - //Sorry for the nasty oneline but I don't want to assign a variable on something run pretty frequently - H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR)) -======= - // Apply cold slow down - H.add_movespeed_modifier(MOVESPEED_ID_COLD, override = TRUE, \ - multiplicative_slowdown = ((bodytemp_cold_damage_limit - H.bodytemperature) / COLD_SLOWDOWN_FACTOR), \ - blacklisted_movetypes = FLOATING) - + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((bodytemp_cold_damage_limit - H.bodytemperature) / COLD_SLOWDOWN_FACTOR)) // Display alerts based on the amount of cold damage being taken // Apply more damage based on how cold you are ->>>>>>> tgstation/master switch(H.bodytemperature) if(200 to bodytemp_cold_damage_limit) H.throw_alert("temp", /obj/screen/alert/cold, 1) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index a2f706f231c..5410ce2ac7c 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -84,27 +84,8 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(existing == type_or_datum) //same thing don't need to touch return TRUE remove_movespeed_modifier(existing, FALSE) - LAZYINITLIST(movespeed_modification) - var/listlen = length(movespeed_modification) - if(!listlen) - movespeed_modification[type_or_datum.id] = type_or_datum - else - var/left = 1 - var/right = listlen - var/mid = (left + right) >> 1 - var/datum/movespeed_modifier/curr - while(left < right) - var/id = movespeed_modification[mid] - curr = movespeed_modification[id] - if(curr.priority <= type_or_datum.priority) - left = mid + 1 - else - right = mid - mid = (left + right) >> 1 - curr = movespeed_modification[mid] - mid = curr.priority > type_or_datum.priority? mid : mid + 1 - movespeed_modification.Insert(mid, type_or_datum.id) - movespeed_modification[type_or_datum.id] = type_or_datum + if(length(movespeed_modification)) + BINARY_INSERT(type_or_datum.id, movespeed_modification, datum/movespeed_modifier, type_or_datum, priority, __BIN_LIST[__BIN_LIST[__BIN_MID]]) LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) if(update) update_movespeed() From 0b9e346aec52f37a7329fc88ddcc91a6395e71d6 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 24 Jan 2020 16:10:24 -0700 Subject: [PATCH 024/115] thank you keyboard --- code/modules/antagonists/slaughter/slaughter.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 9617a66f545..e16d0f0d62b 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -33,7 +33,7 @@ health = 200 healable = 0 environment_smash = ENVIRONMENT_SMASH_STRUCTURES - obj_damage = 5 + obj_damage = 50 melee_damage_lower = 30 melee_damage_upper = 30 see_in_dark = 8 From 9c5676995661b019c4bdf4f2fe1327fedd496d08 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 3 Feb 2020 14:12:43 -0700 Subject: [PATCH 025/115] ok --- code/modules/movespeed/_movespeed_modifier.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 5410ce2ac7c..9162b98d7b2 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -70,7 +70,10 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) var/datum/movespeed_modifier/M = modtype if(initial(M.variable)) CRASH("[modtype] is a variable modifier, and can never be cached.") - return GLOB.movespeed_modification_cache[modtype] || (GLOB.movespeed_modification_cache[modtype] = new modtype) + M = GLOB.movespeed_modification_cache[modtype] + if(!M) + M = GLOB.movespeed_modification_cache[modtype] = new modtype + return M ///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID. /mob/proc/add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE) @@ -85,7 +88,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) return TRUE remove_movespeed_modifier(existing, FALSE) if(length(movespeed_modification)) - BINARY_INSERT(type_or_datum.id, movespeed_modification, datum/movespeed_modifier, type_or_datum, priority, __BIN_LIST[__BIN_LIST[__BIN_MID]]) + BINARY_INSERT(type_or_datum.id, movespeed_modification, datum/movespeed_modifier, type_or_datum, priority, COMPARE_VALUE) LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) if(update) update_movespeed() From 1c0b764dcf76f8e4ad550d4a042aced63efb5425 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 18 Feb 2020 00:04:16 -0700 Subject: [PATCH 026/115] no more ids --- code/__DEFINES/movespeed_modification.dm | 63 --------- code/modules/movespeed/_movespeed_modifier.dm | 127 +++++++++--------- .../modules/movespeed/modifiers/components.dm | 3 - code/modules/movespeed/modifiers/innate.dm | 4 - code/modules/movespeed/modifiers/items.dm | 3 - code/modules/movespeed/modifiers/misc.dm | 2 - code/modules/movespeed/modifiers/mobs.dm | 26 ---- code/modules/movespeed/modifiers/reagent.dm | 10 -- .../movespeed/modifiers/status_effects.dm | 5 - 9 files changed, 60 insertions(+), 183 deletions(-) diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index eb1d4eeba03..dacaaec6f71 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -6,66 +6,3 @@ #define MOVE_CONFLICT_JETPACK "JETPACK" //ids - -#define MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED "MOB_WALK_RUN" -#define MOVESPEED_ID_MOB_GRAB_STATE "MOB_GRAB_STATE" -#define MOVESPEED_ID_MOB_EQUIPMENT "MOB_EQUIPMENT" -#define MOVESPEED_ID_MOB_GRAVITY "MOB_GRAVITY" -#define MOVESPEED_ID_CONFIG_SPEEDMOD "MOB_CONFIG_MODIFIER" - -#define MOVESPEED_ID_SLIME_REAGENTMOD "SLIME_REAGENT_MODIFIER" -#define MOVESPEED_ID_SLIME_HEALTHMOD "SLIME_HEALTH_MODIFIER" -#define MOVESPEED_ID_SLIME_TEMPMOD "SLIME_TEMPERATURE_MODIFIER" - -#define MOVESPEED_ID_SLIME_STATUS "SLIME_STATUS" - -#define MOVESPEED_ID_TARANTULA_WEB "TARANTULA_WEB" - -#define MOVESPEED_ID_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD" -#define MOVESPEED_ID_LIVING_LIMBLESS "LIVING_LIMBLESS" - -#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT" -#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED" -#define MOVESPEED_ID_CARBON_CRAWLING "CARBON_CRAWLING" - -#define MOVESPEED_ID_DNA_VAULT "DNA_VAULT" - -#define MOVESPEED_ID_YELLOW_ORB "YELLOW_ORB" - -#define MOVESPEED_ID_TARFOOT "TARFOOT" - -#define MOVESPEED_ID_SEPIA "SEPIA" - -#define MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD "MONKEY_REAGENT_SPEEDMOD" -#define MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD "MONKEY_TEMPERATURE_SPEEDMOD" -#define MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD "MONKEY_HEALTH_SPEEDMOD" - -#define MOVESPEED_ID_CHANGELING_MUSCLES "CHANGELING_MUSCLES" - -#define MOVESPEED_ID_SIMPLEMOB_VARSPEED "SIMPLEMOB_VARSPEED_MODIFIER" -#define MOVESPEED_ID_ADMIN_VAREDIT "ADMIN_VAREDIT_MODIFIER" - -#define MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD "PAI_SPACEWALK_MODIFIER" - -#define MOVESPEED_ID_SANITY "MOOD_SANITY" - -#define MOVESPEED_ID_SPECIES "SPECIES_SPEED_MOD" -#define MOVESPEED_ID_SNAIL_CRAWL "SNAIL_CRAWL_SPEED_MOD" - -#define MOVESPEED_ID_CYBER_THRUSTER "CYBER_IMPLANT_THRUSTER" -#define MOVESPEED_ID_JETPACK "JETPACK" - -#define MOVESPEED_ID_SLAUGHTER "SLAUGHTER" -#define MOVESPEED_ID_DIE_OF_FATE "DIE_OF_FATE" - -#define MOVESPEED_ID_SHOVE "SHOVE" -#define MOVESPEED_ID_BULKY_DRAGGING "BULKY_DRAG" -#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY" -#define MOVESPEED_ID_SHRINK_RAY "SHRUNKEN_SPEED_MODIFIER" -#define MOVESPEED_ID_PEPPER_SPRAY "PEPPER_SPRAYED" -#define MOVESPEED_ID_FAT "FAT" -#define MOVESPEED_ID_COLD "COLD" -#define MOVESPEED_ID_HUNGRY "HUNGRY" -#define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE" -#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING" -#define MOVESPEED_ID_LENTURI "LENTURI_SLOWDOWN" diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index 9162b98d7b2..dd8321c68ee 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -1,12 +1,35 @@ -/** - * Movespeed modification datums. - */ +/*! Movespeed modification datums. + + How move speed for mobs works + +Move speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need. + +This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be + +THey can have unique sources and a bunch of extra fancy flags that control behaviour + +Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower + +Movespeed modification list is a simple key = datum system. Key will be the datum's ID if it is overridden to not be null, or type if it is not. + +DO NOT override datum IDs unless you are going to have multiple types that must overwrite each other. It's more efficient to use types, ID functionality is only kept for cases where dynamic creation of modifiers need to be done. + +When update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions +this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob +can next move + +Key procs +* [add_movespeed_modifier](mob.html#proc/add_movespeed_modifier) +* [remove_movespeed_modifier](mob.html#proc/remove_movespeed_modifier) +* [has_movespeed_modifier](mob.html#proc/has_movespeed_modifier) +* [update_movespeed](mob.html#proc/update_movespeed) +*/ /datum/movespeed_modifier /// Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason) var/variable = FALSE - /// Unique ID. You can never have different modifications with the same ID + /// Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path as ID. var/id /// Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding. @@ -25,42 +48,6 @@ /// Other modification datums this conflicts with. var/conflicts_with -/*! How move speed for mobs works - -Move speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need. - -This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be - -THey can have unique sources and a bunch of extra fancy flags that control behaviour - -Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower - -This list takes the following format - -```Current movespeed modification list format: - list( - id = list( - priority, - flags, - legacy slowdown/speedup amount, - movetype_flags - ) - ) -``` - -WHen update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions -this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob -can next move - -Key procs -* [add_movespeed_modifier](mob.html#proc/add_movespeed_modifier) -* [remove_movespeed_modifier](mob.html#proc/remove_movespeed_modifier) -* [has_movespeed_modifier](mob.html#proc/has_movespeed_modifier) -* [update_movespeed](mob.html#proc/update_movespeed) -*/ - -//ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! - GLOBAL_LIST_EMPTY(movespeed_modification_cache) /// Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO! @@ -82,53 +69,56 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) type_or_datum = get_cached_movespeed_modifier(type_or_datum) else type_or_datum = new type_or_datum - var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) + var/key = type_or_datum.id || type_or_datum.type //Our key will be ID if it's overridden, or if not, path. + var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, key) if(existing) if(existing == type_or_datum) //same thing don't need to touch return TRUE remove_movespeed_modifier(existing, FALSE) if(length(movespeed_modification)) - BINARY_INSERT(type_or_datum.id, movespeed_modification, datum/movespeed_modifier, type_or_datum, priority, COMPARE_VALUE) - LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) + BINARY_INSERT(key, movespeed_modification, datum/movespeed_modifier, type_or_datum, priority, COMPARE_VALUE) + LAZYSET(movespeed_modification, key, type_or_datum) if(update) update_movespeed() return TRUE /// Remove a move speed modifier from a mob, whether static or variable. /mob/proc/remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) + var/key if(ispath(type_id_datum)) - type_id_datum = initial(type_id_datum.id) + key = initial(type_id_datum.id) || type_id_datum //id if set, path if not. else if(!istext(type_id_datum)) //if it isn't text it has to be a datum, as it isn't a type. - type_id_datum = type_id_datum.id - if(!LAZYACCESS(movespeed_modification, type_id_datum)) + key = type_id_datum.id || type_id_datum.type + else //assume it's an id + key = type_id_datum + if(!LAZYACCESS(movespeed_modification, key)) return FALSE - LAZYREMOVE(movespeed_modification, type_id_datum) + LAZYREMOVE(movespeed_modification, key) if(update) update_movespeed(FALSE) return TRUE -/// Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful -/mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE, multiplicative_slowdown) - /* +/*! Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful How this SHOULD work is: 1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list. 2. Instantiate a new datum if type_id_datum isn't already instantiated + in the list, using the type. Obviously, wouldn't work for ID only. 3. Add the datum if necessary using the regular add proc 4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum 5. Update if necessary - */ +*/ +/mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE, multiplicative_slowdown) var/modified = FALSE var/inject = FALSE var/datum/movespeed_modifier/final if(istext(type_id_datum)) final = LAZYACCESS(movespeed_modification, type_id_datum) if(!final) - CRASH("Couldn't find existing modification when only provided an ID.") + CRASH("Couldn't find existing modification when provided a text ID.") else if(ispath(type_id_datum)) if(!initial(type_id_datum.variable)) CRASH("Not a variable modifier") var/id = initial(type_id_datum.id) - final = LAZYACCESS(movespeed_modification, id) + final = LAZYACCESS(movespeed_modification, id || type_or_datum) if(!final) final = new type_id_datum inject = TRUE @@ -137,7 +127,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(!initial(type_id_datum.variable)) CRASH("Not a variable modifier") final = type_id_datum - if(!LAZYACCESS(movespeed_modification, final.id)) + if(!LAZYACCESS(movespeed_modification, final.id || final.type)) inject = TRUE modified = TRUE if(!isnull(multiplicative_slowdown)) @@ -149,7 +139,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) update_movespeed(TRUE) return final -///Handles the special case of editing the movement var +/// Handles the special case of editing the movement var /mob/vv_edit_var(var_name, var_value) var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) var/diff @@ -162,29 +152,32 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) ///Is there a movespeed modifier for this mob /mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) + var/key if(ispath(datum_type_id)) - datum_type_id = get_cached_movespeed_modifier(datum_type_id) - else if(!istext(datum_type_id)) - datum_type_id = datum_type_id.id - return LAZYACCESS(movespeed_modification, datum_type_id) + key = initial(datum_type_id.id) || datum_type_id + else if(istext(datum_type_id)) + key = datum_type_id + else + key = datum_type_id.id || datum_type_id.type + return LAZYACCESS(movespeed_modification, key) -///Set or update the global movespeed config on a mob +/// Set or update the global movespeed config on a mob /mob/proc/update_config_movespeed() add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/mob_config_speedmod, multiplicative_slowdown = get_config_multiplicative_speed()) -///Get the global config movespeed of a mob by type +/// Get the global config movespeed of a mob by type /mob/proc/get_config_multiplicative_speed() if(!islist(GLOB.mob_config_movespeed_type_lookup) || !GLOB.mob_config_movespeed_type_lookup[type]) return 0 else return GLOB.mob_config_movespeed_type_lookup[type] -///Go through the list of movespeed modifiers and calculate a final movespeed +/// Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! /mob/proc/update_movespeed() . = 0 var/list/conflict_tracker = list() - for(var/id in get_movespeed_modifiers()) - var/datum/movespeed_modifier/M = movespeed_modification[id] + for(var/key in get_movespeed_modifiers()) + var/datum/movespeed_modifier/M = movespeed_modification[key] if(!(M.movetypes & movement_type)) // We don't affect any of these move types, skip continue if(M.blacklisted_movetypes & movement_type) // There's a movetype here that disables this modifier, skip @@ -201,18 +194,18 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) . += amt cached_multiplicative_slowdown = . -///Get the move speed modifiers list of the mob +/// Get the move speed modifiers list of the mob /mob/proc/get_movespeed_modifiers() return movespeed_modification -///Calculate the total slowdown of all movespeed modifiers +/// Calculate the total slowdown of all movespeed modifiers /mob/proc/total_multiplicative_slowdown() . = 0 for(var/id in get_movespeed_modifiers()) var/datum/movespeed_modifier/M = movespeed_modification[id] . += M.multiplicative_slowdown -///Checks if a move speed modifier is valid and not missing any data +/// Checks if a move speed modifier is valid and not missing any data /proc/movespeed_data_null_check(datum/movespeed_modifier/M) //Determines if a data list is not meaningful and should be discarded. . = TRUE if(M.multiplicative_slowdown) diff --git a/code/modules/movespeed/modifiers/components.dm b/code/modules/movespeed/modifiers/components.dm index ec4c4e11973..758b8f5fb7a 100644 --- a/code/modules/movespeed/modifiers/components.dm +++ b/code/modules/movespeed/modifiers/components.dm @@ -1,15 +1,12 @@ /datum/movespeed_modifier/shrink_ray - id = MOVESPEED_ID_SHRINK_RAY movetypes = GROUND multiplicative_slowdown = 4 /datum/movespeed_modifier/snail_crawl - id = MOVESPEED_ID_SNAIL_CRAWL multiplicative_slowdown = -7 movetypes = GROUND /datum/movespeed_modifier/sanity - id = MOVESPEED_ID_SANITY movetypes = (~FLYING) /datum/movespeed_modifier/sanity/insane diff --git a/code/modules/movespeed/modifiers/innate.dm b/code/modules/movespeed/modifiers/innate.dm index cd4b4601f82..ee4ed3a6ecf 100644 --- a/code/modules/movespeed/modifiers/innate.dm +++ b/code/modules/movespeed/modifiers/innate.dm @@ -1,18 +1,14 @@ /datum/movespeed_modifier/strained_muscles - id = MOVESPEED_ID_CHANGELING_MUSCLES multiplicative_slowdown = -1 blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/pai_spacewalk - id = MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD multiplicative_slowdown = 2 /datum/movespeed_modifier/species - id = MOVESPEED_ID_SPECIES movetypes = ~FLYING variable = TRUE /datum/movespeed_modifier/dna_vault_speedup - id = MOVESPEED_ID_DNA_VAULT blacklisted_movetypes = (FLYING|FLOATING) multiplicative_slowdown = -0.4 diff --git a/code/modules/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm index d1ec480b465..e36c05dccee 100644 --- a/code/modules/movespeed/modifiers/items.dm +++ b/code/modules/movespeed/modifiers/items.dm @@ -3,13 +3,10 @@ movetypes = FLOATING /datum/movespeed_modifier/jetpack/cybernetic - id = MOVESPEED_ID_CYBER_THRUSTER multiplicative_slowdown = -0.5 /datum/movespeed_modifier/jetpack/fullspeed - id = MOVESPEED_ID_JETPACK multiplicative_slowdown = -0.5 /datum/movespeed_modifier/die_of_fate - id = MOVESPEED_ID_DIE_OF_FATE multiplicative_slowdown = 1 diff --git a/code/modules/movespeed/modifiers/misc.dm b/code/modules/movespeed/modifiers/misc.dm index 7e606e3f1e9..55c1aef5271 100644 --- a/code/modules/movespeed/modifiers/misc.dm +++ b/code/modules/movespeed/modifiers/misc.dm @@ -1,8 +1,6 @@ /datum/movespeed_modifier/admin_varedit variable = TRUE - id = MOVESPEED_ID_ADMIN_VAREDIT /datum/movespeed_modifier/yellow_orb - id = MOVESPEED_ID_YELLOW_ORB multiplicative_slowdown = -2 blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 99bc4a17706..24a23923069 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -1,44 +1,34 @@ /datum/movespeed_modifier/obesity - id = MOVESPEED_ID_FAT multiplicative_slowdown = 1.5 /datum/movespeed_modifier/monkey_reagent_speedmod variable = TRUE - id = MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD /datum/movespeed_modifier/monkey_health_speedmod variable = TRUE - id = MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD /datum/movespeed_modifier/monkey_temperature_speedmod variable = TRUE - id = MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD /datum/movespeed_modifier/hunger - id = MOVESPEED_ID_HUNGRY variable = TRUE /datum/movespeed_modifier/slaughter - id = MOVESPEED_ID_SLAUGHTER multiplicative_slowdown = -1 /datum/movespeed_modifier/damage_slowdown - id = MOVESPEED_ID_DAMAGE_SLOWDOWN blacklisted_movetypes = FLOATING|FLYING variable = TRUE /datum/movespeed_modifier/damage_slowdown_flying - id = MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING movetypes = FLOATING variable = TRUE /datum/movespeed_modifier/equipment_speedmod variable = TRUE - id = MOVESPEED_ID_MOB_EQUIPMENT blacklisted_movetypes = FLOATING /datum/movespeed_modifier/grab_slowdown - id = MOVESPEED_ID_MOB_GRAB_STATE blacklisted_movetypes = FLOATING /datum/movespeed_modifier/grab_slowdown/aggressive @@ -51,15 +41,12 @@ multiplicative_slowdown = 9 /datum/movespeed_modifier/slime_reagentmod - id = MOVESPEED_ID_SLIME_REAGENTMOD variable = TRUE /datum/movespeed_modifier/slime_healthmod - id = MOVESPEED_ID_SLIME_HEALTHMOD variable = TRUE /datum/movespeed_modifier/config_walk_run - id = MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED multiplicative_slowdown = 1 /datum/movespeed_modifier/config_walk_run/proc/sync() @@ -73,58 +60,45 @@ multiplicative_slowdown = isnum(mod)? mod : initial(multiplicative_slowdown) /datum/movespeed_modifier/turf_slowdown - id = MOVESPEED_ID_LIVING_TURF_SPEEDMOD movetypes = GROUND blacklisted_movetypes = (FLYING|FLOATING) variable = TRUE /datum/movespeed_modifier/bulky_drag - id = MOVESPEED_ID_BULKY_DRAGGING variable = TRUE /datum/movespeed_modifier/cold - id = MOVESPEED_ID_COLD blacklisted_movetypes = FLOATING variable = TRUE /datum/movespeed_modifier/shove - id = MOVESPEED_ID_SHOVE multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH /datum/movespeed_modifier/human_carry - id = MOVESPEED_ID_HUMAN_CARRYING multiplicative_slowdown = HUMAN_CARRY_SLOWDOWN /datum/movespeed_modifier/limbless - id = MOVESPEED_ID_LIVING_LIMBLESS variable = TRUE movetypes = GROUND /datum/movespeed_modifier/simplemob_varspeed - id = MOVESPEED_ID_SIMPLEMOB_VARSPEED variable = TRUE /datum/movespeed_modifier/tarantula_web - id = MOVESPEED_ID_TARANTULA_WEB multiplicative_slowdown = 3 /datum/movespeed_modifier/gravity - id = MOVESPEED_ID_MOB_GRAVITY blacklisted_movetypes = FLOATING variable = TRUE /datum/movespeed_modifier/carbon_softcrit - id = MOVESPEED_ID_CARBON_SOFTCRIT multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN /datum/movespeed_modifier/slime_tempmod - id = MOVESPEED_ID_SLIME_TEMPMOD variable = TRUE /datum/movespeed_modifier/carbon_crawling - id = MOVESPEED_ID_CARBON_CRAWLING multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN /datum/movespeed_modifier/mob_config_speedmod - id = MOVESPEED_ID_CONFIG_SPEEDMOD variable = TRUE diff --git a/code/modules/movespeed/modifiers/reagent.dm b/code/modules/movespeed/modifiers/reagent.dm index 2c1353a471f..f1a54f98de3 100644 --- a/code/modules/movespeed/modifiers/reagent.dm +++ b/code/modules/movespeed/modifiers/reagent.dm @@ -2,41 +2,31 @@ blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/reagent/stimulants - id = "stimulants_reagent" multiplicative_slowdown = -1 /datum/movespeed_modifier/reagent/ephedrine - id = "ephedrine_reagent" multiplicative_slowdown = -0.5 /datum/movespeed_modifier/reagent/pepperspray - id = MOVESPEED_ID_PEPPER_SPRAY multiplicative_slowdown = 0.25 /datum/movespeed_modifier/reagent/badstims - id = "reagent_badstims" multiplicative_slowdown = -0.45 /datum/movespeed_modifier/reagent/monkey_energy - id = "reagent_monkey_energy" multiplicative_slowdown = -0.35 /datum/movespeed_modifier/reagent/changelinghaste - id = "reagent_changelinghaste" multiplicative_slowdown = -2 /datum/movespeed_modifier/reagent/methamphetamine - id = "reagent_methamphetamine" multiplicative_slowdown = -0.65 /datum/movespeed_modifier/reagent/nitryl - id = "reagent_nitryl" multiplicative_slowdown = -0.65 /datum/movespeed_modifier/reagent/lenturi - id = "reagent_lenturi" multiplicative_slowdown = 1.5 /datum/movespeed_modifier/reagent/nuka_cola - id = "reagent_nukacola" multiplicative_slowdown = -0.35 diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm index de68bd78ed1..506a4672ef1 100644 --- a/code/modules/movespeed/modifiers/status_effects.dm +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -1,22 +1,17 @@ /datum/movespeed_modifier/status_effect/bloodchill - id = "bloodchilled" multiplicative_slowdown = 3 /datum/movespeed_modifier/status_effect/bonechill - id = "bonechilled" multiplicative_slowdown = 3 /datum/movespeed_modifier/status_effect/lightpink - id = MOVESPEED_ID_SLIME_STATUS multiplicative_slowdown = -0.5 blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/status_effect/tarfoot - id = MOVESPEED_ID_TARFOOT multiplicative_slowdown = 0.5 blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/status_effect/sepia variable = TRUE - id = MOVESPEED_ID_SEPIA blacklisted_movetypes = (FLYING|FLOATING) From 8d16c25825b527843419cb996a6eb0355113834f Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 18 Feb 2020 00:06:12 -0700 Subject: [PATCH 027/115] these need ids --- code/__DEFINES/movespeed_modification.dm | 3 +++ code/datums/components/shrink.dm | 2 +- code/modules/movespeed/_movespeed_modifier.dm | 2 +- code/modules/movespeed/modifiers/components.dm | 1 + code/modules/movespeed/modifiers/mobs.dm | 1 + 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index dacaaec6f71..832bd1bc55e 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -6,3 +6,6 @@ #define MOVE_CONFLICT_JETPACK "JETPACK" //ids +#define MOVESPEED_ID_SANITY "sanity_component" + +#define MOVESPEED_ID_MOB_GRAB_STATE "mob_grab_state" diff --git a/code/datums/components/shrink.dm b/code/datums/components/shrink.dm index 157eb36c373..3dfd131923a 100644 --- a/code/datums/components/shrink.dm +++ b/code/datums/components/shrink.dm @@ -34,7 +34,7 @@ parent_atom.opacity = oldopac if(isliving(parent_atom)) var/mob/living/L = parent_atom - L.remove_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY) + L.remove_movespeed_modifier(/datum/movespeed_modifier/shrink_ray) if(ishuman(L)) var/mob/living/carbon/human/H = L H.physiology.damage_resistance += 100 diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm index dd8321c68ee..c6bab4dd712 100644 --- a/code/modules/movespeed/_movespeed_modifier.dm +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -118,7 +118,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache) if(!initial(type_id_datum.variable)) CRASH("Not a variable modifier") var/id = initial(type_id_datum.id) - final = LAZYACCESS(movespeed_modification, id || type_or_datum) + final = LAZYACCESS(movespeed_modification, id || type_id_datum) if(!final) final = new type_id_datum inject = TRUE diff --git a/code/modules/movespeed/modifiers/components.dm b/code/modules/movespeed/modifiers/components.dm index 758b8f5fb7a..a8f0db50181 100644 --- a/code/modules/movespeed/modifiers/components.dm +++ b/code/modules/movespeed/modifiers/components.dm @@ -7,6 +7,7 @@ movetypes = GROUND /datum/movespeed_modifier/sanity + id = MOVESPEED_ID_SANITY movetypes = (~FLYING) /datum/movespeed_modifier/sanity/insane diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 24a23923069..2f88a1c33f1 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -29,6 +29,7 @@ blacklisted_movetypes = FLOATING /datum/movespeed_modifier/grab_slowdown + id = MOVESPEED_ID_MOB_GRAB_STATE blacklisted_movetypes = FLOATING /datum/movespeed_modifier/grab_slowdown/aggressive From 6dc2f474118014d4969aa2480e8877cb167bb132 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 18 Feb 2020 03:59:28 -0700 Subject: [PATCH 028/115] better idea --- code/__DEFINES/movespeed_modification.dm | 1 + code/datums/outfit.dm | 2 +- code/modules/movespeed/modifiers/mobs.dm | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index 832bd1bc55e..6b8ef7bd567 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -9,3 +9,4 @@ #define MOVESPEED_ID_SANITY "sanity_component" #define MOVESPEED_ID_MOB_GRAB_STATE "mob_grab_state" +#define MOVESPEED_ID_MOB_WALK_RUN "mob_walk_run" diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 518350c3be7..2843b558543 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -88,7 +88,7 @@ /// Internals box. Will be inserted at the start of backpack_contents var/box - /** + /** * Any implants the mob should start implanted with * * Format of this list is (typepath, typepath, typepath) diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index 2f88a1c33f1..cc92c38533e 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -49,6 +49,7 @@ /datum/movespeed_modifier/config_walk_run multiplicative_slowdown = 1 + id = MOVESPEED_ID_MOB_WALK_RUN /datum/movespeed_modifier/config_walk_run/proc/sync() From 8f1a1a586d8dd33927690f52505674622311d822 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 18 Feb 2020 03:59:39 -0700 Subject: [PATCH 029/115] woops --- code/datums/outfit.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 2843b558543..518350c3be7 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -88,7 +88,7 @@ /// Internals box. Will be inserted at the start of backpack_contents var/box - /** + /** * Any implants the mob should start implanted with * * Format of this list is (typepath, typepath, typepath) From 4c6b13e264a7631016c0b7d8d5a2f1c4511675cc Mon Sep 17 00:00:00 2001 From: Fikou Date: Mon, 24 Feb 2020 23:44:12 +0100 Subject: [PATCH 030/115] Adds Clarke Mech --- code/game/mecha/equipment/tools/work_tools.dm | 4 +- code/game/mecha/mech_fabricator.dm | 2 +- code/game/mecha/mecha_construction_paths.dm | 117 ++++++++++-------- code/game/mecha/mecha_parts.dm | 35 +++++- code/game/mecha/mecha_wreckage.dm | 30 +++-- code/game/mecha/working/clarke.dm | 36 ++++++ code/game/mecha/working/ripley.dm | 38 ------ code/game/mecha/working/working.dm | 22 ++++ code/game/objects/items/manuals.dm | 8 -- code/modules/cargo/bounties/mech.dm | 12 +- .../modules/research/designs/mecha_designs.dm | 16 +++ .../designs/mechfabricator_designs.dm | 46 +++++++ code/modules/research/techweb/all_nodes.dm | 13 +- icons/mecha/mech_construct.dmi | Bin 31441 -> 33517 bytes icons/mecha/mech_construction.dmi | Bin 19228 -> 21856 bytes icons/mecha/mecha.dmi | Bin 155220 -> 165535 bytes strings/tips.txt | 2 +- tgstation.dme | 1 + 18 files changed, 256 insertions(+), 126 deletions(-) create mode 100644 code/game/mecha/working/clarke.dm diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 35bf8797306..70a16e37dd1 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -11,10 +11,10 @@ tool_behaviour = TOOL_RETRACTOR toolspeed = 0.8 var/dam_force = 20 - var/obj/mecha/working/ripley/cargo_holder + var/obj/mecha/working/cargo_holder harmful = TRUE -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/can_attach(obj/mecha/working/ripley/M as obj) +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/can_attach(obj/mecha/working/M as obj) if(..()) if(istype(M)) return 1 diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 7ac11a09af7..13de9fe5b19 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -24,7 +24,7 @@ var/list/part_sets = list( "Cyborg", "Ripley", - "Firefighter", + "Clarke", "Odysseus", "Gygax", "Durand", diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 44a5cc69c74..0cf704b0ae7 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -537,156 +537,166 @@ user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Gygax Armor Plates.") return TRUE -/datum/component/construction/unordered/mecha_chassis/firefighter - result = /datum/component/construction/mecha/firefighter +/datum/component/construction/unordered/mecha_chassis/clarke + result = /datum/component/construction/mecha/clarke steps = list( - /obj/item/mecha_parts/part/ripley_torso, - /obj/item/mecha_parts/part/ripley_left_arm, - /obj/item/mecha_parts/part/ripley_right_arm, - /obj/item/mecha_parts/part/ripley_left_leg, - /obj/item/mecha_parts/part/ripley_right_leg, - /obj/item/clothing/suit/fire + /obj/item/mecha_parts/part/clarke_torso, + /obj/item/mecha_parts/part/clarke_left_arm, + /obj/item/mecha_parts/part/clarke_right_arm, + /obj/item/mecha_parts/part/clarke_left_leg, + /obj/item/mecha_parts/part/clarke_right_leg, + /obj/item/mecha_parts/part/clarke_head ) -/datum/component/construction/mecha/firefighter - result = /obj/mecha/working/ripley/firefighter - base_icon = "fireripley" +/datum/component/construction/mecha/clarke + result = /obj/mecha/working/clarke + base_icon = "clarke" - circuit_control = /obj/item/circuitboard/mecha/ripley/main - circuit_periph = /obj/item/circuitboard/mecha/ripley/peripherals + circuit_control = /obj/item/circuitboard/mecha/clarke/main + circuit_periph = /obj/item/circuitboard/mecha/clarke/peripherals inner_plating = /obj/item/stack/sheet/plasteel inner_plating_amount = 5 -/datum/component/construction/mecha/firefighter/get_outer_plating_steps() + outer_plating = /obj/item/stack/sheet/mineral/gold + outer_plating_amount = 5 + +/datum/component/construction/mecha/clarke/get_frame_steps() return list( list( - "key" = /obj/item/stack/sheet/plasteel, - "amount" = 5, - "back_key" = TOOL_WELDER, - "desc" = "Internal armor is welded." - ), - list( - "key" = /obj/item/stack/sheet/plasteel, - "amount" = 5, - "back_key" = TOOL_CROWBAR, - "desc" = "External armor is being installed." + "key" = /obj/item/stack/conveyor, + "amount" = 4, + "desc" = "The treads are added." ), list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, - "desc" = "External armor is installed." + "desc" = "The hydraulic systems are disconnected." ), list( - "key" = TOOL_WELDER, + "key" = TOOL_SCREWDRIVER, "back_key" = TOOL_WRENCH, - "desc" = "External armor is wrenched." + "desc" = "The hydraulic systems are connected." ), + list( + "key" = /obj/item/stack/cable_coil, + "amount" = 5, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The hydraulic systems are active." + ), + list( + "key" = TOOL_WIRECUTTER, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The wiring is added." + ) ) -/datum/component/construction/mecha/firefighter/custom_action(obj/item/I, mob/living/user, diff) + + +/datum/component/construction/mecha/clarke/custom_action(obj/item/I, mob/living/user, diff) if(!..()) return FALSE //TODO: better messages. switch(index) if(1) - user.visible_message("[user] connects [parent] hydraulic systems.", "You connect [parent] hydraulic systems.") + user.visible_message("[user] adds the tread systems.", "You add the tread systems.") if(2) + if(diff==FORWARD) + user.visible_message("[user] connects [parent] hydraulic systems.", "You connect [parent] hydraulic systems.") + else + user.visible_message("[user] removes the tread systems.", "You remove the tread systems.") + + if(3) if(diff==FORWARD) user.visible_message("[user] activates [parent] hydraulic systems.", "You activate [parent] hydraulic systems.") else user.visible_message("[user] disconnects [parent] hydraulic systems.", "You disconnect [parent] hydraulic systems.") - if(3) + if(4) if(diff==FORWARD) user.visible_message("[user] adds the wiring to [parent].", "You add the wiring to [parent].") else user.visible_message("[user] deactivates [parent] hydraulic systems.", "You deactivate [parent] hydraulic systems.") - if(4) + if(5) if(diff==FORWARD) user.visible_message("[user] adjusts the wiring of [parent].", "You adjust the wiring of [parent].") else user.visible_message("[user] removes the wiring from [parent].", "You remove the wiring from [parent].") - if(5) + if(6) if(diff==FORWARD) user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") else user.visible_message("[user] disconnects the wiring of [parent].", "You disconnect the wiring of [parent].") - if(6) + if(7) if(diff==FORWARD) user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") else user.visible_message("[user] removes the central control module from [parent].", "You remove the central computer mainboard from [parent].") - if(7) + if(8) if(diff==FORWARD) - user.visible_message("[user] installs [I]into [parent].", "You install [I]into [parent].") + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") else user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") - if(8) + if(9) if(diff==FORWARD) user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") else user.visible_message("[user] removes the peripherals control module from [parent].", "You remove the peripherals control module from [parent].") - if(9) + if(10) if(diff==FORWARD) user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") - if(10) + if(11) if(diff==FORWARD) user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") else user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") - if(11) + if(12) if(diff==FORWARD) user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") else user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") - if(12) + if(13) if(diff==FORWARD) user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") else user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") - if(13) + if(14) if(diff==FORWARD) user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") else user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") - if(14) + if(15) if(diff==FORWARD) user.visible_message("[user] secures the power cell.", "You secure the power cell.") else user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") - if(15) + if(16) if(diff==FORWARD) user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") else user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") - if(16) + if(17) if(diff==FORWARD) user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") else user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") - if(17) + if(18) if(diff==FORWARD) user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - if(18) - if(diff==FORWARD) - user.visible_message("[user] starts to install the external armor layer to [parent].", "You install the external armor layer to [parent].") - else - user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") if(19) if(diff==FORWARD) - user.visible_message("[user] installs the external reinforced armor layer to [parent].", "You install the external reinforced armor layer to [parent].") + user.visible_message("[user] installs the external armor layer to [parent].", "You install the external reinforced armor layer to [parent].") else - user.visible_message("[user] removes the external armor from [parent].", "You remove the external armor from [parent].") + user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") if(20) if(diff==FORWARD) user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") else - user.visible_message("[user] pries external armor layer from [parent].", "You pry external armor layer from [parent].") + user.visible_message("[user] pries the external armor layer from [parent].", "You pry the external armor layer from [parent].") if(21) if(diff==FORWARD) user.visible_message("[user] welds the external armor layer to [parent].", "You weld the external armor layer to [parent].") @@ -694,6 +704,7 @@ user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") return TRUE + /datum/component/construction/unordered/mecha_chassis/honker result = /datum/component/construction/mecha/honker steps = list( diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 7b617a3dd01..7da7af7aeca 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -182,12 +182,31 @@ desc = "A set of armor plates for the Durand. Built heavy to resist an incredible amount of brute force." icon_state = "durand_armor" -////////// Firefighter +////////// Clarke -/obj/item/mecha_parts/chassis/firefighter - name = "\improper Firefighter chassis" - construct_type = /datum/component/construction/unordered/mecha_chassis/firefighter +/obj/item/mecha_parts/chassis/clarke + name = "\improper Clarke chassis" + construct_type = /datum/component/construction/unordered/mecha_chassis/clarke +/obj/item/mecha_parts/part/clarke_torso + name = "\improper Clarke torso" + desc = "A torso part of Clarke. Contains power unit, processing core and life support systems." + icon_state = "clarke_harness" + +/obj/item/mecha_parts/part/clarke_head + name = "\improper Clarke head" + desc = "A Clarke head. Contains an integrated diagnostic HUD scanner." + icon_state = "clarke_head" + +/obj/item/mecha_parts/part/clarke_left_arm + name = "\improper Clarke left arm" + desc = "A Clarke left arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "clarke_l_arm" + +/obj/item/mecha_parts/part/clarke_right_arm + name = "\improper Clarke right arm" + desc = "A Clarke right arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "clarke_r_arm" ////////// HONK @@ -347,3 +366,11 @@ /obj/item/circuitboard/mecha/phazon/main name = "Phazon Central Control module (Exosuit Board)" + +/obj/item/circuitboard/mecha/clarke/peripherals + name = "Clarke Peripherals Control module (Exosuit Board)" + icon_state = "mcontroller" + +/obj/item/circuitboard/mecha/clarke/main + name = "Clarke Central Control module (Exosuit Board)" + icon_state = "mainboard" \ No newline at end of file diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index 91b2a2bbf2a..88d72f037f9 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -147,7 +147,8 @@ /obj/structure/mecha_wreckage/ripley name = "\improper Ripley wreckage" icon_state = "ripley-broken" - parts = list(/obj/item/mecha_parts/part/ripley_torso, + parts = list( + /obj/item/mecha_parts/part/ripley_torso, /obj/item/mecha_parts/part/ripley_left_arm, /obj/item/mecha_parts/part/ripley_right_arm, /obj/item/mecha_parts/part/ripley_left_leg, @@ -157,15 +158,15 @@ name = "\improper Ripley MK-II wreckage" icon_state = "ripleymkii-broken" -/obj/structure/mecha_wreckage/ripley/firefighter - name = "\improper Firefighter wreckage" - icon_state = "firefighter-broken" - parts = list(/obj/item/mecha_parts/part/ripley_torso, - /obj/item/mecha_parts/part/ripley_left_arm, - /obj/item/mecha_parts/part/ripley_right_arm, - /obj/item/mecha_parts/part/ripley_left_leg, - /obj/item/mecha_parts/part/ripley_right_leg, - /obj/item/clothing/suit/fire) +/obj/structure/mecha_wreckage/clarke + name = "\improper Clarke wreckage" + icon_state = "clarke-broken" + parts = list( + /obj/item/mecha_parts/part/clarke_torso, + /obj/item/mecha_parts/part/clarke_head, + /obj/item/mecha_parts/part/clarke_left_arm, + /obj/item/mecha_parts/part/clarke_right_arm, + /obj/item/stack/conveyor) /obj/structure/mecha_wreckage/ripley/deathripley name = "\improper Death-Ripley wreckage" @@ -177,7 +178,6 @@ icon_state = "honker-broken" desc = "All is right in the universe." parts = list( - /obj/item/mecha_parts/chassis/honker, /obj/item/mecha_parts/part/honker_torso, /obj/item/mecha_parts/part/honker_head, /obj/item/mecha_parts/part/honker_left_arm, @@ -199,6 +199,14 @@ /obj/structure/mecha_wreckage/phazon name = "\improper Phazon wreckage" icon_state = "phazon-broken" + parts = list( + /obj/item/mecha_parts/part/phazon_torso, + /obj/item/mecha_parts/part/phazon_head, + /obj/item/mecha_parts/part/phazon_left_arm, + /obj/item/mecha_parts/part/phazon_right_arm, + /obj/item/mecha_parts/part/phazon_left_leg, + /obj/item/mecha_parts/part/phazon_right_leg) + /obj/structure/mecha_wreckage/odysseus diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm new file mode 100644 index 00000000000..5d839876e14 --- /dev/null +++ b/code/game/mecha/working/clarke.dm @@ -0,0 +1,36 @@ +/obj/mecha/working/clarke + desc = "Combining man and machine for a better, stronger engineer. Can even resist lava!" + name = "\improper Clarke" + icon_state = "clarke" + max_temperature = 65000 + max_integrity = 250 + step_in = 1.5 + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + lights_power = 7 + deflect_chance = 10 + step_energy_drain = 15 //slightly higher energy drain since you movin those wheels FAST + armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 30, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100) //low bullet/melee armor to compensate for fire protection and speed + max_equip = 6 + wreckage = /obj/structure/mecha_wreckage/clarke + enter_delay = 40 + cargo_capacity = 20 + +/obj/mecha/working/clarke/moved_inside(mob/living/carbon/human/H) + . = ..() + if(.) + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_ADVANCED] + hud.add_hud_to(H) + +/obj/mecha/working/clarke/go_out() + if(isliving(occupant)) + var/mob/living/L = occupant + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_ADVANCED] + hud.remove_hud_from(L) + ..() + +/obj/mecha/working/clarke/mmi_moved_inside(obj/item/mmi/M, mob/user) + . = ..() + if(.) + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_ADVANCED] + var/mob/living/brain/B = M.brainmob + hud.add_hud_to(B) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index b9512af99c8..70deef8a610 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -14,8 +14,6 @@ max_equip = 6 wreckage = /obj/structure/mecha_wreckage/ripley internals_req_access = list(ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_MINING) - var/list/cargo = new - var/cargo_capacity = 15 var/hides = 0 enclosed = FALSE //Normal ripley has an open cockpit design enter_delay = 10 //can enter in a quarter of the time of other mechs @@ -24,25 +22,8 @@ /obj/mecha/working/ripley/Move() . = ..() - if(.) - collect_ore() update_pressure() -/obj/mecha/working/ripley/proc/collect_ore() - if(locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) - var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in cargo - if(ore_box) - for(var/obj/item/stack/ore/ore in range(1, src)) - if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it! - ore.forceMove(ore_box) - -/obj/mecha/working/ripley/Destroy() - for(var/atom/movable/A in cargo) - A.forceMove(drop_location()) - step_rand(A) - cargo.Cut() - return ..() - /obj/mecha/working/ripley/go_out() ..() update_icon() @@ -76,25 +57,6 @@ silicon_icon_state = null opacity = TRUE -/obj/mecha/working/ripley/firefighter - desc = "Autonomous Power Loader Unit MK-III. This model is refitted with a pressurized cabin and additional thermal protection." - name = "\improper APLU MK-III \"Firefighter\"" - icon_state = "firefighter" - max_temperature = 65000 - max_integrity = 250 - fast_pressure_step_in = 2 //step_in while in low pressure conditions - slow_pressure_step_in = 4 //step_in while in normal pressure conditions - step_in = 4 - resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - lights_power = 7 - armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100) - max_equip = 5 // More armor, less tools - wreckage = /obj/structure/mecha_wreckage/ripley/firefighter - enclosed = TRUE - enter_delay = 40 - silicon_icon_state = null - opacity = TRUE - /obj/mecha/working/ripley/deathripley desc = "OH SHIT IT'S THE DEATHSQUAD WE'RE ALL GONNA DIE" diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index b3e9c4ba55e..603d528871e 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -1,2 +1,24 @@ /obj/mecha/working internal_damage_threshold = 60 + var/list/cargo = new + var/cargo_capacity = 15 + +/obj/mecha/working/Move() + . = ..() + if(.) + collect_ore() + +/obj/mecha/working/proc/collect_ore() + if(locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) + var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in cargo + if(ore_box) + for(var/obj/item/stack/ore/ore in range(1, src)) + if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it! + ore.forceMove(ore_box) + +/obj/mecha/working/Destroy() + for(var/atom/movable/A in cargo) + A.forceMove(drop_location()) + step_rand(A) + cargo.Cut() + return ..() \ No newline at end of file diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index be7915f67f0..f9d2aa9d34d 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -101,14 +101,6 @@
  • Install the external reinforced armor plating (Not included due to Nanotrasen regulations. Can be made using 5 reinforced metal sheets.)
  • Secure the external reinforced armor plating with a wrench
  • Weld the external reinforced armor plating to the chassis
  • -
  • -
  • Additional Information:
  • -
  • The firefighting variation is made in a similar fashion.
  • -
  • A firesuit must be connected to the Firefighter chassis for heat shielding.
  • -
  • Internal armor is plasteel for additional strength.
  • -
  • External armor must be installed in 2 parts, totaling 10 sheets.
  • -
  • Completed mech is more resiliant against fire, and is a bit more durable overall
  • -
  • Nanotrasen is determined to the safety of its investments employees.
  • diff --git a/code/modules/cargo/bounties/mech.dm b/code/modules/cargo/bounties/mech.dm index 62c846ea96a..f62364060fa 100644 --- a/code/modules/cargo/bounties/mech.dm +++ b/code/modules/cargo/bounties/mech.dm @@ -18,14 +18,14 @@ reward = 13000 wanted_types = list(/obj/mecha/working/ripley/mkii) -/datum/bounty/item/mech/firefighter - name = "APLU \"Firefighter\"" - reward = 18000 - wanted_types = list(/obj/mecha/working/ripley/firefighter) +/datum/bounty/item/mech/clarke + name = "Clarke" + reward = 20000 + wanted_types = list(/obj/mecha/working/clarke) /datum/bounty/item/mech/odysseus name = "Odysseus" - reward = 11000 + reward = 13000 wanted_types = list(/obj/mecha/medical/odysseus) /datum/bounty/item/mech/gygax @@ -35,7 +35,7 @@ /datum/bounty/item/mech/durand name = "Durand" - reward = 20000 + reward = 25000 wanted_types = list(/obj/mecha/combat/durand) /datum/bounty/item/mech/phazon diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index 11eacb1621f..f3b4baa917e 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -133,6 +133,22 @@ category = list("Exosuit Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE +/datum/design/board/clarke_main + name = "\"Clarke\" Central Control module" + desc = "Allows for the construction of a \"Clarke\" Central Control module." + id = "clarke_main" + build_path = /obj/item/circuitboard/mecha/clarke/main + category = list("Exosuit Modules") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/clarke_peri + name = "\"Clarke\" Peripherals Control module" + desc = "Allows for the construction of a \"Clarke\" Peripheral Control module." + id = "clarke_peri" + build_path = /obj/item/circuitboard/mecha/clarke/peripherals + category = list("Exosuit Modules") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + //////////////////////////////////////// /////////// Mecha Equpment ///////////// //////////////////////////////////////// diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index d0b1241703b..44b6061dba1 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -475,6 +475,52 @@ construction_time = 300 category = list("Phazon") +//Clarke +/datum/design/clarke_chassis + name = "Exosuit Chassis (\"Clarke\")" + id = "clarke_chassis" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/chassis/clarke + materials = list(/datum/material/iron=20000) + construction_time = 100 + category = list("Clarke") + +/datum/design/clarke_torso + name = "Exosuit Torso (\"Clarke\")" + id = "clarke_torso" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/clarke_torso + materials = materials = list(/datum/material/iron=20000,/datum/material/glass = 7500) + construction_time = 200 + category = list("Clarke") + +/datum/design/clarke_head + name = "Exosuit Head (\"Clarke\")" + id = "clarke_head" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/clarke_head + materials = list(/datum/material/iron=6000,/datum/material/glass = 10000) + construction_time = 100 + category = list("Clarke") + +/datum/design/clarke_left_arm + name = "Exosuit Left Arm (\"Clarke\")" + id = "clarke_left_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/clarke_left_arm + materials = list(/datum/material/iron=15000) + construction_time = 150 + category = list("Clarke") + +/datum/design/clarke_right_arm + name = "Exosuit Right Arm (\"Clarke\")" + id = "clarke_right_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/clarke_right_arm + materials = list(/datum/material/iron=15000) + construction_time = 150 + category = list("Clarke") + //Exosuit Equipment /datum/design/ripleyupgrade name = "Ripley MK-1 to MK-II conversion kit" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 071733a8322..e8c3fd325d9 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -33,7 +33,7 @@ starting_node = TRUE display_name = "Mechanical Exosuits" description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human." - design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "firefighter_chassis", "ripley_torso", "ripley_left_arm", + design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "ripley_torso", "ripley_left_arm", "ripley_right_arm", "ripley_left_leg", "ripley_right_leg", "ripley_main", "ripley_peri", "ripleyupgrade", "mech_hydraulic_clamp") /datum/techweb_node/mech_tools @@ -727,12 +727,21 @@ id = "mecha_odysseus" display_name = "EXOSUIT: Odysseus" description = "Odysseus exosuit designs" - prereq_ids = list("base") + prereq_ids = list("biotech") design_ids = list("odysseus_chassis", "odysseus_torso", "odysseus_head", "odysseus_left_arm", "odysseus_right_arm" ,"odysseus_left_leg", "odysseus_right_leg", "odysseus_main", "odysseus_peri") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 +/datum/techweb_node/clarke + id = "mecha_clarke" + display_name = "EXOSUIT: Clarke" + description = "Clarke exosuit designs" + prereq_ids = list("basic_mining") + design_ids = list("clarke_chassis", "clarke_torso", "clarke_head", "clarke_left_arm", "clarke_right_arm", "clarke_main", "clarke_peri") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + /datum/techweb_node/gygax id = "mech_gygax" display_name = "EXOSUIT: Gygax" diff --git a/icons/mecha/mech_construct.dmi b/icons/mecha/mech_construct.dmi index 6d48367f2a3be05f745cce2dffe21efced6ae54d..72ac12ddc97e64cb023a8506a2289ad6f0532dc5 100644 GIT binary patch literal 33517 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 literal 31441 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

    ?}eg7=E~T)4EWSH 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 diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index d7f0f3e05487beaa68496e7dd3a8bdcbaba78297..844d11be7d8b423fd2cecc05745ab610457ded8f 100644 GIT binary patch delta 21352 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 delta 18703 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 P2VTpo$d$b?4*3572tzZ| delta 5912 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 Hw+Q Date: Mon, 24 Feb 2020 23:48:17 +0100 Subject: [PATCH 031/115] we were so close to making it in 1 commit :cry: --- code/game/mecha/mecha_construction_paths.dm | 2 -- .../research/designs/mechfabricator_designs.dm | 12 +----------- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 0cf704b0ae7..10767773333 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -543,8 +543,6 @@ /obj/item/mecha_parts/part/clarke_torso, /obj/item/mecha_parts/part/clarke_left_arm, /obj/item/mecha_parts/part/clarke_right_arm, - /obj/item/mecha_parts/part/clarke_left_leg, - /obj/item/mecha_parts/part/clarke_right_leg, /obj/item/mecha_parts/part/clarke_head ) diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 44b6061dba1..214b1690cfa 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -72,16 +72,6 @@ construction_time = 100 category = list("Ripley") -//firefighter subtype -/datum/design/firefighter_chassis - name = "Exosuit Chassis (APLU \"Firefighter\")" - id = "firefighter_chassis" - build_type = MECHFAB - build_path = /obj/item/mecha_parts/chassis/firefighter - materials = list(/datum/material/iron=20000) - construction_time = 100 - category = list("Firefighter") - /datum/design/ripley_torso name = "Exosuit Torso (APLU \"Ripley\")" id = "ripley_torso" @@ -490,7 +480,7 @@ id = "clarke_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/clarke_torso - materials = materials = list(/datum/material/iron=20000,/datum/material/glass = 7500) + materials = list(/datum/material/iron=20000,/datum/material/glass = 7500) construction_time = 200 category = list("Clarke") From 6d6dd384b9fc45b32bfc98f87055dd12b9b74b3b Mon Sep 17 00:00:00 2001 From: Fikou Date: Mon, 24 Feb 2020 23:49:06 +0100 Subject: [PATCH 032/115] clarke --- _maps/RandomRuins/SpaceRuins/mechtransport.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm index 53e5b229578..778809373dc 100644 --- a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm +++ b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm @@ -89,7 +89,7 @@ /turf/open/floor/mineral/titanium/yellow/airless, /area/ruin/space/has_grav/powered/mechtransport) "x" = ( -/obj/structure/mecha_wreckage/ripley/firefighter, +/obj/structure/mecha_wreckage/clarke, /turf/open/floor/mineral/titanium/yellow/airless, /area/ruin/space/has_grav/powered/mechtransport) "y" = ( From 6590005288bd1057d70dad48c37d5b9943b0b031 Mon Sep 17 00:00:00 2001 From: Fikou Date: Mon, 24 Feb 2020 23:50:21 +0100 Subject: [PATCH 033/115] clarke --- _maps/RandomZLevels/spacebattle.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index eadb2d9ae34..7e77f9481eb 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -819,7 +819,7 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) "dL" = ( -/obj/mecha/working/ripley/firefighter{ +/obj/mecha/working/clarke{ ruin_mecha = 1 }, /turf/open/floor/plating, From 12510e88fdd96d961315c3c2fa6439fc9d1c7dc7 Mon Sep 17 00:00:00 2001 From: Fikou Date: Tue, 25 Feb 2020 00:57:59 +0100 Subject: [PATCH 034/115] de final kontdown --- code/game/mecha/working/ripley.dm | 48 --------------------------- code/game/mecha/working/working.dm | 50 ++++++++++++++++++++++++++++- code/game/objects/items/toys.dm | 44 +++++++++++++------------ icons/mecha/mech_construct.dmi | Bin 33517 -> 33632 bytes icons/mecha/mech_construction.dmi | Bin 21856 -> 21644 bytes icons/obj/toy.dmi | Bin 34092 -> 34757 bytes 6 files changed, 73 insertions(+), 69 deletions(-) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 70deef8a610..5b6b44b2fa1 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -123,42 +123,6 @@ var/obj/item/mecha_parts/mecha_equipment/mining_scanner/scanner = new scanner.attach(src) -/obj/mecha/working/ripley/Exit(atom/movable/O) - if(O in cargo) - return 0 - return ..() - -/obj/mecha/working/ripley/Topic(href, href_list) - ..() - if(href_list["drop_from_cargo"]) - var/obj/O = locate(href_list["drop_from_cargo"]) in cargo - if(O) - occupant_message("You unload [O].") - O.forceMove(drop_location()) - cargo -= O - log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]", LOG_MECHA) - return - - -/obj/mecha/working/ripley/contents_explosion(severity, target) - for(var/X in cargo) - var/obj/O = X - if(prob(30/severity)) - cargo -= O - O.forceMove(drop_location()) - . = ..() - -/obj/mecha/working/ripley/get_stats_part() - var/output = ..() - output += "Cargo Compartment Contents:

    " - if(cargo.len) - for(var/obj/O in cargo) - output += "Unload : [O]
    " - else - output += "Nothing" - output += "
    " - return output - /obj/mecha/working/ripley/proc/update_pressure() var/turf/T = get_turf(loc) @@ -170,15 +134,3 @@ step_in = slow_pressure_step_in for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) drill.equip_cooldown = initial(drill.equip_cooldown) - -/obj/mecha/working/ripley/relay_container_resist(mob/living/user, obj/O) - to_chat(user, "You lean on the back of [O] and start pushing so it falls out of [src].") - if(do_after(user, 300, target = O)) - if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src ) - return - to_chat(user, "You successfully pushed [O] out of [src]!") - O.forceMove(drop_location()) - cargo -= O - else - if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. - to_chat(user, "You fail to push [O] out of [src]!") diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index 603d528871e..454937998f3 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -21,4 +21,52 @@ A.forceMove(drop_location()) step_rand(A) cargo.Cut() - return ..() \ No newline at end of file + return ..() + +/obj/mecha/working/Exit(atom/movable/O) + if(O in cargo) + return 0 + return ..() + +/obj/mecha/working/Topic(href, href_list) + ..() + if(href_list["drop_from_cargo"]) + var/obj/O = locate(href_list["drop_from_cargo"]) in cargo + if(O) + occupant_message("You unload [O].") + O.forceMove(drop_location()) + cargo -= O + log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]", LOG_MECHA) + return + + +/obj/mecha/working/contents_explosion(severity, target) + for(var/X in cargo) + var/obj/O = X + if(prob(30/severity)) + cargo -= O + O.forceMove(drop_location()) + . = ..() + +/obj/mecha/working/get_stats_part() + var/output = ..() + output += "Cargo Compartment Contents:
    " + if(cargo.len) + for(var/obj/O in cargo) + output += "Unload : [O]
    " + else + output += "Nothing" + output += "
    " + return output + +/obj/mecha/working/relay_container_resist(mob/living/user, obj/O) + to_chat(user, "You lean on the back of [O] and start pushing so it falls out of [src].") + if(do_after(user, 300, target = O)) + if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src ) + return + to_chat(user, "You successfully pushed [O] out of [src]!") + O.forceMove(drop_location()) + cargo -= O + else + if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. + to_chat(user, "You fail to push [O] out of [src]!") diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index f370143e489..90ac25ddd63 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -503,64 +503,68 @@ /obj/item/toy/prize/ripley name = "toy Ripley" - desc = "Mini-Mecha action figure! Collect them all! 1/12." + desc = "Mini-Mecha action figure! Collect them all! 1/13." /obj/item/toy/prize/fireripley name = "toy firefighting Ripley" - desc = "Mini-Mecha action figure! Collect them all! 2/12." + desc = "Mini-Mecha action figure! Collect them all! 2/13." icon_state = "fireripleytoy" /obj/item/toy/prize/deathripley name = "toy deathsquad Ripley" - desc = "Mini-Mecha action figure! Collect them all! 3/12." + desc = "Mini-Mecha action figure! Collect them all! 3/13." icon_state = "deathripleytoy" /obj/item/toy/prize/gygax name = "toy Gygax" - desc = "Mini-Mecha action figure! Collect them all! 4/12." + desc = "Mini-Mecha action figure! Collect them all! 4/13." icon_state = "gygaxtoy" /obj/item/toy/prize/durand name = "toy Durand" - desc = "Mini-Mecha action figure! Collect them all! 5/12." - icon_state = "durandprize" + desc = "Mini-Mecha action figure! Collect them all! 5/13." + icon_state = "durandtoy" /obj/item/toy/prize/honk name = "toy H.O.N.K." - desc = "Mini-Mecha action figure! Collect them all! 6/12." - icon_state = "honkprize" + desc = "Mini-Mecha action figure! Collect them all! 6/13." + icon_state = "honktoy" /obj/item/toy/prize/marauder name = "toy Marauder" - desc = "Mini-Mecha action figure! Collect them all! 7/12." - icon_state = "marauderprize" + desc = "Mini-Mecha action figure! Collect them all! 7/13." + icon_state = "maraudertoy" /obj/item/toy/prize/seraph name = "toy Seraph" - desc = "Mini-Mecha action figure! Collect them all! 8/12." - icon_state = "seraphprize" + desc = "Mini-Mecha action figure! Collect them all! 8/13." + icon_state = "seraphtoy" /obj/item/toy/prize/mauler name = "toy Mauler" - desc = "Mini-Mecha action figure! Collect them all! 9/12." - icon_state = "maulerprize" + desc = "Mini-Mecha action figure! Collect them all! 9/13." + icon_state = "maulertoy" /obj/item/toy/prize/odysseus name = "toy Odysseus" - desc = "Mini-Mecha action figure! Collect them all! 10/12." - icon_state = "odysseusprize" + desc = "Mini-Mecha action figure! Collect them all! 10/13." + icon_state = "odysseustoy" /obj/item/toy/prize/phazon name = "toy Phazon" - desc = "Mini-Mecha action figure! Collect them all! 11/12." - icon_state = "phazonprize" + desc = "Mini-Mecha action figure! Collect them all! 11/13." + icon_state = "phazontoy" /obj/item/toy/prize/reticence name = "toy Reticence" - desc = "Mini-Mecha action figure! Collect them all! 12/12." - icon_state = "reticenceprize" + desc = "Mini-Mecha action figure! Collect them all! 12/13." + icon_state = "reticencetoy" quiet = 1 +/obj/item/toy/prize/clarke + name = "toy Clarke" + desc = "Mini-Mecha action figure! Collect them all! 13/13." + icon_state = "clarketoy" /obj/item/toy/talking name = "talking action figure" diff --git a/icons/mecha/mech_construct.dmi b/icons/mecha/mech_construct.dmi index 72ac12ddc97e64cb023a8506a2289ad6f0532dc5..8d52a71006e24a5cadec7ee41a2ff1ecc110bbec 100644 GIT binary patch delta 12553 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 YJw6u-2VZ0rAmE>zl#*nbxRL+=1HV#dtpET3 delta 12438 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¡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

    U}fBU?*Lr}S?aV+ z_*U*Mn?ZxWxeIQW^2R)_2m$@^{p^CL>-m+me^AhBu8zyuE@KD-0f34()~%H(1f$b) zwqpaK)KotS>=$;I?Uta+Y;Syw^ri5+8DVP!s^lMl|G1tGRr!e~E>pSzXPA<%206_L zWmXfsmE>;34si->Cu4KCdd);og(7x=NrSk=Q!bNvwebxP3<_s9!z|KTCET3uQJj3 zNc2-lr#JU+D(|UD_=clmTNfq>9gU9hEg33|C8`1b5h-Lv5HE^x>TA7QglOJGf=8lPm7;Pf4@nH&ykyjAofi@W;We$q2vvoC5qLO(_)YY3)ISizdBkU;N~5x zzoTFQvuFLVA~N>-x0HS55n`Dr44BTZb71PbOl=zfZc%cgF;dBQK+<~C`AX~c)23)M zBS>1?X171z%yRP}B0zr8yq*s!tlh;J^P@-BrdGl9YsK4<#KSh`HWx<+`#FFFdfET& z@)-FIy(9+eJ5FeKG^y>wjoeyFHVlx~$mvGODY{m2haM8nJD?K+o|@#}(j7RyYSiAF zuPFLZa_ZD|pED`B%v7)UWgTE1`ZkgX^cNywbb zIi)5=g}m{q)FkX;!(#{;B1Rqv0M-hbGgpP=8do{`^KoUVRd7UPTXJQ0fUorz5VlFG z7S=?;uYK!E7cO90eH}4E=YwehTKfD`$G~5)cm?Zy*Nj)qhgi?W?I{FmP8z}|!v4#y z4mCQl2-ZvEeXK zIscO~4$O{8`JooY)%{?1#wrV8kVv=4+DD8L7UAszriR90w*{-~fWcGo{a_k9Q&luX zpNZo>Uuyh~N0g5+@IF$e=+b4J)cps0kf;w3B?Vp)5OQfuk4RIaze}O~E{pN_(K-#e zY74=-I06On^~i4s64I>&Rre+v-q{Oo)|PK{Ea>aUxe@Cms}lRGpU_d?r4TRqqzC3{ zG!P+_2%KWZ((^_b1+jX?g;*+|y7hMvy9sY4#cHowQPT`m+eIQT z{+K#HU6_ZO3?w4J){gTo=tavBUqe6$v7uJ?)a_fwU;b@)K#~~T;jj3L{!*ICJ)s;VHqDRi zr6u?AfpN%IGBG&SMC88cMhnAal2$wN5}!e}~8Z zu*_LAXW*s-@HYp5R3Zifu|L6pE}rkhUxy)^&ft-+u4bp=jq97UssCB?LPtsCUi5hG zZR+%5#5#WhBc4A2*e=%KaA|df{DHHIE$rtn#4jWwUu3Pvj9ygPn6}~S==c|L6{XiR zz}g`YNchuTf^EHi6vW&oHk~LcNbrn)^EZ&tXLR{)LG^k6EZ!$kNDPGVpqGHEOpF!0 zHJ3@&Ip-z_F_w_W)^pBkK;fN-HO{+7sB*Bw)lruVS)jkMeW*#$5s34Bt#M3iLNG)- zl8HZuwOZ_d%6LP6H!LT`cw#Gj&JOWrV+M-|nxH0fbif9; O29c9ik}8of_Wds??j?Hw diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index 844d11be7d8b423fd2cecc05745ab610457ded8f..558e06be01f9fea1dae994c24c872f0cc7a78d62 100644 GIT binary patch literal 21644 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 Gj{GlHtR&?C delta 21455 zcmZ6y1z1!;+c!>wqzX!dsE9O3$Fd*_A}t+D2#9ny>_HF^DV0)c2?YhDyOxlS1rh0v zr59LgVcGrG=X>6Nyw|m7&Y9UcGjq>9=bqmk6aRyFshF5IR!>Krj+%{{h=_0oSaQ8kUT)lrP$uyE+(d8;i;!?Da*t~2htOZ?{oNG zQXLW!FCznf?HUjhpYH1)ucf7>3BHLZA`%mmFfx1j^yyPpR@P)L5@9eL4%bw@86O|N zzP_&Y?x%TLGXMZWLPB^tq7)@b2n3RrmL@F=*3`C+crL}r$QY{e039KLuMgF*2lOIp zle0*;Za#S8tR0jqW+(dFed5wgJOSv2`EG%sEh{CjRWuHImn1A@Q0a~Tl(Sp3lE^_G^#OK-g10<={$XQ$4^fA+|yF)+Yv2r50;)dcuRiN4xt zGW*GJTBu+c(*#$v;53;iAFO^^=Q>k{zr$4BTX&&9djdDL0j9ESO=vB|c0pZAV!QXc z%2-dY6{Zgm`BCY;BTA*xdrwqLr58^$L8X@{me-q)uURnc#d$*yj|5(2&b#9?y7LTu z%paK-*G+qD7bLo5CAx4VlnB4fs(a@(bGOGSj-}{78Dx?>3sY32?_jPF$Jb1XsKcom zDZi<9=X8Ls)PJUZdyS!V1mEs_jl#G@tit@=o8d8%22V1iJxPNX8FKCAKx%1o;(l`K zL(ofgouNwE&82&$nW30J#CVS01?{Q*gEuyo}61l%xBNIPfcc5se z^8N18@}NrbweKF3KLm2iIKMW9=ldOebrh2U-J<&gR79HB%pXnpofs6^slT91x}Q`A zV$^WUc;-C$;==knE!AjQmA3IW~XovgG zpSwmo+rI;NPiy4To;$qwEdx(Ah&P|RYPx8hb@pK`vSU|Ybyj698n(}p{^T|Dq{oSr zkg>}W2}DTTek(w-J@=0&&woVK{UfT_|APSOgVM+b;|D3W^S@9kPczZ#s<=PIa~XO# z8(Iz*aQn&Qs}>?y!S6`JieJlFcaSwCLVzC`GRruemyfu{q|NO@-(aVkt!UCI%PQY% z=D24pY*Wc0%iW-7ON4NH(c?rJl(QAB(&gv*G8TXKJ?`M_#JuQ8VN5$*ZD;B0&ym6A znAvpjGdxkrM;*2!TYV-)W6oamZ;1)i$!GR-#Q3+d(S12V{`?)& z6E!#KeutkERlRQ6bF~4fHB}zfwLt+hy7%~;K7p5@@I?v4kc8-GR!=dahqg~{pcSnn z$Z{4HB@hyyxpN=3MRnx=5}NmxLIR8U(O_Hquh-Fx?0yrNjUZn#^u;AZtiH zrhhP|y!NxE*@($<1257z#zA+_@7Q*+=cCCf#w z!qd;tmllT~-D(tH%=N79xD%_QVw1eN_xf(tWv6=jWhFGzFy$7LNgk^NK;wlTW5zg@ z6*gxJ^n~Qq`|}v;x^#Efc%ZKK_LP@(9(D?9YFw+t3)6HaVP!v*OcYLH$zWPXgk;V& zF{~zDc$h2Xcud{wTj$b-I3R=)@^GAnq*{ih{K!}|3JgEGBGu7VK80LUN?U8@l8mYK zZq&N`-8--@U^n575r1HWzJ(QS{QlhE$XjYxHZQgjUPue-xaHv7G;|i_u&K0&+Z&A? z2t}CYFb=XEG8LF46e8kgDQ90RtrsO<9cLL=-j87-`kX(F4}f)&OoC87RZ-Q4bXwKqHJOd4cuck8mw<` zpvoOuba?Mvmh&t(Ze>{Zij4i@m8YYCNaE)a$S=vTO&}6QJzMR_!1ZAM5mQC6W?7w& z-{!n0welC7LiZzF3s{-e(rC63O;qDwMh8kTxMjEGU=@)HVzK`wSk}|P-tjDedvSDi z{u&7*gu?jqO>=KgsgBF5bLrIdD@e^8jR|ARVv>hMV@;f&f7QHCDt8R&{ti?Xu|ZuT zcK%+(0SI8}dD5^Adi&ZWI_I|+rG?NymtkWHteHV2&U=dmbR1~Hl3n-_N~Akkk>_!@ zSHkV+A?3h=E^SzQ_5fMpYFJ%AawS@+T|`u<%72qTdsq>7t~JE)tC_hXLGHH=5>8hb zqLMwYfd0iO5#o4t@+m1lX@mlWOj#JtTA#m>30$KQx{)M;!b*3epDlc)7Y`y4eI1Uk zE|r!rh-9}S`>f&rEs^Gu{Q$9NYnto)^fZ75s7D03q6e*g>RG1Ow}i}>F zlDICtWAaVF%h{$4U)D-r10)9=0^Hl@|V1$##bwIHau8jL+#P%Y?2F6pH0a-xf^ zjLm=2|2&I!b#hL=xLgR6pd|%r0#FOn(=(xTZLb{j!ihwK6|V~VIZddw=Q=Y#?dbg+ zj}Ww#$(_k1H|cbLT&qD-_O_LF!ol2=w-yy?Rl`7fe7+D?5OSt;_-g@ZEx61jA}0Af zjl8g$K5No}&^{*P2}+_G4G~ki&INtv1IaM%%L#$b&RJGcS^Z#||Mr4d^fq$ick_M# zXft{-AvY5$6KQoCBKH$Ka=I5u-^Ue0^my)$a?O#fA&=s|yqX)g{LcnLyJsI4yAR}J zqsW_rSDIOjI!Uk5~c`ceDTDtg(>G(7b|!Si~` zPZG;R$VOy&W%f94Q%=JpC3;~!4({?%sh)36AFV$R{9kSZ|1Y~27-}{wq~1{+^S>Kv z3zIeK?R>-5{>I*9d%bA;&&LI1ysH=a4om=TmwRwV4U{8%5Y~3HMfIp(^*`H1-d%Dl z-XT$y^0>3y5L>WHEWX>c8$3lfoluckm1!$FXr;3kGOZ}-L^o4UK^)P#qC|VW#*?mX z80gAFAn%6fG{3P~9A3anhT!k*Zk=@%Gs_+wJsxEq=p^(KS=7Wy>9s39_tuM4%`s|k zw)=L@h#%tQp^TzT{@n3g{81Hh{kSb@;&gAGlAXi1iZ%Yu?!(Fue%fLe&n!*PcLuGA zH|!U?lnzu*JI<;ZphU*E>T?#;n6Zh6z-kT%EIbzAj!aZnFgxRu~+CRF*DdX$azky5N`K;Q%`vFg|O)XMKgyXclc*sS+Y$JkScK~L&#AGJgE|O zxxnY7Xf6ui84if@byKdaa;}%H<-nzlrp&HK-kQv#oiNC5EKB-rq97Bmf8mS-3gw<# z@3mNReJf9F`5R0UV)`@sBdc5O!C}4gpRSzO6Q5dfhOPS?Yq^eBOAMVd$m_j3$(GmF zVA@sZ*qV_r=i=~bT@^&nF&!0=Fo~gA{Ft!(OVKMqOJzr}7@LE=haO%Q8onrGG-Y1V~VNhR5>Q z{+yn^x^#53i0>rl+-uj$p9Gi!lEKg4oQuyqTvF4YySU$bk%gXoUZaN5?-Z|(E>=~l z+G?RF_&AePjUg3#^kp9Zi}BLYw#C~f=PHn{N2K;iIi8GSg>Sn7{-q157tL<^B)gfp5FwEhMVxp+y;Y5rXhs($$H1rkTD%5Qf z8TgqWMUwCn~olEQx0E-m7wjp@`1FVFU78Dwhz?m~-mw0)6M zApZ|-Q;WS^Ba@X@E!ztVhavkI7t@Cl(}ydb0Ms^r{EJIb>5grY#H7x&Sf`F-S$36E zG^j$wf9d>a!AcgWvVCi_LVx(CfOF!T&v_KLbA>wiZMqruSab6gQtRT2Asr&+!E7Q8(Bs(>AIe=Q4SYzh&``*;L_Y$^|W0#O%dV z+gQNn>pfmk_{U4d6G1y>c83U(rMe6?%k8@vciBROqXk@Vf@vZtj_zKXJ;cRxw38t~ zz_1t8`IU1>Gq$rX(LiZ8a?bDl9T?dWc~R&TWg|P2iqf?;8XZgpgSQNSMCi>;#g#|o z--hP-Qw$WIyiV)j*(YK+AeQZ`G~-v&php0~O{P6Wwt0O6-CIt;gQvyLDP9 zF)p+9Ce$l)PI*;fAvTxOYa_2tM}~&tC~{!Ho4YjUO4DcLAUmRe0yQ;zmS&-)vLeh; z4DRV@aJumd{UuDI^g)YScVZ~p#)eNP^7~XQ5(bZ^l0wY(3Xg+Fu{(G7VPT4q}6SVHv6msHqkDymUd#eVXY}C9-RkSPNzV%glDP7p-}c^)6!S=*3kd}y zLY5Gh+}1B~Ul4~^l_X`gaQFt=6E|CUP`sKD?YSMkX|$ju-LMzHKIcEfK#?le8EQ;@ zhXeKf(b`k4j(kKb(2KO^BR`^KJVF?1`wt`8a!`g2CPvekB9lRk$C|4_P_0r-;-DyY zMYNsy=i`YiDw}bNdN&K%vcGZu<4#MeF$~-|7Oqv?vglQpHO}EYy0;-oWj!yKxg(B8 zcYr${0X7ILv!!w{!Q7tfnHRQPgL?s}LT{?v18Z!Q^;9s1?! zx2PQvfJyg+Wb8It-4~?*i34KNcrD&Z!$~P~{XDzp7?+GlJ)h5$CI$_&mtrw*2w<8EU@I32YBSW>qeU2S%VUKKFkQC0mJQJpgQnSQ|Ez;XHuD`To0_!$wh_&R5*t?VJ-1h+8E(KjR<_pTeD)Y+W zg?`t@beD`-`LRDNyQ+{`j!ko1Cjy21`k~{GIjbKetWE%IFySvEl4DXZ-&zN)4w0Jq zM%1%`8l!zfxoH=}0K`-Fg>`_Ylc8W-d(Y8$3z1sWALY#1k}(l-vAV0NWmN)84(T5_BT@EDms=67ImFH9H!?-2)t-V^Y~k?!7`>urTBoj176R;lWr z^T;dEQA)l0zR!wzQ1>b#2X<#ipF7GQu{z z;zF;gC=e^DV9$E=umAkVEyGkkC0G&vJSE4YoBAKu4AJ067v)cGwLT3d`8YUAISrWM z(J1L=4@p3*gl`?@w^4i>>D;I|s$?#LTFAB2x#j#Y`qL~8GcPN0HE{ow2>GM2hS z;GJJmQp>nv=_#eAkb*?!^25{E0d6gC&}I`sC1TgdycxqdW;e2-{#!!_^kIfi01)dx z$=!j z6T$jtb40zmy`CHx8gpLWZt?_Y z!*23+$9B>|rqewz=M=qj7c#(|0uli9PE`i*J3crYW7HkECaj` z=ie+of12cNMUXDv4dV&Y<@s;qINfvTLT-o_&gRojaLtZNzt zn=Wj-5|ZK7i7nIy_OBx`a0LPbM4E+t=5FZE)+yv&r=&+y`V4XJMmt_&n{075J=l)j z91MDgz<#qM%Ic86i1M8PoE7{Z0sg%MwA_I75Vuw;H0@7Y6EZl3J%>Geo$>)j4Dci( zktM?TF*NVw?C84(y3?XbFF%0$TCg3@CP9-0a|d$=&5xEaL6Q4_(-CE|<)q(q-ey3T zn0?Gj1D1$V0qijfvLN(f^4hHXeB&RfvqDe(=spiplTw}W~TcYu2!ME>k{T-s^Ehi)UITV-`| z)=B_3B5-mTu)%#XV|MIx>ZWg+mkJ>9q`kW-R3Shf&Z*$F@=H8A&+E3SpFqEE=XQTC z`uUbq7h}Cn*a`*-_8K^HZbBA2ICa);ULx01fL9b~#L#y{Z}QxJhJstzg(O8{T0xPn zCb6fnZq8TS)3DvOe)_qKH9qi()6O3>!s0KVC+P+7)&Yda^6!kp2><+~><9@xQ$~s&h7bWKWKcD?P&#v)?x4s(#f`JJ*>0Mr01d{wY#AVV$z9B*u;H z&*L{4Yn;Og#ys3?$C)^e=3~e}Xh*@Begj`+4HEq`mG(zjO)p$_j zW=IF5vSoY$CJ0|AW@G8F%<3@-SQIJ z25Yco=hoN37^fBVAqPXKl9h1`h->#0sQ7JWlRD|w_0vGK>4b9;6Z+6i!ki}v&8 zw?5BxJ(86sq9?*J)4*Z!QL01_+XKqqG_4CXWUQi+yuYC^Zn6uq8jSUb$CrRAnUdys zQ}WRr-be#dJ=Jy*B$JX;Lr2w|@-*b0iM3v%%h>(`Jfv(523Ny1p2Erlc7JWziCy8` zH&tL!U6$A>Cvk-4Q8J$njP|mBoJo1^wJr18`oAWimD@*X0XjD+J0uMB?d4IaozS)OsefOX9@!Va#hViq6mWjrkJO;)g-g zjSthcvL>}H__qAdpB-Nb_^N4+fEiCTU`gpC;Il?Vt(W|ppp+L~m%C(G zbe3ENJI+eHWDKNUWpeBKL#vmOdqd?pfu{QbM&4BEg%^;Md6*@79$Y;Mdn9;ELI58> z$rnaoWl?elpAJXY_`?c@x9h7c;RQNUn!fUv-YfQ_+0M~)L?N6U!=pNV)5MQ&(DUe! zI(VfvQ*;Eyqh4JO@O#MSuWL%r zx~py7rAo0EvDO5^m+cEgF_64we%l%oa9wEpj&gs8QSHxhap4Ud`#}qO@+R0iX~Zr^ z*6VmO5Vp*ToJ^FT5UPcxTz%aMy#5w5{?@P96$DV9$?E}cTW{?0z=~9#$-`(b)^Y>k z=vkJWX2swYNmx)bzI8iZ2VKv6E~qR9n+c=d(Dl7Z9Wu!82(ACpx`=V3MW}Lvg4n`h zIl*2lvUA~a+od|qcNC-E=(76*sH)fGx~~J9zYp&QA#3bkjUROu2OO z;K&HN1E8h))w0^I;d=?8%&E)l#c0vBN1^1*YANnSiP@edTTu(I!4I(aF&YTn9M2NW zgCX{Ixgd{2iY4}gjR5CGf=T42k~M-={%E@1XVoy-?$*cv2prZ)09e7GXnGz*97W)Q zckz=*SNC4EAvr*}17o>=pQw%Mtqfm_pg9=~NV}@Rl4|H^wMz^uUI^TPsYFB^Zj zNPgm|JYbNZ$ZC3)Q_6GEE*&QGCBf3JB>x5y#|LcR3T5dHdDq=b^n%pEKh@F&nE|Xf z_CR*>1ykDWgSRwa83r57CYcQGVtuE@QS!P)yGL-@pd;&ZPM1Us$vaB$GN0}_Xv}&?6U}#ozgXe-q-ZO99SB!Xk`ET+2qsp1n;`kv+Z8<#c zdnYirX!ZC+ZV|vqZ+kb~^ZKP<1{KGxAqZKYAC|Z`>GG;!X9Z&c{N*1bT4*{_4uqj+ z6IZ$$u7|H$5hd9Xls7LTcGCs&ZFhgJu`0i>J8_ymQ-?41u`W zc7?)0DI0I&8&<#@l5#Cn)8a`kJ5=UA>OOeSIx!J9n0FcGUS=v}oLhJ|i&{@kCVjyV zzM~?8b#GWW!`5k|=oVO^w`L{|shQaF_bfJK6k!A`jkmQ$r`gTwr8OC&53^r~9T+A>hNAR$(U`K>9BoCJ*@nJ|hbG zaaYFkTY!kw_da1@Z`sq;=Jm|)Im>IAjW4RC*DmI=xR5<_SvQUei=XRe{c}23Tk7jI z9tHMpef;6#I>g6~p8{|*q$r~!0pA;Q{izj^M!AuO{UugV+xAFIjC=qDSw=a()*MwZ@ z`gae=0ed{&yF9+(ao)Uqy^%}GNVwYr(PcpK=O2qA3G&D+eBBq0BC77+Y7pi!^=6*A z50FXE(@u+*{#w=J9rzuq(p$(17TH4+sVU!_=268UQml2>f7 zLfLYXS9J8)w#;TZRc%ht=e8kJF!E}|V|Lf7eelFBP1Iq@Z2@UC`tRi&t5b1?>4fkxhNXP3Nh@9-+YAVMO(`-3* zj0y6yA>ii{PJeSP6;GuveG!I(v>4CfUp49p9G%gbpt3k%Mx9eY+e0A_PoXau12st+*_E z)dC>q`v0LX$5&$D;nU{qzvA?xKTFX_gsT1MG6l`(wAf<}5fEwMl0n7j^CgUfuhDv0 zp37Q?u0CDx8VVJsfN?AY|3h9y)6n|y3)XiGzG5y=oFcfvmRSMJaM>?`zMdzck;w2- z4y7jkh};5rdgJa=O1Hsggv){UM1#w-;zgs<6ifCyMgIm4yt+V-@8-_(b6%&R0RK-g zK|y4;3zVztm_1ZiE{V9)N*Y)|IjSZm;XCi{$xi)A^D?c|(tjgt<(Z>mVu^14ySE5~ zSrloRc48b&2g~~_Y_BQ&E%c;iNYot30>GLI-PLg7^=c&I;06sBngse6bxwBMj0Oj> zH-N=BR;;59D&F6UTe+qriObxCvmOvWyIhm(qBs3mvrTun3UNkJBS}xZnouX=JyA|7 z2dq7=qC4A;JUIFoOKo_V9~i-qgx|RR9)<|RIBv{kv8KabA%>^38>8l96JG=9iU`p4 zmB-D4LA$=jeTa*BIf^AE(j4N3u(HRQ=76lO5&=^<3#y~b zX(urZDyVU9EY6N(wHdma@In5Og*`jyxBr*qBC`k`!+o6=VyP1)F;vNE7|nFC@WVug z%DSnSj1F@E8QA(^D3?t85t)ndUnWP5)nq6v-aFOOZKnb$z*KX3w%Fs(dv02V+Wzx1 z6g^pr_VwPS&9P|wRdg-A;z_C_p)sAzI|(dKcY4kP^pURl5Kl#uZU{)-v3Ta9k=TdB z=>RK1K>uGF7-$I7*11Q|Q6T1#-EEK~SzW+G1LUkJ(u|WSy^i$@CW&Jr3O&DfPm;2e zuXYpE5i`?@l~BA$eeO#eKcw4LVDaNgZ^N-WM4l!_R(1qqEfTTH&apOPRrQwATIc2n zOgTaOz|G@~YLTALR2v%6ue5d6PuYvHZ0`pbY<8~|>HEriPl^7<=)CLa758X)!Z&pA z4WOj8X;IM4wR|O+$Q8t#kZ;zw3q&wf6Xs2={CbBL@hh5=Z-;B^8+$K0?99HS#OcNTt8|(wq8fQRn*h+C0v);&&DKRlNwy`#Tv)9 zsJ}u#4$t{}3p#4G1_L+rF>DWv&hz2{#AM{v$~TG5`IDM`5V2)kNCd+VwEjEZV7*E7 zn9BHX~@I;YnCx)@>+LA%v8WA3?>)N7=g8|P7BEJ z+Zfgsm~Uyd$~f&4ar|70#P^L}%0gR)VLc zPpq1BXg0OuZv_#P4P-glWYdN~dDN@1nK^48ODlE`gaWWP^rhOdv>Ms{5REmX5g7Rz zU^$h4Mp6{;>E&j_S~lDtpb%A62*G{&jD$o`4QrY}_~b-POn>&2oli#Z3lVVhScxij z03vS`J-L_jC7qN7b^hJ@*EoZy)yK({ybv06g4PvpQD?vxt0hY5X6roOrj(xbMGhkv zoNukDva#`H0nceif|{3mVpI!%%XE*Q)#z+v2aTG7Oi+g_Qd$(4%DzlpY-+0VHlp?R zysF0%w@~{DcG{k7Pkbk;>SS)ydl#!LJ-MRD52lOkVGA916BGTM{r__gyDj_owhi4; z7LzafMt-AdAnmGcn zH_8AR-~EQ0%W7RqiGnxWrM3QL{JS<11v!Ih?vlOffKr6f-2Ihi!Pzi%q-kxlOT(+b zUARit>m$5$Oe+oz5y!iV#trG(oja{;o@16fPBoV0$D_KOr|4c$#Y|LW4l&V}*w%j$ z<}g+``TMBHaorj?jKc?$-&;$vj;Q`f0<`Jqg>TF^-O6YPFK1)+pi?X6=R zL(F8sKg}In2XF6N)E#)+=(X2LHpFwZ{%8!MyjP`=49%-hqwo9gldr-Vpcrx zryjsoT%Z^&gZYfYY=m&U=8cR1mygDIVf7UYf!m%EB@eBqNBpaOxsC6V7ZCV z63?7i{+wh~=Bt$1I?vhtzU2>f4c>I}6U^}AZ=$wubDJTN0#2hhcXVi0JECMHO8fRQ z$MQUCy}arWgJAYDYl<7n8D5%SfuQ*t=whjdkASE>~@LL%UI5TZv(ij%(?2?Oc4Q?Qq#s3uxdyRbPWJUlWl4~QMO{804Pxd`*qs_^+nb&G%XyEt zG170s*7a^k6SiI;=!ZVQ8t}+dFyUq+yYg}2?yw#-=l>hl;(j^5|4Uu1E!2Umv#x5+ z+|o(7YoPX{pfwlkAx2X)h<@i&b@l;6bV3pokE(bcbv1GZejlk;yjxZRkBl7tP&A_J zGTKKD18QWVWC}P=zm%z_)5`5iKw?B#y{8p)e#bd+wRp`{0V|k3ZC9b2U*22sHWlJ8H8Z|mWR&L}$`P|%!8b$E z{SK?pUvPx>T@J2c?@V|t6O}pUPE)Ud-nkCj!TZ}gRMu5BP!$Z$tPJ$QTj_5!?W5Bb z0iYjgFz%Y6t(^Jz40Gzyi&{S-Gt}1gTl%*R`qDvYf+;ah70hfgxXHhno5OWwK9dCb zG5;F*AfP&Xc5aXU>LR@y`}aifUYuyFp+)q!)8CqL_e{$0e{YF~AC44GrASO;Ny5fF zqM!eLY62;e(nc%tfi3g> z1pE8_fPQKu^VS0KY(rvMeE{kFYt)0L=><36W&^mAw?mMbld$UMMp5AgPy8St>=1+* z=sO9A|GMIZcX?L4rR2@J`prXSl56SR^AX}Fwfp{)0GJMu9c1;>T?otop5q@m?8;u@ zNcJFHF7jtPCh6s>;b|@gXp{00-HybnZh8;u(kjpkH?Go_ zGs1BWyIMbgq?;5%QD=q5RyoeL^_NE{DI+k{xoq8md#I5kJBNDKwtM4k-w7XHH>mkX zub9+l9@HLnUfInHBXs)&ao?D^H@D#)ux--TBAYLS&}|K^JqdwN0!i-Jm~7YHHt6yZjWSDc!YSFN+3rBU!~1y$;k0 z-W917w8SpN|5KZRe|ocu%#}OE{Au%ithF_l{uIjEPEPQj68BE$45Z z#-W>Wg|<`uMq2R3*3o!H%rY)@ASc+~D=RbnEEz7VIU^ULmqH`PQ07UJ}^K0a+zqXtsJj)kuZ)G*r{c$19I5KbWy4 zdrvPjMt@Jww;|S_#WufdSS^(N-ghl+einG@Gx)%j^VD>X_q2j5Mib&GH9$IvJ5vA^ zquQ#DC`}rzuOd^w6ZObje6YycGowUZps5LK)LCRBu>ekvj(=K z1j7&>JN0&!b3{?A>X&+=;mg)AJBF_&>s@7-vpfxqqY>OBGA9IQg&PU1ZT=mLWK*89 zP}_TarTGGCek;4v_$dRW*dn$yr-3nzSs{RebdEYs$M@M0XC;~y zo5JlOT)X=1<&i_Y_YY>BTGA~1Uw|<{T|_J=)>nVMho}mBZ&b)%XAh4z(1MGyiH>E zeV&gvowxGvB9B3Ex6Nxh>B*N69aQ838;qdFx5=a2=+s)TGZ!uStJH?!zQ`Zrn#YL+ zQ}de*1-zO6%phS-swg?cB?-Tix67^^IV6k&QXAp~n% zbk6X^cK|Elw;8!2xs{w<7?C4rZixFLeXQbTT)L##CH$DVl!+7~mZF$PA7+zfbV?Sc zdq*yxVE0u`@_9%JI%hu`CX7byOea+BR%#pSZgkF4=}liemtn#H*dRvfp;dx6{-NYu zycYXKuB_k-I>vb3#fLTjdEd`C-kU$-Y6KuOP-=k9RinPs$kCyMB#dy@pv>LP9HsL5$?N#Vo-+8_HgEW30s{ou?jkg=EU63 z^NziI(LVpm)r=Jb`o3;p1|1uE$U%wUx!9FF@QKF)7XHntG@|K=7 zt46QYRNm7Wld0dIuC|Y=c4RuCs15y06j6Hy}m1J9Yjas1V5$T)e=`OZ)+05+?1aa$`jQX z5wY$mY1xe6alT_7HGFmCP{(SiF$7*sM460mPImt9n>wNJ_vNGg+lLkE+|=*vnA)7} zuBui8r!0=L-Y23L;<-(HKK|^ChL}d(LXNw%a01H4lXtT>ww=GajChGo&tt0zp~MUc z4R_aJayz428S=snH~lw#wIgp^UQ_UGD*P8r%qed)UPx~8TY+QBeXd<3ruF@8^IFz2 z5gKdii%*{Cq!s$s(EzzCk1Kc4W>}Ny0~0Am1(CUrW2t~ z3v9ra`R*TuF$MhBhWbByLH3Nezcj_Bky8heK1lYdVCRpV8JJ3B`&p+0!H0KoEUN#_ zKEQ~{u%9O@BNUJ#{C+AF{1HAsw7ZKh&Berb-Iw(Ple!o_ai`)DRi@elVXnWXXAS;!oLqLd?#j z!(^9xpZnYSlzG}_;pXg_>ETKDw7?Hpp!>V`f;^uq521Mx>52ht?{xKYqrQi|u3B+v zZ-LM>rOntfccT#*Ryea{BrF!f(kRl*<*(|0Z?|yw)s)-x-k%Y`eW6svqp3eFYn5Zs z?s3$xvy6E7lBRy!lYPnS`$@)?Q59jvtO*xu6uZ$bPLQ2GMl|B>f4$028n+r**Xxk} zlq1fv*IN3mDziV*?kib$5D8C9#p}AoW}(!Au(>h$q940PN|n7VyQyq0%U%xJ?5(>u z30S%igikXt^KtcdTUbc)5h6noUrN|*40n7W4P1NCp7&<7mtWP)5-b*3)8zyyI*)zM z`tld<>gWg_lbN|*t{m<@7kKM#?R^C>^R`_4%cD8lW_Yojz&W~xIHEU;_JQvi+vdMYFl)9E)%h(bpA%=2zs~z4!Cw-`A^{;`@3Jp>%7OON?qgli8g?XYCsU1m3frsId)KYuX zr_X@&61||b&Kj%MwR82wj^W`+7M(S>ru(e}G1)vZ&b|xEfx)B*y#&ibALH}b-8Kpi z(;{1e2N`l0$9wz8$wrJL>3)OYS0HR{*exCwW;^SC1X@erz3s^sd6A_SI#=_A1R7nh)7nN#{3zz@chlE0AmZL(b={~ z8o+%;$e(pgUZ$K9$NSF!nvfo57nY%PW|lS^pT;Fr2gFM_+a+7>O6xI>wef%J*(=v6 zw@u6Y!(J3?ct0%v{h_^ahQeB){nYFPs#M~VSW@M}V}iMw(18$SB)cnfq;7wh)XM|@ z=JKAPH`qtDa-m&Y#wtyL0tF=*p2Nufi74RsrT!*PKyycL+S2s3`@$o;wkwVAcgIY& zSh||8`(KyuDfRE4s1s4@5Z_s3Mtpbs$W3}u_Y_JiIddB$KI&?*)+^iWCfqAhD5byU$advz)+c z({cmYZKuKHmkFc1FZQDnfP+Z)R=;9ltfwUp(O^41xDkiQrg{0K+aUuYXL0_t2O;af zSQ|JQ$gnp>5C#;pTTK%DkD0j7GOF!+1!Q{^ee~n+iYi6+vit~Z+Hh8aFZP4cB44{d zrL;;;jZ8hlcBNyVkhe{#rwS#+-3A0KZ_}-n2|xm*k``eEm&w$KlDd2KWDC)9quwz> zd@>!|w$?QJI4a`xoyrZ5jt;-MeDT$x*-k>BMoTwCnS_(qoJsPUyWqLv6f_bgQrn%! zP>kMAKo-%pB656iGowBu47(4(Zj(#^myN7 z1KjFi%Sf2pCg_L|f2ssro#dTONg#_pmXrTap(<+BWzW)J%;;w;J_dizjaMBdRG$8%eMOO-z3 z^T1!?8G#GnC`1hJ`iKWC9EaLYM9tJ#b;btrZ{W7eG^93gcuW!=f!|5O`?QC^xX-RD zV3qktY9Fh_q47uRz_B$6<_*E&vr~!6AXu9fuO3~jpO)p9a5hrq{uUv)`y%)5hLdLE zrH|iY+oAu!jUDuk|A5K}z#iQ45BIYJ!O|$g;hNFv#!k`3K7xtm7$=W=)`P9dJDdDR zTq}H`726fO7%Y4UC7EBD*ec_(d!%N7rtE%;_^)~vJbUfAAe3D4q$jWuUGJ{5c(T*N?GkR9Z{-s3(J18xYnexBPdB`oxt`t=_0!{}=7%hT-)#@aySAXTjxK4h1p z2K5ep<$WwK0_=LUg99SFNsNlTu$~oiI4=!etZU}WZ@<9LoJKH#6*XlcW$KN~jW^Z{ zkp%Nt&g>_P`bjGwY>$qrXMQ$7T-lRUC4|()!=isA-RE4V9eGXxrC(${&jJ(41-F`J z<&;UB%Cr)72xR7n+}?4To9@i?ZL8@7$CTaKmiL4J{-E9HU9~Cg>EVjms@a^bg_|K$ z!aE|zr3ww!H8v-=Pbw^|7+O}(6y9*X6An#uGN^bx)%oTWF`jqt){ZMf$Zwj_WWBe9 z^F}@LVT#;PEa8l=)Zf?bGFW@=ze2&FJJWuxxgqrA^QdTjF~yjO<$!Ua&pE0c$IWic zu82Gvpqai`O18>&v{Y&*L1u}aJlQ!6s(#K18$W#79jf3)4W4m)Z)~(Bn_NB_H||F} z8W2o45k{*QW`5irXtMcpUK~#wO<68+UM$Iya~}Oo00(79!mlr4=q=AIDbE%d7zmGq zcr&8^c|4vY`_JPv{oLss#TmhMM&Fz45*mKgL~bpqXNFFCyqX0u{mRLnIrE5qFpXcJ zqMN3auWUm6$@NcX?_dB!4`rvpg|&BONhr_oMb z)aBTub#E&lld*?c+UA?GMKw65XOwW&ZESO2A>jLZSr{%yUSeALkZtH>OtOsc{B^t0 z6l45O-^{P4|L2b2E zbGGy&L=Q$ROz|#(pv@B7$*7$%cPg3uc_w$YX5qQh#*>R}H^ojB)3#FzA?wJSTyxw3HBR^Oyew2HoIB3BQ3vAZ);6OY-aK8 zT2n2x1I=01Z5U;b0#|{#RL}Xhw5cIU+m{32$hv3f(@R|IbyFCyeei}p@-~~! zik{CcBt?k}kY><K#;rms)>~CjZ^WFH|Jt8qGZM<4X?%4kVVexcV(V1?~$Cd^`c|a#izCD*~kZWZ0H6Lz0 zz$D)d2!=Jt=B3sJqhZj8rjitO!9;7#56XBeM#>4)N8n*!vZ`J;>lu75&78fuWizs% z7#|{z_*g7vRFSx)UL^HWFPpOIQ~K+P-wT&@O6{|~X5{IoQ%@dNMra&B9IAUs=~Aay zs@DW@vu<#AQ$x~JV=svqighW3RKk&FMKR*lA(tfvwWH=2E{h=M>Q ze%X1L0Ki^)pRE+dZEU_)guD};-6}xQ1on$7)arbH>Qcb{pwX;t*bz&^UVYb1;C|dS z{>oJ@@EnLvNeQv7RbD!ID$lFn3ZX-1ty6KLb>0CjYE!EYM|zmFC%*dh1U+;_b}(ljPGs)J>dW4V`vMCFJ=VG9k}G%eG`0 zYIP*>t$=Cc&mM-Dw!erSt&n|M9S7AdY2^#%m*$gs54aD1Z|*njmf`#D6PG#W#y{{( z{waI-Z6`0X@$o;H?9YMmpz|u;pq(2&ykrzOOojB;^H&qcQ6 zdp#Mjk=@J(+VRwdW1Iu>uKeQ|d06-p-f?NbB3INVM9lGN+HvbOQQiM+`ubmG^yak+ zB-5_3;AuBqiegB2k5f*|aMQdGjK3q-S6y@!?<_2l)g>0F)cVy~yE4jH4UHmY7P}a?-`+8pvdR=nVWGDI4~$z_yz9A(Yx3U5&!=SOl*YjQ<>ukJt_y^i#}>i1!u{aTy6xCl*+5(A;h*YfxOUY$mR)EC44V0@UzSv5S~6&I^{Hwdo^>b zV)tOeyU%~Yug`eCX;pk{o?v{__EbOh4dj&W=tWEy6D^qLEy@&{I4?Wm^0M-7t{-r2 z!xEKYs^f02z-$bupAVRhUIGk^Q(PF2!lsDu){UXrCiG^KoEYF?jQJD>(Ft8lEZCPUe-75n(WNepls6{gS39)Wph<4z*B8RC>3@BLT_FZ)tcw_) z{v@&1b}|opa(7-9uny66Tp2dmK2?2PhmIN^v+SKE5<{Fa*ehFgZ@GKJu8P5~e9-w> zMFc2q{4;a<&!%(+qkedQ4%WV8bZ@4v`;YMXj^0dBL*{H0!BxmU&Y#HV{Zvq?&i4xy z`ri5Aa{BrZQ4M`KG%eMOPrQ9_J8k-{gmaW@bIMJpqazj1S3etGw>2I2IFGv;e*ito z%zPDDi1X>US>e)N)K}!U_QgL4@H9^cR)*r@h~`Cc3B+7BUd= zNY>$~8B~|O>5%TS;&L<7@SY*Lm@cFpy6w7T5`oF4HfZ$DcDtIcZE)eC&v6~HCsEOt zt8|X*xZS=y4abehU;9n;$DrYW;k~L<|2^xOuHAW{*ENwM(7xl6>HE_@L*XPM9lhG;}M{tG$x?HTUcKolVUU9 z3LIBBR`0BL2CxduHvwFS3tg7Rm;=FtgRy0ZI_J~b2{{cD zYzq4V_BX^It`u?3?!M(oVbd(2`uSsQHGB%tQ^Vsp){;*FAi-Ym$Y2M#7Gd{FsG2Nz zUoXy`^0-q@qb+9Lf6CU@g}~(~R}{08(Hgsz5(RAZ0zS zLic{h=odV~ALE2q_Lk1Uc0nJuL+0Ox9*RxN+=$6nYMH8Cx$b<)jsjBu-uv`{!Gaa} z4k~TgI~VYB{8HGh8yRai1)0*X&;(;4qq}VC@dF>`idMf7qi;2EO=!oQLOj!NF8jW| zxiszbwejk02IymkarvP8#|s(io}8ndf_YSmBAXpsN{;SDHitzsW2nMC<8~?J9AxpS ze=2H5Ev>BN`o^qkq85P_-1e3`DO?J$fC64ZMf<`U_Lj{pbAI;fD=C$UwTy*KFdKbG zb);|CU5ORUd&CyrV~V;Qf{RGA0;zSF2p9g#pcC?WT4Fjnjhkc6NVk?@jmCbsBf;N3 zwk&XP;liz*accDos2$rDzbNJocfRAP$o_DrqCT;_QvVabb`nQo{t8^F1{-UTHd8s_ z4!J95V3{*#wC(QDyxE5=OV*C$+kDVZ=sPP)&@u}d33W;&ICbr}bBbj)K6pP1b`=(I z7Na60Y9s92+OukTx8QQFk`c=7W`J;)Pp&=!z>(6xI9^_&#}Uk<)z$KLVP3F91$gO; zdRbiBM}D+((KuhGPNQ{bk8N!y^lojPM$EOeX_fX(H#xDskI1^cIo6cyU|A+Q{)#9G z9!-uC2ooe5Rs?;W(FE%?b@-Yn!TudL6Xb*1-6?cEU#8e@Q?re+4V$k=nNGr{0gI10 zZGE?Gwm5gwDjfk1en?PD@=bqaMW!DtZ)?VDNf48OG~`YdhwV!V`Gx$q(*Japcq$L) zY_@+)0qsoIk_rakxP=eYQ*%{Ci0MxG@dK*Zh}1lwFVzEX&;6H$DQmCsq%kJ()ovot zzTt6)aW%5h`Z@K0Tpn=p#bc~23w*2SkC!L($zkqqugl4m*g4b;OXw7egv=CsigxVI8jOz8l<)x^)9F4lLXuQ^$(tOG{fg%oP8N;07ap>}DtxiKUh>%u$ zNCy3gdf$5qk})|ixjcFNIu5~+6`l`B6jgoQ((_IJU{pl+RNThR9vdsVaio-WT$&Pe z;;%UReEp()%X2k?nbD0dNcE*@5P|TrOJsTT!%y`k&R}1DLem2#a32mg7wz+&8>`dn4+*^`=qMi=?QqSIC@HXAK9l&-_wi+R! zrKSH#pl2D2w$0P!&kQhs39}cRsN&Y*KLt^N150|(B-7|>35w&yW7DVOt>n@KUQ-I` z!tuS5f0s0X_+IIqqStpkX^M&G;gApLOTmj?>v7&uW8-@mnqhO0HFZSUBRAZh1Ur@= znXf(I+)66Y-T)tDJoP6A&J1?v|8~dE<#?P%0vZRf7)Qayb2{V0s@x7vC zW%fAqoqEHbzXdxBRx?HLJSuyRnm68FvFjOp>SKoKN`@h#j|L>fIkiKuoifQvxL( zWs-M)UN13PW!_kZD;_I9ADw2~%KS%A|6_we;tV6=^c>dnz0F-vjtOPL$|+VE;4Ey; z;x9}U@97!^#FY~Y>QTxf1(+_+w`znI^S7kC@_u`b?n+L+>CzP3)qY8#m^IzqwCVx* z7M3ZP1>RG>9M-d-4h%_ZL;_e50NjuCyvV|1v4JOUoj5H6HL6fq z-tgYWz~$g)<^MF3XdnNMa!=A7-3%!RXc86pk_GZ#`b%25b$*|C6gJ&s%4a%Kk_N~U zgq7zW$o7le<@>Y-40`@gY+=ezrEU|8gdPwJ4Q@%QI&?rTSVb@`AQ72}u5>ktKS+3_ zqkR0Tas*09j-^b0bojzl6=W_KVGj$hYQW=>7*aT0J2~VD+=OJ_@ShBICIIR_R<(yk zRIQN8|Aj3o85r0q!57}fv9h+yaQ2HO9Y$f}0G1$3g!Et_h0dPPCt1{j#jc;u>`aGs59U zwTepwYT(@32Gd)jf%L*hf($-Jap7NxEQ6XZKvmbN{{Oypr^$`i{8-ybQ+}pjlvEL^ zI`9>pbEuXTl6sd_j;&vK1ep0*{7i3wAo_9=hEon-T@+9PJN~--X2ZBEbB3bi{%Bxz qd3)6zz37^_)351#p6}+iz?`9&#WkHU@SRQw8*6kOT|CA$X7k5AH5WfZ!5>1$TEjxNAso2~Kc#4lcn7?iSn~4mM4m z=iZrj=AHk{hx>tFpRO*tt84GQ_S&neL*(V8(4P@K0{{U1owT?j0KhFj{-Gd&EuQ1h z?*Q<`-c4EELEO+@-_F#=!PMFc09;aXW(U8{N+c=#vbR3XmV|zrzenSeER8(D`HNb?YtIKPEqi^fh?*3V1z;ik<7Ms z7L7aJ_^Kj@mS;24*E#625EBYGkT_n~m1M_TjN`ose33%cSDL>k)>I+TCRaRu zw{UOGZzsOcMGbFxv?KihCr5kLKe0f_@$HM$JMi+Em94X#58&ve*XD%b9O86sUjcVL zibTP2d*r6pfx6q^30QN-pkJfYmIMIJZLJ{@1V7AO)b>dZlMI|#zmV~iYas~r+EXIX z6potzd18*N*AaSq)yeJJtl@t24PN|gx4_wo#jI7uFGjygQ`i#UVb~Pe-136K>>MU0@dBx*c z7S40%Zm4bE1O(s=W!o?XpuYb6e#LzD!yk%W>WhT47aqN?Aq#o8x^ANmIAU!EbS?zX za+{p!51Pt}USMn?E}^yHda&)u9Yq`wwT+p+gSBRn%_3p=Vk&ZfZx?-LtjHbT9)QD? zb5wLk{EE4uMdYI5n%JM&4gAq`PMmh!!`#zhuPvEp_o;VVMsCxtA$lw)Mcct6lPG#S z{YF56r1#9Qma7TxVktIA&G(61PFZw&BF<2b4Mo6**Zk%u;)%@V@r-G7;9#5D!26Zz z#0JqewaNyRJa0%G84R$ZaQKkHx4$bM!t?`QE0t~#@vJD1n0$CP$ivTxH2rXRXzg@= z#+5&-WA9GzU|Q$c?(JL(WHj!t6TwMP2h|OIC`2J%TDntumpL*q?sI zZ+2bVZ2d5>ZL^4zA(0fLR(HN>(>}X`nR*hn<2|%-iU#eJrhK2ayf951ayrFn? zhIG2AuGlNIB(Df>T`JIM+n~DjV)|B#5IrN;zu}kETh2P4p>jz}76`UD*K|ePj!81v zZ&AT+UD4D%d#@ZCuS1IT*m2g4+LxMHOAgHrylj} z0|XnUsSU20YRmiRPrHPbCzB9Ai}A^O@91=VTL1T7NFB%VJika}<`z^Wl`qzvc5iSU z&LG(-+aoQBvZT28q}5Qf93+?p@Ba2#ETT7Vj65d%K~Yj0A=`_GbZ%5kanPf;)I0I~ z5&@ldZ?3M#)wa{N_Nwt4WU0b2R^50)#2YVS;yS8CnD}fL=+?d?@G2GbbXAT@Pw#$! z|7bOdBL6(`3jmM<@5DuvT~hW^-BV=G?;mvL90}O$2#w|gMN{ZD2e2>2C#dvMEgTu3~hVdp-@fo$)Qz<1S?t=*1M8a;z3tfVuB{Fxxxmoi`Xlb>e z`LLG&S(NKuGgGBb`f!7X_U>JMQ4|#$8@B&*(ab2r{;Wdi=T+3OM4pg z9qHrQWi7FctQdK$N?ym5V8+hVwR6J;=tz<+x2Z;rMIvSRRQxt|Jt^GsOIx6fjuV*$O)}GDRj1D3HYr9tiHT zMW1l-%y~U-PgPPZA5oifpHpC}G!(VBJ4|QNibak_0LXG9={>Q~B058x+Uiv*%;VH< zg|HWJ==sRlmlXuI=0Oo@&{*IjH39_%)p;ldn}KhDIWFd)2AX2QPYsU>GE76ALej|=b{re@0ZkY%#?|IS#=;V$!wqL z*ieJk@08cZo4yBqbtDV8;8D=p*TiU^dx@(yuHJr=H}WOV7b82gEXUo+_a0-p6|q>+ zj}Jg6<`h>{d_lx%L2#Bn4S}6)W9h`N5G;?YwVW1|R4an+BbiMB`b;^E{ik{%`Y~PV z{y0XZTLBsM%q0O>-?0g&4tYDiE&I$k0mSL7D??TX@WU5RNwDQ>pr_TYhbPRE%+T+N zq#zr|6uOnahV7QJIv>mjf9x&O>-a`0;C98aQpLVJLSvnUN8_>e#Vh+A%M+~af)J!r z#QB(_AKBTjvLA}I8f&H=GzY;!#a_4x^KD5b1?tY}Atc(l5hTT22qTFW21fo7p-pix z9m_aSv2O6XJP0jHyK#C&iLjU+1D}2O--)>qmGbvxu(6|+U`1nzcSIeC-&GUc<8ECp{M-9CqeRIAu(UHKa&)**q5Fq{j zeS7B}*V>6S(&{K{tbj_|&M?A*U~mQ|yXrt*rs9ao-K41DiH`8j={L1Ez>}WnUG2!T;gk5~9&v#UAw&L8=)Y&;w2|iK3ZokxQ zP}f0J7UB7oPbbP6W+&)Ekw1rQL$!G+N!)P0-6wHG{#43)6Vt@U3tC8TGP$LwTd*`U zW&gexwoMBNufI`||MV%eK&3FVstO0NxjNG8?CSb{GX=gXyXo&Iz(}>Z+CVZFCNc(T zXBczS4?wtX0~H7f3Au6|qbYT~xjaDpYTZ3qtXb~3tBOX-jzSwriUt ztS6KSfp)TNS#fHgZFDY$2L_Y5oVOT>2Zau2Q6a_D``Gw;Y-z%qLp^}OYI>Hl-mUxo zfb@Im1j2wFN8buXA@!p7el7ZXL2JU{IhiRR<_K&ymN_tJFX(LT&3}maA#o?ft68Pj z)p5W2?&!d4dy+j>BNl{_0Rj#%udv(Zhdi2XyB0ifd9>0o-QY-nf3x%uH&J zrlWOrSnza~)9#Nn+U>p^(Au3fNwzAyK|dKp498`?IA891YGio2F&G+rHCJnG4MVp* z+hmy7uK2D&qPr_jSHjhVslGAED zj7#*lv-!+U%CB}#B(yqN0>60oV)vW#~uli;=m{Pa5-#pBCM~hm}t@L zb`Ah7hYMlt?V@6{Sz;8?*P))2#a?*b=7xOc&7&M6WG&w`4-1qLqVBJWQUu(exiioE z2`#S$SMRAK(z7&{#r-6+I5cMC7##mCxwgH%9m%nsQKd|r9?4-&X(@~*2H8=T(?dxn zEF;a5igL1;E)#*9R~dv->WU~RU_tL;=HrEGnDITS9l`f-?OTHKBil@+;JKWrI@}GjJJ5mqJ^nQbp%~T zo$X=Q)(VohT+H~5PNbXJvlJ5X;wZ83qOTArW}C9~Kk+22KX=kh<47EP`F5<_Xpl&% z!5XG)xINb^^s0waar4^4Q~zsANY zfYE1QXy`hLyBa+uSh0v&Jk>u_dL1Xx5+mNW+U|bXd|76*B0BFlr4@=xGk@1eR{q3l z3>>2x`#tSsDxrT}Cz6Q|*YlMvUQMcSNt^>8?e|ziED`cl%es`^x?!_6SqfBR!qViD z5kxrz3ilELa8aZJvv9&QWqJr^z!9e95qPHgF92_S?|_p76~|G-JVpEbcch9Yryig*HSRnv*nUER;lWLuG1Lqo#|rx1fu5S*0>$16&GE$zLwyfok^UJ_C*?OgXOu?4Wu4s9k@#Y6bQm?At#bE zg(@oHTZd@ZM%?Zf49}iDlb4tGM#X3PHmAL9f_rOf@JT$Tltr{!p_|K+=%`e)Q4$WK zd6(>#l(D?KYG403I4rE=V4*Q4I@%kIKDV?NRO|JdY4&xWnO+LG;ecQ-^02?uLIx({ zVTlohMLGjKyA`v%yga^6_tfI<_?p>)JqwGBb}rqSbcHO**GAtV3JQqD66WnY9|6)z zS!mHGaRnPNc?e(~fjH{Or$VT(&wy5bet*{xvrlHO)5=Us@9v2tY6+EWwh=pXQPuG{ zK0fAl-1)Yd$xf6=W41}hog~v69`xLDqN*iQy@J%&Lsp%FZztAsUp#B2<#N$I_ZviE zPIJAP$Nr_+mQ*lxogmygAUKj1!RER6UP2Vtt1?TALWwIgdp*FK3BYhYw4WH3d5adeOB{+Oxo{l z=G`n>)l|?#E`jC5@Tc%M51DV_G2;I87r@!nA_j^5&=WU0bC{Iu07i>CX~upW|h5Vl*G6RIdlAGHr|pY8@6|Ge|F~3b9KDN z=#KBeu88OH#6$RL-fiIs(r261mtUC+H$wcWNH8s^chZK0EPi#o284jLk8Q70AK3UT zaYs$=u-;Rco~6`{X71Aq#6SJ@u80uko86te3NA&Y<_L5v z`FUi@~&4rZuOra~h#udI%MlsV?$DPsRUicYxa#w9i(QKh(|8bJU+ z3HN%AvQc|Bz%>0ZF^0O~(~+()TfFvNI;yIC#BjfVbn(C(33t}}DJw!^Krn-4Gctgc zSimQf_+2nVuM0t#E~XZ*`a1B0e0lh4qJ{9iLy>G)i^G*Us;cwIGiqMd2eLsmGASdY z+&%W^qSEpV^vPYwbp{r0yWx_hp>s=ft?i!A)oUy?>MvE0v-atmGbWL?c6QIAF$_9) z^0{#C)cufTP$=M@(;OZOOc)8EJjr5YS)~BE@f+R?!`5&&vA@?vzDQJ&gw!N%#}?~g zWx!#JqENgDp5@ZR0)LF6p(lV8^*zHfT^a(T31sWje&7c6*n2Oe^X zHV!a+d2^vc>b6BOHq>!_y7_&4Tv_7o?)Lih z8Ia#XJlH{Ypo}-}f=vSPL`~IX?|M8h*>hnGT;c%KoSN`3A$3aI^O>)C?_qe4{lN3F zD*dD59y0m}B93tSyycP(Yfi-vrYK~;kC z4;m40!##Sfr?$a`SSgtP%7_97zv}DCrNn?%FchYRGWmcX+o2xA4c4m0K_{^k$M>P8 z`RUUrKpFieWcv851rGRraJZvUdp~6@I|dPCBxKaAdE#}0-spVTJ#IaP0KmAMg`VEq zU81X3xpS5E7}i~s{9OC)6BQ-VA84;|7?dSlpyjP`N!`FT$t1jj`TeMsWZ|f%t)t9j z$0cXt>Sv%CsQ$@c!%mAzCEksGpD2?qD+qqBT*P;N3i z=UgvjUXqC2C_e7Zzxfu?pSzMQ#s>ggkqO1&uB)$KPB&uL&bzhzu9VUgtJWMZ4*W!7 z-QDgtI6`SG1n7!Ha48gS57IGR5osNfbN<$C`lhK9E4_#X5i)(QWKiNSW4iT;CNe9|>W9_$oke}mSsT(pku z%%!70*>?$N%FoP5`7r?Q1?sLxj9lCr*Wu3dN1><+Y= zFBJc})V;e6k{xY1?k0|jjrD7~_1hY|F&bz(mIQ?RQ(iLY9CMUFVP^9#YZ24U#__LV z#)2NmwUDHM;e#zC95RVYWKv{c@8)usn@9(<76L=4;TuZGEZzX!1kQ$-8F1Jd>8KoH z$X#>@v%6hI1X`1(w0nMcq1v8&=PExtjMDA#ZY(RPdcwz))-#@LrO;h^+c&~z`{xH! zq!ejlcJ>k*yfCwc_9bJtOx<`lyZ%YP$x<~wNa_O($%fjJt>xI2AtT;`k*xaK@|~=U zM|YC^*JtX(7q6K=N^S1)QgCqKk_~GH6SAeTDMLUnhs2udvY25s=yrUx4sI z0eTDw?V{S+q|mEX)Q&;t&Sp;lASto(<}!u`nJ2@ApqD-Yns`nH(1<-~D6f0kuq#qZ5GF+eR(qK-Li|4n>TG)d#U8+R2WF?&fdvYh^aS$xj9m) z$syxbfB@*O3RMW~j^7YWV7NUd0w%FfKfJzBJ!Tl#HP6=DY{Z7oW2itG2swYd{bZi? zbUs{+Sa5gBPOQ{&?E4@nFT?rL|0u@|( zngBYLta`#BX#6tQg<2cpa;|>C6#b;9sHcMzMk=Hb_y(o6CPfmHvGVi9cGmfShJj!fX0o~17>#PO8%5vy2UvGm~(#l4q^^&0B z9qgQd$L`g|;ZoGqmCNTQ7c6ROYLnmDPmPAtBAB!q9xK&AGrm;098lAnt}?~`J*yQt zUNdNGarCALx}b$Hy;jMT-}r;pu6AEyGH!|Df@A02nK$))Eu@%!3aQEJ&TUWq6cG## z%#WI7CJ6T{D?R98=DcYICg7He1plxum?{P8?ZZ5Z zw9=!%pW6reue3_G1E?fiNynONFS+;nuF0I%Z!s?~Nb?$_V$cR=gTlxl0X`Zx08qQ& zlssnwrXb7Oh1|v{1^(kTCxaB3iv(*}nA#Uf1xuN2CoH7~tagP)lxj7dz~w$Waikhg4$ z%Au}XT0d}cvi=O8Rx|}%cGsu#A3BpfUdY|50X4DWq&(fz2J7vmicAK$G|zG84$Fn4eFoq9a6xbmXj8~m%*qS$U06iI-GEl)WV2+J#DbZ$rup76KD+tk0ISIe`9PWgF+S7hR@!tAU+NEW z%V4%k5OC*2LMJk)yM}MA>?r9Bzah@liDCl0Ga&o{QnilVQI!uqWX2B&QC7R*U>hQ^ zHI;>GG{5wG7^Cs`mH}X+CNi9Of&=_8k7pt{{v!mm7E;9#rU*I?Z0h_X#9uXg^~1T= zK2m-FA0^{igVE{)P|+{=5H=>!k^v^3gHGH#(C#sx6Ftx;A7G3nGEgM%#@Xvhruc#% z=NGJB3+2%@=-O2Bk(L?k?CfmxHEZbSdA!$cQ&ZF7J1S80L>+_qh^F9@0}> z%NWU6`wSe}B=)v2ju%G*Kd}$K7Z}Cen7{h*E|!MCD`VWo61e&^HeBX<`lb~Q2h#(m zN(`0T6I}lm zHQcP#Fj?4D)QR_Zt{7>U63v;#B^jxgP}-X|u$V!9^uc8#WFGI_QbF?9a1wsnvv`t zJXlA&`K7Nj_o|=qL1NhIAj}3#D~}~!xVs&b>YWV+Nkg;w7E8*okmgPud#5oGEOIAw zd+i|t%rF2jIXo<~q@eZ4aMgu`kastQEWSb!xE1_2XovK!LrX{Ly0k|AtdohKVjHvK zKU3A-XnkLYHet=-RiLk+!BItSKk?QB5<3T1s#%XVl(wB_8K#|XrG8#1EM5&VSVEU! z6b6`0WF9&JfV9ZguB5Wx1f@4>HqGWOt22Eo|2Z5>B7gvHdHbrLe@>f;?T>LXd)sR6 zue!{ltZ;>3&L!S+MgIM^{lS-@u~0cdM|`W?0CeMDGq7z4PTiasjztZ{*uE`XPvZ2!oZ(8W~Y|(b>(>i+#n5k z%slCdiHVUEVu5s+r2HnIjDHlCLW!_xWLi_57ef$SZ;nqtwvg8=h_RcFOQL;kwLo<%=dQgEH$wWK(}Pz!g6M|@E?**{5qN{O3=g2&6G`&O zN##DVHb8(te|L8Td%cQ1tTYH_HzsTle?%ZLmc1DOW~g{*zbZYu-_$JbU&!RO+sO&?M_48?%-( zE3L$s)9#$VY1*c;zU1*CyP|{oN40#^-soG2>2V8nquO0GCueO+Z zp;D--^8UjI5|Ag@qmc=IPGmRzst5a^Rw{LKvCn!@{|f^w(zC1Wr=;iIhIQb8>#ofe z-U>_&O|PD+0iMVdswg_JbIUm(qvQhd@{Mrj7B@c8UJO^ zxz@bO@F7#MSo)$GaS{vU5x?W0u_3CAVEddZX?OAPf_~z?N`9b3o$@)uWa8k(z3C%V z_kR8!@EF$W%A6Z&{4Y~}YI*P9jg1(+i_2(ubm!W|#6mFoFvQRJj?%CmsU1L9Yqcyu zg~sUrNcvfKay7pxfG90q{E6VClxmvokD|(H^fh$?%s?RgjbPODk>>t??FCRMp$c?r zg$G9Ab`LSnojsbj(AQfpil>`gaSw=_`pjEegvOW39~Fo{f67~R!pHDQ%1GU867)xd z>~R#{KrylX)z=JW3Co zppl)?WZ{kuFXJ+dqiQ0f@R-#&Js!|MtZSze%8KkqS9ynUV`PkW)lSgv?r0Pxn>;YC-bIFlli2fVPVG} zqZ%FV!iBEu#ngR1`)W1tEJh}{mB|F_Oxfz#Km}_Eu zs$F1SBwq#1cLfb7B`gexGBz;D&4pB zoPoDXy2B0E4;tQtLaCkDsk?~$r zW0N))B{w0p;!i4xT-KyO?KTD&G21hhn~C7^<-`+ja9KX>F~SBh1+Q8uw7Xdyw&cIX z#Sy`n06@LwjN`V#kT}hCMvT91K-SVQX->wLP_e~2Tu56D)6WxJu8tz)-*9NLG;I&rSwEvq z$v>!$(iosCKsO$CD4o(?baEH!nqeaWRk-BW=)hy01L_+`W)Fj)w&He9>=HD2ceR@Mo<1SB!_6dct<-{ zU0IU8QFk;G+sosG5#cvw900LUg9eHeDSaa=2b)McIDNzLnR(l<+1@Y7 z_;N0TbEuTaX_&CtJp5_0WcaV-2^JfPU)q)M1ajx++*2N}JeC>YTzb2^N3nJJli6RW zYKwY4YMdH$Li5z9)Co43ykLux%wH{f?j}zUq>170__rsv`@p%?fAR5)ss?V=Y)XV= zl|<-qtM`q>OR1=roW*xo0B;k!Y@!eZN_FG$+K%ZPB{MT-G4!f4CO$qW1vRHvP$v`w ze?G9+U{%wSYtKHn7yFXHOVi3mnCt0=%3}fXQYa~k?~o-AU6JL-0|~d=9~MrJmeEt- z8z_>2WIDur>z++X|G4}1?4(S=?d(s0JIe&i2$81#Chz5)g5jc z`FNtA=F;b22_!g|P?@Fhhx!{Y4Dvr6Hp=M!l?AqC{cOm|$-!XlGyxaUx8`a~dvswJ z`@10gu>qIz)Kr6NNBwb@S36;3$B#$Deomlu%rExnZ28r&)4AX)ZeJ?|yyj%jV^A{! zF2vA;+|ELzV>cqU7WTrJjY<%H?A)@AsNXfmtMteZ*TtVq)iz$9YSaah1#mj5vhc&E z>9@{*wTwIr1(pAag=82KA97v>JtXhWTx{u=5|kW*@DzpTi8W#%^yw^Mr8Hyj=r{ZN zYKE9}gMRRdnFql7fFH5!I53&ug+uWKvb2BkZk zFwXiMgna*l7z-{=_?ayjq>DwNAJD(~HHR)u4WD_M<%Z>V`bZOfhgE*%e*}Y8qd@5Ji+syA3blj zZ?Z1DTgLnmo{xCf-nxIO_gk`;zg9bjYaRNI+Fu-Y_DVh-_Skv9v}GrYXMM8TUH66T zG$zHRFAcaZBmKvJ95o4C@1f`xMtE#^^`8#UCoQD?dt0}QaL-WT-m-0Cca+j$ zk~{V!r_vB zl07KVK7p~(N8B^r|M`Y9Y|O&-^l!iZNn>0G9C9?vwkA#jeuu`rKht=&*ni){i+zg? zzJ`@@Rg0w*9dE$gkD}J8&DYgZCXB_eE2k*%g9eFB>UW$!o9>>9kM9j#I46Xgd+yj- zXmlUHo0Hvx&t%B);-vump~;IK+9BUtkA7>x8Q2cHdU5Gx6;WU{1^P*=tWA09}$tgb+iM)80hbY}CLR{4+PuA}$HX>Y~B2#c?)2El} zcY(EJt3qeAW+PDcQN_VGD`?zF$47?ktHPZj@+l&@0DLGrEcnTcD|7F#)F6#40D#hl z^k{8|pITK1%5-ip-85M_DI&tjptQKKD!%0G)|i=RBR|l~dtdQR?p@n90Jsarj>)$IScxbh zu#vKGFc!9cZde63`;IJ{>tc%Ox|WD8`!z=g&V)yXjHR0NvbUcpoxg zfL(hOuSlEoL;pdqm2=kLu+2L2<6KT|#FJ(`L!LJ%X+vrUYgq&0!=hi*k>O8?b7Z7Y z>hiAphOJ*7t>TaQDExKh)N>v(mJp&htN!zk0j;l={T`3r$e=!6MVnUe6M=83_ztOEGBW>|VsC_~xN zHUwMQGp>SiBmEax?Gn!-F}xs0oq@eo5c2+SV6skt!+(s}PZ1WLGrdDXe?dS=i2W{_ zSI<U2CN@lPA{kCx2r#E(%fy(<3fR zMUxM#fn~c|MU;QIKkY=TZ^XvWNVf?~l&KdFjM=4Gj2l$NLD%ogTP;=$3~k z7x4^!vV|w#yv?uIuhWEPdb#mdf9hPglAlCtozo{v_h$qb{4mrH5}n5AE%5~Y2;TLH zf-AE{TVjQ@RELPy*ZDKqPXY4dcEr~(Czm726PDG6C^G~+E+3L-`Wn4MEk!%bmMg~9 zP?8d!85%llN3V}!i(=lq0jncDvyw$c#@M zR`kOahE(60m4CQ5%%f6#2;qiTRYUwGD*38N;HaX2%rHm9>E00A94n8s{4;_f7;mby z@{PL44U{k;{cj`%O&0et26J1}!2z za@$;b^PsRxETV4N3Vi_rjZg3k?4Mo?wpJ>)Q4zvb*DUh@NqGzkjI<> zf-@@&goFg6*U@#;!zO!~*5h6)JN^G{f4jRMn+Qm6HvD`4^`D*o5zJrSPbvJLe?e1t zU@`%-)+?faw=ewoXBWf&%pw0p-w>`XFWo=G6g)TFLKYy&cs>lqqm2$LMR^Re&%g0- z7n)6`i0ib0`nmXX0D`bAKj058;FYfD77Ry%3)7992+lgTnPq`kjh;1q& zFkHO6{tX@>$+P`0SCoetq<)~&&!C^TVO|0Ri08#qQRk;*yVp^Uo{5`6)YM&BIrmId z4`!b9qofZuzn{mzg>7;1P$MGZkpcT6@wP9{tboG$@dI+^L-;~#LGXVjPnp>f-&Rc^ zkyD|YSr(q}+uR#wHa{55KS;iO$dB+g)Uj}?gY(ZVG9#GT6pje5G8u+2=mqWS6w*_n zuijUVHS1DWklh;ObkU`P&NO#HPxTD1x8c~}OHi`56S}vI=gdZy=h0VB#^~t|48v%W z;6L2{7OnTZS|OIIMCE&7!jk9ld;F+-x}tB-4JrBHziXU|?uishJqZ7~)aq^ifqHW4 zNmSHgX`~wz%S^OX%oMJusK^ibGV|Vm%$bk;^lA>ycE4w}S~vcbk&onUpPaXIcywwM57lJ2}P!jj=Mb++p$|=#6VXHoY zmCqy5HUg37Ys`EP73b%_DGHxyt0D_0b{7s+?qQKvB)3pfP$J+dlG31-kyoQ)dk((pFnKf@h|$n zfoFeg5dV({1wKLqFnVsHSt*9tKt1=)Qbzd)d zNwo-WiuZr6h*7;=qWyIz(K|=#;d57deL=W7oJr@s?h`Qmbo#Mq>tzdHhitl^4WAPf z^1>$ku*$6o9>WoCc}}M5$&(eCj=acV)Aq$Oe0B=|Xzv&Xc`uqD!Vg(#LeAjBO3f_W zQ69G(&8u_@z&79b6r>@x%S`OnlpcN_%8p2C(k^~Y{}p2cj`CYofI;j38JAwJZfC<1 z$xOseah?*5AZpWr{3z<4m_IN%J)KNpqMFFDv1<0{`~pkd?6;c{G2Mf(iORl+bNdTg zA)yxAR?jZ~PDyS5f5GMSygIdvDX|a=M_V{hEsRTTeyQR-|BRYscImy`JCQl?Ff12$Ng_Yi`+h&Rlf_7R!Oj> zGfH5kki$ZvyB8-q`@K>~@~Mg^X!f9pL+5y#9)@>qJ!gn8Zi)xFKSMW1Q01yIp96}# z{{n`-?2?Iqj*)6~denps@pjF5s$;D=mH2)bkMF4JLpt-blT#mZ2-`U6^!*9*h&#&j zja_;d*}9xw(cy=uRrty25;+MG;P%GW1T0kTmj z7Y4h8C#-RUKyLh#A&?DXX`xIM^*J%Qjo7>im>Yic#C2`Qu^P7db^OoLNRRPLZ<#OG zSN%*7$_W4S0jar~U2{zqq$mDDr0T@BX6OphU%&cdko=BLO~pNF#(H<3F?LWGr2Xn; z4V?MMy6^(B3{wNHOZn*k4S@zZBQvUHy|Ke$KpRNq0U~1|tbdC$TE4s=!Ml|SlUh|T=#6x-UET!?_yzK0VRF2*u#;&6Ey=u%ZOdvUF3I>Y5+ne_v#8pO|>Q@XMg}-V5{gd$#Bqz+L35C^$Iv{o%lJ8#ifL}q3 zg@uK&F_1uI=n~$jQ^|~w`S9u!9>00dc5=wfsHY;*@3mS5@)Ye>r%`; zN6azNYxb2s)Jf*ciT$`#FduvI^BSqI(1e6Y?{5>h>%*dEypH)97y zOl_R}Gz$?-sx0|tb`;NZe{@OHXV@3tA9P8DecyeMMq!B5bVF&~ka zqD}1oNAW*yAsvIp{#P|{^@v1JO)haO>A1c1Xt72FlZvRct^<|sF^rL8M?-j==CLw~ z9(g^5RAdbGZmJgoSzB~yuo`X^^Qj6p-HBl}mYBHZbb2?(nCOr51HPDOV#>=}|q!G9Td3^DRiK%@= zMmJ&94&05|EJ#VoQ`*AJKQ(VU@J7PlNl+vtj|?P3_Cj&tE>jm9Yge`(OBU-Us1+?k z>zv0#I`|QeBh3<9!iKwfy95dkAN>n!q2xkKdDjIR&987l%iu_MyiynMW3YWI;xLhsHC0qCHb);@!b%U?8aft%~ALDYxBgSQ~?sIIm6 z4E_Axttvl4mE`=BW$O;Dm6}z_dO(zgrz26(V3HGSe=q7*w)@(7$>suM4k+ak=p{v;c`&c9ueH~L;l63oh=k1 z?s^^Y?nK4U-XcC;Uf=f5iSR{`XmJbPasm^I^t*R$vRvp9+&*r>Lp(d8AJO2Bdx8pnky5DJR3!QfeGy@%6G2z zP=o0i()_4(9Z8wE9zErAg)LW!SBBl1&35ZHuiD>7F%$R@hwb&Mh3!eJJN=<=?D6mbL*JDqWpG4p2>DVpr6d{kY9BQvrm z1KF8Ez&DAu&{CiMN9U3JMN-k1>Krx_c3Z>%R4Yg^;6jD>2qQ^X|H?As=Q>RA7l!T7 za5WOdo86U{A)pqo;L$W}88T7uolTpKQnyijxs4xCF4b9L_q62o(5rdf7aCk0Qxd*o z%!lLVB#l5`itu%hb6VXCs1UnHkMj0hVctQ{6;sLHK&_LV#Gjy7V=`{i(suhb(k?WP zGH(L9-z~U{evLzHNsYJDdHHuaYoEu2LYb5LSHeRNbUcBv>P(o1z?tM^o#u{`jz`~1 zH>03isn8O*U5U0YqDUOjSxEH_!SU~iO#4j_Dnu1y$>K>cD{xCyXl^yTj})?69}m&tVBdCAWl-k{m&fIPvLeIu=4ye z|E)T80=-5mDV`pe)2lw2|9??)C^#nmsyRNeiwR6)p{(;R*1w9+oyiDS6}tK>VZ8D9 zLT2o91eCwUiIg8y4{5J&@Ele}w9`KkAF+4)x7PQ{hfz4TE5=4A?Ok<5A!zvI@OQNgT;@f^K|S#eej*MiE}GR$+4r(G?SJ=PY_8WcH0o zV~WkpcJ%S9on6WJ38Xg&iJMwl=Y+emEN>OmTKbugi$LY7uq*#o>LpzNj=w(sxQfWz zF>)&SuNsK?YDZm)|BIj_Gd&63h+4axr0U!O@J`w+~*25+GA8S}>upj8{Ax8hwlK;^| zfq#X)#Q#&l>?u*l`d7@EP^W$KUwZ-mZ^91wF-Wa`T%h7N?gllakHSK}o<0&hP`$#` zUMd5>Iq_N@Gc(xjmrS`8e|P=2sQ26n$^{k8Mmzgv!D7icXewHZ^zZWjx>Q1@NXx)z zc51u6@yW~!OrfL#$69gM{i1hO)N;_GuxQxiZV&7_>io8+0XlG+o{+RNstCbU5dy7G z46Zvc{3yAo;XT}mEqT=Po>W+Q#2_WQ;;U<2_3}TIr$I7aM`sjs0)(dW=9zpN3w~>7_Xkcx^--LF;^rLWkCh5 zR#5W|!}BFX%XlXCMhY8FHa&OO6+a`hWj2{<_6~Te`E#>hxA*|XC`h!Hj!W&m-Z${w zuCe=7DR1iL{ziYWxe#6{Vq=Q+%yuwXt#QLU{SCkqX$Z~E2vJM8ochj3a;HrB;t~>4 z@h>szRu5ql9&-^Ur6DMD-qlFT%Jpy2AlF8KXY*mX?_RRdLCl4OE-g zK&7pJ2cR2snQ*OX!j4<4(?kZ=Px`@>eOZQ$T>!N(s1iXqL4{;6+i%4va0$PHRha*8 zbssiG+CQASkW!DT|D(0>vC9k3?=6$ z;}3*7oO;_bY_RH2}f=~B#|9V>Gm^Rhm+k78np|EHyDvk>25#n5|op}GH_eu8^C;RAgQvJcH zufRgb{b)OP3MVbKJueLPl2SemrV7d9w^C$p{-fS3xA$U)1{vW(W_5Ls@cBmqmR!u= z2)d+ZP2P10au?R#M!r#^gr?@@NsHiHW35}tJ%WWyw)g=`? zszypt8LY0F?|t(-L${fn+hR+)nD=Gb6O4evpo>jZ_Oa=DXDZv{kFjw|cWpQOR zufIDvOhS=4&k?ge%kQHQSweSxwT~ESnUe@k>t|nFxG3yi!3B@3o5(e|MA$-K0A2`f zoqX1%^*WKORA4?RG1%@?q|>fG&;V($CUFsZ5ZN}QX9hEcf$*lpQ%ji8-%AbTCUzZU z*(K+C1;5E(7!q`<`1FLcT){l#XC-Se!(+X+Wb}f9COuWAqLETImj}_&VZke;0Zax% z)QbO3cRNz-qeWB$f=fSmFFdfC@*;yA<43kk@a}n`5>oM}_WXmE%0=zJ0uCP|%A)?6 z<_^L>6$uSkiTQM*DA#g?N^qwCl?v!w%z8Q%LPBhhd`L`MDtl~T{^p`DGf+N17yDx9B!-^1<;}UvOf!5 z$sst!X0mLAWZw#r_|x)l?>5v3&OM-@Lu``|>NAy1)mvQ-kh5a1=6><-@s1>{66pCme5y61Yu8flsu{^!V z`3#M{ZH1VuZYNa#hiv71_jALW`>G%B|R4@ zH6?KZ@7TglmM6z;>alNgddj7^Bi=s-;jZt-yb_8x zw}ap&2wun+pydH_v%zJjVenjc?p$ogI<4=nar5Zm@%QEotj-ut9O5;K~LwqkEIGK;)?XGZi%83 z)=%Iy&Pq>D2I0AT_f^+|0(doh2cUHP4#>YagmZk@TCbseCU=Ux?YOXV@is22^N|0w zO;1W6`Xi2wse%4)s%|uLo&5lJgL62ZM@HO+e2`biCd=%akOoK zAM(@CYhVpc?x&-pBZPeX_)%t@SPs_u<=WO;cQ~)Wc>Zjxgg8&U+}P-jhyF6n%`I}) z;Ht`8aAWV@ym>X#Q=1NYh~D342xqQky@C@FOUNTbiqq9U-~xUc)oQNSt&fKf(;&#c zqs~qTG12c4D$L|C7&40x0+&JQy>rx+uik&M#-1}xY|A${Hz$McF(Id*XzG^Oeuwvj zPw%n`(Q2uw?Hn`ljFKB#FI5!hY&HePc>K_ZG!-5mn3CR2=DahHi?{#mgE|_7(`FH7 z!^P(w`sqI+8>G0&GfjtuL-kH!NDblZ>r2(HhXL%Dl-ah-IayrJ!!;Fo=3n8@gXB5y z&5B&F(}K9sx8*#gj(SYtg6*hA%5!O^el@FgBS_>kY#*((pLLUL3y|Yi;=p2;fUFCM z5$kgfeD>_4p;%?t!jHt>}-dy0-s2RAD+j~&LvNyd2oSnic5_eBIVSPGwHJG@RM1!SnYWi(GH ziE=sZQz0@1b2l=a_E13xB-4M9VWE=`-UhO=zj-ccd2LRyyvvyx`DSw=!(tJz!Z}FM za+x9g)9*?-4~<_pzd}NfZ#(7A2h)$jWBQV|-L`(xJUTX4{+y!7t7a!~~K|=$8mpIT8UHtNi#*etyns+3m)F zbFTdSTld6n*cg^xa^leyK0(IxWrb7_r@@-m6;R+KKZfb`N(?Tei}ioBLvv-PH*1fd zOt|kRWG>)CV1%MvRqZjC%XISIou+ehnMJilbX`#!QVPbB<)|g{It&$FHK~62cCjaI zKG`zlqW6G|KA=N#&vD?6;(pLQ4x9JSxV0W-NRs?`Qr8*sH;-|MD#qhYzG-{tP^{`m3Zi&_Y%rr3>*j#dPXUVi*;x?kmI_N`leUDrPL zb0I_p)gK>}x`IXqm2tIy)3j{US4!czU{1mZI!kmpuwaZ17nu7fc!ri!-UAx#wS{z1 zW?j+t4ezMp&FF_Gq38FmoU9_#X+I$8U*}tm(uBXC@{~~#VvW_wRlVJ`#q7cypg%zraC?0@HRj7^#+QjtXD3|z@DvD@o?I{4%yE$4ZYNu z5H;7y^3<#@oYSOcTI6vZF6mL{2GlsyLD%hve(2=*_liJMI>_g1xYRt$%UjUU^DV=L z;0_Xtb#DcpD=xB*K6LOlkxiTrYQx_a4{wJTPVs#nTdUCgW3)X_*Gl4%Se*3N5F5LtC3ZXcJ?s&v z{q1pARJMIzCXb+CR1S~BpDzS)Z1Qm@`>SO7msG6|_>tHge6T^_Cn!Oo(i z^?~sNcLk_S^@MUpzC)R$^70;4T{cyoI=59@AA9|&5!ZEV*u0Xae8xYR@s5H|;l{nrQ?@?0HwVU*!iv+*%oXxPJLtPloWtH06BW7aH9uH%YQl0+|Y!o=g%sj!hhC3Y5^wYPf&p{HKlB zhx@RQHVMLu+K2~IUTYI|w7?+X;pbO!biC^{T>6%lTWe+^*-~6t7ufi5AvGJGv&G*r z)UK0D3N^!*A>E?SpChS0e*8nd_1P`xjC1$Kc&YGg_4;{C6jj>XpKP2121!ND@~-1| zf*tP|#q*H;wELuPD`iI7F@gHu=BSKSR+3A?4lo?N?~mV#YxNVTX;zS4FGki27)2o& z!A*R2?eFiDtiVLl$D@^coRWzktc;?gy9IWK8<^iz(wq zh7UWsgivdeep~EXS#q&mf}S+7QUQBB7JjoNgSSx%m{E~k&F0}?LHOpaYvR$QPo7Ac z8NDGoJ|1cC5)rqvodvD<&3EMmGjOcT{!qBj6UY%cnl3Z?XV$eYrxFYjQ+U59MXw+y zFgRY^1wr>pgl$sD)4{7JqM25f53l}qzDcw~_Cq7M@{0cJ%9DLvlfcnZD zSt*LM(CKbB{G#xmWj8P{abLJ>AbZl*DUL`VjKti!Wp)L0Tznx`V(OCQu4=_8@HF;E z6owh7HbYJ8N-}EJ>#twt=G5ybFjjr8a$}DQW4ZY@v~uZuQXSP=Vfg0`Ckbfxt;sQj za3y)Y&$?pgH-(yG^0x1zA1cN|(a`45P4_kxk5hqUsj=V#v?}%b_mr`0EJ&(0zdXdy zWlzjMX7iINYp+}AipuABc(vt41niNB^=)n|keM$*IT?R46fa(-->pjCOES^%xaw+! z!SuUJM?dPOfdEG%x3;*~Pf*e!no^mZRqqfCJAIG`*DUw|#9bt4MM&>j*Y<;_Vo1Am z5rKQ$|G*60&GO;AqH<*KlHX6JDI2*!d8yWqmyGn}DRytH{`@|Q{zF(WxPnGClkdiI zg=N4c9f%GjK7>w{aK;L=A-+Y5dHJj3Qgm#a^7_<8WQ^2Q~- z&)em#c~?$9qbUNqs-Yv2hyLa`t=3F>#Sa>yR?q7@$Y~PCxr)EqlqnkAr~MO35FwUT zu5-zT!iTrT>X0)+iQd|;KiwX${ot7w^}K!18YHyHX2Sr>ZP5CL9&dyFN@?o5sZ;Lc zA88rp9!}+{ZyA6f+9Dtc89*H zu6tKMT}02g?=H)uE&vqu0t+!j!}N&gVt|}W;J#B3qr|kRnF4?tSA|ob@|lU>U7sUF z1-Zd`okL1U?mW$xgI6t?3u9!Yx&7N@{2*QF+YoqIjfNFdm1sej(BmQDw!ZPEGpOjh zl52~6`p(H&VQ{B)>RR6CNKR6}SM~@jH|)-?D63 z+zwj@PHofC`#R((em+Efa3;v(Lr!THQzh4$o8+hd+v)FGXW!JF0bxOAfK2vJVn|Ga z1`HjypIA=ruDhn0zs0&YBj|>9nAhf7ekRdK;tz4jTzMfg=FZ$-Gq;XA)LzpU+&UfI zzLJ&T+A#k8{<3mYG@Zcry_;w2uCU#&vuHz0gkIoZr-JXB1+fkXOIla5Dg%u?sV=qZ z5BL4tn0(lk6q?&540*Wt=~WWTYjp9G(Lf^^j)vCRrz$vvG;8B&NaOBy!{=lC@I#&J z>Vs|_EWUm__?3bzlj5e}Q=f$vGPXT_)NZe|!(e`Fp5yYAY+nLi%$YHzd~z-Usg@D2 z4GEoB)t(({Dv=$Zo8BbYuTGany?ICfUI|JJ^a`e$B7ddg?1e z=Ck=e|CDd~*MV?hK2g*czfFshyzS$v=R9kYjPf}A!G^40u@rv($oc)L=5@lWLx1)e zSIV!^Aw*Q@D|v**8L#Ch@l@lghQ6EWijE_yhb9GLzh75YujJ32=p-KhMNyya_ew|agY<0G_t{cx6; zbJ9+4rYuN%f9rd&_Kn;|wp)<3+mMFJ?#bj8WPpQkWi;99Fp<{zX?RozpM^a#`{T}L z=5tVhEsR(YOT4Sja9{XaQ~HXKOn(db7zBv13B@-;JkR%8;~T9qF@wK8+)n%=?`8LR znLX_M&nR!q{>B_UkVX<1Xn{kq4c;F^G@20)eQ( zJbV7xaiJGig2||IEPt{0#sDhG$n>(M!@Q;P3Y|Y>x$V8criWcL51Zx_a89SAL=bLU?*|CcE$=5zm z#9-JSYGcY5ixdsNKgjmZh;#e&^$=PePVj%Pd9d=4%c=GxEQcqQ zgIM{={FcR--d6G0OPV7LJGW@7Q*m;vtI}PFJuCK6@EV)s?o*l)pQb`G^ClW(aeuC= zsBPzUm2vhUg04r}o8fE^a|z>RPjeQA9l{~i=mWT*Okp#KgK}!H7;BK6nP1Tgq$iW@ zG8yr}6OFUrA?aNnl8wGXuLr08ZcQ~wCNC@_DJM})x{gxNx8nX(ekyjggcZE}M5i{6 z_s!UT9O-$w?xCmdrlKf7hGAvt)?|Y(EhD3o|4X2fkUBhlr1D8bawOcGA@R-)@0zOV z)k9jR({Npkb3NtM)KsS;jjR&Dc?$~*Rj$*S&CL&|0ykwrwyc;XzS6GenM%yf7Jvu^ zpx8!MOqk`#51HllXzitE$LoGFF6KYY4+V&4>KeoyOyp%`o*i$i9-Rg!$_KtYC}2I? z@O}R=2dd33D5!P3npI3ti(jFX^B+AM3*06$>^a0^e}t=XTe3k^I?wnH7Y8qm!mnsLZuZIPu(+cx5`PS zvF(1ddm#*HwcBVIo-aend!RAoNNabYIwp|jPhZyuMcaL1?#W9JJA20BNq#YjYrHKl z;_UyKQph%7Jnad=2F(nY)$fI&|Lm{QKI;Dfg`9bkMMnweSp_n>2sC~B6@orSK;R8)B@L4$6?3XXN64I;g4K{&F5nu+N|ohOcU zl}QWR2L}dW;XPy%pmwR5B_CQ@u|rx~TKob7olnlvqBh@Lz5OOWzF?(s7!$S`f(Rd2 zaM8x{_Q*p})<4N1SYDeth8xy~Q9Rn1gxgjATAxbJv(&ROuf*C~ZC<_+*?#vZrQgSS^CW8Z8NJoYKpy1pU-aNNPic=GY}pv1+6h7~tZdQv{nDSXTuoB9A0MJ$ujh@Kf;1Vk$}!XN!xVcrPw{xa zr-98by$3;A{wm2Q3=B)~^s!6KcB5`$t)R^oYH>mEH{ z*}WqfH}^WPFPB;C)c~8AP}9!n>`U{VE09S-76FOSGIdt#h00d3GI=?yT+}oJ>BFb= z@}O4{d*3^J{Cb+9{iyKtei<7rts-~;L4P+`2Y-l3Nw3k;<~jz49!|s9LLCS5?;X9~ zOc95s>NgAzb8?B7G$A;pvZT9`OVckd=E-CRlcal2SiLmtK)M@cltwXw$S~Y)i8XyY z?VQOb?ZXe*4x9~Vs`*~M%d5G{jayX~L5_3-ZlWx}0$4NL^U*zbz)sCo*k@na>Eo%s zlrhp~G>(h+yN`oiQGtAzQ zqkdnj#%}wXTi?=|mAE?mTY3B>i|g9HqSRZ#-m|_ztGXggc&i+GNfYu=|3+;?T7dw1 zk+AmH?O#t#O)fn&;U^|0eoyBdQd(X0{#HD@W}hN+&7pWin=)=Z z(Aflr4pWW-UFY|TL=4mxc|^0;S1n@caYB`AH63CgVD!}ycT)Z#>THgjnS}*(rmuyy zBOdao+Ay#;b@+>qZNq=Y0>Bm$4Jp5UTcnb+Zo9 zp9Q=fu0nRbFN#X&=uT!?+%*1icDP}4&bs^P@b5QVEoDk^*8vQS@5O{!Hrfl1K{5Z6 z#>{*4JaXfAR5#n~cERG-iF35k$&P{r40<(QUhH)@TTi^R@$^dm^Qg{uy7a-N-{-Dt zNl*9 zP_F$B%LY_4+wG2>gYCAdmc&9kmqbd*E9EBZc=;7~xAe`OZm)jZZejjGv@5Zz(DsD< zV0|g_O#)^2bgBPQF}6X4(aEX1DRW@p8N|uS>Aw6?@zDFGtueU8bQC(c+d5pghT|!$ z)58-huCyDTg?+|R;tf8sUTU$cUl0I=iM?17GU@)n7IzQUZ(ZV3X3qNpL2a2>pVfpv zKTR?n^eJNj?MQi3xVadhR)TsK{IktyJ1c0J{&@4433xx88&vZBWO)xRllc8woes}GOz-2a+!sNJahB&I)Og}>Q|AGL;B)#f1j&%z7p~-!?mUo z?;1Wmpi({F^A9<@y0g1KPGle_oer_o-ihY(^B7TFoPxWcXZJC51fPlgdPSuSZ2lerm5douiL`T+SDbYuh7!AW-Gq_ z)!8|aM_($3M^SolZ&DK1x1bJFgosz_@a84^S+H||+m)bQ#MEg=&rCvuA;D)kyf+|w zBB#&J@y-vy9a5&S3Zcgu&fuA0z{QM{&efB;r ztweo2HI?xiii)t;5+~8OilId;?2>^S{m#6%cXZSr$#vjcGXZxI?n71Lc~xv4<1E*J zD2|f6+_cE_9@64v6Mp>U$Ugc+SxBY~^7754$OFEVPBoENMeFSq*|JxzIvx9(L~Yf* z*Y9+lRMXMZ`+#j7r!y8pL~p7z2caFMVe23YX1& zaIP2|Q32wo+P?!Cwn&lFsmSFj|8U zmCinLQsUQ^qLxqU)_;#DYA(c1gzUN@r;ZtN$H%XJ`@8DAcsxE9ahaC?bh=>^>0G%l zH&v@>oG7Doc(UD&KVRFYPYX)h=(-1%AXvzam-~pbus@Aa={jKhoX)>GO&TR9+4`NT z+BFEFJpM(QAgGSjwXH4LYn%aiAwSirt1e9xTxis!0UX5CWB^r|IeGkiwD@qCJ{9G0*n9T5Eb~<4$h-9W3%e{U2WEnlol03M$E{~C05v{@E#@K>SF~d#gCGAG)IELTb^~2Nl z_j!AlHZYlKSe7<(CN+URd~H+B#wx6H=t{0TUUN$rP|+U4>)o>P>EtT?waMs zc-SAPgrqk07aNu$E^cyq!acp;w|p^8IK|a&LE}igp zqEu5S(c)IqDDM6=Jgc{7qoC}E5zVYz+V$3U4LiAGhN##SgXg7WVnGs1F3-DAq8EpW z5)x9#l``adbe9&>4&EV#5!rexa(42Q0c3;0-618y!>yl+5wL7HwyG~Rm*apBfFOn7ZPDAp)+?e05bG zzUPgpT9nx*PY0panlN^M_7!04SO^m8H1H(7thp5lMKI-ho%xA%wKq4DW&Jg29T zD}*!-70D+SrEOngYVnLbC8%|tSLs>pXlvtv#1EnG-JNxxVmy>8=`*LXsI-e++@A;C z6ez=x%xtb6iby+MfmpIZ3%ZOV4(E|iL*$#7Y;A2dGNckEru>M6goKcmsjZ(Ed>v8v zpWV8U@4lth`cJRSS5{tT6k!ehD@Ji2jvppk9Gv9SVzxO7x7-IDiprWDHD9iv4lG46${2L_mSVjUI1Ycgd_E^ai?W`>7a98x6w{`cvPK zm@Lg+7SrVe{X5tojU7nOYDqy_QxAB5ur1#tII_anq%?VsiN? z-&sY!CZl{O+$Z60#&_@Dy?0GbvIhqTYirXfHSJBkz2_M^|H%`G1fO_8R3@(eS}S}s zK?jw)Aq{r)blhrWJB%FYSW*Fo_V&)s_Xt;8Th8Dhm%q4Lp{mLAd%M@oq{7ry)t5=B z7~;qBqbd!i0<6AX!>(y~=l=NAi%Ed}rOo$3W@1$$pW552OFI7?A2+>BP2D~@nK3hC zMV*M=t#Kt6*wt(`rqI#R=>)b7MAB>diiEb&qrqd)1e#z?qkO)WYzZCx!Cx@~UB^pR zGIlSGwe&S_gPq^nKbJe=?&@;ieZJ{MToF+&MHN_(yNC(9eZF}+&%F6cqgh$*U>7>h zhd@zK`r)ee*aW@%(D3jxQ)kx0rOi!kYX_e5^K+n!5&-S<2cdaT=xduXLCDrXlQ!X&*}%2-IM~~zk4Z)d=d$c-80oFM0qTeK;`W;X$Nnr4Qqr_KyPVm*y@ux<(r}y#r)A~Vpl9LW(i9T5jfZQHIp61cf(PFZ- zwYBcGFhX-IQF`6xXjiYZqq(&;!0wY%(B|W21o38_kAUnm!;afaay~;1H4>-!M*|Ht zhkdMr0|R;LY3Ql3xKGT@t*zm#vfbgRfW75cuV0g?s!=aL%Su%@^F-ig;DsyLshC`zbG9UL^hX#Yu)RrxqUK)55>d6 z!a^%+A4m&t*ui?p{(?1jl9Z9is@BF<-2B9S35jH|<#te-zi)^_-w-k+qqCY?QCCyr zk1z8&C|DDqy%$|og5RRi%}!=X?;87N)8PSR#{f65Q!y*_9{t#3hC3AvTdL+g8kvilcnFS1QgJ^xVUJT$YlaZiiMxqoA8&; zGc=m96y~v{p*mY1vZlpnnN~Lk^pFw9eja)A+Fo@yzaULW76S4qA#EBci(LZaqG*Ln zTl-(fzrqRpP}*#gM0$%Kc8Awf;jkqu8gMS231~=WATRGFQnPhRFY@)m;}c)L&K$r5 zQzz!e43U@Zb$5Fldszl%a)Hi8Il$(HGmyC?; z2Q97_CTv2K^|N+ncJzZhGE;lGQgswp!x|yyjHEp7nJ4H8!HG4HO#ob}I2gX>hQHN? z%h{2tk2fw|QQiW}d)TK;-3vqu{)g?;c}fpQOxotV>kBy-X_+XxM-AEA_&xHi%0%6HrkAg9e&8zVk)$x9L4^nCrlNSCLLr`#4hT!;r!g7FFLqU9AKUjnWga`fv z5~+oyl97X&t$W6J3`w&$k)-uBQ#lg^L$X|d-c-*tVs5H#{+iJTGdzc${L*zI@3IMf zswzJnuv!MV4Y$>@#jZyWQW#QU9Fg_s^ElkG*B^EdPtS{D4u|tL#$$Ik=T9u@;^ZIO zKQod%XAd^Rmvrs288(bqiKJ}p?KO{=h~Bu72zqq;;2;s02Wm~A@$%T!O>2{#6X*WB z%NsUyOyA?Os+_u{LZ0o0!=1o-OHnJMqe;4gU}Vzh>m8N}(!Updjgm9oBnt~BTay}B zMK#uwx6c7GH-Hk6QvO*VuMk9J?2n!Ao8P92i;GKgMx~_WNlHmMg>31VJ4vr1a2YO) zc3Tb-@pCpb^Un{z`;WO~0ur%)C}21cC;wpJtX(|=i#Qj$ArcVG^r;MkD$9Z?DC7`) zX?YR$$?t+~HXcGE(EZGaUaJW-eqvX(`s z1@t_DJ8R45TI`}{$2KED%z>u9{*5APYCU~@ISV9%w6 zbY56AsB@rJ`dkccIu|u~Vc7VQo4DHV`c}A9=|-31icR(&%v@mW86l#{-_k^{T(&lY z^&wyL@*K|v|Msi0={Gj@YzBCGdIBDm0s;c_O3mt??VezF~6AS52X5TYNhfR;si z;Tnxg&z*0?KOeB}9C(pSOR=)2BRDcyVv!L`ScygsCsdOgVZ)X1INC0m9 zWWT^i>ViUA1{GFUS67d&**|eTNyVJ*qe7yO)8KQ5W!Z&ilp*VrkRwOSYxAy*!=)(n zT-NRD|G-5Apr!v`;o|=iOa5;T&WQ6b&bq$~7;HG0BdJX6>Y)GtSmw0kxG%1w#)!K9 zq9YihBztI?n4F8)*x2BKICM#qcF`f5|JSPAOoR<9Yk}9=GE@v@2MsGs_!i>jwI}vX zAmZF45bx>^ag|_9B-vg3;2F&_iFAH3C7CO7-xx(?_3~w@b^5pR-)Bb3eOD}+#!iRk zH;H|Z4r9U>%rn*jWw#!zws}QdX1C=y#Xbsa%!p?RTpkln4u5Xxu83u^LOsQttmoQY z@fe!?j?X(N%(3V=K}AVC3=n0s=b4?|KrK%@Ui|@<6;ulfI=g{42fufVgWn{L?i3bH zbhHt{ps^>G)zVw{Gwv*cp`H~&poTh1>%GyZ&K9JoR+=NZ9UmgR`}Fe^+{fl4@JnR~8K}C9ciUVQ$`G|qpoj&ZVZjk-;vFk-k^)GKQhy2>R~ zF(F^~GP4{JJ6kh<)c*8hIxG>_fe$jVgK0@w=Q<@RQEY5%(m|ztANGKCD=%^pikq0I zONI`&dfL*YwnF(dB$`l?o&6z)6?ul#DQ(i3n5e4Imn|iN z(2rSJ@Z(qP;Mfy2wK?E9L{tIk{S^aP#y#E390}ai5!;s}f{-V};kVDlI1{}$b7C|% z%KULPZ2lSqj~|?h@v$N^?>fh4S9$(j?PJwtHN{mg?$h47^$9l_CdqR0AfvJIF%2$# z!sXE&B_*EuYUp4iaywM#xnvOXB`fAZ8XP|*$}DN6_tACeT;x~1PHy6Tc}oS-DXs0g z>Z;%dHwJ_Dh`#C+_TcFfuY0mX-bd{rfU#^e4AD zy!Jp78}4&e{bW-tE-xpYIoC8VUEKG0F585qFMXbqpjSJa9m2|9SVUcvYE$h-8*x>>|gtw`>O{oI-=eTF01w5d8$JGcI zXR)%)2kwNbs^#On}4UwQ(vqP7^&fgb$ ziD|8GQ)*XH1%536=N@pGz3B~>Mh4(3WTxe?r3m75 zg2pBQx&Shy1PFI$XJ@%$d%~*fbYswqfsu*H-OcR_5}65DQ@}<6=MzRYCNoVMlTT1; zK~ZxfcYDX)^rQEg-kU#tKeZlNj-0EDNr!5O)Pw=DoHsCr#0s|fgq0ZJI(M1+IAG*1 z7f(72xmpC?L>*}D1$c2nn53gb=FD)ViSf_$EL0EgMT?c-P0%AfZF5T2bFvVyNW}sO zNiS8`_>1^vBhQ^#j~U4}#*M!YoX1RE9?oL7#mK1#`bn$i+Do(cQir;&f|f#ToqB)k&b^B;DW>VFYz4zyfH*uXbe`< z?)9sa5_Z$(z>f8Gb=g=w;t-SY{#rWr)fgJy^3dP^0kGDSrpg(SPOc+#r04Ej2bI7{DXyya}$Mm7@o>4 z?76-D>)$VOva=tR3?#qkdSvuvv(P@bzwlP{7lHni~nc@2rh0X!`NTrNSu z!D6Oyjg2y#LPFZcAXx|mKM{Ue2@VD8X!T(6CWYhk&m>HRriJ=*bpKpTo)mUex?D07 z(GfHuFMhN(83{YzjMua*>XI(MuvahK@!Hzj>ZUJV+~G4Q{gZd@9PAUbcfe|ectu8e zv)MUsEDBzH`uS%RT>kXfim$BI5D|h4X#Ggi$4k&mGmgB&9weMMS#E=CM6EnSA)UWI z4+YS480J_cw|Qg(5X5jSV;M7x*vA};^G74 z=F*@)f>~lAAS9CMKI+Xr1cs}$bBS<@hD^Q< z?kqil-+{+YrJ%PlV2^!w4H4J@yIXCB2LnZg$AVfhGZ3PyiBn|@)=RDjR~0ojW&(U( zBw%R6VzJ;H^&!+p3YZ^=89tUjLX=a(8w3(m(qb>udM$4@n#8@X8)14yF@61Oe*Vsq zJibnU)q>v-eM}K<*d=n;H3eK) z2GgvDQh7nox19Qks%>c+>+IR9Mo3K@+-YjnlLeDbfuqZ7Wgv25V#2_-4 zY0!vZ6;TulC5RAWerXfkBH=vICyR+P@!UM@wEQquT)w~Wy2`pK>{$qxUhQ<|b>*zw$h*-rBh+ctm`soXh&s0_2Zv_?a_3fa<;!E{2)Jl+k z;_b=PP|>lm`XQ?vrBSXOV;Tzd z2X?Esa&rtX$?p!)s>QDoty~?7%pI+h0h{kG99C5V(1Yt${SJDmQ!l?!vN($pjL1sp z)}$_2PQuT8gMH&zyNG6%zsa08Ac1bvq-%mVd&HF-Ta)X}q~R?d4HcTs$>e6H#O_*l zQMM*2$S1o27vH3eXXu3L$P;Y+JlKTP3ShaTIw%vb&?&qT|Ef$-%JXg^pA;?y&$GN% z5fD*PQ&U5@RZxRc$;jMZwROY{fN%C&jr5hj$E``Nyncy-KnN$FC_U1XfC{hGM0^L8 zSv^~<{b==SV=`D2Qq9S!xLhpDJ)9`1j-hgVX^u?jveSNtlB|jG!y!>QQ z2)@VXB#H?YS{u#J&%Z`Tr($F@(x+h5WwC{Qpu1JaLF{|T9u#yP#F^F2B3~1LJrQWn zd@4NIOgYr&P|$uC~T2~?0u@KiV9(K zr{a&(mdg5x(sFW($KhG!7gOgQ6iRKdetq+(&F!e8D5rE`{z7P z`^B9qaK@`;K2%11TajIdp@_c*pOi0{AP*0qij!?xrhX1}uGjm8y@3qn3<@On z?l1WYs?fj-Ej#0EtaEVHY%PPQbJ!O$RE&7SuQByx*wQr{6FuFJ-nR>KM|(4Xu3?rT zegmBFcNAZ&+i?9M#T787{aw?_{%_v$d-1=X4Gaw2FM)?#ecd`zC+zUP&ixNNS8z4$ zV0~mz^p9B?N*oU(DWAVmT2tRVl5=i#Q zsW~GRb5VBz7b8N?3C)gYM791o8uxDC+ll>ply14e33Eli!^_y8*TAPVdZ?|Q2hyMR zML_clB)Xho4wYEXAB&S`i9Qb>UTH3wWUh>t+k1HH6Buaj73(YSdnIJur z7JV*Ae|KM^`E5fYK4!Wk5;l&IS2QKS2&vt z5n`56XBL436rS#_#jEkoi_2f$rO(*!cw43|jnnHNjXpoC*@jRz1$q8nR*%}7` z<7l#88Pe4&=__E=3#~aC83{OjULT0DmmLhLEAadvpM$9^Ku*@_)?eFE_jPBnDJl6~ zwKKhiK1JNhyR1dy5qV`z-NC@(?hI^+pqP^w4!*jg~XoPCA|EkA%#d}6*-wTM``suA{C`4wf0rqH3lIoQCx)rmpM z+33&{XwBJTft3GMd}trnYIi5UTD%M_*xdGhyxCcE_Z~jA=*@qT!FlQYEC0EK;pxu1 zzP=)q?{|%`4^t>=U^lOI>s5zzG3aAq?)A>y0LCX!O;4277r$;C%;CRI?XSx|BNOnS1 z5*biVi`Ercp*ZK2Nm-_1Z&R$_`J8qBvAJ38?W11>(rx}~BVQk{y;cyLlD4Xec@jGQ zEYWMP1M9Om!3g78C;PJ2jz`ooAwMUn>_ zb=;!(~@6oc@H19e2?lAGv7?(J4JX8M~&>A-rWfI#ee_)NCumZF)CLnkqtCj zsxPF?zMJUW|4S7_7ZCk3>89Te1kr%dccC+@eczv=5qKTu`>L-8JBdJsUP0>#i?f-9 zsB{~D`~8OO_I?)rq+c$3(?e5Z;%^A&Jr{J!V3j%Aev>SMata^@V;RNJZk*dFEjj-+ zzraSc_LMW$CM1{gQ;@v4S23&Q@eZi~53p6h`t1Dc{niL_voPNhDYVFMzPAY0SFc_r z@ya3BXmd%EF;||Q#>8WS&o1^$6Y}Wdeicm+TBJIh2OMMaE=gGo34g0$H*9)K*h}%# z8Ew~ka5i%N&9|ZNn3Nc|h;vP=>5|YsYOjaz)(dJC;UIO=Z(0|vir7Y{g{@HuH(qQ`wxSBc*P_(>U(p4g0eb8 zgnzbr^|*1j_m`d27|b>0*Rd#xp__e&9#ru$q9SZSi)Mt*m>k1^242)NANhVD;(1mO z|BELgPbHP@_Gzhy(Mqn6Yy0r)d7o0%6{^N^NDlD)4INWd!9pA;)G4Gc zCh~{d1!>+_Y(MbGK2zAY@a(6H_}zJLq}oF}_UEc|Bxvs~ZP&Pwkjb=IMC{-m+opj_ zB;m~}I{z%`bBOa)9Qr9nOH4^-W+rV3OsiCH3Vz|rcNGu+u|z$JgBZ)}u#mK2(L5ya zH?Luc_CHF=$|>BI{l;l4GMTf>F$15~h!OY%3zao%#~ObF(UL^-d)<-3LbO&kuF<%= zQ9QaEL{VWm!DKUEQ#gy$^1ds`q-|he;H8O4Hmu5Ssfo4Jz6l5Ee&<07YT@>6p_d3& ziXa!@_P%t0T`VpdJY!^hzwa;VuuQ(RRxMHj-=vlPb%fw`lYD-O?Q0`0PAAg%_)g)m9rjf2*^( zm71qoVu)AYd}@g-)|&`XZLkE%Xe$nK->H|p%2-R;r!L&iWtcBi2s)c7aa8#(rW?As zJhs&2;-u@c#ntRMT*~s%6UOU%M+Q=_GkEcYge2Sh>V$=z9UVmZ;uE@~qhpV6N@8NL z=lL!QXuj4u_=VHv%1YKt_xCsM7$AB9Fi25Zx!X_B_C(*+7$!k`^~h$ai5T#Jo|is| zmEV;gKr3E-$}1}o!AD0EpOl4@u27euFh#8Q2MhITD3BmLil#GY>d@W={AI=RHcpxFPL~Ta4;MVWFuyd)VI-pY{TH_sJ&vCUA!=S~T@c8(cg@vVkuKMF~ zAI`qWS}W*zr|I?iUVei?naRKbQ_|I)+Z3C&CXsc9ecP>I zo?3>Tk_4$eGKUNCPN7TT(Zds4qWW?s+P3q#;JKj;E2oMgG7(BmZc)6Lr*CR3EBevV z$Qo~5_0s_GG2or3G#?_@7Q!LM=bNiC`})}SYRerB6C!9kZwwd{@Y;tKEuTO1MP_Mq z1u2R(4G}7hcH7#c)3Hd6X?2G2%G3*?|K(B(-H?q7c z42#&airp491rhw@0(^J@0VY4A>B7i1z@gkgLyjNYR{bn4x9#W53T9h?0;=UZ%ReUcb};O(|njr2lbaRzap6$q?J3NAmW zeM1Tg$=g!QfziDTV!!6LnFvvF{LXeE>7&|xGe24 zMw=({a~mt6(Dq3!&-^>WQF)~29zA1<0tmCy@=Mp`_7GOxyEgP;th(%*uSKPHDtAw2 zQUo*&tWORoI`Rb#j&+~%f_|s5+r_1)#sS`VSiu$Kv^7k}%#8Ko#ft{_W0T5rv&i_a z49wavwi9Cc0>S=E#Q96;JXoLkw_h<*Q;m-jHQk#!3JUA`ldj@JDtSF{8$vBZY*>Lv7Xt<>b$2o3{x zEcPuv)1L%AMJMI5{L%$@CkB-!a$xipmp!c|>38P*qPQ<@JXaug zrq_K%q{lE#v)kpDS%Tndy9PRWv0^po<)wR?gwMR&o0JG;B9~8348AG<40|0?XDKo( z#jYElDTQAWO?CcD!tHhTY8&9X32}amt~LGF)#i<=D1P_MJm zefI2`R7t({+nNd1(6RFNP>l-16m#-8vfCN0OmWG5!Jco^HzhqKzyr&-%fEtVqk`_lmt>?v`<&|7<`eZ@g&V}U)0 zrT|jMHt+P=wPEBXNt?jS1w{?pb7z_Z+6o7n2ZZb#yFNCFIHVI?VV@6p->>CPl5?x` zst6JAYhQ(+I=_X8hU(5uvgwPy#gH;~m23a$x09Sc2HV{sD|A5Td!3Kh@^~jkkhH15 zukpvlwVrgLps`GelsO%}l72ZVExqPBgtd5_nSZ|k6hP!*t&wUkOzdymTYfj{LxiVbcZa=$$>GS*fbr;ozfaWjZu=L;G4oU*Wtn zZgNp9m`%mfx>|?1y}K74{m86)w?K&UR_6<*GBzC@0Ta!>#FW-M^l%H@!2)#jNo~14 z|A$E$_U@w)9J+2=SJ{Oz3;kq?IYcfYIX7JZ0loiYFJ^Y2O8N2ZB^pxzfy^_h|4O5- z>WYd@7a*L-Yu5k7i@Ji4)3B*KpDqw`f1A%}sYINm40^)e-{!3>zBqd2l@acRp+MH?qj@+0s_RK=;Y*3iPk2O zJ5!<9WSVkqa()ZQ?e)b6^^Cf@EyI03-D{{l4Ej2r?Ok+6MpUEIRs!OKq}i1OtX8~A z>E%o&Dd{D2#QV@U(X}<+^6Gc2+7nR0o7@K=T1iP7&`~=YzE0jkO)Z6}P~JK+DC$_> zsJ00=KN9?>!%r4JaX}(~O`fSuYwhh z*Jp%Q7p8)JU_!_v7SIZ?c)#fis^1}6jSM7=rRf@LVTWC~nImyQ4*XoW3`~-n*LE0A zs!Ya%zruu_HXnkF73b9-zM^;lx?k%}D+zhQOvF9`6Yz-pG}7w!oX^ikD>*@%IEte+ zq%Xm!yQZZm>1waKU;JXZbU#ImE&DD-y3Ih?k(EY zGg^WmW&;VVGrk8%B=D!z>wIXE%mmv1)$~K`>Nh&ZQ3||eC&NVTP9aI?R&(&iy%iOt zChv986Ku;ySTfW8aRmvid`)IVA z+~8#(qf>GBZ32~1zVYAoN<+^-w>tgCGM`ElL1?k0Dtxhgq`hU3I~?(*@}`}Ki89n2Zt z*^`BuSOAUbT5^L$94L*+(31@#)dKVtp_c#pKmD-hxv` zIqSO45b=JiGjh^kqxCfc?O#owbW*=daWNnXwTRAsj#WD@aMYrJtY<#1x3@=vAc%o# zp8=?0>x&ZQfG(_o{7iEbDo}e_E3zxHtqm8%a%v$8t2%EhsZsVbC^qG{TYP$XuD!q9 zN)fAFh6OsaNkRu*!qMtYRu7ljsiSu0o0+2CcuI<+Mp%!?N6huBL41Ba3je&T^H)wBQw~$AtK7YL*NP`%fPlcFhSFpV>OzK6wb3k>&r^lU9G3Q z{wffcbhO?c+_PWcKDBGxKLc(J_QXqF`$ZSULXoK2Q6KCE0@+arYm(g!!W7oG$~{GkSc?p>v5vJLI(1uT;T^F!A%+N?g3C%n~Bl03cC zIM17BZEfwoOkMQ7J`naed8Son5DMro^juscZw%Whj_npbFfG<1mg;E4ars%l04}1W zqGM~(={^N(CFJt%)pwY_;nhhc;iEsQczNqXZYGYIr?KJPNY zvvX9jzH=E2q>4{x=^ij%Fu7 zkXtx3=) zPr!Cf$zrUG?;dG$Pd}~>3H7BE!Sc1WXO33ai7TUoyxRzKkP@BszT--oW1E}PiYh8S z%uXc6^EF#4QyHReWySaAPZwG4w+Biepqmx_Hb12AGr%tZoc`J0-}#MENm&TykJf|= z(lgS=wO93{5fT7Bwg%&Y+?^2D+ZUrgvp0K$4=G29t0i>Ii*Ta$$456l;j5>(QiplC z2xU)wpLQ=m#9BCIN(iRehM#)*o^ZG=9SaVYxj#T$z{|ZamfS86>R}bG2YO-`ivR|E z7x(HsaLxHR^1b1FT0b6N@@ABmS*rht(x`Xeb#LhMpFFYlX!?_O{%k=k;|f?Z*Ry*5p65zTOp=JkW5qxu98 zq!PKfub;QvTjD$Fb=azJxlm7N#WdXkB!H5PW>VX0L79a;Q8dsrvTD3uxiumgkqvXZ zI9!@-{Ybj|W3tC(#t;j1c|HTacawSB!STN-K>L%}r_&MR{hsGBP%Bmm_!zZ-suz9* zH`p!TE=m25+p~9t;pLxHyGmGQ4_u#HszvsO3o&PzDcP&Q{e$5OIg_3sNNY0I@vk%t zP)i!`4Jp1l$*IOC-3a4xQn>)j{09P7Z>ikzB{qC6u_jC0YwT@N1) z^1pu%y}p3=CAd6a6)^Ej7|t+D#=$)u8XW8nf(z|xxk@BgxAPK_Y^DM^xTQr5n?Wl! zKHjVl2kfyC-yf@nBnGKR`%&_l54M-!C%j*Qlqo7Hy)=m51wn+sUSt3fZ!VlKosN7v zPfZ>UTP6$0OK&w)y@kUAf9&bgT_isAZZIYU8E^I1J07eg>wqt)Or4WVns5$bZD8Ft zUvW%4@&GifM?fu2oych@BQ1@xJ5?N<%=ae8|5suQUD$q1?)T?j9Q3sWt;m5T{3DQpExNpd2_9lG92eFB<+L*@D3j><650=PFak%5Z=XB;_O(@(D@vQ+%SJ2O5wK; z0P+EYxcJh>;pp&N+m5I}4EM=(DtAFzPLv$$$xetc90ysj#p27(ULjjA*F0=7&W)iz zUD}-hRx?q9BC%t|uV~&6lrvYFExqQqO!`c6Fer|kUtA=Qc(eDu>w@C=Hb(5(px2PS zPiM=_5wLPkF35AIU#6z&rxs--C53$2=%?f2!uO!Y2QvR^J#;;i>gTC@G@zN?@8RJY zd+P(5t+6CRh&$6j^^b`YIP`;RYWTfxr@R1<=&CXsI9duTABAUK-(&Ygt$wL(g#6U= zOv|mTq^rf-vhYU~Jdz*qmy>Eir+j~CbGqaQ0dA)~G5m52NDwu8)`xebfFjU7m9IuK znD&B*l*_0)Kf^by=PT(tkcg6AI57cb+lQtrt3th{K;76o0D))fI4~pcm_e6#-Bq9Y z@}sc4iPO$$%if?i)kwmtI=xZs(W$o?5ov)}!LgWKDx>j43cf~>E6)<78Dp6$lp0b$cU4xGn3{QB#}jLHkkq5N~W^mQRDB@>AF z;^qk57Q~kMcDgJ6@US1&5Gc)P;wh-&jAr@s=u)BMSQS;0h5%MPHD!3<$BU#qd=Oym zdo#qJojE50nO?811;gUdu-=Q6 zgf5vPXhr(@!@&j{{_0PUqodC&+pOU?a-di;R|j;`qZUSk9WQKdahg5P%j ziJI6kx}e=+2+R+;o`axww(!a0TblLT9zHhx2yQZr@Z+|bbKc3%&% zJf#Z-?+TX$a(t?))h%oY;DtPvHa<63!x^K6tryP>&bvI6$@OU%6h{800ki81<@BJ_ zo-J?_r`mDy=fjut?{^E_#_H@DK<$V|uQ4A*QSS=x2h$@F~stAg~$ZvYAXuJ^r8Xmhqf*4L4?Y69stM>b-@Lv zTIrouOUc#(__lMqBE_C2IWU9u5Y$RTxoutK>Shs4W}i~{h`lJ|;qR>v#zvf&sFz+h z#84M5VzLuSz*n*nzZ!}xGQ)L4Bw$toZ@h0iIOaXBKlgZfdNx^a_U*-Ywv~4PxbH7v zt1{sSe`7f5?Sno(UG_4=$k0&eo(>l3;!;3iA%a5ny+gH+VF(;m0^;L}Ann2&Ih3kZ32 z)uvdcNpZeA*%!yE$?do%tK{rf=1tMimI!wOg1vPhi~v^NYPGp>kiloKEQ`Fmjo-@f zqi*#)?*xi~15^l=sB5PAP|7{?dqgFI4l+sqwALNUrY3n?lk3y5YyPnvfqfb2`r=J~ zlWwlPFe(YtGfWc|a$G=avbp-?Y~kerN+5PJ4un1pnexH*CUh9;zOoqK#)qQlXzgCS zq_0~OBQct4Cq?nQKB(VLucVpD{JgXI+Havc|RgxA>_CM`AAG`YMy z0!}K)fV!r`E^3$+UW(&i&W=Pt}@nl6+DV%9UkQZS6f!Zhu6|e&fPc(Q9xEq<6>tZ9*`H z;=}Hgv+=k5mdiiuz3n%podUl$IIN=f$3MraUnuoGBJM9=HCbMx5m-w#tSynx&*-1d>Lj7p3Mzpm*4 zfWVi~3|KW8&EcF4g0=*Qh{$u*lQ$OsLE&x+-~3QsiYcg2K`=ljplL7-dXV{wUw3~S(`VHPLwi3LBA-t{ln zjS@yR$~<1OO-~^LZifcdZma((y4 zxhc1C4=B3h@L+yldkY0nKmh9X2Ep4fR;W1c4zHEsRqOeMbeFuU@c?TZcugta7tcDp zj-YPg%fk;6?aS+1l}@=X44FM49|hKWDagpkd{?(%NV_}30)ywv?PbLFPZy@0&&R)J zX^dLQYC5bJr(EVO6iDj(U=`?0w{0yq$B%f`^tEQ(sw*?kic}Mv`Xd1<(p-0N9#KOD zC;{U?JQ!{Yry`!74iYFmpyPS$X<#DfgJ1CK-?;#93*TUjm{N5e5VL*gx#DxLRmB5x z$p?ew7ZVCn#U59sJ@@ZZqkK+4xWVW7vbR&o-hF|(=GAIGvr-;)QL}&9c5lR)x>kS) z#n>ai`fw#k0&mz10Z2pIz)Oq-_}@C<<~miTq4(8D*d>qyU3BL5aX{sE!g&wdve*!J z8+5R$Mw+3nnhdqoWI+M;DZ5(NA1CrBrZ%%)AfdYx5|MDvo?6$F>i)bv8iiE(^W(R} zEK2f{iCkbKfLlHSmGAt4!@xU}g%fkYF#bDC2p}707}Z+6+qf?;80~tGkGk-4Dk?_f zYL4DNoF<%3uUK|Jmw=Tr_wc9Q=agEn5zd>-a~0nOosJ)YUEcNICwHTgZjxYvTHJ#N ztqbExvBY0@qF(5Z*;5oJ0rJnG>e7v!m&dT1oMlo!R1gCO#S=ju7;9Bp?nfB@#m z59vWIUukh$^~{txh7yk4Z5KTIh?SGL zQKpLC6+fHSF4iioviM}TP*+;GiR&K0|1D7$kxSNvdDB~b!K%r0e!6s_J1~DfcL@lK z+-7eim6YAbJKy(1I2n8{e5R|c;Ye;kTD)i5j7(yKOL88B0z8|ha;BM=&WR77+{

    &-3O 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 From 468fd6139a186fb9a49a5d629f5b17e362b50585 Mon Sep 17 00:00:00 2001 From: Fikou Date: Tue, 25 Feb 2020 01:01:59 +0100 Subject: [PATCH 035/115] i dont want him that late --- code/modules/research/techweb/all_nodes.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index e8c3fd325d9..9eff92b9c8e 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -144,7 +144,7 @@ design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", "scanner_gate", "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "welding_goggles", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", "apc_control", "cell_charger", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", - "oxygen_tank", "plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt") + "oxygen_tank", "plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt", "conveyor_belt") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) export_price = 5000 @@ -737,7 +737,7 @@ id = "mecha_clarke" display_name = "EXOSUIT: Clarke" description = "Clarke exosuit designs" - prereq_ids = list("basic_mining") + prereq_ids = list("engineering") design_ids = list("clarke_chassis", "clarke_torso", "clarke_head", "clarke_left_arm", "clarke_right_arm", "clarke_main", "clarke_peri") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 From 2d0c1cc04ffd840e01b823bde82957a5d726be4e Mon Sep 17 00:00:00 2001 From: Fikou Date: Tue, 25 Feb 2020 01:05:08 +0100 Subject: [PATCH 036/115] you land in the shed --- code/modules/research/designs/autolathe_designs.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index ff9f3682a26..da6db4e05ec 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -891,19 +891,21 @@ /datum/design/conveyor_belt name = "Conveyor Belt" id = "conveyor_belt" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE materials = list(/datum/material/iron = 3000) build_path = /obj/item/stack/conveyor - category = list("initial", "Construction") + category = list("initial", "Construction", "Electronics") maxstack = 30 + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/conveyor_switch name = "Conveyor Belt Switch" id = "conveyor_switch" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE materials = list(/datum/material/iron = 450, /datum/material/glass = 190) build_path = /obj/item/conveyor_switch_construct - category = list("initial", "Construction") + category = list("initial", "Construction", "Electronics") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/laptop name = "Laptop Frame" From 0ca285f55fc179b1b20ea6423bd34ad4b23afd89 Mon Sep 17 00:00:00 2001 From: Fikou Date: Tue, 25 Feb 2020 01:06:16 +0100 Subject: [PATCH 037/115] meh --- code/modules/research/techweb/all_nodes.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 9eff92b9c8e..b4f8fd06057 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -11,7 +11,7 @@ design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "desttagger", "handlabel", "packagewrap", "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "bepis", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", "paystand", "space_heater", "bucket", "sec_rshot", "sec_beanbag_slug", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "rglass", "plasteel", - "plastitanium", "plasmaglass", "plasmareinforcedglass", "titaniumglass", "plastitaniumglass", "plastic_knife", "plastic_fork", "plastic_spoon") + "plastitanium", "plasmaglass", "plasmareinforcedglass", "titaniumglass", "plastitaniumglass", "plastic_knife", "plastic_fork", "plastic_spoon", "conveyor_belt", "conveyor_switch") /datum/techweb_node/mmi id = "mmi" @@ -144,7 +144,7 @@ design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", "scanner_gate", "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "welding_goggles", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", "apc_control", "cell_charger", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", - "oxygen_tank", "plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt", "conveyor_belt") + "oxygen_tank", "plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) export_price = 5000 From facef200d481877bf7031ff7363cf31998645a98 Mon Sep 17 00:00:00 2001 From: Fikou Date: Tue, 25 Feb 2020 01:48:34 +0100 Subject: [PATCH 038/115] last commit probably --- code/game/machinery/computer/arcade.dm | 1 + code/game/mecha/mecha.dm | 2 ++ code/game/mecha/mecha_actions.dm | 12 ++++++++---- code/game/mecha/mecha_parts.dm | 2 +- code/game/mecha/working/clarke.dm | 1 + code/modules/holiday/easter.dm | 1 + 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 846a1deaa4c..0293cda2965 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -21,6 +21,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/toy/prize/odysseus = 1, /obj/item/toy/prize/phazon = 1, /obj/item/toy/prize/reticence = 1, + /obj/item/toy/prize/clarke = 1, /obj/item/toy/cards/deck = 2, /obj/item/toy/nuke = 2, /obj/item/toy/minimeteor = 2, diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 599fdf00b03..599a90b3fb5 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -108,6 +108,8 @@ var/phasing_energy_drain = 200 var/phase_state = "" //icon_state when phasing var/strafe = FALSE //If we are strafing + var/canstrafe = TRUE //if we can turn on strafing + var/haslights = TRUE //if we can turn on lights var/nextsmash = 0 var/smashcooldown = 3 //deciseconds diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 67247b766eb..11c063ae015 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -6,9 +6,11 @@ if(enclosed) internals_action.Grant(user, src) cycle_action.Grant(user, src) - lights_action.Grant(user, src) + if(haslights) + lights_action.Grant(user, src) stats_action.Grant(user, src) - strafing_action.Grant(user, src) + if(canstrafe) + strafing_action.Grant(user, src) /obj/mecha/proc/RemoveActions(mob/living/user, human_occupant = 0) @@ -16,9 +18,11 @@ eject_action.Remove(user) internals_action.Remove(user) cycle_action.Remove(user) - lights_action.Remove(user) + if(haslights) + lights_action.Remove(user) stats_action.Remove(user) - strafing_action.Remove(user) + if(canstrafe) + strafing_action.Remove(user) /datum/action/innate/mecha diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 7da7af7aeca..6cea47e811f 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -373,4 +373,4 @@ /obj/item/circuitboard/mecha/clarke/main name = "Clarke Central Control module (Exosuit Board)" - icon_state = "mainboard" \ No newline at end of file + icon_state = "mainboard" diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index 5d839876e14..81a47641d8a 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -14,6 +14,7 @@ wreckage = /obj/structure/mecha_wreckage/clarke enter_delay = 40 cargo_capacity = 20 + canstrafe = FALSE /obj/mecha/working/clarke/moved_inside(mob/living/carbon/human/H) . = ..() diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 2f0e032c946..6f3f2e748f2 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -148,6 +148,7 @@ /obj/item/toy/prize/phazon, /obj/item/toy/prize/reticence, /obj/item/toy/prize/honk, + /obj/item/toy/prize/clarke, /obj/item/toy/plush/carpplushie, /obj/item/toy/redbutton, /obj/item/toy/windupToolbox, From 77afd3d86c3124be4375dda34caa007001c164f0 Mon Sep 17 00:00:00 2001 From: Fikou Date: Tue, 25 Feb 2020 16:31:30 +0100 Subject: [PATCH 039/115] atomization + buffs/nerfs --- code/game/mecha/working/clarke.dm | 8 ++++---- code/game/mecha/working/ripley.dm | 8 +++++--- code/modules/cargo/bounties/mech.dm | 6 +++--- code/modules/research/techweb/all_nodes.dm | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index 81a47641d8a..085b16ae21e 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -3,17 +3,17 @@ name = "\improper Clarke" icon_state = "clarke" max_temperature = 65000 - max_integrity = 250 - step_in = 1.5 + max_integrity = 200 + step_in = 1.25 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF lights_power = 7 deflect_chance = 10 step_energy_drain = 15 //slightly higher energy drain since you movin those wheels FAST - armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 30, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100) //low bullet/melee armor to compensate for fire protection and speed + armor = list("melee" = 20, "bullet" = 10, "laser" = 20, "energy" = 10, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100) //low armor to compensate for fire protection and speed max_equip = 6 wreckage = /obj/structure/mecha_wreckage/clarke enter_delay = 40 - cargo_capacity = 20 + cargo_capacity = 10 canstrafe = FALSE /obj/mecha/working/clarke/moved_inside(mob/living/carbon/human/H) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 5b6b44b2fa1..7047b327a33 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -5,7 +5,7 @@ silicon_icon_state = "ripley-empty" step_in = 1.5 //Move speed, lower is faster. var/fast_pressure_step_in = 1.5 //step_in while in low pressure conditions - var/slow_pressure_step_in = 2.0 //step_in while in normal pressure conditions + var/slow_pressure_step_in = 2 //step_in while in normal pressure conditions max_temperature = 20000 max_integrity = 200 lights_power = 7 @@ -44,13 +44,15 @@ /obj/mecha/working/ripley/mkii - desc = "Autonomous Power Loader Unit MK-II. This prototype Ripley is refitted with a pressurized cabin, trading its prior speed for atmospheric protection" + desc = "Autonomous Power Loader Unit MK-II. This prototype Ripley is refitted with a pressurized cabin, trading its prior speed for atmospheric protection and armor." name = "\improper APLU MK-II \"Ripley\"" icon_state = "ripleymkii" fast_pressure_step_in = 2 //step_in while in low pressure conditions slow_pressure_step_in = 4 //step_in while in normal pressure conditions step_in = 4 - armor = list("melee" = 40, "bullet" = 20, "laser" = 10, "energy" = 20, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) + max_temperature = 30000 + max_integrity = 250 + armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100) wreckage = /obj/structure/mecha_wreckage/ripley/mkii enclosed = TRUE enter_delay = 40 diff --git a/code/modules/cargo/bounties/mech.dm b/code/modules/cargo/bounties/mech.dm index f62364060fa..4cbab32d349 100644 --- a/code/modules/cargo/bounties/mech.dm +++ b/code/modules/cargo/bounties/mech.dm @@ -20,12 +20,12 @@ /datum/bounty/item/mech/clarke name = "Clarke" - reward = 20000 + reward = 16000 wanted_types = list(/obj/mecha/working/clarke) /datum/bounty/item/mech/odysseus name = "Odysseus" - reward = 13000 + reward = 11000 wanted_types = list(/obj/mecha/medical/odysseus) /datum/bounty/item/mech/gygax @@ -35,7 +35,7 @@ /datum/bounty/item/mech/durand name = "Durand" - reward = 25000 + reward = 20000 wanted_types = list(/obj/mecha/combat/durand) /datum/bounty/item/mech/phazon diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index b4f8fd06057..e7fb7fb378e 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -727,7 +727,7 @@ id = "mecha_odysseus" display_name = "EXOSUIT: Odysseus" description = "Odysseus exosuit designs" - prereq_ids = list("biotech") + prereq_ids = list("base") design_ids = list("odysseus_chassis", "odysseus_torso", "odysseus_head", "odysseus_left_arm", "odysseus_right_arm" ,"odysseus_left_leg", "odysseus_right_leg", "odysseus_main", "odysseus_peri") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) From 74514f0f8a6d0665f5ad607933ce43c086dd68d8 Mon Sep 17 00:00:00 2001 From: Fikou Date: Wed, 26 Feb 2020 16:59:47 +0100 Subject: [PATCH 040/115] e --- code/game/mecha/mech_fabricator.dm | 2 +- code/game/mecha/working/clarke.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 13de9fe5b19..9feb2e8a3e6 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -24,8 +24,8 @@ var/list/part_sets = list( "Cyborg", "Ripley", - "Clarke", "Odysseus", + "Clarke", "Gygax", "Durand", "H.O.N.K", diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index 085b16ae21e..aeee6546146 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -13,7 +13,7 @@ max_equip = 6 wreckage = /obj/structure/mecha_wreckage/clarke enter_delay = 40 - cargo_capacity = 10 + cargo_capacity = 1 //you either take the ore box or something else canstrafe = FALSE /obj/mecha/working/clarke/moved_inside(mob/living/carbon/human/H) From 87fcd71f375c91b8a07bc399b0a55146b62e54a4 Mon Sep 17 00:00:00 2001 From: Zxaber <37497534+zxaber@users.noreply.github.com> Date: Wed, 26 Feb 2020 14:15:24 -0800 Subject: [PATCH 041/115] Ore box and manager I think I'm doing this right --- code/game/mecha/working/clarke.dm | 38 +++++++++++++++++++++++++++++- code/game/mecha/working/working.dm | 4 ++-- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index 085b16ae21e..3dc228ac796 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -10,11 +10,18 @@ deflect_chance = 10 step_energy_drain = 15 //slightly higher energy drain since you movin those wheels FAST armor = list("melee" = 20, "bullet" = 10, "laser" = 20, "energy" = 10, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100) //low armor to compensate for fire protection and speed - max_equip = 6 + max_equip = 7 wreckage = /obj/structure/mecha_wreckage/clarke enter_delay = 40 cargo_capacity = 10 canstrafe = FALSE + var/obj/structure/ore_box/box + +/obj/mecha/working/clarke/Initialize() + . = ..() + box = new /obj/structure/ore_box(src) + var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/orebox_manager(src) + ME.attach(src) /obj/mecha/working/clarke/moved_inside(mob/living/carbon/human/H) . = ..() @@ -35,3 +42,32 @@ var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_ADVANCED] var/mob/living/brain/B = M.brainmob hud.add_hud_to(B) + +////Ore Box Controls//// + +/obj/item/mecha_parts/mecha_equipment/orebox_manager //Special equipment for Clarke + name = "ore storage module" + desc = "An automated ore box management device." + icon_state = "mecha_clamp" //None of this should matter, this shouldn't ever exist outside a mech anyway. + selectable = FALSE + detachable = FALSE + salvageable = FALSE + var/obj/mecha/working/clarke/hostmech //New var to avoid istype checking every time the topic button is pressed. This will only work inside Clarke mechs + +/obj/item/mecha_parts/mecha_equipment/orebox_manager/attach(obj/mecha/M) + if(istype(M, /obj/mecha/working/clarke)) + hostmech = M + . = ..() + +/obj/item/mecha_parts/mecha_equipment/orebox_manager/detach() + hostmech = null //just in case + . = ..() + +/obj/item/mecha_parts/mecha_equipment/orebox_manager/Topic(href,href_list) + ..() + if(!hostmech || !hostmech.box) + return + hostmech.box.dump_box_contents() + +/obj/item/mecha_parts/mecha_equipment/orebox_manager/get_equip_info() + return "[..()] [hostmech?.box?"Unload Cargo":"Error"]" \ No newline at end of file diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index 454937998f3..de81502ab64 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -9,8 +9,8 @@ collect_ore() /obj/mecha/working/proc/collect_ore() - if(locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) - var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in cargo + if((locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) || (locate(/obj/item/mecha_parts/mecha_equipment/orebox_manager) in equipment)) + var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in contents if(ore_box) for(var/obj/item/stack/ore/ore in range(1, src)) if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it! From 7439046622a0e84cc1fd12c98595596c0cd9ba27 Mon Sep 17 00:00:00 2001 From: Fikou Date: Wed, 26 Feb 2020 23:40:08 +0100 Subject: [PATCH 042/115] ok zxaber --- code/game/mecha/equipment/tools/work_tools.dm | 4 +- code/game/mecha/working/clarke.dm | 6 +- code/game/mecha/working/ripley.dm | 57 ++++++++++++++++++- code/game/mecha/working/working.dm | 55 ------------------ 4 files changed, 63 insertions(+), 59 deletions(-) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 70a16e37dd1..35bf8797306 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -11,10 +11,10 @@ tool_behaviour = TOOL_RETRACTOR toolspeed = 0.8 var/dam_force = 20 - var/obj/mecha/working/cargo_holder + var/obj/mecha/working/ripley/cargo_holder harmful = TRUE -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/can_attach(obj/mecha/working/M as obj) +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/can_attach(obj/mecha/working/ripley/M as obj) if(..()) if(istype(M)) return 1 diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index a85b74d2f7c..5ee21ae9646 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -23,6 +23,10 @@ var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/orebox_manager(src) ME.attach(src) +/obj/mecha/working/clarke/Destroy() + box.dump_box_contents() + return ..() + /obj/mecha/working/clarke/moved_inside(mob/living/carbon/human/H) . = ..() if(.) @@ -70,4 +74,4 @@ hostmech.box.dump_box_contents() /obj/item/mecha_parts/mecha_equipment/orebox_manager/get_equip_info() - return "[..()] [hostmech?.box?"Unload Cargo":"Error"]" \ No newline at end of file + return "[..()] [hostmech?.box?"Unload Cargo":"Error"]" diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 7047b327a33..834f0950fa5 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -37,12 +37,18 @@ possible_int_damage -= (MECHA_INT_TEMP_CONTROL + MECHA_INT_TANK_BREACH) //if we don't even have an air tank, these two doesn't make a ton of sense. . = ..() - /obj/mecha/working/ripley/Initialize() . = ..() AddComponent(/datum/component/armor_plate,3,/obj/item/stack/sheet/animalhide/goliath_hide,list("melee" = 10, "bullet" = 5, "laser" = 5)) +/obj/mecha/working/ripley/Destroy() + for(var/atom/movable/A in cargo) + A.forceMove(drop_location()) + step_rand(A) + cargo.Cut() + return ..() + /obj/mecha/working/ripley/mkii desc = "Autonomous Power Loader Unit MK-II. This prototype Ripley is refitted with a pressurized cabin, trading its prior speed for atmospheric protection and armor." name = "\improper APLU MK-II \"Ripley\"" @@ -125,6 +131,55 @@ var/obj/item/mecha_parts/mecha_equipment/mining_scanner/scanner = new scanner.attach(src) +/obj/mecha/working/ripley/Exit(atom/movable/O) + if(O in cargo) + return 0 + return ..() + +/obj/mecha/working/ripley/Topic(href, href_list) + ..() + if(href_list["drop_from_cargo"]) + var/obj/O = locate(href_list["drop_from_cargo"]) in cargo + if(O) + occupant_message("You unload [O].") + O.forceMove(drop_location()) + cargo -= O + log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]", LOG_MECHA) + return + + +/obj/mecha/working/ripley/contents_explosion(severity, target) + for(var/X in cargo) + var/obj/O = X + if(prob(30/severity)) + cargo -= O + O.forceMove(drop_location()) + . = ..() + +/obj/mecha/working/ripley/get_stats_part() + var/output = ..() + output += "Cargo Compartment Contents:
    " + if(cargo.len) + for(var/obj/O in cargo) + output += "Unload : [O]
    " + else + output += "Nothing" + output += "
    " + return output + +/obj/mecha/working/ripley/relay_container_resist(mob/living/user, obj/O) + to_chat(user, "You lean on the back of [O] and start pushing so it falls out of [src].") + if(do_after(user, 300, target = O)) + if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src ) + return + to_chat(user, "You successfully pushed [O] out of [src]!") + O.forceMove(drop_location()) + cargo -= O + else + if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. + to_chat(user, "You fail to push [O] out of [src]!") + + /obj/mecha/working/ripley/proc/update_pressure() var/turf/T = get_turf(loc) diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index de81502ab64..67db67100c0 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -15,58 +15,3 @@ for(var/obj/item/stack/ore/ore in range(1, src)) if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it! ore.forceMove(ore_box) - -/obj/mecha/working/Destroy() - for(var/atom/movable/A in cargo) - A.forceMove(drop_location()) - step_rand(A) - cargo.Cut() - return ..() - -/obj/mecha/working/Exit(atom/movable/O) - if(O in cargo) - return 0 - return ..() - -/obj/mecha/working/Topic(href, href_list) - ..() - if(href_list["drop_from_cargo"]) - var/obj/O = locate(href_list["drop_from_cargo"]) in cargo - if(O) - occupant_message("You unload [O].") - O.forceMove(drop_location()) - cargo -= O - log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]", LOG_MECHA) - return - - -/obj/mecha/working/contents_explosion(severity, target) - for(var/X in cargo) - var/obj/O = X - if(prob(30/severity)) - cargo -= O - O.forceMove(drop_location()) - . = ..() - -/obj/mecha/working/get_stats_part() - var/output = ..() - output += "Cargo Compartment Contents:
    " - if(cargo.len) - for(var/obj/O in cargo) - output += "Unload : [O]
    " - else - output += "Nothing" - output += "
    " - return output - -/obj/mecha/working/relay_container_resist(mob/living/user, obj/O) - to_chat(user, "You lean on the back of [O] and start pushing so it falls out of [src].") - if(do_after(user, 300, target = O)) - if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src ) - return - to_chat(user, "You successfully pushed [O] out of [src]!") - O.forceMove(drop_location()) - cargo -= O - else - if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. - to_chat(user, "You fail to push [O] out of [src]!") From af02d9e389ff4fa5b3dd68a8d4a4484325de2fa7 Mon Sep 17 00:00:00 2001 From: Fikou Date: Fri, 6 Mar 2020 22:55:37 +0100 Subject: [PATCH 043/115] fuck --- code/game/mecha/working/working.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index 67db67100c0..a14c5057161 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -1,7 +1,5 @@ /obj/mecha/working internal_damage_threshold = 60 - var/list/cargo = new - var/cargo_capacity = 15 /obj/mecha/working/Move() . = ..() From c519aa42d096f37e44a23c065ffb97c2df1be2d5 Mon Sep 17 00:00:00 2001 From: Fikou Date: Fri, 6 Mar 2020 22:56:18 +0100 Subject: [PATCH 044/115] yo dingodng man --- code/game/mecha/working/ripley.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 834f0950fa5..d547fbb9907 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -14,11 +14,13 @@ max_equip = 6 wreckage = /obj/structure/mecha_wreckage/ripley internals_req_access = list(ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_MINING) - var/hides = 0 enclosed = FALSE //Normal ripley has an open cockpit design enter_delay = 10 //can enter in a quarter of the time of other mechs exit_delay = 10 opacity = FALSE //Ripley has a window + var/list/cargo = new + var/cargo_capacity = 15 + var/hides = 0 /obj/mecha/working/ripley/Move() . = ..() From 3f82c98825ca51176f8d4105d3940cc23bc07394 Mon Sep 17 00:00:00 2001 From: Fikou Date: Fri, 6 Mar 2020 23:00:18 +0100 Subject: [PATCH 045/115] forgot to remove that haha --- code/game/mecha/working/clarke.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index 5ee21ae9646..009cdde0a4f 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -13,7 +13,6 @@ max_equip = 7 wreckage = /obj/structure/mecha_wreckage/clarke enter_delay = 40 - cargo_capacity = 1 //you either take the ore box or something else canstrafe = FALSE var/obj/structure/ore_box/box From 73003680ce289de55832ebd1d18c9d9b921f34cd Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Fri, 6 Mar 2020 16:35:16 -0600 Subject: [PATCH 046/115] Update stasis.dm --- code/game/machinery/stasis.dm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index 8daab3a9e16..daa4f3f5962 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -160,10 +160,4 @@ /obj/machinery/stasis/nap_violation(mob/violator) unbuckle_mob(violator, TRUE) - -/obj/machinery/stasis/attack_robot(mob/user) - if(Adjacent(user) && occupant) - unbuckle_mob(occupant) - else - ..() #undef STASIS_TOGGLE_COOLDOWN From 62511d340f892b2af00ccb5900000c5a3e345904 Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Fri, 6 Mar 2020 16:40:21 -0600 Subject: [PATCH 047/115] Update buckling.dm --- code/game/objects/buckling.dm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 7d6662a6876..feecb89c911 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -20,6 +20,22 @@ if(user_unbuckle_mob(buckled_mobs[1],user)) return 1 +///literally just the above extension of attack_hand(), but for silicons instead (with an adjacency check, since attack_robot() doesn't require that) +/atom/movable/attack_robot(mob/living/user) + . = ..() + if(.) + return + if(!Adjacent(user)) + return + if(can_buckle && has_buckled_mobs()) + if(buckled_mobs.len > 1) + var/unbuckled = input(user, "Who do you wish to unbuckle?","Unbuckle Who?") as null|mob in sortNames(buckled_mobs) + if(user_unbuckle_mob(unbuckled,user)) + return 1 + else + if(user_unbuckle_mob(buckled_mobs[1],user)) + return 1 + /atom/movable/MouseDrop_T(mob/living/M, mob/living/user) . = ..() return mouse_buckle_handling(M, user) From f99a11e0b0706814e33616cbc216a39214695849 Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Fri, 6 Mar 2020 16:40:30 -0600 Subject: [PATCH 048/115] Update buckling.dm --- code/game/objects/buckling.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index feecb89c911..485bac51c8b 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -20,7 +20,7 @@ if(user_unbuckle_mob(buckled_mobs[1],user)) return 1 -///literally just the above extension of attack_hand(), but for silicons instead (with an adjacency check, since attack_robot() doesn't require that) +//literally just the above extension of attack_hand(), but for silicons instead (with an adjacency check, since attack_robot() doesn't require that) /atom/movable/attack_robot(mob/living/user) . = ..() if(.) From 701a71ba4abb50d03e93f1afd4f6c2a5e0113ce2 Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Fri, 6 Mar 2020 16:41:08 -0600 Subject: [PATCH 049/115] Update robot_defense.dm --- code/modules/mob/living/silicon/robot/robot_defense.dm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 6250193bdb5..56c5ca0bffc 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -5,14 +5,6 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real /obj/item/clothing/head/chameleon/broken \ ))) -/mob/living/silicon/robot/attack_robot(mob/user) - . = ..() - if(user == src && has_buckled_mobs() && user.a_intent == INTENT_HELP) - for(var/i in buckled_mobs) - var/mob/buckmob = i - unbuckle_mob(buckmob) - - /mob/living/silicon/robot/attackby(obj/item/W, mob/user, params) if(W.tool_behaviour == TOOL_WELDER && (user.a_intent != INTENT_HARM || user == src)) user.changeNext_move(CLICK_CD_MELEE) From d6ead51790071b147a0b82ce5e5402e0552151ff Mon Sep 17 00:00:00 2001 From: Fikou Date: Sat, 7 Mar 2020 10:06:46 +0100 Subject: [PATCH 050/115] Update mecha.dm --- code/game/mecha/mecha.dm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 599a90b3fb5..bb01d186341 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -3,7 +3,7 @@ desc = "Exosuit" icon = 'icons/mecha/mecha.dmi' density = TRUE //Dense. To raise the heat. - opacity = 1 ///opaque. Menacing. + opacity = 1 //opaque. Menacing. move_force = MOVE_FORCE_VERY_STRONG move_resist = MOVE_FORCE_EXTREMELY_STRONG resistance_flags = FIRE_PROOF | ACID_PROOF @@ -25,9 +25,12 @@ armor = list("melee" = 20, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) var/list/facing_modifiers = list(MECHA_FRONT_ARMOUR = 1.5, MECHA_SIDE_ARMOUR = 1, MECHA_BACK_ARMOUR = 0.5) var/equipment_disabled = 0 //disabled due to EMP - var/obj/item/stock_parts/cell/cell ///Keeps track of the mech's cell - var/obj/item/stock_parts/scanning_module/scanmod ///Keeps track of the mech's scanning module - var/obj/item/stock_parts/capacitor/capacitor ///Keeps track of the mech's capacitor + ///Keeps track of the mech's cell + var/obj/item/stock_parts/cell/cell + ///Keeps track of the mech's scanning module + var/obj/item/stock_parts/scanning_module/scanmod + ///Keeps track of the mech's capacitor + var/obj/item/stock_parts/capacitor/capacitor var/construction_state = MECHA_LOCKED var/last_message = 0 var/add_req_access = 1 From de9b635e1b8581114e80dc51fe84bb2a50ec9332 Mon Sep 17 00:00:00 2001 From: Fikou Date: Sat, 7 Mar 2020 10:54:47 +0100 Subject: [PATCH 051/115] code docs --- code/game/mecha/mecha.dm | 6 +++--- code/game/mecha/working/clarke.dm | 8 ++++++-- code/game/mecha/working/ripley.dm | 20 ++++++++++++++------ code/game/mecha/working/working.dm | 1 + 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index bb01d186341..1f66583d5ae 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -25,11 +25,11 @@ armor = list("melee" = 20, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) var/list/facing_modifiers = list(MECHA_FRONT_ARMOUR = 1.5, MECHA_SIDE_ARMOUR = 1, MECHA_BACK_ARMOUR = 0.5) var/equipment_disabled = 0 //disabled due to EMP - ///Keeps track of the mech's cell + /// Keeps track of the mech's cell var/obj/item/stock_parts/cell/cell - ///Keeps track of the mech's scanning module + /// Keeps track of the mech's scanning module var/obj/item/stock_parts/scanning_module/scanmod - ///Keeps track of the mech's capacitor + /// Keeps track of the mech's capacitor var/obj/item/stock_parts/capacitor/capacitor var/construction_state = MECHA_LOCKED var/last_message = 0 diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index 009cdde0a4f..d421d4f8a4c 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -1,3 +1,4 @@ +///Lavaproof, fireproof, fast mech with low armor and higher energy consumption, cannot strafe and has an internal ore box. /obj/mecha/working/clarke desc = "Combining man and machine for a better, stronger engineer. Can even resist lava!" name = "\improper Clarke" @@ -14,6 +15,7 @@ wreckage = /obj/structure/mecha_wreckage/clarke enter_delay = 40 canstrafe = FALSE + ///handles an internal ore box for Clarke var/obj/structure/ore_box/box /obj/mecha/working/clarke/Initialize() @@ -48,14 +50,16 @@ ////Ore Box Controls//// -/obj/item/mecha_parts/mecha_equipment/orebox_manager //Special equipment for Clarke +///Special equipment for the Clarke mech, handles moving ore without giving the mech a hydraulic clamp and cargo compartment. +/obj/item/mecha_parts/mecha_equipment/orebox_manager name = "ore storage module" desc = "An automated ore box management device." icon_state = "mecha_clamp" //None of this should matter, this shouldn't ever exist outside a mech anyway. selectable = FALSE detachable = FALSE salvageable = FALSE - var/obj/mecha/working/clarke/hostmech //New var to avoid istype checking every time the topic button is pressed. This will only work inside Clarke mechs + ///Var to avoid istype checking every time the topic button is pressed. This will only work inside Clarke mechs. + var/obj/mecha/working/clarke/hostmech /obj/item/mecha_parts/mecha_equipment/orebox_manager/attach(obj/mecha/M) if(istype(M, /obj/mecha/working/clarke)) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index d547fbb9907..29ced8f88b0 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -4,8 +4,10 @@ icon_state = "ripley" silicon_icon_state = "ripley-empty" step_in = 1.5 //Move speed, lower is faster. - var/fast_pressure_step_in = 1.5 //step_in while in low pressure conditions - var/slow_pressure_step_in = 2 //step_in while in normal pressure conditions + ///How fast the mech is in low pressure + var/fast_pressure_step_in = 1.5 + ///How fast the mech is in normal pressure + var/slow_pressure_step_in = 2 max_temperature = 20000 max_integrity = 200 lights_power = 7 @@ -18,9 +20,12 @@ enter_delay = 10 //can enter in a quarter of the time of other mechs exit_delay = 10 opacity = FALSE //Ripley has a window - var/list/cargo = new - var/cargo_capacity = 15 + ///Amount of Goliath hides attached to the mech var/hides = 0 + ///List of all things in Ripley's Cargo Compartment + var/list/cargo = new + ///How much things Ripley can carry in their Cargo Compartment + var/cargo_capacity = 15 /obj/mecha/working/ripley/Move() . = ..() @@ -180,8 +185,11 @@ else if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. to_chat(user, "You fail to push [O] out of [src]!") - - +/** + * Makes the mecha go faster and halves the mecha drill cooldown if in Lavaland pressure. + * + * Checks for Lavaland pressure, if that works out the mech's speed is equal to fast_pressure_step_in and the cooldown for the mecha drill is halved. If not it uses slow_pressure_step_in and drill cooldown is normal. + */ /obj/mecha/working/ripley/proc/update_pressure() var/turf/T = get_turf(loc) diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index a14c5057161..0159bd39c1a 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -6,6 +6,7 @@ if(.) collect_ore() +///Proc handling collecting ore, checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box /obj/mecha/working/proc/collect_ore() if((locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) || (locate(/obj/item/mecha_parts/mecha_equipment/orebox_manager) in equipment)) var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in contents From 619738519a1b300da0c2f2802bf5174524099296 Mon Sep 17 00:00:00 2001 From: Fikou Date: Sat, 7 Mar 2020 10:56:39 +0100 Subject: [PATCH 052/115] shid --- code/game/mecha/working/clarke.dm | 4 ++-- code/game/mecha/working/ripley.dm | 10 +++++----- code/game/mecha/working/working.dm | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index d421d4f8a4c..840575404e6 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -15,7 +15,7 @@ wreckage = /obj/structure/mecha_wreckage/clarke enter_delay = 40 canstrafe = FALSE - ///handles an internal ore box for Clarke + /// Handles an internal ore box for Clarke var/obj/structure/ore_box/box /obj/mecha/working/clarke/Initialize() @@ -58,7 +58,7 @@ selectable = FALSE detachable = FALSE salvageable = FALSE - ///Var to avoid istype checking every time the topic button is pressed. This will only work inside Clarke mechs. + /// Var to avoid istype checking every time the topic button is pressed. This will only work inside Clarke mechs. var/obj/mecha/working/clarke/hostmech /obj/item/mecha_parts/mecha_equipment/orebox_manager/attach(obj/mecha/M) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 29ced8f88b0..bede1e3bf7a 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -4,9 +4,9 @@ icon_state = "ripley" silicon_icon_state = "ripley-empty" step_in = 1.5 //Move speed, lower is faster. - ///How fast the mech is in low pressure + /// How fast the mech is in low pressure var/fast_pressure_step_in = 1.5 - ///How fast the mech is in normal pressure + /// How fast the mech is in normal pressure var/slow_pressure_step_in = 2 max_temperature = 20000 max_integrity = 200 @@ -20,11 +20,11 @@ enter_delay = 10 //can enter in a quarter of the time of other mechs exit_delay = 10 opacity = FALSE //Ripley has a window - ///Amount of Goliath hides attached to the mech + /// Amount of Goliath hides attached to the mech var/hides = 0 - ///List of all things in Ripley's Cargo Compartment + /// List of all things in Ripley's Cargo Compartment var/list/cargo = new - ///How much things Ripley can carry in their Cargo Compartment + /// How much things Ripley can carry in their Cargo Compartment var/cargo_capacity = 15 /obj/mecha/working/ripley/Move() diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index 0159bd39c1a..24f02975a12 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -6,7 +6,7 @@ if(.) collect_ore() -///Proc handling collecting ore, checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box +/// Proc handling collecting ore, checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box /obj/mecha/working/proc/collect_ore() if((locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) || (locate(/obj/item/mecha_parts/mecha_equipment/orebox_manager) in equipment)) var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in contents From 0eeb0f7bf8fb6e3332326a285a7812d0675ef895 Mon Sep 17 00:00:00 2001 From: Fikou Date: Sat, 7 Mar 2020 11:04:08 +0100 Subject: [PATCH 053/115] hewwo --- code/game/mecha/working/clarke.dm | 2 +- code/game/mecha/working/working.dm | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index 840575404e6..ad45f120915 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -48,7 +48,7 @@ var/mob/living/brain/B = M.brainmob hud.add_hud_to(B) -////Ore Box Controls//// +//Ore Box Controls ///Special equipment for the Clarke mech, handles moving ore without giving the mech a hydraulic clamp and cargo compartment. /obj/item/mecha_parts/mecha_equipment/orebox_manager diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm index 24f02975a12..874313b0666 100644 --- a/code/game/mecha/working/working.dm +++ b/code/game/mecha/working/working.dm @@ -6,7 +6,11 @@ if(.) collect_ore() -/// Proc handling collecting ore, checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box +/** + * Handles collecting ore. + * + * Checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box. + */ /obj/mecha/working/proc/collect_ore() if((locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) || (locate(/obj/item/mecha_parts/mecha_equipment/orebox_manager) in equipment)) var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in contents From 24fe716055a11e432491866243015d38f2f35889 Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Sun, 8 Mar 2020 00:58:23 -0600 Subject: [PATCH 054/115] Update stasis.dm --- code/game/machinery/stasis.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index daa4f3f5962..5950369bb9e 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -158,6 +158,13 @@ . = ..() return default_deconstruction_crowbar(I) || . +//for some reason, in testing, cyborgs were unable to unbuckle people from stasis beds unless this extension of attack_robot() here was present, so I guess it stays in +/obj/machinery/stasis/attack_robot(mob/user) + if(Adjacent(user) && occupant) + unbuckle_mob(occupant) + else + ..() + /obj/machinery/stasis/nap_violation(mob/violator) unbuckle_mob(violator, TRUE) #undef STASIS_TOGGLE_COOLDOWN From 052c50aef1d5997aca8eb274fb92bf4261c2c5f1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 11 Mar 2020 22:54:56 -0700 Subject: [PATCH 055/115] wack --- code/datums/components/tackle.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 2719cf65a0a..9980a2fc96f 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -86,7 +86,7 @@ to_chat(user, "You're not ready to tackle!") return - if(user.has_movespeed_modifier(MOVESPEED_ID_SHOVE)) // can't tackle if you just got shoved + if(user.has_movespeed_modifier(/datum/movespeed_modifier/shove)) // can't tackle if you just got shoved to_chat(user, "You're too off balance to tackle!") return @@ -167,8 +167,8 @@ to_chat(target, "[user] lands a weak tackle on you, briefly knocking you off-balance!") user.Knockdown(30) - if(ishuman(target) && !T.has_movespeed_modifier(MOVESPEED_ID_SHOVE)) - T.add_movespeed_modifier(MOVESPEED_ID_SHOVE, multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH) // maybe define a slightly more severe/longer slowdown for this + if(ishuman(target) && !T.has_movespeed_modifier(/datum/movespeed_modifier/shove)) + T.add_movespeed_modifier(/datum/movespeed_modifier/shove) // maybe define a slightly more severe/longer slowdown for this addtimer(CALLBACK(T, /mob/living/carbon/human/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH) if(-1 to 0) // decent hit, both parties are about equally inconvenienced From 8cecd37cd98957a1f6e04b803c20450a876330c3 Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Sat, 14 Mar 2020 04:41:04 -0500 Subject: [PATCH 056/115] Update stasis.dm --- code/game/machinery/stasis.dm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index 5950369bb9e..daa4f3f5962 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -158,13 +158,6 @@ . = ..() return default_deconstruction_crowbar(I) || . -//for some reason, in testing, cyborgs were unable to unbuckle people from stasis beds unless this extension of attack_robot() here was present, so I guess it stays in -/obj/machinery/stasis/attack_robot(mob/user) - if(Adjacent(user) && occupant) - unbuckle_mob(occupant) - else - ..() - /obj/machinery/stasis/nap_violation(mob/violator) unbuckle_mob(violator, TRUE) #undef STASIS_TOGGLE_COOLDOWN From 47ea5e04caad495019e3a4b15bc523ad8116985c Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Sat, 14 Mar 2020 05:00:41 -0500 Subject: [PATCH 057/115] Update _machinery.dm --- code/game/machinery/_machinery.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 15139a39e50..c2461efe9d4 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -322,6 +322,14 @@ Class Procs: /obj/machinery/attack_robot(mob/user) if(!(interaction_flags_machine & INTERACT_MACHINE_ALLOW_SILICON) && !IsAdminGhost(user)) return FALSE + if(Adjacent(user) && can_buckle && has_buckled_mobs()) //so that borgs (but not AIs, sadly (perhaps in a future PR?)) can unbuckle people from machines + if(buckled_mobs.len > 1) + var/unbuckled = input(user, "Who do you wish to unbuckle?","Unbuckle Who?") as null|mob in sortNames(buckled_mobs) + if(user_unbuckle_mob(unbuckled,user)) + return 1 + else + if(user_unbuckle_mob(buckled_mobs[1],user)) + return 1 return _try_interact(user) /obj/machinery/attack_ai(mob/user) From 656998c01d9f28e561e30081e55c97eca14895e9 Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Sat, 14 Mar 2020 05:02:25 -0500 Subject: [PATCH 058/115] Update buckling.dm --- code/game/objects/buckling.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 485bac51c8b..e96fbace05e 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -20,14 +20,12 @@ if(user_unbuckle_mob(buckled_mobs[1],user)) return 1 -//literally just the above extension of attack_hand(), but for silicons instead (with an adjacency check, since attack_robot() doesn't require that) +//literally just the above extension of attack_hand(), but for silicons instead (with an adjacency check, since attack_robot() being called doesn't mean that you're adjacent to something) /atom/movable/attack_robot(mob/living/user) . = ..() if(.) return - if(!Adjacent(user)) - return - if(can_buckle && has_buckled_mobs()) + if(Adjacent(user) && can_buckle && has_buckled_mobs()) if(buckled_mobs.len > 1) var/unbuckled = input(user, "Who do you wish to unbuckle?","Unbuckle Who?") as null|mob in sortNames(buckled_mobs) if(user_unbuckle_mob(unbuckled,user)) From 17684cdfdcbbfc934c0818c49b88c213f9543e9c Mon Sep 17 00:00:00 2001 From: ATH1909 <42606352+ATH1909@users.noreply.github.com> Date: Sat, 14 Mar 2020 06:13:03 -0500 Subject: [PATCH 059/115] Update stasis.dm --- code/game/machinery/stasis.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index daa4f3f5962..da8111f5714 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -160,4 +160,5 @@ /obj/machinery/stasis/nap_violation(mob/violator) unbuckle_mob(violator, TRUE) + #undef STASIS_TOGGLE_COOLDOWN From 79c5a80ca02004053a5eb7e4498cb156d24383cd Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Mon, 16 Mar 2020 14:55:25 +0200 Subject: [PATCH 060/115] Visible_messages verb time tenses changed to present. --- code/game/machinery/doors/airlock.dm | 6 ++--- code/game/machinery/firealarm.dm | 4 ++-- code/game/machinery/flasher.dm | 2 +- code/game/machinery/igniter.dm | 4 ++-- .../mecha/equipment/tools/medical_tools.dm | 2 +- code/game/mecha/mecha_construction_paths.dm | 2 +- .../effects/effect_system/effects_smoke.dm | 2 +- code/game/objects/items.dm | 4 ++-- code/game/objects/items/defib.dm | 4 ++-- code/game/objects/items/devices/PDA/PDA.dm | 4 ++-- .../objects/items/devices/lightreplacer.dm | 2 +- code/game/objects/items/devices/scanners.dm | 4 ++-- code/game/objects/items/dice.dm | 2 +- .../objects/items/implants/implantchair.dm | 4 ++-- code/game/objects/items/implants/implanter.dm | 2 +- code/game/objects/items/robot/robot_items.dm | 4 ++-- code/game/objects/items/singularityhammer.dm | 2 +- code/game/objects/items/storage/book.dm | 6 ++--- code/game/objects/items/storage/lockbox.dm | 2 +- code/game/objects/items/stunbaton.dm | 8 +++---- code/game/objects/structures.dm | 2 +- code/game/objects/structures/reflector.dm | 2 +- code/game/objects/structures/tables_racks.dm | 2 +- code/game/turfs/closed/minerals.dm | 4 ++-- .../abductor/equipment/abduction_gear.dm | 2 +- code/modules/antagonists/cult/blood_magic.dm | 4 ++-- .../nukeop/equipment/nuclearbomb.dm | 2 +- .../detectivework/footprints_and_rag.dm | 4 ++-- .../kitchen_machinery/microwave.dm | 6 ++--- .../kitchen_machinery/smartfridge.dm | 2 +- code/modules/hydroponics/grown.dm | 2 +- code/modules/mining/ores_coins.dm | 4 ++-- .../carbon/alien/humanoid/alien_powers.dm | 2 +- .../mob/living/carbon/alien/humanoid/queen.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- .../mob/living/carbon/carbon_defense.dm | 4 ++-- code/modules/mob/living/living.dm | 4 ++-- .../mob/living/silicon/robot/robot_defense.dm | 8 +++---- .../mob/living/simple_animal/bot/honkbot.dm | 4 ++-- .../mob/living/simple_animal/bot/secbot.dm | 4 ++-- .../mob/living/simple_animal/hostile/alien.dm | 4 ++-- .../living/simple_animal/hostile/cockroach.dm | 2 +- .../hostile/mining_mobs/goldgrub.dm | 24 +++++++++---------- .../living/simple_animal/hostile/mushroom.dm | 2 +- .../simple_animal/hostile/venus_human_trap.dm | 2 +- .../mob/living/simple_animal/slime/powers.dm | 6 ++--- code/modules/mob/mob_helpers.dm | 2 +- .../computers/item/computer.dm | 2 +- .../suit/n_suit_verbs/energy_net_nets.dm | 2 +- code/modules/power/apc.dm | 14 +++++------ .../power/singularity/containment_field.dm | 2 +- code/modules/power/smes.dm | 2 +- code/modules/projectiles/gun.dm | 12 +++++----- .../projectile/bullets/dart_syringe.dm | 4 ++-- .../projectile/bullets/dnainjector.dm | 4 ++-- code/modules/reagents/reagent_containers.dm | 4 ++-- code/modules/reagents/reagent_dispenser.dm | 2 +- code/modules/recycling/disposal/bin.dm | 2 +- .../surgery/bodyparts/dismemberment.dm | 2 +- 59 files changed, 115 insertions(+), 115 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index a891197ce03..09688813912 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -958,20 +958,20 @@ "You hear welding.") if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) welded = !welded - user.visible_message("[user.name] has [welded? "welded shut":"unwelded"] [src].", \ + user.visible_message("[user.name] [welded? "welds shut":"unwelds"] [src].", \ "You [welded ? "weld the airlock shut":"unweld the airlock"].") update_icon() else if(obj_integrity < max_integrity) if(!W.tool_start_check(user, amount=0)) return - user.visible_message("[user] is welding the airlock.", \ + user.visible_message("[user] begins repairing the airlock.", \ "You begin repairing the airlock...", \ "You hear welding.") if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) obj_integrity = max_integrity machine_stat &= ~BROKEN - user.visible_message("[user.name] has repaired [src].", \ + user.visible_message("[user.name] finishes repairing [src].", \ "You finish repairing the airlock.") update_icon() else diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 57e4ed55e89..9e263df3f42 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -184,9 +184,9 @@ if(W.tool_behaviour == TOOL_MULTITOOL) detecting = !detecting if (src.detecting) - user.visible_message("[user] has reconnected [src]'s detecting unit!", "You reconnect [src]'s detecting unit.") + user.visible_message("[user] reconnects [src]'s detecting unit!", "You reconnect [src]'s detecting unit.") else - user.visible_message("[user] has disconnected [src]'s detecting unit!", "You disconnect [src]'s detecting unit.") + user.visible_message("[user] disconnects [src]'s detecting unit!", "You disconnect [src]'s detecting unit.") return else if(W.tool_behaviour == TOOL_WIRECUTTER) diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 9a2dd768340..a8196b91573 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -63,7 +63,7 @@ if (bulb) user.visible_message("[user] begins to disconnect [src]'s flashbulb.", "You begin to disconnect [src]'s flashbulb...") if(W.use_tool(src, user, 30, volume=50) && bulb) - user.visible_message("[user] has disconnected [src]'s flashbulb!", "You disconnect [src]'s flashbulb.") + user.visible_message("[user] disconnects [src]'s flashbulb!", "You disconnect [src]'s flashbulb.") bulb.forceMove(loc) bulb = null power_change() diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 1883f125d1b..4d97055d7d5 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -100,9 +100,9 @@ add_fingerprint(user) src.disable = !src.disable if (src.disable) - user.visible_message("[user] has disabled \the [src]!", "You disable the connection to \the [src].") + user.visible_message("[user] disables \the [src]!", "You disable the connection to \the [src].") if (!src.disable) - user.visible_message("[user] has reconnected \the [src]!", "You fix the connection to \the [src].") + user.visible_message("[user] reconnects \the [src]!", "You fix the connection to \the [src].") update_icon() else return ..() diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 538ad08eff6..ed53c567222 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -323,7 +323,7 @@ if(length(mobs)) var/mob/living/carbon/M = pick(mobs) var/R - mechsyringe.visible_message(" [M] was hit by the syringe!") + mechsyringe.visible_message(" [M] is hit by the syringe!") if(M.can_inject(null, 1)) if(mechsyringe.reagents) for(var/datum/reagent/A in mechsyringe.reagents.reagent_list) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 55b0fc19233..4f351de43c5 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -59,7 +59,7 @@ . = user.transferItemToLoc(I, parent) if(.) var/atom/parent_atom = parent - user.visible_message("[user] has connected [I] to [parent].", "You connect [I] to [parent].") + user.visible_message("[user] connects [I] to [parent].", "You connect [I] to [parent].") parent_atom.add_overlay(I.icon_state+"+o") qdel(I) diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 0493a176827..4dc3f6207db 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -178,7 +178,7 @@ if(!isnull(U.welded) && !U.welded) //must be an unwelded vent pump or vent scrubber. U.welded = TRUE U.update_icon() - U.visible_message("[U] was frozen shut!") + U.visible_message("[U] is frozen shut!") for(var/mob/living/L in T) L.ExtinguishMob() for(var/obj/item/Item in T) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 4370ccdd4a5..917fa9b30da 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -516,11 +516,11 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb user.do_attack_animation(M) if(M != user) - M.visible_message("[user] has stabbed [M] in the eye with [src]!", \ + M.visible_message("[user] stabs [M] in the eye with [src]!", \ "[user] stabs you in the eye with [src]!") else user.visible_message( \ - "[user] has stabbed [user.p_them()]self in the eyes with [src]!", \ + "[user] stabs [user.p_them()]self in the eyes with [src]!", \ "You stab yourself in the eyes with [src]!" \ ) if(is_human_victim) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 204e18ee016..bdd99549d69 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -463,8 +463,8 @@ if(!req_defib && !combat) return busy = TRUE - M.visible_message("[user] has touched [M] with [src]!", \ - "[user] has touched [M] with [src]!") + M.visible_message("[user] touches [M] with [src]!", \ + "[user] touches [M] with [src]!") M.adjustStaminaLoss(60) M.Knockdown(75) M.Jitter(50) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 573c06c2f8a..ae381240b2f 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -924,12 +924,12 @@ GLOBAL_LIST_EMPTY(PDAs) switch(scanmode) if(PDA_SCANNER_MEDICAL) - C.visible_message("[user] has analyzed [C]'s vitals!") + C.visible_message("[user] analyzes [C]'s vitals.") healthscan(user, C, 1) add_fingerprint(user) if(PDA_SCANNER_HALOGEN) - C.visible_message("[user] has analyzed [C]'s radiation levels!") + C.visible_message("[user] analyzes [C]'s radiation levels.") user.show_message("Analyzing Results for [C]:") if(C.radiation) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index de808acbd90..5dd9c4db557 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -174,7 +174,7 @@ AddUses(new_bulbs) bulb_shards = bulb_shards % shards_required if(new_bulbs != 0) - to_chat(user, "\The [src] has fabricated a new bulb from the broken glass it has stored. It now has [uses] uses.") + to_chat(user, "\The [src] fabricates a new bulb from the broken glass it has stored. It now has [uses] uses.") playsound(src.loc, 'sound/machines/ding.ogg', 50, TRUE) return new_bulbs diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index b02b4f84b05..0fa2b553906 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -537,7 +537,7 @@ GENE SCANNER var/icon = target var/render_list = list() if(!silent && isliving(user)) - user.visible_message("[user] has used the analyzer on [icon2html(icon, viewers(user))] [target].", "You use the analyzer on [icon2html(icon, user)] [target].") + user.visible_message("[user] uses the analyzer on [icon2html(icon, viewers(user))] [target].", "You use the analyzer on [icon2html(icon, user)] [target].") render_list += "Results of analysis of [icon2html(icon, user)] [target]." var/list/airs = islist(mixture) ? mixture : list(mixture) @@ -686,7 +686,7 @@ GENE SCANNER gene_scan(M, user) else - user.visible_message("[user] failed to analyse [M]'s genetic sequence.", "[M] has no readable genetic sequence!") + user.visible_message("[user] fails to analyze [M]'s genetic sequence.", "[M] has no readable genetic sequence!") /obj/item/sequence_scanner/attack_self(mob/user) display_sequence(user) diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index 25210566996..35d3e469403 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -208,7 +208,7 @@ obj/item/dice/d6/ebony if(special_faces.len == sides) result = special_faces[result] if(user != null) //Dice was rolled in someone's hand - user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ + user.visible_message("[user] throws [src]. It lands on [result]. [comment]", \ "You throw [src]. It lands on [result]. [comment]", \ "You hear [src] rolling, it sounds like a [fake_result].") else if(!src.throwing) //Dice was thrown and is coming to rest diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm index b5af9750bf0..69d7bb2b1bb 100644 --- a/code/game/objects/items/implants/implantchair.dm +++ b/code/game/objects/items/implants/implantchair.dm @@ -90,12 +90,12 @@ if(istype(I, /obj/item/implant)) var/obj/item/implant/P = I if(P.implant(M)) - visible_message("[M] has been implanted by [src].") + visible_message("[M] is implanted by [src].") return TRUE else if(istype(I, /obj/item/organ)) var/obj/item/organ/P = I P.Insert(M, FALSE, FALSE) - visible_message("[M] has been implanted by [src].") + visible_message("[M] is implanted by [src].") return TRUE /obj/machinery/implantchair/update_icon_state() diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index 77e3c2c95a6..ffa2ddf349a 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -35,7 +35,7 @@ if (M == user) to_chat(user, "You implant yourself.") else - M.visible_message("[user] has implanted [M].", "[user] implants you.") + M.visible_message("[user] implants [M].", "[user] implants you.") imp = null update_icon() else diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 6987b5093de..ca938d6bf77 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -25,8 +25,8 @@ M.Paralyze(100) M.apply_effect(EFFECT_STUTTER, 5) - M.visible_message("[user] has prodded [M] with [src]!", \ - "[user] has prodded you with [src]!") + M.visible_message("[user] prods [M] with [src]!", \ + "[user] prods you with [src]!") playsound(loc, 'sound/weapons/egloves.ogg', 50, TRUE, -1) diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index 5990e586183..7cea1ff502c 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -120,7 +120,7 @@ var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread s.set_up(5, 1, target.loc) s.start() - target.visible_message("[target.name] was shocked by [src]!", \ + target.visible_message("[target.name] is shocked by [src]!", \ "You feel a powerful shock course through your body sending you flying!", \ "You hear a heavy electrical crack!") var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 788f9c5c59d..36312a5198a 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -207,7 +207,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", SS.release_shades(user) qdel(SS) new /obj/item/nullrod/claymore(get_turf(sword)) - user.visible_message("[user] has purified [sword]!") + user.visible_message("[user] purifies [sword]!") qdel(sword) else if(istype(A, /obj/item/soulstone) && !iscultist(user)) var/obj/item/soulstone/SS = A @@ -228,7 +228,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", for(var/mob/living/simple_animal/shade/EX in SS) EX.icon_state = "ghost1" EX.name = "Purified [initial(EX.name)]" - user.visible_message("[user] has purified [SS]!") + user.visible_message("[user] purifies [SS]!") else if(istype(A, /obj/item/nullrod/scythe/talking)) var/obj/item/nullrod/scythe/talking/sword = A to_chat(user, "You begin to exorcise [sword]...") @@ -241,7 +241,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", sword.possessed = FALSE //allows the chaplain (or someone else) to reroll a new spirit for their sword sword.name = initial(sword.name) REMOVE_TRAIT(sword, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT) //in case the "sword" is a possessed dummy - user.visible_message("[user] has exorcised [sword]!", \ + user.visible_message("[user] exorcises [sword]!", \ "You successfully exorcise [sword]!") /obj/item/storage/book/bible/booze diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index e56a04c6254..51dc47103d5 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -54,7 +54,7 @@ desc += "It appears to be broken." icon_state = src.icon_broken if(user) - visible_message("\The [src] has been broken by [user] with an electromagnetic card!") + visible_message("\The [src] is broken by [user] with an electromagnetic card!") return /obj/item/storage/lockbox/Entered() diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 1d85142e284..96480efd8b1 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -198,8 +198,8 @@ else to_chat(user, "The baton is still charging!") else - M.visible_message("[user] has prodded [M] with [src]. Luckily it was off.", \ - "[user] has prodded you with [src]. Luckily it was off") + M.visible_message("[user] prods [M] with [src]. Luckily it was off.", \ + "[user] prods you with [src]. Luckily it was off.") else if(turned_on) if(attack_cooldown_check <= world.time) @@ -233,8 +233,8 @@ if(user) L.lastattacker = user.real_name L.lastattackerckey = user.ckey - L.visible_message("[user] has stunned [L] with [src]!", \ - "[user] has stunned you with [src]!") + L.visible_message("[user] stuns [L] with [src]!", \ + "[user] stuns you with [src]!") log_combat(user, L, "stunned") playsound(src, stun_sound, 50, TRUE, -1) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 1281ed3d854..27a0a05d2ef 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -36,7 +36,7 @@ user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src) structureclimber.Paralyze(40) - structureclimber.visible_message("[structureclimber] has been knocked off [src].", "You're knocked off [src]!", "You see [structureclimber] get knocked off [src].") + structureclimber.visible_message("[structureclimber] is knocked off [src].", "You're knocked off [src]!", "You see [structureclimber] get knocked off [src].") /obj/structure/ui_act(action, params) . = ..() diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index b4204a18025..4448a6e020e 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -105,7 +105,7 @@ "You hear welding.") if(W.use_tool(src, user, 40, volume=40)) obj_integrity = max_integrity - user.visible_message("[user] has repaired [src].", \ + user.visible_message("[user] repaired [src].", \ "You finish repairing [src].") else if(!anchored) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 39f0a1d4b5e..eae6a2c608c 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -512,7 +512,7 @@ /obj/structure/table/optable/tablepush(mob/living/user, mob/living/pushed_mob) pushed_mob.forceMove(loc) pushed_mob.set_resting(TRUE, TRUE) - visible_message("[user] has laid [pushed_mob] on [src].") + visible_message("[user] lays [pushed_mob] on [src].") check_patient() /obj/structure/table/optable/proc/check_patient() diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index f16cb4e30e4..c043bd3150c 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -452,7 +452,7 @@ name = "gibtonite deposit" desc = "An active gibtonite reserve. Run!" stage = GIBTONITE_ACTIVE - visible_message("There was gibtonite inside! It's going to explode!") + visible_message("There's gibtonite inside! It's going to explode!") var/notify_admins = 0 if(z != 5) @@ -486,7 +486,7 @@ stage = GIBTONITE_STABLE if(det_time < 0) det_time = 0 - visible_message("The chain reaction was stopped! The gibtonite had [det_time] reactions left till the explosion!") + visible_message("The chain reaction stopped! The gibtonite had [det_time] reactions left till the explosion!") /turf/closed/mineral/gibtonite/gets_drilled(mob/user, triggered_by_explosion = 0) if(stage == GIBTONITE_UNSTRUCK && mineralAmt >= 1) //Gibtonite deposit is activated diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index d48abe9c611..e83fff14769 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -568,7 +568,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} "You feel a strange wave of heavy drowsiness wash over you, but your tinfoil protection deflects most of it!") L.drowsyness += 2 return - L.visible_message("[user] has induced sleep in [L] with [src]!", \ + L.visible_message("[user] induces sleep in [L] with [src]!", \ "You suddenly feel very drowsy!") L.Sleeping(sleep_time) log_combat(user, L, "put to sleep") diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 4298cba782c..110b959dda1 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -601,7 +601,7 @@ if(QDELETED(candidate)) channeling = FALSE return - user.visible_message("The dark cloud receedes from what was formerly [candidate], revealing a\n [construct_class]!") + user.visible_message("The dark cloud recedes from what was formerly [candidate], revealing a\n [construct_class]!") switch(construct_class) if("Juggernaut") makeNewConstruct(/mob/living/simple_animal/hostile/construct/armored, candidate, user, 0, T) @@ -734,7 +734,7 @@ uses += 50 user.Beam(H,icon_state="drainbeam",time=10) playsound(get_turf(H), 'sound/magic/enter_blood.ogg', 50) - H.visible_message("[user] has drained some of [H]'s blood!") + H.visible_message("[user] drains some of [H]'s blood!") to_chat(user,"Your blood rite gains 50 charges from draining [H]'s blood.") new /obj/effect/temp_visual/cult/sparks(get_turf(H)) else diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 2b26f7ba0c1..c49c8f2621e 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -697,7 +697,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/proc/manual_suicide(mob/living/user) user.remove_atom_colour(ADMIN_COLOUR_PRIORITY) - user.visible_message("[user] was destroyed by the nuclear blast!") + user.visible_message("[user] is destroyed by the nuclear blast!") user.adjustOxyLoss(200) user.death(0) diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm index 27aa266a5a0..e56c7494e0b 100644 --- a/code/modules/detectivework/footprints_and_rag.dm +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -30,12 +30,12 @@ var/log_object = "containing [reagentlist]" if(user.a_intent == INTENT_HARM && !C.is_mouth_covered()) reagents.trans_to(C, reagents.total_volume, transfered_by = user, method = INGEST) - C.visible_message("[user] has smothered \the [C] with \the [src]!", "[user] has smothered you with \the [src]!", "You hear some struggling and muffled cries of surprise.") + C.visible_message("[user] smothers \the [C] with \the [src]!", "[user] smothers you with \the [src]!", "You hear some struggling and muffled cries of surprise.") log_combat(user, C, "smothered", src, log_object) else reagents.reaction(C, TOUCH) reagents.clear_reagents() - C.visible_message("[user] has touched \the [C] with \the [src].") + C.visible_message("[user] touches \the [C] with \the [src].") log_combat(user, C, "touched", src, log_object) else if(istype(A) && (src in user)) diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 58b7ede754b..ad4824567c6 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -139,7 +139,7 @@ if(clean_spray.reagents.has_reagent(/datum/reagent/space_cleaner, clean_spray.amount_per_transfer_from_this)) clean_spray.reagents.remove_reagent(/datum/reagent/space_cleaner, clean_spray.amount_per_transfer_from_this,1) playsound(loc, 'sound/effects/spray3.ogg', 50, TRUE, -6) - user.visible_message("[user] has cleaned \the [src].", "You clean \the [src].") + user.visible_message("[user] cleans \the [src].", "You clean \the [src].") dirty = 0 update_icon() else @@ -150,7 +150,7 @@ var/obj/item/soap/P = O user.visible_message("[user] starts to clean \the [src].", "You start to clean \the [src]...") if(do_after(user, P.cleanspeed, target = src)) - user.visible_message("[user] has cleaned \the [src].", "You clean \the [src].") + user.visible_message("[user] cleans \the [src].", "You clean \the [src].") dirty = 0 update_icon() return TRUE @@ -182,7 +182,7 @@ return FALSE ingredients += O - user.visible_message("[user] has added \a [O] to \the [src].", "You add [O] to \the [src].") + user.visible_message("[user] adds \a [O] to \the [src].", "You add [O] to \the [src].") return ..() diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 9a8a0452ae7..5e7e34a560f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -91,7 +91,7 @@ if(accept_check(O)) load(O) - user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") + user.visible_message("[user] adds \the [O] to \the [src].", "You add \the [O] to \the [src].") updateUsrDialog() if (visible_contents) update_icon() diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 312660bc93f..32a0a1272c3 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -114,7 +114,7 @@ if(trash) generate_trash(T) - visible_message("[src] has been squashed.","You hear a smack.") + visible_message("[src] is squashed.","You hear a smack.") if(seed) for(var/datum/plant_gene/trait/trait in seed.genes) trait.on_squash(src, target) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 7352c18459e..06657d04af1 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -263,7 +263,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ primed = FALSE if(det_timer) deltimer(det_timer) - user.visible_message("The chain reaction was stopped! ...The ore's quality looks diminished.", "You stopped the chain reaction. ...The ore's quality looks diminished.") + user.visible_message("The chain reaction stopped! ...The ore's quality looks diminished.", "You stopped the chain reaction. ...The ore's quality looks diminished.") icon_state = "Gibtonite ore" quality = GIBTONITE_QUALITY_LOW return @@ -430,7 +430,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ var/oldloc = loc sleep(15) if(loc == oldloc && user && !user.incapacitated()) - user.visible_message("[user] has flipped [src]. It lands on [coinflip].", \ + user.visible_message("[user] flips [src]. It lands on [coinflip].", \ "You flip [src]. It lands on [coinflip].", \ "You hear the clattering of loose change.") return TRUE//did the coin flip? useful for suicide_act diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index dde41ced10a..b15a96b6af2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -78,7 +78,7 @@ Doesn't work on other aliens/AI.*/ if(locate(/obj/structure/alien/weeds/node) in get_turf(user)) to_chat(user, "There's already a weed node here!") return 0 - user.visible_message("[user] has planted some alien weeds!") + user.visible_message("[user] plants some alien weeds!") new/obj/structure/alien/weeds/node(user.loc) return 1 diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 4e63cbcacf1..2a439109c16 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -65,7 +65,7 @@ to_chat(user, "There's already an egg here.") return FALSE - user.visible_message("[user] has laid an egg!") + user.visible_message("[user] lays an egg!") new /obj/structure/alien/egg(user.loc) return TRUE diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index abc6b269ba2..fbcf6dbd6bd 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -262,7 +262,7 @@ "You stop, drop, and roll!") sleep(30) if(fire_stacks <= 0) - visible_message("[src] has successfully extinguished [p_them()]self!", \ + visible_message("[src] successfully extinguishes [p_them()]self!", \ "You extinguish yourself.") ExtinguishMob() return diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 2d87b2c777b..a852b103fb4 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -164,8 +164,8 @@ if(M.powerlevel < 0) M.powerlevel = 0 - visible_message("The [M.name] has shocked [src]!", \ - "The [M.name] has shocked you!") + visible_message("The [M.name] shocks [src]!", \ + "The [M.name] shocks you!") do_sparks(5, TRUE, src) var/power = M.powerlevel + rand(0,3) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index e6c07e2bcc5..de374597edd 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -259,8 +259,8 @@ if(AM.pulledby) if(!supress_message) - AM.visible_message("[src] has pulled [AM] from [AM.pulledby]'s grip.", \ - "[src] has pulled you from [AM.pulledby]'s grip.", null, null, src) + AM.visible_message("[src] pulls [AM] from [AM.pulledby]'s grip.", \ + "[src] pulls you from [AM.pulledby]'s grip.", null, null, src) to_chat(src, "You pull [AM] from [AM.pulledby]'s grip!") log_combat(AM, AM.pulledby, "pulled from", src) AM.pulledby.stop_pulling() //an object can't be pulled by two mobs at once. diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 2eb08be7eea..ba7263617c7 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -28,7 +28,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real adjustBruteLoss(-30) updatehealth() add_fingerprint(user) - visible_message("[user] has fixed some of the dents on [src].") + visible_message("[user] fixes some of the dents on [src].") return if(istype(W, /obj/item/stack/cable_coil) && wiresexposed) @@ -43,7 +43,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real adjustFireLoss(-30) adjustToxLoss(-30) updatehealth() - user.visible_message("[user] has fixed some of the burnt wires on [src].", "You fix some of the burnt wires on [src].") + user.visible_message("[user] fixes some of the burnt wires on [src].", "You fix some of the burnt wires on [src].") else to_chat(user, "You need more cable to repair [src]!") else @@ -254,8 +254,8 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real Stun(40) step(src,get_dir(M,src)) log_combat(M, src, "pushed") - visible_message("[M] has forced back [src]!", \ - "[M] has forced back [src]!", null, COMBAT_MESSAGE_RANGE) + visible_message("[M] forces back [src]!", \ + "[M] forces back [src]!", null, COMBAT_MESSAGE_RANGE) playsound(loc, 'sound/weapons/pierce.ogg', 50, TRUE, -1) else ..() diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index 68f996f549a..7138810d610 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -210,8 +210,8 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, log_combat(src,C,"honked") - C.visible_message("[src] has honked [C]!",\ - "[src] has honked you!") + C.visible_message("[src] honks [C]!",\ + "[src] honks you!") else C.stuttering = 20 C.Paralyze(80) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 136e85369a3..67980964bbe 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -293,8 +293,8 @@ Auto Patrol: []"}, if(declare_arrests) var/area/location = get_area(src) speak("[arrest_type ? "Detaining" : "Arresting"] level [threat] scumbag [C] in [location].", radio_channel) - C.visible_message("[src] has stunned [C]!",\ - "[src] has stunned you!") + C.visible_message("[src] stuns [C]!",\ + "[src] stuns you!") /mob/living/simple_animal/bot/secbot/handle_automated_action() if(!..()) diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 127ebada463..1030ba9fd09 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -115,7 +115,7 @@ return if(locate(/obj/structure/alien/weeds/node) in get_turf(src)) return - visible_message("[src] has planted some alien weeds!") + visible_message("[src] plants some alien weeds!") new /obj/structure/alien/weeds/node(loc) /mob/living/simple_animal/hostile/alien/proc/LayEggs() @@ -123,7 +123,7 @@ return if(locate(/obj/structure/alien/egg) in get_turf(src)) return - visible_message("[src] has laid an egg!") + visible_message("[src] lays an egg!") new /obj/structure/alien/egg(loc) /mob/living/simple_animal/hostile/alien/queen/large diff --git a/code/modules/mob/living/simple_animal/hostile/cockroach.dm b/code/modules/mob/living/simple_animal/hostile/cockroach.dm index cc57f2534cf..d992f0383a3 100644 --- a/code/modules/mob/living/simple_animal/hostile/cockroach.dm +++ b/code/modules/mob/living/simple_animal/hostile/cockroach.dm @@ -78,7 +78,7 @@ else if(isstructure(AM)) if(prob(squish_chance)) - AM.visible_message("[src] was crushed under [AM].") + AM.visible_message("[src] is crushed under [AM].") adjustBruteLoss(1) else visible_message("[src] avoids getting crushed.") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index 567881c7d0b..f922c2ba3f2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -48,24 +48,24 @@ burrow = new spit.Grant(src) burrow.Grant(src) - + /datum/action/innate/goldgrub background_icon_state = "bg_default" - + /datum/action/innate/goldgrub/spitore name = "Spit Ore" desc = "Vomit out all of your consumed ores." - + /datum/action/innate/goldgrub/spitore/Activate() var/mob/living/simple_animal/hostile/asteroid/goldgrub/G = owner if(G.stat == DEAD || G.is_burrowed) return G.barf_contents() - + /datum/action/innate/goldgrub/burrow name = "Burrow" desc = "Burrow under soft ground, evading predators and increasing your speed." - + /obj/effect/dummy/phased_mob/goldgrub name = "water" icon = 'icons/effects/effects.dmi' @@ -75,7 +75,7 @@ invisibility = 60 resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/canmove = TRUE - + /obj/effect/dummy/phased_mob/goldgrub/relaymove(mob/user, direction) forceMove(get_step(src,direction)) @@ -87,7 +87,7 @@ /obj/effect/dummy/phased_mob/goldgrub/singularity_act() return - + /datum/action/innate/goldgrub/burrow/Activate() var/mob/living/simple_animal/hostile/asteroid/goldgrub/G = owner var/obj/effect/dummy/phased_mob/goldgrub/holder = null @@ -113,7 +113,7 @@ holder = new /obj/effect/dummy/phased_mob/goldgrub(T) G.forceMove(holder) G.is_burrowed = TRUE - + /mob/living/simple_animal/hostile/asteroid/goldgrub/GiveTarget(new_target) target = new_target if(target != null) @@ -132,7 +132,7 @@ EatOre(target) return return ..() - + /mob/living/simple_animal/hostile/asteroid/goldgrub/proc/EatOre(atom/movable/targeted_ore) if(targeted_ore && targeted_ore.loc != src) targeted_ore.forceMove(src) @@ -142,20 +142,20 @@ /mob/living/simple_animal/hostile/asteroid/goldgrub/death(gibbed) barf_contents() return ..() - + /mob/living/simple_animal/hostile/asteroid/goldgrub/proc/barf_contents() visible_message("[src] spits out its consumed ores!") playsound(src, 'sound/effects/splat.ogg', 50, TRUE) for(var/atom/movable/AM in src) AM.forceMove(loc) - + /mob/living/simple_animal/hostile/asteroid/goldgrub/proc/Burrow()//Begin the chase to kill the goldgrub in time if(!stat) visible_message("The [name] buries into the ground, vanishing from sight!") qdel(src) /mob/living/simple_animal/hostile/asteroid/goldgrub/bullet_act(obj/projectile/P) - visible_message("The [P.name] was repelled by [name]'s girth!") + visible_message("The [P.name] is repelled by [name]'s girth!") return BULLET_ACT_BLOCK /mob/living/simple_animal/hostile/asteroid/goldgrub/adjustHealth(amount, updating_health = TRUE, forced = FALSE) diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 387351d30e8..a673fd58811 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -154,7 +154,7 @@ /mob/living/simple_animal/hostile/mushroom/proc/Bruise() if(!bruised && !stat) - src.visible_message("The [src.name] was bruised!") + src.visible_message("The [src.name] is bruised!") bruised = 1 /mob/living/simple_animal/hostile/mushroom/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 9e5be8dcb68..21d32566f4c 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -26,7 +26,7 @@ addtimer(CALLBACK(src, .proc/bear_fruit), growth_time) /obj/structure/alien/resin/flower_bud_enemy/proc/bear_fruit() - visible_message("the plant has borne fruit!") + visible_message("The plant has borne fruit!") new /mob/living/simple_animal/hostile/venus_human_trap(get_turf(src)) qdel(src) diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index 8bcaf63598f..f1caf2e4f4a 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -105,8 +105,8 @@ M.unbuckle_all_mobs(force=1) //Slimes rip other mobs (eg: shoulder parrots) off (Slimes Vs Slimes is already handled in CanFeedon()) if(M.buckle_mob(src, force=TRUE)) layer = M.layer+0.01 //appear above the target mob - M.visible_message("[name] has latched onto [M]!", \ - "[name] has latched onto [M]!") + M.visible_message("[name] latches onto [M]!", \ + "[name] latches onto [M]!") else to_chat(src, "I have failed to latch onto the subject!") @@ -118,7 +118,7 @@ "I am not satisified", "I can not feed from this subject", \ "I do not feel nourished", "This subject is not food")]!") if(!silent) - visible_message("[src] has let go of [buckled]!", \ + visible_message("[src] lets go of [buckled]!", \ "I stopped feeding.") layer = initial(layer) buckled.unbuckle_mob(src,force=TRUE) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index e9e5365ce06..de999177cbd 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -414,7 +414,7 @@ if((brute_heal > 0 && affecting.brute_dam > 0) || (burn_heal > 0 && affecting.burn_dam > 0)) if(affecting.heal_damage(brute_heal, burn_heal, 0, BODYPART_ROBOTIC)) H.update_damage_overlays() - user.visible_message("[user] has fixed some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].", \ + user.visible_message("[user] fixes some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].", \ "You fix some of the [dam ? "dents on" : "burnt wires in"] [H == user ? "your" : "[H]'s"] [affecting.name].") return 1 //successful heal else diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 877bda84648..c1b6c5a313a 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -413,7 +413,7 @@ to_chat(user, "Remove all components from \the [src] before disassembling it.") return new /obj/item/stack/sheet/metal( get_turf(src.loc), steel_sheet_cost ) - physical.visible_message("\The [src] has been disassembled by [user].") + physical.visible_message("\The [src] is disassembled by [user].") relay_qdel() qdel(src) return diff --git a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm index 2e073c2236c..e4b512ecd3f 100644 --- a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm +++ b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm @@ -34,7 +34,7 @@ It is possible to destroy the net by the occupant or someone else. /obj/structure/energy_net/Destroy() if(!success) if(!QDELETED(affecting)) - affecting.visible_message("[affecting.name] was recovered from the energy net!", "You were recovered from the energy net!", "You hear a grunt.") + affecting.visible_message("[affecting.name] is recovered from the energy net!", "You are recovered from the energy net!", "You hear a grunt.") if(!QDELETED(master))//As long as they still exist. to_chat(master, "ERROR: unable to initiate transport protocol. Procedure terminated.") return ..() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index cf0fe30fd3e..a8ffce784d5 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -436,23 +436,23 @@ if (has_electronics == APC_ELECTRONICS_INSTALLED) has_electronics = APC_ELECTRONICS_MISSING if (machine_stat & BROKEN) - user.visible_message("[user.name] has broken the power control board inside [src.name]!",\ + user.visible_message("[user.name] breaks the power control board inside [src.name]!",\ "You break the charred power control board and remove the remains.", "You hear a crack.") return else if (obj_flags & EMAGGED) obj_flags &= ~EMAGGED - user.visible_message("[user.name] has discarded an emagged power control board from [src.name]!",\ + user.visible_message("[user.name] discards an emagged power control board from [src.name]!",\ "You discard the emagged power control board.") return else if (malfhack) - user.visible_message("[user.name] has discarded a strangely programmed power control board from [src.name]!",\ + user.visible_message("[user.name] discards a strangely programmed power control board from [src.name]!",\ "You discard the strangely programmed board.") malfai = null malfhack = 0 return else - user.visible_message("[user.name] has removed the power control board from [src.name]!",\ + user.visible_message("[user.name] removes the power control board from [src.name]!",\ "You remove the power control board.") new /obj/item/electronics/apc(loc) return @@ -529,11 +529,11 @@ if(W.use_tool(src, user, 50, volume=50, amount=3)) if ((machine_stat & BROKEN) || opened==APC_COVER_REMOVED) new /obj/item/stack/sheet/metal(loc) - user.visible_message("[user.name] has cut [src] apart with [W].",\ + user.visible_message("[user.name] cuts [src] apart with [W].",\ "You disassembled the broken APC frame.") else new /obj/item/wallframe/apc(loc) - user.visible_message("[user.name] has cut [src] from the wall with [W].",\ + user.visible_message("[user.name] cuts [src] from the wall with [W].",\ "You cut the APC frame from the wall.") qdel(src) return TRUE @@ -554,7 +554,7 @@ if(!user.transferItemToLoc(W, src)) return cell = W - user.visible_message("[user.name] has inserted the power cell to [src.name]!",\ + user.visible_message("[user.name] inserts the power cell to [src.name]!",\ "You insert the power cell.") chargecount = 0 update_icon() diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 71c899b7198..84023a28950 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -123,7 +123,7 @@ if(prob(20)) user.Stun(40) user.take_overall_damage(0, shock_damage) - user.visible_message("[user.name] was shocked by the [src.name]!", \ + user.visible_message("[user.name] is shocked by the [src.name]!", \ "Energy pulse detected, system damaged!", \ "You hear an electrical crack.") diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 20a9aaf3492..e2c6745d71c 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -140,7 +140,7 @@ return if(!terminal) C.use(10) - user.visible_message("[user.name] has built a power terminal.",\ + user.visible_message("[user.name] builds a power terminal.",\ "You build the power terminal.") //build the terminal and link it to the network diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index f81678a8756..b0013af0342 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -432,8 +432,8 @@ if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, volume = 50)) if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay return - user.visible_message("[pin] was pried out of [src] by [user], destroying the pin in the process.", - "You pried [pin] out with [I], destroying the pin in the process.", null, 3) + user.visible_message("[pin] is pried out of [src] by [user], destroying the pin in the process.", + "You pry [pin] out with [I], destroying the pin in the process.", null, 3) QDEL_NULL(pin) return TRUE @@ -450,8 +450,8 @@ if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, 5, volume = 50)) if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay return - user.visible_message("[pin] was spliced out of [src] by [user], melting part of the pin in the process.", - "You spliced [pin] out of [src] with [I], melting part of the pin in the process.", null, 3) + user.visible_message("[pin] is spliced out of [src] by [user], melting part of the pin in the process.", + "You splice [pin] out of [src] with [I], melting part of the pin in the process.", null, 3) QDEL_NULL(pin) return TRUE @@ -467,8 +467,8 @@ if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, volume = 50)) if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay return - user.visible_message("[pin] was ripped out of [src] by [user], mangling the pin in the process.", - "You ripped [pin] out of [src] with [I], mangling the pin in the process.", null, 3) + user.visible_message("[pin] is ripped out of [src] by [user], mangling the pin in the process.", + "You rip [pin] out of [src] with [I], mangling the pin in the process.", null, 3) QDEL_NULL(pin) return TRUE diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index bb367a92373..b56051d990e 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -19,8 +19,8 @@ return BULLET_ACT_HIT else blocked = 100 - target.visible_message("\The [src] was deflected!", \ - "You were protected against \the [src]!") + target.visible_message("\The [src] is deflected!", \ + "You are protected against \the [src]!") ..(target, blocked) reagents.flags &= ~(NO_REACT) diff --git a/code/modules/projectiles/projectile/bullets/dnainjector.dm b/code/modules/projectiles/projectile/bullets/dnainjector.dm index 2cae1c2b321..c4a46f237fa 100644 --- a/code/modules/projectiles/projectile/bullets/dnainjector.dm +++ b/code/modules/projectiles/projectile/bullets/dnainjector.dm @@ -15,8 +15,8 @@ return BULLET_ACT_HIT else blocked = 100 - target.visible_message("\The [src] was deflected!", \ - "You were protected against \the [src]!") + target.visible_message("\The [src] is deflected!", \ + "You are protected against \the [src]!") return ..() /obj/projectile/bullet/dnainjector/Destroy() diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 82adab0f227..f4b4b5b99b4 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -92,8 +92,8 @@ reagents.total_volume *= rand(5,10) * 0.1 //Not all of it makes contact with the target var/mob/M = target var/R - target.visible_message("[M] has been splashed with something!", \ - "[M] has been splashed with something!") + target.visible_message("[M] is splashed with something!", \ + "[M] is splashed with something!") for(var/datum/reagent/A in reagents.reagent_list) R += "[A.type] ([num2text(A.volume)])," diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 178b1eaa03f..2fd7ed75fab 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -104,7 +104,7 @@ playsound(src, 'sound/effects/refill.ogg', 50, TRUE) W.update_icon() else - user.visible_message("[user] catastrophically fails at refilling [user.p_their()] [I.name]!", "That was stupid of you.") + user.visible_message("[user] catastrophically fails at refilling [user.p_their()] [I.name]!", "That was stupid of you.") log_bomber(user, "detonated a", src, "via welding tool") boom() return diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 06bbd81f977..b7037f50368 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -140,7 +140,7 @@ if(user == target) user.visible_message("[user] climbs into [src].", "You climb into [src].") else - target.visible_message("[user] has placed [target] in [src].", "[user] has placed you in [src].") + target.visible_message("[user] places [target] in [src].", "[user] places you in [src].") log_combat(user, target, "stuffed", addition="into [src]") target.LAssailant = user update_icon() diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index c7e5553c2ff..84f45cc88c3 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -17,7 +17,7 @@ var/obj/item/bodypart/affecting = C.get_bodypart(BODY_ZONE_CHEST) affecting.receive_damage(clamp(brute_dam/2 * affecting.body_damage_coeff, 15, 50), clamp(burn_dam/2 * affecting.body_damage_coeff, 0, 50)) //Damage the chest based on limb's existing damage - C.visible_message("[C]'s [src.name] has been violently dismembered!") + C.visible_message("[C]'s [src.name] is violently dismembered!") C.emote("scream") SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered) drop_limb() From b8c35332f56c2dc689c40355536cda94f0999431 Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Mon, 16 Mar 2020 15:04:26 +0200 Subject: [PATCH 061/115] repaired --> repairs --- code/game/objects/structures/reflector.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index 4448a6e020e..16c954d0465 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -105,7 +105,7 @@ "You hear welding.") if(W.use_tool(src, user, 40, volume=40)) obj_integrity = max_integrity - user.visible_message("[user] repaired [src].", \ + user.visible_message("[user] repairs [src].", \ "You finish repairing [src].") else if(!anchored) From 23467e6cd7eb38762d0cd9c8fc48e753aa5f95dc Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Mon, 16 Mar 2020 20:56:46 +0200 Subject: [PATCH 062/115] Makes airlock repairing msg more ambiguous. --- code/game/machinery/doors/airlock.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 09688813912..7b91c44d328 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -953,25 +953,25 @@ if(user.a_intent != INTENT_HELP) if(!W.tool_start_check(user, amount=0)) return - user.visible_message("[user] is [welded ? "unwelding":"welding"] the airlock.", \ + user.visible_message("[user] begins [welded ? "unwelding":"welding"] the airlock.", \ "You begin [welded ? "unwelding":"welding"] the airlock...", \ "You hear welding.") if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) welded = !welded - user.visible_message("[user.name] [welded? "welds shut":"unwelds"] [src].", \ + user.visible_message("[user] [welded? "welds shut":"unwelds"] [src].", \ "You [welded ? "weld the airlock shut":"unweld the airlock"].") update_icon() else if(obj_integrity < max_integrity) if(!W.tool_start_check(user, amount=0)) return - user.visible_message("[user] begins repairing the airlock.", \ + user.visible_message("[user] begins welding the airlock.", \ "You begin repairing the airlock...", \ "You hear welding.") if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) obj_integrity = max_integrity machine_stat &= ~BROKEN - user.visible_message("[user.name] finishes repairing [src].", \ + user.visible_message("[user] finishes welding [src].", \ "You finish repairing the airlock.") update_icon() else From ad46b3bcefe796a9d535f656b643d1b0e891d2d4 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 17 Mar 2020 09:44:44 -0700 Subject: [PATCH 063/115] Update code/modules/mob/living/living_movement.dm Co-Authored-By: Rohesie --- code/modules/mob/living/living_movement.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index b2d222b25cb..b92b2654f78 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -29,7 +29,7 @@ add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run) /mob/living/proc/update_turf_movespeed(turf/open/T) - if(istype(T)) + if(isopenturf(T)) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown, multiplicative_slowdown = T.slowdown) else remove_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown) From 1b985a5d88890a77a9fb15c3995e7f41089b0e66 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 17 Mar 2020 09:47:27 -0700 Subject: [PATCH 064/115] oh shit u right --- code/modules/mob/mob.dm | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index afcabac7566..0101a376d5d 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1233,16 +1233,15 @@ /// Updates the grab state of the mob and updates movespeed /mob/setGrabState(newstate) . = ..() - if(grab_state == GRAB_PASSIVE) - remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE) - else - switch(grab_state) - if(GRAB_AGGRESSIVE) - add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/aggressive) - if(GRAB_NECK) - add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/neck) - if(GRAB_KILL) - add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/kill) + switch(grab_state) + if(GRAB_PASSIVE) + remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE) + if(GRAB_AGGRESSIVE) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/aggressive) + if(GRAB_NECK) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/neck) + if(GRAB_KILL) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/kill) /mob/proc/update_equipment_speed_mods() var/speedies = equipped_speed_mods() From a89cc9b913d5f5bdb1a60c29fffa38370193e975 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 17 Mar 2020 09:49:05 -0700 Subject: [PATCH 065/115] k --- code/modules/mob/living/carbon/human/human.dm | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 247ac153469..49a12ed2e3f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1063,7 +1063,7 @@ return FALSE /mob/living/carbon/human/proc/clear_shove_slowdown() - remove_movespeed_modifier(MOVESPEED_ID_SHOVE) + remove_movespeed_modifier(/datum/movespeed_modifier/shove) var/active_item = get_active_held_item() if(is_type_in_typecache(active_item, GLOB.shove_disarming_types)) visible_message("[src.name] regains their grip on \the [active_item]!", "You regain your grip on \the [active_item]", null, COMBAT_MESSAGE_RANGE) @@ -1076,17 +1076,16 @@ . = ..() dna?.species.spec_updatehealth(src) if(HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) return var/health_deficiency = max((maxHealth - health), staminaloss) if(health_deficiency >= 40) - add_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN, override = TRUE, multiplicative_slowdown = (health_deficiency / 75), blacklisted_movetypes = FLOATING|FLYING) - add_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING, override = TRUE, multiplicative_slowdown = (health_deficiency / 25), movetypes = FLYING, blacklisted_movetypes = FLOATING) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, multiplicative_slowdown = health_deficiency / 75) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, TRUE, multiplicative_slowdown = health_deficiency / 25) else - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING) - + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) /mob/living/carbon/human/washed(var/atom/washer) . = ..() @@ -1106,12 +1105,12 @@ if(gloves && !(HIDEGLOVES in obscured) && gloves.washed(washer)) SEND_SIGNAL(src, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD) -/mob/living/carbon/human/adjust_nutrition(var/change) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks +/mob/living/carbon/human/adjust_nutrition(change) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks if(HAS_TRAIT(src, TRAIT_NOHUNGER)) return FALSE return ..() -/mob/living/carbon/human/set_nutrition(var/change) //Seriously fuck you oldcoders. +/mob/living/carbon/human/set_nutrition(change) //Seriously fuck you oldcoders. if(HAS_TRAIT(src, TRAIT_NOHUNGER)) return FALSE return ..() From d71964564d5f546d7ac92ae5c9dea02b2e1532f5 Mon Sep 17 00:00:00 2001 From: Time-Green Date: Tue, 17 Mar 2020 17:58:27 +0100 Subject: [PATCH 066/115] Fixes a dumb runtime and being able to spin anchored plumbing machines --- code/datums/components/plumbing/_plumbing.dm | 12 +++++------- code/modules/plumbing/plumbers/_plumb_machinery.dm | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index 31e1931b23b..0dd867703d3 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -29,16 +29,13 @@ RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED,COMSIG_PARENT_PREQDELETED), .proc/disable) RegisterSignal(parent, list(COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH), .proc/toggle_active) RegisterSignal(parent, list(COMSIG_OBJ_HIDE), .proc/hide) - RegisterSignal(parent, list(COMSIG_ATOM_UPDATE_OVERLAYS), .proc/create_overlays) + RegisterSignal(parent, list(COMSIG_ATOM_UPDATE_OVERLAYS), .proc/create_overlays) //create overlays also gets called after init (no idea by what it just happens) if(start) //timer 0 so it can finish returning initialize, after which we're added to the parent. //Only then can we tell the duct next to us they can connect, because only then is the component really added. this was a fun one addtimer(CALLBACK(src, .proc/enable), 0) - if(use_overlays) - create_overlays() - /datum/component/plumbing/process() if(!demand_connects || !reagents) STOP_PROCESSING(SSfluids, src) @@ -101,7 +98,7 @@ reagents.trans_to(target.parent, amount, round_robin = TRUE)//we deal with alot of precise calculations so we round_robin=TRUE. Otherwise we get floating point errors, 1 != 1 and 2.5 + 2.5 = 6 ///We create our luxurious piping overlays/underlays, to indicate where we do what. only called once if use_overlays = TRUE in Initialize() -/datum/component/plumbing/proc/create_overlays(atom/A, list/overlays) +/datum/component/plumbing/proc/create_overlays(atom/movable/AM, list/overlays) if(tile_covered || !use_overlays) return @@ -126,9 +123,10 @@ direction = "east" if(WEST) direction = "west" - I = image('icons/obj/plumbing/plumbers.dmi', "[direction]-[color]", layer = A.layer - 1) + I = image('icons/obj/plumbing/plumbers.dmi', "[direction]-[color]", layer = AM.layer - 1) + else - I = image('icons/obj/plumbing/plumbers.dmi', color, layer = A.layer - 1) //color is not color as in the var, it's just the name + I = image('icons/obj/plumbing/plumbers.dmi', color,layer = AM.layer - 1) //color is not color as in the var, it's just the name of the icon_state I.dir = D overlays += I diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm index 3cd3099a4b9..5c00404e81e 100644 --- a/code/modules/plumbing/plumbers/_plumb_machinery.dm +++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm @@ -29,7 +29,7 @@ AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) /obj/machinery/plumbing/proc/can_be_rotated(mob/user,rotation_type) - return TRUE + return !anchored /obj/machinery/plumbing/examine(mob/user) . = ..() From 93861edcef2a64e2d254c6dc41c5b6a7857298e7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 17 Mar 2020 10:21:28 -0700 Subject: [PATCH 067/115] fix --- code/modules/clothing/shoes/_shoes.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index ee6c2beea9d..590769797eb 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -225,8 +225,8 @@ to_chat(our_guy, "You trip on your shoelaces a bit[have_anything ? ", flinging what you were holding" : ""]!") if(14 to 25) // 1.3ish% chance to stumble and be a bit off balance (like being disarmed) to_chat(our_guy, "You stumble a bit on your untied shoelaces!") - if(!our_guy.has_movespeed_modifier(MOVESPEED_ID_SHOVE)) - our_guy.add_movespeed_modifier(MOVESPEED_ID_SHOVE, multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH) + if(!our_guy.has_movespeed_modifier(/datum/movespeed_modifier/shove)) + our_guy.add_movespeed_modifier(/datum/movespeed_modifier/shove) addtimer(CALLBACK(our_guy, /mob/living/carbon/human/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH) if(26 to 1000) wiser = FALSE From df8b8f5d9bd23aa2fd6d4c37e614df0e2c92b775 Mon Sep 17 00:00:00 2001 From: Fikou Date: Wed, 18 Mar 2020 00:54:57 +0100 Subject: [PATCH 068/115] removes improper grammar in ert prompt --- code/modules/admin/verbs/one_click_antag.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index cb9f0c4a98c..faad838fd4f 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -342,7 +342,7 @@ ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" ? TRUE : FALSE ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" ? TRUE : FALSE - var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc] ?", "deathsquad", null) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc]?", "deathsquad", null) var/teamSpawned = FALSE if(candidates.len > 0) From bce47ff94c32f1f56b65348c3f02295441c8933d Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Wed, 18 Mar 2020 13:29:53 -0700 Subject: [PATCH 069/115] Automatic changelog generation for PR #48747 [ci skip] --- html/changelogs/AutoChangeLog-pr-48747.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-48747.yml diff --git a/html/changelogs/AutoChangeLog-pr-48747.yml b/html/changelogs/AutoChangeLog-pr-48747.yml new file mode 100644 index 00000000000..9be84e5d97b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-48747.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - refactor: "movespeed modifiers are now datums and not lists and support global caching." From db58a7267e235c04e2bb09349373af39f422bf5a Mon Sep 17 00:00:00 2001 From: Arkatos1 <43862960+Arkatos1@users.noreply.github.com> Date: Wed, 18 Mar 2020 22:24:18 +0100 Subject: [PATCH 070/115] tgui: Minor UI tweaks (#50024) * Initial commit * UI tweaks --- code/game/machinery/bank_machine.dm | 4 +- code/game/machinery/computer/robot.dm | 32 +++---- code/game/machinery/computer/teleporter.dm | 4 +- code/game/machinery/gulag_item_reclaimer.dm | 4 +- .../tgui/interfaces/ExosuitControlConsole.js | 2 +- .../tgui/interfaces/GravityGenerator.js | 95 ++++++++++--------- .../tgui/interfaces/GulagItemReclaimer.js | 17 +++- .../tgui/interfaces/RemoteRobotControl.js | 88 +++++++++-------- .../tgui/interfaces/RoboticsControlConsole.js | 10 +- tgui/packages/tgui/public/tgui.bundle.js | 2 +- 10 files changed, 136 insertions(+), 122 deletions(-) diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm index 81fa9ce15cc..c75ed084a09 100644 --- a/code/game/machinery/bank_machine.dm +++ b/code/game/machinery/bank_machine.dm @@ -3,8 +3,8 @@ desc = "A machine used to deposit and withdraw station funds." icon = 'goon/icons/obj/goon_terminals.dmi' idle_power_usage = 100 - ui_x = 320 - ui_y = 165 + ui_x = 335 + ui_y = 160 var/siphoning = FALSE var/next_warning = 0 var/obj/item/radio/radio diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 234e307ebe1..917d6f9f7af 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -82,29 +82,25 @@ if("killbot") if(allowed(usr)) var/mob/living/silicon/robot/R = locate(params["ref"]) in GLOB.silicon_mobs - if(can_control(usr, R)) - var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort") - if(choice == "Confirm" && can_control(usr, R) && !..()) - var/turf/T = get_turf(R) - message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name_admin(R, R.client)] at [ADMIN_VERBOSEJMP(T)]!") - log_game("\[key_name(usr)] detonated [key_name(R)]!") - if(R.connected_ai) - to_chat(R.connected_ai, "

    ALERT - Cyborg detonation detected: [R.name]
    ") - R.self_destruct() + if(can_control(usr, R) && !..()) + var/turf/T = get_turf(R) + message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name_admin(R, R.client)] at [ADMIN_VERBOSEJMP(T)]!") + log_game("\[key_name(usr)] detonated [key_name(R)]!") + if(R.connected_ai) + to_chat(R.connected_ai, "

    ALERT - Cyborg detonation detected: [R.name]
    ") + R.self_destruct() else to_chat(usr, "Access Denied.") if("stopbot") if(allowed(usr)) var/mob/living/silicon/robot/R = locate(params["ref"]) in GLOB.silicon_mobs - if(can_control(usr, R)) - var/choice = input("Are you certain you wish to [!R.lockcharge ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") - if(choice == "Confirm" && can_control(usr, R) && !..()) - message_admins("[ADMIN_LOOKUPFLW(usr)] [!R.lockcharge ? "locked down" : "released"] [ADMIN_LOOKUPFLW(R)]!") - log_game("[key_name(usr)] [!R.lockcharge ? "locked down" : "released"] [key_name(R)]!") - R.SetLockdown(!R.lockcharge) - to_chat(R, "[!R.lockcharge ? "Your lockdown has been lifted!" : "You have been locked down!"]") - if(R.connected_ai) - to_chat(R.connected_ai, "[!R.lockcharge ? "NOTICE - Cyborg lockdown lifted" : "ALERT - Cyborg lockdown detected"]: [R.name]
    ") + if(can_control(usr, R) && !..()) + message_admins("[ADMIN_LOOKUPFLW(usr)] [!R.lockcharge ? "locked down" : "released"] [ADMIN_LOOKUPFLW(R)]!") + log_game("[key_name(usr)] [!R.lockcharge ? "locked down" : "released"] [key_name(R)]!") + R.SetLockdown(!R.lockcharge) + to_chat(R, "[!R.lockcharge ? "Your lockdown has been lifted!" : "You have been locked down!"]") + if(R.connected_ai) + to_chat(R.connected_ai, "[!R.lockcharge ? "NOTICE - Cyborg lockdown lifted" : "ALERT - Cyborg lockdown detected"]: [R.name]
    ") else to_chat(usr, "Access Denied.") if("magbot") diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index 249a3a074d6..4028a1347aa 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -5,8 +5,8 @@ icon_keyboard = "teleport_key" light_color = LIGHT_COLOR_BLUE circuit = /obj/item/circuitboard/computer/teleporter - ui_x = 475 - ui_y = 130 + ui_x = 470 + ui_y = 140 var/regime_set = "Teleporter" var/id var/obj/machinery/teleport/station/power_station diff --git a/code/game/machinery/gulag_item_reclaimer.dm b/code/game/machinery/gulag_item_reclaimer.dm index bccd3feccd4..c872fa661a7 100644 --- a/code/game/machinery/gulag_item_reclaimer.dm +++ b/code/game/machinery/gulag_item_reclaimer.dm @@ -8,8 +8,8 @@ use_power = IDLE_POWER_USE idle_power_usage = 100 active_power_usage = 2500 - ui_x = 300 - ui_y = 300 + ui_x = 325 + ui_y = 400 var/list/stored_items = list() var/obj/machinery/gulag_teleporter/linked_teleporter = null diff --git a/tgui/packages/tgui/interfaces/ExosuitControlConsole.js b/tgui/packages/tgui/interfaces/ExosuitControlConsole.js index c0d46dc44af..06645d622a2 100644 --- a/tgui/packages/tgui/interfaces/ExosuitControlConsole.js +++ b/tgui/packages/tgui/interfaces/ExosuitControlConsole.js @@ -35,7 +35,7 @@ export const ExosuitControlConsole = props => { })} /> + + ); + } + + if (current_target) + { + return ( +
    + + +
    + ); + } + + if (!destinations.length) { + return (
    No gateway nodes detected.
    ); + } + + const GatewayDest = dest => { + if (dest.availible) + { + return ( +
    + +
    ); + } + else + { + return ( +
    + {dest.reason} + {!!dest.timeout && ()} +
    ); + } + }; + + return ( + + {!gateway_status && (Gateway Unpowered)} + {destinations.map(GatewayDest)} + ); +}; diff --git a/tgui/packages/tgui/public/tgui.bundle.js b/tgui/packages/tgui/public/tgui.bundle.js index ca2ce04df4f..1b43bda94a1 100644 --- a/tgui/packages/tgui/public/tgui.bundle.js +++ b/tgui/packages/tgui/public/tgui.bundle.js @@ -1,3 +1,3 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=169)}([function(e,t,n){"use strict";t.__esModule=!0;var o=n(391);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(t[e]=o[e])}))},function(e,t,n){"use strict";var o=n(5),r=n(22).f,a=n(30),i=n(24),c=n(90),l=n(125),u=n(62);e.exports=function(e,t){var n,d,s,p,m,f=e.target,h=e.global,C=e.stat;if(n=h?o:C?o[f]||c(f,{}):(o[f]||{}).prototype)for(d in t){if(p=t[d],s=e.noTargetGet?(m=r(n,d))&&m.value:n[d],!u(h?d:f+(C?".":"#")+d,e.forced)&&s!==undefined){if(typeof p==typeof s)continue;l(p,s)}(e.sham||s&&s.sham)&&a(p,"sham",!0),i(n,d,p,e)}}},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=t.Tooltip=t.Toast=t.TitleBar=t.Tabs=t.Table=t.Section=t.ProgressBar=t.NumberInput=t.NoticeBox=t.LabeledList=t.Input=t.Icon=t.Grid=t.Flex=t.Dropdown=t.Dimmer=t.Collapsible=t.ColorBox=t.Button=t.Box=t.BlockQuote=t.AnimatedNumber=void 0;var o=n(161);t.AnimatedNumber=o.AnimatedNumber;var r=n(398);t.BlockQuote=r.BlockQuote;var a=n(21);t.Box=a.Box;var i=n(119);t.Button=i.Button;var c=n(400);t.ColorBox=c.ColorBox;var l=n(401);t.Collapsible=l.Collapsible;var u=n(402);t.Dimmer=u.Dimmer;var d=n(403);t.Dropdown=d.Dropdown;var s=n(404);t.Flex=s.Flex;var p=n(164);t.Grid=p.Grid;var m=n(88);t.Icon=m.Icon;var f=n(163);t.Input=f.Input;var h=n(166);t.LabeledList=h.LabeledList;var C=n(405);t.NoticeBox=C.NoticeBox;var b=n(406);t.NumberInput=b.NumberInput;var g=n(407);t.ProgressBar=g.ProgressBar;var N=n(408);t.Section=N.Section;var v=n(165);t.Table=v.Table;var V=n(409);t.Tabs=V.Tabs;var y=n(410);t.TitleBar=y.TitleBar;var _=n(117);t.Toast=_.Toast;var k=n(162);t.Tooltip=k.Tooltip;var x=n(411);t.Chart=x.Chart},function(e,t,n){"use strict";t.__esModule=!0,t.useBackend=t.backendReducer=t.backendUpdate=void 0;var o=n(38),r=n(15);t.backendUpdate=function(e){return{type:"backendUpdate",payload:e}};t.backendReducer=function(e,t){var n=t.type,r=t.payload;if("backendUpdate"===n){var a=Object.assign({},e.config,{},r.config),i=Object.assign({},e.data,{},r.static_data,{},r.data),c=a.status!==o.UI_DISABLED,l=a.status===o.UI_INTERACTIVE;return Object.assign({},e,{config:a,data:i,visible:c,interactive:l})}return e};t.useBackend=function(e){var t=e.state,n=(e.dispatch,t.config.ref);return Object.assign({},t,{act:function(e,t){return void 0===t&&(t={}),(0,r.act)(n,e,t)}})}},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n(121))},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){"use strict";var o,r=n(104),a=n(7),i=n(5),c=n(6),l=n(16),u=n(75),d=n(30),s=n(24),p=n(13).f,m=n(36),f=n(52),h=n(12),C=n(59),b=i.Int8Array,g=b&&b.prototype,N=i.Uint8ClampedArray,v=N&&N.prototype,V=b&&m(b),y=g&&m(g),_=Object.prototype,k=_.isPrototypeOf,x=h("toStringTag"),L=C("TYPED_ARRAY_TAG"),B=r&&!!f&&"Opera"!==u(i.opera),w=!1,S={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},I=function(e){var t=u(e);return"DataView"===t||l(S,t)},T=function(e){return c(e)&&l(S,u(e))};for(o in S)i[o]||(B=!1);if((!B||"function"!=typeof V||V===Function.prototype)&&(V=function(){throw TypeError("Incorrect invocation")},B))for(o in S)i[o]&&f(i[o],V);if((!B||!y||y===_)&&(y=V.prototype,B))for(o in S)i[o]&&f(i[o].prototype,y);if(B&&m(v)!==y&&f(v,y),a&&!l(y,x))for(o in w=!0,p(y,x,{get:function(){return c(this)?this[L]:undefined}}),S)i[o]&&d(i[o],L,o);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:B,TYPED_ARRAY_TAG:w&&L,aTypedArray:function(e){if(T(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(f){if(k.call(V,e))return e}else for(var t in S)if(l(S,o)){var n=i[t];if(n&&(e===n||k.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(a){if(n)for(var o in S){var r=i[o];r&&l(r.prototype,e)&&delete r.prototype[e]}y[e]&&!n||s(y,e,n?t:B&&g[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var o,r;if(a){if(f){if(n)for(o in S)(r=i[o])&&l(r,e)&&delete r[e];if(V[e]&&!n)return;try{return s(V,e,n?t:B&&b[e]||t)}catch(c){}}for(o in S)!(r=i[o])||r[e]&&!n||s(r,e,t)}},isView:I,isTypedArray:T,TypedArray:V,TypedArrayPrototype:y}},function(e,t,n){"use strict";t.__esModule=!0,t.isFalsy=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;n0?r(o(e),9007199254740991):0}},function(e,t,n){"use strict";var o=n(5),r=n(92),a=n(16),i=n(59),c=n(96),l=n(128),u=r("wks"),d=o.Symbol,s=l?d:d&&d.withoutSetter||i;e.exports=function(e){return a(u,e)||(c&&a(d,e)?u[e]=d[e]:u[e]=s("Symbol."+e)),u[e]}},function(e,t,n){"use strict";var o=n(7),r=n(122),a=n(8),i=n(34),c=Object.defineProperty;t.f=o?c:function(e,t,n){if(a(e),t=i(t,!0),a(n),r)try{return c(e,t,n)}catch(o){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";var o=n(23);e.exports=function(e){return Object(o(e))}},function(e,t,n){"use strict";t.__esModule=!0,t.winset=t.winget=t.act=t.runCommand=t.callByondAsync=t.callByond=t.tridentVersion=void 0;var o=n(20);function r(e,t,n,o,r,a,i){try{var c=e[a](i),l=c.value}catch(u){return void n(u)}c.done?t(l):Promise.resolve(l).then(o,r)}var a,i=(a=navigator.userAgent.match(/Trident\/(\d+).+?;/i)[1])?parseInt(a,10):null;t.tridentVersion=i;var c=function(e,t){return void 0===t&&(t={}),"byond://"+e+"?"+(0,o.buildQueryString)(t)},l=function(e,t){void 0===t&&(t={}),window.location.href=c(e,t)};t.callByond=l;var u=function(e,t){void 0===t&&(t={}),window.__callbacks__=window.__callbacks__||[];var n=window.__callbacks__.length,o=new Promise((function(e){window.__callbacks__.push(e)}));return window.location.href=c(e,Object.assign({},t,{callback:"__callbacks__["+n+"]"})),o};t.callByondAsync=u;t.runCommand=function(e){return l("winset",{command:e})};t.act=function(e,t,n){return void 0===n&&(n={}),l("",Object.assign({src:e,action:t},n))};var d=function(){var e,t=(e=regeneratorRuntime.mark((function n(e,t){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,u("winget",{id:e,property:t});case 2:return o=n.sent,n.abrupt("return",o[t]);case 4:case"end":return n.stop()}}),n)})),function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function c(e){r(i,o,a,c,l,"next",e)}function l(e){r(i,o,a,c,l,"throw",e)}c(undefined)}))});return function(e,n){return t.apply(this,arguments)}}();t.winget=d;t.winset=function(e,t,n){var o;return l("winset",((o={})[e+"."+t]=n,o))}},function(e,t,n){"use strict";var o={}.hasOwnProperty;e.exports=function(e,t){return o.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0,t.toFixed=t.round=t.clamp=void 0;t.clamp=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),Math.max(t,Math.min(e,n))};t.round=function(e){return Math.round(e)};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(t)}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.reduce=t.sortBy=t.map=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var o in e)t.call(e,o)&&n.push(e[o]);return n}return[]};var o=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],o=0;oc)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n_;_++)if((p||_ in v)&&(g=V(b=v[_],_,N),e))if(t)x[_]=g;else if(g)switch(e){case 3:return!0;case 5:return b;case 6:return _;case 2:l.call(x,b)}else if(d)return!1;return s?-1:u||d?d:x}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},function(e,t,n){"use strict";t.__esModule=!0,t.buildQueryString=t.decodeHtmlEntities=t.toTitleCase=t.capitalize=t.testGlobPattern=t.multiline=void 0;t.multiline=function o(e){if(Array.isArray(e))return o(e.join(""));var t,n=e.split("\n"),r=n,a=Array.isArray(r),i=0;for(r=a?r:r[Symbol.iterator]();;){var c;if(a){if(i>=r.length)break;c=r[i++]}else{if((i=r.next()).done)break;c=i.value}for(var l=c,u=0;u",apos:"'"};return e.replace(/
    /gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/&#?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/&#x?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";t.__esModule=!0,t.Box=t.computeBoxProps=t.unit=void 0;var o=n(0),r=n(10),a=n(399),i=n(38);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){return"string"==typeof e?e:"number"==typeof e?6*e+"px":void 0};t.unit=l;var u=function(e){return"string"==typeof e&&i.CSS_COLORS.includes(e)},d=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=n)}},s=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=l(n))}},p=function(e,t){return function(n,o){(0,r.isFalsy)(o)||(n[e]=t)}},m=function(e,t){return function(n,o){if(!(0,r.isFalsy)(o))for(var a=0;a0&&(t.style=l),t};t.computeBoxProps=C;var b=function(e){var t=e.as,n=void 0===t?"div":t,i=e.className,l=e.content,d=e.children,s=c(e,["as","className","content","children"]),p=e.textColor||e.color,m=e.backgroundColor;if("function"==typeof d)return d(C(e));var f=C(s);return(0,o.createVNode)(a.VNodeFlags.HtmlElement,n,(0,r.classes)([i,u(p)&&"color-"+p,u(m)&&"color-bg-"+m]),l||d,a.ChildFlags.UnknownChildren,f)};t.Box=b,b.defaultHooks=r.pureComponentHooks;var g=function(e){var t=e.children,n=c(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,b,Object.assign({position:"relative"},n,{children:(0,o.createComponentVNode)(2,b,{fillPositionedParent:!0,children:t})})))};g.defaultHooks=r.pureComponentHooks,b.Forced=g},function(e,t,n){"use strict";var o=n(7),r=n(72),a=n(48),i=n(26),c=n(34),l=n(16),u=n(122),d=Object.getOwnPropertyDescriptor;t.f=o?d:function(e,t){if(e=i(e),t=c(t,!0),u)try{return d(e,t)}catch(n){}if(l(e,t))return a(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(5),r=n(30),a=n(16),i=n(90),c=n(91),l=n(35),u=l.get,d=l.enforce,s=String(String).split("String");(e.exports=function(e,t,n,c){var l=!!c&&!!c.unsafe,u=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;"function"==typeof n&&("string"!=typeof t||a(n,"name")||r(n,"name",t),d(n).source=s.join("string"==typeof t?t:"")),e!==o?(l?!p&&e[t]&&(u=!0):delete e[t],u?e[t]=n:r(e,t,n)):u?e[t]=n:i(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||c(this)}))},function(e,t,n){"use strict";var o=n(7),r=n(4),a=n(16),i=Object.defineProperty,c={},l=function(e){throw e};e.exports=function(e,t){if(a(c,e))return c[e];t||(t={});var n=[][e],u=!!a(t,"ACCESSORS")&&t.ACCESSORS,d=a(t,0)?t[0]:l,s=a(t,1)?t[1]:undefined;return c[e]=!!n&&!r((function(){if(u&&!o)return!0;var e={length:-1};u?i(e,1,{enumerable:!0,get:l}):e[1]=1,n.call(e,d,s)}))}},function(e,t,n){"use strict";var o=n(58),r=n(23);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var o=n(126),r=n(16),a=n(132),i=n(13).f;e.exports=function(e){var t=o.Symbol||(o.Symbol={});r(t,e)||i(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";var o=n(23),r=/"/g;e.exports=function(e,t,n,a){var i=String(o(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+String(a).replace(r,""")+'"'),c+">"+i+""}},function(e,t,n){"use strict";var o=n(4);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";var o=n(7),r=n(13),a=n(48);e.exports=o?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:o)(e)}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){"use strict";var o={}.toString;e.exports=function(e){return o.call(e).slice(8,-1)}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var o,r,a,i=n(124),c=n(5),l=n(6),u=n(30),d=n(16),s=n(73),p=n(60),m=c.WeakMap;if(i){var f=new m,h=f.get,C=f.has,b=f.set;o=function(e,t){return b.call(f,e,t),t},r=function(e){return h.call(f,e)||{}},a=function(e){return C.call(f,e)}}else{var g=s("state");p[g]=!0,o=function(e,t){return u(e,g,t),t},r=function(e){return d(e,g)?e[g]:{}},a=function(e){return d(e,g)}}e.exports={set:o,get:r,has:a,enforce:function(e){return a(e)?r(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var o=n(16),r=n(14),a=n(73),i=n(103),c=a("IE_PROTO"),l=Object.prototype;e.exports=i?Object.getPrototypeOf:function(e){return e=r(e),o(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,n){"use strict";var o=n(126),r=n(5),a=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?a(o[e])||a(r[e]):o[e]&&o[e][t]||r[e]&&r[e][t]}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"CentCom",freq:1337,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"AI Private",freq:1447,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var o=[{id:"o2",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"n2",name:"Nitrogen",label:"N\u2082",color:"red"},{id:"co2",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"plasma",name:"Plasma",label:"Plasma",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H\u2082O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"no2",name:"Nitryl",label:"NO\u2082",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),r=o.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return r&&r.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=o.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var o=n(4);e.exports=function(e,t){var n=[][e];return!!n&&o((function(){n.call(null,t||function(){throw 1},1)}))}},function(e,t,n){"use strict";var o=n(1),r=n(5),a=n(7),i=n(116),c=n(9),l=n(78),u=n(56),d=n(48),s=n(30),p=n(11),m=n(140),f=n(155),h=n(34),C=n(16),b=n(75),g=n(6),N=n(44),v=n(52),V=n(49).f,y=n(156),_=n(19).forEach,k=n(55),x=n(13),L=n(22),B=n(35),w=n(80),S=B.get,I=B.set,T=x.f,A=L.f,P=Math.round,E=r.RangeError,R=l.ArrayBuffer,M=l.DataView,O=c.NATIVE_ARRAY_BUFFER_VIEWS,F=c.TYPED_ARRAY_TAG,D=c.TypedArray,j=c.TypedArrayPrototype,z=c.aTypedArrayConstructor,G=c.isTypedArray,H=function(e,t){for(var n=0,o=t.length,r=new(z(e))(o);o>n;)r[n]=t[n++];return r},U=function(e,t){T(e,t,{get:function(){return S(this)[t]}})},K=function(e){var t;return e instanceof R||"ArrayBuffer"==(t=b(e))||"SharedArrayBuffer"==t},W=function(e,t){return G(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},Y=function(e,t){return W(e,t=h(t,!0))?d(2,e[t]):A(e,t)},q=function(e,t,n){return!(W(e,t=h(t,!0))&&g(n)&&C(n,"value"))||C(n,"get")||C(n,"set")||n.configurable||C(n,"writable")&&!n.writable||C(n,"enumerable")&&!n.enumerable?T(e,t,n):(e[t]=n.value,e)};a?(O||(L.f=Y,x.f=q,U(j,"buffer"),U(j,"byteOffset"),U(j,"byteLength"),U(j,"length")),o({target:"Object",stat:!0,forced:!O},{getOwnPropertyDescriptor:Y,defineProperty:q}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,c=e+(n?"Clamped":"")+"Array",l="get"+e,d="set"+e,h=r[c],C=h,b=C&&C.prototype,x={},L=function(e,t){T(e,t,{get:function(){return function(e,t){var n=S(e);return n.view[l](t*a+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,o){var r=S(e);n&&(o=(o=P(o))<0?0:o>255?255:255&o),r.view[d](t*a+r.byteOffset,o,!0)}(this,t,e)},enumerable:!0})};O?i&&(C=t((function(e,t,n,o){return u(e,C,c),w(g(t)?K(t)?o!==undefined?new h(t,f(n,a),o):n!==undefined?new h(t,f(n,a)):new h(t):G(t)?H(C,t):y.call(C,t):new h(m(t)),e,C)})),v&&v(C,D),_(V(h),(function(e){e in C||s(C,e,h[e])})),C.prototype=b):(C=t((function(e,t,n,o){u(e,C,c);var r,i,l,d=0,s=0;if(g(t)){if(!K(t))return G(t)?H(C,t):y.call(C,t);r=t,s=f(n,a);var h=t.byteLength;if(o===undefined){if(h%a)throw E("Wrong length");if((i=h-s)<0)throw E("Wrong length")}else if((i=p(o)*a)+s>h)throw E("Wrong length");l=i/a}else l=m(t),r=new R(i=l*a);for(I(e,{buffer:r,byteOffset:s,byteLength:i,length:l,view:new M(r)});d2?n-2:0),a=2;a=i){var c=[t].concat(r).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;(0,o.act)(window.__ref__,"tgui:log",{log:c})}};t.createLogger=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),o=0;o"+e+"<\/script>"},f=function(){try{o=document.domain&&new ActiveXObject("htmlfile")}catch(r){}var e,t;f=o?function(e){e.write(m("")),e.close();var t=e.parentWindow.Object;return e=null,t}(o):((t=u("iframe")).style.display="none",l.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(m("document.F=Object")),e.close(),e.F);for(var n=i.length;n--;)delete f.prototype[i[n]];return f()};c[s]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(p.prototype=r(e),n=new p,p.prototype=null,n[s]=e):n=f(),t===undefined?n:a(n,t)}},function(e,t,n){"use strict";var o=n(13).f,r=n(16),a=n(12)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,a)&&o(e,a,{configurable:!0,value:t})}},function(e,t,n){"use strict";var o=n(12),r=n(44),a=n(13),i=o("unscopables"),c=Array.prototype;c[i]==undefined&&a.f(c,i,{configurable:!0,value:r(null)}),e.exports=function(e){c[i][e]=!0}},function(e,t,n){"use strict";var o=n(8),r=n(32),a=n(12)("species");e.exports=function(e,t){var n,i=o(e).constructor;return i===undefined||(n=o(i)[a])==undefined?t:r(n)}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(127),r=n(94).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(32);e.exports=function(e,t,n){if(o(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var o=n(34),r=n(13),a=n(48);e.exports=function(e,t,n){var i=o(t);i in e?r.f(e,i,a(0,n)):e[i]=n}},function(e,t,n){"use strict";var o=n(8),r=n(138);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(a){}return function(n,a){return o(n),r(a),t?e.call(n,a):n.__proto__=a,n}}():undefined)},function(e,t,n){"use strict";var o=n(60),r=n(6),a=n(16),i=n(13).f,c=n(59),l=n(68),u=c("meta"),d=0,s=Object.isExtensible||function(){return!0},p=function(e){i(e,u,{value:{objectID:"O"+ ++d,weakData:{}}})},m=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,u)){if(!s(e))return"F";if(!t)return"E";p(e)}return e[u].objectID},getWeakData:function(e,t){if(!a(e,u)){if(!s(e))return!0;if(!t)return!1;p(e)}return e[u].weakData},onFreeze:function(e){return l&&m.REQUIRED&&s(e)&&!a(e,u)&&p(e),e}};o[u]=!0},function(e,t,n){"use strict";var o=n(33);e.exports=Array.isArray||function(e){return"Array"==o(e)}},function(e,t,n){"use strict";var o=n(37),r=n(13),a=n(12),i=n(7),c=a("species");e.exports=function(e){var t=o(e),n=r.f;i&&t&&!t[c]&&n(t,c,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},function(e,t,n){"use strict";var o=n(23),r="["+n(82)+"]",a=RegExp("^"+r+r+"*"),i=RegExp(r+r+"*$"),c=function(e){return function(t){var n=String(o(t));return 1&e&&(n=n.replace(a,"")),2&e&&(n=n.replace(i,"")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},function(e,t,n){"use strict";var o=n(4),r=n(33),a="".split;e.exports=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?a.call(e,""):Object(e)}:Object},function(e,t,n){"use strict";var o=0,r=Math.random();e.exports=function(e){return"Symbol("+String(e===undefined?"":e)+")_"+(++o+r).toString(36)}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(26),r=n(11),a=n(43),i=function(e){return function(t,n,i){var c,l=o(t),u=r(l.length),d=a(i,u);if(e&&n!=n){for(;u>d;)if((c=l[d++])!=c)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},function(e,t,n){"use strict";var o=n(4),r=/#|\.prototype\./,a=function(e,t){var n=c[i(e)];return n==u||n!=l&&("function"==typeof t?o(t):!!t)},i=a.normalize=function(e){return String(e).replace(r,".").toLowerCase()},c=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){"use strict";var o=n(127),r=n(94);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(6),r=n(54),a=n(12)("species");e.exports=function(e,t){var n;return r(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!r(n.prototype)?o(n)&&null===(n=n[a])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var o=n(4),r=n(12),a=n(97),i=r("species");e.exports=function(e){return a>=51||!o((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(24);e.exports=function(e,t,n){for(var r in t)o(e,r,t[r],n);return e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var o=n(8),r=n(99),a=n(11),i=n(50),c=n(100),l=n(135),u=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,d,s){var p,m,f,h,C,b,g,N=i(t,n,d?2:1);if(s)p=e;else{if("function"!=typeof(m=c(e)))throw TypeError("Target is not iterable");if(r(m)){for(f=0,h=a(e.length);h>f;f++)if((C=d?N(o(g=e[f])[0],g[1]):N(e[f]))&&C instanceof u)return C;return new u(!1)}p=m.call(e)}for(b=p.next;!(g=b.call(p)).done;)if("object"==typeof(C=l(p,N,g.value,d))&&C&&C instanceof u)return C;return new u(!1)}).stop=function(e){return new u(!0,e)}},function(e,t,n){"use strict";t.__esModule=!0,t.compose=t.flow=void 0;t.flow=function o(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i=c.length)break;d=c[u++]}else{if((u=c.next()).done)break;d=u.value}var s=d;Array.isArray(s)?n=o.apply(void 0,s).apply(void 0,[n].concat(a)):s&&(n=s.apply(void 0,[n].concat(a)))}return n}};t.compose=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?o-1:0),a=1;a=0:s>p;p+=m)p in d&&(l=n(l,d[p],p,u));return l}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var o=n(5),r=n(7),a=n(104),i=n(30),c=n(67),l=n(4),u=n(56),d=n(31),s=n(11),p=n(140),m=n(223),f=n(36),h=n(52),C=n(49).f,b=n(13).f,g=n(98),N=n(45),v=n(35),V=v.get,y=v.set,_=o.ArrayBuffer,k=_,x=o.DataView,L=x&&x.prototype,B=Object.prototype,w=o.RangeError,S=m.pack,I=m.unpack,T=function(e){return[255&e]},A=function(e){return[255&e,e>>8&255]},P=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},E=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},R=function(e){return S(e,23,4)},M=function(e){return S(e,52,8)},O=function(e,t){b(e.prototype,t,{get:function(){return V(this)[t]}})},F=function(e,t,n,o){var r=p(n),a=V(e);if(r+t>a.byteLength)throw w("Wrong index");var i=V(a.buffer).bytes,c=r+a.byteOffset,l=i.slice(c,c+t);return o?l:l.reverse()},D=function(e,t,n,o,r,a){var i=p(n),c=V(e);if(i+t>c.byteLength)throw w("Wrong index");for(var l=V(c.buffer).bytes,u=i+c.byteOffset,d=o(+r),s=0;sH;)(j=G[H++])in k||i(k,j,_[j]);z.constructor=k}h&&f(L)!==B&&h(L,B);var U=new x(new k(2)),K=L.setInt8;U.setInt8(0,2147483648),U.setInt8(1,2147483649),!U.getInt8(0)&&U.getInt8(1)||c(L,{setInt8:function(e,t){K.call(this,e,t<<24>>24)},setUint8:function(e,t){K.call(this,e,t<<24>>24)}},{unsafe:!0})}else k=function(e){u(this,k,"ArrayBuffer");var t=p(e);y(this,{bytes:g.call(new Array(t),0),byteLength:t}),r||(this.byteLength=t)},x=function(e,t,n){u(this,x,"DataView"),u(e,k,"DataView");var o=V(e).byteLength,a=d(t);if(a<0||a>o)throw w("Wrong offset");if(a+(n=n===undefined?o-a:s(n))>o)throw w("Wrong length");y(this,{buffer:e,byteLength:n,byteOffset:a}),r||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},r&&(O(k,"byteLength"),O(x,"buffer"),O(x,"byteLength"),O(x,"byteOffset")),c(x.prototype,{getInt8:function(e){return F(this,1,e)[0]<<24>>24},getUint8:function(e){return F(this,1,e)[0]},getInt16:function(e){var t=F(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=F(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return E(F(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return E(F(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return I(F(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return I(F(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){D(this,1,e,T,t)},setUint8:function(e,t){D(this,1,e,T,t)},setInt16:function(e,t){D(this,2,e,A,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){D(this,2,e,A,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){D(this,4,e,P,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){D(this,4,e,P,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){D(this,4,e,R,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){D(this,8,e,M,t,arguments.length>2?arguments[2]:undefined)}});N(k,"ArrayBuffer"),N(x,"DataView"),e.exports={ArrayBuffer:k,DataView:x}},function(e,t,n){"use strict";var o=n(1),r=n(5),a=n(62),i=n(24),c=n(53),l=n(69),u=n(56),d=n(6),s=n(4),p=n(76),m=n(45),f=n(80);e.exports=function(e,t,n){var h=-1!==e.indexOf("Map"),C=-1!==e.indexOf("Weak"),b=h?"set":"add",g=r[e],N=g&&g.prototype,v=g,V={},y=function(e){var t=N[e];i(N,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return C&&!d(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(a(e,"function"!=typeof g||!(C||N.forEach&&!s((function(){(new g).entries().next()})))))v=n.getConstructor(t,e,h,b),c.REQUIRED=!0;else if(a(e,!0)){var _=new v,k=_[b](C?{}:-0,1)!=_,x=s((function(){_.has(1)})),L=p((function(e){new g(e)})),B=!C&&s((function(){for(var e=new g,t=5;t--;)e[b](t,t);return!e.has(-0)}));L||((v=t((function(t,n){u(t,v,e);var o=f(new g,t,v);return n!=undefined&&l(n,o[b],o,h),o}))).prototype=N,N.constructor=v),(x||B)&&(y("delete"),y("has"),h&&y("get")),(B||k)&&y(b),C&&N.clear&&delete N.clear}return V[e]=v,o({global:!0,forced:v!=g},V),m(v,e),C||n.setStrong(v,e,h),v}},function(e,t,n){"use strict";var o=n(6),r=n(52);e.exports=function(e,t,n){var a,i;return r&&"function"==typeof(a=t.constructor)&&a!==n&&o(i=a.prototype)&&i!==n.prototype&&r(e,i),e}},function(e,t,n){"use strict";var o=Math.expm1,r=Math.exp;e.exports=!o||o(10)>22025.465794806718||o(10)<22025.465794806718||-2e-17!=o(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:r(e)-1}:o},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var o=n(39),r=n(5),a=n(4);e.exports=o||!a((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete r[e]}))},function(e,t,n){"use strict";var o=n(8);e.exports=function(){var e=o(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var o,r,a=n(84),i=n(110),c=RegExp.prototype.exec,l=String.prototype.replace,u=c,d=(o=/a/,r=/b*/g,c.call(o,"a"),c.call(r,"a"),0!==o.lastIndex||0!==r.lastIndex),s=i.UNSUPPORTED_Y||i.BROKEN_CARET,p=/()??/.exec("")[1]!==undefined;(d||p||s)&&(u=function(e){var t,n,o,r,i=this,u=s&&i.sticky,m=a.call(i),f=i.source,h=0,C=e;return u&&(-1===(m=m.replace("y","")).indexOf("g")&&(m+="g"),C=String(e).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(f="(?: "+f+")",C=" "+C,h++),n=new RegExp("^(?:"+f+")",m)),p&&(n=new RegExp("^"+f+"$(?!\\s)",m)),d&&(t=i.lastIndex),o=c.call(u?n:i,C),u?o?(o.input=o.input.slice(h),o[0]=o[0].slice(h),o.index=i.lastIndex,i.lastIndex+=o[0].length):i.lastIndex=0:d&&o&&(i.lastIndex=i.global?o.index+o[0].length:t),p&&o&&o.length>1&&l.call(o[0],n,(function(){for(r=1;r")})),d="$0"==="a".replace(/./,"$0"),s=a("replace"),p=!!/./[s]&&""===/./[s]("a","$0"),m=!r((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,s){var f=a(e),h=!r((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),C=h&&!r((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return t=!0,null},n[f](""),!t}));if(!h||!C||"replace"===e&&(!u||!d||p)||"split"===e&&!m){var b=/./[f],g=n(f,""[e],(function(e,t,n,o,r){return t.exec===i?h&&!r?{done:!0,value:b.call(t,n,o)}:{done:!0,value:e.call(n,t,o)}:{done:!1}}),{REPLACE_KEEPS_$0:d,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),N=g[0],v=g[1];o(String.prototype,e,N),o(RegExp.prototype,f,2==t?function(e,t){return v.call(e,this,t)}:function(e){return v.call(e,this)})}s&&c(RegExp.prototype[f],"sham",!0)}},function(e,t,n){"use strict";var o=n(33),r=n(85);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==o(e))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0,t.Icon=void 0;var o=n(0),r=n(10),a=n(21);var i=/-o$/,c=function(e){var t=e.name,n=e.size,c=e.spin,l=e.className,u=e.style,d=void 0===u?{}:u,s=e.rotation,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["name","size","spin","className","style","rotation"]);n&&(d["font-size"]=100*n+"%"),"number"==typeof s&&(d.transform="rotate("+s+"deg)");var m=i.test(t),f=t.replace(i,"");return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"i",className:(0,r.classes)([l,m?"far":"fas","fa-"+f,c&&"fa-spin"]),style:d},p)))};t.Icon=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";var o=n(5),r=n(6),a=o.document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},function(e,t,n){"use strict";var o=n(5),r=n(30);e.exports=function(e,t){try{r(o,e,t)}catch(n){o[e]=t}return t}},function(e,t,n){"use strict";var o=n(123),r=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(e){return r.call(e)}),e.exports=o.inspectSource},function(e,t,n){"use strict";var o=n(39),r=n(123);(e.exports=function(e,t){return r[e]||(r[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.6.4",mode:o?"pure":"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){"use strict";var o=n(37),r=n(49),a=n(95),i=n(8);e.exports=o("Reflect","ownKeys")||function(e){var t=r.f(i(e)),n=a.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(4);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())}))},function(e,t,n){"use strict";var o,r,a=n(5),i=n(74),c=a.process,l=c&&c.versions,u=l&&l.v8;u?r=(o=u.split("."))[0]+o[1]:i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(r=o[1]),e.exports=r&&+r},function(e,t,n){"use strict";var o=n(14),r=n(43),a=n(11);e.exports=function(e){for(var t=o(this),n=a(t.length),i=arguments.length,c=r(i>1?arguments[1]:undefined,n),l=i>2?arguments[2]:undefined,u=l===undefined?n:r(l,n);u>c;)t[c++]=e;return t}},function(e,t,n){"use strict";var o=n(12),r=n(66),a=o("iterator"),i=Array.prototype;e.exports=function(e){return e!==undefined&&(r.Array===e||i[a]===e)}},function(e,t,n){"use strict";var o=n(75),r=n(66),a=n(12)("iterator");e.exports=function(e){if(e!=undefined)return e[a]||e["@@iterator"]||r[o(e)]}},function(e,t,n){"use strict";var o={};o[n(12)("toStringTag")]="z",e.exports="[object z]"===String(o)},function(e,t,n){"use strict";var o=n(1),r=n(208),a=n(36),i=n(52),c=n(45),l=n(30),u=n(24),d=n(12),s=n(39),p=n(66),m=n(137),f=m.IteratorPrototype,h=m.BUGGY_SAFARI_ITERATORS,C=d("iterator"),b=function(){return this};e.exports=function(e,t,n,d,m,g,N){r(n,t,d);var v,V,y,_=function(e){if(e===m&&w)return w;if(!h&&e in L)return L[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},k=t+" Iterator",x=!1,L=e.prototype,B=L[C]||L["@@iterator"]||m&&L[m],w=!h&&B||_(m),S="Array"==t&&L.entries||B;if(S&&(v=a(S.call(new e)),f!==Object.prototype&&v.next&&(s||a(v)===f||(i?i(v,f):"function"!=typeof v[C]&&l(v,C,b)),c(v,k,!0,!0),s&&(p[k]=b))),"values"==m&&B&&"values"!==B.name&&(x=!0,w=function(){return B.call(this)}),s&&!N||L[C]===w||l(L,C,w),p[t]=w,m)if(V={values:_("values"),keys:g?w:_("keys"),entries:_("entries")},N)for(y in V)!h&&!x&&y in L||u(L,y,V[y]);else o({target:t,proto:!0,forced:h||x},V);return V}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},function(e,t,n){"use strict";var o=n(11),r=n(106),a=n(23),i=Math.ceil,c=function(e){return function(t,n,c){var l,u,d=String(a(t)),s=d.length,p=c===undefined?" ":String(c),m=o(n);return m<=s||""==p?d:(l=m-s,(u=r.call(p,i(l/p.length))).length>l&&(u=u.slice(0,l)),e?d+u:u+d)}};e.exports={start:c(!1),end:c(!0)}},function(e,t,n){"use strict";var o=n(31),r=n(23);e.exports="".repeat||function(e){var t=String(r(this)),n="",a=o(e);if(a<0||a==Infinity)throw RangeError("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var o,r,a,i=n(5),c=n(4),l=n(33),u=n(50),d=n(130),s=n(89),p=n(149),m=i.location,f=i.setImmediate,h=i.clearImmediate,C=i.process,b=i.MessageChannel,g=i.Dispatch,N=0,v={},V=function(e){if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},y=function(e){return function(){V(e)}},_=function(e){V(e.data)},k=function(e){i.postMessage(e+"",m.protocol+"//"+m.host)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++N]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},o(N),N},h=function(e){delete v[e]},"process"==l(C)?o=function(e){C.nextTick(y(e))}:g&&g.now?o=function(e){g.now(y(e))}:b&&!p?(a=(r=new b).port2,r.port1.onmessage=_,o=u(a.postMessage,a,1)):!i.addEventListener||"function"!=typeof postMessage||i.importScripts||c(k)?o="onreadystatechange"in s("script")?function(e){d.appendChild(s("script")).onreadystatechange=function(){d.removeChild(this),V(e)}}:function(e){setTimeout(y(e),0)}:(o=k,i.addEventListener("message",_,!1))),e.exports={set:f,clear:h}},function(e,t,n){"use strict";var o=n(6),r=n(33),a=n(12)("match");e.exports=function(e){var t;return o(e)&&((t=e[a])!==undefined?!!t:"RegExp"==r(e))}},function(e,t,n){"use strict";var o=n(4);function r(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=o((function(){var e=r("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),t.BROKEN_CARET=o((function(){var e=r("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},function(e,t,n){"use strict";var o=n(31),r=n(23),a=function(e){return function(t,n){var a,i,c=String(r(t)),l=o(n),u=c.length;return l<0||l>=u?e?"":undefined:(a=c.charCodeAt(l))<55296||a>56319||l+1===u||(i=c.charCodeAt(l+1))<56320||i>57343?e?c.charAt(l):a:e?c.slice(l,l+2):i-56320+(a-55296<<10)+65536}};e.exports={codeAt:a(!1),charAt:a(!0)}},function(e,t,n){"use strict";var o=n(109);e.exports=function(e){if(o(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var o=n(12)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[o]=!1,"/./"[e](t)}catch(r){}}return!1}},function(e,t,n){"use strict";var o=n(111).charAt;e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},function(e,t,n){"use strict";var o=n(4),r=n(82);e.exports=function(e){return o((function(){return!!r[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||r[e].name!==e}))}},function(e,t,n){"use strict";var o=n(5),r=n(4),a=n(76),i=n(9).NATIVE_ARRAY_BUFFER_VIEWS,c=o.ArrayBuffer,l=o.Int8Array;e.exports=!i||!r((function(){l(1)}))||!r((function(){new l(-1)}))||!a((function(e){new l,new l(null),new l(1.5),new l(e)}),!0)||r((function(){return 1!==new l(new c(2),1,undefined).length}))},function(e,t,n){"use strict";t.__esModule=!0,t.toastReducer=t.showToast=t.Toast=void 0;var o,r=n(0),a=n(10),i=function(e){var t=e.content,n=e.children;return(0,r.createVNode)(1,"div","Layout__toast",[t,n],0)};t.Toast=i,i.defaultHooks=a.pureComponentHooks;t.showToast=function(e,t){o&&clearTimeout(o),o=setTimeout((function(){o=undefined,e({type:"hideToast"})}),5e3),e({type:"showToast",payload:{text:t}})};t.toastReducer=function(e,t){var n=t.type,o=t.payload;if("showToast"===n){var r=o.text;return Object.assign({},e,{toastText:r})}return"hideToast"===n?Object.assign({},e,{toastText:null}):e}},function(e,t,n){"use strict";t.__esModule=!0,t.hotKeyReducer=t.hotKeyMiddleware=t.releaseHeldKeys=t.KEY_MINUS=t.KEY_EQUAL=t.KEY_Z=t.KEY_Y=t.KEY_X=t.KEY_W=t.KEY_V=t.KEY_U=t.KEY_T=t.KEY_S=t.KEY_R=t.KEY_Q=t.KEY_P=t.KEY_O=t.KEY_N=t.KEY_M=t.KEY_L=t.KEY_K=t.KEY_J=t.KEY_I=t.KEY_H=t.KEY_G=t.KEY_F=t.KEY_E=t.KEY_D=t.KEY_C=t.KEY_B=t.KEY_A=t.KEY_9=t.KEY_8=t.KEY_7=t.KEY_6=t.KEY_5=t.KEY_4=t.KEY_3=t.KEY_2=t.KEY_1=t.KEY_0=t.KEY_SPACE=t.KEY_ESCAPE=t.KEY_ALT=t.KEY_CTRL=t.KEY_SHIFT=t.KEY_ENTER=t.KEY_TAB=t.KEY_BACKSPACE=void 0;var o=n(42),r=n(15),a=(0,o.createLogger)("hotkeys");t.KEY_BACKSPACE=8;t.KEY_TAB=9;t.KEY_ENTER=13;t.KEY_SHIFT=16;t.KEY_CTRL=17;t.KEY_ALT=18;t.KEY_ESCAPE=27;t.KEY_SPACE=32;t.KEY_0=48;t.KEY_1=49;t.KEY_2=50;t.KEY_3=51;t.KEY_4=52;t.KEY_5=53;t.KEY_6=54;t.KEY_7=55;t.KEY_8=56;t.KEY_9=57;t.KEY_A=65;t.KEY_B=66;t.KEY_C=67;t.KEY_D=68;t.KEY_E=69;t.KEY_F=70;t.KEY_G=71;t.KEY_H=72;t.KEY_I=73;t.KEY_J=74;t.KEY_K=75;t.KEY_L=76;t.KEY_M=77;t.KEY_N=78;t.KEY_O=79;t.KEY_P=80;t.KEY_Q=81;t.KEY_R=82;t.KEY_S=83;t.KEY_T=84;t.KEY_U=85;t.KEY_V=86;t.KEY_W=87;t.KEY_X=88;t.KEY_Y=89;t.KEY_Z=90;t.KEY_EQUAL=187;t.KEY_MINUS=189;var i=[17,18,16],c=[27,13,32,9,17,16],l={},u=function(e,t,n,o){var r="";return e&&(r+="Ctrl+"),t&&(r+="Alt+"),n&&(r+="Shift+"),r+=o>=48&&o<=90?String.fromCharCode(o):"["+o+"]"},d=function(e){var t=window.event?e.which:e.keyCode,n=e.ctrlKey,o=e.altKey,r=e.shiftKey;return{keyCode:t,ctrlKey:n,altKey:o,shiftKey:r,hasModifierKeys:n||o||r,keyString:u(n,o,r,t)}},s=function(){for(var e=0,t=Object.keys(l);e4&&function(e,t){if(!e.defaultPrevented){var n=e.target&&e.target.localName;if("input"!==n&&"textarea"!==n){var o=d(e),i=o.keyCode,u=o.ctrlKey,s=o.shiftKey;u||s||c.includes(i)||("keydown"!==t||l[i]?"keyup"===t&&l[i]&&(a.debug("passthrough",t,o),(0,r.callByond)("",{__keyup:i})):(a.debug("passthrough",t,o),(0,r.callByond)("",{__keydown:i})))}}}(e,t),function(e,t,n){if("keyup"===t){var o=d(e),r=o.ctrlKey,c=o.altKey,l=o.keyCode,u=o.hasModifierKeys,s=o.keyString;u&&!i.includes(l)&&(a.log(s),r&&c&&8===l&&setTimeout((function(){throw new Error("OOPSIE WOOPSIE!! UwU We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!")})),n({type:"hotKey",payload:o}))}}(e,t,n)},document.addEventListener("keydown",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keydown"),l[n]=!0})),document.addEventListener("keyup",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keyup"),l[n]=!1})),r.tridentVersion>4&&function(e){var t;document.addEventListener("focusout",(function(){t=setTimeout(e)})),document.addEventListener("focusin",(function(){clearTimeout(t)})),window.addEventListener("beforeunload",e)}((function(){s()})),function(e){return function(t){return e(t)}}};t.hotKeyReducer=function(e,t){var n=t.type,o=t.payload;if("hotKey"===n){var r=o.ctrlKey,a=o.altKey,i=o.keyCode;return r&&a&&187===i?Object.assign({},e,{showKitchenSink:!e.showKitchenSink}):e}return e}},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var o=n(0),r=n(10),a=n(15),i=n(118),c=n(42),l=n(120),u=n(21),d=n(88),s=n(162);n(163),n(164);function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function m(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var f=(0,c.createLogger)("Button"),h=function(e){var t=e.className,n=e.fluid,c=e.icon,p=e.color,h=e.disabled,C=e.selected,b=e.tooltip,g=e.tooltipPosition,N=e.ellipsis,v=e.content,V=e.iconRotation,y=e.iconSpin,_=e.children,k=e.onclick,x=e.onClick,L=m(e,["className","fluid","icon","color","disabled","selected","tooltip","tooltipPosition","ellipsis","content","iconRotation","iconSpin","children","onclick","onClick"]),B=!(!v&&!_);return k&&f.warn("Lowercase 'onclick' is not supported on Button and lowercase prop names are discouraged in general. Please use a camelCase'onClick' instead and read: https://infernojs.org/docs/guides/event-handling"),(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({as:"span",className:(0,r.classes)(["Button",n&&"Button--fluid",h&&"Button--disabled",C&&"Button--selected",B&&"Button--hasContent",N&&"Button--ellipsis",p&&"string"==typeof p?"Button--color--"+p:"Button--color--default",t]),tabIndex:!h&&"0",unselectable:a.tridentVersion<=4,onclick:function(e){(0,l.refocusLayout)(),!h&&x&&x(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;return t===i.KEY_SPACE||t===i.KEY_ENTER?(e.preventDefault(),void(!h&&x&&x(e))):t===i.KEY_ESCAPE?(e.preventDefault(),void(0,l.refocusLayout)()):void 0}},L,{children:[c&&(0,o.createComponentVNode)(2,d.Icon,{name:c,rotation:V,spin:y}),v,_,b&&(0,o.createComponentVNode)(2,s.Tooltip,{content:b,position:g})]})))};t.Button=h,h.defaultHooks=r.pureComponentHooks;var C=function(e){var t=e.checked,n=m(e,["checked"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=C,h.Checkbox=C;var b=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}p(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmContent,r=void 0===n?"Confirm?":n,a=t.confirmColor,i=void 0===a?"bad":a,c=t.confirmIcon,l=t.icon,u=t.color,d=t.content,s=t.onClick,p=m(t,["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({content:this.state.clickedOnce?r:d,icon:this.state.clickedOnce?c:l,color:this.state.clickedOnce?i:u,onClick:function(){return e.state.clickedOnce?s():e.setClickedOnce(!0)}},p)))},t}(o.Component);t.ButtonConfirm=b,h.Confirm=b;var g=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={inInput:!1},t}p(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,a=t.content,c=t.icon,l=t.iconRotation,p=t.iconSpin,f=t.tooltip,h=t.tooltipPosition,C=t.color,b=void 0===C?"default":C,g=(t.placeholder,t.maxLength,m(t,["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","placeholder","maxLength"]));return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({className:(0,r.classes)(["Button",n&&"Button--fluid","Button--color--"+b])},g,{onClick:function(){return e.setInInput(!0)},children:[c&&(0,o.createComponentVNode)(2,d.Icon,{name:c,rotation:l,spin:p}),(0,o.createVNode)(1,"div",null,a,0),(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef),f&&(0,o.createComponentVNode)(2,s.Tooltip,{content:f,position:h})]})))},t}(o.Component);t.ButtonInput=g,h.Input=g},function(e,t,n){"use strict";t.__esModule=!0,t.refocusLayout=void 0;var o=n(15);t.refocusLayout=function(){if(!(o.tridentVersion<=4)){var e=document.getElementById("Layout__content");e&&e.focus()}}},function(e,t,n){"use strict";var o;o=function(){return this}();try{o=o||new Function("return this")()}catch(r){"object"==typeof window&&(o=window)}e.exports=o},function(e,t,n){"use strict";var o=n(7),r=n(4),a=n(89);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(5),r=n(90),a=o["__core-js_shared__"]||r("__core-js_shared__",{});e.exports=a},function(e,t,n){"use strict";var o=n(5),r=n(91),a=o.WeakMap;e.exports="function"==typeof a&&/native code/.test(r(a))},function(e,t,n){"use strict";var o=n(16),r=n(93),a=n(22),i=n(13);e.exports=function(e,t){for(var n=r(t),c=i.f,l=a.f,u=0;ul;)o(c,n=t[l++])&&(~a(u,n)||u.push(n));return u}},function(e,t,n){"use strict";var o=n(96);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var o=n(7),r=n(13),a=n(8),i=n(63);e.exports=o?Object.defineProperties:function(e,t){a(e);for(var n,o=i(t),c=o.length,l=0;c>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){"use strict";var o=n(37);e.exports=o("document","documentElement")},function(e,t,n){"use strict";var o=n(26),r=n(49).f,a={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return i&&"[object Window]"==a.call(e)?function(e){try{return r(e)}catch(t){return i.slice()}}(e):r(o(e))}},function(e,t,n){"use strict";var o=n(12);t.f=o},function(e,t,n){"use strict";var o=n(14),r=n(43),a=n(11),i=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=a(n.length),l=r(e,c),u=r(t,c),d=arguments.length>2?arguments[2]:undefined,s=i((d===undefined?c:r(d,c))-u,c-l),p=1;for(u0;)u in n?n[l]=n[u]:delete n[l],l+=p,u+=p;return n}},function(e,t,n){"use strict";var o=n(54),r=n(11),a=n(50);e.exports=function i(e,t,n,c,l,u,d,s){for(var p,m=l,f=0,h=!!d&&a(d,s,3);f0&&o(p))m=i(e,t,p,r(p.length),m,u-1)-1;else{if(m>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[m]=p}m++}f++}return m}},function(e,t,n){"use strict";var o=n(8);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(i){var a=e["return"];throw a!==undefined&&o(a.call(e)),i}}},function(e,t,n){"use strict";var o=n(26),r=n(46),a=n(66),i=n(35),c=n(102),l=i.set,u=i.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:o(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}}),"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var o,r,a,i=n(36),c=n(30),l=n(16),u=n(12),d=n(39),s=u("iterator"),p=!1;[].keys&&("next"in(a=[].keys())?(r=i(i(a)))!==Object.prototype&&(o=r):p=!0),o==undefined&&(o={}),d||l(o,s)||c(o,s,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:p}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var o=n(26),r=n(31),a=n(11),i=n(40),c=n(25),l=Math.min,u=[].lastIndexOf,d=!!u&&1/[1].lastIndexOf(1,-0)<0,s=i("lastIndexOf"),p=c("indexOf",{ACCESSORS:!0,1:0}),m=d||!s||!p;e.exports=m?function(e){if(d)return u.apply(this,arguments)||0;var t=o(this),n=a(t.length),i=n-1;for(arguments.length>1&&(i=l(i,r(arguments[1]))),i<0&&(i=n+i);i>=0;i--)if(i in t&&t[i]===e)return i||0;return-1}:u},function(e,t,n){"use strict";var o=n(31),r=n(11);e.exports=function(e){if(e===undefined)return 0;var t=o(e),n=r(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var o=n(32),r=n(6),a=[].slice,i={},c=function(e,t,n){if(!(t in i)){for(var o=[],r=0;r1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!b(this,e)}}),a(d.prototype,n?{get:function(e){var t=b(this,e);return t&&t.value},set:function(e,t){return C(this,0===e?0:e,t)}}:{add:function(e){return C(this,e=0===e?0:e,e)}}),s&&o(d.prototype,"size",{get:function(){return m(this).size}}),d},setStrong:function(e,t,n){var o=t+" Iterator",r=h(t),a=h(o);u(e,t,(function(e,t){f(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var o=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:o(1+e)}},function(e,t,n){"use strict";var o=n(6),r=Math.floor;e.exports=function(e){return!o(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){"use strict";var o=n(5),r=n(57).trim,a=n(82),i=o.parseInt,c=/^[+-]?0[Xx]/,l=8!==i(a+"08")||22!==i(a+"0x16");e.exports=l?function(e,t){var n=r(String(e));return i(n,t>>>0||(c.test(n)?16:10))}:i},function(e,t,n){"use strict";var o=n(7),r=n(63),a=n(26),i=n(72).f,c=function(e){return function(t){for(var n,c=a(t),l=r(c),u=l.length,d=0,s=[];u>d;)n=l[d++],o&&!i.call(c,n)||s.push(e?[n,c[n]]:c[n]);return s}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var o=n(5);e.exports=o.Promise},function(e,t,n){"use strict";var o=n(74);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},function(e,t,n){"use strict";var o,r,a,i,c,l,u,d,s=n(5),p=n(22).f,m=n(33),f=n(108).set,h=n(149),C=s.MutationObserver||s.WebKitMutationObserver,b=s.process,g=s.Promise,N="process"==m(b),v=p(s,"queueMicrotask"),V=v&&v.value;V||(o=function(){var e,t;for(N&&(e=b.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?i():a=undefined,n}}a=undefined,e&&e.enter()},N?i=function(){b.nextTick(o)}:C&&!h?(c=!0,l=document.createTextNode(""),new C(o).observe(l,{characterData:!0}),i=function(){l.data=c=!c}):g&&g.resolve?(u=g.resolve(undefined),d=u.then,i=function(){d.call(u,o)}):i=function(){f.call(s,o)}),e.exports=V||function(e){var t={fn:e,next:undefined};a&&(a.next=t),r||(r=t,i()),a=t}},function(e,t,n){"use strict";var o=n(8),r=n(6),a=n(152);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var o=n(32),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},function(e,t,n){"use strict";var o=n(1),r=n(85);o({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},function(e,t,n){"use strict";var o=n(74);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o)},function(e,t,n){"use strict";var o=n(352);e.exports=function(e,t){var n=o(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var o=n(14),r=n(11),a=n(100),i=n(99),c=n(50),l=n(9).aTypedArrayConstructor;e.exports=function(e){var t,n,u,d,s,p,m=o(e),f=arguments.length,h=f>1?arguments[1]:undefined,C=h!==undefined,b=a(m);if(b!=undefined&&!i(b))for(p=(s=b.call(m)).next,m=[];!(d=p.call(s)).done;)m.push(d.value);for(C&&f>2&&(h=c(h,arguments[2],2)),n=r(m.length),u=new(l(this))(n),t=0;n>t;t++)u[t]=C?h(m[t],t):m[t];return u}},function(e,t,n){"use strict";var o=n(67),r=n(53).getWeakData,a=n(8),i=n(6),c=n(56),l=n(69),u=n(19),d=n(16),s=n(35),p=s.set,m=s.getterFor,f=u.find,h=u.findIndex,C=0,b=function(e){return e.frozen||(e.frozen=new g)},g=function(){this.entries=[]},N=function(e,t){return f(e.entries,(function(e){return e[0]===t}))};g.prototype={get:function(e){var t=N(this,e);if(t)return t[1]},has:function(e){return!!N(this,e)},set:function(e,t){var n=N(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,u){var s=e((function(e,o){c(e,s,t),p(e,{type:t,id:C++,frozen:undefined}),o!=undefined&&l(o,e[u],e,n)})),f=m(t),h=function(e,t,n){var o=f(e),i=r(a(t),!0);return!0===i?b(o).set(t,n):i[o.id]=n,e};return o(s.prototype,{"delete":function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?b(t)["delete"](e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?b(t).has(e):n&&d(n,t.id)}}),o(s.prototype,n?{get:function(e){var t=f(this);if(i(e)){var n=r(e);return!0===n?b(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),s}}},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=void 0;var o=n(160),r=n(15);function a(e,t,n,o,r,a,i){try{var c=e[a](i),l=c.value}catch(u){return void n(u)}c.done?t(l):Promise.resolve(l).then(o,r)}var i,c,l,u,d,s=(0,n(42).createLogger)("drag"),p=!1,m=!1,f=[0,0],h=function(e){return(0,r.winget)(e,"pos").then((function(e){return[e.x,e.y]}))},C=function(e,t){return(0,r.winset)(e,"pos",t[0]+","+t[1])},b=function(){var e,t=(e=regeneratorRuntime.mark((function n(e){var t,o,r,a;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s.log("setting up"),i=e.config.window,n.next=4,h(i);case 4:t=n.sent,f=[t[0]-window.screenLeft,t[1]-window.screenTop],o=g(t),r=o[0],a=o[1],r&&C(i,a),s.debug("current state",{ref:i,screenOffset:f});case 9:case"end":return n.stop()}}),n)})),function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function c(e){a(i,o,r,c,l,"next",e)}function l(e){a(i,o,r,c,l,"throw",e)}c(undefined)}))});return function(e){return t.apply(this,arguments)}}();t.setupDrag=b;var g=function(e){var t=e[0],n=e[1],o=!1;return t<0?(t=0,o=!0):t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth,o=!0),n<0?(n=0,o=!0):n+window.innerHeight>window.screen.availHeight&&(n=window.screen.availHeight-window.innerHeight,o=!0),[o,[t,n]]};t.dragStartHandler=function(e){s.log("drag start"),p=!0,c=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",v),document.addEventListener("mouseup",N),v(e)};var N=function _(e){s.log("drag end"),v(e),document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",_),p=!1},v=function(e){p&&(e.preventDefault(),C(i,(0,o.vecAdd)([e.screenX,e.screenY],f,c)))};t.resizeStartHandler=function(e,t){return function(n){l=[e,t],s.log("resize start",l),m=!0,c=[window.screenLeft-n.screenX,window.screenTop-n.screenY],u=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",y),document.addEventListener("mouseup",V),y(n)}};var V=function k(e){s.log("resize end",d),y(e),document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",k),m=!1},y=function(e){m&&(e.preventDefault(),(d=(0,o.vecAdd)(u,(0,o.vecMultiply)(l,(0,o.vecAdd)([e.screenX,e.screenY],(0,o.vecInverse)([window.screenLeft,window.screenTop]),c,[1,1]))))[0]=Math.max(d[0],250),d[1]=Math.max(d[1],120),function(e,t){(0,r.winset)(e,"size",t[0]+","+t[1])}(i,d))}},function(e,t,n){"use strict";t.__esModule=!0,t.vecNormalize=t.vecLength=t.vecInverse=t.vecScale=t.vecDivide=t.vecMultiply=t.vecSubtract=t.vecAdd=t.vecCreate=void 0;var o=n(18);t.vecCreate=function(){for(var e=arguments.length,t=new Array(e),n=0;n35;return(0,o.createVNode)(1,"div",(0,r.classes)(["Tooltip",i&&"Tooltip--long",a&&"Tooltip--"+a]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var o=n(0),r=n(10),a=n(21);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){return(0,r.isFalsy)(e)?"":e},l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,o=t.props.onInput;n||t.setEditing(!0),o&&o(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,o=t.props.onChange;n&&(t.setEditing(!1),o&&o(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,o=n.onInput,r=n.onChange,a=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),r&&r(e,e.target.value),o&&o(e,e.target.value),a&&a(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=c(t.props.value),void e.target.blur()):void 0},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=c(e))},u.componentDidUpdate=function(e,t){var n=this.state.editing,o=e.value,r=this.props.value,a=this.inputRef.current;a&&!n&&o!==r&&(a.value=c(r))},u.setEditing=function(e){this.setState({editing:e})},u.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,c=i(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder"]),l=c.className,u=c.fluid,d=i(c,["className","fluid"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Input",u&&"Input--fluid",l])},d,{children:[(0,o.createVNode)(1,"div","Input__baseline",".",16),(0,o.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},l}(o.Component);t.Input=l},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var o=n(0),r=n(165),a=n(10);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.children,n=i(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table,Object.assign({},n,{children:(0,o.createComponentVNode)(2,r.Table.Row,{children:t})})))};t.Grid=c,c.defaultHooks=a.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t,a=e.style,c=i(e,["size","style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},a)},c)))};t.GridColumn=l,c.defaultHooks=a.pureComponentHooks,c.Column=l},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var o=n(0),r=n(10),a=n(21);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.collapsing,n=e.className,c=e.content,l=e.children,u=i(e,["collapsing","className","content","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"table",className:(0,r.classes)(["Table",t&&"Table--collapsing",n])},u,{children:(0,o.createVNode)(1,"tbody",null,[c,l],0)})))};t.Table=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.className,n=e.header,c=i(e,["className","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"tr",className:(0,r.classes)(["Table__row",n&&"Table__row--header",t])},c)))};t.TableRow=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.collapsing,c=e.header,l=i(e,["className","collapsing","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"td",className:(0,r.classes)(["Table__cell",n&&"Table__cell--collapsing",c&&"Table__cell--header",t])},l)))};t.TableCell=u,u.defaultHooks=r.pureComponentHooks,c.Row=l,c.Cell=u},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var o=n(0),r=n(10),a=n(21),i=function(e){var t=e.children;return(0,o.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=i,i.defaultHooks=r.pureComponentHooks;var c=function(e){var t=e.className,n=e.label,i=e.labelColor,c=void 0===i?"label":i,l=e.color,u=e.buttons,d=e.content,s=e.children;return(0,o.createVNode)(1,"tr",(0,r.classes)(["LabeledList__row",t]),[(0,o.createComponentVNode)(2,a.Box,{as:"td",color:c,className:(0,r.classes)(["LabeledList__cell","LabeledList__label"]),content:n+":"}),(0,o.createComponentVNode)(2,a.Box,{as:"td",color:l,className:(0,r.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:u?undefined:2,children:[d,s]}),u&&(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",u,0)],0)};t.LabeledListItem=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t;return(0,o.createVNode)(1,"tr","LabeledList__row",(0,o.createVNode)(1,"td",null,null,1,{style:{"padding-bottom":(0,a.unit)(n)}}),2)};t.LabeledListDivider=l,l.defaultHooks=r.pureComponentHooks,i.Item=c,i.Divider=l},function(e,t,n){"use strict";t.__esModule=!0,t.AccessList=void 0;var o=n(0),r=n(2),a=n(18);t.AccessList=function(e){var t=e.accesses,n=void 0===t?[]:t,i=e.selectedList,c=void 0===i?[]:i,l=e.accessMod,u=e.grantAll,d=e.denyAll,s=e.grantDep,p=e.denyDep,m={0:{icon:"times-circle",color:"bad"},1:{icon:"stop-circle",color:null},2:{icon:"check-circle",color:"good"}},f=function(e){var t=!1,n=!1;return e.forEach((function(e){c.includes(e.ref)?t=!0:n=!0})),!t&&n?0:t&&n?1:2};return(0,o.createComponentVNode)(2,r.Section,{title:"Access",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button,{icon:"check-double",content:"Grant All",color:"good",onClick:function(){return u()}}),(0,o.createComponentVNode)(2,r.Button,{icon:"undo",content:"Deny All",color:"bad",onClick:function(){return d()}})],4),children:(0,o.createComponentVNode)(2,r.Tabs,{vertical:!0,altSelection:!0,children:n.map((function(e){var t=(0,a.sortBy)((function(e){return e.desc}))(e.accesses||[]),n=m[f(t)].icon,i=m[f(t)].color;return(0,o.createComponentVNode)(2,r.Tabs.Tab,{label:e.name,color:i,icon:n,children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{mr:0,children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"check",content:"Grant Region",color:"good",onClick:function(){return s(e.regid)}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{ml:0,children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"times",content:"Deny Region",color:"bad",onClick:function(){return p(e.regid)}})})]}),t.map((function(e){return(0,o.createComponentVNode)(2,r.Button.Checkbox,{fluid:!0,content:e.desc,checked:c.includes(e.ref),onClick:function(){return l(e.ref)}},e.desc)}))]},e.name)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(0),r=n(2);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[e.volume," units of ",e.name]},e.name)}))]})}},function(e,t,n){n(170),n(171),n(172),n(173),n(174),n(175),n(176),e.exports=n(177)},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n(178),n(179),n(180),n(181),n(182),n(183),n(184),n(185),n(186),n(187),n(188),n(189),n(190),n(191),n(192),n(193),n(194),n(195),n(196),n(197),n(198),n(199),n(200),n(201),n(203),n(205),n(206),n(207),n(136),n(209),n(210),n(211),n(212),n(213),n(214),n(215),n(216),n(217),n(218),n(219),n(220),n(221),n(222),n(224),n(225),n(226),n(227),n(228),n(230),n(231),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(242),n(243),n(244),n(245),n(246),n(248),n(249),n(250),n(251),n(252),n(253),n(254),n(255),n(256),n(257),n(258),n(259),n(260),n(262),n(263),n(264),n(265),n(266),n(267),n(269),n(270),n(272),n(274),n(275),n(276),n(277),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(291),n(292),n(293),n(294),n(295),n(296),n(298),n(299),n(300),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(311),n(312),n(313),n(314),n(315),n(316),n(317),n(153),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(351),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389),n(390);var o=n(0);n(392),n(393);var r=n(394),a=(n(158),n(3)),i=n(15),c=n(159),l=n(42),u=n(395),d=(0,l.createLogger)(),s=(0,u.createStore)(),p=document.getElementById("react-root"),m=!0,f=function(){for(s.subscribe((function(){!function(){try{var e=s.getState();m&&(d.log("initial render",e),(0,c.setupDrag)(e));var t=n(397).Layout,r=(0,o.createComponentVNode)(2,t,{state:e,dispatch:s.dispatch});(0,o.render)(r,p)}catch(a){d.error("rendering error",a)}m&&(m=!1)}()})),window.update=window.initialize=function(e){var t=function(e){var t=function(e,t){return"object"==typeof t&&null!==t&&t.__number__?parseFloat(t.__number__):t};i.tridentVersion<=4&&(t=undefined);try{return JSON.parse(e,t)}catch(o){d.log(o),d.log("What we got:",e);var n=o&&o.message;throw new Error("JSON parsing error: "+n)}}(e);s.dispatch((0,a.backendUpdate)(t))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}(0,r.loadCSS)("font-awesome.css")};i.tridentVersion<=4&&"loading"===document.readyState?document.addEventListener("DOMContentLoaded",f):f()},function(e,t,n){"use strict";var o=n(1),r=n(5),a=n(37),i=n(39),c=n(7),l=n(96),u=n(128),d=n(4),s=n(16),p=n(54),m=n(6),f=n(8),h=n(14),C=n(26),b=n(34),g=n(48),N=n(44),v=n(63),V=n(49),y=n(131),_=n(95),k=n(22),x=n(13),L=n(72),B=n(30),w=n(24),S=n(92),I=n(73),T=n(60),A=n(59),P=n(12),E=n(132),R=n(27),M=n(45),O=n(35),F=n(19).forEach,D=I("hidden"),j=P("toPrimitive"),z=O.set,G=O.getterFor("Symbol"),H=Object.prototype,U=r.Symbol,K=a("JSON","stringify"),W=k.f,Y=x.f,q=y.f,$=L.f,Q=S("symbols"),X=S("op-symbols"),J=S("string-to-symbol-registry"),Z=S("symbol-to-string-registry"),ee=S("wks"),te=r.QObject,ne=!te||!te.prototype||!te.prototype.findChild,oe=c&&d((function(){return 7!=N(Y({},"a",{get:function(){return Y(this,"a",{value:7}).a}})).a}))?function(e,t,n){var o=W(H,t);o&&delete H[t],Y(e,t,n),o&&e!==H&&Y(H,t,o)}:Y,re=function(e,t){var n=Q[e]=N(U.prototype);return z(n,{type:"Symbol",tag:e,description:t}),c||(n.description=t),n},ae=u?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof U},ie=function(e,t,n){e===H&&ie(X,t,n),f(e);var o=b(t,!0);return f(n),s(Q,o)?(n.enumerable?(s(e,D)&&e[D][o]&&(e[D][o]=!1),n=N(n,{enumerable:g(0,!1)})):(s(e,D)||Y(e,D,g(1,{})),e[D][o]=!0),oe(e,o,n)):Y(e,o,n)},ce=function(e,t){f(e);var n=C(t),o=v(n).concat(pe(n));return F(o,(function(t){c&&!ue.call(n,t)||ie(e,t,n[t])})),e},le=function(e,t){return t===undefined?N(e):ce(N(e),t)},ue=function(e){var t=b(e,!0),n=$.call(this,t);return!(this===H&&s(Q,t)&&!s(X,t))&&(!(n||!s(this,t)||!s(Q,t)||s(this,D)&&this[D][t])||n)},de=function(e,t){var n=C(e),o=b(t,!0);if(n!==H||!s(Q,o)||s(X,o)){var r=W(n,o);return!r||!s(Q,o)||s(n,D)&&n[D][o]||(r.enumerable=!0),r}},se=function(e){var t=q(C(e)),n=[];return F(t,(function(e){s(Q,e)||s(T,e)||n.push(e)})),n},pe=function(e){var t=e===H,n=q(t?X:C(e)),o=[];return F(n,(function(e){!s(Q,e)||t&&!s(H,e)||o.push(Q[e])})),o};(l||(w((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor");var e=arguments.length&&arguments[0]!==undefined?String(arguments[0]):undefined,t=A(e),n=function o(e){this===H&&o.call(X,e),s(this,D)&&s(this[D],t)&&(this[D][t]=!1),oe(this,t,g(1,e))};return c&&ne&&oe(H,t,{configurable:!0,set:n}),re(t,e)}).prototype,"toString",(function(){return G(this).tag})),w(U,"withoutSetter",(function(e){return re(A(e),e)})),L.f=ue,x.f=ie,k.f=de,V.f=y.f=se,_.f=pe,E.f=function(e){return re(P(e),e)},c&&(Y(U.prototype,"description",{configurable:!0,get:function(){return G(this).description}}),i||w(H,"propertyIsEnumerable",ue,{unsafe:!0}))),o({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:U}),F(v(ee),(function(e){R(e)})),o({target:"Symbol",stat:!0,forced:!l},{"for":function(e){var t=String(e);if(s(J,t))return J[t];var n=U(t);return J[t]=n,Z[n]=t,n},keyFor:function(e){if(!ae(e))throw TypeError(e+" is not a symbol");if(s(Z,e))return Z[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),o({target:"Object",stat:!0,forced:!l,sham:!c},{create:le,defineProperty:ie,defineProperties:ce,getOwnPropertyDescriptor:de}),o({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:se,getOwnPropertySymbols:pe}),o({target:"Object",stat:!0,forced:d((function(){_.f(1)}))},{getOwnPropertySymbols:function(e){return _.f(h(e))}}),K)&&o({target:"JSON",stat:!0,forced:!l||d((function(){var e=U();return"[null]"!=K([e])||"{}"!=K({a:e})||"{}"!=K(Object(e))}))},{stringify:function(e,t,n){for(var o,r=[e],a=1;arguments.length>a;)r.push(arguments[a++]);if(o=t,(m(t)||e!==undefined)&&!ae(e))return p(t)||(t=function(e,t){if("function"==typeof o&&(t=o.call(this,e,t)),!ae(t))return t}),r[1]=t,K.apply(null,r)}});U.prototype[j]||B(U.prototype,j,U.prototype.valueOf),M(U,"Symbol"),T[D]=!0},function(e,t,n){"use strict";var o=n(1),r=n(7),a=n(5),i=n(16),c=n(6),l=n(13).f,u=n(125),d=a.Symbol;if(r&&"function"==typeof d&&(!("description"in d.prototype)||d().description!==undefined)){var s={},p=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof p?new d(e):e===undefined?d():d(e);return""===e&&(s[t]=!0),t};u(p,d);var m=p.prototype=d.prototype;m.constructor=p;var f=m.toString,h="Symbol(test)"==String(d("test")),C=/^Symbol\((.*)\)[^)]+$/;l(m,"description",{configurable:!0,get:function(){var e=c(this)?this.valueOf():this,t=f.call(e);if(i(s,e))return"";var n=h?t.slice(7,-1):t.replace(C,"$1");return""===n?undefined:n}}),o({global:!0,forced:!0},{Symbol:p})}},function(e,t,n){"use strict";n(27)("asyncIterator")},function(e,t,n){"use strict";n(27)("hasInstance")},function(e,t,n){"use strict";n(27)("isConcatSpreadable")},function(e,t,n){"use strict";n(27)("iterator")},function(e,t,n){"use strict";n(27)("match")},function(e,t,n){"use strict";n(27)("replace")},function(e,t,n){"use strict";n(27)("search")},function(e,t,n){"use strict";n(27)("species")},function(e,t,n){"use strict";n(27)("split")},function(e,t,n){"use strict";n(27)("toPrimitive")},function(e,t,n){"use strict";n(27)("toStringTag")},function(e,t,n){"use strict";n(27)("unscopables")},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(54),i=n(6),c=n(14),l=n(11),u=n(51),d=n(64),s=n(65),p=n(12),m=n(97),f=p("isConcatSpreadable"),h=m>=51||!r((function(){var e=[];return e[f]=!1,e.concat()[0]!==e})),C=s("concat"),b=function(e){if(!i(e))return!1;var t=e[f];return t!==undefined?!!t:a(e)};o({target:"Array",proto:!0,forced:!h||!C},{concat:function(e){var t,n,o,r,a,i=c(this),s=d(i,0),p=0;for(t=-1,o=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");u(s,p++,a)}return s.length=p,s}})},function(e,t,n){"use strict";var o=n(1),r=n(133),a=n(46);o({target:"Array",proto:!0},{copyWithin:r}),a("copyWithin")},function(e,t,n){"use strict";var o=n(1),r=n(19).every,a=n(40),i=n(25),c=a("every"),l=i("every");o({target:"Array",proto:!0,forced:!c||!l},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(1),r=n(98),a=n(46);o({target:"Array",proto:!0},{fill:r}),a("fill")},function(e,t,n){"use strict";var o=n(1),r=n(19).filter,a=n(65),i=n(25),c=a("filter"),l=i("filter");o({target:"Array",proto:!0,forced:!c||!l},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(1),r=n(19).find,a=n(46),i=n(25),c=!0,l=i("find");"find"in[]&&Array(1).find((function(){c=!1})),o({target:"Array",proto:!0,forced:c||!l},{find:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("find")},function(e,t,n){"use strict";var o=n(1),r=n(19).findIndex,a=n(46),i=n(25),c=!0,l=i("findIndex");"findIndex"in[]&&Array(1).findIndex((function(){c=!1})),o({target:"Array",proto:!0,forced:c||!l},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("findIndex")},function(e,t,n){"use strict";var o=n(1),r=n(134),a=n(14),i=n(11),c=n(31),l=n(64);o({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=a(this),n=i(t.length),o=l(t,0);return o.length=r(o,t,t,n,0,e===undefined?1:c(e)),o}})},function(e,t,n){"use strict";var o=n(1),r=n(134),a=n(14),i=n(11),c=n(32),l=n(64);o({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),o=i(n.length);return c(e),(t=l(n,0)).length=r(t,n,n,o,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var o=n(1),r=n(202);o({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},function(e,t,n){"use strict";var o=n(19).forEach,r=n(40),a=n(25),i=r("forEach"),c=a("forEach");e.exports=i&&c?[].forEach:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}},function(e,t,n){"use strict";var o=n(1),r=n(204);o({target:"Array",stat:!0,forced:!n(76)((function(e){Array.from(e)}))},{from:r})},function(e,t,n){"use strict";var o=n(50),r=n(14),a=n(135),i=n(99),c=n(11),l=n(51),u=n(100);e.exports=function(e){var t,n,d,s,p,m,f=r(e),h="function"==typeof this?this:Array,C=arguments.length,b=C>1?arguments[1]:undefined,g=b!==undefined,N=u(f),v=0;if(g&&(b=o(b,C>2?arguments[2]:undefined,2)),N==undefined||h==Array&&i(N))for(n=new h(t=c(f.length));t>v;v++)m=g?b(f[v],v):f[v],l(n,v,m);else for(p=(s=N.call(f)).next,n=new h;!(d=p.call(s)).done;v++)m=g?a(s,b,[d.value,v],!0):d.value,l(n,v,m);return n.length=v,n}},function(e,t,n){"use strict";var o=n(1),r=n(61).includes,a=n(46);o({target:"Array",proto:!0,forced:!n(25)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("includes")},function(e,t,n){"use strict";var o=n(1),r=n(61).indexOf,a=n(40),i=n(25),c=[].indexOf,l=!!c&&1/[1].indexOf(1,-0)<0,u=a("indexOf"),d=i("indexOf",{ACCESSORS:!0,1:0});o({target:"Array",proto:!0,forced:l||!u||!d},{indexOf:function(e){return l?c.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(1)({target:"Array",stat:!0},{isArray:n(54)})},function(e,t,n){"use strict";var o=n(137).IteratorPrototype,r=n(44),a=n(48),i=n(45),c=n(66),l=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=r(o,{next:a(1,n)}),i(e,u,!1,!0),c[u]=l,e}},function(e,t,n){"use strict";var o=n(1),r=n(58),a=n(26),i=n(40),c=[].join,l=r!=Object,u=i("join",",");o({target:"Array",proto:!0,forced:l||!u},{join:function(e){return c.call(a(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var o=n(1),r=n(139);o({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},function(e,t,n){"use strict";var o=n(1),r=n(19).map,a=n(65),i=n(25),c=a("map"),l=i("map");o({target:"Array",proto:!0,forced:!c||!l},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(51);o({target:"Array",stat:!0,forced:r((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)a(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var o=n(1),r=n(77).left,a=n(40),i=n(25),c=a("reduce"),l=i("reduce",{1:0});o({target:"Array",proto:!0,forced:!c||!l},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(1),r=n(77).right,a=n(40),i=n(25),c=a("reduceRight"),l=i("reduce",{1:0});o({target:"Array",proto:!0,forced:!c||!l},{reduceRight:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(1),r=n(6),a=n(54),i=n(43),c=n(11),l=n(26),u=n(51),d=n(12),s=n(65),p=n(25),m=s("slice"),f=p("slice",{ACCESSORS:!0,0:0,1:2}),h=d("species"),C=[].slice,b=Math.max;o({target:"Array",proto:!0,forced:!m||!f},{slice:function(e,t){var n,o,d,s=l(this),p=c(s.length),m=i(e,p),f=i(t===undefined?p:t,p);if(a(s)&&("function"!=typeof(n=s.constructor)||n!==Array&&!a(n.prototype)?r(n)&&null===(n=n[h])&&(n=undefined):n=undefined,n===Array||n===undefined))return C.call(s,m,f);for(o=new(n===undefined?Array:n)(b(f-m,0)),d=0;m1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(1),r=n(32),a=n(14),i=n(4),c=n(40),l=[],u=l.sort,d=i((function(){l.sort(undefined)})),s=i((function(){l.sort(null)})),p=c("sort");o({target:"Array",proto:!0,forced:d||!s||!p},{sort:function(e){return e===undefined?u.call(a(this)):u.call(a(this),r(e))}})},function(e,t,n){"use strict";n(55)("Array")},function(e,t,n){"use strict";var o=n(1),r=n(43),a=n(31),i=n(11),c=n(14),l=n(64),u=n(51),d=n(65),s=n(25),p=d("splice"),m=s("splice",{ACCESSORS:!0,0:0,1:2}),f=Math.max,h=Math.min;o({target:"Array",proto:!0,forced:!p||!m},{splice:function(e,t){var n,o,d,s,p,m,C=c(this),b=i(C.length),g=r(e,b),N=arguments.length;if(0===N?n=o=0:1===N?(n=0,o=b-g):(n=N-2,o=h(f(a(t),0),b-g)),b+n-o>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(d=l(C,o),s=0;sb-o+n;s--)delete C[s-1]}else if(n>o)for(s=b-o;s>g;s--)m=s+n-1,(p=s+o-1)in C?C[m]=C[p]:delete C[m];for(s=0;s>1,h=23===t?r(2,-24)-r(2,-77):0,C=e<0||0===e&&1/e<0?1:0,b=0;for((e=o(e))!=e||e===1/0?(u=e!=e?1:0,l=m):(l=a(i(e)/c),e*(d=r(2,-l))<1&&(l--,d*=2),(e+=l+f>=1?h/d:h*r(2,1-f))*d>=2&&(l++,d/=2),l+f>=m?(u=0,l=m):l+f>=1?(u=(e*d-1)*r(2,t),l+=f):(u=e*r(2,f-1)*r(2,t),l=0));t>=8;s[b++]=255&u,u/=256,t-=8);for(l=l<0;s[b++]=255&l,l/=256,p-=8);return s[--b]|=128*C,s},unpack:function(e,t){var n,o=e.length,a=8*o-t-1,i=(1<>1,l=a-7,u=o-1,d=e[u--],s=127&d;for(d>>=7;l>0;s=256*s+e[u],u--,l-=8);for(n=s&(1<<-l)-1,s>>=-l,l+=t;l>0;n=256*n+e[u],u--,l-=8);if(0===s)s=1-c;else{if(s===i)return n?NaN:d?-1/0:1/0;n+=r(2,t),s-=c}return(d?-1:1)*n*r(2,s-t)}}},function(e,t,n){"use strict";var o=n(1),r=n(9);o({target:"ArrayBuffer",stat:!0,forced:!r.NATIVE_ARRAY_BUFFER_VIEWS},{isView:r.isView})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(78),i=n(8),c=n(43),l=n(11),u=n(47),d=a.ArrayBuffer,s=a.DataView,p=d.prototype.slice;o({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:r((function(){return!new d(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(p!==undefined&&t===undefined)return p.call(i(this),e);for(var n=i(this).byteLength,o=c(e,n),r=c(t===undefined?n:t,n),a=new(u(this,d))(l(r-o)),m=new s(this),f=new s(a),h=0;o9999?"+":"";return n+r(a(e),n?6:4,0)+"-"+r(this.getUTCMonth()+1,2,0)+"-"+r(this.getUTCDate(),2,0)+"T"+r(this.getUTCHours(),2,0)+":"+r(this.getUTCMinutes(),2,0)+":"+r(this.getUTCSeconds(),2,0)+"."+r(t,3,0)+"Z"}:l},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(14),i=n(34);o({target:"Date",proto:!0,forced:r((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=a(this),n=i(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var o=n(30),r=n(232),a=n(12)("toPrimitive"),i=Date.prototype;a in i||o(i,a,r)},function(e,t,n){"use strict";var o=n(8),r=n(34);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return r(o(this),"number"!==e)}},function(e,t,n){"use strict";var o=n(24),r=Date.prototype,a=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&o(r,"toString",(function(){var e=i.call(this);return e==e?a.call(this):"Invalid Date"}))},function(e,t,n){"use strict";n(1)({target:"Function",proto:!0},{bind:n(141)})},function(e,t,n){"use strict";var o=n(6),r=n(13),a=n(36),i=n(12)("hasInstance"),c=Function.prototype;i in c||r.f(c,i,{value:function(e){if("function"!=typeof this||!o(e))return!1;if(!o(this.prototype))return e instanceof this;for(;e=a(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var o=n(7),r=n(13).f,a=Function.prototype,i=a.toString,c=/^\s*function ([^ (]*)/;!o||"name"in a||r(a,"name",{configurable:!0,get:function(){try{return i.call(this).match(c)[1]}catch(e){return""}}})},function(e,t,n){"use strict";var o=n(5);n(45)(o.JSON,"JSON",!0)},function(e,t,n){"use strict";var o=n(79),r=n(142);e.exports=o("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(1),r=n(143),a=Math.acosh,i=Math.log,c=Math.sqrt,l=Math.LN2;o({target:"Math",stat:!0,forced:!a||710!=Math.floor(a(Number.MAX_VALUE))||a(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?i(e)+l:r(e-1+c(e-1)*c(e+1))}})},function(e,t,n){"use strict";var o=n(1),r=Math.asinh,a=Math.log,i=Math.sqrt;o({target:"Math",stat:!0,forced:!(r&&1/r(0)>0)},{asinh:function c(e){return isFinite(e=+e)&&0!=e?e<0?-c(-e):a(e+i(e*e+1)):e}})},function(e,t,n){"use strict";var o=n(1),r=Math.atanh,a=Math.log;o({target:"Math",stat:!0,forced:!(r&&1/r(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:a((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var o=n(1),r=n(107),a=Math.abs,i=Math.pow;o({target:"Math",stat:!0},{cbrt:function(e){return r(e=+e)*i(a(e),1/3)}})},function(e,t,n){"use strict";var o=n(1),r=Math.floor,a=Math.log,i=Math.LOG2E;o({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-r(a(e+.5)*i):32}})},function(e,t,n){"use strict";var o=n(1),r=n(81),a=Math.cosh,i=Math.abs,c=Math.E;o({target:"Math",stat:!0,forced:!a||a(710)===Infinity},{cosh:function(e){var t=r(i(e)-1)+1;return(t+1/(t*c*c))*(c/2)}})},function(e,t,n){"use strict";var o=n(1),r=n(81);o({target:"Math",stat:!0,forced:r!=Math.expm1},{expm1:r})},function(e,t,n){"use strict";n(1)({target:"Math",stat:!0},{fround:n(247)})},function(e,t,n){"use strict";var o=n(107),r=Math.abs,a=Math.pow,i=a(2,-52),c=a(2,-23),l=a(2,127)*(2-c),u=a(2,-126);e.exports=Math.fround||function(e){var t,n,a=r(e),d=o(e);return al||n!=n?d*Infinity:d*n}},function(e,t,n){"use strict";var o=n(1),r=Math.hypot,a=Math.abs,i=Math.sqrt;o({target:"Math",stat:!0,forced:!!r&&r(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,o,r=0,c=0,l=arguments.length,u=0;c0?(o=n/u)*o:n;return u===Infinity?Infinity:u*i(r)}})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=Math.imul;o({target:"Math",stat:!0,forced:r((function(){return-5!=a(4294967295,5)||2!=a.length}))},{imul:function(e,t){var n=+e,o=+t,r=65535&n,a=65535&o;return 0|r*a+((65535&n>>>16)*a+r*(65535&o>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var o=n(1),r=Math.log,a=Math.LOG10E;o({target:"Math",stat:!0},{log10:function(e){return r(e)*a}})},function(e,t,n){"use strict";n(1)({target:"Math",stat:!0},{log1p:n(143)})},function(e,t,n){"use strict";var o=n(1),r=Math.log,a=Math.LN2;o({target:"Math",stat:!0},{log2:function(e){return r(e)/a}})},function(e,t,n){"use strict";n(1)({target:"Math",stat:!0},{sign:n(107)})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(81),i=Math.abs,c=Math.exp,l=Math.E;o({target:"Math",stat:!0,forced:r((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return i(e=+e)<1?(a(e)-a(-e))/2:(c(e-1)-c(-e-1))*(l/2)}})},function(e,t,n){"use strict";var o=n(1),r=n(81),a=Math.exp;o({target:"Math",stat:!0},{tanh:function(e){var t=r(e=+e),n=r(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(a(e)+a(-e))}})},function(e,t,n){"use strict";n(45)(Math,"Math",!0)},function(e,t,n){"use strict";var o=n(1),r=Math.ceil,a=Math.floor;o({target:"Math",stat:!0},{trunc:function(e){return(e>0?a:r)(e)}})},function(e,t,n){"use strict";var o=n(7),r=n(5),a=n(62),i=n(24),c=n(16),l=n(33),u=n(80),d=n(34),s=n(4),p=n(44),m=n(49).f,f=n(22).f,h=n(13).f,C=n(57).trim,b=r.Number,g=b.prototype,N="Number"==l(p(g)),v=function(e){var t,n,o,r,a,i,c,l,u=d(e,!1);if("string"==typeof u&&u.length>2)if(43===(t=(u=C(u)).charCodeAt(0))||45===t){if(88===(n=u.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(u.charCodeAt(1)){case 66:case 98:o=2,r=49;break;case 79:case 111:o=8,r=55;break;default:return+u}for(i=(a=u.slice(2)).length,c=0;cr)return NaN;return parseInt(a,o)}return+u};if(a("Number",!b(" 0o1")||!b("0b1")||b("+0x1"))){for(var V,y=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof y&&(N?s((function(){g.valueOf.call(n)})):"Number"!=l(n))?u(new b(v(t)),n,y):v(t)},_=o?m(b):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),k=0;_.length>k;k++)c(b,V=_[k])&&!c(y,V)&&h(y,V,f(b,V));y.prototype=g,g.constructor=y,i(r,"Number",y)}},function(e,t,n){"use strict";n(1)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(1)({target:"Number",stat:!0},{isFinite:n(261)})},function(e,t,n){"use strict";var o=n(5).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&o(e)}},function(e,t,n){"use strict";n(1)({target:"Number",stat:!0},{isInteger:n(144)})},function(e,t,n){"use strict";n(1)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var o=n(1),r=n(144),a=Math.abs;o({target:"Number",stat:!0},{isSafeInteger:function(e){return r(e)&&a(e)<=9007199254740991}})},function(e,t,n){"use strict";n(1)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(1)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var o=n(1),r=n(268);o({target:"Number",stat:!0,forced:Number.parseFloat!=r},{parseFloat:r})},function(e,t,n){"use strict";var o=n(5),r=n(57).trim,a=n(82),i=o.parseFloat,c=1/i(a+"-0")!=-Infinity;e.exports=c?function(e){var t=r(String(e)),n=i(t);return 0===n&&"-"==t.charAt(0)?-0:n}:i},function(e,t,n){"use strict";var o=n(1),r=n(145);o({target:"Number",stat:!0,forced:Number.parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o=n(1),r=n(31),a=n(271),i=n(106),c=n(4),l=1..toFixed,u=Math.floor,d=function s(e,t,n){return 0===t?n:t%2==1?s(e,t-1,n*e):s(e*e,t/2,n)};o({target:"Number",proto:!0,forced:l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){l.call({})}))},{toFixed:function(e){var t,n,o,c,l=a(this),s=r(e),p=[0,0,0,0,0,0],m="",f="0",h=function(e,t){for(var n=-1,o=t;++n<6;)o+=e*p[n],p[n]=o%1e7,o=u(o/1e7)},C=function(e){for(var t=6,n=0;--t>=0;)n+=p[t],p[t]=u(n/e),n=n%e*1e7},b=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==p[e]){var n=String(p[e]);t=""===t?n:t+i.call("0",7-n.length)+n}return t};if(s<0||s>20)throw RangeError("Incorrect fraction digits");if(l!=l)return"NaN";if(l<=-1e21||l>=1e21)return String(l);if(l<0&&(m="-",l=-l),l>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(l*d(2,69,1))-69)<0?l*d(2,-t,1):l/d(2,t,1),n*=4503599627370496,(t=52-t)>0){for(h(0,n),o=s;o>=7;)h(1e7,0),o-=7;for(h(d(10,o,1),0),o=t-1;o>=23;)C(1<<23),o-=23;C(1<0?m+((c=f.length)<=s?"0."+i.call("0",s-c)+f:f.slice(0,c-s)+"."+f.slice(c-s)):m+f}})},function(e,t,n){"use strict";var o=n(33);e.exports=function(e){if("number"!=typeof e&&"Number"!=o(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var o=n(1),r=n(273);o({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},function(e,t,n){"use strict";var o=n(7),r=n(4),a=n(63),i=n(95),c=n(72),l=n(14),u=n(58),d=Object.assign,s=Object.defineProperty;e.exports=!d||r((function(){if(o&&1!==d({b:1},d(s({},"a",{enumerable:!0,get:function(){s(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=d({},e)[n]||"abcdefghijklmnopqrst"!=a(d({},t)).join("")}))?function(e,t){for(var n=l(e),r=arguments.length,d=1,s=i.f,p=c.f;r>d;)for(var m,f=u(arguments[d++]),h=s?a(f).concat(s(f)):a(f),C=h.length,b=0;C>b;)m=h[b++],o&&!p.call(f,m)||(n[m]=f[m]);return n}:d},function(e,t,n){"use strict";n(1)({target:"Object",stat:!0,sham:!n(7)},{create:n(44)})},function(e,t,n){"use strict";var o=n(1),r=n(7),a=n(83),i=n(14),c=n(32),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineGetter__:function(e,t){l.f(i(this),e,{get:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(1),r=n(7);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperties:n(129)})},function(e,t,n){"use strict";var o=n(1),r=n(7);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:n(13).f})},function(e,t,n){"use strict";var o=n(1),r=n(7),a=n(83),i=n(14),c=n(32),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineSetter__:function(e,t){l.f(i(this),e,{set:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(1),r=n(146).entries;o({target:"Object",stat:!0},{entries:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(1),r=n(68),a=n(4),i=n(6),c=n(53).onFreeze,l=Object.freeze;o({target:"Object",stat:!0,forced:a((function(){l(1)})),sham:!r},{freeze:function(e){return l&&i(e)?l(c(e)):e}})},function(e,t,n){"use strict";var o=n(1),r=n(69),a=n(51);o({target:"Object",stat:!0},{fromEntries:function(e){var t={};return r(e,(function(e,n){a(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(26),i=n(22).f,c=n(7),l=r((function(){i(1)}));o({target:"Object",stat:!0,forced:!c||l,sham:!c},{getOwnPropertyDescriptor:function(e,t){return i(a(e),t)}})},function(e,t,n){"use strict";var o=n(1),r=n(7),a=n(93),i=n(26),c=n(22),l=n(51);o({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,n,o=i(e),r=c.f,u=a(o),d={},s=0;u.length>s;)(n=r(o,t=u[s++]))!==undefined&&l(d,t,n);return d}})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(131).f;o({target:"Object",stat:!0,forced:r((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:a})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(14),i=n(36),c=n(103);o({target:"Object",stat:!0,forced:r((function(){i(1)})),sham:!c},{getPrototypeOf:function(e){return i(a(e))}})},function(e,t,n){"use strict";n(1)({target:"Object",stat:!0},{is:n(147)})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(6),i=Object.isExtensible;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isExtensible:function(e){return!!a(e)&&(!i||i(e))}})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(6),i=Object.isFrozen;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isFrozen:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(1),r=n(4),a=n(6),i=Object.isSealed;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isSealed:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(1),r=n(14),a=n(63);o({target:"Object",stat:!0,forced:n(4)((function(){a(1)}))},{keys:function(e){return a(r(e))}})},function(e,t,n){"use strict";var o=n(1),r=n(7),a=n(83),i=n(14),c=n(34),l=n(36),u=n(22).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.get}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(1),r=n(7),a=n(83),i=n(14),c=n(34),l=n(36),u=n(22).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.set}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(1),r=n(6),a=n(53).onFreeze,i=n(68),c=n(4),l=Object.preventExtensions;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{preventExtensions:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";var o=n(1),r=n(6),a=n(53).onFreeze,i=n(68),c=n(4),l=Object.seal;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{seal:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";n(1)({target:"Object",stat:!0},{setPrototypeOf:n(52)})},function(e,t,n){"use strict";var o=n(101),r=n(24),a=n(297);o||r(Object.prototype,"toString",a,{unsafe:!0})},function(e,t,n){"use strict";var o=n(101),r=n(75);e.exports=o?{}.toString:function(){return"[object "+r(this)+"]"}},function(e,t,n){"use strict";var o=n(1),r=n(146).values;o({target:"Object",stat:!0},{values:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(1),r=n(145);o({global:!0,forced:parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o,r,a,i,c=n(1),l=n(39),u=n(5),d=n(37),s=n(148),p=n(24),m=n(67),f=n(45),h=n(55),C=n(6),b=n(32),g=n(56),N=n(33),v=n(91),V=n(69),y=n(76),_=n(47),k=n(108).set,x=n(150),L=n(151),B=n(301),w=n(152),S=n(302),I=n(35),T=n(62),A=n(12),P=n(97),E=A("species"),R="Promise",M=I.get,O=I.set,F=I.getterFor(R),D=s,j=u.TypeError,z=u.document,G=u.process,H=d("fetch"),U=w.f,K=U,W="process"==N(G),Y=!!(z&&z.createEvent&&u.dispatchEvent),q=T(R,(function(){if(!(v(D)!==String(D))){if(66===P)return!0;if(!W&&"function"!=typeof PromiseRejectionEvent)return!0}if(l&&!D.prototype["finally"])return!0;if(P>=51&&/native code/.test(D))return!1;var e=D.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[E]=t,!(e.then((function(){}))instanceof t)})),$=q||!y((function(e){D.all(e)["catch"]((function(){}))})),Q=function(e){var t;return!(!C(e)||"function"!=typeof(t=e.then))&&t},X=function(e,t,n){if(!t.notified){t.notified=!0;var o=t.reactions;x((function(){for(var r=t.value,a=1==t.state,i=0;o.length>i;){var c,l,u,d=o[i++],s=a?d.ok:d.fail,p=d.resolve,m=d.reject,f=d.domain;try{s?(a||(2===t.rejection&&te(e,t),t.rejection=1),!0===s?c=r:(f&&f.enter(),c=s(r),f&&(f.exit(),u=!0)),c===d.promise?m(j("Promise-chain cycle")):(l=Q(c))?l.call(c,p,m):p(c)):m(r)}catch(h){f&&!u&&f.exit(),m(h)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&Z(e,t)}))}},J=function(e,t,n){var o,r;Y?((o=z.createEvent("Event")).promise=t,o.reason=n,o.initEvent(e,!1,!0),u.dispatchEvent(o)):o={promise:t,reason:n},(r=u["on"+e])?r(o):"unhandledrejection"===e&&B("Unhandled promise rejection",n)},Z=function(e,t){k.call(u,(function(){var n,o=t.value;if(ee(t)&&(n=S((function(){W?G.emit("unhandledRejection",o,e):J("unhandledrejection",e,o)})),t.rejection=W||ee(t)?2:1,n.error))throw n.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e,t){k.call(u,(function(){W?G.emit("rejectionHandled",e):J("rejectionhandled",e,t.value)}))},ne=function(e,t,n,o){return function(r){e(t,n,r,o)}},oe=function(e,t,n,o){t.done||(t.done=!0,o&&(t=o),t.value=n,t.state=2,X(e,t,!0))},re=function ae(e,t,n,o){if(!t.done){t.done=!0,o&&(t=o);try{if(e===n)throw j("Promise can't be resolved itself");var r=Q(n);r?x((function(){var o={done:!1};try{r.call(n,ne(ae,e,o,t),ne(oe,e,o,t))}catch(a){oe(e,o,a,t)}})):(t.value=n,t.state=1,X(e,t,!1))}catch(a){oe(e,{done:!1},a,t)}}};q&&(D=function(e){g(this,D,R),b(e),o.call(this);var t=M(this);try{e(ne(re,this,t),ne(oe,this,t))}catch(n){oe(this,t,n)}},(o=function(e){O(this,{type:R,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:undefined})}).prototype=m(D.prototype,{then:function(e,t){var n=F(this),o=U(_(this,D));return o.ok="function"!=typeof e||e,o.fail="function"==typeof t&&t,o.domain=W?G.domain:undefined,n.parent=!0,n.reactions.push(o),0!=n.state&&X(this,n,!1),o.promise},"catch":function(e){return this.then(undefined,e)}}),r=function(){var e=new o,t=M(e);this.promise=e,this.resolve=ne(re,e,t),this.reject=ne(oe,e,t)},w.f=U=function(e){return e===D||e===a?new r(e):K(e)},l||"function"!=typeof s||(i=s.prototype.then,p(s.prototype,"then",(function(e,t){var n=this;return new D((function(e,t){i.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof H&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return L(D,H.apply(u,arguments))}}))),c({global:!0,wrap:!0,forced:q},{Promise:D}),f(D,R,!1,!0),h(R),a=d(R),c({target:R,stat:!0,forced:q},{reject:function(e){var t=U(this);return t.reject.call(undefined,e),t.promise}}),c({target:R,stat:!0,forced:l||q},{resolve:function(e){return L(l&&this===a?D:this,e)}}),c({target:R,stat:!0,forced:$},{all:function(e){var t=this,n=U(t),o=n.resolve,r=n.reject,a=S((function(){var n=b(t.resolve),a=[],i=0,c=1;V(e,(function(e){var l=i++,u=!1;a.push(undefined),c++,n.call(t,e).then((function(e){u||(u=!0,a[l]=e,--c||o(a))}),r)})),--c||o(a)}));return a.error&&r(a.value),n.promise},race:function(e){var t=this,n=U(t),o=n.reject,r=S((function(){var r=b(t.resolve);V(e,(function(e){r.call(t,e).then(n.resolve,o)}))}));return r.error&&o(r.value),n.promise}})},function(e,t,n){"use strict";var o=n(5);e.exports=function(e,t){var n=o.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var o=n(1),r=n(39),a=n(148),i=n(4),c=n(37),l=n(47),u=n(151),d=n(24);o({target:"Promise",proto:!0,real:!0,forced:!!a&&i((function(){a.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=l(this,c("Promise")),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),r||"function"!=typeof a||a.prototype["finally"]||d(a.prototype,"finally",c("Promise").prototype["finally"])},function(e,t,n){"use strict";var o=n(1),r=n(37),a=n(32),i=n(8),c=n(4),l=r("Reflect","apply"),u=Function.apply;o({target:"Reflect",stat:!0,forced:!c((function(){l((function(){}))}))},{apply:function(e,t,n){return a(e),i(n),l?l(e,t,n):u.call(e,t,n)}})},function(e,t,n){"use strict";var o=n(1),r=n(37),a=n(32),i=n(8),c=n(6),l=n(44),u=n(141),d=n(4),s=r("Reflect","construct"),p=d((function(){function e(){}return!(s((function(){}),[],e)instanceof e)})),m=!d((function(){s((function(){}))})),f=p||m;o({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){a(e),i(t);var n=arguments.length<3?e:a(arguments[2]);if(m&&!p)return s(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var o=[null];return o.push.apply(o,t),new(u.apply(e,o))}var r=n.prototype,d=l(c(r)?r:Object.prototype),f=Function.apply.call(e,d,t);return c(f)?f:d}})},function(e,t,n){"use strict";var o=n(1),r=n(7),a=n(8),i=n(34),c=n(13);o({target:"Reflect",stat:!0,forced:n(4)((function(){Reflect.defineProperty(c.f({},1,{value:1}),1,{value:2})})),sham:!r},{defineProperty:function(e,t,n){a(e);var o=i(t,!0);a(n);try{return c.f(e,o,n),!0}catch(r){return!1}}})},function(e,t,n){"use strict";var o=n(1),r=n(8),a=n(22).f;o({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=a(r(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var o=n(1),r=n(6),a=n(8),i=n(16),c=n(22),l=n(36);o({target:"Reflect",stat:!0},{get:function u(e,t){var n,o,d=arguments.length<3?e:arguments[2];return a(e)===d?e[t]:(n=c.f(e,t))?i(n,"value")?n.value:n.get===undefined?undefined:n.get.call(d):r(o=l(e))?u(o,t,d):void 0}})},function(e,t,n){"use strict";var o=n(1),r=n(7),a=n(8),i=n(22);o({target:"Reflect",stat:!0,sham:!r},{getOwnPropertyDescriptor:function(e,t){return i.f(a(e),t)}})},function(e,t,n){"use strict";var o=n(1),r=n(8),a=n(36);o({target:"Reflect",stat:!0,sham:!n(103)},{getPrototypeOf:function(e){return a(r(e))}})},function(e,t,n){"use strict";n(1)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var o=n(1),r=n(8),a=Object.isExtensible;o({target:"Reflect",stat:!0},{isExtensible:function(e){return r(e),!a||a(e)}})},function(e,t,n){"use strict";n(1)({target:"Reflect",stat:!0},{ownKeys:n(93)})},function(e,t,n){"use strict";var o=n(1),r=n(37),a=n(8);o({target:"Reflect",stat:!0,sham:!n(68)},{preventExtensions:function(e){a(e);try{var t=r("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(1),r=n(8),a=n(6),i=n(16),c=n(4),l=n(13),u=n(22),d=n(36),s=n(48);o({target:"Reflect",stat:!0,forced:c((function(){var e=l.f({},"a",{configurable:!0});return!1!==Reflect.set(d(e),"a",1,e)}))},{set:function p(e,t,n){var o,c,m=arguments.length<4?e:arguments[3],f=u.f(r(e),t);if(!f){if(a(c=d(e)))return p(c,t,n,m);f=s(0)}if(i(f,"value")){if(!1===f.writable||!a(m))return!1;if(o=u.f(m,t)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,l.f(m,t,o)}else l.f(m,t,s(0,n));return!0}return f.set!==undefined&&(f.set.call(m,n),!0)}})},function(e,t,n){"use strict";var o=n(1),r=n(8),a=n(138),i=n(52);i&&o({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){r(e),a(t);try{return i(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(7),r=n(5),a=n(62),i=n(80),c=n(13).f,l=n(49).f,u=n(109),d=n(84),s=n(110),p=n(24),m=n(4),f=n(35).set,h=n(55),C=n(12)("match"),b=r.RegExp,g=b.prototype,N=/a/g,v=/a/g,V=new b(N)!==N,y=s.UNSUPPORTED_Y;if(o&&a("RegExp",!V||y||m((function(){return v[C]=!1,b(N)!=N||b(v)==v||"/a/i"!=b(N,"i")})))){for(var _=function(e,t){var n,o=this instanceof _,r=u(e),a=t===undefined;if(!o&&r&&e.constructor===_&&a)return e;V?r&&!a&&(e=e.source):e instanceof _&&(a&&(t=d.call(e)),e=e.source),y&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=i(V?new b(e,t):b(e,t),o?this:g,_);return y&&n&&f(c,{sticky:n}),c},k=function(e){e in _||c(_,e,{configurable:!0,get:function(){return b[e]},set:function(t){b[e]=t}})},x=l(b),L=0;x.length>L;)k(x[L++]);g.constructor=_,_.prototype=g,p(r,"RegExp",_)}h("RegExp")},function(e,t,n){"use strict";var o=n(7),r=n(13),a=n(84),i=n(110).UNSUPPORTED_Y;o&&("g"!=/./g.flags||i)&&r.f(RegExp.prototype,"flags",{configurable:!0,get:a})},function(e,t,n){"use strict";var o=n(24),r=n(8),a=n(4),i=n(84),c=RegExp.prototype,l=c.toString,u=a((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),d="toString"!=l.name;(u||d)&&o(RegExp.prototype,"toString",(function(){var e=r(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in c)?i.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var o=n(79),r=n(142);e.exports=o("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(1),r=n(111).codeAt;o({target:"String",proto:!0},{codePointAt:function(e){return r(this,e)}})},function(e,t,n){"use strict";var o,r=n(1),a=n(22).f,i=n(11),c=n(112),l=n(23),u=n(113),d=n(39),s="".endsWith,p=Math.min,m=u("endsWith");r({target:"String",proto:!0,forced:!!(d||m||(o=a(String.prototype,"endsWith"),!o||o.writable))&&!m},{endsWith:function(e){var t=String(l(this));c(e);var n=arguments.length>1?arguments[1]:undefined,o=i(t.length),r=n===undefined?o:p(i(n),o),a=String(e);return s?s.call(t,a,r):t.slice(r-a.length,r)===a}})},function(e,t,n){"use strict";var o=n(1),r=n(43),a=String.fromCharCode,i=String.fromCodePoint;o({target:"String",stat:!0,forced:!!i&&1!=i.length},{fromCodePoint:function(e){for(var t,n=[],o=arguments.length,i=0;o>i;){if(t=+arguments[i++],r(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?a(t):a(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var o=n(1),r=n(112),a=n(23);o({target:"String",proto:!0,forced:!n(113)("includes")},{includes:function(e){return!!~String(a(this)).indexOf(r(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(111).charAt,r=n(35),a=n(102),i=r.set,c=r.getterFor("String Iterator");a(String,"String",(function(e){i(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,r=t.index;return r>=n.length?{value:undefined,done:!0}:(e=o(n,r),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var o=n(86),r=n(8),a=n(11),i=n(23),c=n(114),l=n(87);o("match",1,(function(e,t,n){return[function(t){var n=i(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var i=r(e),u=String(this);if(!i.global)return l(i,u);var d=i.unicode;i.lastIndex=0;for(var s,p=[],m=0;null!==(s=l(i,u));){var f=String(s[0]);p[m]=f,""===f&&(i.lastIndex=c(u,a(i.lastIndex),d)),m++}return 0===m?null:p}]}))},function(e,t,n){"use strict";var o=n(1),r=n(105).end;o({target:"String",proto:!0,forced:n(154)},{padEnd:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(1),r=n(105).start;o({target:"String",proto:!0,forced:n(154)},{padStart:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(1),r=n(26),a=n(11);o({target:"String",stat:!0},{raw:function(e){for(var t=r(e.raw),n=a(t.length),o=arguments.length,i=[],c=0;n>c;)i.push(String(t[c++])),c]*>)/g,h=/\$([$&'`]|\d\d?)/g;o("replace",2,(function(e,t,n,o){var C=o.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,b=o.REPLACE_KEEPS_$0,g=C?"$":"$0";return[function(n,o){var r=l(this),a=n==undefined?undefined:n[e];return a!==undefined?a.call(n,r,o):t.call(String(r),n,o)},function(e,o){if(!C&&b||"string"==typeof o&&-1===o.indexOf(g)){var a=n(t,e,this,o);if(a.done)return a.value}var l=r(e),m=String(this),f="function"==typeof o;f||(o=String(o));var h=l.global;if(h){var v=l.unicode;l.lastIndex=0}for(var V=[];;){var y=d(l,m);if(null===y)break;if(V.push(y),!h)break;""===String(y[0])&&(l.lastIndex=u(m,i(l.lastIndex),v))}for(var _,k="",x=0,L=0;L=x&&(k+=m.slice(x,w)+P,x=w+B.length)}return k+m.slice(x)}];function N(e,n,o,r,i,c){var l=o+e.length,u=r.length,d=h;return i!==undefined&&(i=a(i),d=f),t.call(c,d,(function(t,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,o);case"'":return n.slice(l);case"<":c=i[a.slice(1,-1)];break;default:var d=+a;if(0===d)return t;if(d>u){var s=m(d/10);return 0===s?t:s<=u?r[s-1]===undefined?a.charAt(1):r[s-1]+a.charAt(1):t}c=r[d-1]}return c===undefined?"":c}))}}))},function(e,t,n){"use strict";var o=n(86),r=n(8),a=n(23),i=n(147),c=n(87);o("search",1,(function(e,t,n){return[function(t){var n=a(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var a=r(e),l=String(this),u=a.lastIndex;i(u,0)||(a.lastIndex=0);var d=c(a,l);return i(a.lastIndex,u)||(a.lastIndex=u),null===d?-1:d.index}]}))},function(e,t,n){"use strict";var o=n(86),r=n(109),a=n(8),i=n(23),c=n(47),l=n(114),u=n(11),d=n(87),s=n(85),p=n(4),m=[].push,f=Math.min,h=!p((function(){return!RegExp(4294967295,"y")}));o("split",2,(function(e,t,n){var o;return o="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var o=String(i(this)),a=n===undefined?4294967295:n>>>0;if(0===a)return[];if(e===undefined)return[o];if(!r(e))return t.call(o,e,a);for(var c,l,u,d=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),f=0,h=new RegExp(e.source,p+"g");(c=s.call(h,o))&&!((l=h.lastIndex)>f&&(d.push(o.slice(f,c.index)),c.length>1&&c.index=a));)h.lastIndex===c.index&&h.lastIndex++;return f===o.length?!u&&h.test("")||d.push(""):d.push(o.slice(f)),d.length>a?d.slice(0,a):d}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var r=i(this),a=t==undefined?undefined:t[e];return a!==undefined?a.call(t,r,n):o.call(String(r),t,n)},function(e,r){var i=n(o,e,this,r,o!==t);if(i.done)return i.value;var s=a(e),p=String(this),m=c(s,RegExp),C=s.unicode,b=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(h?"y":"g"),g=new m(h?s:"^(?:"+s.source+")",b),N=r===undefined?4294967295:r>>>0;if(0===N)return[];if(0===p.length)return null===d(g,p)?[p]:[];for(var v=0,V=0,y=[];V1?arguments[1]:undefined,t.length)),o=String(e);return s?s.call(t,o,n):t.slice(n,n+o.length)===o}})},function(e,t,n){"use strict";var o=n(1),r=n(57).trim;o({target:"String",proto:!0,forced:n(115)("trim")},{trim:function(){return r(this)}})},function(e,t,n){"use strict";var o=n(1),r=n(57).end,a=n(115)("trimEnd"),i=a?function(){return r(this)}:"".trimEnd;o({target:"String",proto:!0,forced:a},{trimEnd:i,trimRight:i})},function(e,t,n){"use strict";var o=n(1),r=n(57).start,a=n(115)("trimStart"),i=a?function(){return r(this)}:"".trimStart;o({target:"String",proto:!0,forced:a},{trimStart:i,trimLeft:i})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("anchor")},{anchor:function(e){return r(this,"a","name",e)}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("big")},{big:function(){return r(this,"big","","")}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("blink")},{blink:function(){return r(this,"blink","","")}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("bold")},{bold:function(){return r(this,"b","","")}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("fixed")},{fixed:function(){return r(this,"tt","","")}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("fontcolor")},{fontcolor:function(e){return r(this,"font","color",e)}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("fontsize")},{fontsize:function(e){return r(this,"font","size",e)}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("italics")},{italics:function(){return r(this,"i","","")}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("link")},{link:function(e){return r(this,"a","href",e)}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("small")},{small:function(){return r(this,"small","","")}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("strike")},{strike:function(){return r(this,"strike","","")}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("sub")},{sub:function(){return r(this,"sub","","")}})},function(e,t,n){"use strict";var o=n(1),r=n(28);o({target:"String",proto:!0,forced:n(29)("sup")},{sup:function(){return r(this,"sup","","")}})},function(e,t,n){"use strict";n(41)("Float32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(31);e.exports=function(e){var t=o(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(41)("Float64",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Int8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Int16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Int32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}),!0)},function(e,t,n){"use strict";n(41)("Uint16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Uint32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(9),r=n(133),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(e,t){return r.call(a(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).every,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("every",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(98),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("fill",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).filter,a=n(47),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("filter",(function(e){for(var t=r(i(this),e,arguments.length>1?arguments[1]:undefined),n=a(this,this.constructor),o=0,l=t.length,u=new(c(n))(l);l>o;)u[o]=t[o++];return u}))},function(e,t,n){"use strict";var o=n(9),r=n(19).find,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("find",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).findIndex,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("findIndex",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).forEach,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("forEach",(function(e){r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(116);(0,n(9).exportTypedArrayStaticMethod)("from",n(156),o)},function(e,t,n){"use strict";var o=n(9),r=n(61).includes,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("includes",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(61).indexOf,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("indexOf",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(5),r=n(9),a=n(136),i=n(12)("iterator"),c=o.Uint8Array,l=a.values,u=a.keys,d=a.entries,s=r.aTypedArray,p=r.exportTypedArrayMethod,m=c&&c.prototype[i],f=!!m&&("values"==m.name||m.name==undefined),h=function(){return l.call(s(this))};p("entries",(function(){return d.call(s(this))})),p("keys",(function(){return u.call(s(this))})),p("values",h,!f),p(i,h,!f)},function(e,t,n){"use strict";var o=n(9),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].join;a("join",(function(e){return i.apply(r(this),arguments)}))},function(e,t,n){"use strict";var o=n(9),r=n(139),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("lastIndexOf",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).map,a=n(47),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("map",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(c(a(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var o=n(9),r=n(116),a=o.aTypedArrayConstructor;(0,o.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(a(this))(t);t>e;)n[e]=arguments[e++];return n}),r)},function(e,t,n){"use strict";var o=n(9),r=n(77).left,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduce",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(77).right,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduceRight",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var e,t=r(this).length,n=i(t/2),o=0;o1?arguments[1]:undefined,1),n=this.length,o=i(e),c=r(o.length),u=0;if(c+t>n)throw RangeError("Wrong length");for(;ua;)d[a]=n[a++];return d}),a((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var o=n(9),r=n(19).some,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("some",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].sort;a("sort",(function(e){return i.call(r(this),e)}))},function(e,t,n){"use strict";var o=n(9),r=n(11),a=n(43),i=n(47),c=o.aTypedArray;(0,o.exportTypedArrayMethod)("subarray",(function(e,t){var n=c(this),o=n.length,l=a(e,o);return new(i(n,n.constructor))(n.buffer,n.byteOffset+l*n.BYTES_PER_ELEMENT,r((t===undefined?o:a(t,o))-l))}))},function(e,t,n){"use strict";var o=n(5),r=n(9),a=n(4),i=o.Int8Array,c=r.aTypedArray,l=r.exportTypedArrayMethod,u=[].toLocaleString,d=[].slice,s=!!i&&a((function(){u.call(new i(1))}));l("toLocaleString",(function(){return u.apply(s?d.call(c(this)):c(this),arguments)}),a((function(){return[1,2].toLocaleString()!=new i([1,2]).toLocaleString()}))||!a((function(){i.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var o=n(9).exportTypedArrayMethod,r=n(4),a=n(5).Uint8Array,i=a&&a.prototype||{},c=[].toString,l=[].join;r((function(){c.call({})}))&&(c=function(){return l.call(this)});var u=i.toString!=c;o("toString",c,u)},function(e,t,n){"use strict";var o,r=n(5),a=n(67),i=n(53),c=n(79),l=n(157),u=n(6),d=n(35).enforce,s=n(124),p=!r.ActiveXObject&&"ActiveXObject"in r,m=Object.isExtensible,f=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},h=e.exports=c("WeakMap",f,l);if(s&&p){o=l.getConstructor(f,"WeakMap",!0),i.REQUIRED=!0;var C=h.prototype,b=C["delete"],g=C.has,N=C.get,v=C.set;a(C,{"delete":function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),b.call(this,e)||t.frozen["delete"](e)}return b.call(this,e)},has:function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),g.call(this,e)||t.frozen.has(e)}return g.call(this,e)},get:function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),g.call(this,e)?N.call(this,e):t.frozen.get(e)}return N.call(this,e)},set:function(e,t){if(u(e)&&!m(e)){var n=d(this);n.frozen||(n.frozen=new o),g.call(this,e)?v.call(this,e,t):n.frozen.set(e,t)}else v.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(79)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(157))},function(e,t,n){"use strict";var o=n(1),r=n(5),a=n(108);o({global:!0,bind:!0,enumerable:!0,forced:!r.setImmediate||!r.clearImmediate},{setImmediate:a.set,clearImmediate:a.clear})},function(e,t,n){"use strict";var o=n(1),r=n(5),a=n(150),i=n(33),c=r.process,l="process"==i(c);o({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=l&&c.domain;a(t?t.bind(e):e)}})},function(e,t,n){"use strict";var o=n(1),r=n(5),a=n(74),i=[].slice,c=function(e){return function(t,n){var o=arguments.length>2,r=o?i.call(arguments,2):undefined;return e(o?function(){("function"==typeof t?t:Function(t)).apply(this,r)}:t,n)}};o({global:!0,bind:!0,forced:/MSIE .\./.test(a)},{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},function(e,t,n){"use strict";t.__esModule=!0,t._CI=we,t._HI=O,t._M=Se,t._MCCC=Pe,t._ME=Te,t._MFCC=Ee,t._MP=Le,t._MR=ge,t.__render=De,t.createComponentVNode=function(e,t,n,o,r){var i=new S(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),o,function(e,t,n){var o=(32768&e?t.render:t).defaultProps;if(a(o))return n;if(a(n))return d(o,null);return B(n,o)}(e,t,n),function(e,t,n){if(4&e)return n;var o=(32768&e?t.render:t).defaultHooks;if(a(o))return n;if(a(n))return o;return B(n,o)}(e,t,r),t);k.createVNode&&k.createVNode(i);return i},t.createFragment=A,t.createPortal=function(e,t){var n=O(e);return I(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,o,r){e||(e=t),je(n,e,o,r)}},t.createTextVNode=T,t.createVNode=I,t.directClone=P,t.findDOMfromVNode=N,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case"$F":return 8192;default:return 1}},t.linkEvent=function(e,t){if(c(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&a(e.children)&&M(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?d(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=je,t.rerender=We,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var o=Array.isArray;function r(e){var t=typeof e;return"string"===t||"number"===t}function a(e){return null==e}function i(e){return null===e||!1===e||!0===e||void 0===e}function c(e){return"function"==typeof e}function l(e){return"string"==typeof e}function u(e){return null===e}function d(e,t){var n={};if(e)for(var o in e)n[o]=e[o];if(t)for(var r in t)n[r]=t[r];return n}function s(e){return!u(e)&&"object"==typeof e}var p={};t.EMPTY_OBJ=p;function m(e){return e.substr(2).toLowerCase()}function f(e,t){e.appendChild(t)}function h(e,t,n){u(n)?f(e,t):e.insertBefore(t,n)}function C(e,t){e.removeChild(t)}function b(e){for(var t=0;t0,f=u(p),h=l(p)&&"$"===p[0];m||f||h?(n=n||t.slice(0,d),(m||h)&&(s=P(s)),(f||h)&&(s.key="$"+d),n.push(s)):n&&n.push(s),s.flags|=65536}}a=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=P(t)),a=2;return e.children=n,e.childFlags=a,e}function O(e){return i(e)||r(e)?T(e,null):o(e)?A(e,0,null):16384&e.flags?P(e):e}var F="http://www.w3.org/1999/xlink",D="http://www.w3.org/XML/1998/namespace",j={"xlink:actuate":F,"xlink:arcrole":F,"xlink:href":F,"xlink:role":F,"xlink:show":F,"xlink:title":F,"xlink:type":F,"xml:base":D,"xml:lang":D,"xml:space":D};function z(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var G=z(0),H=z(null),U=z(!0);function K(e,t){var n=t.$EV;return n||(n=t.$EV=z(null)),n[e]||1==++G[e]&&(H[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?Y(t,!0,e,X(t)):t.stopPropagation()}}(e):function(e){return function(t){Y(t,!1,e,X(t))}}(e);return document.addEventListener(m(e),t),t}(e)),n}function W(e,t){var n=t.$EV;n&&n[e]&&(0==--G[e]&&(document.removeEventListener(m(e),H[e]),H[e]=null),n[e]=null)}function Y(e,t,n,o){var r=function(e){return c(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&r.disabled)return;var a=r.$EV;if(a){var i=a[n];if(i&&(o.dom=r,i.event?i.event(i.data,e):i(e),e.cancelBubble))return}r=r.parentNode}while(!u(r))}function q(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function $(){return this.defaultPrevented}function Q(){return this.cancelBubble}function X(e){var t={dom:document};return e.isDefaultPrevented=$,e.isPropagationStopped=Q,e.stopPropagation=q,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function J(e,t,n){if(e[t]){var o=e[t];o.event?o.event(o.data,n):o(n)}else{var r=t.toLowerCase();e[r]&&e[r](n)}}function Z(e,t){var n=function(n){var o=this.$V;if(o){var r=o.props||p,a=o.dom;if(l(e))J(r,e,n);else for(var i=0;i-1&&t.options[i]&&(c=t.options[i].value),n&&a(c)&&(c=e.defaultValue),ie(o,c)}}var ue,de,se=Z("onInput",me),pe=Z("onChange");function me(e,t,n){var o=e.value,r=t.value;if(a(o)){if(n){var i=e.defaultValue;a(i)||i===r||(t.defaultValue=i,t.value=i)}}else r!==o&&(t.defaultValue=o,t.value=o)}function fe(e,t,n,o,r,a){64&e?ae(o,n):256&e?le(o,n,r,t):128&e&&me(o,n,r),a&&(n.$V=t)}function he(e,t,n){64&e?function(e,t){te(t.type)?(ee(e,"change",oe),ee(e,"click",re)):ee(e,"input",ne)}(t,n):256&e?function(e){ee(e,"change",ce)}(t):128&e&&function(e,t){ee(e,"input",se),t.onChange&&ee(e,"change",pe)}(t,n)}function Ce(e){return e.type&&te(e.type)?!a(e.checked):!a(e.value)}function be(e){e&&!w(e,null)&&e.current&&(e.current=null)}function ge(e,t,n){e&&(c(e)||void 0!==e.current)&&n.push((function(){w(e,t)||void 0===e.current||(e.current=t)}))}function Ne(e,t){ve(e),v(e,t)}function ve(e){var t,n=e.flags,o=e.children;if(481&n){t=e.ref;var r=e.props;be(t);var i=e.childFlags;if(!u(r))for(var l=Object.keys(r),d=0,s=l.length;d0;for(var c in i&&(a=Ce(n))&&he(t,o,n),n)xe(c,null,n[c],o,r,a,null);i&&fe(t,e,o,n,!0,a)}function Be(e,t,n){var o=O(e.render(t,e.state,n)),r=n;return c(e.getChildContext)&&(r=d(n,e.getChildContext())),e.$CX=r,o}function we(e,t,n,o,r,a){var i=new t(n,o),l=i.$N=Boolean(t.getDerivedStateFromProps||i.getSnapshotBeforeUpdate);if(i.$SVG=r,i.$L=a,e.children=i,i.$BS=!1,i.context=o,i.props===p&&(i.props=n),l)i.state=y(i,n,i.state);else if(c(i.componentWillMount)){i.$BR=!0,i.componentWillMount();var d=i.$PS;if(!u(d)){var s=i.state;if(u(s))i.state=d;else for(var m in d)s[m]=d[m];i.$PS=null}i.$BR=!1}return i.$LI=Be(i,n,o),i}function Se(e,t,n,o,r,a){var i=e.flags|=16384;481&i?Te(e,t,n,o,r,a):4&i?function(e,t,n,o,r,a){var i=we(e,e.type,e.props||p,n,o,a);Se(i.$LI,t,i.$CX,o,r,a),Pe(e.ref,i,a)}(e,t,n,o,r,a):8&i?(!function(e,t,n,o,r,a){Se(e.children=O(function(e,t){return 32768&e.flags?e.type.render(e.props||p,e.ref,t):e.type(e.props||p,t)}(e,n)),t,n,o,r,a)}(e,t,n,o,r,a),Ee(e,a)):512&i||16&i?Ie(e,t,r):8192&i?function(e,t,n,o,r,a){var i=e.children,c=e.childFlags;12&c&&0===i.length&&(c=e.childFlags=2,i=e.children=E());2===c?Se(i,n,r,o,r,a):Ae(i,n,t,o,r,a)}(e,n,t,o,r,a):1024&i&&function(e,t,n,o,r){Se(e.children,e.ref,t,!1,null,r);var a=E();Ie(a,n,o),e.dom=a.dom}(e,n,t,r,a)}function Ie(e,t,n){var o=e.dom=document.createTextNode(e.children);u(t)||h(t,o,n)}function Te(e,t,n,o,r,i){var c=e.flags,l=e.props,d=e.className,s=e.children,p=e.childFlags,m=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,o=o||(32&c)>0);if(a(d)||""===d||(o?m.setAttribute("class",d):m.className=d),16===p)x(m,s);else if(1!==p){var f=o&&"foreignObject"!==e.type;2===p?(16384&s.flags&&(e.children=s=P(s)),Se(s,m,n,f,null,i)):8!==p&&4!==p||Ae(s,m,n,f,null,i)}u(t)||h(t,m,r),u(l)||Le(e,c,l,m,o),ge(e.ref,m,i)}function Ae(e,t,n,o,r,a){for(var i=0;i0,u!==d){var f=u||p;if((c=d||p)!==p)for(var h in(s=(448&r)>0)&&(m=Ce(c)),c){var C=f[h],b=c[h];C!==b&&xe(h,C,b,l,o,m,e)}if(f!==p)for(var g in f)a(c[g])&&!a(f[g])&&xe(g,f[g],null,l,o,m,e)}var N=t.children,v=t.className;e.className!==v&&(a(v)?l.removeAttribute("class"):o?l.setAttribute("class",v):l.className=v);4096&r?function(e,t){e.textContent!==t&&(e.textContent=t)}(l,N):Me(e.childFlags,t.childFlags,e.children,N,l,n,o&&"foreignObject"!==t.type,null,e,i);s&&fe(r,t,l,c,!1,m);var V=t.ref,y=e.ref;y!==V&&(be(y),ge(V,l,i))}(e,t,o,r,m,s):4&m?function(e,t,n,o,r,a,i){var l=t.children=e.children;if(u(l))return;l.$L=i;var s=t.props||p,m=t.ref,f=e.ref,h=l.state;if(!l.$N){if(c(l.componentWillReceiveProps)){if(l.$BR=!0,l.componentWillReceiveProps(s,o),l.$UN)return;l.$BR=!1}u(l.$PS)||(h=d(h,l.$PS),l.$PS=null)}Oe(l,h,s,n,o,r,!1,a,i),f!==m&&(be(f),ge(m,l,i))}(e,t,n,o,r,l,s):8&m?function(e,t,n,o,r,i,l){var u=!0,d=t.props||p,s=t.ref,m=e.props,f=!a(s),h=e.children;f&&c(s.onComponentShouldUpdate)&&(u=s.onComponentShouldUpdate(m,d));if(!1!==u){f&&c(s.onComponentWillUpdate)&&s.onComponentWillUpdate(m,d);var C=t.type,b=O(32768&t.flags?C.render(d,s,o):C(d,o));Re(h,b,n,o,r,i,l),t.children=b,f&&c(s.onComponentDidUpdate)&&s.onComponentDidUpdate(m,d)}else t.children=h}(e,t,n,o,r,l,s):16&m?function(e,t){var n=t.children,o=t.dom=e.dom;n!==e.children&&(o.nodeValue=n)}(e,t):512&m?t.dom=e.dom:8192&m?function(e,t,n,o,r,a){var i=e.children,c=t.children,l=e.childFlags,u=t.childFlags,d=null;12&u&&0===c.length&&(u=t.childFlags=2,c=t.children=E());var s=0!=(2&u);if(12&l){var p=i.length;(8&l&&8&u||s||!s&&c.length>p)&&(d=N(i[p-1],!1).nextSibling)}Me(l,u,i,c,n,o,r,d,e,a)}(e,t,n,o,r,s):function(e,t,n,o){var r=e.ref,a=t.ref,c=t.children;if(Me(e.childFlags,t.childFlags,e.children,c,r,n,!1,null,e,o),t.dom=e.dom,r!==a&&!i(c)){var l=c.dom;C(r,l),f(a,l)}}(e,t,o,s)}function Me(e,t,n,o,r,a,i,c,l,u){switch(e){case 2:switch(t){case 2:Re(n,o,r,a,i,c,u);break;case 1:Ne(n,r);break;case 16:ve(n),x(r,o);break;default:!function(e,t,n,o,r,a){ve(e),Ae(t,n,o,r,N(e,!0),a),v(e,n)}(n,o,r,a,i,u)}break;case 1:switch(t){case 2:Se(o,r,a,i,c,u);break;case 1:break;case 16:x(r,o);break;default:Ae(o,r,a,i,c,u)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:x(n,t))}(n,o,r);break;case 2:ye(r),Se(o,r,a,i,c,u);break;case 1:ye(r);break;default:ye(r),Ae(o,r,a,i,c,u)}break;default:switch(t){case 16:Ve(n),x(r,o);break;case 2:_e(r,l,n),Se(o,r,a,i,c,u);break;case 1:_e(r,l,n);break;default:var d=0|n.length,s=0|o.length;0===d?s>0&&Ae(o,r,a,i,c,u):0===s?_e(r,l,n):8===t&&8===e?function(e,t,n,o,r,a,i,c,l,u){var d,s,p=a-1,m=i-1,f=0,h=e[f],C=t[f];e:{for(;h.key===C.key;){if(16384&C.flags&&(t[f]=C=P(C)),Re(h,C,n,o,r,c,u),e[f]=C,++f>p||f>m)break e;h=e[f],C=t[f]}for(h=e[p],C=t[m];h.key===C.key;){if(16384&C.flags&&(t[m]=C=P(C)),Re(h,C,n,o,r,c,u),e[p]=C,p--,m--,f>p||f>m)break e;h=e[p],C=t[m]}}if(f>p){if(f<=m)for(s=(d=m+1)m)for(;f<=p;)Ne(e[f++],n);else!function(e,t,n,o,r,a,i,c,l,u,d,s,p){var m,f,h,C=0,b=c,g=c,v=a-c+1,y=i-c+1,_=new Int32Array(y+1),k=v===o,x=!1,L=0,B=0;if(r<4||(v|y)<32)for(C=b;C<=a;++C)if(m=e[C],Bc?x=!0:L=c,16384&f.flags&&(t[c]=f=P(f)),Re(m,f,l,n,u,d,p),++B;break}!k&&c>i&&Ne(m,l)}else k||Ne(m,l);else{var w={};for(C=g;C<=i;++C)w[t[C].key]=C;for(C=b;C<=a;++C)if(m=e[C],Bb;)Ne(e[b++],l);_[c-g]=C+1,L>c?x=!0:L=c,16384&(f=t[c]).flags&&(t[c]=f=P(f)),Re(m,f,l,n,u,d,p),++B}else k||Ne(m,l);else k||Ne(m,l)}if(k)_e(l,s,e),Ae(t,l,n,u,d,p);else if(x){var S=function(e){var t=0,n=0,o=0,r=0,a=0,i=0,c=0,l=e.length;l>Fe&&(Fe=l,ue=new Int32Array(l),de=new Int32Array(l));for(;n>1]]0&&(de[n]=ue[a-1]),ue[a]=n)}a=r+1;var u=new Int32Array(a);i=ue[a-1];for(;a-- >0;)u[a]=i,i=de[i],ue[a]=0;return u}(_);for(c=S.length-1,C=y-1;C>=0;C--)0===_[C]?(16384&(f=t[L=C+g]).flags&&(t[L]=f=P(f)),Se(f,l,n,u,(h=L+1)=0;C--)0===_[C]&&(16384&(f=t[L=C+g]).flags&&(t[L]=f=P(f)),Se(f,l,n,u,(h=L+1)i?i:a,p=0;pi)for(p=s;p=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(c&&l){if(this.prev=0;--o){var r=this.tryEntries[o];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),V(n),u}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;V(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:_(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=o}catch(r){Function("r","regeneratorRuntime = r")(o)}},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},function(e,t,n){"use strict";(function(e){ +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=169)}([function(e,t,n){"use strict";t.__esModule=!0;var o=n(391);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(t[e]=o[e])}))},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=t.Tooltip=t.Toast=t.TitleBar=t.Tabs=t.Table=t.Section=t.ProgressBar=t.NumberInput=t.NoticeBox=t.LabeledList=t.Input=t.Icon=t.Grid=t.Flex=t.Dropdown=t.Dimmer=t.Collapsible=t.ColorBox=t.Button=t.Box=t.BlockQuote=t.AnimatedNumber=void 0;var o=n(161);t.AnimatedNumber=o.AnimatedNumber;var r=n(398);t.BlockQuote=r.BlockQuote;var a=n(21);t.Box=a.Box;var i=n(119);t.Button=i.Button;var c=n(400);t.ColorBox=c.ColorBox;var l=n(401);t.Collapsible=l.Collapsible;var u=n(402);t.Dimmer=u.Dimmer;var d=n(403);t.Dropdown=d.Dropdown;var s=n(404);t.Flex=s.Flex;var p=n(164);t.Grid=p.Grid;var m=n(88);t.Icon=m.Icon;var f=n(163);t.Input=f.Input;var h=n(166);t.LabeledList=h.LabeledList;var C=n(405);t.NoticeBox=C.NoticeBox;var b=n(406);t.NumberInput=b.NumberInput;var g=n(407);t.ProgressBar=g.ProgressBar;var N=n(408);t.Section=N.Section;var v=n(165);t.Table=v.Table;var V=n(409);t.Tabs=V.Tabs;var y=n(410);t.TitleBar=y.TitleBar;var _=n(117);t.Toast=_.Toast;var k=n(162);t.Tooltip=k.Tooltip;var x=n(411);t.Chart=x.Chart},function(e,t,n){"use strict";var o=n(5),r=n(22).f,a=n(30),i=n(24),c=n(90),l=n(125),u=n(62);e.exports=function(e,t){var n,d,s,p,m,f=e.target,h=e.global,C=e.stat;if(n=h?o:C?o[f]||c(f,{}):(o[f]||{}).prototype)for(d in t){if(p=t[d],s=e.noTargetGet?(m=r(n,d))&&m.value:n[d],!u(h?d:f+(C?".":"#")+d,e.forced)&&s!==undefined){if(typeof p==typeof s)continue;l(p,s)}(e.sham||s&&s.sham)&&a(p,"sham",!0),i(n,d,p,e)}}},function(e,t,n){"use strict";t.__esModule=!0,t.useBackend=t.backendReducer=t.backendUpdate=void 0;var o=n(38),r=n(15);t.backendUpdate=function(e){return{type:"backendUpdate",payload:e}};t.backendReducer=function(e,t){var n=t.type,r=t.payload;if("backendUpdate"===n){var a=Object.assign({},e.config,{},r.config),i=Object.assign({},e.data,{},r.static_data,{},r.data),c=a.status!==o.UI_DISABLED,l=a.status===o.UI_INTERACTIVE;return Object.assign({},e,{config:a,data:i,visible:c,interactive:l})}return e};t.useBackend=function(e){var t=e.state,n=(e.dispatch,t.config.ref);return Object.assign({},t,{act:function(e,t){return void 0===t&&(t={}),(0,r.act)(n,e,t)}})}},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n(121))},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){"use strict";var o,r=n(104),a=n(7),i=n(5),c=n(6),l=n(16),u=n(75),d=n(30),s=n(24),p=n(13).f,m=n(36),f=n(52),h=n(12),C=n(59),b=i.Int8Array,g=b&&b.prototype,N=i.Uint8ClampedArray,v=N&&N.prototype,V=b&&m(b),y=g&&m(g),_=Object.prototype,k=_.isPrototypeOf,x=h("toStringTag"),L=C("TYPED_ARRAY_TAG"),B=r&&!!f&&"Opera"!==u(i.opera),w=!1,S={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},I=function(e){var t=u(e);return"DataView"===t||l(S,t)},T=function(e){return c(e)&&l(S,u(e))};for(o in S)i[o]||(B=!1);if((!B||"function"!=typeof V||V===Function.prototype)&&(V=function(){throw TypeError("Incorrect invocation")},B))for(o in S)i[o]&&f(i[o],V);if((!B||!y||y===_)&&(y=V.prototype,B))for(o in S)i[o]&&f(i[o].prototype,y);if(B&&m(v)!==y&&f(v,y),a&&!l(y,x))for(o in w=!0,p(y,x,{get:function(){return c(this)?this[L]:undefined}}),S)i[o]&&d(i[o],L,o);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:B,TYPED_ARRAY_TAG:w&&L,aTypedArray:function(e){if(T(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(f){if(k.call(V,e))return e}else for(var t in S)if(l(S,o)){var n=i[t];if(n&&(e===n||k.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(a){if(n)for(var o in S){var r=i[o];r&&l(r.prototype,e)&&delete r.prototype[e]}y[e]&&!n||s(y,e,n?t:B&&g[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var o,r;if(a){if(f){if(n)for(o in S)(r=i[o])&&l(r,e)&&delete r[e];if(V[e]&&!n)return;try{return s(V,e,n?t:B&&b[e]||t)}catch(c){}}for(o in S)!(r=i[o])||r[e]&&!n||s(r,e,t)}},isView:I,isTypedArray:T,TypedArray:V,TypedArrayPrototype:y}},function(e,t,n){"use strict";t.__esModule=!0,t.isFalsy=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;n0?r(o(e),9007199254740991):0}},function(e,t,n){"use strict";var o=n(5),r=n(92),a=n(16),i=n(59),c=n(96),l=n(128),u=r("wks"),d=o.Symbol,s=l?d:d&&d.withoutSetter||i;e.exports=function(e){return a(u,e)||(c&&a(d,e)?u[e]=d[e]:u[e]=s("Symbol."+e)),u[e]}},function(e,t,n){"use strict";var o=n(7),r=n(122),a=n(8),i=n(34),c=Object.defineProperty;t.f=o?c:function(e,t,n){if(a(e),t=i(t,!0),a(n),r)try{return c(e,t,n)}catch(o){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";var o=n(23);e.exports=function(e){return Object(o(e))}},function(e,t,n){"use strict";t.__esModule=!0,t.winset=t.winget=t.act=t.runCommand=t.callByondAsync=t.callByond=t.tridentVersion=void 0;var o=n(20);function r(e,t,n,o,r,a,i){try{var c=e[a](i),l=c.value}catch(u){return void n(u)}c.done?t(l):Promise.resolve(l).then(o,r)}var a,i=(a=navigator.userAgent.match(/Trident\/(\d+).+?;/i)[1])?parseInt(a,10):null;t.tridentVersion=i;var c=function(e,t){return void 0===t&&(t={}),"byond://"+e+"?"+(0,o.buildQueryString)(t)},l=function(e,t){void 0===t&&(t={}),window.location.href=c(e,t)};t.callByond=l;var u=function(e,t){void 0===t&&(t={}),window.__callbacks__=window.__callbacks__||[];var n=window.__callbacks__.length,o=new Promise((function(e){window.__callbacks__.push(e)}));return window.location.href=c(e,Object.assign({},t,{callback:"__callbacks__["+n+"]"})),o};t.callByondAsync=u;t.runCommand=function(e){return l("winset",{command:e})};t.act=function(e,t,n){return void 0===n&&(n={}),l("",Object.assign({src:e,action:t},n))};var d=function(){var e,t=(e=regeneratorRuntime.mark((function n(e,t){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,u("winget",{id:e,property:t});case 2:return o=n.sent,n.abrupt("return",o[t]);case 4:case"end":return n.stop()}}),n)})),function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function c(e){r(i,o,a,c,l,"next",e)}function l(e){r(i,o,a,c,l,"throw",e)}c(undefined)}))});return function(e,n){return t.apply(this,arguments)}}();t.winget=d;t.winset=function(e,t,n){var o;return l("winset",((o={})[e+"."+t]=n,o))}},function(e,t,n){"use strict";var o={}.hasOwnProperty;e.exports=function(e,t){return o.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0,t.toFixed=t.round=t.clamp=void 0;t.clamp=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),Math.max(t,Math.min(e,n))};t.round=function(e){return Math.round(e)};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(t)}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.reduce=t.sortBy=t.map=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var o in e)t.call(e,o)&&n.push(e[o]);return n}return[]};var o=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],o=0;oc)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n_;_++)if((p||_ in v)&&(g=V(b=v[_],_,N),e))if(t)x[_]=g;else if(g)switch(e){case 3:return!0;case 5:return b;case 6:return _;case 2:l.call(x,b)}else if(d)return!1;return s?-1:u||d?d:x}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},function(e,t,n){"use strict";t.__esModule=!0,t.buildQueryString=t.decodeHtmlEntities=t.toTitleCase=t.capitalize=t.testGlobPattern=t.multiline=void 0;t.multiline=function o(e){if(Array.isArray(e))return o(e.join(""));var t,n=e.split("\n"),r=n,a=Array.isArray(r),i=0;for(r=a?r:r[Symbol.iterator]();;){var c;if(a){if(i>=r.length)break;c=r[i++]}else{if((i=r.next()).done)break;c=i.value}for(var l=c,u=0;u",apos:"'"};return e.replace(/
    /gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/&#?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/&#x?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";t.__esModule=!0,t.Box=t.computeBoxProps=t.unit=void 0;var o=n(0),r=n(10),a=n(399),i=n(38);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){return"string"==typeof e?e:"number"==typeof e?6*e+"px":void 0};t.unit=l;var u=function(e){return"string"==typeof e&&i.CSS_COLORS.includes(e)},d=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=n)}},s=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=l(n))}},p=function(e,t){return function(n,o){(0,r.isFalsy)(o)||(n[e]=t)}},m=function(e,t){return function(n,o){if(!(0,r.isFalsy)(o))for(var a=0;a0&&(t.style=l),t};t.computeBoxProps=C;var b=function(e){var t=e.as,n=void 0===t?"div":t,i=e.className,l=e.content,d=e.children,s=c(e,["as","className","content","children"]),p=e.textColor||e.color,m=e.backgroundColor;if("function"==typeof d)return d(C(e));var f=C(s);return(0,o.createVNode)(a.VNodeFlags.HtmlElement,n,(0,r.classes)([i,u(p)&&"color-"+p,u(m)&&"color-bg-"+m]),l||d,a.ChildFlags.UnknownChildren,f)};t.Box=b,b.defaultHooks=r.pureComponentHooks;var g=function(e){var t=e.children,n=c(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,b,Object.assign({position:"relative"},n,{children:(0,o.createComponentVNode)(2,b,{fillPositionedParent:!0,children:t})})))};g.defaultHooks=r.pureComponentHooks,b.Forced=g},function(e,t,n){"use strict";var o=n(7),r=n(72),a=n(48),i=n(26),c=n(34),l=n(16),u=n(122),d=Object.getOwnPropertyDescriptor;t.f=o?d:function(e,t){if(e=i(e),t=c(t,!0),u)try{return d(e,t)}catch(n){}if(l(e,t))return a(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(5),r=n(30),a=n(16),i=n(90),c=n(91),l=n(35),u=l.get,d=l.enforce,s=String(String).split("String");(e.exports=function(e,t,n,c){var l=!!c&&!!c.unsafe,u=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;"function"==typeof n&&("string"!=typeof t||a(n,"name")||r(n,"name",t),d(n).source=s.join("string"==typeof t?t:"")),e!==o?(l?!p&&e[t]&&(u=!0):delete e[t],u?e[t]=n:r(e,t,n)):u?e[t]=n:i(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||c(this)}))},function(e,t,n){"use strict";var o=n(7),r=n(4),a=n(16),i=Object.defineProperty,c={},l=function(e){throw e};e.exports=function(e,t){if(a(c,e))return c[e];t||(t={});var n=[][e],u=!!a(t,"ACCESSORS")&&t.ACCESSORS,d=a(t,0)?t[0]:l,s=a(t,1)?t[1]:undefined;return c[e]=!!n&&!r((function(){if(u&&!o)return!0;var e={length:-1};u?i(e,1,{enumerable:!0,get:l}):e[1]=1,n.call(e,d,s)}))}},function(e,t,n){"use strict";var o=n(58),r=n(23);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var o=n(126),r=n(16),a=n(132),i=n(13).f;e.exports=function(e){var t=o.Symbol||(o.Symbol={});r(t,e)||i(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";var o=n(23),r=/"/g;e.exports=function(e,t,n,a){var i=String(o(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+String(a).replace(r,""")+'"'),c+">"+i+""}},function(e,t,n){"use strict";var o=n(4);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";var o=n(7),r=n(13),a=n(48);e.exports=o?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:o)(e)}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){"use strict";var o={}.toString;e.exports=function(e){return o.call(e).slice(8,-1)}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var o,r,a,i=n(124),c=n(5),l=n(6),u=n(30),d=n(16),s=n(73),p=n(60),m=c.WeakMap;if(i){var f=new m,h=f.get,C=f.has,b=f.set;o=function(e,t){return b.call(f,e,t),t},r=function(e){return h.call(f,e)||{}},a=function(e){return C.call(f,e)}}else{var g=s("state");p[g]=!0,o=function(e,t){return u(e,g,t),t},r=function(e){return d(e,g)?e[g]:{}},a=function(e){return d(e,g)}}e.exports={set:o,get:r,has:a,enforce:function(e){return a(e)?r(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var o=n(16),r=n(14),a=n(73),i=n(103),c=a("IE_PROTO"),l=Object.prototype;e.exports=i?Object.getPrototypeOf:function(e){return e=r(e),o(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,n){"use strict";var o=n(126),r=n(5),a=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?a(o[e])||a(r[e]):o[e]&&o[e][t]||r[e]&&r[e][t]}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"CentCom",freq:1337,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"AI Private",freq:1447,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var o=[{id:"o2",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"n2",name:"Nitrogen",label:"N\u2082",color:"red"},{id:"co2",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"plasma",name:"Plasma",label:"Plasma",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H\u2082O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"no2",name:"Nitryl",label:"NO\u2082",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),r=o.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return r&&r.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=o.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var o=n(4);e.exports=function(e,t){var n=[][e];return!!n&&o((function(){n.call(null,t||function(){throw 1},1)}))}},function(e,t,n){"use strict";var o=n(2),r=n(5),a=n(7),i=n(116),c=n(9),l=n(78),u=n(56),d=n(48),s=n(30),p=n(11),m=n(140),f=n(155),h=n(34),C=n(16),b=n(75),g=n(6),N=n(44),v=n(52),V=n(49).f,y=n(156),_=n(19).forEach,k=n(55),x=n(13),L=n(22),B=n(35),w=n(80),S=B.get,I=B.set,T=x.f,A=L.f,P=Math.round,E=r.RangeError,R=l.ArrayBuffer,M=l.DataView,O=c.NATIVE_ARRAY_BUFFER_VIEWS,F=c.TYPED_ARRAY_TAG,D=c.TypedArray,j=c.TypedArrayPrototype,z=c.aTypedArrayConstructor,G=c.isTypedArray,H=function(e,t){for(var n=0,o=t.length,r=new(z(e))(o);o>n;)r[n]=t[n++];return r},U=function(e,t){T(e,t,{get:function(){return S(this)[t]}})},K=function(e){var t;return e instanceof R||"ArrayBuffer"==(t=b(e))||"SharedArrayBuffer"==t},W=function(e,t){return G(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},Y=function(e,t){return W(e,t=h(t,!0))?d(2,e[t]):A(e,t)},q=function(e,t,n){return!(W(e,t=h(t,!0))&&g(n)&&C(n,"value"))||C(n,"get")||C(n,"set")||n.configurable||C(n,"writable")&&!n.writable||C(n,"enumerable")&&!n.enumerable?T(e,t,n):(e[t]=n.value,e)};a?(O||(L.f=Y,x.f=q,U(j,"buffer"),U(j,"byteOffset"),U(j,"byteLength"),U(j,"length")),o({target:"Object",stat:!0,forced:!O},{getOwnPropertyDescriptor:Y,defineProperty:q}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,c=e+(n?"Clamped":"")+"Array",l="get"+e,d="set"+e,h=r[c],C=h,b=C&&C.prototype,x={},L=function(e,t){T(e,t,{get:function(){return function(e,t){var n=S(e);return n.view[l](t*a+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,o){var r=S(e);n&&(o=(o=P(o))<0?0:o>255?255:255&o),r.view[d](t*a+r.byteOffset,o,!0)}(this,t,e)},enumerable:!0})};O?i&&(C=t((function(e,t,n,o){return u(e,C,c),w(g(t)?K(t)?o!==undefined?new h(t,f(n,a),o):n!==undefined?new h(t,f(n,a)):new h(t):G(t)?H(C,t):y.call(C,t):new h(m(t)),e,C)})),v&&v(C,D),_(V(h),(function(e){e in C||s(C,e,h[e])})),C.prototype=b):(C=t((function(e,t,n,o){u(e,C,c);var r,i,l,d=0,s=0;if(g(t)){if(!K(t))return G(t)?H(C,t):y.call(C,t);r=t,s=f(n,a);var h=t.byteLength;if(o===undefined){if(h%a)throw E("Wrong length");if((i=h-s)<0)throw E("Wrong length")}else if((i=p(o)*a)+s>h)throw E("Wrong length");l=i/a}else l=m(t),r=new R(i=l*a);for(I(e,{buffer:r,byteOffset:s,byteLength:i,length:l,view:new M(r)});d2?n-2:0),a=2;a=i){var c=[t].concat(r).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;(0,o.act)(window.__ref__,"tgui:log",{log:c})}};t.createLogger=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),o=0;o"+e+"<\/script>"},f=function(){try{o=document.domain&&new ActiveXObject("htmlfile")}catch(r){}var e,t;f=o?function(e){e.write(m("")),e.close();var t=e.parentWindow.Object;return e=null,t}(o):((t=u("iframe")).style.display="none",l.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(m("document.F=Object")),e.close(),e.F);for(var n=i.length;n--;)delete f.prototype[i[n]];return f()};c[s]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(p.prototype=r(e),n=new p,p.prototype=null,n[s]=e):n=f(),t===undefined?n:a(n,t)}},function(e,t,n){"use strict";var o=n(13).f,r=n(16),a=n(12)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,a)&&o(e,a,{configurable:!0,value:t})}},function(e,t,n){"use strict";var o=n(12),r=n(44),a=n(13),i=o("unscopables"),c=Array.prototype;c[i]==undefined&&a.f(c,i,{configurable:!0,value:r(null)}),e.exports=function(e){c[i][e]=!0}},function(e,t,n){"use strict";var o=n(8),r=n(32),a=n(12)("species");e.exports=function(e,t){var n,i=o(e).constructor;return i===undefined||(n=o(i)[a])==undefined?t:r(n)}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(127),r=n(94).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(32);e.exports=function(e,t,n){if(o(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var o=n(34),r=n(13),a=n(48);e.exports=function(e,t,n){var i=o(t);i in e?r.f(e,i,a(0,n)):e[i]=n}},function(e,t,n){"use strict";var o=n(8),r=n(138);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(a){}return function(n,a){return o(n),r(a),t?e.call(n,a):n.__proto__=a,n}}():undefined)},function(e,t,n){"use strict";var o=n(60),r=n(6),a=n(16),i=n(13).f,c=n(59),l=n(68),u=c("meta"),d=0,s=Object.isExtensible||function(){return!0},p=function(e){i(e,u,{value:{objectID:"O"+ ++d,weakData:{}}})},m=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,u)){if(!s(e))return"F";if(!t)return"E";p(e)}return e[u].objectID},getWeakData:function(e,t){if(!a(e,u)){if(!s(e))return!0;if(!t)return!1;p(e)}return e[u].weakData},onFreeze:function(e){return l&&m.REQUIRED&&s(e)&&!a(e,u)&&p(e),e}};o[u]=!0},function(e,t,n){"use strict";var o=n(33);e.exports=Array.isArray||function(e){return"Array"==o(e)}},function(e,t,n){"use strict";var o=n(37),r=n(13),a=n(12),i=n(7),c=a("species");e.exports=function(e){var t=o(e),n=r.f;i&&t&&!t[c]&&n(t,c,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},function(e,t,n){"use strict";var o=n(23),r="["+n(82)+"]",a=RegExp("^"+r+r+"*"),i=RegExp(r+r+"*$"),c=function(e){return function(t){var n=String(o(t));return 1&e&&(n=n.replace(a,"")),2&e&&(n=n.replace(i,"")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},function(e,t,n){"use strict";var o=n(4),r=n(33),a="".split;e.exports=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?a.call(e,""):Object(e)}:Object},function(e,t,n){"use strict";var o=0,r=Math.random();e.exports=function(e){return"Symbol("+String(e===undefined?"":e)+")_"+(++o+r).toString(36)}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(26),r=n(11),a=n(43),i=function(e){return function(t,n,i){var c,l=o(t),u=r(l.length),d=a(i,u);if(e&&n!=n){for(;u>d;)if((c=l[d++])!=c)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},function(e,t,n){"use strict";var o=n(4),r=/#|\.prototype\./,a=function(e,t){var n=c[i(e)];return n==u||n!=l&&("function"==typeof t?o(t):!!t)},i=a.normalize=function(e){return String(e).replace(r,".").toLowerCase()},c=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){"use strict";var o=n(127),r=n(94);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(6),r=n(54),a=n(12)("species");e.exports=function(e,t){var n;return r(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!r(n.prototype)?o(n)&&null===(n=n[a])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var o=n(4),r=n(12),a=n(97),i=r("species");e.exports=function(e){return a>=51||!o((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(24);e.exports=function(e,t,n){for(var r in t)o(e,r,t[r],n);return e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var o=n(8),r=n(99),a=n(11),i=n(50),c=n(100),l=n(135),u=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,d,s){var p,m,f,h,C,b,g,N=i(t,n,d?2:1);if(s)p=e;else{if("function"!=typeof(m=c(e)))throw TypeError("Target is not iterable");if(r(m)){for(f=0,h=a(e.length);h>f;f++)if((C=d?N(o(g=e[f])[0],g[1]):N(e[f]))&&C instanceof u)return C;return new u(!1)}p=m.call(e)}for(b=p.next;!(g=b.call(p)).done;)if("object"==typeof(C=l(p,N,g.value,d))&&C&&C instanceof u)return C;return new u(!1)}).stop=function(e){return new u(!0,e)}},function(e,t,n){"use strict";t.__esModule=!0,t.compose=t.flow=void 0;t.flow=function o(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i=c.length)break;d=c[u++]}else{if((u=c.next()).done)break;d=u.value}var s=d;Array.isArray(s)?n=o.apply(void 0,s).apply(void 0,[n].concat(a)):s&&(n=s.apply(void 0,[n].concat(a)))}return n}};t.compose=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?o-1:0),a=1;a=0:s>p;p+=m)p in d&&(l=n(l,d[p],p,u));return l}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var o=n(5),r=n(7),a=n(104),i=n(30),c=n(67),l=n(4),u=n(56),d=n(31),s=n(11),p=n(140),m=n(223),f=n(36),h=n(52),C=n(49).f,b=n(13).f,g=n(98),N=n(45),v=n(35),V=v.get,y=v.set,_=o.ArrayBuffer,k=_,x=o.DataView,L=x&&x.prototype,B=Object.prototype,w=o.RangeError,S=m.pack,I=m.unpack,T=function(e){return[255&e]},A=function(e){return[255&e,e>>8&255]},P=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},E=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},R=function(e){return S(e,23,4)},M=function(e){return S(e,52,8)},O=function(e,t){b(e.prototype,t,{get:function(){return V(this)[t]}})},F=function(e,t,n,o){var r=p(n),a=V(e);if(r+t>a.byteLength)throw w("Wrong index");var i=V(a.buffer).bytes,c=r+a.byteOffset,l=i.slice(c,c+t);return o?l:l.reverse()},D=function(e,t,n,o,r,a){var i=p(n),c=V(e);if(i+t>c.byteLength)throw w("Wrong index");for(var l=V(c.buffer).bytes,u=i+c.byteOffset,d=o(+r),s=0;sH;)(j=G[H++])in k||i(k,j,_[j]);z.constructor=k}h&&f(L)!==B&&h(L,B);var U=new x(new k(2)),K=L.setInt8;U.setInt8(0,2147483648),U.setInt8(1,2147483649),!U.getInt8(0)&&U.getInt8(1)||c(L,{setInt8:function(e,t){K.call(this,e,t<<24>>24)},setUint8:function(e,t){K.call(this,e,t<<24>>24)}},{unsafe:!0})}else k=function(e){u(this,k,"ArrayBuffer");var t=p(e);y(this,{bytes:g.call(new Array(t),0),byteLength:t}),r||(this.byteLength=t)},x=function(e,t,n){u(this,x,"DataView"),u(e,k,"DataView");var o=V(e).byteLength,a=d(t);if(a<0||a>o)throw w("Wrong offset");if(a+(n=n===undefined?o-a:s(n))>o)throw w("Wrong length");y(this,{buffer:e,byteLength:n,byteOffset:a}),r||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},r&&(O(k,"byteLength"),O(x,"buffer"),O(x,"byteLength"),O(x,"byteOffset")),c(x.prototype,{getInt8:function(e){return F(this,1,e)[0]<<24>>24},getUint8:function(e){return F(this,1,e)[0]},getInt16:function(e){var t=F(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=F(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return E(F(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return E(F(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return I(F(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return I(F(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){D(this,1,e,T,t)},setUint8:function(e,t){D(this,1,e,T,t)},setInt16:function(e,t){D(this,2,e,A,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){D(this,2,e,A,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){D(this,4,e,P,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){D(this,4,e,P,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){D(this,4,e,R,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){D(this,8,e,M,t,arguments.length>2?arguments[2]:undefined)}});N(k,"ArrayBuffer"),N(x,"DataView"),e.exports={ArrayBuffer:k,DataView:x}},function(e,t,n){"use strict";var o=n(2),r=n(5),a=n(62),i=n(24),c=n(53),l=n(69),u=n(56),d=n(6),s=n(4),p=n(76),m=n(45),f=n(80);e.exports=function(e,t,n){var h=-1!==e.indexOf("Map"),C=-1!==e.indexOf("Weak"),b=h?"set":"add",g=r[e],N=g&&g.prototype,v=g,V={},y=function(e){var t=N[e];i(N,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return C&&!d(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(a(e,"function"!=typeof g||!(C||N.forEach&&!s((function(){(new g).entries().next()})))))v=n.getConstructor(t,e,h,b),c.REQUIRED=!0;else if(a(e,!0)){var _=new v,k=_[b](C?{}:-0,1)!=_,x=s((function(){_.has(1)})),L=p((function(e){new g(e)})),B=!C&&s((function(){for(var e=new g,t=5;t--;)e[b](t,t);return!e.has(-0)}));L||((v=t((function(t,n){u(t,v,e);var o=f(new g,t,v);return n!=undefined&&l(n,o[b],o,h),o}))).prototype=N,N.constructor=v),(x||B)&&(y("delete"),y("has"),h&&y("get")),(B||k)&&y(b),C&&N.clear&&delete N.clear}return V[e]=v,o({global:!0,forced:v!=g},V),m(v,e),C||n.setStrong(v,e,h),v}},function(e,t,n){"use strict";var o=n(6),r=n(52);e.exports=function(e,t,n){var a,i;return r&&"function"==typeof(a=t.constructor)&&a!==n&&o(i=a.prototype)&&i!==n.prototype&&r(e,i),e}},function(e,t,n){"use strict";var o=Math.expm1,r=Math.exp;e.exports=!o||o(10)>22025.465794806718||o(10)<22025.465794806718||-2e-17!=o(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:r(e)-1}:o},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var o=n(39),r=n(5),a=n(4);e.exports=o||!a((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete r[e]}))},function(e,t,n){"use strict";var o=n(8);e.exports=function(){var e=o(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var o,r,a=n(84),i=n(110),c=RegExp.prototype.exec,l=String.prototype.replace,u=c,d=(o=/a/,r=/b*/g,c.call(o,"a"),c.call(r,"a"),0!==o.lastIndex||0!==r.lastIndex),s=i.UNSUPPORTED_Y||i.BROKEN_CARET,p=/()??/.exec("")[1]!==undefined;(d||p||s)&&(u=function(e){var t,n,o,r,i=this,u=s&&i.sticky,m=a.call(i),f=i.source,h=0,C=e;return u&&(-1===(m=m.replace("y","")).indexOf("g")&&(m+="g"),C=String(e).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(f="(?: "+f+")",C=" "+C,h++),n=new RegExp("^(?:"+f+")",m)),p&&(n=new RegExp("^"+f+"$(?!\\s)",m)),d&&(t=i.lastIndex),o=c.call(u?n:i,C),u?o?(o.input=o.input.slice(h),o[0]=o[0].slice(h),o.index=i.lastIndex,i.lastIndex+=o[0].length):i.lastIndex=0:d&&o&&(i.lastIndex=i.global?o.index+o[0].length:t),p&&o&&o.length>1&&l.call(o[0],n,(function(){for(r=1;r")})),d="$0"==="a".replace(/./,"$0"),s=a("replace"),p=!!/./[s]&&""===/./[s]("a","$0"),m=!r((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,s){var f=a(e),h=!r((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),C=h&&!r((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return t=!0,null},n[f](""),!t}));if(!h||!C||"replace"===e&&(!u||!d||p)||"split"===e&&!m){var b=/./[f],g=n(f,""[e],(function(e,t,n,o,r){return t.exec===i?h&&!r?{done:!0,value:b.call(t,n,o)}:{done:!0,value:e.call(n,t,o)}:{done:!1}}),{REPLACE_KEEPS_$0:d,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),N=g[0],v=g[1];o(String.prototype,e,N),o(RegExp.prototype,f,2==t?function(e,t){return v.call(e,this,t)}:function(e){return v.call(e,this)})}s&&c(RegExp.prototype[f],"sham",!0)}},function(e,t,n){"use strict";var o=n(33),r=n(85);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==o(e))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0,t.Icon=void 0;var o=n(0),r=n(10),a=n(21);var i=/-o$/,c=function(e){var t=e.name,n=e.size,c=e.spin,l=e.className,u=e.style,d=void 0===u?{}:u,s=e.rotation,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["name","size","spin","className","style","rotation"]);n&&(d["font-size"]=100*n+"%"),"number"==typeof s&&(d.transform="rotate("+s+"deg)");var m=i.test(t),f=t.replace(i,"");return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"i",className:(0,r.classes)([l,m?"far":"fas","fa-"+f,c&&"fa-spin"]),style:d},p)))};t.Icon=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";var o=n(5),r=n(6),a=o.document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},function(e,t,n){"use strict";var o=n(5),r=n(30);e.exports=function(e,t){try{r(o,e,t)}catch(n){o[e]=t}return t}},function(e,t,n){"use strict";var o=n(123),r=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(e){return r.call(e)}),e.exports=o.inspectSource},function(e,t,n){"use strict";var o=n(39),r=n(123);(e.exports=function(e,t){return r[e]||(r[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.6.4",mode:o?"pure":"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){"use strict";var o=n(37),r=n(49),a=n(95),i=n(8);e.exports=o("Reflect","ownKeys")||function(e){var t=r.f(i(e)),n=a.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(4);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())}))},function(e,t,n){"use strict";var o,r,a=n(5),i=n(74),c=a.process,l=c&&c.versions,u=l&&l.v8;u?r=(o=u.split("."))[0]+o[1]:i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(r=o[1]),e.exports=r&&+r},function(e,t,n){"use strict";var o=n(14),r=n(43),a=n(11);e.exports=function(e){for(var t=o(this),n=a(t.length),i=arguments.length,c=r(i>1?arguments[1]:undefined,n),l=i>2?arguments[2]:undefined,u=l===undefined?n:r(l,n);u>c;)t[c++]=e;return t}},function(e,t,n){"use strict";var o=n(12),r=n(66),a=o("iterator"),i=Array.prototype;e.exports=function(e){return e!==undefined&&(r.Array===e||i[a]===e)}},function(e,t,n){"use strict";var o=n(75),r=n(66),a=n(12)("iterator");e.exports=function(e){if(e!=undefined)return e[a]||e["@@iterator"]||r[o(e)]}},function(e,t,n){"use strict";var o={};o[n(12)("toStringTag")]="z",e.exports="[object z]"===String(o)},function(e,t,n){"use strict";var o=n(2),r=n(208),a=n(36),i=n(52),c=n(45),l=n(30),u=n(24),d=n(12),s=n(39),p=n(66),m=n(137),f=m.IteratorPrototype,h=m.BUGGY_SAFARI_ITERATORS,C=d("iterator"),b=function(){return this};e.exports=function(e,t,n,d,m,g,N){r(n,t,d);var v,V,y,_=function(e){if(e===m&&w)return w;if(!h&&e in L)return L[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},k=t+" Iterator",x=!1,L=e.prototype,B=L[C]||L["@@iterator"]||m&&L[m],w=!h&&B||_(m),S="Array"==t&&L.entries||B;if(S&&(v=a(S.call(new e)),f!==Object.prototype&&v.next&&(s||a(v)===f||(i?i(v,f):"function"!=typeof v[C]&&l(v,C,b)),c(v,k,!0,!0),s&&(p[k]=b))),"values"==m&&B&&"values"!==B.name&&(x=!0,w=function(){return B.call(this)}),s&&!N||L[C]===w||l(L,C,w),p[t]=w,m)if(V={values:_("values"),keys:g?w:_("keys"),entries:_("entries")},N)for(y in V)!h&&!x&&y in L||u(L,y,V[y]);else o({target:t,proto:!0,forced:h||x},V);return V}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},function(e,t,n){"use strict";var o=n(11),r=n(106),a=n(23),i=Math.ceil,c=function(e){return function(t,n,c){var l,u,d=String(a(t)),s=d.length,p=c===undefined?" ":String(c),m=o(n);return m<=s||""==p?d:(l=m-s,(u=r.call(p,i(l/p.length))).length>l&&(u=u.slice(0,l)),e?d+u:u+d)}};e.exports={start:c(!1),end:c(!0)}},function(e,t,n){"use strict";var o=n(31),r=n(23);e.exports="".repeat||function(e){var t=String(r(this)),n="",a=o(e);if(a<0||a==Infinity)throw RangeError("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var o,r,a,i=n(5),c=n(4),l=n(33),u=n(50),d=n(130),s=n(89),p=n(149),m=i.location,f=i.setImmediate,h=i.clearImmediate,C=i.process,b=i.MessageChannel,g=i.Dispatch,N=0,v={},V=function(e){if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},y=function(e){return function(){V(e)}},_=function(e){V(e.data)},k=function(e){i.postMessage(e+"",m.protocol+"//"+m.host)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++N]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},o(N),N},h=function(e){delete v[e]},"process"==l(C)?o=function(e){C.nextTick(y(e))}:g&&g.now?o=function(e){g.now(y(e))}:b&&!p?(a=(r=new b).port2,r.port1.onmessage=_,o=u(a.postMessage,a,1)):!i.addEventListener||"function"!=typeof postMessage||i.importScripts||c(k)?o="onreadystatechange"in s("script")?function(e){d.appendChild(s("script")).onreadystatechange=function(){d.removeChild(this),V(e)}}:function(e){setTimeout(y(e),0)}:(o=k,i.addEventListener("message",_,!1))),e.exports={set:f,clear:h}},function(e,t,n){"use strict";var o=n(6),r=n(33),a=n(12)("match");e.exports=function(e){var t;return o(e)&&((t=e[a])!==undefined?!!t:"RegExp"==r(e))}},function(e,t,n){"use strict";var o=n(4);function r(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=o((function(){var e=r("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),t.BROKEN_CARET=o((function(){var e=r("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},function(e,t,n){"use strict";var o=n(31),r=n(23),a=function(e){return function(t,n){var a,i,c=String(r(t)),l=o(n),u=c.length;return l<0||l>=u?e?"":undefined:(a=c.charCodeAt(l))<55296||a>56319||l+1===u||(i=c.charCodeAt(l+1))<56320||i>57343?e?c.charAt(l):a:e?c.slice(l,l+2):i-56320+(a-55296<<10)+65536}};e.exports={codeAt:a(!1),charAt:a(!0)}},function(e,t,n){"use strict";var o=n(109);e.exports=function(e){if(o(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var o=n(12)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[o]=!1,"/./"[e](t)}catch(r){}}return!1}},function(e,t,n){"use strict";var o=n(111).charAt;e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},function(e,t,n){"use strict";var o=n(4),r=n(82);e.exports=function(e){return o((function(){return!!r[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||r[e].name!==e}))}},function(e,t,n){"use strict";var o=n(5),r=n(4),a=n(76),i=n(9).NATIVE_ARRAY_BUFFER_VIEWS,c=o.ArrayBuffer,l=o.Int8Array;e.exports=!i||!r((function(){l(1)}))||!r((function(){new l(-1)}))||!a((function(e){new l,new l(null),new l(1.5),new l(e)}),!0)||r((function(){return 1!==new l(new c(2),1,undefined).length}))},function(e,t,n){"use strict";t.__esModule=!0,t.toastReducer=t.showToast=t.Toast=void 0;var o,r=n(0),a=n(10),i=function(e){var t=e.content,n=e.children;return(0,r.createVNode)(1,"div","Layout__toast",[t,n],0)};t.Toast=i,i.defaultHooks=a.pureComponentHooks;t.showToast=function(e,t){o&&clearTimeout(o),o=setTimeout((function(){o=undefined,e({type:"hideToast"})}),5e3),e({type:"showToast",payload:{text:t}})};t.toastReducer=function(e,t){var n=t.type,o=t.payload;if("showToast"===n){var r=o.text;return Object.assign({},e,{toastText:r})}return"hideToast"===n?Object.assign({},e,{toastText:null}):e}},function(e,t,n){"use strict";t.__esModule=!0,t.hotKeyReducer=t.hotKeyMiddleware=t.releaseHeldKeys=t.KEY_MINUS=t.KEY_EQUAL=t.KEY_Z=t.KEY_Y=t.KEY_X=t.KEY_W=t.KEY_V=t.KEY_U=t.KEY_T=t.KEY_S=t.KEY_R=t.KEY_Q=t.KEY_P=t.KEY_O=t.KEY_N=t.KEY_M=t.KEY_L=t.KEY_K=t.KEY_J=t.KEY_I=t.KEY_H=t.KEY_G=t.KEY_F=t.KEY_E=t.KEY_D=t.KEY_C=t.KEY_B=t.KEY_A=t.KEY_9=t.KEY_8=t.KEY_7=t.KEY_6=t.KEY_5=t.KEY_4=t.KEY_3=t.KEY_2=t.KEY_1=t.KEY_0=t.KEY_SPACE=t.KEY_ESCAPE=t.KEY_ALT=t.KEY_CTRL=t.KEY_SHIFT=t.KEY_ENTER=t.KEY_TAB=t.KEY_BACKSPACE=void 0;var o=n(42),r=n(15),a=(0,o.createLogger)("hotkeys");t.KEY_BACKSPACE=8;t.KEY_TAB=9;t.KEY_ENTER=13;t.KEY_SHIFT=16;t.KEY_CTRL=17;t.KEY_ALT=18;t.KEY_ESCAPE=27;t.KEY_SPACE=32;t.KEY_0=48;t.KEY_1=49;t.KEY_2=50;t.KEY_3=51;t.KEY_4=52;t.KEY_5=53;t.KEY_6=54;t.KEY_7=55;t.KEY_8=56;t.KEY_9=57;t.KEY_A=65;t.KEY_B=66;t.KEY_C=67;t.KEY_D=68;t.KEY_E=69;t.KEY_F=70;t.KEY_G=71;t.KEY_H=72;t.KEY_I=73;t.KEY_J=74;t.KEY_K=75;t.KEY_L=76;t.KEY_M=77;t.KEY_N=78;t.KEY_O=79;t.KEY_P=80;t.KEY_Q=81;t.KEY_R=82;t.KEY_S=83;t.KEY_T=84;t.KEY_U=85;t.KEY_V=86;t.KEY_W=87;t.KEY_X=88;t.KEY_Y=89;t.KEY_Z=90;t.KEY_EQUAL=187;t.KEY_MINUS=189;var i=[17,18,16],c=[27,13,32,9,17,16],l={},u=function(e,t,n,o){var r="";return e&&(r+="Ctrl+"),t&&(r+="Alt+"),n&&(r+="Shift+"),r+=o>=48&&o<=90?String.fromCharCode(o):"["+o+"]"},d=function(e){var t=window.event?e.which:e.keyCode,n=e.ctrlKey,o=e.altKey,r=e.shiftKey;return{keyCode:t,ctrlKey:n,altKey:o,shiftKey:r,hasModifierKeys:n||o||r,keyString:u(n,o,r,t)}},s=function(){for(var e=0,t=Object.keys(l);e4&&function(e,t){if(!e.defaultPrevented){var n=e.target&&e.target.localName;if("input"!==n&&"textarea"!==n){var o=d(e),i=o.keyCode,u=o.ctrlKey,s=o.shiftKey;u||s||c.includes(i)||("keydown"!==t||l[i]?"keyup"===t&&l[i]&&(a.debug("passthrough",t,o),(0,r.callByond)("",{__keyup:i})):(a.debug("passthrough",t,o),(0,r.callByond)("",{__keydown:i})))}}}(e,t),function(e,t,n){if("keyup"===t){var o=d(e),r=o.ctrlKey,c=o.altKey,l=o.keyCode,u=o.hasModifierKeys,s=o.keyString;u&&!i.includes(l)&&(a.log(s),r&&c&&8===l&&setTimeout((function(){throw new Error("OOPSIE WOOPSIE!! UwU We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!")})),n({type:"hotKey",payload:o}))}}(e,t,n)},document.addEventListener("keydown",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keydown"),l[n]=!0})),document.addEventListener("keyup",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keyup"),l[n]=!1})),r.tridentVersion>4&&function(e){var t;document.addEventListener("focusout",(function(){t=setTimeout(e)})),document.addEventListener("focusin",(function(){clearTimeout(t)})),window.addEventListener("beforeunload",e)}((function(){s()})),function(e){return function(t){return e(t)}}};t.hotKeyReducer=function(e,t){var n=t.type,o=t.payload;if("hotKey"===n){var r=o.ctrlKey,a=o.altKey,i=o.keyCode;return r&&a&&187===i?Object.assign({},e,{showKitchenSink:!e.showKitchenSink}):e}return e}},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var o=n(0),r=n(10),a=n(15),i=n(118),c=n(42),l=n(120),u=n(21),d=n(88),s=n(162);n(163),n(164);function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function m(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var f=(0,c.createLogger)("Button"),h=function(e){var t=e.className,n=e.fluid,c=e.icon,p=e.color,h=e.disabled,C=e.selected,b=e.tooltip,g=e.tooltipPosition,N=e.ellipsis,v=e.content,V=e.iconRotation,y=e.iconSpin,_=e.children,k=e.onclick,x=e.onClick,L=m(e,["className","fluid","icon","color","disabled","selected","tooltip","tooltipPosition","ellipsis","content","iconRotation","iconSpin","children","onclick","onClick"]),B=!(!v&&!_);return k&&f.warn("Lowercase 'onclick' is not supported on Button and lowercase prop names are discouraged in general. Please use a camelCase'onClick' instead and read: https://infernojs.org/docs/guides/event-handling"),(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({as:"span",className:(0,r.classes)(["Button",n&&"Button--fluid",h&&"Button--disabled",C&&"Button--selected",B&&"Button--hasContent",N&&"Button--ellipsis",p&&"string"==typeof p?"Button--color--"+p:"Button--color--default",t]),tabIndex:!h&&"0",unselectable:a.tridentVersion<=4,onclick:function(e){(0,l.refocusLayout)(),!h&&x&&x(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;return t===i.KEY_SPACE||t===i.KEY_ENTER?(e.preventDefault(),void(!h&&x&&x(e))):t===i.KEY_ESCAPE?(e.preventDefault(),void(0,l.refocusLayout)()):void 0}},L,{children:[c&&(0,o.createComponentVNode)(2,d.Icon,{name:c,rotation:V,spin:y}),v,_,b&&(0,o.createComponentVNode)(2,s.Tooltip,{content:b,position:g})]})))};t.Button=h,h.defaultHooks=r.pureComponentHooks;var C=function(e){var t=e.checked,n=m(e,["checked"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=C,h.Checkbox=C;var b=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}p(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmContent,r=void 0===n?"Confirm?":n,a=t.confirmColor,i=void 0===a?"bad":a,c=t.confirmIcon,l=t.icon,u=t.color,d=t.content,s=t.onClick,p=m(t,["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({content:this.state.clickedOnce?r:d,icon:this.state.clickedOnce?c:l,color:this.state.clickedOnce?i:u,onClick:function(){return e.state.clickedOnce?s():e.setClickedOnce(!0)}},p)))},t}(o.Component);t.ButtonConfirm=b,h.Confirm=b;var g=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={inInput:!1},t}p(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,a=t.content,c=t.icon,l=t.iconRotation,p=t.iconSpin,f=t.tooltip,h=t.tooltipPosition,C=t.color,b=void 0===C?"default":C,g=(t.placeholder,t.maxLength,m(t,["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","placeholder","maxLength"]));return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({className:(0,r.classes)(["Button",n&&"Button--fluid","Button--color--"+b])},g,{onClick:function(){return e.setInInput(!0)},children:[c&&(0,o.createComponentVNode)(2,d.Icon,{name:c,rotation:l,spin:p}),(0,o.createVNode)(1,"div",null,a,0),(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef),f&&(0,o.createComponentVNode)(2,s.Tooltip,{content:f,position:h})]})))},t}(o.Component);t.ButtonInput=g,h.Input=g},function(e,t,n){"use strict";t.__esModule=!0,t.refocusLayout=void 0;var o=n(15);t.refocusLayout=function(){if(!(o.tridentVersion<=4)){var e=document.getElementById("Layout__content");e&&e.focus()}}},function(e,t,n){"use strict";var o;o=function(){return this}();try{o=o||new Function("return this")()}catch(r){"object"==typeof window&&(o=window)}e.exports=o},function(e,t,n){"use strict";var o=n(7),r=n(4),a=n(89);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(5),r=n(90),a=o["__core-js_shared__"]||r("__core-js_shared__",{});e.exports=a},function(e,t,n){"use strict";var o=n(5),r=n(91),a=o.WeakMap;e.exports="function"==typeof a&&/native code/.test(r(a))},function(e,t,n){"use strict";var o=n(16),r=n(93),a=n(22),i=n(13);e.exports=function(e,t){for(var n=r(t),c=i.f,l=a.f,u=0;ul;)o(c,n=t[l++])&&(~a(u,n)||u.push(n));return u}},function(e,t,n){"use strict";var o=n(96);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var o=n(7),r=n(13),a=n(8),i=n(63);e.exports=o?Object.defineProperties:function(e,t){a(e);for(var n,o=i(t),c=o.length,l=0;c>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){"use strict";var o=n(37);e.exports=o("document","documentElement")},function(e,t,n){"use strict";var o=n(26),r=n(49).f,a={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return i&&"[object Window]"==a.call(e)?function(e){try{return r(e)}catch(t){return i.slice()}}(e):r(o(e))}},function(e,t,n){"use strict";var o=n(12);t.f=o},function(e,t,n){"use strict";var o=n(14),r=n(43),a=n(11),i=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=a(n.length),l=r(e,c),u=r(t,c),d=arguments.length>2?arguments[2]:undefined,s=i((d===undefined?c:r(d,c))-u,c-l),p=1;for(u0;)u in n?n[l]=n[u]:delete n[l],l+=p,u+=p;return n}},function(e,t,n){"use strict";var o=n(54),r=n(11),a=n(50);e.exports=function i(e,t,n,c,l,u,d,s){for(var p,m=l,f=0,h=!!d&&a(d,s,3);f0&&o(p))m=i(e,t,p,r(p.length),m,u-1)-1;else{if(m>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[m]=p}m++}f++}return m}},function(e,t,n){"use strict";var o=n(8);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(i){var a=e["return"];throw a!==undefined&&o(a.call(e)),i}}},function(e,t,n){"use strict";var o=n(26),r=n(46),a=n(66),i=n(35),c=n(102),l=i.set,u=i.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:o(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}}),"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var o,r,a,i=n(36),c=n(30),l=n(16),u=n(12),d=n(39),s=u("iterator"),p=!1;[].keys&&("next"in(a=[].keys())?(r=i(i(a)))!==Object.prototype&&(o=r):p=!0),o==undefined&&(o={}),d||l(o,s)||c(o,s,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:p}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var o=n(26),r=n(31),a=n(11),i=n(40),c=n(25),l=Math.min,u=[].lastIndexOf,d=!!u&&1/[1].lastIndexOf(1,-0)<0,s=i("lastIndexOf"),p=c("indexOf",{ACCESSORS:!0,1:0}),m=d||!s||!p;e.exports=m?function(e){if(d)return u.apply(this,arguments)||0;var t=o(this),n=a(t.length),i=n-1;for(arguments.length>1&&(i=l(i,r(arguments[1]))),i<0&&(i=n+i);i>=0;i--)if(i in t&&t[i]===e)return i||0;return-1}:u},function(e,t,n){"use strict";var o=n(31),r=n(11);e.exports=function(e){if(e===undefined)return 0;var t=o(e),n=r(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var o=n(32),r=n(6),a=[].slice,i={},c=function(e,t,n){if(!(t in i)){for(var o=[],r=0;r1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!b(this,e)}}),a(d.prototype,n?{get:function(e){var t=b(this,e);return t&&t.value},set:function(e,t){return C(this,0===e?0:e,t)}}:{add:function(e){return C(this,e=0===e?0:e,e)}}),s&&o(d.prototype,"size",{get:function(){return m(this).size}}),d},setStrong:function(e,t,n){var o=t+" Iterator",r=h(t),a=h(o);u(e,t,(function(e,t){f(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var o=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:o(1+e)}},function(e,t,n){"use strict";var o=n(6),r=Math.floor;e.exports=function(e){return!o(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){"use strict";var o=n(5),r=n(57).trim,a=n(82),i=o.parseInt,c=/^[+-]?0[Xx]/,l=8!==i(a+"08")||22!==i(a+"0x16");e.exports=l?function(e,t){var n=r(String(e));return i(n,t>>>0||(c.test(n)?16:10))}:i},function(e,t,n){"use strict";var o=n(7),r=n(63),a=n(26),i=n(72).f,c=function(e){return function(t){for(var n,c=a(t),l=r(c),u=l.length,d=0,s=[];u>d;)n=l[d++],o&&!i.call(c,n)||s.push(e?[n,c[n]]:c[n]);return s}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var o=n(5);e.exports=o.Promise},function(e,t,n){"use strict";var o=n(74);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},function(e,t,n){"use strict";var o,r,a,i,c,l,u,d,s=n(5),p=n(22).f,m=n(33),f=n(108).set,h=n(149),C=s.MutationObserver||s.WebKitMutationObserver,b=s.process,g=s.Promise,N="process"==m(b),v=p(s,"queueMicrotask"),V=v&&v.value;V||(o=function(){var e,t;for(N&&(e=b.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?i():a=undefined,n}}a=undefined,e&&e.enter()},N?i=function(){b.nextTick(o)}:C&&!h?(c=!0,l=document.createTextNode(""),new C(o).observe(l,{characterData:!0}),i=function(){l.data=c=!c}):g&&g.resolve?(u=g.resolve(undefined),d=u.then,i=function(){d.call(u,o)}):i=function(){f.call(s,o)}),e.exports=V||function(e){var t={fn:e,next:undefined};a&&(a.next=t),r||(r=t,i()),a=t}},function(e,t,n){"use strict";var o=n(8),r=n(6),a=n(152);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var o=n(32),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},function(e,t,n){"use strict";var o=n(2),r=n(85);o({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},function(e,t,n){"use strict";var o=n(74);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o)},function(e,t,n){"use strict";var o=n(352);e.exports=function(e,t){var n=o(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var o=n(14),r=n(11),a=n(100),i=n(99),c=n(50),l=n(9).aTypedArrayConstructor;e.exports=function(e){var t,n,u,d,s,p,m=o(e),f=arguments.length,h=f>1?arguments[1]:undefined,C=h!==undefined,b=a(m);if(b!=undefined&&!i(b))for(p=(s=b.call(m)).next,m=[];!(d=p.call(s)).done;)m.push(d.value);for(C&&f>2&&(h=c(h,arguments[2],2)),n=r(m.length),u=new(l(this))(n),t=0;n>t;t++)u[t]=C?h(m[t],t):m[t];return u}},function(e,t,n){"use strict";var o=n(67),r=n(53).getWeakData,a=n(8),i=n(6),c=n(56),l=n(69),u=n(19),d=n(16),s=n(35),p=s.set,m=s.getterFor,f=u.find,h=u.findIndex,C=0,b=function(e){return e.frozen||(e.frozen=new g)},g=function(){this.entries=[]},N=function(e,t){return f(e.entries,(function(e){return e[0]===t}))};g.prototype={get:function(e){var t=N(this,e);if(t)return t[1]},has:function(e){return!!N(this,e)},set:function(e,t){var n=N(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,u){var s=e((function(e,o){c(e,s,t),p(e,{type:t,id:C++,frozen:undefined}),o!=undefined&&l(o,e[u],e,n)})),f=m(t),h=function(e,t,n){var o=f(e),i=r(a(t),!0);return!0===i?b(o).set(t,n):i[o.id]=n,e};return o(s.prototype,{"delete":function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?b(t)["delete"](e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?b(t).has(e):n&&d(n,t.id)}}),o(s.prototype,n?{get:function(e){var t=f(this);if(i(e)){var n=r(e);return!0===n?b(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),s}}},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=void 0;var o=n(160),r=n(15);function a(e,t,n,o,r,a,i){try{var c=e[a](i),l=c.value}catch(u){return void n(u)}c.done?t(l):Promise.resolve(l).then(o,r)}var i,c,l,u,d,s=(0,n(42).createLogger)("drag"),p=!1,m=!1,f=[0,0],h=function(e){return(0,r.winget)(e,"pos").then((function(e){return[e.x,e.y]}))},C=function(e,t){return(0,r.winset)(e,"pos",t[0]+","+t[1])},b=function(){var e,t=(e=regeneratorRuntime.mark((function n(e){var t,o,r,a;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s.log("setting up"),i=e.config.window,n.next=4,h(i);case 4:t=n.sent,f=[t[0]-window.screenLeft,t[1]-window.screenTop],o=g(t),r=o[0],a=o[1],r&&C(i,a),s.debug("current state",{ref:i,screenOffset:f});case 9:case"end":return n.stop()}}),n)})),function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function c(e){a(i,o,r,c,l,"next",e)}function l(e){a(i,o,r,c,l,"throw",e)}c(undefined)}))});return function(e){return t.apply(this,arguments)}}();t.setupDrag=b;var g=function(e){var t=e[0],n=e[1],o=!1;return t<0?(t=0,o=!0):t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth,o=!0),n<0?(n=0,o=!0):n+window.innerHeight>window.screen.availHeight&&(n=window.screen.availHeight-window.innerHeight,o=!0),[o,[t,n]]};t.dragStartHandler=function(e){s.log("drag start"),p=!0,c=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",v),document.addEventListener("mouseup",N),v(e)};var N=function _(e){s.log("drag end"),v(e),document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",_),p=!1},v=function(e){p&&(e.preventDefault(),C(i,(0,o.vecAdd)([e.screenX,e.screenY],f,c)))};t.resizeStartHandler=function(e,t){return function(n){l=[e,t],s.log("resize start",l),m=!0,c=[window.screenLeft-n.screenX,window.screenTop-n.screenY],u=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",y),document.addEventListener("mouseup",V),y(n)}};var V=function k(e){s.log("resize end",d),y(e),document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",k),m=!1},y=function(e){m&&(e.preventDefault(),(d=(0,o.vecAdd)(u,(0,o.vecMultiply)(l,(0,o.vecAdd)([e.screenX,e.screenY],(0,o.vecInverse)([window.screenLeft,window.screenTop]),c,[1,1]))))[0]=Math.max(d[0],250),d[1]=Math.max(d[1],120),function(e,t){(0,r.winset)(e,"size",t[0]+","+t[1])}(i,d))}},function(e,t,n){"use strict";t.__esModule=!0,t.vecNormalize=t.vecLength=t.vecInverse=t.vecScale=t.vecDivide=t.vecMultiply=t.vecSubtract=t.vecAdd=t.vecCreate=void 0;var o=n(18);t.vecCreate=function(){for(var e=arguments.length,t=new Array(e),n=0;n35;return(0,o.createVNode)(1,"div",(0,r.classes)(["Tooltip",i&&"Tooltip--long",a&&"Tooltip--"+a]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var o=n(0),r=n(10),a=n(21);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){return(0,r.isFalsy)(e)?"":e},l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,o=t.props.onInput;n||t.setEditing(!0),o&&o(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,o=t.props.onChange;n&&(t.setEditing(!1),o&&o(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,o=n.onInput,r=n.onChange,a=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),r&&r(e,e.target.value),o&&o(e,e.target.value),a&&a(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=c(t.props.value),void e.target.blur()):void 0},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=c(e))},u.componentDidUpdate=function(e,t){var n=this.state.editing,o=e.value,r=this.props.value,a=this.inputRef.current;a&&!n&&o!==r&&(a.value=c(r))},u.setEditing=function(e){this.setState({editing:e})},u.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,c=i(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder"]),l=c.className,u=c.fluid,d=i(c,["className","fluid"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Input",u&&"Input--fluid",l])},d,{children:[(0,o.createVNode)(1,"div","Input__baseline",".",16),(0,o.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},l}(o.Component);t.Input=l},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var o=n(0),r=n(165),a=n(10);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.children,n=i(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table,Object.assign({},n,{children:(0,o.createComponentVNode)(2,r.Table.Row,{children:t})})))};t.Grid=c,c.defaultHooks=a.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t,a=e.style,c=i(e,["size","style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},a)},c)))};t.GridColumn=l,c.defaultHooks=a.pureComponentHooks,c.Column=l},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var o=n(0),r=n(10),a=n(21);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.collapsing,n=e.className,c=e.content,l=e.children,u=i(e,["collapsing","className","content","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"table",className:(0,r.classes)(["Table",t&&"Table--collapsing",n])},u,{children:(0,o.createVNode)(1,"tbody",null,[c,l],0)})))};t.Table=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.className,n=e.header,c=i(e,["className","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"tr",className:(0,r.classes)(["Table__row",n&&"Table__row--header",t])},c)))};t.TableRow=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.collapsing,c=e.header,l=i(e,["className","collapsing","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"td",className:(0,r.classes)(["Table__cell",n&&"Table__cell--collapsing",c&&"Table__cell--header",t])},l)))};t.TableCell=u,u.defaultHooks=r.pureComponentHooks,c.Row=l,c.Cell=u},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var o=n(0),r=n(10),a=n(21),i=function(e){var t=e.children;return(0,o.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=i,i.defaultHooks=r.pureComponentHooks;var c=function(e){var t=e.className,n=e.label,i=e.labelColor,c=void 0===i?"label":i,l=e.color,u=e.buttons,d=e.content,s=e.children;return(0,o.createVNode)(1,"tr",(0,r.classes)(["LabeledList__row",t]),[(0,o.createComponentVNode)(2,a.Box,{as:"td",color:c,className:(0,r.classes)(["LabeledList__cell","LabeledList__label"]),content:n+":"}),(0,o.createComponentVNode)(2,a.Box,{as:"td",color:l,className:(0,r.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:u?undefined:2,children:[d,s]}),u&&(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",u,0)],0)};t.LabeledListItem=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t;return(0,o.createVNode)(1,"tr","LabeledList__row",(0,o.createVNode)(1,"td",null,null,1,{style:{"padding-bottom":(0,a.unit)(n)}}),2)};t.LabeledListDivider=l,l.defaultHooks=r.pureComponentHooks,i.Item=c,i.Divider=l},function(e,t,n){"use strict";t.__esModule=!0,t.AccessList=void 0;var o=n(0),r=n(1),a=n(18);t.AccessList=function(e){var t=e.accesses,n=void 0===t?[]:t,i=e.selectedList,c=void 0===i?[]:i,l=e.accessMod,u=e.grantAll,d=e.denyAll,s=e.grantDep,p=e.denyDep,m={0:{icon:"times-circle",color:"bad"},1:{icon:"stop-circle",color:null},2:{icon:"check-circle",color:"good"}},f=function(e){var t=!1,n=!1;return e.forEach((function(e){c.includes(e.ref)?t=!0:n=!0})),!t&&n?0:t&&n?1:2};return(0,o.createComponentVNode)(2,r.Section,{title:"Access",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button,{icon:"check-double",content:"Grant All",color:"good",onClick:function(){return u()}}),(0,o.createComponentVNode)(2,r.Button,{icon:"undo",content:"Deny All",color:"bad",onClick:function(){return d()}})],4),children:(0,o.createComponentVNode)(2,r.Tabs,{vertical:!0,altSelection:!0,children:n.map((function(e){var t=(0,a.sortBy)((function(e){return e.desc}))(e.accesses||[]),n=m[f(t)].icon,i=m[f(t)].color;return(0,o.createComponentVNode)(2,r.Tabs.Tab,{label:e.name,color:i,icon:n,children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{mr:0,children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"check",content:"Grant Region",color:"good",onClick:function(){return s(e.regid)}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{ml:0,children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"times",content:"Deny Region",color:"bad",onClick:function(){return p(e.regid)}})})]}),t.map((function(e){return(0,o.createComponentVNode)(2,r.Button.Checkbox,{fluid:!0,content:e.desc,checked:c.includes(e.ref),onClick:function(){return l(e.ref)}},e.desc)}))]},e.name)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(0),r=n(1);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[e.volume," units of ",e.name]},e.name)}))]})}},function(e,t,n){n(170),n(171),n(172),n(173),n(174),n(175),n(176),e.exports=n(177)},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n(178),n(179),n(180),n(181),n(182),n(183),n(184),n(185),n(186),n(187),n(188),n(189),n(190),n(191),n(192),n(193),n(194),n(195),n(196),n(197),n(198),n(199),n(200),n(201),n(203),n(205),n(206),n(207),n(136),n(209),n(210),n(211),n(212),n(213),n(214),n(215),n(216),n(217),n(218),n(219),n(220),n(221),n(222),n(224),n(225),n(226),n(227),n(228),n(230),n(231),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(242),n(243),n(244),n(245),n(246),n(248),n(249),n(250),n(251),n(252),n(253),n(254),n(255),n(256),n(257),n(258),n(259),n(260),n(262),n(263),n(264),n(265),n(266),n(267),n(269),n(270),n(272),n(274),n(275),n(276),n(277),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(291),n(292),n(293),n(294),n(295),n(296),n(298),n(299),n(300),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(311),n(312),n(313),n(314),n(315),n(316),n(317),n(153),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(351),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389),n(390);var o=n(0);n(392),n(393);var r=n(394),a=(n(158),n(3)),i=n(15),c=n(159),l=n(42),u=n(395),d=(0,l.createLogger)(),s=(0,u.createStore)(),p=document.getElementById("react-root"),m=!0,f=function(){for(s.subscribe((function(){!function(){try{var e=s.getState();m&&(d.log("initial render",e),(0,c.setupDrag)(e));var t=n(397).Layout,r=(0,o.createComponentVNode)(2,t,{state:e,dispatch:s.dispatch});(0,o.render)(r,p)}catch(a){d.error("rendering error",a)}m&&(m=!1)}()})),window.update=window.initialize=function(e){var t=function(e){var t=function(e,t){return"object"==typeof t&&null!==t&&t.__number__?parseFloat(t.__number__):t};i.tridentVersion<=4&&(t=undefined);try{return JSON.parse(e,t)}catch(o){d.log(o),d.log("What we got:",e);var n=o&&o.message;throw new Error("JSON parsing error: "+n)}}(e);s.dispatch((0,a.backendUpdate)(t))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}(0,r.loadCSS)("font-awesome.css")};i.tridentVersion<=4&&"loading"===document.readyState?document.addEventListener("DOMContentLoaded",f):f()},function(e,t,n){"use strict";var o=n(2),r=n(5),a=n(37),i=n(39),c=n(7),l=n(96),u=n(128),d=n(4),s=n(16),p=n(54),m=n(6),f=n(8),h=n(14),C=n(26),b=n(34),g=n(48),N=n(44),v=n(63),V=n(49),y=n(131),_=n(95),k=n(22),x=n(13),L=n(72),B=n(30),w=n(24),S=n(92),I=n(73),T=n(60),A=n(59),P=n(12),E=n(132),R=n(27),M=n(45),O=n(35),F=n(19).forEach,D=I("hidden"),j=P("toPrimitive"),z=O.set,G=O.getterFor("Symbol"),H=Object.prototype,U=r.Symbol,K=a("JSON","stringify"),W=k.f,Y=x.f,q=y.f,$=L.f,Q=S("symbols"),X=S("op-symbols"),J=S("string-to-symbol-registry"),Z=S("symbol-to-string-registry"),ee=S("wks"),te=r.QObject,ne=!te||!te.prototype||!te.prototype.findChild,oe=c&&d((function(){return 7!=N(Y({},"a",{get:function(){return Y(this,"a",{value:7}).a}})).a}))?function(e,t,n){var o=W(H,t);o&&delete H[t],Y(e,t,n),o&&e!==H&&Y(H,t,o)}:Y,re=function(e,t){var n=Q[e]=N(U.prototype);return z(n,{type:"Symbol",tag:e,description:t}),c||(n.description=t),n},ae=u?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof U},ie=function(e,t,n){e===H&&ie(X,t,n),f(e);var o=b(t,!0);return f(n),s(Q,o)?(n.enumerable?(s(e,D)&&e[D][o]&&(e[D][o]=!1),n=N(n,{enumerable:g(0,!1)})):(s(e,D)||Y(e,D,g(1,{})),e[D][o]=!0),oe(e,o,n)):Y(e,o,n)},ce=function(e,t){f(e);var n=C(t),o=v(n).concat(pe(n));return F(o,(function(t){c&&!ue.call(n,t)||ie(e,t,n[t])})),e},le=function(e,t){return t===undefined?N(e):ce(N(e),t)},ue=function(e){var t=b(e,!0),n=$.call(this,t);return!(this===H&&s(Q,t)&&!s(X,t))&&(!(n||!s(this,t)||!s(Q,t)||s(this,D)&&this[D][t])||n)},de=function(e,t){var n=C(e),o=b(t,!0);if(n!==H||!s(Q,o)||s(X,o)){var r=W(n,o);return!r||!s(Q,o)||s(n,D)&&n[D][o]||(r.enumerable=!0),r}},se=function(e){var t=q(C(e)),n=[];return F(t,(function(e){s(Q,e)||s(T,e)||n.push(e)})),n},pe=function(e){var t=e===H,n=q(t?X:C(e)),o=[];return F(n,(function(e){!s(Q,e)||t&&!s(H,e)||o.push(Q[e])})),o};(l||(w((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor");var e=arguments.length&&arguments[0]!==undefined?String(arguments[0]):undefined,t=A(e),n=function o(e){this===H&&o.call(X,e),s(this,D)&&s(this[D],t)&&(this[D][t]=!1),oe(this,t,g(1,e))};return c&&ne&&oe(H,t,{configurable:!0,set:n}),re(t,e)}).prototype,"toString",(function(){return G(this).tag})),w(U,"withoutSetter",(function(e){return re(A(e),e)})),L.f=ue,x.f=ie,k.f=de,V.f=y.f=se,_.f=pe,E.f=function(e){return re(P(e),e)},c&&(Y(U.prototype,"description",{configurable:!0,get:function(){return G(this).description}}),i||w(H,"propertyIsEnumerable",ue,{unsafe:!0}))),o({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:U}),F(v(ee),(function(e){R(e)})),o({target:"Symbol",stat:!0,forced:!l},{"for":function(e){var t=String(e);if(s(J,t))return J[t];var n=U(t);return J[t]=n,Z[n]=t,n},keyFor:function(e){if(!ae(e))throw TypeError(e+" is not a symbol");if(s(Z,e))return Z[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),o({target:"Object",stat:!0,forced:!l,sham:!c},{create:le,defineProperty:ie,defineProperties:ce,getOwnPropertyDescriptor:de}),o({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:se,getOwnPropertySymbols:pe}),o({target:"Object",stat:!0,forced:d((function(){_.f(1)}))},{getOwnPropertySymbols:function(e){return _.f(h(e))}}),K)&&o({target:"JSON",stat:!0,forced:!l||d((function(){var e=U();return"[null]"!=K([e])||"{}"!=K({a:e})||"{}"!=K(Object(e))}))},{stringify:function(e,t,n){for(var o,r=[e],a=1;arguments.length>a;)r.push(arguments[a++]);if(o=t,(m(t)||e!==undefined)&&!ae(e))return p(t)||(t=function(e,t){if("function"==typeof o&&(t=o.call(this,e,t)),!ae(t))return t}),r[1]=t,K.apply(null,r)}});U.prototype[j]||B(U.prototype,j,U.prototype.valueOf),M(U,"Symbol"),T[D]=!0},function(e,t,n){"use strict";var o=n(2),r=n(7),a=n(5),i=n(16),c=n(6),l=n(13).f,u=n(125),d=a.Symbol;if(r&&"function"==typeof d&&(!("description"in d.prototype)||d().description!==undefined)){var s={},p=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof p?new d(e):e===undefined?d():d(e);return""===e&&(s[t]=!0),t};u(p,d);var m=p.prototype=d.prototype;m.constructor=p;var f=m.toString,h="Symbol(test)"==String(d("test")),C=/^Symbol\((.*)\)[^)]+$/;l(m,"description",{configurable:!0,get:function(){var e=c(this)?this.valueOf():this,t=f.call(e);if(i(s,e))return"";var n=h?t.slice(7,-1):t.replace(C,"$1");return""===n?undefined:n}}),o({global:!0,forced:!0},{Symbol:p})}},function(e,t,n){"use strict";n(27)("asyncIterator")},function(e,t,n){"use strict";n(27)("hasInstance")},function(e,t,n){"use strict";n(27)("isConcatSpreadable")},function(e,t,n){"use strict";n(27)("iterator")},function(e,t,n){"use strict";n(27)("match")},function(e,t,n){"use strict";n(27)("replace")},function(e,t,n){"use strict";n(27)("search")},function(e,t,n){"use strict";n(27)("species")},function(e,t,n){"use strict";n(27)("split")},function(e,t,n){"use strict";n(27)("toPrimitive")},function(e,t,n){"use strict";n(27)("toStringTag")},function(e,t,n){"use strict";n(27)("unscopables")},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(54),i=n(6),c=n(14),l=n(11),u=n(51),d=n(64),s=n(65),p=n(12),m=n(97),f=p("isConcatSpreadable"),h=m>=51||!r((function(){var e=[];return e[f]=!1,e.concat()[0]!==e})),C=s("concat"),b=function(e){if(!i(e))return!1;var t=e[f];return t!==undefined?!!t:a(e)};o({target:"Array",proto:!0,forced:!h||!C},{concat:function(e){var t,n,o,r,a,i=c(this),s=d(i,0),p=0;for(t=-1,o=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");u(s,p++,a)}return s.length=p,s}})},function(e,t,n){"use strict";var o=n(2),r=n(133),a=n(46);o({target:"Array",proto:!0},{copyWithin:r}),a("copyWithin")},function(e,t,n){"use strict";var o=n(2),r=n(19).every,a=n(40),i=n(25),c=a("every"),l=i("every");o({target:"Array",proto:!0,forced:!c||!l},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(2),r=n(98),a=n(46);o({target:"Array",proto:!0},{fill:r}),a("fill")},function(e,t,n){"use strict";var o=n(2),r=n(19).filter,a=n(65),i=n(25),c=a("filter"),l=i("filter");o({target:"Array",proto:!0,forced:!c||!l},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(2),r=n(19).find,a=n(46),i=n(25),c=!0,l=i("find");"find"in[]&&Array(1).find((function(){c=!1})),o({target:"Array",proto:!0,forced:c||!l},{find:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("find")},function(e,t,n){"use strict";var o=n(2),r=n(19).findIndex,a=n(46),i=n(25),c=!0,l=i("findIndex");"findIndex"in[]&&Array(1).findIndex((function(){c=!1})),o({target:"Array",proto:!0,forced:c||!l},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("findIndex")},function(e,t,n){"use strict";var o=n(2),r=n(134),a=n(14),i=n(11),c=n(31),l=n(64);o({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=a(this),n=i(t.length),o=l(t,0);return o.length=r(o,t,t,n,0,e===undefined?1:c(e)),o}})},function(e,t,n){"use strict";var o=n(2),r=n(134),a=n(14),i=n(11),c=n(32),l=n(64);o({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),o=i(n.length);return c(e),(t=l(n,0)).length=r(t,n,n,o,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var o=n(2),r=n(202);o({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},function(e,t,n){"use strict";var o=n(19).forEach,r=n(40),a=n(25),i=r("forEach"),c=a("forEach");e.exports=i&&c?[].forEach:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}},function(e,t,n){"use strict";var o=n(2),r=n(204);o({target:"Array",stat:!0,forced:!n(76)((function(e){Array.from(e)}))},{from:r})},function(e,t,n){"use strict";var o=n(50),r=n(14),a=n(135),i=n(99),c=n(11),l=n(51),u=n(100);e.exports=function(e){var t,n,d,s,p,m,f=r(e),h="function"==typeof this?this:Array,C=arguments.length,b=C>1?arguments[1]:undefined,g=b!==undefined,N=u(f),v=0;if(g&&(b=o(b,C>2?arguments[2]:undefined,2)),N==undefined||h==Array&&i(N))for(n=new h(t=c(f.length));t>v;v++)m=g?b(f[v],v):f[v],l(n,v,m);else for(p=(s=N.call(f)).next,n=new h;!(d=p.call(s)).done;v++)m=g?a(s,b,[d.value,v],!0):d.value,l(n,v,m);return n.length=v,n}},function(e,t,n){"use strict";var o=n(2),r=n(61).includes,a=n(46);o({target:"Array",proto:!0,forced:!n(25)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("includes")},function(e,t,n){"use strict";var o=n(2),r=n(61).indexOf,a=n(40),i=n(25),c=[].indexOf,l=!!c&&1/[1].indexOf(1,-0)<0,u=a("indexOf"),d=i("indexOf",{ACCESSORS:!0,1:0});o({target:"Array",proto:!0,forced:l||!u||!d},{indexOf:function(e){return l?c.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(2)({target:"Array",stat:!0},{isArray:n(54)})},function(e,t,n){"use strict";var o=n(137).IteratorPrototype,r=n(44),a=n(48),i=n(45),c=n(66),l=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=r(o,{next:a(1,n)}),i(e,u,!1,!0),c[u]=l,e}},function(e,t,n){"use strict";var o=n(2),r=n(58),a=n(26),i=n(40),c=[].join,l=r!=Object,u=i("join",",");o({target:"Array",proto:!0,forced:l||!u},{join:function(e){return c.call(a(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var o=n(2),r=n(139);o({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},function(e,t,n){"use strict";var o=n(2),r=n(19).map,a=n(65),i=n(25),c=a("map"),l=i("map");o({target:"Array",proto:!0,forced:!c||!l},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(51);o({target:"Array",stat:!0,forced:r((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)a(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var o=n(2),r=n(77).left,a=n(40),i=n(25),c=a("reduce"),l=i("reduce",{1:0});o({target:"Array",proto:!0,forced:!c||!l},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(2),r=n(77).right,a=n(40),i=n(25),c=a("reduceRight"),l=i("reduce",{1:0});o({target:"Array",proto:!0,forced:!c||!l},{reduceRight:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(2),r=n(6),a=n(54),i=n(43),c=n(11),l=n(26),u=n(51),d=n(12),s=n(65),p=n(25),m=s("slice"),f=p("slice",{ACCESSORS:!0,0:0,1:2}),h=d("species"),C=[].slice,b=Math.max;o({target:"Array",proto:!0,forced:!m||!f},{slice:function(e,t){var n,o,d,s=l(this),p=c(s.length),m=i(e,p),f=i(t===undefined?p:t,p);if(a(s)&&("function"!=typeof(n=s.constructor)||n!==Array&&!a(n.prototype)?r(n)&&null===(n=n[h])&&(n=undefined):n=undefined,n===Array||n===undefined))return C.call(s,m,f);for(o=new(n===undefined?Array:n)(b(f-m,0)),d=0;m1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(2),r=n(32),a=n(14),i=n(4),c=n(40),l=[],u=l.sort,d=i((function(){l.sort(undefined)})),s=i((function(){l.sort(null)})),p=c("sort");o({target:"Array",proto:!0,forced:d||!s||!p},{sort:function(e){return e===undefined?u.call(a(this)):u.call(a(this),r(e))}})},function(e,t,n){"use strict";n(55)("Array")},function(e,t,n){"use strict";var o=n(2),r=n(43),a=n(31),i=n(11),c=n(14),l=n(64),u=n(51),d=n(65),s=n(25),p=d("splice"),m=s("splice",{ACCESSORS:!0,0:0,1:2}),f=Math.max,h=Math.min;o({target:"Array",proto:!0,forced:!p||!m},{splice:function(e,t){var n,o,d,s,p,m,C=c(this),b=i(C.length),g=r(e,b),N=arguments.length;if(0===N?n=o=0:1===N?(n=0,o=b-g):(n=N-2,o=h(f(a(t),0),b-g)),b+n-o>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(d=l(C,o),s=0;sb-o+n;s--)delete C[s-1]}else if(n>o)for(s=b-o;s>g;s--)m=s+n-1,(p=s+o-1)in C?C[m]=C[p]:delete C[m];for(s=0;s>1,h=23===t?r(2,-24)-r(2,-77):0,C=e<0||0===e&&1/e<0?1:0,b=0;for((e=o(e))!=e||e===1/0?(u=e!=e?1:0,l=m):(l=a(i(e)/c),e*(d=r(2,-l))<1&&(l--,d*=2),(e+=l+f>=1?h/d:h*r(2,1-f))*d>=2&&(l++,d/=2),l+f>=m?(u=0,l=m):l+f>=1?(u=(e*d-1)*r(2,t),l+=f):(u=e*r(2,f-1)*r(2,t),l=0));t>=8;s[b++]=255&u,u/=256,t-=8);for(l=l<0;s[b++]=255&l,l/=256,p-=8);return s[--b]|=128*C,s},unpack:function(e,t){var n,o=e.length,a=8*o-t-1,i=(1<>1,l=a-7,u=o-1,d=e[u--],s=127&d;for(d>>=7;l>0;s=256*s+e[u],u--,l-=8);for(n=s&(1<<-l)-1,s>>=-l,l+=t;l>0;n=256*n+e[u],u--,l-=8);if(0===s)s=1-c;else{if(s===i)return n?NaN:d?-1/0:1/0;n+=r(2,t),s-=c}return(d?-1:1)*n*r(2,s-t)}}},function(e,t,n){"use strict";var o=n(2),r=n(9);o({target:"ArrayBuffer",stat:!0,forced:!r.NATIVE_ARRAY_BUFFER_VIEWS},{isView:r.isView})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(78),i=n(8),c=n(43),l=n(11),u=n(47),d=a.ArrayBuffer,s=a.DataView,p=d.prototype.slice;o({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:r((function(){return!new d(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(p!==undefined&&t===undefined)return p.call(i(this),e);for(var n=i(this).byteLength,o=c(e,n),r=c(t===undefined?n:t,n),a=new(u(this,d))(l(r-o)),m=new s(this),f=new s(a),h=0;o9999?"+":"";return n+r(a(e),n?6:4,0)+"-"+r(this.getUTCMonth()+1,2,0)+"-"+r(this.getUTCDate(),2,0)+"T"+r(this.getUTCHours(),2,0)+":"+r(this.getUTCMinutes(),2,0)+":"+r(this.getUTCSeconds(),2,0)+"."+r(t,3,0)+"Z"}:l},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(14),i=n(34);o({target:"Date",proto:!0,forced:r((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=a(this),n=i(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var o=n(30),r=n(232),a=n(12)("toPrimitive"),i=Date.prototype;a in i||o(i,a,r)},function(e,t,n){"use strict";var o=n(8),r=n(34);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return r(o(this),"number"!==e)}},function(e,t,n){"use strict";var o=n(24),r=Date.prototype,a=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&o(r,"toString",(function(){var e=i.call(this);return e==e?a.call(this):"Invalid Date"}))},function(e,t,n){"use strict";n(2)({target:"Function",proto:!0},{bind:n(141)})},function(e,t,n){"use strict";var o=n(6),r=n(13),a=n(36),i=n(12)("hasInstance"),c=Function.prototype;i in c||r.f(c,i,{value:function(e){if("function"!=typeof this||!o(e))return!1;if(!o(this.prototype))return e instanceof this;for(;e=a(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var o=n(7),r=n(13).f,a=Function.prototype,i=a.toString,c=/^\s*function ([^ (]*)/;!o||"name"in a||r(a,"name",{configurable:!0,get:function(){try{return i.call(this).match(c)[1]}catch(e){return""}}})},function(e,t,n){"use strict";var o=n(5);n(45)(o.JSON,"JSON",!0)},function(e,t,n){"use strict";var o=n(79),r=n(142);e.exports=o("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(2),r=n(143),a=Math.acosh,i=Math.log,c=Math.sqrt,l=Math.LN2;o({target:"Math",stat:!0,forced:!a||710!=Math.floor(a(Number.MAX_VALUE))||a(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?i(e)+l:r(e-1+c(e-1)*c(e+1))}})},function(e,t,n){"use strict";var o=n(2),r=Math.asinh,a=Math.log,i=Math.sqrt;o({target:"Math",stat:!0,forced:!(r&&1/r(0)>0)},{asinh:function c(e){return isFinite(e=+e)&&0!=e?e<0?-c(-e):a(e+i(e*e+1)):e}})},function(e,t,n){"use strict";var o=n(2),r=Math.atanh,a=Math.log;o({target:"Math",stat:!0,forced:!(r&&1/r(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:a((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var o=n(2),r=n(107),a=Math.abs,i=Math.pow;o({target:"Math",stat:!0},{cbrt:function(e){return r(e=+e)*i(a(e),1/3)}})},function(e,t,n){"use strict";var o=n(2),r=Math.floor,a=Math.log,i=Math.LOG2E;o({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-r(a(e+.5)*i):32}})},function(e,t,n){"use strict";var o=n(2),r=n(81),a=Math.cosh,i=Math.abs,c=Math.E;o({target:"Math",stat:!0,forced:!a||a(710)===Infinity},{cosh:function(e){var t=r(i(e)-1)+1;return(t+1/(t*c*c))*(c/2)}})},function(e,t,n){"use strict";var o=n(2),r=n(81);o({target:"Math",stat:!0,forced:r!=Math.expm1},{expm1:r})},function(e,t,n){"use strict";n(2)({target:"Math",stat:!0},{fround:n(247)})},function(e,t,n){"use strict";var o=n(107),r=Math.abs,a=Math.pow,i=a(2,-52),c=a(2,-23),l=a(2,127)*(2-c),u=a(2,-126);e.exports=Math.fround||function(e){var t,n,a=r(e),d=o(e);return al||n!=n?d*Infinity:d*n}},function(e,t,n){"use strict";var o=n(2),r=Math.hypot,a=Math.abs,i=Math.sqrt;o({target:"Math",stat:!0,forced:!!r&&r(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,o,r=0,c=0,l=arguments.length,u=0;c0?(o=n/u)*o:n;return u===Infinity?Infinity:u*i(r)}})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=Math.imul;o({target:"Math",stat:!0,forced:r((function(){return-5!=a(4294967295,5)||2!=a.length}))},{imul:function(e,t){var n=+e,o=+t,r=65535&n,a=65535&o;return 0|r*a+((65535&n>>>16)*a+r*(65535&o>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var o=n(2),r=Math.log,a=Math.LOG10E;o({target:"Math",stat:!0},{log10:function(e){return r(e)*a}})},function(e,t,n){"use strict";n(2)({target:"Math",stat:!0},{log1p:n(143)})},function(e,t,n){"use strict";var o=n(2),r=Math.log,a=Math.LN2;o({target:"Math",stat:!0},{log2:function(e){return r(e)/a}})},function(e,t,n){"use strict";n(2)({target:"Math",stat:!0},{sign:n(107)})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(81),i=Math.abs,c=Math.exp,l=Math.E;o({target:"Math",stat:!0,forced:r((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return i(e=+e)<1?(a(e)-a(-e))/2:(c(e-1)-c(-e-1))*(l/2)}})},function(e,t,n){"use strict";var o=n(2),r=n(81),a=Math.exp;o({target:"Math",stat:!0},{tanh:function(e){var t=r(e=+e),n=r(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(a(e)+a(-e))}})},function(e,t,n){"use strict";n(45)(Math,"Math",!0)},function(e,t,n){"use strict";var o=n(2),r=Math.ceil,a=Math.floor;o({target:"Math",stat:!0},{trunc:function(e){return(e>0?a:r)(e)}})},function(e,t,n){"use strict";var o=n(7),r=n(5),a=n(62),i=n(24),c=n(16),l=n(33),u=n(80),d=n(34),s=n(4),p=n(44),m=n(49).f,f=n(22).f,h=n(13).f,C=n(57).trim,b=r.Number,g=b.prototype,N="Number"==l(p(g)),v=function(e){var t,n,o,r,a,i,c,l,u=d(e,!1);if("string"==typeof u&&u.length>2)if(43===(t=(u=C(u)).charCodeAt(0))||45===t){if(88===(n=u.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(u.charCodeAt(1)){case 66:case 98:o=2,r=49;break;case 79:case 111:o=8,r=55;break;default:return+u}for(i=(a=u.slice(2)).length,c=0;cr)return NaN;return parseInt(a,o)}return+u};if(a("Number",!b(" 0o1")||!b("0b1")||b("+0x1"))){for(var V,y=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof y&&(N?s((function(){g.valueOf.call(n)})):"Number"!=l(n))?u(new b(v(t)),n,y):v(t)},_=o?m(b):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),k=0;_.length>k;k++)c(b,V=_[k])&&!c(y,V)&&h(y,V,f(b,V));y.prototype=g,g.constructor=y,i(r,"Number",y)}},function(e,t,n){"use strict";n(2)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(2)({target:"Number",stat:!0},{isFinite:n(261)})},function(e,t,n){"use strict";var o=n(5).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&o(e)}},function(e,t,n){"use strict";n(2)({target:"Number",stat:!0},{isInteger:n(144)})},function(e,t,n){"use strict";n(2)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var o=n(2),r=n(144),a=Math.abs;o({target:"Number",stat:!0},{isSafeInteger:function(e){return r(e)&&a(e)<=9007199254740991}})},function(e,t,n){"use strict";n(2)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(2)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var o=n(2),r=n(268);o({target:"Number",stat:!0,forced:Number.parseFloat!=r},{parseFloat:r})},function(e,t,n){"use strict";var o=n(5),r=n(57).trim,a=n(82),i=o.parseFloat,c=1/i(a+"-0")!=-Infinity;e.exports=c?function(e){var t=r(String(e)),n=i(t);return 0===n&&"-"==t.charAt(0)?-0:n}:i},function(e,t,n){"use strict";var o=n(2),r=n(145);o({target:"Number",stat:!0,forced:Number.parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o=n(2),r=n(31),a=n(271),i=n(106),c=n(4),l=1..toFixed,u=Math.floor,d=function s(e,t,n){return 0===t?n:t%2==1?s(e,t-1,n*e):s(e*e,t/2,n)};o({target:"Number",proto:!0,forced:l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){l.call({})}))},{toFixed:function(e){var t,n,o,c,l=a(this),s=r(e),p=[0,0,0,0,0,0],m="",f="0",h=function(e,t){for(var n=-1,o=t;++n<6;)o+=e*p[n],p[n]=o%1e7,o=u(o/1e7)},C=function(e){for(var t=6,n=0;--t>=0;)n+=p[t],p[t]=u(n/e),n=n%e*1e7},b=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==p[e]){var n=String(p[e]);t=""===t?n:t+i.call("0",7-n.length)+n}return t};if(s<0||s>20)throw RangeError("Incorrect fraction digits");if(l!=l)return"NaN";if(l<=-1e21||l>=1e21)return String(l);if(l<0&&(m="-",l=-l),l>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(l*d(2,69,1))-69)<0?l*d(2,-t,1):l/d(2,t,1),n*=4503599627370496,(t=52-t)>0){for(h(0,n),o=s;o>=7;)h(1e7,0),o-=7;for(h(d(10,o,1),0),o=t-1;o>=23;)C(1<<23),o-=23;C(1<0?m+((c=f.length)<=s?"0."+i.call("0",s-c)+f:f.slice(0,c-s)+"."+f.slice(c-s)):m+f}})},function(e,t,n){"use strict";var o=n(33);e.exports=function(e){if("number"!=typeof e&&"Number"!=o(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var o=n(2),r=n(273);o({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},function(e,t,n){"use strict";var o=n(7),r=n(4),a=n(63),i=n(95),c=n(72),l=n(14),u=n(58),d=Object.assign,s=Object.defineProperty;e.exports=!d||r((function(){if(o&&1!==d({b:1},d(s({},"a",{enumerable:!0,get:function(){s(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=d({},e)[n]||"abcdefghijklmnopqrst"!=a(d({},t)).join("")}))?function(e,t){for(var n=l(e),r=arguments.length,d=1,s=i.f,p=c.f;r>d;)for(var m,f=u(arguments[d++]),h=s?a(f).concat(s(f)):a(f),C=h.length,b=0;C>b;)m=h[b++],o&&!p.call(f,m)||(n[m]=f[m]);return n}:d},function(e,t,n){"use strict";n(2)({target:"Object",stat:!0,sham:!n(7)},{create:n(44)})},function(e,t,n){"use strict";var o=n(2),r=n(7),a=n(83),i=n(14),c=n(32),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineGetter__:function(e,t){l.f(i(this),e,{get:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(2),r=n(7);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperties:n(129)})},function(e,t,n){"use strict";var o=n(2),r=n(7);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:n(13).f})},function(e,t,n){"use strict";var o=n(2),r=n(7),a=n(83),i=n(14),c=n(32),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineSetter__:function(e,t){l.f(i(this),e,{set:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(2),r=n(146).entries;o({target:"Object",stat:!0},{entries:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(2),r=n(68),a=n(4),i=n(6),c=n(53).onFreeze,l=Object.freeze;o({target:"Object",stat:!0,forced:a((function(){l(1)})),sham:!r},{freeze:function(e){return l&&i(e)?l(c(e)):e}})},function(e,t,n){"use strict";var o=n(2),r=n(69),a=n(51);o({target:"Object",stat:!0},{fromEntries:function(e){var t={};return r(e,(function(e,n){a(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(26),i=n(22).f,c=n(7),l=r((function(){i(1)}));o({target:"Object",stat:!0,forced:!c||l,sham:!c},{getOwnPropertyDescriptor:function(e,t){return i(a(e),t)}})},function(e,t,n){"use strict";var o=n(2),r=n(7),a=n(93),i=n(26),c=n(22),l=n(51);o({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,n,o=i(e),r=c.f,u=a(o),d={},s=0;u.length>s;)(n=r(o,t=u[s++]))!==undefined&&l(d,t,n);return d}})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(131).f;o({target:"Object",stat:!0,forced:r((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:a})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(14),i=n(36),c=n(103);o({target:"Object",stat:!0,forced:r((function(){i(1)})),sham:!c},{getPrototypeOf:function(e){return i(a(e))}})},function(e,t,n){"use strict";n(2)({target:"Object",stat:!0},{is:n(147)})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(6),i=Object.isExtensible;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isExtensible:function(e){return!!a(e)&&(!i||i(e))}})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(6),i=Object.isFrozen;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isFrozen:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(2),r=n(4),a=n(6),i=Object.isSealed;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isSealed:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(2),r=n(14),a=n(63);o({target:"Object",stat:!0,forced:n(4)((function(){a(1)}))},{keys:function(e){return a(r(e))}})},function(e,t,n){"use strict";var o=n(2),r=n(7),a=n(83),i=n(14),c=n(34),l=n(36),u=n(22).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.get}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(2),r=n(7),a=n(83),i=n(14),c=n(34),l=n(36),u=n(22).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.set}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(2),r=n(6),a=n(53).onFreeze,i=n(68),c=n(4),l=Object.preventExtensions;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{preventExtensions:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";var o=n(2),r=n(6),a=n(53).onFreeze,i=n(68),c=n(4),l=Object.seal;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{seal:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";n(2)({target:"Object",stat:!0},{setPrototypeOf:n(52)})},function(e,t,n){"use strict";var o=n(101),r=n(24),a=n(297);o||r(Object.prototype,"toString",a,{unsafe:!0})},function(e,t,n){"use strict";var o=n(101),r=n(75);e.exports=o?{}.toString:function(){return"[object "+r(this)+"]"}},function(e,t,n){"use strict";var o=n(2),r=n(146).values;o({target:"Object",stat:!0},{values:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(2),r=n(145);o({global:!0,forced:parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o,r,a,i,c=n(2),l=n(39),u=n(5),d=n(37),s=n(148),p=n(24),m=n(67),f=n(45),h=n(55),C=n(6),b=n(32),g=n(56),N=n(33),v=n(91),V=n(69),y=n(76),_=n(47),k=n(108).set,x=n(150),L=n(151),B=n(301),w=n(152),S=n(302),I=n(35),T=n(62),A=n(12),P=n(97),E=A("species"),R="Promise",M=I.get,O=I.set,F=I.getterFor(R),D=s,j=u.TypeError,z=u.document,G=u.process,H=d("fetch"),U=w.f,K=U,W="process"==N(G),Y=!!(z&&z.createEvent&&u.dispatchEvent),q=T(R,(function(){if(!(v(D)!==String(D))){if(66===P)return!0;if(!W&&"function"!=typeof PromiseRejectionEvent)return!0}if(l&&!D.prototype["finally"])return!0;if(P>=51&&/native code/.test(D))return!1;var e=D.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[E]=t,!(e.then((function(){}))instanceof t)})),$=q||!y((function(e){D.all(e)["catch"]((function(){}))})),Q=function(e){var t;return!(!C(e)||"function"!=typeof(t=e.then))&&t},X=function(e,t,n){if(!t.notified){t.notified=!0;var o=t.reactions;x((function(){for(var r=t.value,a=1==t.state,i=0;o.length>i;){var c,l,u,d=o[i++],s=a?d.ok:d.fail,p=d.resolve,m=d.reject,f=d.domain;try{s?(a||(2===t.rejection&&te(e,t),t.rejection=1),!0===s?c=r:(f&&f.enter(),c=s(r),f&&(f.exit(),u=!0)),c===d.promise?m(j("Promise-chain cycle")):(l=Q(c))?l.call(c,p,m):p(c)):m(r)}catch(h){f&&!u&&f.exit(),m(h)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&Z(e,t)}))}},J=function(e,t,n){var o,r;Y?((o=z.createEvent("Event")).promise=t,o.reason=n,o.initEvent(e,!1,!0),u.dispatchEvent(o)):o={promise:t,reason:n},(r=u["on"+e])?r(o):"unhandledrejection"===e&&B("Unhandled promise rejection",n)},Z=function(e,t){k.call(u,(function(){var n,o=t.value;if(ee(t)&&(n=S((function(){W?G.emit("unhandledRejection",o,e):J("unhandledrejection",e,o)})),t.rejection=W||ee(t)?2:1,n.error))throw n.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e,t){k.call(u,(function(){W?G.emit("rejectionHandled",e):J("rejectionhandled",e,t.value)}))},ne=function(e,t,n,o){return function(r){e(t,n,r,o)}},oe=function(e,t,n,o){t.done||(t.done=!0,o&&(t=o),t.value=n,t.state=2,X(e,t,!0))},re=function ae(e,t,n,o){if(!t.done){t.done=!0,o&&(t=o);try{if(e===n)throw j("Promise can't be resolved itself");var r=Q(n);r?x((function(){var o={done:!1};try{r.call(n,ne(ae,e,o,t),ne(oe,e,o,t))}catch(a){oe(e,o,a,t)}})):(t.value=n,t.state=1,X(e,t,!1))}catch(a){oe(e,{done:!1},a,t)}}};q&&(D=function(e){g(this,D,R),b(e),o.call(this);var t=M(this);try{e(ne(re,this,t),ne(oe,this,t))}catch(n){oe(this,t,n)}},(o=function(e){O(this,{type:R,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:undefined})}).prototype=m(D.prototype,{then:function(e,t){var n=F(this),o=U(_(this,D));return o.ok="function"!=typeof e||e,o.fail="function"==typeof t&&t,o.domain=W?G.domain:undefined,n.parent=!0,n.reactions.push(o),0!=n.state&&X(this,n,!1),o.promise},"catch":function(e){return this.then(undefined,e)}}),r=function(){var e=new o,t=M(e);this.promise=e,this.resolve=ne(re,e,t),this.reject=ne(oe,e,t)},w.f=U=function(e){return e===D||e===a?new r(e):K(e)},l||"function"!=typeof s||(i=s.prototype.then,p(s.prototype,"then",(function(e,t){var n=this;return new D((function(e,t){i.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof H&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return L(D,H.apply(u,arguments))}}))),c({global:!0,wrap:!0,forced:q},{Promise:D}),f(D,R,!1,!0),h(R),a=d(R),c({target:R,stat:!0,forced:q},{reject:function(e){var t=U(this);return t.reject.call(undefined,e),t.promise}}),c({target:R,stat:!0,forced:l||q},{resolve:function(e){return L(l&&this===a?D:this,e)}}),c({target:R,stat:!0,forced:$},{all:function(e){var t=this,n=U(t),o=n.resolve,r=n.reject,a=S((function(){var n=b(t.resolve),a=[],i=0,c=1;V(e,(function(e){var l=i++,u=!1;a.push(undefined),c++,n.call(t,e).then((function(e){u||(u=!0,a[l]=e,--c||o(a))}),r)})),--c||o(a)}));return a.error&&r(a.value),n.promise},race:function(e){var t=this,n=U(t),o=n.reject,r=S((function(){var r=b(t.resolve);V(e,(function(e){r.call(t,e).then(n.resolve,o)}))}));return r.error&&o(r.value),n.promise}})},function(e,t,n){"use strict";var o=n(5);e.exports=function(e,t){var n=o.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var o=n(2),r=n(39),a=n(148),i=n(4),c=n(37),l=n(47),u=n(151),d=n(24);o({target:"Promise",proto:!0,real:!0,forced:!!a&&i((function(){a.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=l(this,c("Promise")),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),r||"function"!=typeof a||a.prototype["finally"]||d(a.prototype,"finally",c("Promise").prototype["finally"])},function(e,t,n){"use strict";var o=n(2),r=n(37),a=n(32),i=n(8),c=n(4),l=r("Reflect","apply"),u=Function.apply;o({target:"Reflect",stat:!0,forced:!c((function(){l((function(){}))}))},{apply:function(e,t,n){return a(e),i(n),l?l(e,t,n):u.call(e,t,n)}})},function(e,t,n){"use strict";var o=n(2),r=n(37),a=n(32),i=n(8),c=n(6),l=n(44),u=n(141),d=n(4),s=r("Reflect","construct"),p=d((function(){function e(){}return!(s((function(){}),[],e)instanceof e)})),m=!d((function(){s((function(){}))})),f=p||m;o({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){a(e),i(t);var n=arguments.length<3?e:a(arguments[2]);if(m&&!p)return s(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var o=[null];return o.push.apply(o,t),new(u.apply(e,o))}var r=n.prototype,d=l(c(r)?r:Object.prototype),f=Function.apply.call(e,d,t);return c(f)?f:d}})},function(e,t,n){"use strict";var o=n(2),r=n(7),a=n(8),i=n(34),c=n(13);o({target:"Reflect",stat:!0,forced:n(4)((function(){Reflect.defineProperty(c.f({},1,{value:1}),1,{value:2})})),sham:!r},{defineProperty:function(e,t,n){a(e);var o=i(t,!0);a(n);try{return c.f(e,o,n),!0}catch(r){return!1}}})},function(e,t,n){"use strict";var o=n(2),r=n(8),a=n(22).f;o({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=a(r(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var o=n(2),r=n(6),a=n(8),i=n(16),c=n(22),l=n(36);o({target:"Reflect",stat:!0},{get:function u(e,t){var n,o,d=arguments.length<3?e:arguments[2];return a(e)===d?e[t]:(n=c.f(e,t))?i(n,"value")?n.value:n.get===undefined?undefined:n.get.call(d):r(o=l(e))?u(o,t,d):void 0}})},function(e,t,n){"use strict";var o=n(2),r=n(7),a=n(8),i=n(22);o({target:"Reflect",stat:!0,sham:!r},{getOwnPropertyDescriptor:function(e,t){return i.f(a(e),t)}})},function(e,t,n){"use strict";var o=n(2),r=n(8),a=n(36);o({target:"Reflect",stat:!0,sham:!n(103)},{getPrototypeOf:function(e){return a(r(e))}})},function(e,t,n){"use strict";n(2)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var o=n(2),r=n(8),a=Object.isExtensible;o({target:"Reflect",stat:!0},{isExtensible:function(e){return r(e),!a||a(e)}})},function(e,t,n){"use strict";n(2)({target:"Reflect",stat:!0},{ownKeys:n(93)})},function(e,t,n){"use strict";var o=n(2),r=n(37),a=n(8);o({target:"Reflect",stat:!0,sham:!n(68)},{preventExtensions:function(e){a(e);try{var t=r("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(2),r=n(8),a=n(6),i=n(16),c=n(4),l=n(13),u=n(22),d=n(36),s=n(48);o({target:"Reflect",stat:!0,forced:c((function(){var e=l.f({},"a",{configurable:!0});return!1!==Reflect.set(d(e),"a",1,e)}))},{set:function p(e,t,n){var o,c,m=arguments.length<4?e:arguments[3],f=u.f(r(e),t);if(!f){if(a(c=d(e)))return p(c,t,n,m);f=s(0)}if(i(f,"value")){if(!1===f.writable||!a(m))return!1;if(o=u.f(m,t)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,l.f(m,t,o)}else l.f(m,t,s(0,n));return!0}return f.set!==undefined&&(f.set.call(m,n),!0)}})},function(e,t,n){"use strict";var o=n(2),r=n(8),a=n(138),i=n(52);i&&o({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){r(e),a(t);try{return i(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(7),r=n(5),a=n(62),i=n(80),c=n(13).f,l=n(49).f,u=n(109),d=n(84),s=n(110),p=n(24),m=n(4),f=n(35).set,h=n(55),C=n(12)("match"),b=r.RegExp,g=b.prototype,N=/a/g,v=/a/g,V=new b(N)!==N,y=s.UNSUPPORTED_Y;if(o&&a("RegExp",!V||y||m((function(){return v[C]=!1,b(N)!=N||b(v)==v||"/a/i"!=b(N,"i")})))){for(var _=function(e,t){var n,o=this instanceof _,r=u(e),a=t===undefined;if(!o&&r&&e.constructor===_&&a)return e;V?r&&!a&&(e=e.source):e instanceof _&&(a&&(t=d.call(e)),e=e.source),y&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=i(V?new b(e,t):b(e,t),o?this:g,_);return y&&n&&f(c,{sticky:n}),c},k=function(e){e in _||c(_,e,{configurable:!0,get:function(){return b[e]},set:function(t){b[e]=t}})},x=l(b),L=0;x.length>L;)k(x[L++]);g.constructor=_,_.prototype=g,p(r,"RegExp",_)}h("RegExp")},function(e,t,n){"use strict";var o=n(7),r=n(13),a=n(84),i=n(110).UNSUPPORTED_Y;o&&("g"!=/./g.flags||i)&&r.f(RegExp.prototype,"flags",{configurable:!0,get:a})},function(e,t,n){"use strict";var o=n(24),r=n(8),a=n(4),i=n(84),c=RegExp.prototype,l=c.toString,u=a((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),d="toString"!=l.name;(u||d)&&o(RegExp.prototype,"toString",(function(){var e=r(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in c)?i.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var o=n(79),r=n(142);e.exports=o("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(2),r=n(111).codeAt;o({target:"String",proto:!0},{codePointAt:function(e){return r(this,e)}})},function(e,t,n){"use strict";var o,r=n(2),a=n(22).f,i=n(11),c=n(112),l=n(23),u=n(113),d=n(39),s="".endsWith,p=Math.min,m=u("endsWith");r({target:"String",proto:!0,forced:!!(d||m||(o=a(String.prototype,"endsWith"),!o||o.writable))&&!m},{endsWith:function(e){var t=String(l(this));c(e);var n=arguments.length>1?arguments[1]:undefined,o=i(t.length),r=n===undefined?o:p(i(n),o),a=String(e);return s?s.call(t,a,r):t.slice(r-a.length,r)===a}})},function(e,t,n){"use strict";var o=n(2),r=n(43),a=String.fromCharCode,i=String.fromCodePoint;o({target:"String",stat:!0,forced:!!i&&1!=i.length},{fromCodePoint:function(e){for(var t,n=[],o=arguments.length,i=0;o>i;){if(t=+arguments[i++],r(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?a(t):a(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var o=n(2),r=n(112),a=n(23);o({target:"String",proto:!0,forced:!n(113)("includes")},{includes:function(e){return!!~String(a(this)).indexOf(r(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(111).charAt,r=n(35),a=n(102),i=r.set,c=r.getterFor("String Iterator");a(String,"String",(function(e){i(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,r=t.index;return r>=n.length?{value:undefined,done:!0}:(e=o(n,r),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var o=n(86),r=n(8),a=n(11),i=n(23),c=n(114),l=n(87);o("match",1,(function(e,t,n){return[function(t){var n=i(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var i=r(e),u=String(this);if(!i.global)return l(i,u);var d=i.unicode;i.lastIndex=0;for(var s,p=[],m=0;null!==(s=l(i,u));){var f=String(s[0]);p[m]=f,""===f&&(i.lastIndex=c(u,a(i.lastIndex),d)),m++}return 0===m?null:p}]}))},function(e,t,n){"use strict";var o=n(2),r=n(105).end;o({target:"String",proto:!0,forced:n(154)},{padEnd:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(2),r=n(105).start;o({target:"String",proto:!0,forced:n(154)},{padStart:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(2),r=n(26),a=n(11);o({target:"String",stat:!0},{raw:function(e){for(var t=r(e.raw),n=a(t.length),o=arguments.length,i=[],c=0;n>c;)i.push(String(t[c++])),c]*>)/g,h=/\$([$&'`]|\d\d?)/g;o("replace",2,(function(e,t,n,o){var C=o.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,b=o.REPLACE_KEEPS_$0,g=C?"$":"$0";return[function(n,o){var r=l(this),a=n==undefined?undefined:n[e];return a!==undefined?a.call(n,r,o):t.call(String(r),n,o)},function(e,o){if(!C&&b||"string"==typeof o&&-1===o.indexOf(g)){var a=n(t,e,this,o);if(a.done)return a.value}var l=r(e),m=String(this),f="function"==typeof o;f||(o=String(o));var h=l.global;if(h){var v=l.unicode;l.lastIndex=0}for(var V=[];;){var y=d(l,m);if(null===y)break;if(V.push(y),!h)break;""===String(y[0])&&(l.lastIndex=u(m,i(l.lastIndex),v))}for(var _,k="",x=0,L=0;L=x&&(k+=m.slice(x,w)+P,x=w+B.length)}return k+m.slice(x)}];function N(e,n,o,r,i,c){var l=o+e.length,u=r.length,d=h;return i!==undefined&&(i=a(i),d=f),t.call(c,d,(function(t,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,o);case"'":return n.slice(l);case"<":c=i[a.slice(1,-1)];break;default:var d=+a;if(0===d)return t;if(d>u){var s=m(d/10);return 0===s?t:s<=u?r[s-1]===undefined?a.charAt(1):r[s-1]+a.charAt(1):t}c=r[d-1]}return c===undefined?"":c}))}}))},function(e,t,n){"use strict";var o=n(86),r=n(8),a=n(23),i=n(147),c=n(87);o("search",1,(function(e,t,n){return[function(t){var n=a(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var a=r(e),l=String(this),u=a.lastIndex;i(u,0)||(a.lastIndex=0);var d=c(a,l);return i(a.lastIndex,u)||(a.lastIndex=u),null===d?-1:d.index}]}))},function(e,t,n){"use strict";var o=n(86),r=n(109),a=n(8),i=n(23),c=n(47),l=n(114),u=n(11),d=n(87),s=n(85),p=n(4),m=[].push,f=Math.min,h=!p((function(){return!RegExp(4294967295,"y")}));o("split",2,(function(e,t,n){var o;return o="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var o=String(i(this)),a=n===undefined?4294967295:n>>>0;if(0===a)return[];if(e===undefined)return[o];if(!r(e))return t.call(o,e,a);for(var c,l,u,d=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),f=0,h=new RegExp(e.source,p+"g");(c=s.call(h,o))&&!((l=h.lastIndex)>f&&(d.push(o.slice(f,c.index)),c.length>1&&c.index=a));)h.lastIndex===c.index&&h.lastIndex++;return f===o.length?!u&&h.test("")||d.push(""):d.push(o.slice(f)),d.length>a?d.slice(0,a):d}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var r=i(this),a=t==undefined?undefined:t[e];return a!==undefined?a.call(t,r,n):o.call(String(r),t,n)},function(e,r){var i=n(o,e,this,r,o!==t);if(i.done)return i.value;var s=a(e),p=String(this),m=c(s,RegExp),C=s.unicode,b=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(h?"y":"g"),g=new m(h?s:"^(?:"+s.source+")",b),N=r===undefined?4294967295:r>>>0;if(0===N)return[];if(0===p.length)return null===d(g,p)?[p]:[];for(var v=0,V=0,y=[];V1?arguments[1]:undefined,t.length)),o=String(e);return s?s.call(t,o,n):t.slice(n,n+o.length)===o}})},function(e,t,n){"use strict";var o=n(2),r=n(57).trim;o({target:"String",proto:!0,forced:n(115)("trim")},{trim:function(){return r(this)}})},function(e,t,n){"use strict";var o=n(2),r=n(57).end,a=n(115)("trimEnd"),i=a?function(){return r(this)}:"".trimEnd;o({target:"String",proto:!0,forced:a},{trimEnd:i,trimRight:i})},function(e,t,n){"use strict";var o=n(2),r=n(57).start,a=n(115)("trimStart"),i=a?function(){return r(this)}:"".trimStart;o({target:"String",proto:!0,forced:a},{trimStart:i,trimLeft:i})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("anchor")},{anchor:function(e){return r(this,"a","name",e)}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("big")},{big:function(){return r(this,"big","","")}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("blink")},{blink:function(){return r(this,"blink","","")}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("bold")},{bold:function(){return r(this,"b","","")}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("fixed")},{fixed:function(){return r(this,"tt","","")}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("fontcolor")},{fontcolor:function(e){return r(this,"font","color",e)}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("fontsize")},{fontsize:function(e){return r(this,"font","size",e)}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("italics")},{italics:function(){return r(this,"i","","")}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("link")},{link:function(e){return r(this,"a","href",e)}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("small")},{small:function(){return r(this,"small","","")}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("strike")},{strike:function(){return r(this,"strike","","")}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("sub")},{sub:function(){return r(this,"sub","","")}})},function(e,t,n){"use strict";var o=n(2),r=n(28);o({target:"String",proto:!0,forced:n(29)("sup")},{sup:function(){return r(this,"sup","","")}})},function(e,t,n){"use strict";n(41)("Float32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(31);e.exports=function(e){var t=o(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(41)("Float64",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Int8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Int16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Int32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}),!0)},function(e,t,n){"use strict";n(41)("Uint16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(41)("Uint32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(9),r=n(133),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(e,t){return r.call(a(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).every,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("every",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(98),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("fill",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).filter,a=n(47),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("filter",(function(e){for(var t=r(i(this),e,arguments.length>1?arguments[1]:undefined),n=a(this,this.constructor),o=0,l=t.length,u=new(c(n))(l);l>o;)u[o]=t[o++];return u}))},function(e,t,n){"use strict";var o=n(9),r=n(19).find,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("find",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).findIndex,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("findIndex",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).forEach,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("forEach",(function(e){r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(116);(0,n(9).exportTypedArrayStaticMethod)("from",n(156),o)},function(e,t,n){"use strict";var o=n(9),r=n(61).includes,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("includes",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(61).indexOf,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("indexOf",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(5),r=n(9),a=n(136),i=n(12)("iterator"),c=o.Uint8Array,l=a.values,u=a.keys,d=a.entries,s=r.aTypedArray,p=r.exportTypedArrayMethod,m=c&&c.prototype[i],f=!!m&&("values"==m.name||m.name==undefined),h=function(){return l.call(s(this))};p("entries",(function(){return d.call(s(this))})),p("keys",(function(){return u.call(s(this))})),p("values",h,!f),p(i,h,!f)},function(e,t,n){"use strict";var o=n(9),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].join;a("join",(function(e){return i.apply(r(this),arguments)}))},function(e,t,n){"use strict";var o=n(9),r=n(139),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("lastIndexOf",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(9),r=n(19).map,a=n(47),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("map",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(c(a(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var o=n(9),r=n(116),a=o.aTypedArrayConstructor;(0,o.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(a(this))(t);t>e;)n[e]=arguments[e++];return n}),r)},function(e,t,n){"use strict";var o=n(9),r=n(77).left,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduce",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=n(77).right,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduceRight",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var e,t=r(this).length,n=i(t/2),o=0;o1?arguments[1]:undefined,1),n=this.length,o=i(e),c=r(o.length),u=0;if(c+t>n)throw RangeError("Wrong length");for(;ua;)d[a]=n[a++];return d}),a((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var o=n(9),r=n(19).some,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("some",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(9),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].sort;a("sort",(function(e){return i.call(r(this),e)}))},function(e,t,n){"use strict";var o=n(9),r=n(11),a=n(43),i=n(47),c=o.aTypedArray;(0,o.exportTypedArrayMethod)("subarray",(function(e,t){var n=c(this),o=n.length,l=a(e,o);return new(i(n,n.constructor))(n.buffer,n.byteOffset+l*n.BYTES_PER_ELEMENT,r((t===undefined?o:a(t,o))-l))}))},function(e,t,n){"use strict";var o=n(5),r=n(9),a=n(4),i=o.Int8Array,c=r.aTypedArray,l=r.exportTypedArrayMethod,u=[].toLocaleString,d=[].slice,s=!!i&&a((function(){u.call(new i(1))}));l("toLocaleString",(function(){return u.apply(s?d.call(c(this)):c(this),arguments)}),a((function(){return[1,2].toLocaleString()!=new i([1,2]).toLocaleString()}))||!a((function(){i.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var o=n(9).exportTypedArrayMethod,r=n(4),a=n(5).Uint8Array,i=a&&a.prototype||{},c=[].toString,l=[].join;r((function(){c.call({})}))&&(c=function(){return l.call(this)});var u=i.toString!=c;o("toString",c,u)},function(e,t,n){"use strict";var o,r=n(5),a=n(67),i=n(53),c=n(79),l=n(157),u=n(6),d=n(35).enforce,s=n(124),p=!r.ActiveXObject&&"ActiveXObject"in r,m=Object.isExtensible,f=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},h=e.exports=c("WeakMap",f,l);if(s&&p){o=l.getConstructor(f,"WeakMap",!0),i.REQUIRED=!0;var C=h.prototype,b=C["delete"],g=C.has,N=C.get,v=C.set;a(C,{"delete":function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),b.call(this,e)||t.frozen["delete"](e)}return b.call(this,e)},has:function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),g.call(this,e)||t.frozen.has(e)}return g.call(this,e)},get:function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),g.call(this,e)?N.call(this,e):t.frozen.get(e)}return N.call(this,e)},set:function(e,t){if(u(e)&&!m(e)){var n=d(this);n.frozen||(n.frozen=new o),g.call(this,e)?v.call(this,e,t):n.frozen.set(e,t)}else v.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(79)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(157))},function(e,t,n){"use strict";var o=n(2),r=n(5),a=n(108);o({global:!0,bind:!0,enumerable:!0,forced:!r.setImmediate||!r.clearImmediate},{setImmediate:a.set,clearImmediate:a.clear})},function(e,t,n){"use strict";var o=n(2),r=n(5),a=n(150),i=n(33),c=r.process,l="process"==i(c);o({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=l&&c.domain;a(t?t.bind(e):e)}})},function(e,t,n){"use strict";var o=n(2),r=n(5),a=n(74),i=[].slice,c=function(e){return function(t,n){var o=arguments.length>2,r=o?i.call(arguments,2):undefined;return e(o?function(){("function"==typeof t?t:Function(t)).apply(this,r)}:t,n)}};o({global:!0,bind:!0,forced:/MSIE .\./.test(a)},{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},function(e,t,n){"use strict";t.__esModule=!0,t._CI=we,t._HI=O,t._M=Se,t._MCCC=Pe,t._ME=Te,t._MFCC=Ee,t._MP=Le,t._MR=ge,t.__render=De,t.createComponentVNode=function(e,t,n,o,r){var i=new S(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),o,function(e,t,n){var o=(32768&e?t.render:t).defaultProps;if(a(o))return n;if(a(n))return d(o,null);return B(n,o)}(e,t,n),function(e,t,n){if(4&e)return n;var o=(32768&e?t.render:t).defaultHooks;if(a(o))return n;if(a(n))return o;return B(n,o)}(e,t,r),t);k.createVNode&&k.createVNode(i);return i},t.createFragment=A,t.createPortal=function(e,t){var n=O(e);return I(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,o,r){e||(e=t),je(n,e,o,r)}},t.createTextVNode=T,t.createVNode=I,t.directClone=P,t.findDOMfromVNode=N,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case"$F":return 8192;default:return 1}},t.linkEvent=function(e,t){if(c(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&a(e.children)&&M(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?d(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=je,t.rerender=We,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var o=Array.isArray;function r(e){var t=typeof e;return"string"===t||"number"===t}function a(e){return null==e}function i(e){return null===e||!1===e||!0===e||void 0===e}function c(e){return"function"==typeof e}function l(e){return"string"==typeof e}function u(e){return null===e}function d(e,t){var n={};if(e)for(var o in e)n[o]=e[o];if(t)for(var r in t)n[r]=t[r];return n}function s(e){return!u(e)&&"object"==typeof e}var p={};t.EMPTY_OBJ=p;function m(e){return e.substr(2).toLowerCase()}function f(e,t){e.appendChild(t)}function h(e,t,n){u(n)?f(e,t):e.insertBefore(t,n)}function C(e,t){e.removeChild(t)}function b(e){for(var t=0;t0,f=u(p),h=l(p)&&"$"===p[0];m||f||h?(n=n||t.slice(0,d),(m||h)&&(s=P(s)),(f||h)&&(s.key="$"+d),n.push(s)):n&&n.push(s),s.flags|=65536}}a=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=P(t)),a=2;return e.children=n,e.childFlags=a,e}function O(e){return i(e)||r(e)?T(e,null):o(e)?A(e,0,null):16384&e.flags?P(e):e}var F="http://www.w3.org/1999/xlink",D="http://www.w3.org/XML/1998/namespace",j={"xlink:actuate":F,"xlink:arcrole":F,"xlink:href":F,"xlink:role":F,"xlink:show":F,"xlink:title":F,"xlink:type":F,"xml:base":D,"xml:lang":D,"xml:space":D};function z(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var G=z(0),H=z(null),U=z(!0);function K(e,t){var n=t.$EV;return n||(n=t.$EV=z(null)),n[e]||1==++G[e]&&(H[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?Y(t,!0,e,X(t)):t.stopPropagation()}}(e):function(e){return function(t){Y(t,!1,e,X(t))}}(e);return document.addEventListener(m(e),t),t}(e)),n}function W(e,t){var n=t.$EV;n&&n[e]&&(0==--G[e]&&(document.removeEventListener(m(e),H[e]),H[e]=null),n[e]=null)}function Y(e,t,n,o){var r=function(e){return c(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&r.disabled)return;var a=r.$EV;if(a){var i=a[n];if(i&&(o.dom=r,i.event?i.event(i.data,e):i(e),e.cancelBubble))return}r=r.parentNode}while(!u(r))}function q(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function $(){return this.defaultPrevented}function Q(){return this.cancelBubble}function X(e){var t={dom:document};return e.isDefaultPrevented=$,e.isPropagationStopped=Q,e.stopPropagation=q,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function J(e,t,n){if(e[t]){var o=e[t];o.event?o.event(o.data,n):o(n)}else{var r=t.toLowerCase();e[r]&&e[r](n)}}function Z(e,t){var n=function(n){var o=this.$V;if(o){var r=o.props||p,a=o.dom;if(l(e))J(r,e,n);else for(var i=0;i-1&&t.options[i]&&(c=t.options[i].value),n&&a(c)&&(c=e.defaultValue),ie(o,c)}}var ue,de,se=Z("onInput",me),pe=Z("onChange");function me(e,t,n){var o=e.value,r=t.value;if(a(o)){if(n){var i=e.defaultValue;a(i)||i===r||(t.defaultValue=i,t.value=i)}}else r!==o&&(t.defaultValue=o,t.value=o)}function fe(e,t,n,o,r,a){64&e?ae(o,n):256&e?le(o,n,r,t):128&e&&me(o,n,r),a&&(n.$V=t)}function he(e,t,n){64&e?function(e,t){te(t.type)?(ee(e,"change",oe),ee(e,"click",re)):ee(e,"input",ne)}(t,n):256&e?function(e){ee(e,"change",ce)}(t):128&e&&function(e,t){ee(e,"input",se),t.onChange&&ee(e,"change",pe)}(t,n)}function Ce(e){return e.type&&te(e.type)?!a(e.checked):!a(e.value)}function be(e){e&&!w(e,null)&&e.current&&(e.current=null)}function ge(e,t,n){e&&(c(e)||void 0!==e.current)&&n.push((function(){w(e,t)||void 0===e.current||(e.current=t)}))}function Ne(e,t){ve(e),v(e,t)}function ve(e){var t,n=e.flags,o=e.children;if(481&n){t=e.ref;var r=e.props;be(t);var i=e.childFlags;if(!u(r))for(var l=Object.keys(r),d=0,s=l.length;d0;for(var c in i&&(a=Ce(n))&&he(t,o,n),n)xe(c,null,n[c],o,r,a,null);i&&fe(t,e,o,n,!0,a)}function Be(e,t,n){var o=O(e.render(t,e.state,n)),r=n;return c(e.getChildContext)&&(r=d(n,e.getChildContext())),e.$CX=r,o}function we(e,t,n,o,r,a){var i=new t(n,o),l=i.$N=Boolean(t.getDerivedStateFromProps||i.getSnapshotBeforeUpdate);if(i.$SVG=r,i.$L=a,e.children=i,i.$BS=!1,i.context=o,i.props===p&&(i.props=n),l)i.state=y(i,n,i.state);else if(c(i.componentWillMount)){i.$BR=!0,i.componentWillMount();var d=i.$PS;if(!u(d)){var s=i.state;if(u(s))i.state=d;else for(var m in d)s[m]=d[m];i.$PS=null}i.$BR=!1}return i.$LI=Be(i,n,o),i}function Se(e,t,n,o,r,a){var i=e.flags|=16384;481&i?Te(e,t,n,o,r,a):4&i?function(e,t,n,o,r,a){var i=we(e,e.type,e.props||p,n,o,a);Se(i.$LI,t,i.$CX,o,r,a),Pe(e.ref,i,a)}(e,t,n,o,r,a):8&i?(!function(e,t,n,o,r,a){Se(e.children=O(function(e,t){return 32768&e.flags?e.type.render(e.props||p,e.ref,t):e.type(e.props||p,t)}(e,n)),t,n,o,r,a)}(e,t,n,o,r,a),Ee(e,a)):512&i||16&i?Ie(e,t,r):8192&i?function(e,t,n,o,r,a){var i=e.children,c=e.childFlags;12&c&&0===i.length&&(c=e.childFlags=2,i=e.children=E());2===c?Se(i,n,r,o,r,a):Ae(i,n,t,o,r,a)}(e,n,t,o,r,a):1024&i&&function(e,t,n,o,r){Se(e.children,e.ref,t,!1,null,r);var a=E();Ie(a,n,o),e.dom=a.dom}(e,n,t,r,a)}function Ie(e,t,n){var o=e.dom=document.createTextNode(e.children);u(t)||h(t,o,n)}function Te(e,t,n,o,r,i){var c=e.flags,l=e.props,d=e.className,s=e.children,p=e.childFlags,m=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,o=o||(32&c)>0);if(a(d)||""===d||(o?m.setAttribute("class",d):m.className=d),16===p)x(m,s);else if(1!==p){var f=o&&"foreignObject"!==e.type;2===p?(16384&s.flags&&(e.children=s=P(s)),Se(s,m,n,f,null,i)):8!==p&&4!==p||Ae(s,m,n,f,null,i)}u(t)||h(t,m,r),u(l)||Le(e,c,l,m,o),ge(e.ref,m,i)}function Ae(e,t,n,o,r,a){for(var i=0;i0,u!==d){var f=u||p;if((c=d||p)!==p)for(var h in(s=(448&r)>0)&&(m=Ce(c)),c){var C=f[h],b=c[h];C!==b&&xe(h,C,b,l,o,m,e)}if(f!==p)for(var g in f)a(c[g])&&!a(f[g])&&xe(g,f[g],null,l,o,m,e)}var N=t.children,v=t.className;e.className!==v&&(a(v)?l.removeAttribute("class"):o?l.setAttribute("class",v):l.className=v);4096&r?function(e,t){e.textContent!==t&&(e.textContent=t)}(l,N):Me(e.childFlags,t.childFlags,e.children,N,l,n,o&&"foreignObject"!==t.type,null,e,i);s&&fe(r,t,l,c,!1,m);var V=t.ref,y=e.ref;y!==V&&(be(y),ge(V,l,i))}(e,t,o,r,m,s):4&m?function(e,t,n,o,r,a,i){var l=t.children=e.children;if(u(l))return;l.$L=i;var s=t.props||p,m=t.ref,f=e.ref,h=l.state;if(!l.$N){if(c(l.componentWillReceiveProps)){if(l.$BR=!0,l.componentWillReceiveProps(s,o),l.$UN)return;l.$BR=!1}u(l.$PS)||(h=d(h,l.$PS),l.$PS=null)}Oe(l,h,s,n,o,r,!1,a,i),f!==m&&(be(f),ge(m,l,i))}(e,t,n,o,r,l,s):8&m?function(e,t,n,o,r,i,l){var u=!0,d=t.props||p,s=t.ref,m=e.props,f=!a(s),h=e.children;f&&c(s.onComponentShouldUpdate)&&(u=s.onComponentShouldUpdate(m,d));if(!1!==u){f&&c(s.onComponentWillUpdate)&&s.onComponentWillUpdate(m,d);var C=t.type,b=O(32768&t.flags?C.render(d,s,o):C(d,o));Re(h,b,n,o,r,i,l),t.children=b,f&&c(s.onComponentDidUpdate)&&s.onComponentDidUpdate(m,d)}else t.children=h}(e,t,n,o,r,l,s):16&m?function(e,t){var n=t.children,o=t.dom=e.dom;n!==e.children&&(o.nodeValue=n)}(e,t):512&m?t.dom=e.dom:8192&m?function(e,t,n,o,r,a){var i=e.children,c=t.children,l=e.childFlags,u=t.childFlags,d=null;12&u&&0===c.length&&(u=t.childFlags=2,c=t.children=E());var s=0!=(2&u);if(12&l){var p=i.length;(8&l&&8&u||s||!s&&c.length>p)&&(d=N(i[p-1],!1).nextSibling)}Me(l,u,i,c,n,o,r,d,e,a)}(e,t,n,o,r,s):function(e,t,n,o){var r=e.ref,a=t.ref,c=t.children;if(Me(e.childFlags,t.childFlags,e.children,c,r,n,!1,null,e,o),t.dom=e.dom,r!==a&&!i(c)){var l=c.dom;C(r,l),f(a,l)}}(e,t,o,s)}function Me(e,t,n,o,r,a,i,c,l,u){switch(e){case 2:switch(t){case 2:Re(n,o,r,a,i,c,u);break;case 1:Ne(n,r);break;case 16:ve(n),x(r,o);break;default:!function(e,t,n,o,r,a){ve(e),Ae(t,n,o,r,N(e,!0),a),v(e,n)}(n,o,r,a,i,u)}break;case 1:switch(t){case 2:Se(o,r,a,i,c,u);break;case 1:break;case 16:x(r,o);break;default:Ae(o,r,a,i,c,u)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:x(n,t))}(n,o,r);break;case 2:ye(r),Se(o,r,a,i,c,u);break;case 1:ye(r);break;default:ye(r),Ae(o,r,a,i,c,u)}break;default:switch(t){case 16:Ve(n),x(r,o);break;case 2:_e(r,l,n),Se(o,r,a,i,c,u);break;case 1:_e(r,l,n);break;default:var d=0|n.length,s=0|o.length;0===d?s>0&&Ae(o,r,a,i,c,u):0===s?_e(r,l,n):8===t&&8===e?function(e,t,n,o,r,a,i,c,l,u){var d,s,p=a-1,m=i-1,f=0,h=e[f],C=t[f];e:{for(;h.key===C.key;){if(16384&C.flags&&(t[f]=C=P(C)),Re(h,C,n,o,r,c,u),e[f]=C,++f>p||f>m)break e;h=e[f],C=t[f]}for(h=e[p],C=t[m];h.key===C.key;){if(16384&C.flags&&(t[m]=C=P(C)),Re(h,C,n,o,r,c,u),e[p]=C,p--,m--,f>p||f>m)break e;h=e[p],C=t[m]}}if(f>p){if(f<=m)for(s=(d=m+1)m)for(;f<=p;)Ne(e[f++],n);else!function(e,t,n,o,r,a,i,c,l,u,d,s,p){var m,f,h,C=0,b=c,g=c,v=a-c+1,y=i-c+1,_=new Int32Array(y+1),k=v===o,x=!1,L=0,B=0;if(r<4||(v|y)<32)for(C=b;C<=a;++C)if(m=e[C],Bc?x=!0:L=c,16384&f.flags&&(t[c]=f=P(f)),Re(m,f,l,n,u,d,p),++B;break}!k&&c>i&&Ne(m,l)}else k||Ne(m,l);else{var w={};for(C=g;C<=i;++C)w[t[C].key]=C;for(C=b;C<=a;++C)if(m=e[C],Bb;)Ne(e[b++],l);_[c-g]=C+1,L>c?x=!0:L=c,16384&(f=t[c]).flags&&(t[c]=f=P(f)),Re(m,f,l,n,u,d,p),++B}else k||Ne(m,l);else k||Ne(m,l)}if(k)_e(l,s,e),Ae(t,l,n,u,d,p);else if(x){var S=function(e){var t=0,n=0,o=0,r=0,a=0,i=0,c=0,l=e.length;l>Fe&&(Fe=l,ue=new Int32Array(l),de=new Int32Array(l));for(;n>1]]0&&(de[n]=ue[a-1]),ue[a]=n)}a=r+1;var u=new Int32Array(a);i=ue[a-1];for(;a-- >0;)u[a]=i,i=de[i],ue[a]=0;return u}(_);for(c=S.length-1,C=y-1;C>=0;C--)0===_[C]?(16384&(f=t[L=C+g]).flags&&(t[L]=f=P(f)),Se(f,l,n,u,(h=L+1)=0;C--)0===_[C]&&(16384&(f=t[L=C+g]).flags&&(t[L]=f=P(f)),Se(f,l,n,u,(h=L+1)i?i:a,p=0;pi)for(p=s;p=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(c&&l){if(this.prev=0;--o){var r=this.tryEntries[o];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),V(n),u}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;V(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:_(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=o}catch(r){Function("r","regeneratorRuntime = r")(o)}},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},function(e,t,n){"use strict";(function(e){ /*! loadCSS. [c]2017 Filament Group, Inc. MIT License */ -var n;n=void 0!==e?e:void 0,t.loadCSS=function(e,t,o,r){var a,i=n.document,c=i.createElement("link");if(t)a=t;else{var l=(i.body||i.getElementsByTagName("head")[0]).childNodes;a=l[l.length-1]}var u=i.styleSheets;if(r)for(var d in r)r.hasOwnProperty(d)&&c.setAttribute(d,r[d]);c.rel="stylesheet",c.href=e,c.media="only x",function m(e){if(i.body)return e();setTimeout((function(){m(e)}))}((function(){a.parentNode.insertBefore(c,t?a:a.nextSibling)}));var s=function f(e){for(var t=c.href,n=u.length;n--;)if(u[n].href===t)return e();setTimeout((function(){f(e)}))};function p(){c.addEventListener&&c.removeEventListener("load",p),c.media=o||"all"}return c.addEventListener&&c.addEventListener("load",p),c.onloadcssdefined=s,s(p),c}}).call(this,n(121))},function(e,t,n){"use strict";t.__esModule=!0,t.createStore=void 0;var o=n(70),r=n(396),a=n(3),i=n(117),c=n(118);(0,n(42).createLogger)("store");t.createStore=function(){var e=(0,o.flow)([function(e,t){return void 0===e&&(e={}),e},a.backendReducer,i.toastReducer,c.hotKeyReducer]),t=[c.hotKeyMiddleware];return(0,r.createStore)(e,r.applyMiddleware.apply(void 0,t))}},function(e,t,n){"use strict";t.__esModule=!0,t.applyMiddleware=t.createStore=void 0;var o=n(70);t.createStore=function r(e,t){if(t)return t(r)(e);var n,o=[],a=function(t){n=e(n,t),o.forEach((function(e){return e()}))};return a({type:"@@INIT"}),{dispatch:a,subscribe:function(e){o.push(e)},getState:function(){return n}}};t.applyMiddleware=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i1?t-1:0),o=1;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(0),r=n(10),a=n(21);var i=function(e){var t=e.color,n=e.content,i=e.className,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["color","content","className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["ColorBox",i]),color:n?null:"transparent",backgroundColor:t,content:n||"."},c)))};t.ColorBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Collapsible=void 0;var o=n(0),r=n(21),a=n(119);var i=function(e){var t,n;function i(t){var n;n=e.call(this,t)||this;var o=t.open;return n.state={open:o||!1},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.props,n=this.state.open,i=t.children,c=t.color,l=void 0===c?"default":c,u=t.title,d=t.buttons,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createComponentVNode)(2,r.Box,{mb:1,children:[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},s,{children:u}))),2),d&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",d,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:i})]})},i}(o.Component);t.Collapsible=i},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var o=n(0),r=n(21);t.Dimmer=function(e){var t=e.style,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Box,Object.assign({style:Object.assign({position:"absolute",top:0,bottom:0,left:0,right:0,"background-color":"rgba(0, 0, 0, 0.75)","z-index":1},t)},n)))}},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(0),r=n(10),a=n(21),i=n(88);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},u.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},u.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},u.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(n){e.setSelected(t)}},t)}));return n.length?n:"No Options Found"},u.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,u=t.over,d=t.width,s=(t.onClick,t.selected,c(t,["color","over","width","onClick","selected"])),p=s.className,m=c(s,["className"]),f=u?!this.state.open:this.state.open,h=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)(["Dropdown__menu",u&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:d}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({width:d,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,p])},m,{onClick:function(t){e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",this.state.selected,0),(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,i.Icon,{name:f?"chevron-up":"chevron-down"}),2)]}))),h],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var o=n(0),r=n(10),a=n(21);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.className,n=e.direction,o=e.wrap,a=e.align,c=e.justify,l=e.spacing,u=void 0===l?0:l,d=i(e,["className","direction","wrap","align","justify","spacing"]);return Object.assign({className:(0,r.classes)(["Flex",u>0&&"Flex--spacing--"+u,t]),style:Object.assign({},d.style,{"flex-direction":n,"flex-wrap":o,"align-items":a,"justify-content":c})},d)};t.computeFlexProps=c;var l=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},c(e))))};t.Flex=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.grow,o=e.order,a=e.align,c=i(e,["className","grow","order","align"]);return Object.assign({className:(0,r.classes)(["Flex__item",t]),style:Object.assign({},c.style,{"flex-grow":n,order:o,"align-self":a})},c)};t.computeFlexItemProps=u;var d=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},u(e))))};t.FlexItem=d,d.defaultHooks=r.pureComponentHooks,l.Item=d},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(0),r=n(10),a=n(21);var i=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["NoticeBox",t])},n)))};t.NoticeBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var o=n(0),r=n(17),a=n(10),i=n(15),c=n(161),l=n(21);var u=function(e){var t,n;function u(t){var n;n=e.call(this,t)||this;var a=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:a,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,a=n.props.onDrag;o&&a&&a(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,a=t.maxValue,i=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var u=Number.isFinite(o)?o%i:0;n.internalValue=(0,r.clamp)(n.internalValue+l*i/c,o-i,a+i),n.value=(0,r.clamp)(n.internalValue-n.internalValue%i+u,o,a),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,a=n.state,i=a.dragging,c=a.value,l=a.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!i,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),i)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var u=n.inputRef.current;u.value=l;try{u.focus(),u.select()}catch(d){}}},n}return n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,u.prototype.render=function(){var e=this,t=this.state,n=t.dragging,u=t.editing,d=t.value,s=t.suppressingFlicker,p=this.props,m=p.className,f=p.fluid,h=p.animated,C=p.value,b=p.unit,g=p.minValue,N=p.maxValue,v=p.height,V=p.width,y=p.lineHeight,_=p.fontSize,k=p.format,x=p.onChange,L=p.onDrag,B=C;(n||s)&&(B=d);var w=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(b?" "+b:""),0,{unselectable:i.tridentVersion<=4})},S=h&&!n&&!s&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:B,format:k,children:w})||w(k?k(B):B);return(0,o.createComponentVNode)(2,l.Box,{className:(0,a.classes)(["NumberInput",f&&"NumberInput--fluid",m]),minWidth:V,minHeight:v,lineHeight:y,fontSize:_,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((B-g)/(N-g)*100,0,100)+"%"}}),2),S,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:u?undefined:"none",height:v,"line-height":y,"font-size":_},onBlur:function(t){if(u){var n=(0,r.clamp)(t.target.value,g,N);e.setState({editing:!1,value:n}),e.suppressFlicker(),x&&x(t,n),L&&L(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,g,N);return e.setState({editing:!1,value:n}),e.suppressFlicker(),x&&x(t,n),void(L&&L(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},u}(o.Component);t.NumberInput=u,u.defaultHooks=a.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var o=n(0),r=n(10),a=n(17),i=function(e){var t=e.value,n=e.minValue,i=void 0===n?0:n,c=e.maxValue,l=void 0===c?1:c,u=e.ranges,d=void 0===u?{}:u,s=e.content,p=e.children,m=(t-i)/(l-i),f=s!==undefined||p!==undefined,h=e.color;if(!h)for(var C=0,b=Object.keys(d);C=N[0]&&t<=N[1]){h=g;break}}return h||(h="default"),(0,o.createVNode)(1,"div",(0,r.classes)(["ProgressBar","ProgressBar--color--"+h]),[(0,o.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,a.clamp)(m,0,1)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",[f&&s,f&&p,!f&&(0,a.toFixed)(100*m)+"%"],0)],4)};t.ProgressBar=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(0),r=n(10),a=n(21);var i=function(e){var t=e.className,n=e.title,i=e.level,c=void 0===i?1:i,l=e.buttons,u=e.content,d=e.children,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","content","children"]),p=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),m=!(0,r.isFalsy)(u)||!(0,r.isFalsy)(d);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Section","Section--level--"+c,t])},s,{children:[p&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),m&&(0,o.createVNode)(1,"div","Section__content",[u,d],0)]})))};t.Section=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Tab=t.Tabs=void 0;var o=n(0),r=n(10),a=n(21),i=n(119);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={activeTabKey:null},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.getActiveTab=function(){var e=this.state,t=this.props,n=(0,r.normalizeChildren)(t.children);!function(e){var t=e,n=Array.isArray(t),o=0;for(t=n?t:t[Symbol.iterator]();;){var r;if(n){if(o>=t.length)break;r=t[o++]}else{if((o=t.next()).done)break;r=o.value}var a=r;if(!a.props||"Tab"!==a.props.__type__){var i=JSON.stringify(a,null,2);throw new Error(" only accepts children of type .This is what we received: "+i)}}}(n);var o=t.activeTab||e.activeTabKey,a=n.find((function(e){return(e.key||e.props.label)===o}));return a||(a=n[0],o=a&&(a.key||a.props.label)),{tabs:n,activeTab:a,activeTabKey:o}},u.render=function(){var e=this,t=this.props,n=t.className,l=t.vertical,u=t.altSelection,d=(t.children,c(t,["className","vertical","altSelection","children"])),s=this.getActiveTab(),p=s.tabs,m=s.activeTab,f=s.activeTabKey,h=null;return m&&(h=m.props.content||m.props.children),"function"==typeof h&&(h=h(f)),(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Tabs",l&&"Tabs--vertical",n])},d,{children:[(0,o.createVNode)(1,"div","Tabs__tabBox",p.map((function(t){var n=t.props,a=n.className,d=n.label,s=(n.content,n.children,n.onClick),p=n.highlight,m=c(n,["className","label","content","children","onClick","highlight"]),h=t.key||t.props.label,C=t.active||h===f,b="Button--altSelected"+(l?"--right":"--bottom");return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",C&&"Tabs__tab--active",p&&!C&&"color-yellow",u&&C&&b,a]),selected:!u&&C,color:"transparent",onClick:function(n){e.setState({activeTabKey:h}),s&&s(n,t)}},m,{children:d}),h))})),0),(0,o.createVNode)(1,"div","Tabs__content",h||null,0)]})))},l}(o.Component);t.Tabs=l;var u=function(e){return null};t.Tab=u,u.defaultProps={__type__:"Tab"},l.Tab=u},function(e,t,n){"use strict";t.__esModule=!0,t.TitleBar=void 0;var o=n(0),r=n(10),a=n(20),i=n(15),c=n(38),l=n(88),u=function(e){switch(e){case c.UI_INTERACTIVE:return"good";case c.UI_UPDATE:return"average";case c.UI_DISABLED:default:return"bad"}},d=function(e){var t=e.className,n=e.title,c=e.status,d=e.fancy,s=e.onDragStart,p=e.onClose;return(0,o.createVNode)(1,"div",(0,r.classes)(["TitleBar",t]),[(0,o.createComponentVNode)(2,l.Icon,{className:"TitleBar__statusIcon",color:u(c),name:"eye"}),(0,o.createVNode)(1,"div","TitleBar__title",n===n.toLowerCase()?(0,a.toTitleCase)(n):n,0),(0,o.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return d&&s(e)}}),!!d&&(0,o.createVNode)(1,"div","TitleBar__close TitleBar__clickable",i.tridentVersion<=4?"x":"\xd7",0,{onclick:p})],0)};t.TitleBar=d,d.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=void 0;var o=n(0),r=n(18),a=n(21),i=n(10),c=n(15);var l=function(e){var t,n;function i(t){var n;return(n=e.call(this,t)||this).ref=(0,o.createRef)(),n.state={viewBox:[600,200]},n.handleResize=function(){var e=n.ref.current;n.setState({viewBox:[e.offsetWidth,e.offsetHeight]})},n}n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=i.prototype;return c.componentDidMount=function(){window.addEventListener("resize",this.handleResize),this.handleResize()},c.componentWillUnmount=function(){window.removeEventListener("resize",this.handleResize)},c.render=function(){var e=this,t=this.props,n=t.data,i=void 0===n?[]:n,c=t.rangeX,l=t.rangeY,u=t.fillColor,d=void 0===u?"none":u,s=t.strokeColor,p=void 0===s?"#ffffff":s,m=t.strokeWidth,f=void 0===m?2:m,h=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),C=this.state.viewBox,b=function(e,t,n,o){if(0===e.length)return[];var a=(0,r.zipWith)(Math.min).apply(void 0,e),i=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(a[0]=n[0],i[0]=n[1]),o!==undefined&&(a[1]=o[0],i[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,a,i,t)}))(e)}(i,C,c,l);if(b.length>0){var g=b[0],N=b[b.length-1];b.push([C[0]+f,N[1]]),b.push([C[0]+f,-f]),b.push([-f,-f]),b.push([-f,g[1]])}var v=function(e){for(var t="",n=0;n0?"good":"bad",content:i>0?"Earned "+i+" times":"Locked"})],0,{style:{"vertical-align":"top"}})],4,null,t)};t.Score=c;t.Achievements=function(e){var t=(0,r.useBackend)(e).data;return(0,o.createComponentVNode)(2,a.Tabs,{children:[t.categories.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e,children:(0,o.createComponentVNode)(2,a.Box,{as:"Table",children:t.achievements.filter((function(t){return t.category===e})).map((function(e){return e.score?(0,o.createComponentVNode)(2,c,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name):(0,o.createComponentVNode)(2,i,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name)}))})},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"High Scores",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:t.highscore.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e.name,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Score"})]}),Object.keys(e.scores).map((function(n,r){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:r+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:n===t.user_ckey&&"green",textAlign:"center",children:[0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",mr:2}),n,0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.scores[n]})]},n)}))]})},e.name)}))})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(0),r=n(3),a=n(2);t.AiAirlock=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},l=c[i.power.main]||c[0],u=c[i.power.backup]||c[0],d=c[i.shock]||c[0];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:l.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.main,content:"Disrupt",onClick:function(){return n("disrupt-main")}}),children:[i.power.main?"Online":"Offline"," ",i.wires.main_1&&i.wires.main_2?i.power.main_timeleft>0&&"["+i.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.backup,content:"Disrupt",onClick:function(){return n("disrupt-backup")}}),children:[i.power.backup?"Online":"Offline"," ",i.wires.backup_1&&i.wires.backup_2?i.power.backup_timeleft>0&&"["+i.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:d.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(i.wires.shock&&0===i.shock),content:"Restore",onClick:function(){return n("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Temporary",onClick:function(){return n("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Permanent",onClick:function(){return n("shock-perm")}})],4),children:[2===i.shock?"Safe":"Electrified"," ",(i.wires.shock?i.shock_timeleft>0&&"["+i.shock_timeleft+"s]":"[Wires have been cut!]")||-1===i.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.id_scanner?"power-off":"times",content:i.id_scanner?"Enabled":"Disabled",selected:i.id_scanner,disabled:!i.wires.id_scanner,onClick:function(){return n("idscan-toggle")}}),children:!i.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.emergency?"power-off":"times",content:i.emergency?"Enabled":"Disabled",selected:i.emergency,onClick:function(){return n("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.locked?"lock":"unlock",content:i.locked?"Lowered":"Raised",selected:i.locked,disabled:!i.wires.bolts,onClick:function(){return n("bolt-toggle")}}),children:!i.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.lights?"power-off":"times",content:i.lights?"Enabled":"Disabled",selected:i.lights,disabled:!i.wires.lights,onClick:function(){return n("light-toggle")}}),children:!i.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.safe?"power-off":"times",content:i.safe?"Enabled":"Disabled",selected:i.safe,disabled:!i.wires.safe,onClick:function(){return n("safe-toggle")}}),children:!i.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.speed?"power-off":"times",content:i.speed?"Enabled":"Disabled",selected:i.speed,disabled:!i.wires.timing,onClick:function(){return n("speed-toggle")}}),children:!i.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.opened?"sign-out-alt":"sign-in-alt",content:i.opened?"Open":"Closed",selected:i.opened,disabled:i.locked||i.welded,onClick:function(){return n("open-close")}}),children:!(!i.locked&&!i.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),i.locked?"bolted":"",i.locked&&i.welded?" and ":"",i.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(0),r=n(17),a=n(20),i=n(3),c=n(2),l=n(38),u=n(71);t.AirAlarm=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.data,c=a.locked&&!a.siliconUser;return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.InterfaceLockNoticeBox,{siliconUser:a.siliconUser,locked:a.locked,onLockStatusChange:function(){return r("lock")}}),(0,o.createComponentVNode)(2,d,{state:t}),!c&&(0,o.createComponentVNode)(2,p,{state:t})],0)};var d=function(e){var t=(0,i.useBackend)(e).data,n=(t.environment_data||[]).filter((function(e){return e.value>=.01})),a={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},l=a[t.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[n.length>0&&(0,o.createFragment)([n.map((function(e){var t=a[e.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:l.color,children:l.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:t.atmos_alarm||t.fire_alarm?"bad":"good",children:(t.atmos_alarm?"Atmosphere Alarm":t.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!t.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return m}},vents:{title:"Vent Controls",component:function(){return f}},scrubbers:{title:"Scrubber Controls",component:function(){return C}},modes:{title:"Operating Mode",component:function(){return g}},thresholds:{title:"Alarm Thresholds",component:function(){return N}}},p=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.config,l=s[a.screen]||s.home,u=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:"home"!==a.screen&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("tgui:view",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},m=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data,a=r.mode,l=r.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:l?"exclamation-triangle":"exclamation",color:l&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return n(l?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===a?"exclamation-triangle":"exclamation",color:3===a&&"danger",content:"Panic Siphon",onClick:function(){return n("mode",{mode:3===a?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return n("tgui:view",{screen:"vents"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return n("tgui:view",{screen:"scrubbers"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return n("tgui:view",{screen:"modes"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return n("tgui:view",{screen:"thresholds"})}})],4)},f=function(e){var t=e.state,n=(0,i.useBackend)(e).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},h=function(e){var t=e.id_tag,n=e.long_name,r=e.power,l=e.checks,u=e.excheck,d=e.incheck,s=e.direction,p=e.external,m=e.internal,f=e.extdefault,h=e.intdefault,C=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(n),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:r?"power-off":"times",selected:r,content:r?"On":"Off",onClick:function(){return C("power",{id_tag:t,val:Number(!r)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:"release"===s?"Pressurizing":"Releasing"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:d,onClick:function(){return C("incheck",{id_tag:t,val:l})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:u,onClick:function(){return C("excheck",{id_tag:t,val:l})}})]}),!!d&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(m),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_internal_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:h,content:"Reset",onClick:function(){return C("reset_internal_pressure",{id_tag:t})}})]}),!!u&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(p),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_external_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:f,content:"Reset",onClick:function(){return C("reset_external_pressure",{id_tag:t})}})]})]})})},C=function(e){var t=e.state,n=(0,i.useBackend)(e).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,b,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},b=function(e){var t=e.long_name,n=e.power,r=e.scrubbing,u=e.id_tag,d=e.widenet,s=e.filter_types,p=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(t),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:n?"power-off":"times",content:n?"On":"Off",selected:n,onClick:function(){return p("power",{id_tag:u,val:Number(!n)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:r?"filter":"sign-in-alt",color:r||"danger",content:r?"Scrubbing":"Siphoning",onClick:function(){return p("scrubbing",{id_tag:u,val:Number(!r)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:d?"expand":"compress",selected:d,content:d?"Expanded range":"Normal range",onClick:function(){return p("widenet",{id_tag:u,val:Number(!d)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:r&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,l.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return p("toggle_filter",{id_tag:u,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})},g=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data.modes;return r&&0!==r.length?r.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return n("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},N=function(e){var t=(0,i.useBackend)(e),n=t.act,a=t.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,a.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return n("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AiRestorer=void 0;var o=n(0),r=n(3),a=n(2);t.AiRestorer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.AI_present,l=i.error,u=i.name,d=i.laws,s=i.isDead,p=i.restoring,m=i.health,f=i.ejectable;return(0,o.createFragment)([l&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:l}),!!f&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:c?u:"----------",disabled:!c,onClick:function(){return n("PRG_eject")}}),!!c&&(0,o.createComponentVNode)(2,a.Section,{title:f?"System Status":u,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:s?"bad":"good",children:s?"Nonfunctional":"Functional"}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})})}),!!p&&(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"plus",content:"Begin Reconstruction",disabled:p,mt:1,onClick:function(){return n("PRG_beginReconstruction")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",level:2,children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{className:"candystripe",children:e},e)}))})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(0),r=n(3),a=n(2),i=n(167);t.AirlockElectronics=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.regions||[],u=c.accesses||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Main",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access Required",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.oneAccess?"unlock":"lock",content:c.oneAccess?"One":"All",onClick:function(){return n("one_access")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unrestricted Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:1&c.unres_direction?"check-square-o":"square-o",content:"North",selected:1&c.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"1"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:2&c.unres_direction?"check-square-o":"square-o",content:"East",selected:2&c.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"2"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:4&c.unres_direction?"check-square-o":"square-o",content:"South",selected:4&c.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"4"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:8&c.unres_direction?"check-square-o":"square-o",content:"West",selected:8&c.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"8"})}})]})]})}),(0,o.createComponentVNode)(2,i.AccessList,{accesses:l,selectedList:u,accessMod:function(e){return n("set",{access:e})},grantAll:function(){return n("grant_all")},denyAll:function(){return n("clear_all")},grantDep:function(e){return n("grant_region",{region:e})},denyDep:function(e){return n("deny_region",{region:e})}})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(0),r=n(3),a=n(2),i=n(71);t.Apc=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},s=u[c.externalPower]||u[0],p=u[c.chargingStatus]||u[0],m=c.powerChannels||[],f=d[c.malfStatus]||d[0],h=c.powerCellStatus/100;return c.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",c.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return n("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:c.siliconUser,locked:c.locked,onLockStatusChange:function(){return n("lock")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",content:c.isOperating?"On":"Off",selected:c.isOperating&&!l,disabled:l,onClick:function(){return n("breaker")}}),children:["[ ",s.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.chargeMode?"sync":"close",content:c.chargeMode?"Auto":"Off",disabled:l,onClick:function(){return n("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[m.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!l&&(1===e.status||3===e.status),disabled:l,onClick:function(){return n("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!l&&2===e.status,disabled:l,onClick:function(){return n("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!l&&0===e.status,disabled:l,onClick:function(){return n("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,c.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!c.siliconUser&&(0,o.createFragment)([!!c.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:f.icon,content:f.content,color:"bad",onClick:function(){return n(f.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return n("overload")}})],0),children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.coverLocked?"lock":"unlock",content:c.coverLocked?"Engaged":"Disengaged",disabled:l,onClick:function(){return n("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.emergencyLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.nightshiftLights?"Enabled":"Disabled",onClick:function(){return n("toggle_nightshift")}})})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(0),r=n(3),a=n(2);t.AtmosAlertConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.priority||[],l=i.minor||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[c.length>0?c.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),l.length>0?l.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16)],0)})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(0),r=n(18),a=n(17),i=n(3),c=n(2);t.AtmosControlConsole=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=l.sensors||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:!!l.tank&&u[0].long_name,children:u.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,c.Section,{title:!l.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),l.tank&&(0,o.createComponentVNode)(2,c.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"undo",content:"Reconnect",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.inputting?"power-off":"times",content:l.inputting?"Injecting":"Off",selected:l.inputting,onClick:function(){return n("input")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:l.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return n("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.outputting?"power-off":"times",content:l.outputting?"Open":"Closed",selected:l.outputting,onClick:function(){return n("output")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:parseFloat(l.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return n("pressure",{pressure:t})}})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(0),r=n(3),a=n(2),i=n(38);t.AtmosFilter=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.filter_types||[];return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(c.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:c.rate===c.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,i.getGasLabel)(e.id,e.name),onClick:function(){return n("filter",{mode:e.id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(0),r=n(3),a=n(2);t.AtmosMixer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.set_pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node2",{concentration:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(0),r=n(3),a=n(2);t.AtmosPump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),i.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.rate===i.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(0),r=n(3),a=n(2);t.BankMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.current_balance,l=i.siphoning,u=i.station_name;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:u+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"times":"sync",content:l?"Stop Siphoning":"Siphon Credits",selected:l,onClick:function(){return n(l?"halt":"siphon")}}),children:c+" cr"})})}),(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Authorized personnel only"})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BlackmarketUplink=void 0;var o=n(0),r=n(18),a=n(3),i=n(2);t.BlackmarketUplink=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.categories||[],u=c.delivery_methods||[],d=c.delivery_method_description||[],s=c.markets||{},p=c.items||{},m=!!c.buying&&(0,o.createComponentVNode)(2,i.Dimmer,{textAlign:"center",children:[(0,o.createComponentVNode)(2,i.Grid,{mt:20,children:(0,r.map)((function(e){var t=e.name;return"LTSRBT"!==t||c.ltsrbt_built?(0,o.createComponentVNode)(2,i.Grid.Column,{textAlign:"center",position:"relative",children:[(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Box,{fontSize:"30px",children:t}),(0,o.createComponentVNode)(2,i.Box,{mt:1,children:d[t]})]}),(0,o.createComponentVNode)(2,i.Button,{content:e.price+" cr",mt:1,disabled:c.moneyc.money,onClick:function(){return n("select",{item:e.id})}})})]}),(0,o.createComponentVNode)(2,i.Table.Row,{children:(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.desc})})]},e.name)}))},e)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.BluespaceArtillery=void 0;var o=n(0),r=n(3),a=n(2);t.BluespaceArtillery=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.notice,l=i.connected,u=i.unlocked,d=i.target;return(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c}),l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"crosshairs",disabled:!u,onClick:function(){return n("recalibrate")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"average":"bad",fontSize:"25px",children:d||"No Target Set"})}),(0,o.createComponentVNode)(2,a.Section,{children:u?(0,o.createComponentVNode)(2,a.Box,{style:{margin:"auto"},children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"FIRE",color:"bad",disabled:!d,fontSize:"30px",textAlign:"center",lineHeight:"46px",onClick:function(){return n("fire")}})}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"bad",fontSize:"18px",children:"Bluespace artillery is currently locked."}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"Awaiting authorization via keycard reader from at minimum two station heads."})],4)})],4):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",content:"Complete Deployment",onClick:function(){return n("build")}})})})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(0),r=(n(20),n(15)),a=n(2);t.Bepis=function(e){var t=e.state,n=t.config,i=t.data,c=n.ref,l=i.amount;return(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.manual_power?"Off":"On",selected:!i.manual_power,onClick:function(){return(0,r.act)(c,"toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return(0,r.act)(c,"account_reset")}}),children:["Console is currently being operated by ",i.account_owner?i.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:i.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[i.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:i.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:i.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return(0,r.act)(c,"amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===i.manual_power||1===i.silicon_check,onClick:function(){return(0,r.act)(c,"deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",i.mean_value]}),(0,o.createComponentVNode)(2,a.Box,{children:["Current chance of Success: Est. ",i.success_estimate,"%"]}),i.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"begin_experiment")},content:"Begin Testing"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BorgPanel=void 0;var o=n(0),r=n(3),a=n(2);t.BorgPanel=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.borg||{},l=i.cell||{},u=l.charge/l.maxcharge,d=i.channels||[],s=i.modules||[],p=i.upgrades||[],m=i.ais||[],f=i.laws||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:c.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){return n("rename")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.emagged?"check-square-o":"square-o",content:"Emagged",selected:c.emagged,onClick:function(){return n("toggle_emagged")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.lockdown?"check-square-o":"square-o",content:"Locked Down",selected:c.lockdown,onClick:function(){return n("toggle_lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.scrambledcodes?"check-square-o":"square-o",content:"Scrambled Codes",selected:c.scrambledcodes,onClick:function(){return n("toggle_scrambledcodes")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:[l.missing?(0,o.createVNode)(1,"span","color-bad","No cell installed",16):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,content:l.charge+" / "+l.maxcharge}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("set_charge")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Change",onClick:function(){return n("change_cell")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Remove",color:"bad",onClick:function(){return n("remove_cell")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radio Channels",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_radio",{channel:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:c.active_module===e.type?"check-square-o":"square-o",content:e.name,selected:c.active_module===e.type,onClick:function(){return n("setmodule",{module:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_upgrade",{upgrade:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"check-square-o":"square-o",content:e.name,selected:e.connected,onClick:function(){return n("slavetoai",{slavetoai:e.ref})}},e.ref)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.lawupdate?"check-square-o":"square-o",content:"Lawsync",selected:c.lawupdate,onClick:function(){return n("toggle_lawupdate")}}),children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigTimer=void 0;var o=n(0),r=n(3),a=n(2);t.BrigTimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Cell Timer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:i.timing?"Stop":"Start",selected:i.timing,onClick:function(){return n(i.timing?"stop":"start")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:i.flash_charging?"Recharging":"Flash",disabled:i.flash_charging,onClick:function(){return n("flash")}})],4),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("time",{adjust:-600})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("time",{adjust:-100})}})," ",String(i.minutes).padStart(2,"0"),":",String(i.seconds).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("time",{adjust:100})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("time",{adjust:600})}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Short",onClick:function(){return n("preset",{preset:"short"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Medium",onClick:function(){return n("preset",{preset:"medium"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Long",onClick:function(){return n("preset",{preset:"long"})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Canister=void 0;var o=n(0),r=n(3),a=n(2);t.Canister=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:["The regulator ",i.hasHoldingTank?"is":"is not"," connected to a tank."]}),(0,o.createComponentVNode)(2,a.Section,{title:"Canister",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Relabel",onClick:function(){return n("relabel")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.tankPressure})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:i.portConnected?"good":"average",content:i.portConnected?"Connected":"Not Connected"}),!!i.isPrototype&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.restricted?"lock":"unlock",color:"caution",content:i.restricted?"Restricted to Engineering":"Public",onClick:function(){return n("restricted")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Valve",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.releasePressure/(i.maxReleasePressure-i.minReleasePressure),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.releasePressure})," kPa"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"undo",disabled:i.releasePressure===i.defaultReleasePressure,content:"Reset",onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:i.releasePressure<=i.minReleasePressure,content:"Min",onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("pressure",{pressure:"input"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:i.releasePressure>=i.maxReleasePressure,content:"Max",onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Valve",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.valveOpen?"unlock":"lock",color:i.valveOpen?i.hasHoldingTank?"caution":"danger":null,content:i.valveOpen?"Open":"Closed",onClick:function(){return n("valve")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",buttons:!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",color:i.valveOpen&&"danger",content:"Eject",onClick:function(){return n("eject")}}),children:[!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:i.holdingTank.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.holdingTank.tankPressure})," kPa"]})]}),!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Holding Tank"})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Canvas=void 0;var o=n(0),r=n(3),a=n(2);n(10);var i=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).canvasRef=(0,o.createRef)(),n.onCVClick=t.onCanvasClick,n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var a=r.prototype;return a.componentDidMount=function(){this.drawCanvas(this.props)},a.componentDidUpdate=function(){this.drawCanvas(this.props)},a.drawCanvas=function(e){var t=this.canvasRef.current.getContext("2d"),n=e.value,o=n.length;if(o){var r=n[0].length,a=Math.round(this.canvasRef.current.width/o),i=Math.round(this.canvasRef.current.height/r);t.save(),t.scale(a,i);for(var c=0;c=0||(r[n]=e[n]);return r}(t,["res","value","px_per_unit"]),c=n.length*a,l=0!==c?n[0].length*a:0;return(0,o.normalizeProps)((0,o.createVNode)(1,"canvas",null,"Canvas failed to render.",16,Object.assign({width:c||300,height:l||300},i,{onClick:function(t){return e.clickwrapper(t)}}),null,this.canvasRef))},r}(o.Component);t.Canvas=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data;return(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,i,{value:c.grid,onCanvasClick:function(e,t){return n("paint",{x:e,y:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:[!c.finalized&&(0,o.createComponentVNode)(2,a.Button.Confirm,{onClick:function(){return n("finalize")},content:"Finalize"}),c.name]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=t.Cargo=void 0;var o=n(0),r=n(18),a=n(15),i=n(2),c=n(71);t.Cargo=function(e){var t=e.state,n=t.config,r=t.data,c=n.ref,s=r.supplies||{},p=r.requests||[],m=r.cart||[],f=m.reduce((function(e,t){return e+t.cost}),0),h=!r.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:[0===m.length&&"Cart is empty",1===m.length&&"1 item",m.length>=2&&m.length+" items"," ",f>0&&"("+f+" cr)"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return(0,a.act)(c,"clear")}})],4);return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle",children:r.docked&&!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{content:r.location,onClick:function(){return(0,a.act)(c,"send")}})||r.location}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"CentCom Message",children:r.message}),r.loan&&!r.requestonly?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Loan",children:r.loan_dispatched?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Loaned to Centcom"}):(0,o.createComponentVNode)(2,i.Button,{content:"Loan Shuttle",disabled:!(r.away&&r.docked),onClick:function(){return(0,a.act)(c,"loan")}})}):""]})}),(0,o.createComponentVNode)(2,i.Tabs,{mt:2,children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Catalog",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Catalog",buttons:(0,o.createFragment)([h,(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:r.self_paid?"check-square-o":"square-o",content:"Buy Privately",selected:r.self_paid,onClick:function(){return(0,a.act)(c,"toggleprivate")}})],0),children:(0,o.createComponentVNode)(2,l,{state:t,supplies:s})})}},"catalog"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Requests ("+p.length+")",icon:"envelope",highlight:p.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Active Requests",buttons:!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return(0,a.act)(c,"denyall")}}),children:(0,o.createComponentVNode)(2,u,{state:t,requests:p})})}},"requests"),!r.requestonly&&(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Checkout ("+m.length+")",icon:"shopping-cart",highlight:m.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Current Cart",buttons:h,children:(0,o.createComponentVNode)(2,d,{state:t,cart:m})})}},"cart")]})],4)};var l=function(e){var t=e.state,n=e.supplies,c=t.config,l=t.data,u=c.ref,d=function(e){var t=n[e].packs;return(0,o.createVNode)(1,"table","LabeledList",t.map((function(e){return(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[e.name,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.small_item&&(0,o.createFragment)([(0,o.createTextVNode)("Small Item")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.access&&(0,o.createFragment)([(0,o.createTextVNode)("Restrictions Apply")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:(l.self_paid?Math.round(1.1*e.cost):e.cost)+" credits",tooltip:e.desc,tooltipPosition:"left",onClick:function(){return(0,a.act)(u,"add",{id:e.id})}}),2)],4,null,e.name)})),0)};return(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e){var t=e.name;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:t,children:d},t)}))(n)})},u=function(e){var t=e.state,n=e.requests,r=t.config,c=t.data,l=r.ref;return 0===n.length?(0,o.createComponentVNode)(2,i.Box,{color:"good",children:"No Requests"}):(0,o.createVNode)(1,"table","LabeledList",n.map((function(e){return(0,o.createFragment)([(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[(0,o.createTextVNode)("#"),e.id,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__content",e.object,0),(0,o.createVNode)(1,"td","LabeledList__cell",[(0,o.createTextVNode)("By "),(0,o.createVNode)(1,"b",null,e.orderer,0)],4),(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createVNode)(1,"i",null,e.reason,0),2),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",[e.cost,(0,o.createTextVNode)(" credits"),(0,o.createTextVNode)(" "),!c.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"check",color:"good",onClick:function(){return(0,a.act)(l,"approve",{id:e.id})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"bad",onClick:function(){return(0,a.act)(l,"deny",{id:e.id})}})],4)],0)],4)],4,e.id)})),0)},d=function(e){var t=e.state,n=e.cart,r=t.config,c=t.data,l=r.ref;return(0,o.createFragment)([0===n.length&&"Nothing in cart",n.length>0&&(0,o.createComponentVNode)(2,i.LabeledList,{children:n.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{className:"candystripe",label:"#"+e.id,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:2,children:[!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)," ",e.cost," credits"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus",onClick:function(){return(0,a.act)(l,"remove",{id:e.id})}})],4),children:e.object},e.id)}))}),n.length>0&&!c.requestonly&&(0,o.createComponentVNode)(2,i.Box,{mt:2,children:1===c.away&&1===c.docked&&(0,o.createComponentVNode)(2,i.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return(0,a.act)(l,"send")}})||(0,o.createComponentVNode)(2,i.Box,{opacity:.5,children:["Shuttle in ",c.location,"."]})})],0)};t.CargoExpress=function(e){var t=e.state,n=t.config,r=t.data,u=n.ref,d=r.supplies||{};return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{siliconUser:r.siliconUser,locked:r.locked,onLockStatusChange:function(){return(0,a.act)(u,"lock")},accessText:"a QM-level ID card"}),!r.locked&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Cargo Bay",selected:!r.usingBeacon,onClick:function(){return(0,a.act)(u,"LZCargo")}}),(0,o.createComponentVNode)(2,i.Button,{selected:r.usingBeacon,disabled:!r.hasBeacon,onClick:function(){return(0,a.act)(u,"LZBeacon")},children:[r.beaconzone," (",r.beaconName,")"]}),(0,o.createComponentVNode)(2,i.Button,{content:r.printMsg,disabled:!r.canBuyBeacon,onClick:function(){return(0,a.act)(u,"printBeacon")}})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Notice",children:r.message})]})}),(0,o.createComponentVNode)(2,l,{state:t,supplies:d})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoHoldTerminal=void 0;var o=n(0),r=n(3),a=n(2);t.CargoHoldTerminal=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.points,l=i.pad,u=i.sending,d=i.status_report;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Cargo Value",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(c)})," credits"]})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Recalculate Value",disabled:!l,onClick:function(){return n("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"times":"arrow-up",content:u?"Stop Sending":"Send Goods",selected:u,disabled:!l,onClick:function(){return n(u?"stop":"send")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:l?"good":"bad",children:l?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:d})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(0),r=n(3),a=n(2);t.CellularEmporium=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.abilities;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!i.can_readapt,onClick:function(){return n("readapt")}}),children:i.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return n("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncher=void 0;var o=n(0),r=(n(20),n(3)),a=n(2);t.CentcomPodLauncher=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:"To use this, simply spawn the atoms you want in one of the five Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."}),(0,o.createComponentVNode)(2,a.Section,{title:"Centcom Pod Customization (To be used against Helen Weinstein)",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supply Bay",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bay #1",selected:1===i.bayNumber,onClick:function(){return n("bay1")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #2",selected:2===i.bayNumber,onClick:function(){return n("bay2")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #3",selected:3===i.bayNumber,onClick:function(){return n("bay3")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #4",selected:4===i.bayNumber,onClick:function(){return n("bay4")}}),(0,o.createComponentVNode)(2,a.Button,{content:"ERT Bay",selected:5===i.bayNumber,tooltip:"This bay is located on the western edge of CentCom. Its the\nglass room directly west of where ERT spawn, and south of the\nCentCom ferry. Useful for launching ERT/Deathsquads/etc. onto\nthe station via drop pods.",onClick:function(){return n("bay5")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport to",children:[(0,o.createComponentVNode)(2,a.Button,{content:i.bay,onClick:function(){return n("teleportCentcom")}}),(0,o.createComponentVNode)(2,a.Button,{content:i.oldArea?i.oldArea:"Where you were",disabled:!i.oldArea,onClick:function(){return n("teleportBack")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Item Mode",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Clone Items",selected:i.launchClone,tooltip:"Choosing this will create a duplicate of the item to be\nlaunched in Centcom, allowing you to send one type of item\nmultiple times. Either way, the atoms are forceMoved into\nthe supplypod after it lands (but before it opens).",onClick:function(){return n("launchClone")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random Items",selected:i.launchRandomItem,tooltip:"Choosing this will pick a random item from the selected turf\ninstead of the entire turfs contents. Best combined with\nsingle/random turf.",onClick:function(){return n("launchRandomItem")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Launch style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Ordered",selected:1===i.launchChoice,tooltip:'Instead of launching everything in the bay at once, this\nwill "scan" things (one turf-full at a time) in order, left\nto right and top to bottom. undoing will reset the "scanner"\nto the top-leftmost position.',onClick:function(){return n("launchOrdered")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random Turf",selected:2===i.launchChoice,tooltip:"Instead of launching everything in the bay at once, this\nwill launch one random turf of items at a time.",onClick:function(){return n("launchRandomTurf")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosion",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Size",selected:1===i.explosionChoice,tooltip:"This will cause an explosion of whatever size you like\n(including flame range) to occur as soon as the supplypod\nlands. Dont worry, supply-pods are explosion-proof!",onClick:function(){return n("explosionCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Adminbus",selected:2===i.explosionChoice,tooltip:"This will cause a maxcap explosion (dependent on server\nconfig) to occur as soon as the supplypod lands. Dont worry,\nsupply-pods are explosion-proof!",onClick:function(){return n("explosionBus")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Damage",selected:1===i.damageChoice,tooltip:"Anyone caught under the pod when it lands will be dealt\nthis amount of brute damage. Sucks to be them!",onClick:function(){return n("damageCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gib",selected:2===i.damageChoice,tooltip:"This will attempt to gib any mob caught under the pod when\nit lands, as well as dealing a nice 5000 brute damage. Ya\nknow, just to be sure!",onClick:function(){return n("damageGib")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Effects",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Stun",selected:i.effectStun,tooltip:"Anyone who is on the turf when the supplypod is launched\nwill be stunned until the supplypod lands. They cant get\naway that easy!",onClick:function(){return n("effectStun")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delimb",selected:i.effectLimb,tooltip:"This will cause anyone caught under the pod to lose a limb,\nexcluding their head.",onClick:function(){return n("effectLimb")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Yeet Organs",selected:i.effectOrgans,tooltip:"This will cause anyone caught under the pod to lose all\ntheir limbs and organs in a spectacular fashion.",onClick:function(){return n("effectOrgans")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Movement",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bluespace",selected:i.effectBluespace,tooltip:"Gives the supplypod an advanced Bluespace Recyling Device.\nAfter opening, the supplypod will be warped directly to the\nsurface of a nearby NT-designated trash planet (/r/ss13).",onClick:function(){return n("effectBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stealth",selected:i.effectStealth,tooltip:'This hides the red target icon from appearing when you\nlaunch the supplypod. Combos well with the "Invisible"\nstyle. Sneak attack, go!',onClick:function(){return n("effectStealth")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Quiet",selected:i.effectQuiet,tooltip:"This will keep the supplypod from making any sounds, except\nfor those specifically set by admins in the Sound section.",onClick:function(){return n("effectQuiet")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reverse Mode",selected:i.effectReverse,tooltip:"This pod will not send any items. Instead, after landing,\nthe supplypod will close (similar to a normal closet closing),\nand then launch back to the right centcom bay to drop off any\nnew contents.",onClick:function(){return n("effectReverse")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile Mode",selected:i.effectMissile,tooltip:"This pod will not send any items. Instead, it will immediately\ndelete after landing (Similar visually to setting openDelay\n& departDelay to 0, but this looks nicer). Useful if you just\nwanna fuck some shit up. Combos well with the Missile style.",onClick:function(){return n("effectMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Any Descent Angle",selected:i.effectCircle,tooltip:"This will make the supplypod come in from any angle. Im not\nsure why this feature exists, but here it is.",onClick:function(){return n("effectCircle")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Machine Gun Mode",selected:i.effectBurst,tooltip:"This will make each click launch 5 supplypods inaccuratly\naround the target turf (a 3x3 area). Combos well with the\nMissile Mode if you dont want shit lying everywhere after.",onClick:function(){return n("effectBurst")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Specific Target",selected:i.effectTarget,tooltip:"This will make the supplypod target a specific atom, instead\nof the mouses position. Smiting does this automatically!",onClick:function(){return n("effectTarget")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name/Desc",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Name/Desc",selected:i.effectName,tooltip:"Allows you to add a custom name and description.",onClick:function(){return n("effectName")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Alert Ghosts",selected:i.effectAnnounce,tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb\nshit is aboutta come outta the pod.",onClick:function(){return n("effectAnnounce")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sound",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Sound",selected:i.fallingSound,tooltip:"Choose a sound to play as the pod falls. Note that for this\nto work right you should know the exact length of the sound,\nin seconds.",onClick:function(){return n("fallSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Sound",selected:i.landingSound,tooltip:"Choose a sound to play when the pod lands.",onClick:function(){return n("landingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Sound",selected:i.openingSound,tooltip:"Choose a sound to play when the pod opens.",onClick:function(){return n("openingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Sound",selected:i.leavingSound,tooltip:"Choose a sound to play when the pod departs (whether that be\ndelection in the case of a bluespace pod, or leaving for\ncentcom for a reversing pod).",onClick:function(){return n("leavingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Admin Sound Volume",selected:i.soundVolume,tooltip:"Choose the volume for the sound to play at. Default values\nare between 1 and 100, but hey, do whatever. Im a tooltip,\nnot a cop.",onClick:function(){return n("soundVolume")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timers",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Duration",selected:4!==i.fallDuration,tooltip:"Set how long the animation for the pod falling lasts. Create\ndramatic, slow falling pods!",onClick:function(){return n("fallDuration")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Time",selected:20!==i.landingDelay,tooltip:"Choose the amount of time it takes for the supplypod to hit\nthe station. By default this value is 0.5 seconds.",onClick:function(){return n("landingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Time",selected:30!==i.openingDelay,tooltip:"Choose the amount of time it takes for the supplypod to open\nafter landing. Useful for giving whatevers inside the pod a\nnice dramatic entrance! By default this value is 3 seconds.",onClick:function(){return n("openingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Time",selected:30!==i.departureDelay,tooltip:"Choose the amount of time it takes for the supplypod to leave\nafter landing. By default this value is 3 seconds.",onClick:function(){return n("departureDelay")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.styleChoice,tooltip:"Same color scheme as the normal station-used supplypods",onClick:function(){return n("styleStandard")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.styleChoice,tooltip:"The same as the stations upgraded blue-and-white\nBluespace Supplypods",onClick:function(){return n("styleBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate",selected:4===i.styleChoice,tooltip:"A menacing black and blood-red. Great for sending meme-ops\nin style!",onClick:function(){return n("styleSyndie")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Deathsquad",selected:5===i.styleChoice,tooltip:"A menacing black and dark blue. Great for sending deathsquads\nin style!",onClick:function(){return n("styleBlue")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cult Pod",selected:6===i.styleChoice,tooltip:"A blood and rune covered cult pod!",onClick:function(){return n("styleCult")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile",selected:7===i.styleChoice,tooltip:"A large missile. Combos well with a missile mode, so the\nmissile doesnt stick around after landing.",onClick:function(){return n("styleMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate Missile",selected:8===i.styleChoice,tooltip:"A large blood-red missile. Combos well with missile mode,\nso the missile doesnt stick around after landing.",onClick:function(){return n("styleSMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Supply Crate",selected:9===i.styleChoice,tooltip:"A large, dark-green military supply crate.",onClick:function(){return n("styleBox")}}),(0,o.createComponentVNode)(2,a.Button,{content:"HONK",selected:10===i.styleChoice,tooltip:"A colorful, clown inspired look.",onClick:function(){return n("styleHONK")}}),(0,o.createComponentVNode)(2,a.Button,{content:"~Fruit",selected:11===i.styleChoice,tooltip:"For when an orange is angry",onClick:function(){return n("styleFruit")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Invisible",selected:12===i.styleChoice,tooltip:'Makes the supplypod invisible! Useful for when you want to\nuse this feature with a gateway or something. Combos well\nwith the "Stealth" and "Quiet Landing" effects.',onClick:function(){return n("styleInvisible")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gondola",selected:13===i.styleChoice,tooltip:"This gondola can control when he wants to deliver his supplies\nif he has a smart enough mind, so offer up his body to ghosts\nfor maximum enjoyment. (Make sure to turn off bluespace and\nset a arbitrarily high open-time if you do!",onClick:function(){return n("styleGondola")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Show Contents (See Through Pod)",selected:14===i.styleChoice,tooltip:"By selecting this, the pod will instead look like whatevers\ninside it (as if it were the contents falling by themselves,\nwithout a pod). Useful for launching mechs at the station\nand standing tall as they soar in from the heavens.",onClick:function(){return n("styleSeeThrough")}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i.numObjects+" turfs in "+i.bay,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"undo Pody Bay",tooltip:"Manually undoes the possible things to launch in the\npod bay.",onClick:function(){return n("undo")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Enter Launch Mode",selected:i.giveLauncher,tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN",onClick:function(){return n("giveLauncher")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Selected Bay",color:"bad",tooltip:"This will delete all objs and mobs from the selected bay.",tooltipPosition:"left",onClick:function(){return n("clearBay")}})],4)})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(0),r=n(3),a=n(2);t.ChemAcclimator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[i.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return n("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:i.target_temperature,stepPixelSize:2,onChange:function(e,t){n("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.enabled?"On":"Off",selected:i.enabled,onClick:function(){return n("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.max_volume,unit:"u",width:"50px",minValue:i.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return n("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:i.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:i.emptying?"Emptying":"Filling"})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(0),r=n(3),a=n(2);t.ChemDebugSynthesizer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.amount,l=i.beakerCurrentVolume,u=i.beakerMaxVolume,d=i.isBeakerLoaded,s=i.beakerContents,p=void 0===s?[]:s;return(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",minValue:1,maxValue:u,step:1,stepPixelSize:2,onChange:function(e,t){return n("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return n("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return n("makecup")}}),children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})," / "+u+" u"]}),p.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(0),r=n(17),a=n(20),i=n(3),c=n(2);t.ChemDispenser=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=!!l.recordingRecipe,d=Object.keys(l.recipes).map((function(e){return{name:e,contents:l.recipes[e]}})),s=l.beakerTransferAmounts||[],p=u&&Object.keys(l.recordingRecipe).map((function(e){return{id:e,name:(0,a.toTitleCase)(e.replace(/_/," ")),volume:l.recordingRecipe[e]}}))||l.beakerContents||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Status",buttons:u&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,color:"red",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"circle",mr:1}),"Recording"]}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:l.energy/l.maxEnergy,content:(0,r.toFixed)(l.energy)+" units"})})})}),(0,o.createComponentVNode)(2,c.Section,{title:"Recipes",buttons:(0,o.createFragment)([!u&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,children:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",content:"Clear recipes",onClick:function(){return n("clear_recipes")}})}),!u&&(0,o.createComponentVNode)(2,c.Button,{icon:"circle",disabled:!l.isBeakerLoaded,content:"Record",onClick:function(){return n("record_recipe")}}),u&&(0,o.createComponentVNode)(2,c.Button,{icon:"ban",color:"transparent",content:"Discard",onClick:function(){return n("cancel_recording")}}),u&&(0,o.createComponentVNode)(2,c.Button,{icon:"save",color:"green",content:"Save",onClick:function(){return n("save_recording")}})],0),children:(0,o.createComponentVNode)(2,c.Box,{mr:-1,children:[d.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",width:"129.5px",lineHeight:"21px",content:e.name,onClick:function(){return n("dispense_recipe",{recipe:e.name})}},e.name)})),0===d.length&&(0,o.createComponentVNode)(2,c.Box,{color:"light-gray",children:"No recipes."})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Dispense",buttons:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"plus",selected:e===l.amount,content:e,onClick:function(){return n("amount",{target:e})}},e)})),children:(0,o.createComponentVNode)(2,c.Box,{mr:-1,children:l.chemicals.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",width:"129.5px",lineHeight:"21px",content:e.title,onClick:function(){return n("dispense",{reagent:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"minus",disabled:u,content:e,onClick:function(){return n("remove",{amount:e})}},e)})),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Beaker",buttons:!!l.isBeakerLoaded&&(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",disabled:!l.isBeakerLoaded,onClick:function(){return n("eject")}}),children:(u?"Virtual beaker":l.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.AnimatedNumber,{initial:0,value:l.beakerCurrentVolume}),(0,o.createTextVNode)("/"),l.beakerMaxVolume,(0,o.createTextVNode)(" units")],0))||"No beaker"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Contents",children:[(0,o.createComponentVNode)(2,c.Box,{color:"label",children:l.isBeakerLoaded||u?0===p.length&&"Nothing":"N/A"}),p.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{color:"label",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{initial:0,value:e.volume})," ","units of ",e.name]},e.name)}))]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(0),r=n(3),a=n(2);var i=function(e){var t=(0,r.useBackend)(e).act,n=e.title,i=e.list,c=e.reagentName,l=e.onReagentInput,u=n.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:n,minHeight:40,ml:.5,mr:.5,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return l(t)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return t("add",{which:u,name:c})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return t("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={leftReagentName:"",rightReagentName:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setLeftReagentName=function(e){this.setState({leftReagentName:e})},c.setRightReagentName=function(e){this.setState({rightReagentName:e})},c.render=function(){var e=this,t=this.props.state,n=t.data,r=n.left,c=void 0===r?[]:r,l=n.right,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Left",list:c,reagentName:this.state.leftReagentName,onReagentInput:function(t){return e.setLeftReagentName(t)},state:t})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Right",list:u,reagentName:this.state.rightReagentName,onReagentInput:function(t){return e.setRightReagentName(t)},state:t})})]})},r}(o.Component);t.ChemFilter=c},function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(0),r=n(17),a=n(3),i=n(2),c=n(168);t.ChemHeater=function(e){var t=(0,a.useBackend)(e),n=t.act,l=t.data,u=l.targetTemp,d=l.isActive,s=l.isBeakerLoaded,p=l.currentTemp,m=l.beakerCurrentVolume,f=l.beakerMaxVolume,h=l.beakerContents,C=void 0===h?[]:h;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Thermostat",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,i.NumberInput,{width:"65px",unit:"K",step:2,stepPixelSize:1,value:(0,r.round)(u),minValue:0,maxValue:1e3,onDrag:function(e,t){return n("temperature",{target:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Reading",children:(0,o.createComponentVNode)(2,i.Box,{width:"60px",textAlign:"right",children:s&&(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:p,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:!!s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:2,children:[m," / ",f," units"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})],4),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:s,beakerContents:C})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(0),r=n(15),a=n(2);t.ChemMaster=function(e){var t=e.state,n=t.config,l=t.data,s=n.ref,p=l.screen,m=l.beakerContents,f=void 0===m?[]:m,h=l.bufferContents,C=void 0===h?[]:h,b=l.beakerCurrentVolume,g=l.beakerMaxVolume,N=l.isBeakerLoaded,v=l.isPillBottleLoaded,V=l.pillBottleCurrentAmount,y=l.pillBottleMaxAmount;return"analyze"===p?(0,o.createComponentVNode)(2,d,{state:t}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:!!l.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:b,initial:0})," / "+g+" units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return(0,r.act)(s,"eject")}})],4),children:[!N&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"No beaker loaded."}),!!N&&0===f.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Beaker is empty."}),(0,o.createComponentVNode)(2,i,{children:f.map((function(e){return(0,o.createComponentVNode)(2,c,{state:t,chemical:e,transferTo:"buffer"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Buffer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Mode:"}),(0,o.createComponentVNode)(2,a.Button,{color:l.mode?"good":"bad",icon:l.mode?"exchange-alt":"times",content:l.mode?"Transfer":"Destroy",onClick:function(){return(0,r.act)(s,"toggleMode")}})],4),children:[0===C.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Buffer is empty."}),(0,o.createComponentVNode)(2,i,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c,{state:t,chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Packaging",children:(0,o.createComponentVNode)(2,u,{state:t})}),!!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Pill Bottle",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[V," / ",y," pills"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return(0,r.act)(s,"ejectPillBottle")}})],4)})],0)};var i=a.Table,c=function(e){var t=e.state,n=e.chemical,i=e.transferTo,c=t.config.ref;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:n.volume,initial:0})," units of "+n.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"1",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"5",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:5,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"10",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:10,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"All",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:1e3,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"ellipsis-h",title:"Custom amount",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:-1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"question",title:"Analyze",onClick:function(){return(0,r.act)(c,"analyze",{id:n.id})}})]})]},n.id)},l=function(e){var t=e.label,n=e.amountUnit,r=e.amount,i=e.onChangeAmount,c=e.onCreate,l=e.sideNote;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:[(0,o.createComponentVNode)(2,a.NumberInput,{width:14,unit:n,step:1,stepPixelSize:15,value:r,minValue:1,maxValue:10,onChange:i}),(0,o.createComponentVNode)(2,a.Button,{ml:1,content:"Create",onClick:c}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,ml:1,color:"label",content:l})]})},u=function(e){var t,n;function i(){var t;return(t=e.call(this)||this).state={pillAmount:1,patchAmount:1,bottleAmount:1,packAmount:1},t}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=(this.state,this.props),n=t.state.config.ref,i=this.state,c=i.pillAmount,u=i.patchAmount,d=i.bottleAmount,s=i.packAmount,p=t.state.data,m=p.condi,f=p.chosenPillStyle,h=p.pillStyles,C=void 0===h?[]:h;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[!m&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill type",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===f,textAlign:"center",color:"transparent",onClick:function(){return(0,r.act)(n,"pillStyle",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.className})},e.id)}))}),!m&&(0,o.createComponentVNode)(2,l,{label:"Pills",amount:c,amountUnit:"pills",sideNote:"max 50u",onChangeAmount:function(t,n){return e.setState({pillAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"pill",amount:c,volume:"auto"})}}),!m&&(0,o.createComponentVNode)(2,l,{label:"Patches",amount:u,amountUnit:"patches",sideNote:"max 40u",onChangeAmount:function(t,n){return e.setState({patchAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"patch",amount:u,volume:"auto"})}}),!m&&(0,o.createComponentVNode)(2,l,{label:"Bottles",amount:d,amountUnit:"bottles",sideNote:"max 30u",onChangeAmount:function(t,n){return e.setState({bottleAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"bottle",amount:d,volume:"auto"})}}),!!m&&(0,o.createComponentVNode)(2,l,{label:"Packs",amount:s,amountUnit:"packs",sideNote:"max 10u",onChangeAmount:function(t,n){return e.setState({packAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"condimentPack",amount:s,volume:"auto"})}}),!!m&&(0,o.createComponentVNode)(2,l,{label:"Bottles",amount:d,amountUnit:"bottles",sideNote:"max 50u",onChangeAmount:function(t,n){return e.setState({bottleAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"condimentBottle",amount:d,volume:"auto"})}})]})},i}(o.Component),d=function(e){var t=e.state,n=t.config.ref,i=t.data.analyzeVars;return(0,o.createComponentVNode)(2,a.Section,{title:"Analysis Results",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Back",onClick:function(){return(0,r.act)(n,"goScreen",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",children:i.state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,a.ColorBox,{color:i.color,mr:1}),i.color]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:i.description}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Metabolization Rate",children:[i.metaRate," u/minute"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Threshold",children:i.overD}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Threshold",children:i.addicD})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(0),r=n(3),a=n(2);t.ChemPress=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.pill_size,l=i.pill_name,u=i.pill_style,d=i.pill_styles,s=void 0===d?[]:d;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",width:"43px",minValue:5,maxValue:50,step:1,stepPixelSize:2,onChange:function(e,t){return n("change_pill_size",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Name",children:(0,o.createComponentVNode)(2,a.Input,{value:l,onChange:function(e,t){return n("change_pill_name",{name:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Style",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===u,textAlign:"center",color:"transparent",onClick:function(){return n("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(0),r=n(15),a=n(2),i=n(18),c=n(10);var l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).state={reagentName:"",reagentQuantity:1},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.setReagentName=function(e){this.setState({reagentName:e})},u.setReagentQuantity=function(e){this.setState({reagentQuantity:e})},u.render=function(){var e=this,t=this.props.state,n=t.config,l=t.data,u=n.ref,d=l.emptying,s=l.reagents||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:d?"bad":"good",children:d?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(t,n){return e.setReagentName(n)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,c.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,a.NumberInput,{value:this.state.reagentQuantity,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(t,n){return e.setReagentQuantity(n)}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return(0,r.act)(u,"add",{chem:e.state.reagentName,amount:e.state.reagentQuantity})}})],4)],4),(0,i.map)((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return(0,r.act)(u,"remove",{chem:t})}}),children:e},t)}))(s)]})})},l}(o.Component);t.ChemReactionChamber=l},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(0),r=n(17),a=n(3),i=n(2);t.ChemSplitter=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.straight,u=c.side,d=c.max_transfer;return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:l,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"side",amount:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(0),r=n(17),a=n(3),i=n(2);t.ChemSynthesizer=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.amount,u=c.current_reagent,d=c.chemicals,s=void 0===d?[]:d,p=c.possible_amounts,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===l,onClick:function(){return n("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,i.Box,{mt:1,children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===u,onClick:function(){return n("select",{reagent:e.id})}},e.id)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(0),r=n(3),a=n(2);t.CodexGigas=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[i.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==i.currentSection,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>2,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>4,onClick:function(){return n(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:["the Red","the Soulless","the Master","the Lord of all things","Jr."].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==i.currentSection,onClick:function(){return n(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:i.currentSection<4,onClick:function(){return n("search")}})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(0),r=(n(20),n(3)),a=n(2);t.ComputerFabricator=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==l.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return c("clean_order")}}),(0,o.createComponentVNode)(2,i,{state:t})],0)};var i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return 0===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:51,children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"2"})}})})]})})]}):1===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:47,buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a slot that allows you to manipulate RFID cards.\nPlease note that this is not necessary to allow the device\nto read your identification, it is just necessary to\nmanipulate other cards.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return n("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return n("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:"26px",onClick:function(){return n("confirm_order")}})]}):2===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:47,children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?i.COLORS.department.security:e>=20&&e<30?i.COLORS.department.medbay:e>=30&&e<40?i.COLORS.department.science:e>=40&&e<50?i.COLORS.department.engineering:e>=50&&e<60?i.COLORS.department.cargo:e>=200&&e<230?i.COLORS.department.centcom:i.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:4,color:i.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,d=i.sensors||[];return(0,o.createComponentVNode)(2,a.Section,{minHeight:90,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(f=e.ijob,f%10==0),color:l(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,r=e.toxdam,d=e.burndam,s=e.brutedam,p=t+r+d+s,m=Math.min(Math.max(Math.ceil(p/25),0),5),c[m])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return n("select_person",{name:e.name})}})})]},e.name);var t,r,d,s,p,m,f}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(0),r=n(3),a=n(2),i=n(168);t.Cryo=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",content:c.occupant.name?c.occupant.name:"No Occupant"}),!!c.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",content:c.occupant.stat,color:c.occupant.statstate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:c.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant.health/c.occupant.maxHealth,color:c.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",content:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",disabled:c.isOpen,onClick:function(){return n("power")},color:c.isOperating&&"green",children:c.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.isOpen?"unlock":"lock",onClick:function(){return n("door")},content:c.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:c.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return n("autoeject")},content:c.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!c.isBeakerLoaded,onClick:function(){return n("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:c.isBeakerLoaded,beakerContents:c.beakerContents})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(0),r=n(3),a=n(2);t.DecalPainter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.decal_list||[],l=i.color_list||[],u=i.dir_list||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===i.decal_style,onClick:function(){return n("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===i.decal_color,onClick:function(){return n("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===i.decal_direction,onClick:function(){return n("selected direction",{dirs:e.dirs})}},e.dirs)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(0),r=n(3),a=n(2);t.DisposalUnit=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return l.full_pressure?(t="good",n="Ready"):l.panel_open?(t="bad",n="Power Disabled"):l.pressure_charging?(t="average",n="Pressurizing"):(t="bad",n="Off"),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:t,children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.flush?"toggle-on":"toggle-off",disabled:l.isai||l.panel_open,content:l.flush?"Disengage":"Engage",onClick:function(){return c(l.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:l.isai,content:"Eject Contents",onClick:function(){return c("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:l.panel_open,selected:l.pressure_charging,onClick:function(){return c(l.pressure_charging?"pump-0":"pump-1")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(0),r=n(3),a=n(2);t.DnaVault=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.completed,l=i.used,u=i.choiceA,d=i.choiceB,s=i.dna,p=i.dna_max,m=i.plants,f=i.plants_max,h=i.animals,C=i.animals_max;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s/p,content:s+" / "+p+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m/f,content:m+" / "+f+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/h,content:h+" / "+C+" Samples"})})]})}),!(!c||l)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:u,textAlign:"center",onClick:function(){return n("gene",{choice:u})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:d,textAlign:"center",onClick:function(){return n("gene",{choice:d})}})})]})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(0),r=n(3),a=n(2),i=n(20);t.EightBallVote=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.question,u=c.shaking,d=c.answers,s=void 0===d?[]:d;return u?(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',l,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,i.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return n("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})}},function(e,t,n){"use strict";t.__esModule=!0,t.Electropack=void 0;var o=n(0),r=n(2),a=n(3),i=n(17);t.Electropack=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.power,u=c.code,d=c.frequency,s=c.minFrequency,p=c.maxFrequency;return(0,o.createComponentVNode)(2,r.Section,{children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,r.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Frequency",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"freq"})}}),children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:s/10,maxValue:p/10,value:d/10,format:function(e){return(0,i.toFixed)(e,1)},width:13,onDrag:function(e,t){return n("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Code",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"code"})}}),children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:u,width:13,onDrag:function(e,t){return n("code",{code:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(0),r=n(2),a=n(3);t.EmergencyShuttleConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.timer_str,l=i.enabled,u=i.emagged,d=i.engines_started,s=i.authorizations_remaining,p=i.authorizations,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:c}),(0,o.createComponentVNode)(2,r.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,r.Box,{inline:!0,color:d?"good":"average",ml:1,children:d?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!l,onClick:function(){return n("abort")}}),children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!l,onClick:function(){return n("authorize")}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!l,onClick:function(){return n("repeal")}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,color:u?"bad":"good",children:u?"ERROR":"Remaining: "+s}),children:[m.length>0?m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,r.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"}),m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)}))]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(0),r=n(20),a=n(3),i=n(2);t.EngravedMessage=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.admin_mode,u=c.creator_key,d=c.creator_name,s=c.has_liked,p=c.has_disliked,m=c.hidden_message,f=c.is_creator,h=c.num_likes,C=c.num_dislikes,b=c.realdate;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(m)}),(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-up",content:" "+h,disabled:f,selected:s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("like")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"circle",disabled:f,selected:!p&&!s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("neutral")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-down",content:" "+C,disabled:f,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("dislike")}})})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Created On",children:b})})}),(0,o.createComponentVNode)(2,i.Section),!!l&&(0,o.createComponentVNode)(2,i.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return n("delete")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Ckey",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Character Name",children:d})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitControlConsole=void 0;var o=n(0),r=n(17),a=n(3),i=n(2);t.ExosuitControlConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data.mechs,l=void 0===c?[]:c;return l.length?l.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"envelope",content:"Send Message",disabled:!e.pilot,onClick:function(){return n("send_message",{tracker_ref:e.tracker_ref})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"wifi",content:e.emp_recharging?"Recharging...":"EMP Burst",color:"bad",disabled:e.emp_recharging,onClick:function(){return n("shock",{tracker_ref:e.tracker_ref})}})],4),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,i.Box,{color:e.integrity<=30?"bad":e.integrity<=70?"average":"good",children:[e.integrity,"%"]})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,i.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Airtank",children:"number"==typeof e.airtank?(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:e.airtank,format:function(e){return(0,r.toFixed)(e,2)+" kPa"}}):"Not Equipped"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pilot",children:e.pilot||"None"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Location",children:e.location||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Active Equipment",children:e.active_equipment||"None"}),e.cargo_space>=0&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Used Cargo Space",children:(0,o.createComponentVNode)(2,i.Box,{color:e.cargo_space<=30?"good":e.cargo_space<=70?"average":"bad",children:[e.cargo_space,"%"]})})]})},e.tracker_ref)})):(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.NoticeBox,{textAlign:"center",children:"No exosuits detected"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(0),r=n(18),a=n(70),i=n(17),c=n(160),l=n(3),u=n(2),d=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e){var t=(0,l.useBackend)(e),n=t.act,s=t.data,p=s.currentArea,m=s.currentCoords,f=s.globalmode,h=s.power,C=s.tag,b=s.updating,g=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,c.vecLength)((0,c.vecSubtract)(d(m),d(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(s.signals||[]);return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,u.Button,{icon:"power-off",content:h?"On":"Off",selected:h,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,u.Button,{icon:"pencil-alt",content:C,onClick:function(){return n("rename")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,u.Button,{icon:b?"unlock":"lock",content:b?"AUTO":"MANUAL",color:!b&&"bad",onClick:function(){return n("updating")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,u.Button,{icon:"sync",content:f?"MAXIMUM":"LOCAL",selected:!f,onClick:function(){return n("globalmode")}})})]})}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,u.Box,{fontSize:"18px",children:[p," (",m,")"]})}),(0,o.createComponentVNode)(2,u.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,u.Table,{children:[(0,o.createComponentVNode)(2,u.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,u.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),g.map((function(e){return(0,o.createComponentVNode)(2,u.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,u.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,i.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,u.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(0),r=n(3),a=n(2);t.GravityGenerator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.breaker,l=i.charge_count,u=i.charging_state,d=i.on,s=i.operational;return s?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,disabled:!s,onClick:function(){return n("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(d&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})}),s&&0!==u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"WARNING - Radiation detected"}),s&&0===u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No radiation detected"})],0):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No data available"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(0),r=n(3),a=n(2);t.GulagTeleporterConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.teleporter,l=i.teleporter_lock,u=i.teleporter_state_open,d=i.teleporter_location,s=i.beacon,p=i.beacon_location,m=i.id,f=i.id_name,h=i.can_teleport,C=i.goal,b=void 0===C?0:C,g=i.prisoner,N=void 0===g?{}:g;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:u?"Open":"Closed",disabled:l,selected:u,onClick:function(){return n("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"unlock",content:l?"Locked":"Unlocked",selected:l,disabled:u,onClick:function(){return n("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:c?"good":"bad",buttons:!c&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_teleporter")}}),children:c?d:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:s?"good":"bad",buttons:!s&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_beacon")}}),children:s?p:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:m?f:"No ID",onClick:function(){return n("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:b,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return n("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:N.name?N.name:"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:N.crimstat?N.crimstat:"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!h,textAlign:"center",color:"bad",onClick:function(){return n("teleport")}})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(0),r=n(3),a=n(2);t.GulagItemReclaimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.mobs,l=void 0===c?[]:c;return l.length?(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!i.can_reclaim,onClick:function(){return n("release_items",{mobref:e.mob})}})})]},e.mob)}))})}):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No stored items"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(0),r=n(3),a=n(2);t.Holodeck=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_toggle_safety,l=i.default_programs,u=void 0===l?[]:l,d=i.emag_programs,s=void 0===d?[]:d,p=i.emagged,m=i.program;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:p?"unlock":"lock",content:"Safeties",color:"bad",disabled:!c,selected:!p,onClick:function(){return n("safety")}}),children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))}),!!p&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.HypnoChair=void 0;var o=n(0),r=n(3),a=n(2);t.HypnoChair=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",children:"The Enhanced Interrogation Chamber is designed to induce a deep-rooted trance trigger into the subject. Once the procedure is complete, by using the implanted trigger phrase, the authorities are able to ensure immediate and complete obedience and truthfulness."}),(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.occupant.name?i.occupant.name:"No Occupant"}),!!i.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===i.occupant.stat?"good":1===i.occupant.stat?"average":"bad",children:0===i.occupant.stat?"Conscious":1===i.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.open?"unlock":"lock",color:i.open?"default":"red",content:i.open?"Open":"Closed",onClick:function(){return n("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Phrase",children:(0,o.createComponentVNode)(2,a.Input,{value:i.trigger,onChange:function(e,t){return n("set_phrase",{phrase:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Interrogate Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:i.interrogating?"Interrupt Interrogation":"Begin Enhanced Interrogation",onClick:function(){return n("interrogate")}}),1===i.interrogating&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(0),r=n(3),a=n(2);t.ImplantChair=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.occupant.name?i.occupant.name:"No Occupant"}),!!i.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===i.occupant.stat?"good":1===i.occupant.stat?"average":"bad",children:0===i.occupant.stat?"Conscious":1===i.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.open?"unlock":"lock",color:i.open?"default":"red",content:i.open?"Open":"Closed",onClick:function(){return n("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:i.ready?i.special_name||"Implant":"Recharging",onClick:function(){return n("implant")}}),0===i.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[i.ready_implants,1===i.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.InfraredEmitter=void 0;var o=n(0),r=n(3),a=n(2);t.InfraredEmitter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.on,l=i.visible;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Visibility",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"eye":"eye-slash",content:l?"Visible":"Invisible",selected:l,onClick:function(){return n("visibility")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(0),r=n(3),a=n(2);t.Intellicard=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=u||d,l=i.name,u=i.isDead,d=i.isBraindead,s=i.health,p=i.wireless,m=i.radio,f=i.wiping,h=i.laws,C=void 0===h?[]:h;return(0,o.createComponentVNode)(2,a.Section,{title:l||"Empty Card",buttons:!!l&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:f?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return n("wipe")}}),children:!!l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:c?"bad":"good",children:c?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return n("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:m,onClick:function(){return n("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(0),r=n(3),a=n(2);t.KeycardAuth=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===i.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===i.waiting&&(0,o.createFragment)([!!i.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return n("auth_swipe")},content:"Authorize"}),0===i.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return n("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return n("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return n("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(0),r=n(20),a=n(3),i=n(2);t.LaborClaimConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.can_go_home,u=c.id_points,d=c.ores,s=c.status_info,p=c.unclaimed_points;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,i.Button,{content:"Move shuttle",disabled:!l,onClick:function(){return n("move_shuttle")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Claim points",disabled:!p,onClick:function(){return n("claim_points")}}),children:p})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(0),r=n(3),a=n(2);t.LanguageMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.admin_mode,l=i.is_living,u=i.omnitongue,d=i.languages,s=void 0===d?[]:d,p=i.unknown_languages,m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!l&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return n("select_default",{language_name:e.name})}}),!!c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return n("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!c&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(u?"Enabled":"Disabled"),selected:u,onClick:function(){return n("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",!!e.shadow&&"(gained from mob)"," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadRemote=t.LaunchpadControl=t.LaunchpadButtonPad=void 0;var o=n(0),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return t("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return t("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return t("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return t("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return t("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:-1})}})]})]})};t.LaunchpadButtonPad=i;var c=function(e){var t=e.topLevel,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.x,d=l.y,s=l.pad_name,p=l.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:s,width:"170px",onChange:function(e,t){return c("rename",{name:t})}}),level:t?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return c("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i,{state:e.state})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return c("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return c("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return c("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return c("pull")}})})]})]})};t.LaunchpadControl=c;t.LaunchpadRemote=function(e){var t=(0,r.useBackend)(e).data,n=t.has_pad,i=t.pad_closed;return n?i?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"}):(0,o.createComponentVNode)(2,c,{topLevel:!0,state:e.state}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})};t.LaunchpadConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.launchpads,u=void 0===l?[]:l,d=i.selected_id;return u.length<=0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"}):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.Box,{style:{"border-right":"2px solid rgba(255, 255, 255, 0.1)"},minHeight:"190px",mr:1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name,selected:d===e.id,color:"transparent",onClick:function(){return n("select_pad",{id:e.id})}},e.name)}))})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:d?(0,o.createComponentVNode)(2,c,{state:e.state}):(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(0),r=n(3),a=n(2);t.MechBayPowerConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.recharge_port,c=i&&i.mech,l=c&&c.cell;return(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.health/c.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MedicalKiosk=void 0;var o=n(0),r=(n(20),n(3)),a=n(2);t.MedicalKiosk=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Health Kiosk",textAlign:"center",icon:"procedures",children:[(0,o.createComponentVNode)(2,a.Box,{my:1,textAlign:"center",children:["Greetings Valued Employee. Please select your desired diagnosis. Diagnosis costs ",i.kiosk_cost," credits.",(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:["Current patient targeted for scanning: ",i.patient_name," |"]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Button,{icon:"procedures",disabled:!i.active_status_1,tooltip:"Reads back exact values of your general health scan.",onClick:function(){return n("beginScan_1")},content:"General Health Scan"}),(0,o.createComponentVNode)(2,a.Button,{icon:"heartbeat",disabled:!i.active_status_2,tooltip:"Provides information based on various non-obvious symptoms,\nlike blood levels or disease status.",onClick:function(){return n("beginScan_2")},content:"Symptom Based Checkup"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:"Resets the current scanning target, cancelling current scans.",icon:"sync",color:"average",onClick:function(){return n("clearTarget")},content:"Reset Scanner"})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"radiation-alt",disabled:!i.active_status_3,tooltip:"Provides information about brain trauma and radiation.",onClick:function(){return n("beginScan_3")},content:"Neurological/Radiological Scan"}),(0,o.createComponentVNode)(2,a.Button,{icon:"mortar-pestle",disabled:!i.active_status_4,tooltip:"Provides a list of consumed chemicals, as well as potential\nside effects.",onClick:function(){return n("beginScan_4")},content:"Chemical Analysis and Psychoactive Scan"})]})]}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:"normal",label:"General Health Scan",children:function(){return(0,o.createComponentVNode)(2,a.Box,{children:0===i.active_status_1&&(0,o.createComponentVNode)(2,a.Section,{title:"Patient Health",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.patient_health/100,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.patient_health}),"%"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider,{size:2}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.brute_health/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.brute_health})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.burn_health/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.burn_health})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.suffocation_health/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.suffocation_health})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxin Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.toxin_health/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.toxin_health})})})]})})})}},"tab_1"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:"normal",label:"Symptom Based Checkup",children:function(){return(0,o.createComponentVNode)(2,a.Box,{children:0===i.active_status_2&&(0,o.createComponentVNode)(2,a.Section,{title:"Symptom Based Checkup",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patient Status",color:"good",children:i.patient_status}),(0,o.createComponentVNode)(2,a.LabeledList.Divider,{size:1}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease Status",children:i.patient_illness}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease information",children:i.illness_info}),(0,o.createComponentVNode)(2,a.LabeledList.Divider,{size:1}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Levels",children:[i.bleed_status,(0,o.createComponentVNode)(2,a.LabeledList.Divider,{size:1}),(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.blood_levels/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.blood_levels})})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Information",children:i.blood_status})]})})})}},"tab_2"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:"normal",label:"Neurological/Radiological Scan",children:function(){return(0,o.createComponentVNode)(2,a.Box,{children:0===i.active_status_3&&(0,o.createComponentVNode)(2,a.Section,{title:"Patient Neurological and Radiological Health ",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cellular Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.clone_health/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.clone_health})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.brain_damage/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.brain_damage})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Status",color:"health-0",children:i.brain_health}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Status",children:i.rad_status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Irradiation Percentage",children:[i.rad_value,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Trauma Status",children:i.trauma_status})]})})}},"tab_3"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:"normal",label:"Chemical Analysis and Psychoactive Scan",children:function(){return(0,o.createComponentVNode)(2,a.Box,{children:0===i.active_status_4&&(0,o.createComponentVNode)(2,a.Section,{title:"Chemical and Psychoactive Analysis",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chemical Contents",children:i.are_chems_present?i.chemical_list.length?i.chemical_list.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[e.volume," units of ",e.name]},e.id)})):(0,o.createComponentVNode)(2,a.Box,{children:"No reagents detected."}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No reagents detected."})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Status",color:"bad",children:i.are_overdoses_present?i.overdose_status.length?i.overdose_status.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Overdosing on ",e.name]},e.id)})):(0,o.createComponentVNode)(2,a.Box,{children:"No reagents detected."}):(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient is not overdosing."})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Status",color:"bad",children:i.are_addictions_present?i.addiction_status.length?i.addiction_status.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Addicted to ",e.name]},e.id)})):(0,o.createComponentVNode)(2,a.Box,{children:"Patient has no addictions."}):(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient has no addictions detected."})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Psychoactive Status",children:i.hallucinating_status})]})})}},"tab_4")]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(0),r=n(15),a=n(2),i=n(10);t.MiningVendor=function(e){var t=e.state,n=t.config,c=t.data,l=n.ref,u=[].concat(c.product_records);return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"User",children:c.user&&(0,o.createComponentVNode)(2,a.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,c.user.name||"Unknown",0),","," ",(0,o.createVNode)(1,"b",null,c.user.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[c.user.points,(0,o.createTextVNode)(" mining points")],0),"."]})||(0,o.createComponentVNode)(2,a.Box,{color:"light-gray",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Equipment",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createVNode)(1,"span",(0,i.classes)(["vending32x32",e.path]),null,1,{style:{"vertical-align":"middle","horizontal-align":"middle"}})," ",(0,o.createVNode)(1,"b",null,e.name,0)]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{style:{"min-width":"95px","text-align":"center"},disabled:!c.user||e.price>c.user.points,content:e.price+" points",onClick:function(){return(0,r.act)(l,"purchase",{ref:e.ref})}})})]},e.name)}))})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Mint=void 0;var o=n(0),r=n(3),a=n(2);t.Mint=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.inserted_materials||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Materials",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.processing?"times":"power-off",content:i.processing?"Stop":"Start",selected:i.processing,onClick:function(){return n(i.processing?"stoppress":"startpress")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.material,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.chosen_material===e.material?"check-square":"square",selected:i.chosen_material===e.material,onClick:function(){return n("changematerial",{material_name:e.material})}}),children:[e.amount," cm\xb3"]},e.material)}))})}),(0,o.createComponentVNode)(2,a.Section,{children:["Pressed ",i.produced_coins," coins this cycle."]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.MalfunctionModulePicker=void 0;var o=n(0),r=n(20),a=n(15),i=n(2);var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={hoveredItem:{},currentSearch:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setHoveredItem=function(e){this.setState({hoveredItem:e})},c.setSearchText=function(e){this.setState({currentSearch:e})},c.render=function(){var e=this,t=this.props.state,n=t.config,r=t.data,c=n.ref,u=r.compact_mode,d=r.processing_time,s=r.categories,p=void 0===s?[]:s,m=this.state,f=m.hoveredItem,h=m.currentSearch;return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d>0?"good":"bad",children:[d," Processing Time"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{value:h,onInput:function(t,n){return e.setSearchText(n)},ml:1,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:u?"list":"info",content:u?"Compact":"Detailed",onClick:function(){return(0,a.act)(c,"compact_toggle")}})],4),children:h.length>0?(0,o.createVNode)(1,"table","Table",(0,o.createComponentVNode)(2,l,{compact:!0,items:p.flatMap((function(e){return e.items||[]})).filter((function(e){var t=h.toLowerCase();return String(e.name+e.desc).toLowerCase().includes(t)})),hoveredItem:f,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{ref:e.ref})}}),2):(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:p.map((function(t){var n=t.name,r=t.items;if(null!==r)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n+" ("+r.length+")",children:function(){return(0,o.createComponentVNode)(2,l,{compact:u,items:r,hoveredItem:f,processing_time:d,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{ref:e.ref})}})}},n)}))})})},r}(o.Component);t.MalfunctionModulePicker=c;var l=function(e){var t=e.items,n=e.hoveredItem,a=e.processing_time,c=e.compact,l=e.onBuy,u=e.onBuyMouseOver,d=e.onBuyMouseOut,s=n&&n.cost||0;return c?(0,o.createComponentVNode)(2,i.Table,{children:t.map((function(e){var t=n&&n.name!==e.name,c=a-s=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),h>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),h>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),h>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("nanite_injection")}})],4)})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(0),r=n(3),a=n(2),i=function(e){var t=e.state.data,n=t.has_disk,r=t.has_program,i=t.disk;return n?r?(0,o.createComponentVNode)(2,c,{program:i}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var c=function(e){var t=e.program,n=t.name,r=t.desc,i=t.activated,c=t.use_rate,l=t.can_trigger,u=t.trigger_cost,d=t.trigger_cooldown,s=t.activation_code,p=t.deactivation_code,m=t.kill_code,f=t.trigger_code,h=t.timer_restart,C=t.timer_shutdown,b=t.timer_trigger,g=t.timer_trigger_delay,N=t.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:n,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:r}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:c}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:d})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:m}),!!l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:f})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[h," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[C," s"]}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[b," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[g," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:N.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=c;var l=function(e){var t=(0,r.useBackend)(e),n=t.act;return(t.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return n("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=l;var u=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.current_view,u=i.disk,d=i.has_program,s=i.cloud_backup,p=u&&u.can_rule||!1;if(!s)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var m=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+l,level:2,buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return n("upload_program")}}),children:m.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,c,{program:e}),!!p&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return n("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_rule",{program_id:e.id,rule_id:t.id})}}),t.display],0,t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,d=n.data,s=d.has_disk,p=d.current_view,m=d.new_backup_id;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s,onClick:function(){return c("eject")}}),children:(0,o.createComponentVNode)(2,i,{state:t})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return c("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return c("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return c("create_backup")}})],0),children:d.current_view?(0,o.createComponentVNode)(2,u,{state:t}):(0,o.createComponentVNode)(2,l,{state:t})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(0),r=n(18),a=n(3),i=n(2);t.NaniteProgramHub=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.detail_view,u=c.disk,d=c.has_disk,s=c.has_program,p=c.programs,m=void 0===p?{}:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return n("clear")}})],4),children:d?s?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Program Name",children:u.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:u.desc})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:l?"info":"list",content:l?"Detailed":"Compact",onClick:function(){return n("toggle_details")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",content:"Sync Research",onClick:function(){return n("refresh")}})],4),children:null!==m?(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var r=e||[],a=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:a,children:l?r.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,i.LabeledList,{children:r.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}})},e.id)}))})},t)}))(m)}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No nanite programs are currently researched."})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(0),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=c;var l=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.type,c={number:(0,o.createComponentVNode)(2,u,{act:t,extra_setting:n}),text:(0,o.createComponentVNode)(2,d,{act:t,extra_setting:n}),type:(0,o.createComponentVNode)(2,s,{act:t,extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{act:t,extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:c[i]})};t.NaniteExtraEntry=l;var u=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.min,l=n.max,u=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:i,width:"64px",minValue:c,maxValue:l,unit:u,onChange:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraNumber=u;var d=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:i,width:"200px",onInput:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraText=d;var s=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:i,width:"150px",options:c,onSelected:function(e){return t("set_extra_setting",{target_setting:r,value:e})}})};t.NaniteExtraType=s;var p=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.true_text,l=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:i?c:l,checked:i,onClick:function(){return t("set_extra_setting",{target_setting:r})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e){var t=(0,r.useBackend)(e),n=t.act,u=t.data,d=u.has_disk,s=u.has_program,p=u.name,m=u.desc,f=u.use_rate,h=u.can_trigger,C=u.trigger_cost,b=u.trigger_cooldown,g=u.activated,N=u.has_extra_settings,v=u.extra_settings,V=void 0===v?{}:v;return d?s?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:m}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:f}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:C}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:b})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:g?"power-off":"times",content:g?"Active":"Inactive",selected:g,color:"bad",bold:!0,onClick:function(){return n("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{state:e.state})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,c,{state:e.state})})]}),!!N&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:V.map((function(e){return(0,o.createComponentVNode)(2,l,{act:n,extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemote=void 0;var o=n(0),r=n(3),a=n(2);t.NaniteRemote=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.code,l=i.locked,u=i.mode,d=i.program_name,s=i.relay_code,p=i.comms,m=i.message,f=i.saved_settings,h=void 0===f?[]:f;return l?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return n("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:d,maxLength:14,width:"130px",onChange:function(e,t){return n("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return n("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"270px",onChange:function(e,t){return n("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return n("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:h.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return n("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return n("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(0),r=n(3),a=n(2);t.NotificationPreferences=function(e){var t=(0,r.useBackend)(e),n=t.act,i=(t.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return n("toggle_ignore",{key:e.key})}},e.key)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(0),r=n(3),a=n(2);t.NtnetRelay=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.enabled,l=i.dos_capacity,u=i.dos_overload,d=i.dos_crashed;return(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:c,content:c?"ENABLED":"DISABLED",onClick:function(){return n("toggle")}}),children:d?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return n("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:l,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," GQ"," / ",l," GQ"]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(0),r=n(3),a=n(2);t.NtosArcade=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[i.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[i.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Section,{backgroundColor:1===i.PauseState?"#1b3622":"#471915",children:i.Status})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.Hitpoints,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Section,{inline:!0,width:26,textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:i.BossID})})]})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,a.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,a.Box,{color:i.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",i.TicketCount]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCard=void 0;var o=n(0),r=n(3),a=n(2),i=n(167),c=n(18);t.NtosCard=function(e){var t=(0,r.useBackend)(e),n=t.act,l=t.data,u=l.authenticated,d=l.regions,s=void 0===d?[]:d,p=l.access_on_card,m=void 0===p?[]:p,f=l.jobs,h=void 0===f?{}:f,C=l.id_rank,b=l.id_owner,g=l.has_id,N=l.have_printer,v=l.have_id_slot,V=l.id_name;return v?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:g&&u?(0,o.createComponentVNode)(2,a.Input,{value:b,width:"250px",onInput:function(e,t){return n("PRG_edit",{name:t})}}):b||"No Card Inserted",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!N||!g,onClick:function(){return n("PRG_print")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-out-alt":"sign-in-alt",content:u?"Log Out":"Log In",color:u?"bad":"good",onClick:function(){n(u?"PRG_logout":"PRG_authenticate")}})],4),children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:V,onClick:function(){return n("PRG_eject")}})}),!!g&&!!u&&(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Access",children:(0,o.createComponentVNode)(2,i.AccessList,{accesses:s,selectedList:m,accessMod:function(e){return n("PRG_access",{access_target:e})},grantAll:function(){return n("PRG_grantall")},denyAll:function(){return n("PRG_denyall")},grantDep:function(e){return n("PRG_grantregion",{region:e})},denyDep:function(e){return n("PRG_denyregion",{region:e})}})}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Jobs",children:(0,o.createComponentVNode)(2,a.Section,{title:C,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"exclamation-triangle",content:"Terminate",color:"bad",onClick:function(){return n("PRG_terminate")}}),children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Custom...",onCommit:function(e,t){return n("PRG_assign",{assign_target:"Custom",custom_name:t})}}),(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:(0,c.map)((function(e,t){var r=e||[];return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:t,children:r.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.display_name,onClick:function(){return n("PRG_assign",{assign_target:e.job})}},e.job)}))},t)}))(h)})]})})]})],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This program requires an ID slot in order to function"})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(0),r=n(3),a=n(2);t.NtosConfiguration=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.power_usage,l=i.battery_exists,u=i.battery,d=void 0===u?{}:u,s=i.disk_size,p=i.disk_used,m=i.hardware,f=void 0===m?[]:m;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",c,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!l&&"average",children:l?(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.charge,minValue:0,maxValue:d.max,ranges:{good:[d.max/2,Infinity],average:[d.max/4,d.max/2],bad:[-Infinity,d.max/4]},children:[d.charge," / ",d.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p,minValue:0,maxValue:s,color:"good",children:[p," GQ / ",s," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return n("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCrewManifest=void 0;var o=n(0),r=n(3),a=n(2),i=n(18);t.NtosCrewManifest=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.have_printer,u=c.manifest,d=void 0===u?{}:u;return(0,o.createComponentVNode)(2,a.Section,{title:"Crew Manifest",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!l,onClick:function(){return n("PRG_print")}}),children:(0,i.map)((function(e,t){return(0,o.createComponentVNode)(2,a.Section,{level:2,title:t,children:(0,o.createComponentVNode)(2,a.Table,{children:e.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:["(",e.rank,")"]})]},e.name)}))})},t)}))(d)})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosFileManager=t.FileTable=void 0;var o=n(0),r=n(2),a=n(3),i=function(e){var t=e.files,n=void 0===t?[]:t,a=e.usbconnected,i=e.usbmode,c=e.onUpload,l=e.onDelete,u=e.onRename;return(0,o.createComponentVNode)(2,r.Table,{children:[(0,o.createComponentVNode)(2,r.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,r.Table.Cell,{children:"File"}),(0,o.createComponentVNode)(2,r.Table.Cell,{collapsing:!0,children:"Type"}),(0,o.createComponentVNode)(2,r.Table.Cell,{collapsing:!0,children:"Size"})]}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,r.Table.Cell,{children:e.undeletable?e.name:(0,o.createComponentVNode)(2,r.Button.Input,{fluid:!0,content:e.name,currentValue:e.name,tooltip:"Rename",onCommit:function(t,n){return u(e.name,n)}})}),(0,o.createComponentVNode)(2,r.Table.Cell,{children:e.type}),(0,o.createComponentVNode)(2,r.Table.Cell,{children:e.size}),(0,o.createComponentVNode)(2,r.Table.Cell,{collapsing:!0,children:!e.undeletable&&(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:"trash",confirmIcon:"times",confirmContent:"",tooltip:"Delete",onClick:function(){return l(e.name)}}),!!a&&(i?(0,o.createComponentVNode)(2,r.Button,{icon:"download",tooltip:"Download",onClick:function(){return c(e.name)}}):(0,o.createComponentVNode)(2,r.Button,{icon:"upload",tooltip:"Upload",onClick:function(){return c(e.name)}}))],0)})]},e.name)}))]})};t.FileTable=i;t.NtosFileManager=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.usbconnected,u=c.files,d=void 0===u?[]:u,s=c.usbfiles,p=void 0===s?[]:s;return(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Section,{children:(0,o.createComponentVNode)(2,i,{files:d,usbconnected:l,onUpload:function(e){return n("PRG_copytousb",{name:e})},onDelete:function(e){return n("PRG_deletefile",{name:e})},onRename:function(e,t){return n("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return n("PRG_clone",{file:e})}})}),l&&(0,o.createComponentVNode)(2,r.Section,{title:"Data Disk",children:(0,o.createComponentVNode)(2,i,{usbmode:!0,files:p,usbconnected:l,onUpload:function(e){return n("PRG_copyfromusb",{name:e})},onDelete:function(e){return n("PRG_deletefile",{name:e})},onRename:function(e,t){return n("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return n("PRG_clone",{file:e})}})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosJobManager=void 0;var o=n(0),r=n(3),a=n(2);t.NtosJobManager=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.authed,l=i.cooldown,u=i.slots,d=void 0===u?[]:u,s=i.prioritized,p=void 0===s?[]:s;return c?(0,o.createComponentVNode)(2,a.Section,{children:[l>0&&(0,o.createComponentVNode)(2,a.Dimmer,{children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",mt:10,children:["On Cooldown: ",l,"s"]})}),(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Prioritized"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Slots"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:e.title,disabled:e.total<=0,checked:e.total>0&&p.includes(e.title),onClick:function(){return n("PRG_priority",{target:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[e.current," / ",e.total]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"Open",disabled:!e.status_open,onClick:function(){return n("PRG_open_job",{target:e.title})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Close",disabled:!e.status_close,onClick:function(){return n("PRG_close_job",{target:e.title})}})]})]},e.title)}))]})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Current ID does not have access permissions to change job slots."})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(0),r=n(3),a=n(2),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug",job_manage:"address-book",crewmani:"clipboard-list"};t.NtosMain=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.programs,u=void 0===l?[]:l,d=c.has_light,s=c.light_on,p=c.comp_light_color;return(0,o.createFragment)([!!d&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:s,onClick:function(){return n("PC_toggle_light")},children:["Flashlight: ",s?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return n("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:p})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,lineHeight:"24px",color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return n("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:3,children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{lineHeight:"24px",color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return n("PC_killprogram",{name:e.name})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(0),r=n(3),a=n(2);(0,n(42).createLogger)("ntos chat");t.NtosNetChat=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_admin,l=i.adminmode,u=i.authed,d=i.username,s=i.active_channel,p=i.is_operator,m=i.all_channels,f=void 0===m?[]:m,h=i.clients,C=void 0===h?[]:h,b=i.messages,g=void 0===b?[]:b,N=null!==s,v=u||l;return(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return n("PRG_newchannel",{new_channel_name:t})}}),f.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===s,color:"transparent",onClick:function(){return n("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:d+"...",currentValue:d,onCommit:function(e,t){return n("PRG_changename",{new_name:t})}}),!!c&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(l?"ON":"OFF"),color:l?"bad":"good",onClick:function(){return n("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:N&&(v?g.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return n("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),N&&v&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return n("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return n("PRG_leavechannel")}})],4),!!p&&u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return n("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return n("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return n("PRG_setpassword",{new_password:t})}})],4)]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDos=void 0;var o=n(0),r=n(2),a=n(3);(0,n(42).createLogger)("NetDos");t.NtosNetDos=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.relays,l=void 0===c?[]:c,u=i.focus,d=i.target,s=i.speed,p=i.overload,m=i.capacity,f=i.error;if(f)return(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:f}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,content:"Reset",textAlign:"center",onClick:function(){return n("PRG_reset")}})],4);var h=function(e){for(var t="",n=p/m;t.lengthn?t+="0":t+="1";return t};return d?(0,o.createComponentVNode)(2,r.Section,{fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,r.Box,{children:["CURRENT SPEED: ",s," GQ/s"]}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)})]}):(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Target",children:l.map((function(e){return(0,o.createComponentVNode)(2,r.Button,{content:e.id,selected:u===e.id,onClick:function(){return n("PRG_target_relay",{targid:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,bold:!0,content:"EXECUTE",color:"bad",textAlign:"center",disabled:!u,mt:1,onClick:function(){return n("PRG_execute")}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(0),r=n(3),a=n(2);t.NtosNetDownloader=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.disk_size,d=l.disk_used,s=l.downloadable_programs,p=void 0===s?[]:s,m=l.error,f=l.hacked_programs,h=void 0===f?[]:f,C=l.hackedavailable;return(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:m}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return c("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d,minValue:0,maxValue:u,children:d+" GQ / "+u+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:p.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),h.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))]})],0)};var i=function(e){var t=e.program,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.disk_size,u=c.disk_used,d=c.downloadcompletion,s=c.downloading,p=c.downloadname,m=c.downloadsize,f=l-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:t.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[t.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:t.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:m,value:d})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:s||t.size>f,onClick:function(){return i("PRG_downloadfile",{filename:t.filename})}})})]}),"Compatible"!==t.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),t.size>f&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:t.fileinfo})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetMonitor=void 0;var o=n(0),r=n(2),a=n(3);t.NtosNetMonitor=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.ntnetrelays,l=i.ntnetstatus,u=i.config_softwaredownload,d=i.config_peertopeer,s=i.config_communication,p=i.config_systemcontrol,m=i.idsalarm,f=i.idsstatus,h=i.ntnetmaxlogs,C=i.maxlogs,b=i.minlogs,g=i.ntnetlogs,N=void 0===g?[]:g;return(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:"WARNING: Disabling wireless transmitters when using a wireless device may prevent you from reenabling them!"}),(0,o.createComponentVNode)(2,r.Section,{title:"Wireless Connectivity",buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:l?"power-off":"times",content:l?"ENABLED":"DISABLED",selected:l,onClick:function(){return n("toggleWireless")}}),children:c?(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Active NTNet Relays",children:c})}):"No Relays Connected"}),(0,o.createComponentVNode)(2,r.Section,{title:"Firewall Configuration",children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Software Downloads",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:u?"power-off":"times",content:u?"ENABLED":"DISABLED",selected:u,onClick:function(){return n("toggle_function",{id:"1"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Peer to Peer Traffic",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:d?"power-off":"times",content:d?"ENABLED":"DISABLED",selected:d,onClick:function(){return n("toggle_function",{id:"2"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Communication Systems",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:s?"power-off":"times",content:s?"ENABLED":"DISABLED",selected:s,onClick:function(){return n("toggle_function",{id:"3"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Remote System Control",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:p?"power-off":"times",content:p?"ENABLED":"DISABLED",selected:p,onClick:function(){return n("toggle_function",{id:"4"})}})})]})}),(0,o.createComponentVNode)(2,r.Section,{title:"Security Systems",children:[!!m&&(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:"NETWORK INCURSION DETECTED"}),(0,o.createComponentVNode)(2,r.Box,{italics:!0,children:"Abnormal activity has been detected in the network. Check system logs for more information"})],4),(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"IDS Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button,{icon:f?"power-off":"times",content:f?"ENABLED":"DISABLED",selected:f,onClick:function(){return n("toggleIDS")}}),(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",color:"bad",onClick:function(){return n("resetIDS")}})],4)}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Max Log Count",buttons:(0,o.createComponentVNode)(2,r.NumberInput,{value:h,minValue:b,maxValue:C,width:"39px",onChange:function(e,t){return n("updatemaxlogs",{new_number:t})}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"System Log",level:2,buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:"trash",content:"Clear Logs",onClick:function(){return n("purgelogs")}}),children:N.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{className:"candystripe",children:e.entry},e.entry)}))})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRevelation=void 0;var o=n(0),r=n(2),a=n(3);t.NtosRevelation=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Button.Input,{fluid:!0,content:"Obfuscate Name...",onCommit:function(e,t){return n("PRG_obfuscate",{new_name:t})},mb:1}),(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Payload Status",buttons:(0,o.createComponentVNode)(2,r.Button,{content:i.armed?"ARMED":"DISARMED",color:i.armed?"bad":"average",onClick:function(){return n("PRG_arm")}})})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,bold:!0,content:"ACTIVATE",textAlign:"center",color:"bad",disabled:!i.armed})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitor=void 0;var o=n(0),r=n(18),a=n(70),i=n(17),c=n(3),l=n(2),u=n(38),d=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e){var t=e.state,n=(0,c.useBackend)(e),p=n.act,m=n.data,f=m.active,h=m.SM_integrity,C=m.SM_power,b=m.SM_ambienttemp,g=m.SM_ambientpressure;if(!f)return(0,o.createComponentVNode)(2,s,{state:t});var N=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),v=Math.max.apply(Math,[1].concat(N.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:C,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,i.toFixed)(C)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(b),minValue:0,maxValue:d(1e4),ranges:{teal:[-Infinity,d(80)],good:[d(80),d(373)],average:[d(373),d(1e3)],bad:[d(1e3),Infinity]},children:(0,i.toFixed)(b)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(g),minValue:0,maxValue:d(5e4),ranges:{good:[d(1),d(300)],average:[-Infinity,d(1e3)],bad:[d(1e3),+Infinity]},children:(0,i.toFixed)(g)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return p("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.Box.Forced,{height:24*N.length+"px",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:N.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,u.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,u.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:v,children:(0,i.toFixed)(e.amount,2)+"%"})},e.name)}))})})})})]})};var s=function(e){var t=(0,c.useBackend)(e),n=t.act,r=t.data.supermatters,a=void 0===r?[]:r;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return n("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:a.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return n("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWrapper=void 0;var o=n(0),r=n(3),a=n(2),i=n(120);t.NtosWrapper=function(e){var t=e.children,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.PC_batteryicon,d=l.PC_showbatteryicon,s=l.PC_batterypercent,p=l.PC_ntneticon,m=l.PC_apclinkicon,f=l.PC_stationtime,h=l.PC_programheaders,C=void 0===h?[]:h,b=l.PC_showexitprogram;return(0,o.createVNode)(1,"div","NtosWrapper",[(0,o.createVNode)(1,"div","NtosWrapper__header NtosHeader",[(0,o.createVNode)(1,"div","NtosHeader__left",[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:2,children:f}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:"NtOS"})],4),(0,o.createVNode)(1,"div","NtosHeader__right",[C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:e.icon})},e.icon)})),(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:p&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:p})}),!!d&&u&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:[u&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:u}),s&&s]}),m&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:m})}),!!b&&(0,o.createComponentVNode)(2,a.Button,{width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return c("PC_minimize")}}),!!b&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return c("PC_exit")}}),!b&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return c("PC_shutdown")}})],0)],4,{onMouseDown:function(){(0,i.refocusLayout)()}}),(0,o.createVNode)(1,"div","NtosWrapper__content",t,0)],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(0),r=n(10),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e).act;return(0,o.createComponentVNode)(2,i.Box,{width:"185px",children:(0,o.createComponentVNode)(2,i.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,mb:1,content:e,textAlign:"center",fontSize:"40px",lineHeight:"50px",width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return t("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e){var t=e.state,n=(0,a.useBackend)(e),r=n.act,l=n.data,u=(l.anchored,l.disk_present,l.status1),d=l.status2;return(0,o.createComponentVNode)(2,i.Box,{m:1,children:[(0,o.createComponentVNode)(2,i.Box,{mb:1,className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,i.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Box,{className:"NuclearBomb__displayBox",children:d})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",fontSize:"24px",lineHeight:"23px",textAlign:"center",width:"43px",ml:1,mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,i.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,c,{state:t})}),(0,o.createComponentVNode)(2,i.Flex.Item,{ml:1,width:"129px",children:(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:"32px",mb:1,className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:"32px",className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,i.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,i.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,i.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(0),r=n(3),a=n(2);t.OperatingComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.table,l=i.surgeries,u=void 0===l?[]:l,d=i.procedures,s=void 0===d?[]:d,p=i.patient,m=void 0===p?{}:p;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Patient State",children:[!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"}),(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",level:2,children:m?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]}):"No Patient Detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"Initiated Procedures",level:2,children:s.length?s.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!i.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)})):"No Active Procedures"})]})]},"state"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Surgery Procedures",children:(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return n("sync")}}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})},"procedures")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(0),r=n(20),a=n(15),i=n(2);t.OreBox=function(e){var t=e.state,n=t.config,c=t.data,l=n.ref,u=c.materials;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Empty",onClick:function(){return(0,a.act)(l,"removeall")}}),children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(0),r=n(20),a=n(3),i=n(2);t.OreRedemptionMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,l=r.unclaimedPoints,u=r.materials,d=r.alloys,s=r.diskDesigns,p=r.hasDisk;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),l,(0,o.createComponentVNode)(2,i.Button,{ml:2,content:"Claim",disabled:0===l,onClick:function(){return n("Claim")}})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{mb:1,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return n("diskEject")}})}),(0,o.createComponentVNode)(2,i.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,i.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return n("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,i.Button,{icon:"save",content:"Insert design disk",onClick:function(){return n("diskInsert")}})}),(0,o.createComponentVNode)(2,i.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,i.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,i.Table,{children:d.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Smelt",{id:e.id,sheets:t})}},e.id)}))})})],4)};var c=function(e){var t,n;function a(){var t;return(t=e.call(this)||this).state={amount:1},t}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a.prototype.render=function(){var e=this,t=this.state.amount,n=this.props,a=n.material,c=n.onRelease,l=Math.floor(a.amount);return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(a.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:a.value&&a.value+" cr"})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:[l," sheets"]})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:t,onChange:function(t,n){return e.setState({amount:n})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:l<1,content:"Release",onClick:function(){return c(t)}})]})]})},a}(o.Component)},function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(0),r=n(18),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.has_beaker,l=r.beaker_empty,u=r.has_blood,d=r.blood,s=!c||l;return(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:s,onClick:function(){return n("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"trash",content:"Empty",disabled:s,onClick:function(){return n("empty_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!c,onClick:function(){return n("eject_beaker")}})],4),children:c?l?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood DNA",children:d&&d.dna||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood Type",children:d&&d.type||"Unknown"})]}):(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=c;var l=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.is_ready;return(r.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,i.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,i.Input,{value:e.name,onChange:function(t,o){return n("rename_disease",{index:e.index,name:o})}}):e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"flask",content:"Create culture bottle",disabled:!c,onClick:function(){return n("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,i.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=l;var u=function(e){var t=e.symptom,n=t.name,a=t.desc,c=t.stealth,l=t.resistance,u=t.stage_speed,d=t.transmission,s=t.level,p=t.neutered,m=(0,r.map)((function(e,t){return{desc:e,label:t}}))(t.threshold_desc||{});return(0,o.createComponentVNode)(2,i.Section,{title:n,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{size:2,children:a}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Level",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:l}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:c}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmission",children:d})]})})]}),m.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var d=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.resistances||[];return(0,o.createComponentVNode)(2,i.Section,{title:"Antibodies",children:c.length>0?(0,o.createComponentVNode)(2,i.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!r.is_ready,onClick:function(){return n("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=d;t.Pandemic=function(e){var t=(0,a.useBackend)(e).data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),!!t.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l,{state:e.state}),(0,o.createComponentVNode)(2,d,{state:e.state})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ParticleAccelerator=void 0;var o=n(0),r=n(3),a=n(2);t.ParticleAccelerator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.assembled,l=i.power,u=i.strength;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Run Scan",onClick:function(){return n("scan")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:c?"good":"bad",children:c?"Ready - All parts in place":"Unable to detect all parts"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Particle Accelerator Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:!c,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Particle Strength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:!c,onClick:function(){return n("remove_strength")}})," ",String(u).padStart(1,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:!c,onClick:function(){return n("add_strength")}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(0),r=n(18),a=n(3),i=n(2),c=function(e){var t=e.craftables,n=void 0===t?[]:t,r=(0,a.useBackend)(e),c=r.act,l=r.data,u=l.craftability,d=void 0===u?{}:u,s=l.display_compact,p=l.display_craftable_only;return n.map((function(e){return p&&!d[e.ref]?null:s?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,className:"candystripe",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],tooltip:e.tool_text&&"Tools needed: "+e.tool_text,tooltipPosition:"left",onClick:function(){return c("make",{recipe:e.ref})}}),children:e.req_text},e.name):(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],onClick:function(){return c("make",{recipe:e.ref})}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.req_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Required",children:e.req_text}),!!e.catalyst_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Catalyst",children:e.catalyst_text}),!!e.tool_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)}))};t.PersonalCrafting=function(e){var t=e.state,n=(0,a.useBackend)(e),l=n.act,u=n.data,d=u.busy,s=u.display_craftable_only,p=u.display_compact,m=(0,r.map)((function(e,t){return{category:t,subcategory:e,hasSubcats:"has_subcats"in e,firstSubcatName:Object.keys(e).find((function(e){return"has_subcats"!==e}))}}))(u.crafting_recipes||{}),f=!!d&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"40px",textAlign:"center",children:(0,o.createComponentVNode)(2,i.Box,{mt:30,children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Crafting..."]})});return(0,o.createFragment)([f,(0,o.createComponentVNode)(2,i.Section,{title:"Personal Crafting",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:p?"check-square-o":"square-o",content:"Compact",selected:p,onClick:function(){return l("toggle_compact")}}),(0,o.createComponentVNode)(2,i.Button,{icon:s?"check-square-o":"square-o",content:"Craftable Only",selected:s,onClick:function(){return l("toggle_recipes")}})],4),children:(0,o.createComponentVNode)(2,i.Tabs,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.category,onClick:function(){return l("set_category",{category:e.category,subcategory:e.firstSubcatName})},children:function(){return!e.hasSubcats&&(0,o.createComponentVNode)(2,c,{craftables:e.subcategory,state:t})||(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,n){if("has_subcats"!==n)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n,onClick:function(){return l("set_category",{subcategory:n})},children:function(){return(0,o.createComponentVNode)(2,c,{craftables:e,state:t})}})}))(e.subcategory)})}},e.category)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableGenerator=void 0;var o=n(0),r=n(3),a=n(2);t.PortableGenerator=function(e){var t,n=(0,r.useBackend)(e),i=n.act,c=n.data;return t=c.stack_percent>50?"good":c.stack_percent>15?"average":"bad",(0,o.createFragment)([!c.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!c.ready_to_boot,children:c.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:c.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t,children:c.sheets}),c.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:c.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:c.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):c.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:c.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:c.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:c.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!c.connected&&"bad",children:c.connected?c.power_available:"Unconnected"})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=t.PortablePump=t.PortableBasicInfo=void 0;var o=n(0),r=n(3),a=n(2),i=n(38),c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.connected,l=i.holding,u=i.on,d=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:c?"good":"average",children:c?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return n("eject")}}),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)};t.PortableBasicInfo=c;t.PortablePump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.direction,u=(i.holding,i.target_pressure),d=i.default_pressure,s=i.min_pressure,p=i.max_pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-in-alt":"sign-out-alt",content:l?"In":"Out",selected:l,onClick:function(){return n("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,unit:"kPa",width:"75px",minValue:s,maxValue:p,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:u===s,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:u===d,onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:u===p,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})],4)};t.PortableScrubber=function(e){var t=(0,r.useBackend)(e),n=t.act,l=t.data.filter_types||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return n("toggle_filter",{val:e.gas_id})}},e.id)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PowerMonitor=void 0;var o=n(0),r=n(18),a=n(70),i=n(17),c=n(10),l=n(2);var u=5e5,d=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).state={sortByField:null},t}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=this,t=this.props.state.data,n=t.history,c=this.state.sortByField,d=n.supply[n.supply.length-1]||0,m=n.demand[n.demand.length-1]||0,f=n.supply.map((function(e,t){return[t,e]})),h=n.demand.map((function(e,t){return[t,e]})),C=Math.max.apply(Math,[u].concat(n.supply,n.demand)),b=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===c&&(0,r.sortBy)((function(e){return e.name})),"charge"===c&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===c&&(0,r.sortBy)((function(e){return t=e.load,n=String(t.split(" ")[1]).toLowerCase(),-["w","kw","mw","gw"].indexOf(n);var t,n}),(function(e){return-parseFloat(e.load)}))])(t.areas);return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"200px",children:(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Supply",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d,minValue:0,maxValue:C,color:"teal",content:(0,i.toFixed)(d/1e3)+" kW"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Draw",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:m,minValue:0,maxValue:C,color:"pink",content:(0,i.toFixed)(m/1e3)+" kW"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{position:"relative",height:"100%",children:[(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:f,rangeX:[0,f.length-1],rangeY:[0,C],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"}),(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:h,rangeX:[0,h.length-1],rangeY:[0,C],strokeColor:"rgba(224, 57, 151, 1)",fillColor:"rgba(224, 57, 151, 0.25)"})]})})]}),(0,o.createComponentVNode)(2,l.Section,{children:[(0,o.createComponentVNode)(2,l.Box,{mb:1,children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===c,content:"Name",onClick:function(){return e.setState({sortByField:"name"!==c&&"name"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===c,content:"Charge",onClick:function(){return e.setState({sortByField:"charge"!==c&&"charge"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===c,content:"Draw",onClick:function(){return e.setState({sortByField:"draw"!==c&&"draw"})}})]}),(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),b.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,e.name,0),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,s,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,p,{status:e.eqp}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,p,{status:e.lgt}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,p,{status:e.env}),2)],4,null,e.id)}))]})]})],4)},c}(o.Component);t.PowerMonitor=d;var s=function(e){var t=e.charging,n=e.charge;return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Icon,{width:"18px",textAlign:"center",name:0===t&&(n>50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,l.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,i.toFixed)(n)+"%"})],4)};s.defaultHooks=c.pureComponentHooks;var p=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,l.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};p.defaultHooks=c.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.ProximitySensor=void 0;var o=n(0),r=n(3),a=n(2);t.ProximitySensor=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.minutes,l=i.seconds,u=i.timing,d=i.scanning,s=i.sensitivity;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"lock":"unlock",content:d?"Armed":"Not Armed",selected:d,onClick:function(){return n("scanning")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Detection Range",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:d,onClick:function(){return n("sense",{range:-1})}})," ",String(s).padStart(1,"1")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:d,onClick:function(){return n("sense",{range:1})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Auto Arm",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:u?"Stop":"Start",selected:u,disabled:d,onClick:function(){return n("time")}}),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:d||u,onClick:function(){return n("input",{adjust:-30})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:d||u,onClick:function(){return n("input",{adjust:-1})}})," ",String(c).padStart(2,"0"),":",String(l).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:d||u,onClick:function(){return n("input",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:d||u,onClick:function(){return n("input",{adjust:30})}})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(0),r=n(18),a=n(17),i=n(3),c=n(2),l=n(38);t.Radio=function(e){var t=(0,i.useBackend)(e),n=t.act,u=t.data,d=u.freqlock,s=u.frequency,p=u.minFrequency,m=u.maxFrequency,f=u.listening,h=u.broadcasting,C=u.command,b=u.useCommand,g=u.subspace,N=u.subspaceSwitchable,v=l.RADIO_CHANNELS.find((function(e){return e.freq===s})),V=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(u.channels);return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",children:[d&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(s/10,1)+" kHz"})||(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:p/10,maxValue:m/10,value:s/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return n("frequency",{adjust:t-s/10})}}),v&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:v.color,ml:2,children:["[",v.name,"]"]})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:f?"volume-up":"volume-mute",selected:f,onClick:function(){return n("listen")}}),(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:h?"microphone":"microphone-slash",selected:h,onClick:function(){return n("broadcast")}}),!!C&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:b,content:"High volume "+(b?"ON":"OFF"),onClick:function(){return n("command")}}),!!N&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:g,content:"Subspace Tx "+(g?"ON":"OFF"),onClick:function(){return n("subspace")}})]}),!!g&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Channels",children:[0===V.length&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),V.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:(0,o.createComponentVNode)(2,c.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return n("channel",{channel:e.name})}})},e.name)}))]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RadioactiveMicrolaser=void 0;var o=n(0),r=n(3),a=n(2);t.RadioactiveMicrolaser=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.irradiate,l=i.stealth,u=i.scanmode,d=i.intensity,s=i.wavelength,p=i.on_cooldown,m=i.cooldown;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Status",children:(0,o.createComponentVNode)(2,a.Box,{color:p?"average":"good",children:p?"Recharging":"Ready"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Irradiation",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,onClick:function(){return n("irradiate")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stealth Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"eye-slash":"eye",content:l?"On":"Off",disabled:!c,selected:l,onClick:function(){return n("stealth")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"mortar-pestle":"heartbeat",content:u?"Scan Reagents":"Scan Health",disabled:c&&l,onClick:function(){return n("scanmode")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laser Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Intensity",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("radintensity",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("radintensity",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(d),width:"40px",minValue:1,maxValue:20,onChange:function(e,t){return n("radintensity",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("radintensity",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("radintensity",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Wavelength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("radwavelength",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("radwavelength",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(s),width:"40px",minValue:0,maxValue:120,onChange:function(e,t){return n("radwavelength",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("radwavelength",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("radwavelength",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Cooldown",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:m})})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.RemoteRobotControl=void 0;var o=n(0),r=n(20),a=n(3),i=n(2);t.RemoteRobotControl=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data.robots,l=void 0===c?[]:c;return l.length?l.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name+" ("+e.model+")",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"tools",content:"Interface",onClick:function(){return n("interface",{ref:e.ref})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"phone-alt",content:"Call",onClick:function(){return n("callbot",{ref:e.ref})}})],4),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"Inactive"===(0,r.decodeHtmlEntities)(e.mode)?"bad":"Idle"===(0,r.decodeHtmlEntities)(e.mode)?"average":"good",children:(0,r.decodeHtmlEntities)(e.mode)})," ",e.hacked&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"bad",children:"(HACKED)"})||""]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Location",children:e.location})]})},e.ref)})):(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.NoticeBox,{textAlign:"center",children:"No robots detected"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RoboticsControlConsole=void 0;var o=n(0),r=n(3),a=n(2);t.RoboticsControlConsole=function(e){var t=e.state,n=(0,r.useBackend)(e),l=(n.act,n.data),u=l.can_hack,d=l.cyborgs,s=void 0===d?[]:d,p=l.drones,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Cyborgs ("+s.length+")",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i,{state:t,cyborgs:s,can_hack:u})}},"cyborgs"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Drones ("+m.length+")",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,c,{state:t,drones:m})}},"drones")]})};var i=function(e){e.state;var t=e.cyborgs,n=e.can_hack,i=(0,r.useBackend)(e),c=i.act;i.data;return t.length?t.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([!!n&&!e.emagged&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return c("magbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",onClick:function(){return c("stopbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return c("killbot",{ref:e.ref})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:(0,o.createComponentVNode)(2,a.Box,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.ref)})):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No cyborg units detected within access parameters"})})},c=function(e){e.state;var t=e.drones,n=(0,r.useBackend)(e),i=n.act;n.data;return t.length?t.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return i("killdrone",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":"good",children:e.status?"Not Responding":"Nominal"})})})},e.ref)})):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No drone units detected within access parameters"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(0),r=n(10),a=n(3),i=n(2),c=["Atmospherics","Disposals","Transit Tubes"],l={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},d=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e){var t=(0,a.useBackend)(e),n=t.act,s=t.data,p=s.category,m=s.categories,f=void 0===m?[]:m,h=s.selected_color,C=s.piping_layer,b=s.mode,g=s.preview_rows.flatMap((function(e){return e.previews}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Category",children:c.map((function(e,t){return(0,o.createComponentVNode)(2,i.Button,{selected:p===t,icon:l[e],color:"transparent",content:e,onClick:function(){return n("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Modes",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:b&e.bitmask,content:e.name,onClick:function(){return n("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,width:"64px",color:u[h],content:h}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,i.ColorBox,{ml:1,color:u[e],onClick:function(){return n("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,i.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,i.Section,{children:[0===p&&(0,o.createComponentVNode)(2,i.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,checked:e===C,content:"Layer "+e,onClick:function(){return n("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,i.Box,{width:"108px",children:g.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return n("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,i.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:f.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{fluid:!0,icon:l[e.cat_name],label:e.cat_name,children:function(){return e.recipes.map((function(t){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:t.selected,content:t.pipe_name,title:t.pipe_name,onClick:function(){return n("pipe_type",{pipe_type:t.pipe_index,category:e.cat_name})}},t.pipe_index)}))}},e.cat_name)}))})})})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Roulette=t.RouletteBetTable=t.RouletteBoard=t.RouletteNumberButton=void 0;var o=n(0),r=n(10),a=n(3),i=n(2),c=n(42);n(15);(0,c.createLogger)("Roulette");var l=function(e){if(0===e)return"green";for(var t=[[1,10],[19,28]],n=!0,o=0;o=r[0]&&e<=r[1]){n=!1;break}}var a=e%2==0;return(n?a:!a)?"red":"black"},u=function(e){var t=e.number,n=(0,a.useBackend)(e).act;return(0,o.createComponentVNode)(2,i.Button,{bold:!0,content:t,color:l(t),width:"40px",height:"28px",fontSize:"20px",textAlign:"center",mb:0,className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:t})}})};t.RouletteNumberButton=u;var d=function(e){var t=e.state,n=(0,a.useBackend)(e).act;return(0,o.createVNode)(1,"table","Table",[(0,o.createVNode)(1,"tr","Roulette__board-row",[(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{content:"0",color:"transparent",height:"88px",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:0})}}),2,{rowSpan:"3"}),[3,6,9,12,15,18,21,24,27,30,33,36].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,u,{state:t,number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s3rd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[2,5,8,11,14,17,20,23,26,29,32,35].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,u,{state:t,number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s2nd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[1,4,7,10,13,16,19,22,25,28,31,34].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,u,{state:t,number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1st col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"1st 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-12"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"2nd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s13-24"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"3rd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s25-36"})}}),2,{colSpan:"4"})],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"1-18",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-18"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"Even",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"even"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"Black",color:"black",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"black"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"Red",color:"red",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"red"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"Odd",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"odd"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"19-36",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s19-36"})}}),2,{colSpan:"2"})],4)],4,{style:{width:"1px"}})};t.RouletteBoard=d;var s=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).state={customBet:500},t}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=c.prototype;return u.setCustomBet=function(e){this.setState({customBet:e})},u.render=function(){var e=this,t=(0,a.useBackend)(this.props),n=t.act,c=t.data,u=c.BetType;return u.startsWith("s")&&(u=u.substring(1,u.length)),(0,o.createVNode)(1,"table","Roulette__lowertable",[(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Last Spun:",16),(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Current Bet:",16)],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--spinresult","Roulette__lowertable--spinresult-"+l(c.LastSpin)]),c.LastSpin,0),(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--betscell"]),[(0,o.createComponentVNode)(2,i.Box,{bold:!0,mt:1,mb:1,fontSize:"25px",textAlign:"center",children:[c.BetAmount," cr on ",u]}),(0,o.createComponentVNode)(2,i.Box,{ml:1,mr:1,children:[(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet 10 cr",onClick:function(){return n("ChangeBetAmount",{amount:10})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet 50 cr",onClick:function(){return n("ChangeBetAmount",{amount:50})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet 100 cr",onClick:function(){return n("ChangeBetAmount",{amount:100})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet 500 cr",onClick:function(){return n("ChangeBetAmount",{amount:500})}}),(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet custom amount...",onClick:function(){return n("ChangeBetAmount",{amount:e.state.customBet})}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{size:.1,children:(0,o.createComponentVNode)(2,i.NumberInput,{value:this.state.customBet,minValue:0,maxValue:1e3,step:10,stepPixelSize:4,width:"40px",onChange:function(t,n){return e.setCustomBet(n)}})})]})]})],4)],4),(0,o.createVNode)(1,"tr",null,(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Box,{bold:!0,m:1,fontSize:"14px",textAlign:"center",children:"Swipe an ID card with a connected account to spin!"}),2,{colSpan:"2"}),2),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","Roulette__lowertable--cell",[(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,mr:1,children:"House Balance:"}),(0,o.createComponentVNode)(2,i.Box,{inline:!0,children:c.HouseBalance?c.HouseBalance+" cr":"None"})],4),(0,o.createVNode)(1,"td","Roulette__lowertable--cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:c.IsAnchored?"Bolted":"Unbolted",m:1,color:"transparent",textAlign:"center",onClick:function(){return n("anchor")}}),2)],4)],4)},c}(o.Component);t.RouletteBetTable=s;t.Roulette=function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,d,{state:e.state}),(0,o.createComponentVNode)(2,s,{state:e.state})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(0),r=n(3),a=n(2),i=n(166);t.SatelliteControl=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.satellites||[];return(0,o.createFragment)([c.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.meteor_shield_coverage/c.meteor_shield_coverage_max,content:100*c.meteor_shield_coverage/c.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return n("toggle",{id:e.id})}},e.id)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(0),r=n(3),a=n(2),i=n(71),c=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],l=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e){var t=e.state,n=(0,r.useBackend)(e),a=n.act,c=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{locked:c.locked,onLockedStatusChange:function(){return a("toggle_lock")}}),!c.locked&&(0,o.createComponentVNode)(2,s,{state:t})],0)};var d={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return m}},Guns:{title:"Scanner Mode: Guns",component:function(){return f}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return h}},Disease:{title:"Scanner Mode: Disease",component:function(){return C}},Species:{title:"Scanner Mode: Species",component:function(){return b}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return g}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return N}}},s=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data.scan_mode,l=d[c]||d.off,u=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==c&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return i("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},p=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return t("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return t("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return t("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return t("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return t("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return t("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return t("set_mode",{new_mode:"Nanites"})}})]})],4)},m=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},f=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},h=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},C=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,l=n.data,u=l.reverse,d=l.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",u?"does not have":"has"," ","a disease equal or worse than ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===d,content:e,onClick:function(){return i("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},b=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,u=c.reverse,d=c.target_species,s=l.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",u?"not":""," ","of the ",s.name," species.","zombie"===d&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},g=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,d=c.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},N=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,u=c.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return i("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,v,{state:t})],4)},v=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return n("toggle_reverse")},color:i?"bad":"good"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulator=void 0;var o=n(0),r=n(18),a=n(3),i=n(2);t.ShuttleManipulator=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.shuttles||[],u=c.templates||{},d=c.selected||{},s=c.existing_shuttle||{};return(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Status",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"JMP",onClick:function(){return n("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return n("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,i.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return n("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})}},"status"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Templates",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:(0,r.map)((function(e,t){var r=e.templates||[];return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.port_id,children:r.map((function(e){var t=e.shuttle_id===d.shuttle_id;return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return n("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))},t)}))(u)})})}},"templates"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Modification",children:(0,o.createComponentVNode)(2,i.Section,{children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{level:2,title:d.name,children:(!!d.description||!!d.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!d.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:d.description}),!!d.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:d.admin_notes})]})}),s?(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: "+s.name,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Jump To",onClick:function(){return n("jump_to",{type:"mobile",id:s.id})}}),children:[s.status,!!s.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),s.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Preview",onClick:function(){return n("preview",{shuttle_id:d.shuttle_id})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Load",color:"bad",onClick:function(){return n("load",{shuttle_id:d.shuttle_id})}})]})],0):"No shuttle selected"})},"modification")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(0),r=n(2),a=n(3),i=n(17);t.Signaler=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.code,u=c.frequency,d=c.minFrequency,s=c.maxFrequency;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:d/10,maxValue:s/10,value:u/10,format:function(e){return(0,i.toFixed)(e,1)},width:13,onDrag:function(e,t){return n("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:13,onDrag:function(e,t){return n("code",{code:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return n("signal")}})})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(0),r=n(3),a=n(2);t.Sleeper=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.open,l=i.occupant,u=void 0===l?{}:l,d=i.occupied,s=(i.chems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:u.name?u.name:"No Occupant",minHeight:"210px",buttons:!!u.stat&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:u.statstate,children:u.stat}),children:!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.health,minValue:u.minHealth,maxValue:u.maxHealth,ranges:{good:[50,Infinity],average:[0,50],bad:[-Infinity,0]}}),(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Oxygen",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u[e.type],minValue:0,maxValue:u.maxHealth,color:"bad"})},e.type)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cells",color:u.cloneLoss?"bad":"good",children:u.cloneLoss?"Damaged":"Healthy"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain",color:u.brainLoss?"bad":"good",children:u.brainLoss?"Abnormal":"Healthy"})]})],4)}),(0,o.createComponentVNode)(2,a.Section,{title:"Medicines",minHeight:"205px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c?"door-open":"door-closed",content:c?"Open":"Closed",onClick:function(){return n("door")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,disabled:!(d&&e.allowed),width:"140px",onClick:function(){return n("inject",{chem:e.id})}},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(0),r=n(3),a=n(2),i=function(e){var t=e.body,n=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t.htmlcolor,children:t.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:{owner:"You Are Here",stranger:"Occupied",available:"Swap"}[t.occupied],selected:"owner"===t.occupied,color:"stranger"===t.occupied&&"bad",onClick:function(){return n()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:{Dead:"bad",Unconscious:"average",Conscious:"good"}[t.status],children:t.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:t.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:t.area})]})})};t.BodyEntry=i;t.SlimeBodySwapper=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data.bodies,l=void 0===c?[]:c;return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i,{body:e,swapFunc:function(){return n("swap",{ref:e.ref})}},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(0),r=n(18),a=n(3),i=n(2);t.SmartVend=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createComponentVNode)(2,i.Section,{title:"Storage",buttons:!!c.isdryer&&(0,o.createComponentVNode)(2,i.Button,{icon:c.drying?"stop":"tint",onClick:function(){return n("Dry")},children:c.drying?"Stop drying":"Dry"}),children:0===c.contents.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:["Unfortunately, this ",c.name," is empty."]})||(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"center",children:c.verb?c.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.Button,{content:"One",disabled:e.amount<1,onClick:function(){return n("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return n("Release",{name:e.name})}})]})]},t)}))(c.contents)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(0),r=n(3),a=n(2);t.Smes=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return t=l.capacityPercent>=100?"good":l.inputting?"average":"bad",n=l.outputting?"good":l.charge>0?"average":"bad",(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*l.capacityPercent,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.inputAttempt?"sync-alt":"times",selected:l.inputAttempt,onClick:function(){return c("tryinput")},children:l.inputAttempt?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:t,children:l.capacityPercent>=100?"Fully Charged":l.inputting?"Charging":"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.inputLevel/l.inputLevelMax,content:l.inputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Input",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.inputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.inputLevelMax/1e3,onChange:function(e,t){return c("input",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:l.inputAvailable})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.outputAttempt?"power-off":"times",selected:l.outputAttempt,onClick:function(){return c("tryoutput")},children:l.outputAttempt?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:n,children:l.outputting?"Sending":l.charge>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.outputLevel/l.outputLevelMax,content:l.outputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.outputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.outputLevelMax/1e3,onChange:function(e,t){return c("output",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:l.outputUsed})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(0),r=n(3),a=n(2);t.SmokeMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.TankContents,l=(i.isTankLoaded,i.TankCurrentVolume),u=i.TankMaxVolume,d=i.active,s=i.setting,p=(i.screen,i.maxSetting),m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/u,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:l||0})," / "+u]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:s===e,icon:"plus",content:3*e,disabled:m0?"good":"bad",children:m})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:l,content:c+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===p,onClick:function(){return n("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===p,onClick:function(){return n("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===p,disabled:!f,onClick:function(){return n("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===p||1===p)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:u,onDrag:function(e,t){return n("azimuth",{value:t})}}),1===p&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-s-.01,maxValue:s+.01,value:d,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return n("azimuth_rate",{value:t})}}),2===p&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[u+" \xb0"," (auto)"]})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(0),r=n(3),a=n(2);t.SpaceHeater=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!i.hasPowercell||!i.open,onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,disabled:!i.hasPowercell,onClick:function(){return n("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!i.hasPowercell&&"bad",children:i.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.powerLevel/100,content:i.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(i.targetTemp-i.currentTemp)>50?"bad":Math.abs(i.targetTemp-i.currentTemp)>20?"average":"good",children:[i.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:i.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.targetTemp),width:"65px",unit:"\xb0C",minValue:i.minTemp,maxValue:i.maxTemp,onChange:function(e,t){return n("target",{target:t})}})||i.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:i.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===i.mode,onClick:function(){return n("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===i.mode,onClick:function(){return n("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===i.mode,onClick:function(){return n("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(0),r=n(3),a=n(2);t.SpawnersMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.spawners||[];return(0,o.createComponentVNode)(2,a.Section,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return n("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return n("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsole=void 0;var o=n(0),r=n(3),a=n(2);t.StationAlertConsole=function(e){var t=(0,r.useBackend)(e).data.alarms||[],n=t.Fire||[],i=t.Atmosphere||[],c=t.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===n.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),n.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(0),r=n(3),a=n(2);t.SuitStorageUnit=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.locked,l=i.open,u=i.safeties,d=i.uv_active,s=i.occupied,p=i.suit,m=i.helmet,f=i.mask,h=i.storage;return(0,o.createFragment)([!(!s||!u)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.Button,{icon:c?"unlock":"lock",content:c?"Unlock":"Lock",onClick:function(){return n("lock")}}),!c&&(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-out-alt":"sign-in-alt",content:l?"Close":"Open",onClick:function(){return n("door")}})],0),children:c&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"square":"square-o",content:m||"Empty",disabled:!m,onClick:function(){return n("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:p?"square":"square-o",content:p||"Empty",disabled:!p,onClick:function(){return n("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:f?"square":"square-o",content:f||"Empty",disabled:!f,onClick:function(){return n("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return n("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:s&&u,textAlign:"center",onClick:function(){return n("uv")}})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.SyndPane=t.StatusPane=t.SyndContractor=t.FakeTerminal=void 0;var o=n(0),r=n(2),a=n(3);var i=function(e){var t,n;function a(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var i=a.prototype;return i.tick=function(){var e=this.props,t=this.state;t.currentIndex<=e.allMessages.length?(this.setState((function(e){return{currentIndex:e.currentIndex+1}})),t.currentDisplay.push(e.allMessages[t.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))},i.componentDidMount=function(){var e=this,t=this.props.linesPerSecond,n=void 0===t?2.5:t;this.timer=setInterval((function(){return e.tick()}),1e3/n)},i.componentWillUnmount=function(){clearTimeout(this.timer)},i.render=function(){return(0,o.createComponentVNode)(2,r.Box,{m:1,children:this.state.currentDisplay.map((function(e){return(0,o.createFragment)([e,(0,o.createVNode)(1,"br")],0,e)}))})},a}(o.Component);t.FakeTerminal=i;t.SyndContractor=function(e){var t=(0,a.useBackend)(e),n=t.data,c=t.act,u=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(2e4*Math.random()),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"],d=!!n.error&&(0,o.createComponentVNode)(2,r.Dimmer,{children:(0,o.createComponentVNode)(2,r.Box,{backgroundColor:"red",minHeight:"150px",mt:30,ml:15,mr:15,children:(0,o.createComponentVNode)(2,r.Table,{m:1,children:(0,o.createComponentVNode)(2,r.Table.Row,{children:[(0,o.createComponentVNode)(2,r.Table.Cell,{collapsing:!0,fontSize:"100px",children:(0,o.createComponentVNode)(2,r.Icon,{name:"exclamation-triangle",mt:4,ml:2})}),(0,o.createComponentVNode)(2,r.Table.Cell,{verticalAlign:"top",textAlign:"center",children:[(0,o.createComponentVNode)(2,r.Box,{m:1,textAlign:"left",width:"100%",minHeight:"110px",children:n.error}),(0,o.createComponentVNode)(2,r.Button,{content:"Dismiss",onClick:function(){return c("PRG_clear_error")}})]})]})})})});return n.logged_in?n.logged_in&&n.first_load?(0,o.createComponentVNode)(2,r.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"525px",children:(0,o.createComponentVNode)(2,i,{allMessages:u,finishedTimeout:3e3,onFinished:function(){return c("PRG_set_first_load_finished")}})}):n.info_screen?(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"500px",children:(0,o.createComponentVNode)(2,i,{allMessages:["SyndTract v2.0","","We've identified potentional high-value targets that are","currently assigned to your mission area. They are believed","to hold valuable information which could be of immediate","importance to our organisation.","","Listed below are all of the contracts available to you. You","are to bring the specified target to the designated","drop-off, and contact us via this uplink. We will send","a specialised extraction unit to put the body into.","","We want targets alive - but we will sometimes pay slight","amounts if they're not, you just won't recieve the shown","bonus. You can redeem your payment through this uplink in","the form of raw telecrystals, which can be put into your","regular Syndicate uplink to purchase whatever you may need.","We provide you with these crystals the moment you send the","target up to us, which can be collected at anytime through","this system.","","Targets extracted will be ransomed back to the station once","their use to us is fulfilled, with us providing you a small","percentage cut. You may want to be mindful of them","identifying you when they come back. We provide you with","a standard contractor loadout, which will help cover your","identity."],linesPerSecond:10})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,content:"CONTINUE",color:"transparent",textAlign:"center",onClick:function(){return c("PRG_toggle_info")}})],4):(0,o.createFragment)([d,(0,o.createComponentVNode)(2,l,{state:e.state})],0):(0,o.createComponentVNode)(2,r.Section,{minHeight:"525px",children:[(0,o.createComponentVNode)(2,r.Box,{width:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,r.Button,{content:"REGISTER USER",color:"transparent",onClick:function(){return c("PRG_login")}})}),!!n.error&&(0,o.createComponentVNode)(2,r.NoticeBox,{children:n.error})]})};var c=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,r.Section,{title:(0,o.createFragment)([(0,o.createTextVNode)("Contractor Status"),(0,o.createComponentVNode)(2,r.Button,{content:"View Information Again",color:"transparent",mb:0,ml:1,onClick:function(){return n("PRG_toggle_info")}})],4),buttons:(0,o.createComponentVNode)(2,r.Box,{bold:!0,mr:1,children:[i.contract_rep," Rep"]}),children:(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:.85,children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"TC Availible",buttons:(0,o.createComponentVNode)(2,r.Button,{content:"Claim",disabled:i.redeemable_tc<=0,onClick:function(){return n("PRG_redeem_TC")}}),children:i.redeemable_tc}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"TC Earned",children:i.earned_tc})]})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Contracts Completed",children:i.contracts_completed}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Current Status",children:"ACTIVE"})]})})]})})};t.StatusPane=c;var l=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,l=i.contractor_hub_items||[],u=i.contracts||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,r.Tabs,{children:[(0,o.createComponentVNode)(2,r.Tabs.Tab,{label:"Contracts",children:(0,o.createComponentVNode)(2,r.Section,{title:"Availible Contracts",buttons:(0,o.createComponentVNode)(2,r.Button,{content:"Call Extraction",disabled:!i.ongoing_contract||i.extraction_enroute,onClick:function(){return n("PRG_call_extraction")}}),children:u.map((function(e){var t=e.status>1;if(!(e.status>=5))return(0,o.createComponentVNode)(2,r.Section,{title:e.target+" ("+e.target_rank+")",level:t?1:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,mr:1,children:[e.payout," (+",e.payout_bonus,") TC"]}),(0,o.createComponentVNode)(2,r.Button,{content:t?"Abort":"Accept",disabled:e.extraction_enroute,color:t&&"bad",onClick:function(){return n("PRG_contract"+(t?"_abort":"-accept"),{contract_id:e.id})}})],4),children:(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{children:e.message}),(0,o.createComponentVNode)(2,r.Grid.Column,{size:.5,children:[(0,o.createComponentVNode)(2,r.Box,{bold:!0,mb:1,children:"Dropoff Location:"}),(0,o.createComponentVNode)(2,r.Box,{children:e.dropoff})]})]})},e.target)}))})}),(0,o.createComponentVNode)(2,r.Tabs.Tab,{label:"Uplink",children:(0,o.createComponentVNode)(2,r.Section,{children:l.map((function(e){var t=e.cost?e.cost+" Rep":"FREE",a=-1!==e.limited;return(0,o.createComponentVNode)(2,r.Section,{title:e.name+" - "+t,level:2,buttons:(0,o.createFragment)([a&&(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,mr:1,children:[e.limited," remaining"]}),(0,o.createComponentVNode)(2,r.Button,{content:"Purchase",disabled:i.contract_rep0?"good":"bad",children:[s," TC"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{value:C,onInput:function(t,n){return e.setSearchText(n)},ml:1,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:u?"list":"info",content:u?"Compact":"Detailed",onClick:function(){return(0,a.act)(c,"compact_toggle")}}),!!d&&(0,o.createComponentVNode)(2,i.Button,{icon:"lock",content:"Lock",onClick:function(){return(0,a.act)(c,"lock")}})],0),children:C.length>0?(0,o.createVNode)(1,"table","Table",(0,o.createComponentVNode)(2,l,{compact:!0,items:m.flatMap((function(e){return e.items||[]})).filter((function(e){var t=C.toLowerCase();return String(e.name+e.desc).toLowerCase().includes(t)})),hoveredItem:h,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}}),2):(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:m.map((function(t){var n=t.name,r=t.items;if(null!==r)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n+" ("+r.length+")",children:function(){return(0,o.createComponentVNode)(2,l,{compact:u,items:r,hoveredItem:h,telecrystals:s,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}})}},n)}))})})},r}(o.Component);t.Uplink=c;var l=function(e){var t=e.items,n=e.hoveredItem,a=e.telecrystals,c=e.compact,l=e.onBuy,u=e.onBuyMouseOver,d=e.onBuyMouseOut,s=n&&n.cost||0;return c?(0,o.createComponentVNode)(2,i.Table,{children:t.map((function(e){var t=n&&n.name!==e.name,c=a-sl.user.cash),content:t?"FREE":e.price+" cr",onClick:function(){return(0,r.act)(u,"vend",{ref:e.ref})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Wires=void 0;var o=n(0),r=n(3),a=n(2);t.Wires=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.wires||[],l=i.status||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.color,labelColor:e.color,color:e.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:e.cut?"Mend":"Cut",onClick:function(){return n("cut",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Pulse",onClick:function(){return n("pulse",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:e.attached?"Detach":"Attach",onClick:function(){return n("attach",{wire:e.color})}})],4),children:!!e.wire&&(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)("("),e.wire,(0,o.createTextVNode)(")")],0)},e.color)}))})}),!!l.length&&(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],0)}}]); \ No newline at end of file +var n;n=void 0!==e?e:void 0,t.loadCSS=function(e,t,o,r){var a,i=n.document,c=i.createElement("link");if(t)a=t;else{var l=(i.body||i.getElementsByTagName("head")[0]).childNodes;a=l[l.length-1]}var u=i.styleSheets;if(r)for(var d in r)r.hasOwnProperty(d)&&c.setAttribute(d,r[d]);c.rel="stylesheet",c.href=e,c.media="only x",function m(e){if(i.body)return e();setTimeout((function(){m(e)}))}((function(){a.parentNode.insertBefore(c,t?a:a.nextSibling)}));var s=function f(e){for(var t=c.href,n=u.length;n--;)if(u[n].href===t)return e();setTimeout((function(){f(e)}))};function p(){c.addEventListener&&c.removeEventListener("load",p),c.media=o||"all"}return c.addEventListener&&c.addEventListener("load",p),c.onloadcssdefined=s,s(p),c}}).call(this,n(121))},function(e,t,n){"use strict";t.__esModule=!0,t.createStore=void 0;var o=n(70),r=n(396),a=n(3),i=n(117),c=n(118);(0,n(42).createLogger)("store");t.createStore=function(){var e=(0,o.flow)([function(e,t){return void 0===e&&(e={}),e},a.backendReducer,i.toastReducer,c.hotKeyReducer]),t=[c.hotKeyMiddleware];return(0,r.createStore)(e,r.applyMiddleware.apply(void 0,t))}},function(e,t,n){"use strict";t.__esModule=!0,t.applyMiddleware=t.createStore=void 0;var o=n(70);t.createStore=function r(e,t){if(t)return t(r)(e);var n,o=[],a=function(t){n=e(n,t),o.forEach((function(e){return e()}))};return a({type:"@@INIT"}),{dispatch:a,subscribe:function(e){o.push(e)},getState:function(){return n}}};t.applyMiddleware=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i1?t-1:0),o=1;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(0),r=n(10),a=n(21);var i=function(e){var t=e.color,n=e.content,i=e.className,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["color","content","className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["ColorBox",i]),color:n?null:"transparent",backgroundColor:t,content:n||"."},c)))};t.ColorBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Collapsible=void 0;var o=n(0),r=n(21),a=n(119);var i=function(e){var t,n;function i(t){var n;n=e.call(this,t)||this;var o=t.open;return n.state={open:o||!1},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.props,n=this.state.open,i=t.children,c=t.color,l=void 0===c?"default":c,u=t.title,d=t.buttons,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createComponentVNode)(2,r.Box,{mb:1,children:[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},s,{children:u}))),2),d&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",d,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:i})]})},i}(o.Component);t.Collapsible=i},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var o=n(0),r=n(21);t.Dimmer=function(e){var t=e.style,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Box,Object.assign({style:Object.assign({position:"absolute",top:0,bottom:0,left:0,right:0,"background-color":"rgba(0, 0, 0, 0.75)","z-index":1},t)},n)))}},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(0),r=n(10),a=n(21),i=n(88);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},u.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},u.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},u.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(n){e.setSelected(t)}},t)}));return n.length?n:"No Options Found"},u.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,u=t.over,d=t.width,s=(t.onClick,t.selected,c(t,["color","over","width","onClick","selected"])),p=s.className,m=c(s,["className"]),f=u?!this.state.open:this.state.open,h=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)(["Dropdown__menu",u&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:d}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({width:d,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,p])},m,{onClick:function(t){e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",this.state.selected,0),(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,i.Icon,{name:f?"chevron-up":"chevron-down"}),2)]}))),h],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var o=n(0),r=n(10),a=n(21);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.className,n=e.direction,o=e.wrap,a=e.align,c=e.justify,l=e.spacing,u=void 0===l?0:l,d=i(e,["className","direction","wrap","align","justify","spacing"]);return Object.assign({className:(0,r.classes)(["Flex",u>0&&"Flex--spacing--"+u,t]),style:Object.assign({},d.style,{"flex-direction":n,"flex-wrap":o,"align-items":a,"justify-content":c})},d)};t.computeFlexProps=c;var l=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},c(e))))};t.Flex=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.grow,o=e.order,a=e.align,c=i(e,["className","grow","order","align"]);return Object.assign({className:(0,r.classes)(["Flex__item",t]),style:Object.assign({},c.style,{"flex-grow":n,order:o,"align-self":a})},c)};t.computeFlexItemProps=u;var d=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},u(e))))};t.FlexItem=d,d.defaultHooks=r.pureComponentHooks,l.Item=d},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(0),r=n(10),a=n(21);var i=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["NoticeBox",t])},n)))};t.NoticeBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var o=n(0),r=n(17),a=n(10),i=n(15),c=n(161),l=n(21);var u=function(e){var t,n;function u(t){var n;n=e.call(this,t)||this;var a=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:a,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,a=n.props.onDrag;o&&a&&a(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,a=t.maxValue,i=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var u=Number.isFinite(o)?o%i:0;n.internalValue=(0,r.clamp)(n.internalValue+l*i/c,o-i,a+i),n.value=(0,r.clamp)(n.internalValue-n.internalValue%i+u,o,a),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,a=n.state,i=a.dragging,c=a.value,l=a.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!i,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),i)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var u=n.inputRef.current;u.value=l;try{u.focus(),u.select()}catch(d){}}},n}return n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,u.prototype.render=function(){var e=this,t=this.state,n=t.dragging,u=t.editing,d=t.value,s=t.suppressingFlicker,p=this.props,m=p.className,f=p.fluid,h=p.animated,C=p.value,b=p.unit,g=p.minValue,N=p.maxValue,v=p.height,V=p.width,y=p.lineHeight,_=p.fontSize,k=p.format,x=p.onChange,L=p.onDrag,B=C;(n||s)&&(B=d);var w=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(b?" "+b:""),0,{unselectable:i.tridentVersion<=4})},S=h&&!n&&!s&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:B,format:k,children:w})||w(k?k(B):B);return(0,o.createComponentVNode)(2,l.Box,{className:(0,a.classes)(["NumberInput",f&&"NumberInput--fluid",m]),minWidth:V,minHeight:v,lineHeight:y,fontSize:_,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((B-g)/(N-g)*100,0,100)+"%"}}),2),S,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:u?undefined:"none",height:v,"line-height":y,"font-size":_},onBlur:function(t){if(u){var n=(0,r.clamp)(t.target.value,g,N);e.setState({editing:!1,value:n}),e.suppressFlicker(),x&&x(t,n),L&&L(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,g,N);return e.setState({editing:!1,value:n}),e.suppressFlicker(),x&&x(t,n),void(L&&L(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},u}(o.Component);t.NumberInput=u,u.defaultHooks=a.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var o=n(0),r=n(10),a=n(17),i=function(e){var t=e.value,n=e.minValue,i=void 0===n?0:n,c=e.maxValue,l=void 0===c?1:c,u=e.ranges,d=void 0===u?{}:u,s=e.content,p=e.children,m=(t-i)/(l-i),f=s!==undefined||p!==undefined,h=e.color;if(!h)for(var C=0,b=Object.keys(d);C=N[0]&&t<=N[1]){h=g;break}}return h||(h="default"),(0,o.createVNode)(1,"div",(0,r.classes)(["ProgressBar","ProgressBar--color--"+h]),[(0,o.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,a.clamp)(m,0,1)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",[f&&s,f&&p,!f&&(0,a.toFixed)(100*m)+"%"],0)],4)};t.ProgressBar=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(0),r=n(10),a=n(21);var i=function(e){var t=e.className,n=e.title,i=e.level,c=void 0===i?1:i,l=e.buttons,u=e.content,d=e.children,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","content","children"]),p=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),m=!(0,r.isFalsy)(u)||!(0,r.isFalsy)(d);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Section","Section--level--"+c,t])},s,{children:[p&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),m&&(0,o.createVNode)(1,"div","Section__content",[u,d],0)]})))};t.Section=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Tab=t.Tabs=void 0;var o=n(0),r=n(10),a=n(21),i=n(119);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={activeTabKey:null},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.getActiveTab=function(){var e=this.state,t=this.props,n=(0,r.normalizeChildren)(t.children);!function(e){var t=e,n=Array.isArray(t),o=0;for(t=n?t:t[Symbol.iterator]();;){var r;if(n){if(o>=t.length)break;r=t[o++]}else{if((o=t.next()).done)break;r=o.value}var a=r;if(!a.props||"Tab"!==a.props.__type__){var i=JSON.stringify(a,null,2);throw new Error(" only accepts children of type .This is what we received: "+i)}}}(n);var o=t.activeTab||e.activeTabKey,a=n.find((function(e){return(e.key||e.props.label)===o}));return a||(a=n[0],o=a&&(a.key||a.props.label)),{tabs:n,activeTab:a,activeTabKey:o}},u.render=function(){var e=this,t=this.props,n=t.className,l=t.vertical,u=t.altSelection,d=(t.children,c(t,["className","vertical","altSelection","children"])),s=this.getActiveTab(),p=s.tabs,m=s.activeTab,f=s.activeTabKey,h=null;return m&&(h=m.props.content||m.props.children),"function"==typeof h&&(h=h(f)),(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Tabs",l&&"Tabs--vertical",n])},d,{children:[(0,o.createVNode)(1,"div","Tabs__tabBox",p.map((function(t){var n=t.props,a=n.className,d=n.label,s=(n.content,n.children,n.onClick),p=n.highlight,m=c(n,["className","label","content","children","onClick","highlight"]),h=t.key||t.props.label,C=t.active||h===f,b="Button--altSelected"+(l?"--right":"--bottom");return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",C&&"Tabs__tab--active",p&&!C&&"color-yellow",u&&C&&b,a]),selected:!u&&C,color:"transparent",onClick:function(n){e.setState({activeTabKey:h}),s&&s(n,t)}},m,{children:d}),h))})),0),(0,o.createVNode)(1,"div","Tabs__content",h||null,0)]})))},l}(o.Component);t.Tabs=l;var u=function(e){return null};t.Tab=u,u.defaultProps={__type__:"Tab"},l.Tab=u},function(e,t,n){"use strict";t.__esModule=!0,t.TitleBar=void 0;var o=n(0),r=n(10),a=n(20),i=n(15),c=n(38),l=n(88),u=function(e){switch(e){case c.UI_INTERACTIVE:return"good";case c.UI_UPDATE:return"average";case c.UI_DISABLED:default:return"bad"}},d=function(e){var t=e.className,n=e.title,c=e.status,d=e.fancy,s=e.onDragStart,p=e.onClose;return(0,o.createVNode)(1,"div",(0,r.classes)(["TitleBar",t]),[(0,o.createComponentVNode)(2,l.Icon,{className:"TitleBar__statusIcon",color:u(c),name:"eye"}),(0,o.createVNode)(1,"div","TitleBar__title",n===n.toLowerCase()?(0,a.toTitleCase)(n):n,0),(0,o.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return d&&s(e)}}),!!d&&(0,o.createVNode)(1,"div","TitleBar__close TitleBar__clickable",i.tridentVersion<=4?"x":"\xd7",0,{onclick:p})],0)};t.TitleBar=d,d.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=void 0;var o=n(0),r=n(18),a=n(21),i=n(10),c=n(15);var l=function(e){var t,n;function i(t){var n;return(n=e.call(this,t)||this).ref=(0,o.createRef)(),n.state={viewBox:[600,200]},n.handleResize=function(){var e=n.ref.current;n.setState({viewBox:[e.offsetWidth,e.offsetHeight]})},n}n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=i.prototype;return c.componentDidMount=function(){window.addEventListener("resize",this.handleResize),this.handleResize()},c.componentWillUnmount=function(){window.removeEventListener("resize",this.handleResize)},c.render=function(){var e=this,t=this.props,n=t.data,i=void 0===n?[]:n,c=t.rangeX,l=t.rangeY,u=t.fillColor,d=void 0===u?"none":u,s=t.strokeColor,p=void 0===s?"#ffffff":s,m=t.strokeWidth,f=void 0===m?2:m,h=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),C=this.state.viewBox,b=function(e,t,n,o){if(0===e.length)return[];var a=(0,r.zipWith)(Math.min).apply(void 0,e),i=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(a[0]=n[0],i[0]=n[1]),o!==undefined&&(a[1]=o[0],i[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,a,i,t)}))(e)}(i,C,c,l);if(b.length>0){var g=b[0],N=b[b.length-1];b.push([C[0]+f,N[1]]),b.push([C[0]+f,-f]),b.push([-f,-f]),b.push([-f,g[1]])}var v=function(e){for(var t="",n=0;n0?"good":"bad",content:i>0?"Earned "+i+" times":"Locked"})],0,{style:{"vertical-align":"top"}})],4,null,t)};t.Score=c;t.Achievements=function(e){var t=(0,r.useBackend)(e).data;return(0,o.createComponentVNode)(2,a.Tabs,{children:[t.categories.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e,children:(0,o.createComponentVNode)(2,a.Box,{as:"Table",children:t.achievements.filter((function(t){return t.category===e})).map((function(e){return e.score?(0,o.createComponentVNode)(2,c,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name):(0,o.createComponentVNode)(2,i,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name)}))})},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"High Scores",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:t.highscore.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e.name,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Score"})]}),Object.keys(e.scores).map((function(n,r){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:r+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:n===t.user_ckey&&"green",textAlign:"center",children:[0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",mr:2}),n,0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.scores[n]})]},n)}))]})},e.name)}))})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(0),r=n(3),a=n(1);t.AiAirlock=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},l=c[i.power.main]||c[0],u=c[i.power.backup]||c[0],d=c[i.shock]||c[0];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:l.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.main,content:"Disrupt",onClick:function(){return n("disrupt-main")}}),children:[i.power.main?"Online":"Offline"," ",i.wires.main_1&&i.wires.main_2?i.power.main_timeleft>0&&"["+i.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.backup,content:"Disrupt",onClick:function(){return n("disrupt-backup")}}),children:[i.power.backup?"Online":"Offline"," ",i.wires.backup_1&&i.wires.backup_2?i.power.backup_timeleft>0&&"["+i.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:d.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(i.wires.shock&&0===i.shock),content:"Restore",onClick:function(){return n("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Temporary",onClick:function(){return n("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Permanent",onClick:function(){return n("shock-perm")}})],4),children:[2===i.shock?"Safe":"Electrified"," ",(i.wires.shock?i.shock_timeleft>0&&"["+i.shock_timeleft+"s]":"[Wires have been cut!]")||-1===i.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.id_scanner?"power-off":"times",content:i.id_scanner?"Enabled":"Disabled",selected:i.id_scanner,disabled:!i.wires.id_scanner,onClick:function(){return n("idscan-toggle")}}),children:!i.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.emergency?"power-off":"times",content:i.emergency?"Enabled":"Disabled",selected:i.emergency,onClick:function(){return n("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.locked?"lock":"unlock",content:i.locked?"Lowered":"Raised",selected:i.locked,disabled:!i.wires.bolts,onClick:function(){return n("bolt-toggle")}}),children:!i.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.lights?"power-off":"times",content:i.lights?"Enabled":"Disabled",selected:i.lights,disabled:!i.wires.lights,onClick:function(){return n("light-toggle")}}),children:!i.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.safe?"power-off":"times",content:i.safe?"Enabled":"Disabled",selected:i.safe,disabled:!i.wires.safe,onClick:function(){return n("safe-toggle")}}),children:!i.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.speed?"power-off":"times",content:i.speed?"Enabled":"Disabled",selected:i.speed,disabled:!i.wires.timing,onClick:function(){return n("speed-toggle")}}),children:!i.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.opened?"sign-out-alt":"sign-in-alt",content:i.opened?"Open":"Closed",selected:i.opened,disabled:i.locked||i.welded,onClick:function(){return n("open-close")}}),children:!(!i.locked&&!i.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),i.locked?"bolted":"",i.locked&&i.welded?" and ":"",i.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(0),r=n(17),a=n(20),i=n(3),c=n(1),l=n(38),u=n(71);t.AirAlarm=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.data,c=a.locked&&!a.siliconUser;return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.InterfaceLockNoticeBox,{siliconUser:a.siliconUser,locked:a.locked,onLockStatusChange:function(){return r("lock")}}),(0,o.createComponentVNode)(2,d,{state:t}),!c&&(0,o.createComponentVNode)(2,p,{state:t})],0)};var d=function(e){var t=(0,i.useBackend)(e).data,n=(t.environment_data||[]).filter((function(e){return e.value>=.01})),a={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},l=a[t.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[n.length>0&&(0,o.createFragment)([n.map((function(e){var t=a[e.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:l.color,children:l.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:t.atmos_alarm||t.fire_alarm?"bad":"good",children:(t.atmos_alarm?"Atmosphere Alarm":t.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!t.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return m}},vents:{title:"Vent Controls",component:function(){return f}},scrubbers:{title:"Scrubber Controls",component:function(){return C}},modes:{title:"Operating Mode",component:function(){return g}},thresholds:{title:"Alarm Thresholds",component:function(){return N}}},p=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.config,l=s[a.screen]||s.home,u=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:"home"!==a.screen&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("tgui:view",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},m=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data,a=r.mode,l=r.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:l?"exclamation-triangle":"exclamation",color:l&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return n(l?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===a?"exclamation-triangle":"exclamation",color:3===a&&"danger",content:"Panic Siphon",onClick:function(){return n("mode",{mode:3===a?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return n("tgui:view",{screen:"vents"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return n("tgui:view",{screen:"scrubbers"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return n("tgui:view",{screen:"modes"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return n("tgui:view",{screen:"thresholds"})}})],4)},f=function(e){var t=e.state,n=(0,i.useBackend)(e).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},h=function(e){var t=e.id_tag,n=e.long_name,r=e.power,l=e.checks,u=e.excheck,d=e.incheck,s=e.direction,p=e.external,m=e.internal,f=e.extdefault,h=e.intdefault,C=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(n),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:r?"power-off":"times",selected:r,content:r?"On":"Off",onClick:function(){return C("power",{id_tag:t,val:Number(!r)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:"release"===s?"Pressurizing":"Releasing"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:d,onClick:function(){return C("incheck",{id_tag:t,val:l})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:u,onClick:function(){return C("excheck",{id_tag:t,val:l})}})]}),!!d&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(m),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_internal_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:h,content:"Reset",onClick:function(){return C("reset_internal_pressure",{id_tag:t})}})]}),!!u&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(p),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_external_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:f,content:"Reset",onClick:function(){return C("reset_external_pressure",{id_tag:t})}})]})]})})},C=function(e){var t=e.state,n=(0,i.useBackend)(e).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,b,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},b=function(e){var t=e.long_name,n=e.power,r=e.scrubbing,u=e.id_tag,d=e.widenet,s=e.filter_types,p=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(t),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:n?"power-off":"times",content:n?"On":"Off",selected:n,onClick:function(){return p("power",{id_tag:u,val:Number(!n)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:r?"filter":"sign-in-alt",color:r||"danger",content:r?"Scrubbing":"Siphoning",onClick:function(){return p("scrubbing",{id_tag:u,val:Number(!r)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:d?"expand":"compress",selected:d,content:d?"Expanded range":"Normal range",onClick:function(){return p("widenet",{id_tag:u,val:Number(!d)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:r&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,l.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return p("toggle_filter",{id_tag:u,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})},g=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data.modes;return r&&0!==r.length?r.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return n("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},N=function(e){var t=(0,i.useBackend)(e),n=t.act,a=t.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,a.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return n("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AiRestorer=void 0;var o=n(0),r=n(3),a=n(1);t.AiRestorer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.AI_present,l=i.error,u=i.name,d=i.laws,s=i.isDead,p=i.restoring,m=i.health,f=i.ejectable;return(0,o.createFragment)([l&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:l}),!!f&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:c?u:"----------",disabled:!c,onClick:function(){return n("PRG_eject")}}),!!c&&(0,o.createComponentVNode)(2,a.Section,{title:f?"System Status":u,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:s?"bad":"good",children:s?"Nonfunctional":"Functional"}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})})}),!!p&&(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"plus",content:"Begin Reconstruction",disabled:p,mt:1,onClick:function(){return n("PRG_beginReconstruction")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",level:2,children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{className:"candystripe",children:e},e)}))})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(0),r=n(3),a=n(1),i=n(167);t.AirlockElectronics=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.regions||[],u=c.accesses||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Main",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access Required",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.oneAccess?"unlock":"lock",content:c.oneAccess?"One":"All",onClick:function(){return n("one_access")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unrestricted Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:1&c.unres_direction?"check-square-o":"square-o",content:"North",selected:1&c.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"1"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:2&c.unres_direction?"check-square-o":"square-o",content:"East",selected:2&c.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"2"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:4&c.unres_direction?"check-square-o":"square-o",content:"South",selected:4&c.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"4"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:8&c.unres_direction?"check-square-o":"square-o",content:"West",selected:8&c.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"8"})}})]})]})}),(0,o.createComponentVNode)(2,i.AccessList,{accesses:l,selectedList:u,accessMod:function(e){return n("set",{access:e})},grantAll:function(){return n("grant_all")},denyAll:function(){return n("clear_all")},grantDep:function(e){return n("grant_region",{region:e})},denyDep:function(e){return n("deny_region",{region:e})}})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(0),r=n(3),a=n(1),i=n(71);t.Apc=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},s=u[c.externalPower]||u[0],p=u[c.chargingStatus]||u[0],m=c.powerChannels||[],f=d[c.malfStatus]||d[0],h=c.powerCellStatus/100;return c.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",c.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return n("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:c.siliconUser,locked:c.locked,onLockStatusChange:function(){return n("lock")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",content:c.isOperating?"On":"Off",selected:c.isOperating&&!l,disabled:l,onClick:function(){return n("breaker")}}),children:["[ ",s.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.chargeMode?"sync":"close",content:c.chargeMode?"Auto":"Off",disabled:l,onClick:function(){return n("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[m.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!l&&(1===e.status||3===e.status),disabled:l,onClick:function(){return n("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!l&&2===e.status,disabled:l,onClick:function(){return n("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!l&&0===e.status,disabled:l,onClick:function(){return n("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,c.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!c.siliconUser&&(0,o.createFragment)([!!c.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:f.icon,content:f.content,color:"bad",onClick:function(){return n(f.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return n("overload")}})],0),children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.coverLocked?"lock":"unlock",content:c.coverLocked?"Engaged":"Disengaged",disabled:l,onClick:function(){return n("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.emergencyLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.nightshiftLights?"Enabled":"Disabled",onClick:function(){return n("toggle_nightshift")}})})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(0),r=n(3),a=n(1);t.AtmosAlertConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.priority||[],l=i.minor||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[c.length>0?c.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),l.length>0?l.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16)],0)})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(0),r=n(18),a=n(17),i=n(3),c=n(1);t.AtmosControlConsole=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=l.sensors||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:!!l.tank&&u[0].long_name,children:u.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,c.Section,{title:!l.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),l.tank&&(0,o.createComponentVNode)(2,c.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"undo",content:"Reconnect",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.inputting?"power-off":"times",content:l.inputting?"Injecting":"Off",selected:l.inputting,onClick:function(){return n("input")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:l.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return n("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.outputting?"power-off":"times",content:l.outputting?"Open":"Closed",selected:l.outputting,onClick:function(){return n("output")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:parseFloat(l.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return n("pressure",{pressure:t})}})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(0),r=n(3),a=n(1),i=n(38);t.AtmosFilter=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.filter_types||[];return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(c.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:c.rate===c.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,i.getGasLabel)(e.id,e.name),onClick:function(){return n("filter",{mode:e.id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(0),r=n(3),a=n(1);t.AtmosMixer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.set_pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node2",{concentration:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(0),r=n(3),a=n(1);t.AtmosPump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),i.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.rate===i.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(0),r=n(3),a=n(1);t.BankMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.current_balance,l=i.siphoning,u=i.station_name;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:u+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"times":"sync",content:l?"Stop Siphoning":"Siphon Credits",selected:l,onClick:function(){return n(l?"halt":"siphon")}}),children:c+" cr"})})}),(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Authorized personnel only"})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BlackmarketUplink=void 0;var o=n(0),r=n(18),a=n(3),i=n(1);t.BlackmarketUplink=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.categories||[],u=c.delivery_methods||[],d=c.delivery_method_description||[],s=c.markets||{},p=c.items||{},m=!!c.buying&&(0,o.createComponentVNode)(2,i.Dimmer,{textAlign:"center",children:[(0,o.createComponentVNode)(2,i.Grid,{mt:20,children:(0,r.map)((function(e){var t=e.name;return"LTSRBT"!==t||c.ltsrbt_built?(0,o.createComponentVNode)(2,i.Grid.Column,{textAlign:"center",position:"relative",children:[(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Box,{fontSize:"30px",children:t}),(0,o.createComponentVNode)(2,i.Box,{mt:1,children:d[t]})]}),(0,o.createComponentVNode)(2,i.Button,{content:e.price+" cr",mt:1,disabled:c.moneyc.money,onClick:function(){return n("select",{item:e.id})}})})]}),(0,o.createComponentVNode)(2,i.Table.Row,{children:(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.desc})})]},e.name)}))},e)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.BluespaceArtillery=void 0;var o=n(0),r=n(3),a=n(1);t.BluespaceArtillery=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.notice,l=i.connected,u=i.unlocked,d=i.target;return(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c}),l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"crosshairs",disabled:!u,onClick:function(){return n("recalibrate")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"average":"bad",fontSize:"25px",children:d||"No Target Set"})}),(0,o.createComponentVNode)(2,a.Section,{children:u?(0,o.createComponentVNode)(2,a.Box,{style:{margin:"auto"},children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"FIRE",color:"bad",disabled:!d,fontSize:"30px",textAlign:"center",lineHeight:"46px",onClick:function(){return n("fire")}})}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"bad",fontSize:"18px",children:"Bluespace artillery is currently locked."}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"Awaiting authorization via keycard reader from at minimum two station heads."})],4)})],4):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",content:"Complete Deployment",onClick:function(){return n("build")}})})})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(0),r=(n(20),n(15)),a=n(1);t.Bepis=function(e){var t=e.state,n=t.config,i=t.data,c=n.ref,l=i.amount;return(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.manual_power?"Off":"On",selected:!i.manual_power,onClick:function(){return(0,r.act)(c,"toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return(0,r.act)(c,"account_reset")}}),children:["Console is currently being operated by ",i.account_owner?i.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:i.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[i.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:i.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:i.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return(0,r.act)(c,"amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===i.manual_power||1===i.silicon_check,onClick:function(){return(0,r.act)(c,"deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",i.mean_value]}),(0,o.createComponentVNode)(2,a.Box,{children:["Current chance of Success: Est. ",i.success_estimate,"%"]}),i.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"begin_experiment")},content:"Begin Testing"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BorgPanel=void 0;var o=n(0),r=n(3),a=n(1);t.BorgPanel=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.borg||{},l=i.cell||{},u=l.charge/l.maxcharge,d=i.channels||[],s=i.modules||[],p=i.upgrades||[],m=i.ais||[],f=i.laws||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:c.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){return n("rename")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.emagged?"check-square-o":"square-o",content:"Emagged",selected:c.emagged,onClick:function(){return n("toggle_emagged")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.lockdown?"check-square-o":"square-o",content:"Locked Down",selected:c.lockdown,onClick:function(){return n("toggle_lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.scrambledcodes?"check-square-o":"square-o",content:"Scrambled Codes",selected:c.scrambledcodes,onClick:function(){return n("toggle_scrambledcodes")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:[l.missing?(0,o.createVNode)(1,"span","color-bad","No cell installed",16):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,content:l.charge+" / "+l.maxcharge}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("set_charge")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Change",onClick:function(){return n("change_cell")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Remove",color:"bad",onClick:function(){return n("remove_cell")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radio Channels",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_radio",{channel:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:c.active_module===e.type?"check-square-o":"square-o",content:e.name,selected:c.active_module===e.type,onClick:function(){return n("setmodule",{module:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_upgrade",{upgrade:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"check-square-o":"square-o",content:e.name,selected:e.connected,onClick:function(){return n("slavetoai",{slavetoai:e.ref})}},e.ref)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.lawupdate?"check-square-o":"square-o",content:"Lawsync",selected:c.lawupdate,onClick:function(){return n("toggle_lawupdate")}}),children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigTimer=void 0;var o=n(0),r=n(3),a=n(1);t.BrigTimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Cell Timer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:i.timing?"Stop":"Start",selected:i.timing,onClick:function(){return n(i.timing?"stop":"start")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:i.flash_charging?"Recharging":"Flash",disabled:i.flash_charging,onClick:function(){return n("flash")}})],4),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("time",{adjust:-600})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("time",{adjust:-100})}})," ",String(i.minutes).padStart(2,"0"),":",String(i.seconds).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("time",{adjust:100})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("time",{adjust:600})}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Short",onClick:function(){return n("preset",{preset:"short"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Medium",onClick:function(){return n("preset",{preset:"medium"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Long",onClick:function(){return n("preset",{preset:"long"})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Canister=void 0;var o=n(0),r=n(3),a=n(1);t.Canister=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:["The regulator ",i.hasHoldingTank?"is":"is not"," connected to a tank."]}),(0,o.createComponentVNode)(2,a.Section,{title:"Canister",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Relabel",onClick:function(){return n("relabel")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.tankPressure})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:i.portConnected?"good":"average",content:i.portConnected?"Connected":"Not Connected"}),!!i.isPrototype&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.restricted?"lock":"unlock",color:"caution",content:i.restricted?"Restricted to Engineering":"Public",onClick:function(){return n("restricted")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Valve",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.releasePressure/(i.maxReleasePressure-i.minReleasePressure),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.releasePressure})," kPa"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"undo",disabled:i.releasePressure===i.defaultReleasePressure,content:"Reset",onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:i.releasePressure<=i.minReleasePressure,content:"Min",onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("pressure",{pressure:"input"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:i.releasePressure>=i.maxReleasePressure,content:"Max",onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Valve",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.valveOpen?"unlock":"lock",color:i.valveOpen?i.hasHoldingTank?"caution":"danger":null,content:i.valveOpen?"Open":"Closed",onClick:function(){return n("valve")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",buttons:!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",color:i.valveOpen&&"danger",content:"Eject",onClick:function(){return n("eject")}}),children:[!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:i.holdingTank.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.holdingTank.tankPressure})," kPa"]})]}),!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Holding Tank"})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Canvas=void 0;var o=n(0),r=n(3),a=n(1);n(10);var i=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).canvasRef=(0,o.createRef)(),n.onCVClick=t.onCanvasClick,n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var a=r.prototype;return a.componentDidMount=function(){this.drawCanvas(this.props)},a.componentDidUpdate=function(){this.drawCanvas(this.props)},a.drawCanvas=function(e){var t=this.canvasRef.current.getContext("2d"),n=e.value,o=n.length;if(o){var r=n[0].length,a=Math.round(this.canvasRef.current.width/o),i=Math.round(this.canvasRef.current.height/r);t.save(),t.scale(a,i);for(var c=0;c=0||(r[n]=e[n]);return r}(t,["res","value","px_per_unit"]),c=n.length*a,l=0!==c?n[0].length*a:0;return(0,o.normalizeProps)((0,o.createVNode)(1,"canvas",null,"Canvas failed to render.",16,Object.assign({width:c||300,height:l||300},i,{onClick:function(t){return e.clickwrapper(t)}}),null,this.canvasRef))},r}(o.Component);t.Canvas=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data;return(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,i,{value:c.grid,onCanvasClick:function(e,t){return n("paint",{x:e,y:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:[!c.finalized&&(0,o.createComponentVNode)(2,a.Button.Confirm,{onClick:function(){return n("finalize")},content:"Finalize"}),c.name]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=t.Cargo=void 0;var o=n(0),r=n(18),a=n(15),i=n(1),c=n(71);t.Cargo=function(e){var t=e.state,n=t.config,r=t.data,c=n.ref,s=r.supplies||{},p=r.requests||[],m=r.cart||[],f=m.reduce((function(e,t){return e+t.cost}),0),h=!r.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:[0===m.length&&"Cart is empty",1===m.length&&"1 item",m.length>=2&&m.length+" items"," ",f>0&&"("+f+" cr)"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return(0,a.act)(c,"clear")}})],4);return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle",children:r.docked&&!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{content:r.location,onClick:function(){return(0,a.act)(c,"send")}})||r.location}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"CentCom Message",children:r.message}),r.loan&&!r.requestonly?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Loan",children:r.loan_dispatched?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Loaned to Centcom"}):(0,o.createComponentVNode)(2,i.Button,{content:"Loan Shuttle",disabled:!(r.away&&r.docked),onClick:function(){return(0,a.act)(c,"loan")}})}):""]})}),(0,o.createComponentVNode)(2,i.Tabs,{mt:2,children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Catalog",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Catalog",buttons:(0,o.createFragment)([h,(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:r.self_paid?"check-square-o":"square-o",content:"Buy Privately",selected:r.self_paid,onClick:function(){return(0,a.act)(c,"toggleprivate")}})],0),children:(0,o.createComponentVNode)(2,l,{state:t,supplies:s})})}},"catalog"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Requests ("+p.length+")",icon:"envelope",highlight:p.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Active Requests",buttons:!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return(0,a.act)(c,"denyall")}}),children:(0,o.createComponentVNode)(2,u,{state:t,requests:p})})}},"requests"),!r.requestonly&&(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Checkout ("+m.length+")",icon:"shopping-cart",highlight:m.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Current Cart",buttons:h,children:(0,o.createComponentVNode)(2,d,{state:t,cart:m})})}},"cart")]})],4)};var l=function(e){var t=e.state,n=e.supplies,c=t.config,l=t.data,u=c.ref,d=function(e){var t=n[e].packs;return(0,o.createVNode)(1,"table","LabeledList",t.map((function(e){return(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[e.name,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.small_item&&(0,o.createFragment)([(0,o.createTextVNode)("Small Item")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.access&&(0,o.createFragment)([(0,o.createTextVNode)("Restrictions Apply")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:(l.self_paid?Math.round(1.1*e.cost):e.cost)+" credits",tooltip:e.desc,tooltipPosition:"left",onClick:function(){return(0,a.act)(u,"add",{id:e.id})}}),2)],4,null,e.name)})),0)};return(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e){var t=e.name;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:t,children:d},t)}))(n)})},u=function(e){var t=e.state,n=e.requests,r=t.config,c=t.data,l=r.ref;return 0===n.length?(0,o.createComponentVNode)(2,i.Box,{color:"good",children:"No Requests"}):(0,o.createVNode)(1,"table","LabeledList",n.map((function(e){return(0,o.createFragment)([(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[(0,o.createTextVNode)("#"),e.id,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__content",e.object,0),(0,o.createVNode)(1,"td","LabeledList__cell",[(0,o.createTextVNode)("By "),(0,o.createVNode)(1,"b",null,e.orderer,0)],4),(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createVNode)(1,"i",null,e.reason,0),2),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",[e.cost,(0,o.createTextVNode)(" credits"),(0,o.createTextVNode)(" "),!c.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"check",color:"good",onClick:function(){return(0,a.act)(l,"approve",{id:e.id})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"bad",onClick:function(){return(0,a.act)(l,"deny",{id:e.id})}})],4)],0)],4)],4,e.id)})),0)},d=function(e){var t=e.state,n=e.cart,r=t.config,c=t.data,l=r.ref;return(0,o.createFragment)([0===n.length&&"Nothing in cart",n.length>0&&(0,o.createComponentVNode)(2,i.LabeledList,{children:n.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{className:"candystripe",label:"#"+e.id,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:2,children:[!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)," ",e.cost," credits"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus",onClick:function(){return(0,a.act)(l,"remove",{id:e.id})}})],4),children:e.object},e.id)}))}),n.length>0&&!c.requestonly&&(0,o.createComponentVNode)(2,i.Box,{mt:2,children:1===c.away&&1===c.docked&&(0,o.createComponentVNode)(2,i.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return(0,a.act)(l,"send")}})||(0,o.createComponentVNode)(2,i.Box,{opacity:.5,children:["Shuttle in ",c.location,"."]})})],0)};t.CargoExpress=function(e){var t=e.state,n=t.config,r=t.data,u=n.ref,d=r.supplies||{};return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{siliconUser:r.siliconUser,locked:r.locked,onLockStatusChange:function(){return(0,a.act)(u,"lock")},accessText:"a QM-level ID card"}),!r.locked&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Cargo Bay",selected:!r.usingBeacon,onClick:function(){return(0,a.act)(u,"LZCargo")}}),(0,o.createComponentVNode)(2,i.Button,{selected:r.usingBeacon,disabled:!r.hasBeacon,onClick:function(){return(0,a.act)(u,"LZBeacon")},children:[r.beaconzone," (",r.beaconName,")"]}),(0,o.createComponentVNode)(2,i.Button,{content:r.printMsg,disabled:!r.canBuyBeacon,onClick:function(){return(0,a.act)(u,"printBeacon")}})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Notice",children:r.message})]})}),(0,o.createComponentVNode)(2,l,{state:t,supplies:d})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoHoldTerminal=void 0;var o=n(0),r=n(3),a=n(1);t.CargoHoldTerminal=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.points,l=i.pad,u=i.sending,d=i.status_report;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Cargo Value",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(c)})," credits"]})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Recalculate Value",disabled:!l,onClick:function(){return n("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"times":"arrow-up",content:u?"Stop Sending":"Send Goods",selected:u,disabled:!l,onClick:function(){return n(u?"stop":"send")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:l?"good":"bad",children:l?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:d})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(0),r=n(3),a=n(1);t.CellularEmporium=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.abilities;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!i.can_readapt,onClick:function(){return n("readapt")}}),children:i.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return n("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncher=void 0;var o=n(0),r=(n(20),n(3)),a=n(1);t.CentcomPodLauncher=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:"To use this, simply spawn the atoms you want in one of the five Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."}),(0,o.createComponentVNode)(2,a.Section,{title:"Centcom Pod Customization (To be used against Helen Weinstein)",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supply Bay",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bay #1",selected:1===i.bayNumber,onClick:function(){return n("bay1")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #2",selected:2===i.bayNumber,onClick:function(){return n("bay2")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #3",selected:3===i.bayNumber,onClick:function(){return n("bay3")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #4",selected:4===i.bayNumber,onClick:function(){return n("bay4")}}),(0,o.createComponentVNode)(2,a.Button,{content:"ERT Bay",selected:5===i.bayNumber,tooltip:"This bay is located on the western edge of CentCom. Its the\nglass room directly west of where ERT spawn, and south of the\nCentCom ferry. Useful for launching ERT/Deathsquads/etc. onto\nthe station via drop pods.",onClick:function(){return n("bay5")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport to",children:[(0,o.createComponentVNode)(2,a.Button,{content:i.bay,onClick:function(){return n("teleportCentcom")}}),(0,o.createComponentVNode)(2,a.Button,{content:i.oldArea?i.oldArea:"Where you were",disabled:!i.oldArea,onClick:function(){return n("teleportBack")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Item Mode",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Clone Items",selected:i.launchClone,tooltip:"Choosing this will create a duplicate of the item to be\nlaunched in Centcom, allowing you to send one type of item\nmultiple times. Either way, the atoms are forceMoved into\nthe supplypod after it lands (but before it opens).",onClick:function(){return n("launchClone")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random Items",selected:i.launchRandomItem,tooltip:"Choosing this will pick a random item from the selected turf\ninstead of the entire turfs contents. Best combined with\nsingle/random turf.",onClick:function(){return n("launchRandomItem")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Launch style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Ordered",selected:1===i.launchChoice,tooltip:'Instead of launching everything in the bay at once, this\nwill "scan" things (one turf-full at a time) in order, left\nto right and top to bottom. undoing will reset the "scanner"\nto the top-leftmost position.',onClick:function(){return n("launchOrdered")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random Turf",selected:2===i.launchChoice,tooltip:"Instead of launching everything in the bay at once, this\nwill launch one random turf of items at a time.",onClick:function(){return n("launchRandomTurf")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosion",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Size",selected:1===i.explosionChoice,tooltip:"This will cause an explosion of whatever size you like\n(including flame range) to occur as soon as the supplypod\nlands. Dont worry, supply-pods are explosion-proof!",onClick:function(){return n("explosionCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Adminbus",selected:2===i.explosionChoice,tooltip:"This will cause a maxcap explosion (dependent on server\nconfig) to occur as soon as the supplypod lands. Dont worry,\nsupply-pods are explosion-proof!",onClick:function(){return n("explosionBus")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Damage",selected:1===i.damageChoice,tooltip:"Anyone caught under the pod when it lands will be dealt\nthis amount of brute damage. Sucks to be them!",onClick:function(){return n("damageCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gib",selected:2===i.damageChoice,tooltip:"This will attempt to gib any mob caught under the pod when\nit lands, as well as dealing a nice 5000 brute damage. Ya\nknow, just to be sure!",onClick:function(){return n("damageGib")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Effects",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Stun",selected:i.effectStun,tooltip:"Anyone who is on the turf when the supplypod is launched\nwill be stunned until the supplypod lands. They cant get\naway that easy!",onClick:function(){return n("effectStun")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delimb",selected:i.effectLimb,tooltip:"This will cause anyone caught under the pod to lose a limb,\nexcluding their head.",onClick:function(){return n("effectLimb")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Yeet Organs",selected:i.effectOrgans,tooltip:"This will cause anyone caught under the pod to lose all\ntheir limbs and organs in a spectacular fashion.",onClick:function(){return n("effectOrgans")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Movement",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bluespace",selected:i.effectBluespace,tooltip:"Gives the supplypod an advanced Bluespace Recyling Device.\nAfter opening, the supplypod will be warped directly to the\nsurface of a nearby NT-designated trash planet (/r/ss13).",onClick:function(){return n("effectBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stealth",selected:i.effectStealth,tooltip:'This hides the red target icon from appearing when you\nlaunch the supplypod. Combos well with the "Invisible"\nstyle. Sneak attack, go!',onClick:function(){return n("effectStealth")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Quiet",selected:i.effectQuiet,tooltip:"This will keep the supplypod from making any sounds, except\nfor those specifically set by admins in the Sound section.",onClick:function(){return n("effectQuiet")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reverse Mode",selected:i.effectReverse,tooltip:"This pod will not send any items. Instead, after landing,\nthe supplypod will close (similar to a normal closet closing),\nand then launch back to the right centcom bay to drop off any\nnew contents.",onClick:function(){return n("effectReverse")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile Mode",selected:i.effectMissile,tooltip:"This pod will not send any items. Instead, it will immediately\ndelete after landing (Similar visually to setting openDelay\n& departDelay to 0, but this looks nicer). Useful if you just\nwanna fuck some shit up. Combos well with the Missile style.",onClick:function(){return n("effectMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Any Descent Angle",selected:i.effectCircle,tooltip:"This will make the supplypod come in from any angle. Im not\nsure why this feature exists, but here it is.",onClick:function(){return n("effectCircle")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Machine Gun Mode",selected:i.effectBurst,tooltip:"This will make each click launch 5 supplypods inaccuratly\naround the target turf (a 3x3 area). Combos well with the\nMissile Mode if you dont want shit lying everywhere after.",onClick:function(){return n("effectBurst")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Specific Target",selected:i.effectTarget,tooltip:"This will make the supplypod target a specific atom, instead\nof the mouses position. Smiting does this automatically!",onClick:function(){return n("effectTarget")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name/Desc",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Name/Desc",selected:i.effectName,tooltip:"Allows you to add a custom name and description.",onClick:function(){return n("effectName")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Alert Ghosts",selected:i.effectAnnounce,tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb\nshit is aboutta come outta the pod.",onClick:function(){return n("effectAnnounce")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sound",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Sound",selected:i.fallingSound,tooltip:"Choose a sound to play as the pod falls. Note that for this\nto work right you should know the exact length of the sound,\nin seconds.",onClick:function(){return n("fallSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Sound",selected:i.landingSound,tooltip:"Choose a sound to play when the pod lands.",onClick:function(){return n("landingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Sound",selected:i.openingSound,tooltip:"Choose a sound to play when the pod opens.",onClick:function(){return n("openingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Sound",selected:i.leavingSound,tooltip:"Choose a sound to play when the pod departs (whether that be\ndelection in the case of a bluespace pod, or leaving for\ncentcom for a reversing pod).",onClick:function(){return n("leavingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Admin Sound Volume",selected:i.soundVolume,tooltip:"Choose the volume for the sound to play at. Default values\nare between 1 and 100, but hey, do whatever. Im a tooltip,\nnot a cop.",onClick:function(){return n("soundVolume")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timers",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Duration",selected:4!==i.fallDuration,tooltip:"Set how long the animation for the pod falling lasts. Create\ndramatic, slow falling pods!",onClick:function(){return n("fallDuration")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Time",selected:20!==i.landingDelay,tooltip:"Choose the amount of time it takes for the supplypod to hit\nthe station. By default this value is 0.5 seconds.",onClick:function(){return n("landingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Time",selected:30!==i.openingDelay,tooltip:"Choose the amount of time it takes for the supplypod to open\nafter landing. Useful for giving whatevers inside the pod a\nnice dramatic entrance! By default this value is 3 seconds.",onClick:function(){return n("openingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Time",selected:30!==i.departureDelay,tooltip:"Choose the amount of time it takes for the supplypod to leave\nafter landing. By default this value is 3 seconds.",onClick:function(){return n("departureDelay")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.styleChoice,tooltip:"Same color scheme as the normal station-used supplypods",onClick:function(){return n("styleStandard")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.styleChoice,tooltip:"The same as the stations upgraded blue-and-white\nBluespace Supplypods",onClick:function(){return n("styleBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate",selected:4===i.styleChoice,tooltip:"A menacing black and blood-red. Great for sending meme-ops\nin style!",onClick:function(){return n("styleSyndie")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Deathsquad",selected:5===i.styleChoice,tooltip:"A menacing black and dark blue. Great for sending deathsquads\nin style!",onClick:function(){return n("styleBlue")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cult Pod",selected:6===i.styleChoice,tooltip:"A blood and rune covered cult pod!",onClick:function(){return n("styleCult")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile",selected:7===i.styleChoice,tooltip:"A large missile. Combos well with a missile mode, so the\nmissile doesnt stick around after landing.",onClick:function(){return n("styleMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate Missile",selected:8===i.styleChoice,tooltip:"A large blood-red missile. Combos well with missile mode,\nso the missile doesnt stick around after landing.",onClick:function(){return n("styleSMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Supply Crate",selected:9===i.styleChoice,tooltip:"A large, dark-green military supply crate.",onClick:function(){return n("styleBox")}}),(0,o.createComponentVNode)(2,a.Button,{content:"HONK",selected:10===i.styleChoice,tooltip:"A colorful, clown inspired look.",onClick:function(){return n("styleHONK")}}),(0,o.createComponentVNode)(2,a.Button,{content:"~Fruit",selected:11===i.styleChoice,tooltip:"For when an orange is angry",onClick:function(){return n("styleFruit")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Invisible",selected:12===i.styleChoice,tooltip:'Makes the supplypod invisible! Useful for when you want to\nuse this feature with a gateway or something. Combos well\nwith the "Stealth" and "Quiet Landing" effects.',onClick:function(){return n("styleInvisible")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gondola",selected:13===i.styleChoice,tooltip:"This gondola can control when he wants to deliver his supplies\nif he has a smart enough mind, so offer up his body to ghosts\nfor maximum enjoyment. (Make sure to turn off bluespace and\nset a arbitrarily high open-time if you do!",onClick:function(){return n("styleGondola")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Show Contents (See Through Pod)",selected:14===i.styleChoice,tooltip:"By selecting this, the pod will instead look like whatevers\ninside it (as if it were the contents falling by themselves,\nwithout a pod). Useful for launching mechs at the station\nand standing tall as they soar in from the heavens.",onClick:function(){return n("styleSeeThrough")}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i.numObjects+" turfs in "+i.bay,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"undo Pody Bay",tooltip:"Manually undoes the possible things to launch in the\npod bay.",onClick:function(){return n("undo")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Enter Launch Mode",selected:i.giveLauncher,tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN",onClick:function(){return n("giveLauncher")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Selected Bay",color:"bad",tooltip:"This will delete all objs and mobs from the selected bay.",tooltipPosition:"left",onClick:function(){return n("clearBay")}})],4)})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(0),r=n(3),a=n(1);t.ChemAcclimator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[i.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return n("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:i.target_temperature,stepPixelSize:2,onChange:function(e,t){n("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.enabled?"On":"Off",selected:i.enabled,onClick:function(){return n("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.max_volume,unit:"u",width:"50px",minValue:i.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return n("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:i.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:i.emptying?"Emptying":"Filling"})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(0),r=n(3),a=n(1);t.ChemDebugSynthesizer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.amount,l=i.beakerCurrentVolume,u=i.beakerMaxVolume,d=i.isBeakerLoaded,s=i.beakerContents,p=void 0===s?[]:s;return(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",minValue:1,maxValue:u,step:1,stepPixelSize:2,onChange:function(e,t){return n("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return n("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return n("makecup")}}),children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})," / "+u+" u"]}),p.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(0),r=n(17),a=n(20),i=n(3),c=n(1);t.ChemDispenser=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=!!l.recordingRecipe,d=Object.keys(l.recipes).map((function(e){return{name:e,contents:l.recipes[e]}})),s=l.beakerTransferAmounts||[],p=u&&Object.keys(l.recordingRecipe).map((function(e){return{id:e,name:(0,a.toTitleCase)(e.replace(/_/," ")),volume:l.recordingRecipe[e]}}))||l.beakerContents||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Status",buttons:u&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,color:"red",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"circle",mr:1}),"Recording"]}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:l.energy/l.maxEnergy,content:(0,r.toFixed)(l.energy)+" units"})})})}),(0,o.createComponentVNode)(2,c.Section,{title:"Recipes",buttons:(0,o.createFragment)([!u&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,children:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",content:"Clear recipes",onClick:function(){return n("clear_recipes")}})}),!u&&(0,o.createComponentVNode)(2,c.Button,{icon:"circle",disabled:!l.isBeakerLoaded,content:"Record",onClick:function(){return n("record_recipe")}}),u&&(0,o.createComponentVNode)(2,c.Button,{icon:"ban",color:"transparent",content:"Discard",onClick:function(){return n("cancel_recording")}}),u&&(0,o.createComponentVNode)(2,c.Button,{icon:"save",color:"green",content:"Save",onClick:function(){return n("save_recording")}})],0),children:(0,o.createComponentVNode)(2,c.Box,{mr:-1,children:[d.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",width:"129.5px",lineHeight:"21px",content:e.name,onClick:function(){return n("dispense_recipe",{recipe:e.name})}},e.name)})),0===d.length&&(0,o.createComponentVNode)(2,c.Box,{color:"light-gray",children:"No recipes."})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Dispense",buttons:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"plus",selected:e===l.amount,content:e,onClick:function(){return n("amount",{target:e})}},e)})),children:(0,o.createComponentVNode)(2,c.Box,{mr:-1,children:l.chemicals.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",width:"129.5px",lineHeight:"21px",content:e.title,onClick:function(){return n("dispense",{reagent:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"minus",disabled:u,content:e,onClick:function(){return n("remove",{amount:e})}},e)})),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Beaker",buttons:!!l.isBeakerLoaded&&(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",disabled:!l.isBeakerLoaded,onClick:function(){return n("eject")}}),children:(u?"Virtual beaker":l.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.AnimatedNumber,{initial:0,value:l.beakerCurrentVolume}),(0,o.createTextVNode)("/"),l.beakerMaxVolume,(0,o.createTextVNode)(" units")],0))||"No beaker"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Contents",children:[(0,o.createComponentVNode)(2,c.Box,{color:"label",children:l.isBeakerLoaded||u?0===p.length&&"Nothing":"N/A"}),p.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{color:"label",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{initial:0,value:e.volume})," ","units of ",e.name]},e.name)}))]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(0),r=n(3),a=n(1);var i=function(e){var t=(0,r.useBackend)(e).act,n=e.title,i=e.list,c=e.reagentName,l=e.onReagentInput,u=n.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:n,minHeight:40,ml:.5,mr:.5,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return l(t)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return t("add",{which:u,name:c})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return t("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={leftReagentName:"",rightReagentName:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setLeftReagentName=function(e){this.setState({leftReagentName:e})},c.setRightReagentName=function(e){this.setState({rightReagentName:e})},c.render=function(){var e=this,t=this.props.state,n=t.data,r=n.left,c=void 0===r?[]:r,l=n.right,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Left",list:c,reagentName:this.state.leftReagentName,onReagentInput:function(t){return e.setLeftReagentName(t)},state:t})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Right",list:u,reagentName:this.state.rightReagentName,onReagentInput:function(t){return e.setRightReagentName(t)},state:t})})]})},r}(o.Component);t.ChemFilter=c},function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(0),r=n(17),a=n(3),i=n(1),c=n(168);t.ChemHeater=function(e){var t=(0,a.useBackend)(e),n=t.act,l=t.data,u=l.targetTemp,d=l.isActive,s=l.isBeakerLoaded,p=l.currentTemp,m=l.beakerCurrentVolume,f=l.beakerMaxVolume,h=l.beakerContents,C=void 0===h?[]:h;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Thermostat",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,i.NumberInput,{width:"65px",unit:"K",step:2,stepPixelSize:1,value:(0,r.round)(u),minValue:0,maxValue:1e3,onDrag:function(e,t){return n("temperature",{target:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Reading",children:(0,o.createComponentVNode)(2,i.Box,{width:"60px",textAlign:"right",children:s&&(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:p,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:!!s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:2,children:[m," / ",f," units"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})],4),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:s,beakerContents:C})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(0),r=n(15),a=n(1);t.ChemMaster=function(e){var t=e.state,n=t.config,l=t.data,s=n.ref,p=l.screen,m=l.beakerContents,f=void 0===m?[]:m,h=l.bufferContents,C=void 0===h?[]:h,b=l.beakerCurrentVolume,g=l.beakerMaxVolume,N=l.isBeakerLoaded,v=l.isPillBottleLoaded,V=l.pillBottleCurrentAmount,y=l.pillBottleMaxAmount;return"analyze"===p?(0,o.createComponentVNode)(2,d,{state:t}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:!!l.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:b,initial:0})," / "+g+" units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return(0,r.act)(s,"eject")}})],4),children:[!N&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"No beaker loaded."}),!!N&&0===f.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Beaker is empty."}),(0,o.createComponentVNode)(2,i,{children:f.map((function(e){return(0,o.createComponentVNode)(2,c,{state:t,chemical:e,transferTo:"buffer"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Buffer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Mode:"}),(0,o.createComponentVNode)(2,a.Button,{color:l.mode?"good":"bad",icon:l.mode?"exchange-alt":"times",content:l.mode?"Transfer":"Destroy",onClick:function(){return(0,r.act)(s,"toggleMode")}})],4),children:[0===C.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Buffer is empty."}),(0,o.createComponentVNode)(2,i,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c,{state:t,chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Packaging",children:(0,o.createComponentVNode)(2,u,{state:t})}),!!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Pill Bottle",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[V," / ",y," pills"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return(0,r.act)(s,"ejectPillBottle")}})],4)})],0)};var i=a.Table,c=function(e){var t=e.state,n=e.chemical,i=e.transferTo,c=t.config.ref;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:n.volume,initial:0})," units of "+n.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"1",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"5",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:5,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"10",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:10,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"All",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:1e3,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"ellipsis-h",title:"Custom amount",onClick:function(){return(0,r.act)(c,"transfer",{id:n.id,amount:-1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"question",title:"Analyze",onClick:function(){return(0,r.act)(c,"analyze",{id:n.id})}})]})]},n.id)},l=function(e){var t=e.label,n=e.amountUnit,r=e.amount,i=e.onChangeAmount,c=e.onCreate,l=e.sideNote;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:[(0,o.createComponentVNode)(2,a.NumberInput,{width:14,unit:n,step:1,stepPixelSize:15,value:r,minValue:1,maxValue:10,onChange:i}),(0,o.createComponentVNode)(2,a.Button,{ml:1,content:"Create",onClick:c}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,ml:1,color:"label",content:l})]})},u=function(e){var t,n;function i(){var t;return(t=e.call(this)||this).state={pillAmount:1,patchAmount:1,bottleAmount:1,packAmount:1},t}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=(this.state,this.props),n=t.state.config.ref,i=this.state,c=i.pillAmount,u=i.patchAmount,d=i.bottleAmount,s=i.packAmount,p=t.state.data,m=p.condi,f=p.chosenPillStyle,h=p.pillStyles,C=void 0===h?[]:h;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[!m&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill type",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===f,textAlign:"center",color:"transparent",onClick:function(){return(0,r.act)(n,"pillStyle",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.className})},e.id)}))}),!m&&(0,o.createComponentVNode)(2,l,{label:"Pills",amount:c,amountUnit:"pills",sideNote:"max 50u",onChangeAmount:function(t,n){return e.setState({pillAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"pill",amount:c,volume:"auto"})}}),!m&&(0,o.createComponentVNode)(2,l,{label:"Patches",amount:u,amountUnit:"patches",sideNote:"max 40u",onChangeAmount:function(t,n){return e.setState({patchAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"patch",amount:u,volume:"auto"})}}),!m&&(0,o.createComponentVNode)(2,l,{label:"Bottles",amount:d,amountUnit:"bottles",sideNote:"max 30u",onChangeAmount:function(t,n){return e.setState({bottleAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"bottle",amount:d,volume:"auto"})}}),!!m&&(0,o.createComponentVNode)(2,l,{label:"Packs",amount:s,amountUnit:"packs",sideNote:"max 10u",onChangeAmount:function(t,n){return e.setState({packAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"condimentPack",amount:s,volume:"auto"})}}),!!m&&(0,o.createComponentVNode)(2,l,{label:"Bottles",amount:d,amountUnit:"bottles",sideNote:"max 50u",onChangeAmount:function(t,n){return e.setState({bottleAmount:n})},onCreate:function(){return(0,r.act)(n,"create",{type:"condimentBottle",amount:d,volume:"auto"})}})]})},i}(o.Component),d=function(e){var t=e.state,n=t.config.ref,i=t.data.analyzeVars;return(0,o.createComponentVNode)(2,a.Section,{title:"Analysis Results",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Back",onClick:function(){return(0,r.act)(n,"goScreen",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",children:i.state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,a.ColorBox,{color:i.color,mr:1}),i.color]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:i.description}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Metabolization Rate",children:[i.metaRate," u/minute"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Threshold",children:i.overD}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Threshold",children:i.addicD})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(0),r=n(3),a=n(1);t.ChemPress=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.pill_size,l=i.pill_name,u=i.pill_style,d=i.pill_styles,s=void 0===d?[]:d;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",width:"43px",minValue:5,maxValue:50,step:1,stepPixelSize:2,onChange:function(e,t){return n("change_pill_size",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Name",children:(0,o.createComponentVNode)(2,a.Input,{value:l,onChange:function(e,t){return n("change_pill_name",{name:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Style",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===u,textAlign:"center",color:"transparent",onClick:function(){return n("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(0),r=n(15),a=n(1),i=n(18),c=n(10);var l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).state={reagentName:"",reagentQuantity:1},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.setReagentName=function(e){this.setState({reagentName:e})},u.setReagentQuantity=function(e){this.setState({reagentQuantity:e})},u.render=function(){var e=this,t=this.props.state,n=t.config,l=t.data,u=n.ref,d=l.emptying,s=l.reagents||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:d?"bad":"good",children:d?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(t,n){return e.setReagentName(n)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,c.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,a.NumberInput,{value:this.state.reagentQuantity,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(t,n){return e.setReagentQuantity(n)}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return(0,r.act)(u,"add",{chem:e.state.reagentName,amount:e.state.reagentQuantity})}})],4)],4),(0,i.map)((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return(0,r.act)(u,"remove",{chem:t})}}),children:e},t)}))(s)]})})},l}(o.Component);t.ChemReactionChamber=l},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(0),r=n(17),a=n(3),i=n(1);t.ChemSplitter=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.straight,u=c.side,d=c.max_transfer;return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:l,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"side",amount:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(0),r=n(17),a=n(3),i=n(1);t.ChemSynthesizer=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.amount,u=c.current_reagent,d=c.chemicals,s=void 0===d?[]:d,p=c.possible_amounts,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===l,onClick:function(){return n("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,i.Box,{mt:1,children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===u,onClick:function(){return n("select",{reagent:e.id})}},e.id)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(0),r=n(3),a=n(1);t.CodexGigas=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[i.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==i.currentSection,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>2,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>4,onClick:function(){return n(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:["the Red","the Soulless","the Master","the Lord of all things","Jr."].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==i.currentSection,onClick:function(){return n(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:i.currentSection<4,onClick:function(){return n("search")}})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(0),r=(n(20),n(3)),a=n(1);t.ComputerFabricator=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==l.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return c("clean_order")}}),(0,o.createComponentVNode)(2,i,{state:t})],0)};var i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return 0===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:51,children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"2"})}})})]})})]}):1===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:47,buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a slot that allows you to manipulate RFID cards.\nPlease note that this is not necessary to allow the device\nto read your identification, it is just necessary to\nmanipulate other cards.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return n("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return n("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:"26px",onClick:function(){return n("confirm_order")}})]}):2===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:47,children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?i.COLORS.department.security:e>=20&&e<30?i.COLORS.department.medbay:e>=30&&e<40?i.COLORS.department.science:e>=40&&e<50?i.COLORS.department.engineering:e>=50&&e<60?i.COLORS.department.cargo:e>=200&&e<230?i.COLORS.department.centcom:i.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:4,color:i.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,d=i.sensors||[];return(0,o.createComponentVNode)(2,a.Section,{minHeight:90,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(f=e.ijob,f%10==0),color:l(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,r=e.toxdam,d=e.burndam,s=e.brutedam,p=t+r+d+s,m=Math.min(Math.max(Math.ceil(p/25),0),5),c[m])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return n("select_person",{name:e.name})}})})]},e.name);var t,r,d,s,p,m,f}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(0),r=n(3),a=n(1),i=n(168);t.Cryo=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",content:c.occupant.name?c.occupant.name:"No Occupant"}),!!c.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",content:c.occupant.stat,color:c.occupant.statstate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:c.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant.health/c.occupant.maxHealth,color:c.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",content:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",disabled:c.isOpen,onClick:function(){return n("power")},color:c.isOperating&&"green",children:c.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.isOpen?"unlock":"lock",onClick:function(){return n("door")},content:c.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:c.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return n("autoeject")},content:c.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!c.isBeakerLoaded,onClick:function(){return n("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:c.isBeakerLoaded,beakerContents:c.beakerContents})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(0),r=n(3),a=n(1);t.DecalPainter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.decal_list||[],l=i.color_list||[],u=i.dir_list||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===i.decal_style,onClick:function(){return n("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===i.decal_color,onClick:function(){return n("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===i.decal_direction,onClick:function(){return n("selected direction",{dirs:e.dirs})}},e.dirs)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(0),r=n(3),a=n(1);t.DisposalUnit=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return l.full_pressure?(t="good",n="Ready"):l.panel_open?(t="bad",n="Power Disabled"):l.pressure_charging?(t="average",n="Pressurizing"):(t="bad",n="Off"),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:t,children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.flush?"toggle-on":"toggle-off",disabled:l.isai||l.panel_open,content:l.flush?"Disengage":"Engage",onClick:function(){return c(l.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:l.isai,content:"Eject Contents",onClick:function(){return c("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:l.panel_open,selected:l.pressure_charging,onClick:function(){return c(l.pressure_charging?"pump-0":"pump-1")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(0),r=n(3),a=n(1);t.DnaVault=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.completed,l=i.used,u=i.choiceA,d=i.choiceB,s=i.dna,p=i.dna_max,m=i.plants,f=i.plants_max,h=i.animals,C=i.animals_max;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s/p,content:s+" / "+p+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m/f,content:m+" / "+f+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/h,content:h+" / "+C+" Samples"})})]})}),!(!c||l)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:u,textAlign:"center",onClick:function(){return n("gene",{choice:u})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:d,textAlign:"center",onClick:function(){return n("gene",{choice:d})}})})]})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(0),r=n(3),a=n(1),i=n(20);t.EightBallVote=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.question,u=c.shaking,d=c.answers,s=void 0===d?[]:d;return u?(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',l,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,i.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return n("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})}},function(e,t,n){"use strict";t.__esModule=!0,t.Electropack=void 0;var o=n(0),r=n(1),a=n(3),i=n(17);t.Electropack=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.power,u=c.code,d=c.frequency,s=c.minFrequency,p=c.maxFrequency;return(0,o.createComponentVNode)(2,r.Section,{children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,r.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Frequency",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"freq"})}}),children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:s/10,maxValue:p/10,value:d/10,format:function(e){return(0,i.toFixed)(e,1)},width:13,onDrag:function(e,t){return n("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Code",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"code"})}}),children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:u,width:13,onDrag:function(e,t){return n("code",{code:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(0),r=n(1),a=n(3);t.EmergencyShuttleConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.timer_str,l=i.enabled,u=i.emagged,d=i.engines_started,s=i.authorizations_remaining,p=i.authorizations,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:c}),(0,o.createComponentVNode)(2,r.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,r.Box,{inline:!0,color:d?"good":"average",ml:1,children:d?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!l,onClick:function(){return n("abort")}}),children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!l,onClick:function(){return n("authorize")}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!l,onClick:function(){return n("repeal")}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,color:u?"bad":"good",children:u?"ERROR":"Remaining: "+s}),children:[m.length>0?m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,r.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"}),m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)}))]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(0),r=n(20),a=n(3),i=n(1);t.EngravedMessage=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.admin_mode,u=c.creator_key,d=c.creator_name,s=c.has_liked,p=c.has_disliked,m=c.hidden_message,f=c.is_creator,h=c.num_likes,C=c.num_dislikes,b=c.realdate;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(m)}),(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-up",content:" "+h,disabled:f,selected:s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("like")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"circle",disabled:f,selected:!p&&!s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("neutral")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-down",content:" "+C,disabled:f,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("dislike")}})})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Created On",children:b})})}),(0,o.createComponentVNode)(2,i.Section),!!l&&(0,o.createComponentVNode)(2,i.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return n("delete")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Ckey",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Character Name",children:d})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitControlConsole=void 0;var o=n(0),r=n(17),a=n(3),i=n(1);t.ExosuitControlConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data.mechs,l=void 0===c?[]:c;return l.length?l.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"envelope",content:"Send Message",disabled:!e.pilot,onClick:function(){return n("send_message",{tracker_ref:e.tracker_ref})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"wifi",content:e.emp_recharging?"Recharging...":"EMP Burst",color:"bad",disabled:e.emp_recharging,onClick:function(){return n("shock",{tracker_ref:e.tracker_ref})}})],4),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,i.Box,{color:e.integrity<=30?"bad":e.integrity<=70?"average":"good",children:[e.integrity,"%"]})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,i.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Airtank",children:"number"==typeof e.airtank?(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:e.airtank,format:function(e){return(0,r.toFixed)(e,2)+" kPa"}}):"Not Equipped"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pilot",children:e.pilot||"None"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Location",children:e.location||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Active Equipment",children:e.active_equipment||"None"}),e.cargo_space>=0&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Used Cargo Space",children:(0,o.createComponentVNode)(2,i.Box,{color:e.cargo_space<=30?"good":e.cargo_space<=70?"average":"bad",children:[e.cargo_space,"%"]})})]})},e.tracker_ref)})):(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.NoticeBox,{textAlign:"center",children:"No exosuits detected"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gateway=void 0;var o=n(0),r=n(3),a=n(1);t.Gateway=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.gateway_present,l=void 0!==c&&c,u=i.gateway_status,d=void 0!==u&&u,s=i.current_target,p=void 0===s?null:s,m=i.destinations,f=void 0===m?[]:m;if(!l)return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No linked gateway"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return n("linkup")},children:"Linkup"})]});if(p)return(0,o.createComponentVNode)(2,a.Section,{title:p.name,textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"rainbow",size:4,color:"green"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return n("deactivate")},children:"Deactivate"})]});if(!f.length)return(0,o.createComponentVNode)(2,a.Section,{children:"No gateway nodes detected."});return(0,o.createFragment)([!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Gateway Unpowered"}),f.map((function(e){return e.availible?(0,o.createComponentVNode)(2,a.Section,{title:e.name,textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return n("activate",{destination:e.ref})},children:"Activate"})},e.ref):(0,o.createComponentVNode)(2,a.Section,{textAlign:"center",title:e.name,children:[(0,o.createComponentVNode)(2,a.Box,{m:1,textColor:"bad",children:e.reason}),!!e.timeout&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.timeout,content:"Calibrating..."})]},e.ref)}))],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(0),r=n(18),a=n(70),i=n(17),c=n(160),l=n(3),u=n(1),d=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e){var t=(0,l.useBackend)(e),n=t.act,s=t.data,p=s.currentArea,m=s.currentCoords,f=s.globalmode,h=s.power,C=s.tag,b=s.updating,g=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,c.vecLength)((0,c.vecSubtract)(d(m),d(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(s.signals||[]);return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,u.Button,{icon:"power-off",content:h?"On":"Off",selected:h,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,u.Button,{icon:"pencil-alt",content:C,onClick:function(){return n("rename")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,u.Button,{icon:b?"unlock":"lock",content:b?"AUTO":"MANUAL",color:!b&&"bad",onClick:function(){return n("updating")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,u.Button,{icon:"sync",content:f?"MAXIMUM":"LOCAL",selected:!f,onClick:function(){return n("globalmode")}})})]})}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,u.Box,{fontSize:"18px",children:[p," (",m,")"]})}),(0,o.createComponentVNode)(2,u.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,u.Table,{children:[(0,o.createComponentVNode)(2,u.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,u.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),g.map((function(e){return(0,o.createComponentVNode)(2,u.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,u.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,i.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,u.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(0),r=n(3),a=n(1);t.GravityGenerator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.breaker,l=i.charge_count,u=i.charging_state,d=i.on,s=i.operational;return s?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,disabled:!s,onClick:function(){return n("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(d&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})}),s&&0!==u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"WARNING - Radiation detected"}),s&&0===u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No radiation detected"})],0):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No data available"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(0),r=n(3),a=n(1);t.GulagTeleporterConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.teleporter,l=i.teleporter_lock,u=i.teleporter_state_open,d=i.teleporter_location,s=i.beacon,p=i.beacon_location,m=i.id,f=i.id_name,h=i.can_teleport,C=i.goal,b=void 0===C?0:C,g=i.prisoner,N=void 0===g?{}:g;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:u?"Open":"Closed",disabled:l,selected:u,onClick:function(){return n("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"unlock",content:l?"Locked":"Unlocked",selected:l,disabled:u,onClick:function(){return n("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:c?"good":"bad",buttons:!c&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_teleporter")}}),children:c?d:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:s?"good":"bad",buttons:!s&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_beacon")}}),children:s?p:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:m?f:"No ID",onClick:function(){return n("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:b,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return n("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:N.name?N.name:"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:N.crimstat?N.crimstat:"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!h,textAlign:"center",color:"bad",onClick:function(){return n("teleport")}})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(0),r=n(3),a=n(1);t.GulagItemReclaimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.mobs,l=void 0===c?[]:c;return l.length?(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!i.can_reclaim,onClick:function(){return n("release_items",{mobref:e.mob})}})})]},e.mob)}))})}):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No stored items"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(0),r=n(3),a=n(1);t.Holodeck=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_toggle_safety,l=i.default_programs,u=void 0===l?[]:l,d=i.emag_programs,s=void 0===d?[]:d,p=i.emagged,m=i.program;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:p?"unlock":"lock",content:"Safeties",color:"bad",disabled:!c,selected:!p,onClick:function(){return n("safety")}}),children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))}),!!p&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.HypnoChair=void 0;var o=n(0),r=n(3),a=n(1);t.HypnoChair=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",children:"The Enhanced Interrogation Chamber is designed to induce a deep-rooted trance trigger into the subject. Once the procedure is complete, by using the implanted trigger phrase, the authorities are able to ensure immediate and complete obedience and truthfulness."}),(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.occupant.name?i.occupant.name:"No Occupant"}),!!i.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===i.occupant.stat?"good":1===i.occupant.stat?"average":"bad",children:0===i.occupant.stat?"Conscious":1===i.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.open?"unlock":"lock",color:i.open?"default":"red",content:i.open?"Open":"Closed",onClick:function(){return n("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Phrase",children:(0,o.createComponentVNode)(2,a.Input,{value:i.trigger,onChange:function(e,t){return n("set_phrase",{phrase:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Interrogate Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:i.interrogating?"Interrupt Interrogation":"Begin Enhanced Interrogation",onClick:function(){return n("interrogate")}}),1===i.interrogating&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(0),r=n(3),a=n(1);t.ImplantChair=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.occupant.name?i.occupant.name:"No Occupant"}),!!i.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===i.occupant.stat?"good":1===i.occupant.stat?"average":"bad",children:0===i.occupant.stat?"Conscious":1===i.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.open?"unlock":"lock",color:i.open?"default":"red",content:i.open?"Open":"Closed",onClick:function(){return n("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:i.ready?i.special_name||"Implant":"Recharging",onClick:function(){return n("implant")}}),0===i.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[i.ready_implants,1===i.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.InfraredEmitter=void 0;var o=n(0),r=n(3),a=n(1);t.InfraredEmitter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.on,l=i.visible;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Visibility",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"eye":"eye-slash",content:l?"Visible":"Invisible",selected:l,onClick:function(){return n("visibility")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(0),r=n(3),a=n(1);t.Intellicard=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=u||d,l=i.name,u=i.isDead,d=i.isBraindead,s=i.health,p=i.wireless,m=i.radio,f=i.wiping,h=i.laws,C=void 0===h?[]:h;return(0,o.createComponentVNode)(2,a.Section,{title:l||"Empty Card",buttons:!!l&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:f?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return n("wipe")}}),children:!!l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:c?"bad":"good",children:c?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return n("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:m,onClick:function(){return n("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(0),r=n(3),a=n(1);t.KeycardAuth=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===i.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===i.waiting&&(0,o.createFragment)([!!i.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return n("auth_swipe")},content:"Authorize"}),0===i.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return n("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return n("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return n("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(0),r=n(20),a=n(3),i=n(1);t.LaborClaimConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.can_go_home,u=c.id_points,d=c.ores,s=c.status_info,p=c.unclaimed_points;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,i.Button,{content:"Move shuttle",disabled:!l,onClick:function(){return n("move_shuttle")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Claim points",disabled:!p,onClick:function(){return n("claim_points")}}),children:p})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(0),r=n(3),a=n(1);t.LanguageMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.admin_mode,l=i.is_living,u=i.omnitongue,d=i.languages,s=void 0===d?[]:d,p=i.unknown_languages,m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!l&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return n("select_default",{language_name:e.name})}}),!!c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return n("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!c&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(u?"Enabled":"Disabled"),selected:u,onClick:function(){return n("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",!!e.shadow&&"(gained from mob)"," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadRemote=t.LaunchpadControl=t.LaunchpadButtonPad=void 0;var o=n(0),r=n(3),a=n(1),i=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return t("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return t("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return t("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return t("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return t("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:-1})}})]})]})};t.LaunchpadButtonPad=i;var c=function(e){var t=e.topLevel,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.x,d=l.y,s=l.pad_name,p=l.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:s,width:"170px",onChange:function(e,t){return c("rename",{name:t})}}),level:t?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return c("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i,{state:e.state})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return c("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return c("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return c("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return c("pull")}})})]})]})};t.LaunchpadControl=c;t.LaunchpadRemote=function(e){var t=(0,r.useBackend)(e).data,n=t.has_pad,i=t.pad_closed;return n?i?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"}):(0,o.createComponentVNode)(2,c,{topLevel:!0,state:e.state}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})};t.LaunchpadConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.launchpads,u=void 0===l?[]:l,d=i.selected_id;return u.length<=0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"}):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.Box,{style:{"border-right":"2px solid rgba(255, 255, 255, 0.1)"},minHeight:"190px",mr:1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name,selected:d===e.id,color:"transparent",onClick:function(){return n("select_pad",{id:e.id})}},e.name)}))})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:d?(0,o.createComponentVNode)(2,c,{state:e.state}):(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(0),r=n(3),a=n(1);t.MechBayPowerConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.recharge_port,c=i&&i.mech,l=c&&c.cell;return(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.health/c.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MedicalKiosk=void 0;var o=n(0),r=(n(20),n(3)),a=n(1);t.MedicalKiosk=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Health Kiosk",textAlign:"center",icon:"procedures",children:[(0,o.createComponentVNode)(2,a.Box,{my:1,textAlign:"center",children:["Greetings Valued Employee. Please select your desired diagnosis. Diagnosis costs ",i.kiosk_cost," credits.",(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:["Current patient targeted for scanning: ",i.patient_name," |"]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Button,{icon:"procedures",disabled:!i.active_status_1,tooltip:"Reads back exact values of your general health scan.",onClick:function(){return n("beginScan_1")},content:"General Health Scan"}),(0,o.createComponentVNode)(2,a.Button,{icon:"heartbeat",disabled:!i.active_status_2,tooltip:"Provides information based on various non-obvious symptoms,\nlike blood levels or disease status.",onClick:function(){return n("beginScan_2")},content:"Symptom Based Checkup"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:"Resets the current scanning target, cancelling current scans.",icon:"sync",color:"average",onClick:function(){return n("clearTarget")},content:"Reset Scanner"})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"radiation-alt",disabled:!i.active_status_3,tooltip:"Provides information about brain trauma and radiation.",onClick:function(){return n("beginScan_3")},content:"Neurological/Radiological Scan"}),(0,o.createComponentVNode)(2,a.Button,{icon:"mortar-pestle",disabled:!i.active_status_4,tooltip:"Provides a list of consumed chemicals, as well as potential\nside effects.",onClick:function(){return n("beginScan_4")},content:"Chemical Analysis and Psychoactive Scan"})]})]}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:"normal",label:"General Health Scan",children:function(){return(0,o.createComponentVNode)(2,a.Box,{children:0===i.active_status_1&&(0,o.createComponentVNode)(2,a.Section,{title:"Patient Health",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.patient_health/100,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.patient_health}),"%"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider,{size:2}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.brute_health/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.brute_health})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.burn_health/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.burn_health})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.suffocation_health/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.suffocation_health})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxin Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.toxin_health/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.toxin_health})})})]})})})}},"tab_1"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:"normal",label:"Symptom Based Checkup",children:function(){return(0,o.createComponentVNode)(2,a.Box,{children:0===i.active_status_2&&(0,o.createComponentVNode)(2,a.Section,{title:"Symptom Based Checkup",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patient Status",color:"good",children:i.patient_status}),(0,o.createComponentVNode)(2,a.LabeledList.Divider,{size:1}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease Status",children:i.patient_illness}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease information",children:i.illness_info}),(0,o.createComponentVNode)(2,a.LabeledList.Divider,{size:1}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Levels",children:[i.bleed_status,(0,o.createComponentVNode)(2,a.LabeledList.Divider,{size:1}),(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.blood_levels/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.blood_levels})})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Information",children:i.blood_status})]})})})}},"tab_2"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:"normal",label:"Neurological/Radiological Scan",children:function(){return(0,o.createComponentVNode)(2,a.Box,{children:0===i.active_status_3&&(0,o.createComponentVNode)(2,a.Section,{title:"Patient Neurological and Radiological Health ",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cellular Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.clone_health/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.clone_health})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.brain_damage/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.brain_damage})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Status",color:"health-0",children:i.brain_health}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Status",children:i.rad_status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Irradiation Percentage",children:[i.rad_value,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Trauma Status",children:i.trauma_status})]})})}},"tab_3"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:"normal",label:"Chemical Analysis and Psychoactive Scan",children:function(){return(0,o.createComponentVNode)(2,a.Box,{children:0===i.active_status_4&&(0,o.createComponentVNode)(2,a.Section,{title:"Chemical and Psychoactive Analysis",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chemical Contents",children:i.are_chems_present?i.chemical_list.length?i.chemical_list.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[e.volume," units of ",e.name]},e.id)})):(0,o.createComponentVNode)(2,a.Box,{children:"No reagents detected."}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No reagents detected."})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Status",color:"bad",children:i.are_overdoses_present?i.overdose_status.length?i.overdose_status.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Overdosing on ",e.name]},e.id)})):(0,o.createComponentVNode)(2,a.Box,{children:"No reagents detected."}):(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient is not overdosing."})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Status",color:"bad",children:i.are_addictions_present?i.addiction_status.length?i.addiction_status.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Addicted to ",e.name]},e.id)})):(0,o.createComponentVNode)(2,a.Box,{children:"Patient has no addictions."}):(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient has no addictions detected."})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Psychoactive Status",children:i.hallucinating_status})]})})}},"tab_4")]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(0),r=n(15),a=n(1),i=n(10);t.MiningVendor=function(e){var t=e.state,n=t.config,c=t.data,l=n.ref,u=[].concat(c.product_records);return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"User",children:c.user&&(0,o.createComponentVNode)(2,a.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,c.user.name||"Unknown",0),","," ",(0,o.createVNode)(1,"b",null,c.user.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[c.user.points,(0,o.createTextVNode)(" mining points")],0),"."]})||(0,o.createComponentVNode)(2,a.Box,{color:"light-gray",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Equipment",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createVNode)(1,"span",(0,i.classes)(["vending32x32",e.path]),null,1,{style:{"vertical-align":"middle","horizontal-align":"middle"}})," ",(0,o.createVNode)(1,"b",null,e.name,0)]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{style:{"min-width":"95px","text-align":"center"},disabled:!c.user||e.price>c.user.points,content:e.price+" points",onClick:function(){return(0,r.act)(l,"purchase",{ref:e.ref})}})})]},e.name)}))})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Mint=void 0;var o=n(0),r=n(3),a=n(1);t.Mint=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.inserted_materials||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Materials",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.processing?"times":"power-off",content:i.processing?"Stop":"Start",selected:i.processing,onClick:function(){return n(i.processing?"stoppress":"startpress")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.material,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.chosen_material===e.material?"check-square":"square",selected:i.chosen_material===e.material,onClick:function(){return n("changematerial",{material_name:e.material})}}),children:[e.amount," cm\xb3"]},e.material)}))})}),(0,o.createComponentVNode)(2,a.Section,{children:["Pressed ",i.produced_coins," coins this cycle."]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.MalfunctionModulePicker=void 0;var o=n(0),r=n(20),a=n(15),i=n(1);var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={hoveredItem:{},currentSearch:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setHoveredItem=function(e){this.setState({hoveredItem:e})},c.setSearchText=function(e){this.setState({currentSearch:e})},c.render=function(){var e=this,t=this.props.state,n=t.config,r=t.data,c=n.ref,u=r.compact_mode,d=r.processing_time,s=r.categories,p=void 0===s?[]:s,m=this.state,f=m.hoveredItem,h=m.currentSearch;return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d>0?"good":"bad",children:[d," Processing Time"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{value:h,onInput:function(t,n){return e.setSearchText(n)},ml:1,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:u?"list":"info",content:u?"Compact":"Detailed",onClick:function(){return(0,a.act)(c,"compact_toggle")}})],4),children:h.length>0?(0,o.createVNode)(1,"table","Table",(0,o.createComponentVNode)(2,l,{compact:!0,items:p.flatMap((function(e){return e.items||[]})).filter((function(e){var t=h.toLowerCase();return String(e.name+e.desc).toLowerCase().includes(t)})),hoveredItem:f,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{ref:e.ref})}}),2):(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:p.map((function(t){var n=t.name,r=t.items;if(null!==r)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n+" ("+r.length+")",children:function(){return(0,o.createComponentVNode)(2,l,{compact:u,items:r,hoveredItem:f,processing_time:d,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{ref:e.ref})}})}},n)}))})})},r}(o.Component);t.MalfunctionModulePicker=c;var l=function(e){var t=e.items,n=e.hoveredItem,a=e.processing_time,c=e.compact,l=e.onBuy,u=e.onBuyMouseOver,d=e.onBuyMouseOut,s=n&&n.cost||0;return c?(0,o.createComponentVNode)(2,i.Table,{children:t.map((function(e){var t=n&&n.name!==e.name,c=a-s=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),h>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),h>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),h>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("nanite_injection")}})],4)})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(0),r=n(3),a=n(1),i=function(e){var t=e.state.data,n=t.has_disk,r=t.has_program,i=t.disk;return n?r?(0,o.createComponentVNode)(2,c,{program:i}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var c=function(e){var t=e.program,n=t.name,r=t.desc,i=t.activated,c=t.use_rate,l=t.can_trigger,u=t.trigger_cost,d=t.trigger_cooldown,s=t.activation_code,p=t.deactivation_code,m=t.kill_code,f=t.trigger_code,h=t.timer_restart,C=t.timer_shutdown,b=t.timer_trigger,g=t.timer_trigger_delay,N=t.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:n,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:r}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:c}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:d})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:m}),!!l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:f})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[h," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[C," s"]}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[b," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[g," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:N.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=c;var l=function(e){var t=(0,r.useBackend)(e),n=t.act;return(t.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return n("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=l;var u=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.current_view,u=i.disk,d=i.has_program,s=i.cloud_backup,p=u&&u.can_rule||!1;if(!s)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var m=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+l,level:2,buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return n("upload_program")}}),children:m.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,c,{program:e}),!!p&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return n("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_rule",{program_id:e.id,rule_id:t.id})}}),t.display],0,t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,d=n.data,s=d.has_disk,p=d.current_view,m=d.new_backup_id;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s,onClick:function(){return c("eject")}}),children:(0,o.createComponentVNode)(2,i,{state:t})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return c("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return c("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return c("create_backup")}})],0),children:d.current_view?(0,o.createComponentVNode)(2,u,{state:t}):(0,o.createComponentVNode)(2,l,{state:t})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(0),r=n(18),a=n(3),i=n(1);t.NaniteProgramHub=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.detail_view,u=c.disk,d=c.has_disk,s=c.has_program,p=c.programs,m=void 0===p?{}:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return n("clear")}})],4),children:d?s?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Program Name",children:u.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:u.desc})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:l?"info":"list",content:l?"Detailed":"Compact",onClick:function(){return n("toggle_details")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",content:"Sync Research",onClick:function(){return n("refresh")}})],4),children:null!==m?(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var r=e||[],a=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:a,children:l?r.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,i.LabeledList,{children:r.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}})},e.id)}))})},t)}))(m)}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No nanite programs are currently researched."})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(0),r=n(3),a=n(1),i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=c;var l=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.type,c={number:(0,o.createComponentVNode)(2,u,{act:t,extra_setting:n}),text:(0,o.createComponentVNode)(2,d,{act:t,extra_setting:n}),type:(0,o.createComponentVNode)(2,s,{act:t,extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{act:t,extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:c[i]})};t.NaniteExtraEntry=l;var u=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.min,l=n.max,u=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:i,width:"64px",minValue:c,maxValue:l,unit:u,onChange:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraNumber=u;var d=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:i,width:"200px",onInput:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraText=d;var s=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:i,width:"150px",options:c,onSelected:function(e){return t("set_extra_setting",{target_setting:r,value:e})}})};t.NaniteExtraType=s;var p=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.true_text,l=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:i?c:l,checked:i,onClick:function(){return t("set_extra_setting",{target_setting:r})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e){var t=(0,r.useBackend)(e),n=t.act,u=t.data,d=u.has_disk,s=u.has_program,p=u.name,m=u.desc,f=u.use_rate,h=u.can_trigger,C=u.trigger_cost,b=u.trigger_cooldown,g=u.activated,N=u.has_extra_settings,v=u.extra_settings,V=void 0===v?{}:v;return d?s?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:m}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:f}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:C}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:b})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:g?"power-off":"times",content:g?"Active":"Inactive",selected:g,color:"bad",bold:!0,onClick:function(){return n("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{state:e.state})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,c,{state:e.state})})]}),!!N&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:V.map((function(e){return(0,o.createComponentVNode)(2,l,{act:n,extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemote=void 0;var o=n(0),r=n(3),a=n(1);t.NaniteRemote=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.code,l=i.locked,u=i.mode,d=i.program_name,s=i.relay_code,p=i.comms,m=i.message,f=i.saved_settings,h=void 0===f?[]:f;return l?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return n("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:d,maxLength:14,width:"130px",onChange:function(e,t){return n("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return n("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"270px",onChange:function(e,t){return n("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return n("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:h.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return n("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return n("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(0),r=n(3),a=n(1);t.NotificationPreferences=function(e){var t=(0,r.useBackend)(e),n=t.act,i=(t.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return n("toggle_ignore",{key:e.key})}},e.key)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(0),r=n(3),a=n(1);t.NtnetRelay=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.enabled,l=i.dos_capacity,u=i.dos_overload,d=i.dos_crashed;return(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:c,content:c?"ENABLED":"DISABLED",onClick:function(){return n("toggle")}}),children:d?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return n("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:l,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," GQ"," / ",l," GQ"]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(0),r=n(3),a=n(1);t.NtosArcade=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[i.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[i.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Section,{backgroundColor:1===i.PauseState?"#1b3622":"#471915",children:i.Status})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.Hitpoints,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Section,{inline:!0,width:26,textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:i.BossID})})]})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,a.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,a.Box,{color:i.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",i.TicketCount]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCard=void 0;var o=n(0),r=n(3),a=n(1),i=n(167),c=n(18);t.NtosCard=function(e){var t=(0,r.useBackend)(e),n=t.act,l=t.data,u=l.authenticated,d=l.regions,s=void 0===d?[]:d,p=l.access_on_card,m=void 0===p?[]:p,f=l.jobs,h=void 0===f?{}:f,C=l.id_rank,b=l.id_owner,g=l.has_id,N=l.have_printer,v=l.have_id_slot,V=l.id_name;return v?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:g&&u?(0,o.createComponentVNode)(2,a.Input,{value:b,width:"250px",onInput:function(e,t){return n("PRG_edit",{name:t})}}):b||"No Card Inserted",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!N||!g,onClick:function(){return n("PRG_print")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-out-alt":"sign-in-alt",content:u?"Log Out":"Log In",color:u?"bad":"good",onClick:function(){n(u?"PRG_logout":"PRG_authenticate")}})],4),children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:V,onClick:function(){return n("PRG_eject")}})}),!!g&&!!u&&(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Access",children:(0,o.createComponentVNode)(2,i.AccessList,{accesses:s,selectedList:m,accessMod:function(e){return n("PRG_access",{access_target:e})},grantAll:function(){return n("PRG_grantall")},denyAll:function(){return n("PRG_denyall")},grantDep:function(e){return n("PRG_grantregion",{region:e})},denyDep:function(e){return n("PRG_denyregion",{region:e})}})}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Jobs",children:(0,o.createComponentVNode)(2,a.Section,{title:C,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"exclamation-triangle",content:"Terminate",color:"bad",onClick:function(){return n("PRG_terminate")}}),children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Custom...",onCommit:function(e,t){return n("PRG_assign",{assign_target:"Custom",custom_name:t})}}),(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:(0,c.map)((function(e,t){var r=e||[];return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:t,children:r.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.display_name,onClick:function(){return n("PRG_assign",{assign_target:e.job})}},e.job)}))},t)}))(h)})]})})]})],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This program requires an ID slot in order to function"})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(0),r=n(3),a=n(1);t.NtosConfiguration=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.power_usage,l=i.battery_exists,u=i.battery,d=void 0===u?{}:u,s=i.disk_size,p=i.disk_used,m=i.hardware,f=void 0===m?[]:m;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",c,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!l&&"average",children:l?(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.charge,minValue:0,maxValue:d.max,ranges:{good:[d.max/2,Infinity],average:[d.max/4,d.max/2],bad:[-Infinity,d.max/4]},children:[d.charge," / ",d.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p,minValue:0,maxValue:s,color:"good",children:[p," GQ / ",s," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return n("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCrewManifest=void 0;var o=n(0),r=n(3),a=n(1),i=n(18);t.NtosCrewManifest=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.have_printer,u=c.manifest,d=void 0===u?{}:u;return(0,o.createComponentVNode)(2,a.Section,{title:"Crew Manifest",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!l,onClick:function(){return n("PRG_print")}}),children:(0,i.map)((function(e,t){return(0,o.createComponentVNode)(2,a.Section,{level:2,title:t,children:(0,o.createComponentVNode)(2,a.Table,{children:e.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:["(",e.rank,")"]})]},e.name)}))})},t)}))(d)})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosFileManager=t.FileTable=void 0;var o=n(0),r=n(1),a=n(3),i=function(e){var t=e.files,n=void 0===t?[]:t,a=e.usbconnected,i=e.usbmode,c=e.onUpload,l=e.onDelete,u=e.onRename;return(0,o.createComponentVNode)(2,r.Table,{children:[(0,o.createComponentVNode)(2,r.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,r.Table.Cell,{children:"File"}),(0,o.createComponentVNode)(2,r.Table.Cell,{collapsing:!0,children:"Type"}),(0,o.createComponentVNode)(2,r.Table.Cell,{collapsing:!0,children:"Size"})]}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,r.Table.Cell,{children:e.undeletable?e.name:(0,o.createComponentVNode)(2,r.Button.Input,{fluid:!0,content:e.name,currentValue:e.name,tooltip:"Rename",onCommit:function(t,n){return u(e.name,n)}})}),(0,o.createComponentVNode)(2,r.Table.Cell,{children:e.type}),(0,o.createComponentVNode)(2,r.Table.Cell,{children:e.size}),(0,o.createComponentVNode)(2,r.Table.Cell,{collapsing:!0,children:!e.undeletable&&(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:"trash",confirmIcon:"times",confirmContent:"",tooltip:"Delete",onClick:function(){return l(e.name)}}),!!a&&(i?(0,o.createComponentVNode)(2,r.Button,{icon:"download",tooltip:"Download",onClick:function(){return c(e.name)}}):(0,o.createComponentVNode)(2,r.Button,{icon:"upload",tooltip:"Upload",onClick:function(){return c(e.name)}}))],0)})]},e.name)}))]})};t.FileTable=i;t.NtosFileManager=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.usbconnected,u=c.files,d=void 0===u?[]:u,s=c.usbfiles,p=void 0===s?[]:s;return(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Section,{children:(0,o.createComponentVNode)(2,i,{files:d,usbconnected:l,onUpload:function(e){return n("PRG_copytousb",{name:e})},onDelete:function(e){return n("PRG_deletefile",{name:e})},onRename:function(e,t){return n("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return n("PRG_clone",{file:e})}})}),l&&(0,o.createComponentVNode)(2,r.Section,{title:"Data Disk",children:(0,o.createComponentVNode)(2,i,{usbmode:!0,files:p,usbconnected:l,onUpload:function(e){return n("PRG_copyfromusb",{name:e})},onDelete:function(e){return n("PRG_deletefile",{name:e})},onRename:function(e,t){return n("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return n("PRG_clone",{file:e})}})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosJobManager=void 0;var o=n(0),r=n(3),a=n(1);t.NtosJobManager=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.authed,l=i.cooldown,u=i.slots,d=void 0===u?[]:u,s=i.prioritized,p=void 0===s?[]:s;return c?(0,o.createComponentVNode)(2,a.Section,{children:[l>0&&(0,o.createComponentVNode)(2,a.Dimmer,{children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",mt:10,children:["On Cooldown: ",l,"s"]})}),(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Prioritized"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Slots"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:e.title,disabled:e.total<=0,checked:e.total>0&&p.includes(e.title),onClick:function(){return n("PRG_priority",{target:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[e.current," / ",e.total]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"Open",disabled:!e.status_open,onClick:function(){return n("PRG_open_job",{target:e.title})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Close",disabled:!e.status_close,onClick:function(){return n("PRG_close_job",{target:e.title})}})]})]},e.title)}))]})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Current ID does not have access permissions to change job slots."})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(0),r=n(3),a=n(1),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug",job_manage:"address-book",crewmani:"clipboard-list"};t.NtosMain=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.programs,u=void 0===l?[]:l,d=c.has_light,s=c.light_on,p=c.comp_light_color;return(0,o.createFragment)([!!d&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:s,onClick:function(){return n("PC_toggle_light")},children:["Flashlight: ",s?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return n("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:p})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,lineHeight:"24px",color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return n("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:3,children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{lineHeight:"24px",color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return n("PC_killprogram",{name:e.name})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(0),r=n(3),a=n(1);(0,n(42).createLogger)("ntos chat");t.NtosNetChat=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_admin,l=i.adminmode,u=i.authed,d=i.username,s=i.active_channel,p=i.is_operator,m=i.all_channels,f=void 0===m?[]:m,h=i.clients,C=void 0===h?[]:h,b=i.messages,g=void 0===b?[]:b,N=null!==s,v=u||l;return(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return n("PRG_newchannel",{new_channel_name:t})}}),f.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===s,color:"transparent",onClick:function(){return n("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:d+"...",currentValue:d,onCommit:function(e,t){return n("PRG_changename",{new_name:t})}}),!!c&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(l?"ON":"OFF"),color:l?"bad":"good",onClick:function(){return n("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:N&&(v?g.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return n("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),N&&v&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return n("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return n("PRG_leavechannel")}})],4),!!p&&u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return n("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return n("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return n("PRG_setpassword",{new_password:t})}})],4)]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDos=void 0;var o=n(0),r=n(1),a=n(3);(0,n(42).createLogger)("NetDos");t.NtosNetDos=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.relays,l=void 0===c?[]:c,u=i.focus,d=i.target,s=i.speed,p=i.overload,m=i.capacity,f=i.error;if(f)return(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:f}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,content:"Reset",textAlign:"center",onClick:function(){return n("PRG_reset")}})],4);var h=function(e){for(var t="",n=p/m;t.lengthn?t+="0":t+="1";return t};return d?(0,o.createComponentVNode)(2,r.Section,{fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,r.Box,{children:["CURRENT SPEED: ",s," GQ/s"]}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)}),(0,o.createComponentVNode)(2,r.Box,{children:h(45)})]}):(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Target",children:l.map((function(e){return(0,o.createComponentVNode)(2,r.Button,{content:e.id,selected:u===e.id,onClick:function(){return n("PRG_target_relay",{targid:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,bold:!0,content:"EXECUTE",color:"bad",textAlign:"center",disabled:!u,mt:1,onClick:function(){return n("PRG_execute")}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(0),r=n(3),a=n(1);t.NtosNetDownloader=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.disk_size,d=l.disk_used,s=l.downloadable_programs,p=void 0===s?[]:s,m=l.error,f=l.hacked_programs,h=void 0===f?[]:f,C=l.hackedavailable;return(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:m}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return c("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d,minValue:0,maxValue:u,children:d+" GQ / "+u+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:p.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),h.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))]})],0)};var i=function(e){var t=e.program,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.disk_size,u=c.disk_used,d=c.downloadcompletion,s=c.downloading,p=c.downloadname,m=c.downloadsize,f=l-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:t.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[t.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:t.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:m,value:d})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:s||t.size>f,onClick:function(){return i("PRG_downloadfile",{filename:t.filename})}})})]}),"Compatible"!==t.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),t.size>f&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:t.fileinfo})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetMonitor=void 0;var o=n(0),r=n(1),a=n(3);t.NtosNetMonitor=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.ntnetrelays,l=i.ntnetstatus,u=i.config_softwaredownload,d=i.config_peertopeer,s=i.config_communication,p=i.config_systemcontrol,m=i.idsalarm,f=i.idsstatus,h=i.ntnetmaxlogs,C=i.maxlogs,b=i.minlogs,g=i.ntnetlogs,N=void 0===g?[]:g;return(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:"WARNING: Disabling wireless transmitters when using a wireless device may prevent you from reenabling them!"}),(0,o.createComponentVNode)(2,r.Section,{title:"Wireless Connectivity",buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:l?"power-off":"times",content:l?"ENABLED":"DISABLED",selected:l,onClick:function(){return n("toggleWireless")}}),children:c?(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Active NTNet Relays",children:c})}):"No Relays Connected"}),(0,o.createComponentVNode)(2,r.Section,{title:"Firewall Configuration",children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Software Downloads",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:u?"power-off":"times",content:u?"ENABLED":"DISABLED",selected:u,onClick:function(){return n("toggle_function",{id:"1"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Peer to Peer Traffic",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:d?"power-off":"times",content:d?"ENABLED":"DISABLED",selected:d,onClick:function(){return n("toggle_function",{id:"2"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Communication Systems",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:s?"power-off":"times",content:s?"ENABLED":"DISABLED",selected:s,onClick:function(){return n("toggle_function",{id:"3"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Remote System Control",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:p?"power-off":"times",content:p?"ENABLED":"DISABLED",selected:p,onClick:function(){return n("toggle_function",{id:"4"})}})})]})}),(0,o.createComponentVNode)(2,r.Section,{title:"Security Systems",children:[!!m&&(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:"NETWORK INCURSION DETECTED"}),(0,o.createComponentVNode)(2,r.Box,{italics:!0,children:"Abnormal activity has been detected in the network. Check system logs for more information"})],4),(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"IDS Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button,{icon:f?"power-off":"times",content:f?"ENABLED":"DISABLED",selected:f,onClick:function(){return n("toggleIDS")}}),(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",color:"bad",onClick:function(){return n("resetIDS")}})],4)}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Max Log Count",buttons:(0,o.createComponentVNode)(2,r.NumberInput,{value:h,minValue:b,maxValue:C,width:"39px",onChange:function(e,t){return n("updatemaxlogs",{new_number:t})}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"System Log",level:2,buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:"trash",content:"Clear Logs",onClick:function(){return n("purgelogs")}}),children:N.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{className:"candystripe",children:e.entry},e.entry)}))})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosRevelation=void 0;var o=n(0),r=n(1),a=n(3);t.NtosRevelation=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Button.Input,{fluid:!0,content:"Obfuscate Name...",onCommit:function(e,t){return n("PRG_obfuscate",{new_name:t})},mb:1}),(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Payload Status",buttons:(0,o.createComponentVNode)(2,r.Button,{content:i.armed?"ARMED":"DISARMED",color:i.armed?"bad":"average",onClick:function(){return n("PRG_arm")}})})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,bold:!0,content:"ACTIVATE",textAlign:"center",color:"bad",disabled:!i.armed})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitor=void 0;var o=n(0),r=n(18),a=n(70),i=n(17),c=n(3),l=n(1),u=n(38),d=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e){var t=e.state,n=(0,c.useBackend)(e),p=n.act,m=n.data,f=m.active,h=m.SM_integrity,C=m.SM_power,b=m.SM_ambienttemp,g=m.SM_ambientpressure;if(!f)return(0,o.createComponentVNode)(2,s,{state:t});var N=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),v=Math.max.apply(Math,[1].concat(N.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:C,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,i.toFixed)(C)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(b),minValue:0,maxValue:d(1e4),ranges:{teal:[-Infinity,d(80)],good:[d(80),d(373)],average:[d(373),d(1e3)],bad:[d(1e3),Infinity]},children:(0,i.toFixed)(b)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(g),minValue:0,maxValue:d(5e4),ranges:{good:[d(1),d(300)],average:[-Infinity,d(1e3)],bad:[d(1e3),+Infinity]},children:(0,i.toFixed)(g)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return p("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.Box.Forced,{height:24*N.length+"px",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:N.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,u.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,u.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:v,children:(0,i.toFixed)(e.amount,2)+"%"})},e.name)}))})})})})]})};var s=function(e){var t=(0,c.useBackend)(e),n=t.act,r=t.data.supermatters,a=void 0===r?[]:r;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return n("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:a.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return n("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWrapper=void 0;var o=n(0),r=n(3),a=n(1),i=n(120);t.NtosWrapper=function(e){var t=e.children,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.PC_batteryicon,d=l.PC_showbatteryicon,s=l.PC_batterypercent,p=l.PC_ntneticon,m=l.PC_apclinkicon,f=l.PC_stationtime,h=l.PC_programheaders,C=void 0===h?[]:h,b=l.PC_showexitprogram;return(0,o.createVNode)(1,"div","NtosWrapper",[(0,o.createVNode)(1,"div","NtosWrapper__header NtosHeader",[(0,o.createVNode)(1,"div","NtosHeader__left",[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:2,children:f}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:"NtOS"})],4),(0,o.createVNode)(1,"div","NtosHeader__right",[C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:e.icon})},e.icon)})),(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:p&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:p})}),!!d&&u&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:[u&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:u}),s&&s]}),m&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:m})}),!!b&&(0,o.createComponentVNode)(2,a.Button,{width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return c("PC_minimize")}}),!!b&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return c("PC_exit")}}),!b&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return c("PC_shutdown")}})],0)],4,{onMouseDown:function(){(0,i.refocusLayout)()}}),(0,o.createVNode)(1,"div","NtosWrapper__content",t,0)],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(0),r=n(10),a=n(3),i=n(1),c=function(e){var t=(0,a.useBackend)(e).act;return(0,o.createComponentVNode)(2,i.Box,{width:"185px",children:(0,o.createComponentVNode)(2,i.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,mb:1,content:e,textAlign:"center",fontSize:"40px",lineHeight:"50px",width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return t("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e){var t=e.state,n=(0,a.useBackend)(e),r=n.act,l=n.data,u=(l.anchored,l.disk_present,l.status1),d=l.status2;return(0,o.createComponentVNode)(2,i.Box,{m:1,children:[(0,o.createComponentVNode)(2,i.Box,{mb:1,className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,i.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Box,{className:"NuclearBomb__displayBox",children:d})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",fontSize:"24px",lineHeight:"23px",textAlign:"center",width:"43px",ml:1,mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,i.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,c,{state:t})}),(0,o.createComponentVNode)(2,i.Flex.Item,{ml:1,width:"129px",children:(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:"32px",mb:1,className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:"32px",className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,i.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,i.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,i.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(0),r=n(3),a=n(1);t.OperatingComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.table,l=i.surgeries,u=void 0===l?[]:l,d=i.procedures,s=void 0===d?[]:d,p=i.patient,m=void 0===p?{}:p;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Patient State",children:[!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"}),(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",level:2,children:m?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]}):"No Patient Detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"Initiated Procedures",level:2,children:s.length?s.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!i.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)})):"No Active Procedures"})]})]},"state"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Surgery Procedures",children:(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return n("sync")}}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})},"procedures")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(0),r=n(20),a=n(15),i=n(1);t.OreBox=function(e){var t=e.state,n=t.config,c=t.data,l=n.ref,u=c.materials;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Empty",onClick:function(){return(0,a.act)(l,"removeall")}}),children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(0),r=n(20),a=n(3),i=n(1);t.OreRedemptionMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,l=r.unclaimedPoints,u=r.materials,d=r.alloys,s=r.diskDesigns,p=r.hasDisk;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),l,(0,o.createComponentVNode)(2,i.Button,{ml:2,content:"Claim",disabled:0===l,onClick:function(){return n("Claim")}})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{mb:1,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return n("diskEject")}})}),(0,o.createComponentVNode)(2,i.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,i.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return n("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,i.Button,{icon:"save",content:"Insert design disk",onClick:function(){return n("diskInsert")}})}),(0,o.createComponentVNode)(2,i.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,i.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,i.Table,{children:d.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Smelt",{id:e.id,sheets:t})}},e.id)}))})})],4)};var c=function(e){var t,n;function a(){var t;return(t=e.call(this)||this).state={amount:1},t}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a.prototype.render=function(){var e=this,t=this.state.amount,n=this.props,a=n.material,c=n.onRelease,l=Math.floor(a.amount);return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(a.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:a.value&&a.value+" cr"})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:[l," sheets"]})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:t,onChange:function(t,n){return e.setState({amount:n})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:l<1,content:"Release",onClick:function(){return c(t)}})]})]})},a}(o.Component)},function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(0),r=n(18),a=n(3),i=n(1),c=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.has_beaker,l=r.beaker_empty,u=r.has_blood,d=r.blood,s=!c||l;return(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:s,onClick:function(){return n("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"trash",content:"Empty",disabled:s,onClick:function(){return n("empty_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!c,onClick:function(){return n("eject_beaker")}})],4),children:c?l?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood DNA",children:d&&d.dna||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood Type",children:d&&d.type||"Unknown"})]}):(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=c;var l=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.is_ready;return(r.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,i.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,i.Input,{value:e.name,onChange:function(t,o){return n("rename_disease",{index:e.index,name:o})}}):e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"flask",content:"Create culture bottle",disabled:!c,onClick:function(){return n("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,i.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=l;var u=function(e){var t=e.symptom,n=t.name,a=t.desc,c=t.stealth,l=t.resistance,u=t.stage_speed,d=t.transmission,s=t.level,p=t.neutered,m=(0,r.map)((function(e,t){return{desc:e,label:t}}))(t.threshold_desc||{});return(0,o.createComponentVNode)(2,i.Section,{title:n,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{size:2,children:a}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Level",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:l}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:c}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmission",children:d})]})})]}),m.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var d=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.resistances||[];return(0,o.createComponentVNode)(2,i.Section,{title:"Antibodies",children:c.length>0?(0,o.createComponentVNode)(2,i.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!r.is_ready,onClick:function(){return n("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=d;t.Pandemic=function(e){var t=(0,a.useBackend)(e).data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),!!t.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l,{state:e.state}),(0,o.createComponentVNode)(2,d,{state:e.state})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ParticleAccelerator=void 0;var o=n(0),r=n(3),a=n(1);t.ParticleAccelerator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.assembled,l=i.power,u=i.strength;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Run Scan",onClick:function(){return n("scan")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:c?"good":"bad",children:c?"Ready - All parts in place":"Unable to detect all parts"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Particle Accelerator Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:!c,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Particle Strength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:!c,onClick:function(){return n("remove_strength")}})," ",String(u).padStart(1,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:!c,onClick:function(){return n("add_strength")}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(0),r=n(18),a=n(3),i=n(1),c=function(e){var t=e.craftables,n=void 0===t?[]:t,r=(0,a.useBackend)(e),c=r.act,l=r.data,u=l.craftability,d=void 0===u?{}:u,s=l.display_compact,p=l.display_craftable_only;return n.map((function(e){return p&&!d[e.ref]?null:s?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,className:"candystripe",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],tooltip:e.tool_text&&"Tools needed: "+e.tool_text,tooltipPosition:"left",onClick:function(){return c("make",{recipe:e.ref})}}),children:e.req_text},e.name):(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],onClick:function(){return c("make",{recipe:e.ref})}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.req_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Required",children:e.req_text}),!!e.catalyst_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Catalyst",children:e.catalyst_text}),!!e.tool_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)}))};t.PersonalCrafting=function(e){var t=e.state,n=(0,a.useBackend)(e),l=n.act,u=n.data,d=u.busy,s=u.display_craftable_only,p=u.display_compact,m=(0,r.map)((function(e,t){return{category:t,subcategory:e,hasSubcats:"has_subcats"in e,firstSubcatName:Object.keys(e).find((function(e){return"has_subcats"!==e}))}}))(u.crafting_recipes||{}),f=!!d&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"40px",textAlign:"center",children:(0,o.createComponentVNode)(2,i.Box,{mt:30,children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Crafting..."]})});return(0,o.createFragment)([f,(0,o.createComponentVNode)(2,i.Section,{title:"Personal Crafting",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:p?"check-square-o":"square-o",content:"Compact",selected:p,onClick:function(){return l("toggle_compact")}}),(0,o.createComponentVNode)(2,i.Button,{icon:s?"check-square-o":"square-o",content:"Craftable Only",selected:s,onClick:function(){return l("toggle_recipes")}})],4),children:(0,o.createComponentVNode)(2,i.Tabs,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.category,onClick:function(){return l("set_category",{category:e.category,subcategory:e.firstSubcatName})},children:function(){return!e.hasSubcats&&(0,o.createComponentVNode)(2,c,{craftables:e.subcategory,state:t})||(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,n){if("has_subcats"!==n)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n,onClick:function(){return l("set_category",{subcategory:n})},children:function(){return(0,o.createComponentVNode)(2,c,{craftables:e,state:t})}})}))(e.subcategory)})}},e.category)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableGenerator=void 0;var o=n(0),r=n(3),a=n(1);t.PortableGenerator=function(e){var t,n=(0,r.useBackend)(e),i=n.act,c=n.data;return t=c.stack_percent>50?"good":c.stack_percent>15?"average":"bad",(0,o.createFragment)([!c.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!c.ready_to_boot,children:c.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:c.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t,children:c.sheets}),c.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:c.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:c.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):c.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:c.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:c.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:c.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!c.connected&&"bad",children:c.connected?c.power_available:"Unconnected"})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=t.PortablePump=t.PortableBasicInfo=void 0;var o=n(0),r=n(3),a=n(1),i=n(38),c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.connected,l=i.holding,u=i.on,d=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:c?"good":"average",children:c?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return n("eject")}}),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)};t.PortableBasicInfo=c;t.PortablePump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.direction,u=(i.holding,i.target_pressure),d=i.default_pressure,s=i.min_pressure,p=i.max_pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-in-alt":"sign-out-alt",content:l?"In":"Out",selected:l,onClick:function(){return n("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,unit:"kPa",width:"75px",minValue:s,maxValue:p,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:u===s,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:u===d,onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:u===p,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})],4)};t.PortableScrubber=function(e){var t=(0,r.useBackend)(e),n=t.act,l=t.data.filter_types||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return n("toggle_filter",{val:e.gas_id})}},e.id)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PowerMonitor=void 0;var o=n(0),r=n(18),a=n(70),i=n(17),c=n(10),l=n(1);var u=5e5,d=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).state={sortByField:null},t}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=this,t=this.props.state.data,n=t.history,c=this.state.sortByField,d=n.supply[n.supply.length-1]||0,m=n.demand[n.demand.length-1]||0,f=n.supply.map((function(e,t){return[t,e]})),h=n.demand.map((function(e,t){return[t,e]})),C=Math.max.apply(Math,[u].concat(n.supply,n.demand)),b=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===c&&(0,r.sortBy)((function(e){return e.name})),"charge"===c&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===c&&(0,r.sortBy)((function(e){return t=e.load,n=String(t.split(" ")[1]).toLowerCase(),-["w","kw","mw","gw"].indexOf(n);var t,n}),(function(e){return-parseFloat(e.load)}))])(t.areas);return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"200px",children:(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Supply",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d,minValue:0,maxValue:C,color:"teal",content:(0,i.toFixed)(d/1e3)+" kW"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Draw",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:m,minValue:0,maxValue:C,color:"pink",content:(0,i.toFixed)(m/1e3)+" kW"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{position:"relative",height:"100%",children:[(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:f,rangeX:[0,f.length-1],rangeY:[0,C],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"}),(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:h,rangeX:[0,h.length-1],rangeY:[0,C],strokeColor:"rgba(224, 57, 151, 1)",fillColor:"rgba(224, 57, 151, 0.25)"})]})})]}),(0,o.createComponentVNode)(2,l.Section,{children:[(0,o.createComponentVNode)(2,l.Box,{mb:1,children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===c,content:"Name",onClick:function(){return e.setState({sortByField:"name"!==c&&"name"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===c,content:"Charge",onClick:function(){return e.setState({sortByField:"charge"!==c&&"charge"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===c,content:"Draw",onClick:function(){return e.setState({sortByField:"draw"!==c&&"draw"})}})]}),(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),b.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,e.name,0),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,s,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,p,{status:e.eqp}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,p,{status:e.lgt}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,p,{status:e.env}),2)],4,null,e.id)}))]})]})],4)},c}(o.Component);t.PowerMonitor=d;var s=function(e){var t=e.charging,n=e.charge;return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Icon,{width:"18px",textAlign:"center",name:0===t&&(n>50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,l.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,i.toFixed)(n)+"%"})],4)};s.defaultHooks=c.pureComponentHooks;var p=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,l.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};p.defaultHooks=c.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.ProximitySensor=void 0;var o=n(0),r=n(3),a=n(1);t.ProximitySensor=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.minutes,l=i.seconds,u=i.timing,d=i.scanning,s=i.sensitivity;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"lock":"unlock",content:d?"Armed":"Not Armed",selected:d,onClick:function(){return n("scanning")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Detection Range",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:d,onClick:function(){return n("sense",{range:-1})}})," ",String(s).padStart(1,"1")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:d,onClick:function(){return n("sense",{range:1})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Auto Arm",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:u?"Stop":"Start",selected:u,disabled:d,onClick:function(){return n("time")}}),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:d||u,onClick:function(){return n("input",{adjust:-30})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:d||u,onClick:function(){return n("input",{adjust:-1})}})," ",String(c).padStart(2,"0"),":",String(l).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:d||u,onClick:function(){return n("input",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:d||u,onClick:function(){return n("input",{adjust:30})}})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(0),r=n(18),a=n(17),i=n(3),c=n(1),l=n(38);t.Radio=function(e){var t=(0,i.useBackend)(e),n=t.act,u=t.data,d=u.freqlock,s=u.frequency,p=u.minFrequency,m=u.maxFrequency,f=u.listening,h=u.broadcasting,C=u.command,b=u.useCommand,g=u.subspace,N=u.subspaceSwitchable,v=l.RADIO_CHANNELS.find((function(e){return e.freq===s})),V=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(u.channels);return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",children:[d&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(s/10,1)+" kHz"})||(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:p/10,maxValue:m/10,value:s/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return n("frequency",{adjust:t-s/10})}}),v&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:v.color,ml:2,children:["[",v.name,"]"]})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:f?"volume-up":"volume-mute",selected:f,onClick:function(){return n("listen")}}),(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:h?"microphone":"microphone-slash",selected:h,onClick:function(){return n("broadcast")}}),!!C&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:b,content:"High volume "+(b?"ON":"OFF"),onClick:function(){return n("command")}}),!!N&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:g,content:"Subspace Tx "+(g?"ON":"OFF"),onClick:function(){return n("subspace")}})]}),!!g&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Channels",children:[0===V.length&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),V.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:(0,o.createComponentVNode)(2,c.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return n("channel",{channel:e.name})}})},e.name)}))]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RadioactiveMicrolaser=void 0;var o=n(0),r=n(3),a=n(1);t.RadioactiveMicrolaser=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.irradiate,l=i.stealth,u=i.scanmode,d=i.intensity,s=i.wavelength,p=i.on_cooldown,m=i.cooldown;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Status",children:(0,o.createComponentVNode)(2,a.Box,{color:p?"average":"good",children:p?"Recharging":"Ready"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Irradiation",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,onClick:function(){return n("irradiate")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stealth Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"eye-slash":"eye",content:l?"On":"Off",disabled:!c,selected:l,onClick:function(){return n("stealth")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"mortar-pestle":"heartbeat",content:u?"Scan Reagents":"Scan Health",disabled:c&&l,onClick:function(){return n("scanmode")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laser Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Intensity",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("radintensity",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("radintensity",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(d),width:"40px",minValue:1,maxValue:20,onChange:function(e,t){return n("radintensity",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("radintensity",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("radintensity",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Wavelength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("radwavelength",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("radwavelength",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(s),width:"40px",minValue:0,maxValue:120,onChange:function(e,t){return n("radwavelength",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("radwavelength",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("radwavelength",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Cooldown",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:m})})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.RemoteRobotControl=void 0;var o=n(0),r=n(20),a=n(3),i=n(1);t.RemoteRobotControl=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data.robots,l=void 0===c?[]:c;return l.length?l.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name+" ("+e.model+")",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"tools",content:"Interface",onClick:function(){return n("interface",{ref:e.ref})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"phone-alt",content:"Call",onClick:function(){return n("callbot",{ref:e.ref})}})],4),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"Inactive"===(0,r.decodeHtmlEntities)(e.mode)?"bad":"Idle"===(0,r.decodeHtmlEntities)(e.mode)?"average":"good",children:(0,r.decodeHtmlEntities)(e.mode)})," ",e.hacked&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"bad",children:"(HACKED)"})||""]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Location",children:e.location})]})},e.ref)})):(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.NoticeBox,{textAlign:"center",children:"No robots detected"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RoboticsControlConsole=void 0;var o=n(0),r=n(3),a=n(1);t.RoboticsControlConsole=function(e){var t=e.state,n=(0,r.useBackend)(e),l=(n.act,n.data),u=l.can_hack,d=l.cyborgs,s=void 0===d?[]:d,p=l.drones,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Cyborgs ("+s.length+")",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i,{state:t,cyborgs:s,can_hack:u})}},"cyborgs"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Drones ("+m.length+")",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,c,{state:t,drones:m})}},"drones")]})};var i=function(e){e.state;var t=e.cyborgs,n=e.can_hack,i=(0,r.useBackend)(e),c=i.act;i.data;return t.length?t.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([!!n&&!e.emagged&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return c("magbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",onClick:function(){return c("stopbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return c("killbot",{ref:e.ref})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:(0,o.createComponentVNode)(2,a.Box,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.ref)})):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No cyborg units detected within access parameters"})})},c=function(e){e.state;var t=e.drones,n=(0,r.useBackend)(e),i=n.act;n.data;return t.length?t.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return i("killdrone",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":"good",children:e.status?"Not Responding":"Nominal"})})})},e.ref)})):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No drone units detected within access parameters"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(0),r=n(10),a=n(3),i=n(1),c=["Atmospherics","Disposals","Transit Tubes"],l={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},d=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e){var t=(0,a.useBackend)(e),n=t.act,s=t.data,p=s.category,m=s.categories,f=void 0===m?[]:m,h=s.selected_color,C=s.piping_layer,b=s.mode,g=s.preview_rows.flatMap((function(e){return e.previews}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Category",children:c.map((function(e,t){return(0,o.createComponentVNode)(2,i.Button,{selected:p===t,icon:l[e],color:"transparent",content:e,onClick:function(){return n("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Modes",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:b&e.bitmask,content:e.name,onClick:function(){return n("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,width:"64px",color:u[h],content:h}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,i.ColorBox,{ml:1,color:u[e],onClick:function(){return n("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,i.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,i.Section,{children:[0===p&&(0,o.createComponentVNode)(2,i.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,checked:e===C,content:"Layer "+e,onClick:function(){return n("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,i.Box,{width:"108px",children:g.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return n("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,i.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:f.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{fluid:!0,icon:l[e.cat_name],label:e.cat_name,children:function(){return e.recipes.map((function(t){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:t.selected,content:t.pipe_name,title:t.pipe_name,onClick:function(){return n("pipe_type",{pipe_type:t.pipe_index,category:e.cat_name})}},t.pipe_index)}))}},e.cat_name)}))})})})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Roulette=t.RouletteBetTable=t.RouletteBoard=t.RouletteNumberButton=void 0;var o=n(0),r=n(10),a=n(3),i=n(1),c=n(42);n(15);(0,c.createLogger)("Roulette");var l=function(e){if(0===e)return"green";for(var t=[[1,10],[19,28]],n=!0,o=0;o=r[0]&&e<=r[1]){n=!1;break}}var a=e%2==0;return(n?a:!a)?"red":"black"},u=function(e){var t=e.number,n=(0,a.useBackend)(e).act;return(0,o.createComponentVNode)(2,i.Button,{bold:!0,content:t,color:l(t),width:"40px",height:"28px",fontSize:"20px",textAlign:"center",mb:0,className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:t})}})};t.RouletteNumberButton=u;var d=function(e){var t=e.state,n=(0,a.useBackend)(e).act;return(0,o.createVNode)(1,"table","Table",[(0,o.createVNode)(1,"tr","Roulette__board-row",[(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{content:"0",color:"transparent",height:"88px",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:0})}}),2,{rowSpan:"3"}),[3,6,9,12,15,18,21,24,27,30,33,36].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,u,{state:t,number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s3rd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[2,5,8,11,14,17,20,23,26,29,32,35].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,u,{state:t,number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s2nd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[1,4,7,10,13,16,19,22,25,28,31,34].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,u,{state:t,number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1st col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"1st 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-12"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"2nd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s13-24"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"3rd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s25-36"})}}),2,{colSpan:"4"})],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"1-18",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-18"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"Even",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"even"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"Black",color:"black",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"black"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"Red",color:"red",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"red"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"Odd",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"odd"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"19-36",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s19-36"})}}),2,{colSpan:"2"})],4)],4,{style:{width:"1px"}})};t.RouletteBoard=d;var s=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).state={customBet:500},t}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=c.prototype;return u.setCustomBet=function(e){this.setState({customBet:e})},u.render=function(){var e=this,t=(0,a.useBackend)(this.props),n=t.act,c=t.data,u=c.BetType;return u.startsWith("s")&&(u=u.substring(1,u.length)),(0,o.createVNode)(1,"table","Roulette__lowertable",[(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Last Spun:",16),(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Current Bet:",16)],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--spinresult","Roulette__lowertable--spinresult-"+l(c.LastSpin)]),c.LastSpin,0),(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--betscell"]),[(0,o.createComponentVNode)(2,i.Box,{bold:!0,mt:1,mb:1,fontSize:"25px",textAlign:"center",children:[c.BetAmount," cr on ",u]}),(0,o.createComponentVNode)(2,i.Box,{ml:1,mr:1,children:[(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet 10 cr",onClick:function(){return n("ChangeBetAmount",{amount:10})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet 50 cr",onClick:function(){return n("ChangeBetAmount",{amount:50})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet 100 cr",onClick:function(){return n("ChangeBetAmount",{amount:100})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet 500 cr",onClick:function(){return n("ChangeBetAmount",{amount:500})}}),(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:"Bet custom amount...",onClick:function(){return n("ChangeBetAmount",{amount:e.state.customBet})}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{size:.1,children:(0,o.createComponentVNode)(2,i.NumberInput,{value:this.state.customBet,minValue:0,maxValue:1e3,step:10,stepPixelSize:4,width:"40px",onChange:function(t,n){return e.setCustomBet(n)}})})]})]})],4)],4),(0,o.createVNode)(1,"tr",null,(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Box,{bold:!0,m:1,fontSize:"14px",textAlign:"center",children:"Swipe an ID card with a connected account to spin!"}),2,{colSpan:"2"}),2),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","Roulette__lowertable--cell",[(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,mr:1,children:"House Balance:"}),(0,o.createComponentVNode)(2,i.Box,{inline:!0,children:c.HouseBalance?c.HouseBalance+" cr":"None"})],4),(0,o.createVNode)(1,"td","Roulette__lowertable--cell",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:c.IsAnchored?"Bolted":"Unbolted",m:1,color:"transparent",textAlign:"center",onClick:function(){return n("anchor")}}),2)],4)],4)},c}(o.Component);t.RouletteBetTable=s;t.Roulette=function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,d,{state:e.state}),(0,o.createComponentVNode)(2,s,{state:e.state})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(0),r=n(3),a=n(1),i=n(166);t.SatelliteControl=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.satellites||[];return(0,o.createFragment)([c.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.meteor_shield_coverage/c.meteor_shield_coverage_max,content:100*c.meteor_shield_coverage/c.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return n("toggle",{id:e.id})}},e.id)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(0),r=n(3),a=n(1),i=n(71),c=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],l=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e){var t=e.state,n=(0,r.useBackend)(e),a=n.act,c=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{locked:c.locked,onLockedStatusChange:function(){return a("toggle_lock")}}),!c.locked&&(0,o.createComponentVNode)(2,s,{state:t})],0)};var d={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return m}},Guns:{title:"Scanner Mode: Guns",component:function(){return f}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return h}},Disease:{title:"Scanner Mode: Disease",component:function(){return C}},Species:{title:"Scanner Mode: Species",component:function(){return b}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return g}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return N}}},s=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data.scan_mode,l=d[c]||d.off,u=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==c&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return i("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},p=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return t("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return t("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return t("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return t("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return t("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return t("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return t("set_mode",{new_mode:"Nanites"})}})]})],4)},m=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},f=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},h=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,v,{state:t})],4)},C=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,l=n.data,u=l.reverse,d=l.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",u?"does not have":"has"," ","a disease equal or worse than ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===d,content:e,onClick:function(){return i("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},b=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,u=c.reverse,d=c.target_species,s=l.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",u?"not":""," ","of the ",s.name," species.","zombie"===d&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},g=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,d=c.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,v,{state:t})],4)},N=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,u=c.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return i("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,v,{state:t})],4)},v=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return n("toggle_reverse")},color:i?"bad":"good"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulator=void 0;var o=n(0),r=n(18),a=n(3),i=n(1);t.ShuttleManipulator=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.shuttles||[],u=c.templates||{},d=c.selected||{},s=c.existing_shuttle||{};return(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Status",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"JMP",onClick:function(){return n("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return n("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,i.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return n("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})}},"status"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Templates",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:(0,r.map)((function(e,t){var r=e.templates||[];return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.port_id,children:r.map((function(e){var t=e.shuttle_id===d.shuttle_id;return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return n("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))},t)}))(u)})})}},"templates"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Modification",children:(0,o.createComponentVNode)(2,i.Section,{children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{level:2,title:d.name,children:(!!d.description||!!d.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!d.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:d.description}),!!d.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:d.admin_notes})]})}),s?(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: "+s.name,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Jump To",onClick:function(){return n("jump_to",{type:"mobile",id:s.id})}}),children:[s.status,!!s.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),s.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Preview",onClick:function(){return n("preview",{shuttle_id:d.shuttle_id})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Load",color:"bad",onClick:function(){return n("load",{shuttle_id:d.shuttle_id})}})]})],0):"No shuttle selected"})},"modification")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(0),r=n(1),a=n(3),i=n(17);t.Signaler=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.code,u=c.frequency,d=c.minFrequency,s=c.maxFrequency;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:d/10,maxValue:s/10,value:u/10,format:function(e){return(0,i.toFixed)(e,1)},width:13,onDrag:function(e,t){return n("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:13,onDrag:function(e,t){return n("code",{code:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return n("signal")}})})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(0),r=n(3),a=n(1);t.Sleeper=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.open,l=i.occupant,u=void 0===l?{}:l,d=i.occupied,s=(i.chems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:u.name?u.name:"No Occupant",minHeight:"210px",buttons:!!u.stat&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:u.statstate,children:u.stat}),children:!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.health,minValue:u.minHealth,maxValue:u.maxHealth,ranges:{good:[50,Infinity],average:[0,50],bad:[-Infinity,0]}}),(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Oxygen",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u[e.type],minValue:0,maxValue:u.maxHealth,color:"bad"})},e.type)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cells",color:u.cloneLoss?"bad":"good",children:u.cloneLoss?"Damaged":"Healthy"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain",color:u.brainLoss?"bad":"good",children:u.brainLoss?"Abnormal":"Healthy"})]})],4)}),(0,o.createComponentVNode)(2,a.Section,{title:"Medicines",minHeight:"205px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c?"door-open":"door-closed",content:c?"Open":"Closed",onClick:function(){return n("door")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,disabled:!(d&&e.allowed),width:"140px",onClick:function(){return n("inject",{chem:e.id})}},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(0),r=n(3),a=n(1),i=function(e){var t=e.body,n=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t.htmlcolor,children:t.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:{owner:"You Are Here",stranger:"Occupied",available:"Swap"}[t.occupied],selected:"owner"===t.occupied,color:"stranger"===t.occupied&&"bad",onClick:function(){return n()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:{Dead:"bad",Unconscious:"average",Conscious:"good"}[t.status],children:t.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:t.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:t.area})]})})};t.BodyEntry=i;t.SlimeBodySwapper=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data.bodies,l=void 0===c?[]:c;return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i,{body:e,swapFunc:function(){return n("swap",{ref:e.ref})}},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(0),r=n(18),a=n(3),i=n(1);t.SmartVend=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createComponentVNode)(2,i.Section,{title:"Storage",buttons:!!c.isdryer&&(0,o.createComponentVNode)(2,i.Button,{icon:c.drying?"stop":"tint",onClick:function(){return n("Dry")},children:c.drying?"Stop drying":"Dry"}),children:0===c.contents.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:["Unfortunately, this ",c.name," is empty."]})||(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"center",children:c.verb?c.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.Button,{content:"One",disabled:e.amount<1,onClick:function(){return n("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return n("Release",{name:e.name})}})]})]},t)}))(c.contents)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(0),r=n(3),a=n(1);t.Smes=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return t=l.capacityPercent>=100?"good":l.inputting?"average":"bad",n=l.outputting?"good":l.charge>0?"average":"bad",(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*l.capacityPercent,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.inputAttempt?"sync-alt":"times",selected:l.inputAttempt,onClick:function(){return c("tryinput")},children:l.inputAttempt?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:t,children:l.capacityPercent>=100?"Fully Charged":l.inputting?"Charging":"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.inputLevel/l.inputLevelMax,content:l.inputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Input",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.inputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.inputLevelMax/1e3,onChange:function(e,t){return c("input",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:l.inputAvailable})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.outputAttempt?"power-off":"times",selected:l.outputAttempt,onClick:function(){return c("tryoutput")},children:l.outputAttempt?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:n,children:l.outputting?"Sending":l.charge>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.outputLevel/l.outputLevelMax,content:l.outputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.outputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.outputLevelMax/1e3,onChange:function(e,t){return c("output",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:l.outputUsed})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(0),r=n(3),a=n(1);t.SmokeMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.TankContents,l=(i.isTankLoaded,i.TankCurrentVolume),u=i.TankMaxVolume,d=i.active,s=i.setting,p=(i.screen,i.maxSetting),m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/u,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:l||0})," / "+u]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:s===e,icon:"plus",content:3*e,disabled:m0?"good":"bad",children:m})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:l,content:c+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===p,onClick:function(){return n("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===p,onClick:function(){return n("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===p,disabled:!f,onClick:function(){return n("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===p||1===p)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:u,onDrag:function(e,t){return n("azimuth",{value:t})}}),1===p&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-s-.01,maxValue:s+.01,value:d,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return n("azimuth_rate",{value:t})}}),2===p&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[u+" \xb0"," (auto)"]})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(0),r=n(3),a=n(1);t.SpaceHeater=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!i.hasPowercell||!i.open,onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,disabled:!i.hasPowercell,onClick:function(){return n("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!i.hasPowercell&&"bad",children:i.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.powerLevel/100,content:i.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(i.targetTemp-i.currentTemp)>50?"bad":Math.abs(i.targetTemp-i.currentTemp)>20?"average":"good",children:[i.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:i.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.targetTemp),width:"65px",unit:"\xb0C",minValue:i.minTemp,maxValue:i.maxTemp,onChange:function(e,t){return n("target",{target:t})}})||i.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:i.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===i.mode,onClick:function(){return n("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===i.mode,onClick:function(){return n("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===i.mode,onClick:function(){return n("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(0),r=n(3),a=n(1);t.SpawnersMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.spawners||[];return(0,o.createComponentVNode)(2,a.Section,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return n("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return n("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsole=void 0;var o=n(0),r=n(3),a=n(1);t.StationAlertConsole=function(e){var t=(0,r.useBackend)(e).data.alarms||[],n=t.Fire||[],i=t.Atmosphere||[],c=t.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===n.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),n.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(0),r=n(3),a=n(1);t.SuitStorageUnit=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.locked,l=i.open,u=i.safeties,d=i.uv_active,s=i.occupied,p=i.suit,m=i.helmet,f=i.mask,h=i.storage;return(0,o.createFragment)([!(!s||!u)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.Button,{icon:c?"unlock":"lock",content:c?"Unlock":"Lock",onClick:function(){return n("lock")}}),!c&&(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-out-alt":"sign-in-alt",content:l?"Close":"Open",onClick:function(){return n("door")}})],0),children:c&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"square":"square-o",content:m||"Empty",disabled:!m,onClick:function(){return n("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:p?"square":"square-o",content:p||"Empty",disabled:!p,onClick:function(){return n("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:f?"square":"square-o",content:f||"Empty",disabled:!f,onClick:function(){return n("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return n("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:s&&u,textAlign:"center",onClick:function(){return n("uv")}})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.SyndPane=t.StatusPane=t.SyndContractor=t.FakeTerminal=void 0;var o=n(0),r=n(1),a=n(3);var i=function(e){var t,n;function a(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var i=a.prototype;return i.tick=function(){var e=this.props,t=this.state;t.currentIndex<=e.allMessages.length?(this.setState((function(e){return{currentIndex:e.currentIndex+1}})),t.currentDisplay.push(e.allMessages[t.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))},i.componentDidMount=function(){var e=this,t=this.props.linesPerSecond,n=void 0===t?2.5:t;this.timer=setInterval((function(){return e.tick()}),1e3/n)},i.componentWillUnmount=function(){clearTimeout(this.timer)},i.render=function(){return(0,o.createComponentVNode)(2,r.Box,{m:1,children:this.state.currentDisplay.map((function(e){return(0,o.createFragment)([e,(0,o.createVNode)(1,"br")],0,e)}))})},a}(o.Component);t.FakeTerminal=i;t.SyndContractor=function(e){var t=(0,a.useBackend)(e),n=t.data,c=t.act,u=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(2e4*Math.random()),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"],d=!!n.error&&(0,o.createComponentVNode)(2,r.Dimmer,{children:(0,o.createComponentVNode)(2,r.Box,{backgroundColor:"red",minHeight:"150px",mt:30,ml:15,mr:15,children:(0,o.createComponentVNode)(2,r.Table,{m:1,children:(0,o.createComponentVNode)(2,r.Table.Row,{children:[(0,o.createComponentVNode)(2,r.Table.Cell,{collapsing:!0,fontSize:"100px",children:(0,o.createComponentVNode)(2,r.Icon,{name:"exclamation-triangle",mt:4,ml:2})}),(0,o.createComponentVNode)(2,r.Table.Cell,{verticalAlign:"top",textAlign:"center",children:[(0,o.createComponentVNode)(2,r.Box,{m:1,textAlign:"left",width:"100%",minHeight:"110px",children:n.error}),(0,o.createComponentVNode)(2,r.Button,{content:"Dismiss",onClick:function(){return c("PRG_clear_error")}})]})]})})})});return n.logged_in?n.logged_in&&n.first_load?(0,o.createComponentVNode)(2,r.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"525px",children:(0,o.createComponentVNode)(2,i,{allMessages:u,finishedTimeout:3e3,onFinished:function(){return c("PRG_set_first_load_finished")}})}):n.info_screen?(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"500px",children:(0,o.createComponentVNode)(2,i,{allMessages:["SyndTract v2.0","","We've identified potentional high-value targets that are","currently assigned to your mission area. They are believed","to hold valuable information which could be of immediate","importance to our organisation.","","Listed below are all of the contracts available to you. You","are to bring the specified target to the designated","drop-off, and contact us via this uplink. We will send","a specialised extraction unit to put the body into.","","We want targets alive - but we will sometimes pay slight","amounts if they're not, you just won't recieve the shown","bonus. You can redeem your payment through this uplink in","the form of raw telecrystals, which can be put into your","regular Syndicate uplink to purchase whatever you may need.","We provide you with these crystals the moment you send the","target up to us, which can be collected at anytime through","this system.","","Targets extracted will be ransomed back to the station once","their use to us is fulfilled, with us providing you a small","percentage cut. You may want to be mindful of them","identifying you when they come back. We provide you with","a standard contractor loadout, which will help cover your","identity."],linesPerSecond:10})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,content:"CONTINUE",color:"transparent",textAlign:"center",onClick:function(){return c("PRG_toggle_info")}})],4):(0,o.createFragment)([d,(0,o.createComponentVNode)(2,l,{state:e.state})],0):(0,o.createComponentVNode)(2,r.Section,{minHeight:"525px",children:[(0,o.createComponentVNode)(2,r.Box,{width:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,r.Button,{content:"REGISTER USER",color:"transparent",onClick:function(){return c("PRG_login")}})}),!!n.error&&(0,o.createComponentVNode)(2,r.NoticeBox,{children:n.error})]})};var c=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,r.Section,{title:(0,o.createFragment)([(0,o.createTextVNode)("Contractor Status"),(0,o.createComponentVNode)(2,r.Button,{content:"View Information Again",color:"transparent",mb:0,ml:1,onClick:function(){return n("PRG_toggle_info")}})],4),buttons:(0,o.createComponentVNode)(2,r.Box,{bold:!0,mr:1,children:[i.contract_rep," Rep"]}),children:(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:.85,children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"TC Availible",buttons:(0,o.createComponentVNode)(2,r.Button,{content:"Claim",disabled:i.redeemable_tc<=0,onClick:function(){return n("PRG_redeem_TC")}}),children:i.redeemable_tc}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"TC Earned",children:i.earned_tc})]})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Contracts Completed",children:i.contracts_completed}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Current Status",children:"ACTIVE"})]})})]})})};t.StatusPane=c;var l=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,l=i.contractor_hub_items||[],u=i.contracts||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,r.Tabs,{children:[(0,o.createComponentVNode)(2,r.Tabs.Tab,{label:"Contracts",children:(0,o.createComponentVNode)(2,r.Section,{title:"Availible Contracts",buttons:(0,o.createComponentVNode)(2,r.Button,{content:"Call Extraction",disabled:!i.ongoing_contract||i.extraction_enroute,onClick:function(){return n("PRG_call_extraction")}}),children:u.map((function(e){var t=e.status>1;if(!(e.status>=5))return(0,o.createComponentVNode)(2,r.Section,{title:e.target+" ("+e.target_rank+")",level:t?1:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,mr:1,children:[e.payout," (+",e.payout_bonus,") TC"]}),(0,o.createComponentVNode)(2,r.Button,{content:t?"Abort":"Accept",disabled:e.extraction_enroute,color:t&&"bad",onClick:function(){return n("PRG_contract"+(t?"_abort":"-accept"),{contract_id:e.id})}})],4),children:(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{children:e.message}),(0,o.createComponentVNode)(2,r.Grid.Column,{size:.5,children:[(0,o.createComponentVNode)(2,r.Box,{bold:!0,mb:1,children:"Dropoff Location:"}),(0,o.createComponentVNode)(2,r.Box,{children:e.dropoff})]})]})},e.target)}))})}),(0,o.createComponentVNode)(2,r.Tabs.Tab,{label:"Uplink",children:(0,o.createComponentVNode)(2,r.Section,{children:l.map((function(e){var t=e.cost?e.cost+" Rep":"FREE",a=-1!==e.limited;return(0,o.createComponentVNode)(2,r.Section,{title:e.name+" - "+t,level:2,buttons:(0,o.createFragment)([a&&(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,mr:1,children:[e.limited," remaining"]}),(0,o.createComponentVNode)(2,r.Button,{content:"Purchase",disabled:i.contract_rep0?"good":"bad",children:[s," TC"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{value:C,onInput:function(t,n){return e.setSearchText(n)},ml:1,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:u?"list":"info",content:u?"Compact":"Detailed",onClick:function(){return(0,a.act)(c,"compact_toggle")}}),!!d&&(0,o.createComponentVNode)(2,i.Button,{icon:"lock",content:"Lock",onClick:function(){return(0,a.act)(c,"lock")}})],0),children:C.length>0?(0,o.createVNode)(1,"table","Table",(0,o.createComponentVNode)(2,l,{compact:!0,items:m.flatMap((function(e){return e.items||[]})).filter((function(e){var t=C.toLowerCase();return String(e.name+e.desc).toLowerCase().includes(t)})),hoveredItem:h,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}}),2):(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:m.map((function(t){var n=t.name,r=t.items;if(null!==r)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n+" ("+r.length+")",children:function(){return(0,o.createComponentVNode)(2,l,{compact:u,items:r,hoveredItem:h,telecrystals:s,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}})}},n)}))})})},r}(o.Component);t.Uplink=c;var l=function(e){var t=e.items,n=e.hoveredItem,a=e.telecrystals,c=e.compact,l=e.onBuy,u=e.onBuyMouseOver,d=e.onBuyMouseOut,s=n&&n.cost||0;return c?(0,o.createComponentVNode)(2,i.Table,{children:t.map((function(e){var t=n&&n.name!==e.name,c=a-sl.user.cash),content:t?"FREE":e.price+" cr",onClick:function(){return(0,r.act)(u,"vend",{ref:e.ref})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Wires=void 0;var o=n(0),r=n(3),a=n(1);t.Wires=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.wires||[],l=i.status||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.color,labelColor:e.color,color:e.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:e.cut?"Mend":"Cut",onClick:function(){return n("cut",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Pulse",onClick:function(){return n("pulse",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:e.attached?"Detach":"Attach",onClick:function(){return n("attach",{wire:e.color})}})],4),children:!!e.wire&&(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)("("),e.wire,(0,o.createTextVNode)(")")],0)},e.color)}))})}),!!l.length&&(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],0)}}]); \ No newline at end of file diff --git a/tgui/packages/tgui/routes.js b/tgui/packages/tgui/routes.js index 60a0aa8339b..78109b7c69e 100644 --- a/tgui/packages/tgui/routes.js +++ b/tgui/packages/tgui/routes.js @@ -44,6 +44,7 @@ import { Electropack } from './interfaces/Electropack'; import { EmergencyShuttleConsole } from './interfaces/EmergencyShuttleConsole'; import { EngravedMessage } from './interfaces/EngravedMessage'; import { ExosuitControlConsole } from './interfaces/ExosuitControlConsole'; +import { Gateway } from './interfaces/Gateway'; import { Gps } from './interfaces/Gps'; import { GravityGenerator } from './interfaces/GravityGenerator'; import { GulagTeleporterConsole } from './interfaces/GulagTeleporterConsole'; @@ -318,6 +319,10 @@ const ROUTES = { component: () => ExosuitControlConsole, scrollable: true, }, + gateway: { + component: () => Gateway, + scrollable: true, + }, gps: { component: () => Gps, scrollable: true, From 6ea85d346d7549a5619adc8d86cb320a8eb8cae7 Mon Sep 17 00:00:00 2001 From: Fikou Date: Thu, 19 Mar 2020 21:38:38 +0100 Subject: [PATCH 083/115] FIXES A COMMENT IN HIGHLANDER CLAYMORE NOT BEING IN ALL CAPS!!!! #49976 ABOUT THE PULL REQUEST ON THE 18TH OF SEPTEMBER 2019 SPOOKYDONUT BROKE THE SACRED RULE OF HAVING ALL COMMENTS ON THE HIGHLANDER CLAYMORE BE IN ALL CAPS I WILL FIX WHAT HAPPENED ON THIS SAD DAY WITH THIS PR WHY ITS GOOD FOR THE GAME WE MUST RESTORE BALANCE TO THE WORLD --- code/game/objects/items/weaponry.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 888c61e183d..af4bec92789 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -81,7 +81,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS desc = "THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!\nActivate it in your hand to point to the nearest victim." flags_1 = CONDUCT_1 - item_flags = DROPDEL //If this ever happens, it's because you lost an arm + item_flags = DROPDEL //WOW BRO YOU LOST AN ARM, GUESS WHAT YOU DONT GET YOUR SWORD ANYMORE //I CANT BELIEVE SPOOKYDONUT WOULD BREAK THE REQUIREMENTS slot_flags = null block_chance = 0 //RNG WON'T HELP YOU NOW, PANSY light_range = 3 From b0ce764b2b5e48dfb3c9bfbec833a2011ebba28f Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Thu, 19 Mar 2020 13:48:00 -0700 Subject: [PATCH 084/115] Automatic changelog generation for PR #49808 [ci skip] --- html/changelogs/AutoChangeLog-pr-49808.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-49808.yml diff --git a/html/changelogs/AutoChangeLog-pr-49808.yml b/html/changelogs/AutoChangeLog-pr-49808.yml new file mode 100644 index 00000000000..778bbbc5379 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-49808.yml @@ -0,0 +1,4 @@ +author: "ATHATH" +delete-after: True +changes: + - balance: "Cyborgs (and other silicons) can now unbuckle people from chairs, beds, and other objects." From 422ef20ba8a6a754aa06d9ad0ca1913e867b14fd Mon Sep 17 00:00:00 2001 From: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com> Date: Thu, 19 Mar 2020 17:01:52 -0400 Subject: [PATCH 085/115] [READY] Space Dragon Rework (#49344) * Remove Space Dragon from drake.dm * Add space_dragon.dm * Update spacedragon.dmi * Add actions_space_dragon.dmi * Add carp_rift.dmi * Load space_dragon.dm * Update space_dragon.dm antagonist file * Update spawn_dragon.dm Spawn Event * Update misc.dm for Space Dragon Win Definition * Update role_preferences.dm to include Space Dragon * Update ticker.dm to include Space Dragon news message * First Trailing Newline for Travis * Second Trailing Newline for Travis * Changing rift to rifts * Update antag file with proposed new weight and time * Update the Greeting to be Correct * Update space_dragon.dm mob file * Remove Space Dragon Win Definition * Remove Space Dragon News Message * Undo Whitespace change * Update space_dragon.dm * Travis got mad about how I spelled CENTCOM in Autodoc Info * Update code/modules/events/space_dragon.dm Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> * Update space_dragon.dm * Update space_dragon.dm * Display Space Dragon in his own section of the Antag Panel * Use the new Spacewalk trait * Add Speed Boost After Rift Charge, Passive Healing While On Rift * Adds Space Dragon to the Dynamic Midround System * Notify Ghosts When a Carp Spawn is Added * Actually Fix That * Reduces Space Dragon's Spawn Weight from 10 to 5 Co-authored-by: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com> --- code/__DEFINES/role_preferences.dm | 2 + .../dynamic/dynamic_rulesets_midround.dm | 45 ++ .../antagonists/space_dragon/space_dragon.dm | 56 +- code/modules/events/space_dragon.dm | 11 +- .../simple_animal/hostile/megafauna/drake.dm | 75 --- .../simple_animal/hostile/space_dragon.dm | 533 ++++++++++++++++++ icons/mob/actions/actions_space_dragon.dmi | Bin 0 -> 1134 bytes icons/mob/spacedragon.dmi | Bin 5523 -> 6148 bytes icons/obj/carp_rift.dmi | Bin 0 -> 4319 bytes tgstation.dme | 1 + 10 files changed, 624 insertions(+), 99 deletions(-) create mode 100644 code/modules/mob/living/simple_animal/hostile/space_dragon.dm create mode 100644 icons/mob/actions/actions_space_dragon.dmi create mode 100644 icons/obj/carp_rift.dmi diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index ee34f958d27..f7a95f2f311 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -28,6 +28,7 @@ #define ROLE_OVERTHROW "Syndicate Mutineer" //Role removed, left here for safety. #define ROLE_HIVE "Hivemind Host" //Role removed, left here for safety. #define ROLE_OBSESSED "Obsessed" +#define ROLE_SPACE_DRAGON "Space Dragon" #define ROLE_SENTIENCE "Sentience Potion Spawn" #define ROLE_PYROCLASTIC_SLIME "Pyroclastic Anomaly Slime" #define ROLE_MIND_TRANSFER "Mind Transfer Potion" @@ -55,6 +56,7 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_BLOB, ROLE_NINJA, ROLE_OBSESSED, + ROLE_SPACE_DRAGON, ROLE_MONKEY = /datum/game_mode/monkey, ROLE_REVENANT, ROLE_ABDUCTOR, diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 755a26a2e73..0133e142808 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -450,3 +450,48 @@ message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Nightmare by the midround ruleset.") log_game("DYNAMIC: [key_name(S)] was spawned as a Nightmare by the midround ruleset.") return S + +////////////////////////////////////////////// +// // +// SPACE DRAGON (GHOST) // +// // +////////////////////////////////////////////// + +/datum/dynamic_ruleset/midround/from_ghosts/space_dragon + name = "Space Dragon" + antag_datum = /datum/antagonist/space_dragon + antag_flag = "Space Dragon" + antag_flag_override = ROLE_SPACE_DRAGON + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + required_enemies = list(2,2,1,1,1,1,1,0,0,0) + required_candidates = 1 + weight = 4 + cost = 10 + requirements = list(101,101,101,80,60,50,30,20,10,10) + high_population_requirement = 50 + repeatable = TRUE + var/list/spawn_locs = list() + +/datum/dynamic_ruleset/midround/from_ghosts/space_dragon/execute() + for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list) + spawn_locs += (C.loc) + if(!spawn_locs.len) + message_admins("No valid spawn locations found, aborting...") + return MAP_ERROR + . = ..() + +/datum/dynamic_ruleset/midround/from_ghosts/space_dragon/generate_ruleset_body(mob/applicant) + var/datum/mind/player_mind = new /datum/mind(applicant.key) + player_mind.active = TRUE + + var/mob/living/simple_animal/hostile/space_dragon/S = new (pick(spawn_locs)) + player_mind.transfer_to(S) + player_mind.assigned_role = "Space Dragon" + player_mind.special_role = "Space Dragon" + player_mind.add_antag_datum(/datum/antagonist/space_dragon) + + playsound(S, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Space Dragon by the midround ruleset.") + log_game("DYNAMIC: [key_name(S)] was spawned as a Space Dragon by the midround ruleset.") + priority_announce("A large organic energy flux has been recorded near of [station_name()], please stand-by.", "Lifesign Alert") + return S diff --git a/code/modules/antagonists/space_dragon/space_dragon.dm b/code/modules/antagonists/space_dragon/space_dragon.dm index 1f44b67b0e6..6422f60b2ff 100644 --- a/code/modules/antagonists/space_dragon/space_dragon.dm +++ b/code/modules/antagonists/space_dragon/space_dragon.dm @@ -1,31 +1,51 @@ /datum/antagonist/space_dragon name = "Space Dragon" - show_in_antagpanel = FALSE + roundend_category = "space dragons" + antagpanel_category = "Space Dragon" + job_rank = ROLE_SPACE_DRAGON + show_in_antagpanel = TRUE show_name_in_check_antagonists = TRUE + var/list/datum/mind/carp = list() /datum/antagonist/space_dragon/greet() - to_chat(owner, "I am Space Dragon, ex-space carp, and defender of the secrets of constellation, Draco.\n\ - Fabulous secret powers were revealed to me the day I held aloft a wizard's staff of change and said 'By the power of Draco, I have the power!'\n\ - The wizard was turned into the short-lived Pastry Cat while I became Space Dragon, the most powerful beast in the universe.\n\ - Clicking a tile will shoot fire onto that tile.\n\ - Using Tail Sweep will let me get the better of those who come too close.\n\ - Attacking dead bodies will allow me to gib them to restore health.\n\ - From the wizard's writings, he had been studying this station and its hierarchy. From this, I know who leads the station, and will kill them so the station underlings see me as their new leader.") + to_chat(owner, "Endless time and space we have moved through. We do not remember from where we came, we do not know where we will go. All space belongs to us.\n\ + Space is an empty void, of which our kind is the apex predator, and there was little to rival our claim to this title.\n\ + But now, we find intruders spread out amongst our claim, willing to fight our teeth with magics unimaginable, their dens like lights flicking in the depths of space.\n\ + Today, we will snuff out one of those lights.") + to_chat(owner, "You have five minutes to find a safe location to place down the first rift. If you take longer than five minutes to place a rift, you will be returned from whence you came.") owner.announce_objectives() SEND_SOUND(owner.current, sound('sound/magic/demon_attack1.ogg')) /datum/antagonist/space_dragon/proc/forge_objectives() - var/current_heads = SSjob.get_all_heads() - var/datum/objective/assassinate/killchosen = new - killchosen.owner = owner - var/datum/mind/selected = pick(current_heads) - killchosen.target = selected - killchosen.update_explanation_text() - objectives += killchosen - var/datum/objective/survive/survival = new - survival.owner = owner - objectives += survival + var/datum/objective/summon_carp/summon = new() + summon.dragon = src + objectives += summon /datum/antagonist/space_dragon/on_gain() forge_objectives() . = ..() + +/datum/objective/summon_carp + var/datum/antagonist/space_dragon/dragon + explanation_text = "Summon and protect the rifts to flood the station with carp." + +/datum/antagonist/space_dragon/roundend_report() + var/list/parts = list() + var/datum/objective/summon_carp/S = locate() in objectives + if(S.check_completion()) + parts += "The [name] has succeeded! Station space has been reclaimed by the space carp!" + parts += printplayer(owner) + var/objectives_complete = TRUE + if(objectives.len) + parts += printobjectives(objectives) + for(var/datum/objective/objective in objectives) + if(!objective.check_completion()) + objectives_complete = FALSE + break + if(objectives_complete) + parts += "The [name] was successful!" + else + parts += "The [name] has failed!" + parts += "The [name] was assisted by:" + parts += printplayerlist(carp) + return "
    [parts.Join("
    ")]
    " diff --git a/code/modules/events/space_dragon.dm b/code/modules/events/space_dragon.dm index 6cf69b15c0d..f4b773126ba 100644 --- a/code/modules/events/space_dragon.dm +++ b/code/modules/events/space_dragon.dm @@ -2,8 +2,8 @@ name = "Spawn Space Dragon" typepath = /datum/round_event/ghost_role/space_dragon max_occurrences = 1 - weight = 8 - earliest_start = 70 MINUTES + weight = 5 + earliest_start = 35 MINUTES min_players = 20 /datum/round_event/ghost_role/space_dragon @@ -12,10 +12,10 @@ announceWhen = 10 /datum/round_event/ghost_role/space_dragon/announce(fake) - priority_announce("It appears a lifeform with magical traces is approaching [station_name()], please stand-by.", "Lifesign Alert") + priority_announce("A large organic energy flux has been recorded near of [station_name()], please stand-by.", "Lifesign Alert") /datum/round_event/ghost_role/space_dragon/spawn_role() - var/list/candidates = get_candidates(ROLE_ALIEN, null, ROLE_ALIEN) + var/list/candidates = get_candidates(ROLE_SPACE_DRAGON, null, ROLE_SPACE_DRAGON) if(!candidates.len) return NOT_ENOUGH_PLAYERS @@ -31,7 +31,7 @@ message_admins("No valid spawn locations found, aborting...") return MAP_ERROR - var/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/S = new ((pick(spawn_locs))) + var/mob/living/simple_animal/hostile/space_dragon/S = new (pick(spawn_locs)) player_mind.transfer_to(S) player_mind.assigned_role = "Space Dragon" player_mind.special_role = "Space Dragon" @@ -41,4 +41,3 @@ log_game("[key_name(S)] was spawned as a Space Dragon by an event.") spawned_mobs += S return SUCCESSFUL_SPAWN - diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index dca43d39498..e775841049e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -597,78 +597,3 @@ obj/effect/temp_visual/fireball /mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype) return - -/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon - name = "space dragon" - maxHealth = 250 - health = 250 - faction = list("neutral") - desc = "A space carp turned dragon by vile magic. Has the same ferocity of a space carp, but also a much more enabling body." - icon = 'icons/mob/spacedragon.dmi' - icon_state = "spacedragon" - icon_living = "spacedragon" - icon_dead = "spacedragon_dead" - health_doll_icon = "spacedragon" - obj_damage = 80 - melee_damage_upper = 35 - melee_damage_lower = 35 - speed = 0 - mouse_opacity = MOUSE_OPACITY_ICON - loot = list() - crusher_loot = list() - butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) - move_force = MOVE_FORCE_NORMAL - move_resist = MOVE_FORCE_NORMAL - pull_force = MOVE_FORCE_NORMAL - deathmessage = "screeches as its wings turn to dust and it collapses on the floor, life estinguished." - attack_action_types = list() - small_sprite_type = /datum/action/small_sprite/megafauna/spacedragon - -/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/grant_achievement(medaltype,scoretype) - return - -/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/Initialize() - var/obj/effect/proc_holder/spell/aoe_turf/repulse/spacedragon/repulse_action = new /obj/effect/proc_holder/spell/aoe_turf/repulse/spacedragon(src) - repulse_action.action.Grant(src) - mob_spell_list += repulse_action - . = ..() - -/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/proc/fire_stream(var/atom/at = target) - playsound(get_turf(src),'sound/magic/fireball.ogg', 200, TRUE) - SLEEP_CHECK_DEATH(0) - var/range = 20 - var/list/turfs = list() - turfs = line_target(0, range, at) - INVOKE_ASYNC(src, .proc/fire_line, turfs) - -/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/OpenFire() - if(swooping) - return - ranged_cooldown = world.time + ranged_cooldown_time - fire_stream() - -/obj/effect/proc_holder/spell/aoe_turf/repulse/spacedragon - name = "Tail Sweep" - desc = "Throw back attackers with a sweep of your tail." - sound = 'sound/magic/tail_swing.ogg' - charge_max = 150 - clothes_req = FALSE - antimagic_allowed = TRUE - range = 1 - cooldown_min = 150 - invocation_type = "none" - sparkle_path = /obj/effect/temp_visual/dir_setting/tailsweep - action_icon = 'icons/mob/actions/actions_xeno.dmi' - action_icon_state = "tailsweep" - action_background_icon_state = "bg_alien" - anti_magic_check = FALSE - -/obj/effect/proc_holder/spell/aoe_turf/repulse/spacedragon/cast(list/targets,mob/user = usr) - if(iscarbon(user)) - var/mob/living/carbon/C = user - playsound(C.loc,'sound/effects/hit_punch.ogg', 80, TRUE, TRUE) - C.spin(6,1) - ..(targets, user, 60) - -/mob/living/simple_animal/hostile/megafauna/dragon/space_dragon/AltClickOn(atom/movable/A) - return diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm new file mode 100644 index 00000000000..a7e1e64e69a --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm @@ -0,0 +1,533 @@ +/** + * # Space Dragon + * + * A space-faring leviathan-esque monster which breathes fire and summons carp. Spawned during its respective midround antagonist event. + * + * A space-faring monstrosity who has the ability to breathe dangerous fire breath and uses its powerful wings to knock foes away. + * Normally spawned as an antagonist during the Space Dragon event, Space Dragon's main goal is to open three rifts from which to pull a great tide of carp onto the station. + * Space Dragon can summon only one rift at a time, and can do so anywhere a blob is allowed to spawn. In order to trigger his victory condition, Space Dragon must summon and defend three rifts while they charge. + * Space Dragon, when spawned, has five minutes to summon the first rift. Failing to do so will cause Space Dragon to return from whence he came. + * When the rift spawns, ghosts can interact with it to spawn in as space carp to help complete the mission. One carp is granted when the rift is first summoned, with an extra one every 40 seconds. + * Once the victory condition is met, the shuttle is called and all current rifts are allowed to spawn infinite sentient space carp. + * If a charging rift is destroyed, Space Dragon will be incredibly slowed, and the endlag on his gust attack is greatly increased on each use. + * Space Dragon has the following abilities to assist him with his objective: + * - Can shoot fire in straight line, dealing 30 burn damage and setting those suseptible on fire. + * - Can use his wings to temporarily stun and knock back any nearby mobs. This attack has no cooldown, but instead has endlag after the attack where Space Dragon cannot act. This endlag's time decreases over time, but is added to every time he uses the move. + * - Can swallow mob corpses to heal for half their max health. Any corpses swallowed are stored within him, and will be regurgitated on death. + * - Can tear through any type of wall. This takes 4 seconds for most walls, and 12 seconds for reinforced walls. + */ +/mob/living/simple_animal/hostile/space_dragon + name = "Space Dragon" + desc = "A vile leviathan-esque creature that flies in the most unnatural way. Slightly looks similar to a space carp." + maxHealth = 400 + health = 400 + a_intent = INTENT_HARM + speed = 0 + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" + attack_sound = 'sound/magic/demon_attack1.ogg' + deathsound = 'sound/magic/demon_dies.ogg' + icon = 'icons/mob/spacedragon.dmi' + icon_state = "spacedragon" + icon_living = "spacedragon" + icon_dead = "spacedragon_dead" + health_doll_icon = "spacedragon" + obj_damage = 50 + environment_smash = ENVIRONMENT_SMASH_NONE + flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 + melee_damage_upper = 35 + melee_damage_lower = 35 + armour_penetration = 30 + pixel_x = -16 + turns_per_move = 5 + ranged = TRUE + mouse_opacity = MOUSE_OPACITY_ICON + butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) + deathmessage = "screeches as its wings turn to dust and it collapses on the floor, life estinguished." + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + faction = list("carp") + pressure_resistance = 200 + /// Current time since the the last rift was activated. If set to -1, does not increment. + var/riftTimer = 0 + /// Maximum amount of time which can pass without a rift before Space Dragon despawns. + var/maxRiftTimer = 300 + /// How much endlag using Wing Gust should apply. Each use of wing gust increments this, and it decreases over time. + var/tiredness = 0 + /// A multiplier to how much each use of wing gust should add to the tiredness variable. Set to 5 if the current rift is destroyed. + var/tiredness_mult = 1 + /// Determines whether or not Space Dragon is in the middle of using wing guat. If set to true, prevents him from moving and doing certain actions. + var/using_special = FALSE + /// A list of all of the rifts created by Space Dragon. Used for setting them all to infinite carp spawn when Space Dragon wins, and removing them when Space Dragon dies. + var/list/obj/structure/carp_rift/rift_list = list() + /// How many rifts have been successfully charged + var/rifts_charged = 0 + /// Whether or not Space Dragon has completed their objective, and thus triggered the ending sequence. + var/objective_complete = FALSE + /// The togglable small sprite action + var/small_sprite_type = /datum/action/small_sprite/megafauna/spacedragon + /// The innate ability to use wing gust + var/datum/action/innate/space_dragon/gustAttack/gust + /// The innate ability to summon rifts + var/datum/action/innate/space_dragon/summonRift/rift + +/mob/living/simple_animal/hostile/space_dragon/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) + if(small_sprite_type) + var/datum/action/small_sprite/small_action = new small_sprite_type() + small_action.Grant(src) + gust = new + gust.Grant(src) + rift = new + rift.Grant(src) + +/mob/living/simple_animal/hostile/space_dragon/Life(mapload) + . = ..() + tiredness = max(tiredness - 1, 0) + if(rifts_charged == 3 && !objective_complete) + victory() + if(riftTimer == -1) + return + riftTimer = min(riftTimer + 1, maxRiftTimer + 1) + if(riftTimer == (maxRiftTimer - 60)) + to_chat(src, "You have a minute left to summon the rift! Get to it!") + return + if(riftTimer == maxRiftTimer) + to_chat(src, "You've failed to summon the rift in a timely manner! You're being pulled back from whence you came!") + destroy_rifts() + QDEL_NULL(src) + +/mob/living/simple_animal/hostile/space_dragon/AttackingTarget() + if(using_special) + return + if(target == src) + to_chat(src, "You almost bite yourself, but then decide against it.") + return + if(istype(target, /turf/closed/wall)) + var/turf/closed/wall/thewall = target + to_chat(src, "You begin tearing through the wall...") + playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + var/timetotear = 40 + if(istype(target, /turf/closed/wall/r_wall)) + timetotear = 120 + if(do_after(src, timetotear, target = thewall)) + if(istype(thewall, /turf/open)) + return + thewall.dismantle_wall(1) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + return + if(isliving(target)) //Swallows corpses like a snake to regain health. + var/mob/living/L = target + if(L.stat == DEAD) + to_chat(src, "You begin to swallow [L] whole...") + if(do_after(src, 30, target = L)) + if(eat(L)) + adjustHealth(-L.maxHealth * 0.5) + return + . = ..() + if(istype(target, /obj/mecha)) + var/obj/mecha/M = target + M.take_damage(50, BRUTE, "melee", 1) + +/mob/living/simple_animal/hostile/space_dragon/Move() + if(!using_special) + ..() + +/mob/living/simple_animal/hostile/space_dragon/OpenFire() + if(using_special) + return + ranged_cooldown = world.time + ranged_cooldown_time + fire_stream() + +/mob/living/simple_animal/hostile/space_dragon/death(gibbed) + empty_contents() + if(!objective_complete) + destroy_rifts() + ..() + +/mob/living/simple_animal/hostile/space_dragon/wabbajack_act(mob/living/new_mob) + empty_contents() + . = ..() + +/** + * Determines a line of turfs from sources's position to the target with length range. + * + * Determines a line of turfs from the source's position to the target with length range. + * The line will extend on past the target if the range is large enough, and not reach the target if range is small enough. + * Arguments: + * * offset - whether or not to aim slightly to the left or right of the target + * * range - how many turfs should we go out for + * * atom/at - The target + */ +/mob/living/simple_animal/hostile/space_dragon/proc/line_target(offset, range, atom/at = target) + if(!at) + return + var/angle = ATAN2(at.x - src.x, at.y - src.y) + offset + var/turf/T = get_turf(src) + for(var/i in 1 to range) + var/turf/check = locate(src.x + cos(angle) * i, src.y + sin(angle) * i, src.z) + if(!check) + break + T = check + return (getline(src, T) - get_turf(src)) + +/** + * Spawns fire at each position in a line from the source to the target. + * + * Spawns fire at each position in a line from the source to the target. + * Stops if it comes into contact with a solid wall, a window, or a door. + * Delays the spawning of each fire by 1.5 deciseconds. + * Arguments: + * * atom/at - The target + */ +/mob/living/simple_animal/hostile/space_dragon/proc/fire_stream(var/atom/at = target) + playsound(get_turf(src),'sound/magic/fireball.ogg', 200, TRUE) + var/range = 20 + var/list/turfs = list() + turfs = line_target(0, range, at) + var/delayFire = -1.5 + for(var/turf/T in turfs) + if(istype(T, /turf/closed)) + return + for(var/obj/structure/window/W in T.contents) + return + for(var/obj/machinery/door/D in T.contents) + if(D.density) + return + delayFire += 1.5 + addtimer(CALLBACK(src, .proc/dragon_fire_line, T), delayFire) + +/** + * What occurs on each tile to actually create the fire. + * + * Creates a fire on the given turf. + * It creates a hotspot on the given turf, damages any living mob with 30 burn damage, and damages mechs by 50. + * It can only hit any given target once. + * Arguments: + * * turf/T - The turf to trigger the effects on. + */ +mob/living/simple_animal/hostile/space_dragon/proc/dragon_fire_line(turf/T) + var/list/hit_list = list() + hit_list += src + new /obj/effect/hotspot(T) + T.hotspot_expose(700,50,1) + for(var/mob/living/L in T.contents) + if(L in hit_list) + continue + hit_list += L + L.adjustFireLoss(30) + to_chat(L, "You're hit by [src]'s fire breath!") + // deals damage to mechs + for(var/obj/mecha/M in T.contents) + if(M in hit_list) + continue + hit_list += M + M.take_damage(50, BRUTE, "melee", 1) + +/** + * Handles consuming and storing consumed things inside Space Dragon + * + * Plays a sound and then stores the consumed thing inside Space Dragon. + * Used in AttackingTarget(), paired with a heal should it succeed. + * Arguments: + * * atom/movable/A - The thing being consumed + */ +/mob/living/simple_animal/hostile/space_dragon/proc/eat(atom/movable/A) + if(A && A.loc != src) + playsound(src, 'sound/magic/demon_attack1.ogg', 100, TRUE) + visible_message("[src] swallows [A] whole!") + A.forceMove(src) + return TRUE + return FALSE + +/** + * Disperses the contents of the mob on the surrounding tiles. + * + * Randomly places the contents of the mob onto surrounding tiles. + * Has a 10% chance to place on the same tile as the mob. + */ +/mob/living/simple_animal/hostile/space_dragon/proc/empty_contents() + for(var/atom/movable/AM in src) + AM.forceMove(loc) + if(prob(90)) + step(AM, pick(GLOB.alldirs)) + +/** + * Resets Space Dragon's status after using wing gust. + * + * Resets Space Dragon's status after using wing gust. + * If it isn't dead by the time it calls this method, reset the sprite back to the normal living sprite. + * Also sets the using_special variable to FALSE, allowing Space Dragon to move and attack freely again. + */ +/mob/living/simple_animal/hostile/space_dragon/proc/reset_status() + if(stat != DEAD) + icon_state = "spacedragon" + using_special = FALSE + +/** + * Handles Space Dragon's temporary empowerment after boosting a rift. + * + * Empowers and depowers Space Dragon after a successful rift charge. + * Empowered, Space Dragon regains all his health and becomes temporarily faster for 30 seconds, along with being tinted red. + * Depowered simply resets him back to his default state. + */ +/mob/living/simple_animal/hostile/space_dragon/proc/rift_empower(is_empowered) + if(is_empowered) + fully_heal() + color = "#FF0000" + set_varspeed(-0.5) + addtimer(CALLBACK(src, .proc/rift_empower, FALSE), 300) + else + color = "#FFFFFF" + set_varspeed(0) + +/** + * Destroys all of Space Dragon's current rifts. + * + * QDeletes all the current rifts after removing their references to other objects. + * Currently, the only reference they have is to the Dragon which created them, so we clear that before deleting them. + * Currently used when Space Dragon dies. + */ +/mob/living/simple_animal/hostile/space_dragon/proc/destroy_rifts() + for(var/obj/structure/carp_rift/rift in rift_list) + rift.dragon = null + rift_list -= rift + if(!QDELETED(rift)) + QDEL_NULL(rift) + rifts_charged = 0 + +/** + * Handles wing gust from the windup all the way to the endlag at the end. + * + * Handles the wing gust attack from start to finish, based on the timer. + * When intially triggered, starts at 0. Until the timer reaches 10, increase Space Dragon's y position by 2 and call back to the function in 1.5 deciseconds. + * When the timer is at 10, trigger the attack. Change Space Dragon's sprite. reset his y position, and push all living creatures back in a 3 tile radius and stun them for 5 seconds. + * Stay in the ending state for how much our tiredness dictates and add to our tiredness. + * Arguments: + * * timer - The timer used for the windup. + */ +/mob/living/simple_animal/hostile/space_dragon/proc/useGust(timer) + if(timer != 10) + pixel_y = pixel_y + 2; + addtimer(CALLBACK(src, .proc/useGust, timer + 1), 1.5) + return + pixel_y = 0 + icon_state = "spacedragon_gust_2" + playsound(src, 'sound/effects/gravhit.ogg', 100, TRUE) + var/gust_locs = spiral_range_turfs(3, get_turf(src)) + var/list/hit_things = list() + for(var/turf/T in gust_locs) + for(var/mob/living/L in T.contents) + if(L == src) + continue + hit_things += L + visible_message("[L] is knocked back by the gust!") + to_chat(L, "You're knocked back by the gust!") + var/dir_to_target = get_dir(get_turf(src), get_turf(L)) + var/throwtarget = get_edge_target_turf(target, dir_to_target) + L.safe_throw_at(throwtarget, 10, 1, src) + L.Paralyze(50) + addtimer(CALLBACK(src, .proc/reset_status), 4 + ((tiredness * tiredness_mult) / 10)) + tiredness = tiredness + (30 * tiredness_mult) + +/** + * Sets up Space Dragon's victory for completing the objectives. + * + * Triggers when Space Dragon completes his objective. + * Calls the shuttle with a coefficient of 3, making it impossible to recall. + * Sets all of his rifts to allow for infinite sentient carp spawns + * Also plays appropiate sounds and CENTCOM messages. + */ +/mob/living/simple_animal/hostile/space_dragon/proc/victory() + objective_complete = TRUE + var/datum/antagonist/space_dragon/S = mind.has_antag_datum(/datum/antagonist/space_dragon) + if(S) + var/datum/objective/summon_carp/main_objective = locate() in S.objectives + if(main_objective) + main_objective.completed = TRUE + sound_to_playing_players('sound/machines/alarm.ogg') + sleep(100) + priority_announce("A large amount of lifeforms have been detected approaching [station_name()] at extreme speeds. Evacuation of the remamining crew will begin immediately.", "Central Command Spacial Corps") + sleep(50) + SSshuttle.emergency.request(null, set_coefficient = 0.3) + +/datum/action/innate/space_dragon + background_icon_state = "bg_default" + icon_icon = 'icons/mob/actions/actions_space_dragon.dmi' + +/datum/action/innate/space_dragon/gustAttack + name = "Gust Attack" + button_icon_state = "gust_attack" + desc = "Use your wings to knock back foes with gusts of air, pushing them away and stunning them. Using this too often will leave you vulnerable for longer periods of time." + +/datum/action/innate/space_dragon/gustAttack/Activate() + var/mob/living/simple_animal/hostile/space_dragon/S = owner + if(S.using_special) + return + S.using_special = TRUE + S.icon_state = "spacedragon_gust" + S.useGust(0) + +/datum/action/innate/space_dragon/summonRift + name = "Summon Rift" + button_icon_state = "carp_rift" + desc = "Summon a rift to bring forth a horde of space carp." + +/datum/action/innate/space_dragon/summonRift/Activate() + var/mob/living/simple_animal/hostile/space_dragon/S = owner + if(S.using_special) + return + var/area/A = get_area(S) + if(!A.valid_territory) + to_chat(S, "You can't summon a rift here! Try summoning somewhere secure within the station!") + return + for(var/obj/structure/carp_rift/rift in S.rift_list) + var/area/RA = get_area(rift) + if(RA == A) + to_chat(S, "You've already summoned a rift in this area! You have to summon again somewhere else!") + return + to_chat(S, "You begin to open a rift...") + if(do_after(S, 100, target = S)) + for(var/obj/structure/carp_rift/c in S.loc.contents) + return + var/obj/structure/carp_rift/CR = new /obj/structure/carp_rift(S.loc) + playsound(S, 'sound/vehicles/rocketlaunch.ogg', 100, TRUE) + S.riftTimer = -1 + CR.dragon = S + S.rift_list += CR + to_chat(S, "The rift has been summoned. Prevent the crew from destroying it at all costs!") + notify_ghosts("The Space Dragon has opened a rift!", source = CR, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Carp Rift Opened") + qdel(src) + +/** + * # Carp Rift + * + * The portals Space Dragon summons to bring carp onto the station. + * + * The portals Space Dragon summons to bring carp onto the station. His main objective is to summon 3 of them and protect them from being destroyed. + * The portals can summon sentient space carp in limited amounts. The portal also changes color based on whether or not a carp spawn is available. + * Once it is fully charged, it becomes indestructible, and intermitently spawns non-sentient carp. It is still destroyed if Space Dragon dies. + */ +/obj/structure/carp_rift + name = "carp rift" + desc = "A rift akin to the ones space carp use to travel long distances." + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) + max_integrity = 300 + icon = 'icons/obj/carp_rift.dmi' + icon_state = "carp_rift" + light_color = LIGHT_COLOR_BLUE + light_range = 10 + anchored = TRUE + density = FALSE + /// The amount of time the rift has charged for. + var/time_charged = 0 + /// The maximum charge the rift can have. It actually goes to max_charge + 1, as to prevent constantly retriggering the effects on full charge. + var/max_charge = 240 + /// How many carp spawns it has available. + var/carp_stored = 0 + /// A reference to the Space Dragon that created it. + var/mob/living/simple_animal/hostile/space_dragon/dragon + +/obj/structure/carp_rift/Initialize(mapload) + . = ..() + carp_stored = 1 + time_charged = 1 + START_PROCESSING(SSobj, src) + +/obj/structure/carp_rift/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + playsound(src, 'sound/magic/lightningshock.ogg', 50, TRUE) + +/obj/structure/carp_rift/Destroy() + STOP_PROCESSING(SSobj, src) + if(time_charged != max_charge + 1) + to_chat(dragon, "The rift has been destroyed! You have failed, and find yourself brought down by the weight of your failure.") + dragon.set_varspeed(5) + dragon.tiredness_mult = 5 + dragon.destroy_rifts() + playsound(src, 'sound/vehicles/rocketlaunch.ogg', 100, TRUE) + return ..() + +/obj/structure/carp_rift/process() + time_charged = min(time_charged + 1, max_charge + 1) + update_check() + for(var/mob/living/simple_animal/hostile/hostilehere in loc) + if("carp" in hostilehere.faction) + hostilehere.adjustHealth(-10) + var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(hostilehere)) + H.color = "#0000FF" + if(time_charged < max_charge) + desc = "A rift akin to the ones space carp use to travel long distances. It seems to be [(time_charged / max_charge) * 100]% charged." + if(carp_stored == 0) + icon_state = "carp_rift" + light_color = LIGHT_COLOR_BLUE + else + icon_state = "carp_rift_carpspawn" + light_color = LIGHT_COLOR_PURPLE + else + var/spawncarp = rand(1,40) + if(spawncarp == 1) + new /mob/living/simple_animal/hostile/carp(loc) + +/obj/structure/carp_rift/attack_ghost(mob/user) + . = ..() + summon_carp(user) + +/** + * Does a series of checks based on the portal's status. + * + * Performs a number of checks based on the current charge of the portal, and triggers various effects accordingly. + * If the current charge is a multiple of 40, add an extra carp spawn. + * If we're halfway charged, announce to the crew our location in a CENTCOM announcement. + * If we're fully charged, tell the crew we are, change our color to yellow, become invulnerable, and give Space Dragon the ability to make another rift, if he hasn't summoned 3 total. + */ +/obj/structure/carp_rift/proc/update_check() + if(time_charged % 40 == 0 && time_charged != max_charge) + carp_stored++ + notify_ghosts("The carp rift can summon an additional carp!", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Carp Spawn Available") + if(time_charged == (max_charge - 120)) + var/area/A = get_area(src) + priority_announce("A rift is causing an unnaturally large energy flux in [A.map_name]. Stop it at all costs!", "Central Command Spacial Corps", 'sound/ai/spanomalies.ogg') + if(time_charged == max_charge) + var/area/A = get_area(src) + priority_announce("Spatial object has reached peak energy charge in [A.map_name], please stand-by.", "Central Command Spacial Corps") + obj_integrity = INFINITY + desc = "A rift akin to the ones space carp use to travel long distances. This one is fully charged, and is capable of bringing many carp to the station's location." + icon_state = "carp_rift_charged" + light_color = LIGHT_COLOR_YELLOW + armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) + resistance_flags = INDESTRUCTIBLE + dragon.rifts_charged += 1 + if(dragon.rifts_charged != 3) + dragon.rift = new + dragon.rift.Grant(dragon) + dragon.riftTimer = 0 + dragon.rift_empower(TRUE) + +/** + * Used to create carp controlled by ghosts when the option is available. + * + * Creates a carp for the ghost to control if we have a carp spawn available. + * Gives them prompt to control a carp, and if our circumstances still allow if when they hit yes, spawn them in as a carp. + * Also add them to the list of carps in Space Dragon's antgonist datum, so they'll be displayed as having assisted him on round end. + * Arguments: + * * mob/user - The ghost which will take control of the carp. + */ +/obj/structure/carp_rift/proc/summon_carp(mob/user) + if(carp_stored == 0)//Not enough carp points + return FALSE + var/carp_ask = alert("Become a carp?", "Help bring forth the horde?", "Yes", "No") + if(carp_ask == "No" || !src || QDELETED(src) || QDELETED(user)) + return FALSE + if(carp_stored == 0) + to_chat(user, "The rift already summoned enough carp!") + return FALSE + var/mob/living/simple_animal/hostile/carp/newcarp = new /mob/living/simple_animal/hostile/carp(loc) + newcarp.key = user.key + var/datum/antagonist/space_dragon/S = dragon.mind.has_antag_datum(/datum/antagonist/space_dragon) + if(S) + S.carp += newcarp.mind + to_chat(newcarp, "You have arrived in order to assist the space dragon with securing the rift. Do not jeopardize the mission, and protect the rift at all costs!") + carp_stored -= 1 + return TRUE diff --git a/icons/mob/actions/actions_space_dragon.dmi b/icons/mob/actions/actions_space_dragon.dmi new file mode 100644 index 0000000000000000000000000000000000000000..f8af695e0c476c93336ef7274d71a6b8b75c2500 GIT binary patch literal 1134 zcmV-!1d;oRP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5DLJvIAigLwtwf27GbOXA7$|1Q#hF%=n41b=!&Ro27MH{)mXstW zXX8?hr%AHw@N+>XkH1Y#Y z985#{f*~9#kVuF!&?LjKA_6mTqb>T>Li<>>h-zU(i>$zf)GA7la3x7CTIQzR={$$~ z4zGu2#(Q6{H1x4KOTn+n@o^VIUHN%OAcrot2cTjqtieLdXk+ixx3ZI? zMgt9f7{lg9g%ymq#P2zx2Eq0KR7{06ciZy3>f9T%?MT0)Xm5vmg@!(iVRNIx3WmGe z#*#z{g6#pQ$gsu|mS;MEO?9Wu#yzdc0BX9%=Yuf`wnh~Ef=L+G0r)`#Lus)+02O_# zq2!$xN)iKRbF9sQc2(!wWFN+24qGcMe#zZW6~tm8usr}3HP*-)%g~{lzdne;n(hfx zd+E~xV%NTAJpg^=B@9iv5ZE4oiW(S!Au(6h`q-48ed&(=hKgejw6`=}bbT1JuW$N` zoik!7U~7g!mp12{6`E?VF3^Li$zpo|Dr$59J6rC%_d5))-`#B1l^%AWtv?F@=3p*c zGYq<5DBT^0c|q&JbXRN-Kt+uX00t!hF)u)?zy3XI0r+4mo6#>Y#4uS0fsHo8az~D*+fFE3&@J*)clWPfRRR#ca+F&Y^ zVFFs!CqNAO2Ibm+8wheOA^7VHRMh;h0JKpt!!$pDitVQyXzPA|eSwM^9YACMtbG<3 zvVQ}dafShYXL#L_jnRGhF z#IAgvwR4_WVrz zv~ig6Ls+o@1Z(O}^Mk*yBmf-$;`j~Mu52I6*xhGH=@4`PLHB|Z^Jud*0TokWjkzyH zs=MCJmm~&_0OQcmhcRsKa?ynl!UUj;tqG`@4r{Q%^0e;qLXnt+OnVU5a{qf^;D_8PyUm`AZS0Tshw4d+{i4-EW}uf+4&xJ==foPtyzetxkv z0TrWQjc5FyA`Dhx&7;_wfQq>U6>|wH<_;$BAFGCekN+uz0ssI207*qoM6N<$g0`s& AGXMYp literal 0 HcmV?d00001 diff --git a/icons/mob/spacedragon.dmi b/icons/mob/spacedragon.dmi index 4549ea9ea283a27903386ca375f559b72d99d8b5..419b6ef260525e6af3acbd6b5d063beb23e773cc 100644 GIT binary patch delta 6005 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 Re}Abnm>FAMs5C@H{~vAQ>(c-L delta 5375 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 diff --git a/icons/obj/carp_rift.dmi b/icons/obj/carp_rift.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9a07b3b16f866b919b3a997a6c44a6cb1d204e98 GIT binary patch literal 4319 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index cdf3a91ac2e..970b242343a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2333,6 +2333,7 @@ #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm" #include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" +#include "code\modules\mob\living\simple_animal\hostile\space_dragon.dm" #include "code\modules\mob\living\simple_animal\hostile\statue.dm" #include "code\modules\mob\living\simple_animal\hostile\stickman.dm" #include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" From 57c82117eaaf005adc5f40ff90e9e6fade5f23fd Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Thu, 19 Mar 2020 14:01:56 -0700 Subject: [PATCH 086/115] Automatic changelog generation for PR #49344 [ci skip] --- html/changelogs/AutoChangeLog-pr-49344.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-49344.yml diff --git a/html/changelogs/AutoChangeLog-pr-49344.yml b/html/changelogs/AutoChangeLog-pr-49344.yml new file mode 100644 index 00000000000..5773b09bb0c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-49344.yml @@ -0,0 +1,5 @@ +author: "Indie-ana Jones" +delete-after: True +changes: + - tweak: "Reports coming in indicate that the Space Dragon entity harassing stations has changed tactics, and is now attempting to flood stations with space carp." + - tweak: "Space Dragon preference is no longer shared with xenos, and is instead an independent option." From ad30ba217c851e6759d956652ee263a0b30e689d Mon Sep 17 00:00:00 2001 From: Fikou Date: Thu, 19 Mar 2020 22:16:44 +0100 Subject: [PATCH 087/115] done --- code/game/mecha/working/clarke.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index ad45f120915..fea822fbe02 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -62,9 +62,9 @@ var/obj/mecha/working/clarke/hostmech /obj/item/mecha_parts/mecha_equipment/orebox_manager/attach(obj/mecha/M) + . = ..() if(istype(M, /obj/mecha/working/clarke)) hostmech = M - . = ..() /obj/item/mecha_parts/mecha_equipment/orebox_manager/detach() hostmech = null //just in case From 604a331213c1aa4979aac5bc97f1d3904c19ac0d Mon Sep 17 00:00:00 2001 From: Fikou Date: Thu, 19 Mar 2020 22:17:42 +0100 Subject: [PATCH 088/115] Apply suggestions from code review thanks rohesie Co-Authored-By: Rohesie --- code/game/mecha/mecha.dm | 2 +- code/game/mecha/working/clarke.dm | 10 +++++----- code/game/mecha/working/ripley.dm | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 1f66583d5ae..8141cbb576d 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -3,7 +3,7 @@ desc = "Exosuit" icon = 'icons/mecha/mecha.dmi' density = TRUE //Dense. To raise the heat. - opacity = 1 //opaque. Menacing. + opacity = TRUE //opaque. Menacing. move_force = MOVE_FORCE_VERY_STRONG move_resist = MOVE_FORCE_EXTREMELY_STRONG resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/game/mecha/working/clarke.dm b/code/game/mecha/working/clarke.dm index fea822fbe02..c76668342f5 100644 --- a/code/game/mecha/working/clarke.dm +++ b/code/game/mecha/working/clarke.dm @@ -21,7 +21,7 @@ /obj/mecha/working/clarke/Initialize() . = ..() box = new /obj/structure/ore_box(src) - var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/orebox_manager(src) + var/obj/item/mecha_parts/mecha_equipment/orebox_manager/ME = new(src) ME.attach(src) /obj/mecha/working/clarke/Destroy() @@ -39,7 +39,7 @@ var/mob/living/L = occupant var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_ADVANCED] hud.remove_hud_from(L) - ..() + return ..() /obj/mecha/working/clarke/mmi_moved_inside(obj/item/mmi/M, mob/user) . = ..() @@ -68,13 +68,13 @@ /obj/item/mecha_parts/mecha_equipment/orebox_manager/detach() hostmech = null //just in case - . = ..() + return ..() /obj/item/mecha_parts/mecha_equipment/orebox_manager/Topic(href,href_list) - ..() + . = ..() if(!hostmech || !hostmech.box) return hostmech.box.dump_box_contents() /obj/item/mecha_parts/mecha_equipment/orebox_manager/get_equip_info() - return "[..()] [hostmech?.box?"Unload Cargo":"Error"]" + return "[..()] [hostmech?.box ? "Unload Cargo" : "Error"]" diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index bede1e3bf7a..f23fb7d0a94 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -196,7 +196,8 @@ if(lavaland_equipment_pressure_check(T)) step_in = fast_pressure_step_in for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) - drill.equip_cooldown = initial(drill.equip_cooldown)/2 + drill.equip_cooldown = initial(drill.equip_cooldown) * 0.5 + else step_in = slow_pressure_step_in for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) From f2f822b467934b0efbf7a7d631a7ca643f5b0ac3 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Thu, 19 Mar 2020 14:29:53 -0700 Subject: [PATCH 089/115] Automatic changelog generation for PR #49563 [ci skip] --- html/changelogs/AutoChangeLog-pr-49563.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-49563.yml diff --git a/html/changelogs/AutoChangeLog-pr-49563.yml b/html/changelogs/AutoChangeLog-pr-49563.yml new file mode 100644 index 00000000000..9797ede0ea0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-49563.yml @@ -0,0 +1,7 @@ +author: "Fikou (thanks to Shadowmech88 for idea and RealestEstate/ValkyrieSkies for sprites)" +delete-after: True +changes: + - rscadd: "Clarke Mech!" + - bugfix: "You can now salvage Phazon parts" + - rscdel: "Firefighter Mech, rest in peace" + - balance: "Ripley MK-II now has similar armor values to firefighter, but without the fireproof stuff" From 0ab5c141fb260466163ea2bb218719c65ad4798b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 20 Mar 2020 00:01:39 +0000 Subject: [PATCH 090/115] Automatic changelog compile [ci skip] --- html/changelog.html | 30 ++++++++++++++++++++++ html/changelogs/.all_changelog.yml | 21 +++++++++++++++ html/changelogs/AutoChangeLog-pr-49344.yml | 5 ---- html/changelogs/AutoChangeLog-pr-49563.yml | 7 ----- html/changelogs/AutoChangeLog-pr-49808.yml | 4 --- html/changelogs/AutoChangeLog-pr-50038.yml | 4 --- html/changelogs/AutoChangeLog-pr-50049.yml | 4 --- html/changelogs/AutoChangeLog-pr-50087.yml | 4 --- 8 files changed, 51 insertions(+), 28 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-49344.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-49563.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-49808.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-50038.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-50049.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-50087.yml diff --git a/html/changelog.html b/html/changelog.html index e0d0298c949..219e7350f5a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -51,6 +51,36 @@ -->
    +

    20 March 2020

    +

    ATHATH updated:

    +
      +
    • Cyborgs (and other silicons) can now unbuckle people from chairs, beds, and other objects.
    • +
    +

    Fikou updated:

    +
      +
    • removed a space in ert prompt
    • +
    +

    Fikou (thanks to Shadowmech88 for idea and RealestEstate/ValkyrieSkies for sprites) updated:

    +
      +
    • Clarke Mech!
    • +
    • You can now salvage Phazon parts
    • +
    • Firefighter Mech, rest in peace
    • +
    • Ripley MK-II now has similar armor values to firefighter, but without the fireproof stuff
    • +
    +

    Indie-ana Jones updated:

    +
      +
    • Reports coming in indicate that the Space Dragon entity harassing stations has changed tactics, and is now attempting to flood stations with space carp.
    • +
    • Space Dragon preference is no longer shared with xenos, and is instead an independent option.
    • +
    +

    Time-Green updated:

    +
      +
    • fixes plumbing stuff
    • +
    +

    nemvar updated:

    +
      +
    • Fixed fucky wucky that gave all heads all access.
    • +
    +

    19 March 2020

    Arkatos updated: