diff --git a/_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm b/_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm
index 19e721a1ec9..e1ec3664589 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm
@@ -126,7 +126,7 @@
/turf/simulated/floor/plating/damaged/airless,
/area/ruin/unpowered)
"aZ" = (
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/turf/simulated/floor/plasteel/airless,
/area/ruin/unpowered)
"Di" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
index 1de1b1d5637..14f8f4a0d0c 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
@@ -4554,7 +4554,7 @@
},
/area/ruin/space/deepstorage)
"BU" = (
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "white"
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
index d01d2418716..5604f99d938 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
@@ -4728,7 +4728,7 @@
},
/area/ruin/unpowered/syndicate_space_base/genetics)
"Br" = (
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
diff --git a/_maps/map_files/shuttles/admin_hospital.dmm b/_maps/map_files/shuttles/admin_hospital.dmm
index 1107280fbd1..cb4db56bbdf 100644
--- a/_maps/map_files/shuttles/admin_hospital.dmm
+++ b/_maps/map_files/shuttles/admin_hospital.dmm
@@ -264,7 +264,7 @@
/turf/simulated/floor/plating,
/area/shuttle/administration)
"bp" = (
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
"br" = (
diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm
index e0306dbfd9d..c876e336b30 100644
--- a/_maps/map_files/stations/boxstation.dmm
+++ b/_maps/map_files/stations/boxstation.dmm
@@ -32777,7 +32777,7 @@
},
/area/station/science/genetics)
"cpL" = (
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitegreen"
diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm
index bbadd4fd2eb..d1afc5e6066 100644
--- a/_maps/map_files/stations/cerestation.dmm
+++ b/_maps/map_files/stations/cerestation.dmm
@@ -79121,7 +79121,7 @@
/turf/simulated/floor/wood,
/area/station/hallway/secondary/entry/south)
"ptq" = (
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm
index 8d588c69ddf..bae15843496 100644
--- a/_maps/map_files/stations/deltastation.dmm
+++ b/_maps/map_files/stations/deltastation.dmm
@@ -95690,7 +95690,7 @@
/turf/simulated/floor/plasteel/white,
/area/station/medical/virology)
"wWX" = (
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/obj/effect/turf_decal/delivery/green,
/turf/simulated/floor/plasteel{
dir = 8;
diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm
index 8d31fdbc78f..90265e2f758 100644
--- a/_maps/map_files/stations/emeraldstation.dmm
+++ b/_maps/map_files/stations/emeraldstation.dmm
@@ -8647,7 +8647,7 @@
/area/station/maintenance/dorms/port)
"bJK" = (
/obj/machinery/newscaster/directional/east,
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whitegreen"
diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm
index 1842a9450ab..e49eca9f628 100644
--- a/_maps/map_files/stations/metastation.dmm
+++ b/_maps/map_files/stations/metastation.dmm
@@ -21015,7 +21015,7 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/south)
"ccp" = (
-/obj/machinery/computer/pandemic,
+/obj/machinery/pandemic,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whitegreen"
diff --git a/code/__DEFINES/dcs/disease_signals.dm b/code/__DEFINES/dcs/disease_signals.dm
new file mode 100644
index 00000000000..44946d9f78c
--- /dev/null
+++ b/code/__DEFINES/dcs/disease_signals.dm
@@ -0,0 +1,4 @@
+/// Sent when the conditions to disinfect an atom are met
+#define COMSIG_ATOM_DISINFECTED "atom_disinfected"
+/// Sent when something is eaten or drunk by a mob
+#define COMSIG_MOB_REAGENT_EXCHANGE "mob_reagent_exchange"
diff --git a/code/__DEFINES/disease_defines.dm b/code/__DEFINES/disease_defines.dm
new file mode 100644
index 00000000000..11232d52e90
--- /dev/null
+++ b/code/__DEFINES/disease_defines.dm
@@ -0,0 +1,40 @@
+/// Temperature at which objects contaminated by viruses are disinfected
+#define VIRUS_DISINFECTION_TEMP (T0C + 60)
+
+/// The maximum amount of symptoms a virus can have
+#define VIRUS_SYMPTOM_LIMIT 6
+
+/// The maximum amount of time a symptom will be delayed for after the treating reagents have left the body
+#define VIRUS_MAX_TREATMENT_TIMER 300
+#define VIRUS_TREATMENT_TIMER_MOD 2
+
+/// Evoltion chance each cycle in percents.
+/// The base chance in % that a virus will mutate as it spreads. Further modified by stage speed and the viral evolutionary acceleration trait
+#define VIRUS_EVOLUTION_CHANCE 2
+
+//Visibility Flags
+#define VIRUS_HIDDEN_SCANNER (1<<0)
+#define VIRUS_HIDDEN_PANDEMIC (1<<1)
+
+//Disease Flags
+#define VIRUS_CURABLE (1<<0)
+#define VIRUS_CAN_CARRY (1<<1)
+#define VIRUS_CAN_RESIST (1<<2)
+
+//Spread Flags
+#define SPREAD_SPECIAL (1<<0)
+#define SPREAD_NON_CONTAGIOUS (1<<1)
+#define SPREAD_BLOOD (1<<2)
+#define SPREAD_CONTACT_FEET (1<<3)
+#define SPREAD_CONTACT_HANDS (1<<4)
+#define SPREAD_CONTACT_GENERAL (1<<5)
+#define SPREAD_AIRBORNE (1<<6)
+
+
+//Severity Defines
+#define VIRUS_NONTHREAT "No threat"
+#define VIRUS_MINOR "Minor"
+#define VIRUS_MEDIUM "Medium"
+#define VIRUS_HARMFUL "Harmful"
+#define VIRUS_DANGEROUS "Dangerous!"
+#define VIRUS_BIOHAZARD "BIOHAZARD THREAT!"
diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm
index b3c050d8081..414926c99ca 100644
--- a/code/__HELPERS/lists.dm
+++ b/code/__HELPERS/lists.dm
@@ -115,6 +115,27 @@
return "[output][and_text][input[index]]"
+// Returns a map in plain english as a string
+/proc/english_map(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" )
+ var/total = length(input)
+ if(!total)
+ return "[nothing_text]"
+ else if(total == 1)
+ return "[input[1]]"
+ else if(total == 2)
+ return "[input[1]][and_text][input[2]]"
+ else
+ var/output = ""
+ var/index = 1
+ while(index < total)
+ if(index == total - 1)
+ comma_text = final_comma_text
+
+ output += "[input[index]] : [input[input[index]]][comma_text]"
+ index++
+
+ return "[output][and_text][input[index]] : [input[input[index]]]"
+
//Returns list element or null. Should prevent "index out of bounds" error.
/proc/listgetindex(list/list, index)
if(istype(list) && length(list))
diff --git a/code/__HELPERS/radiation_helpers.dm b/code/__HELPERS/radiation_helpers.dm
index 983d95da2a7..b5ee6832832 100644
--- a/code/__HELPERS/radiation_helpers.dm
+++ b/code/__HELPERS/radiation_helpers.dm
@@ -31,8 +31,9 @@
insulation = thing.rad_insulation_beta
if(GAMMA_RAD)
insulation = thing.rad_insulation_gamma
- /// 1 means no rad insulation, which means perfectly permeable, so no interaction with it directly, but the contents might be relevant.
- if(insulation < 1)
+ // 1 means no rad insulation, which means perfectly permeable, so no interaction with it directly, but the contents might be relevant.
+ // HAS_TRAIT is used manually here since the macros for HAS_TRAIT as well as the traits aren't being recognized here
+ if(insulation < 1 || (thing.status_traits ? (thing.status_traits["absorb_rads"] ? TRUE : FALSE) : FALSE))
if(istype(thing, /obj/structure/window))
window_priority += thing
else if(istype(thing, /obj/machinery/power/rad_collector))
diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm
index add506a6415..b667dce3037 100644
--- a/code/__HELPERS/trait_helpers.dm
+++ b/code/__HELPERS/trait_helpers.dm
@@ -315,6 +315,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// A surgical tool; If a surgical tool has this flag it can be used as an alternative to an open hand in surgery
#define TRAIT_SURGICAL_OPEN_HAND "surgical_hand_alternative"
+/// A wearable item that protects the covered areas from viral infection
+#define TRAIT_ANTI_VIRAL "anti_viral"
+
+/// Given to items that have something that absorbs radiation in them that is neither the item or in it's contents
+#define TRAIT_ABSORB_RADS "absorb_rads"
+
/// Prevent mobs on the turf from being affected by anything below that turf, such as a pulse demon going under it. Added by a /obj/structure with creates_cover set to TRUE
#define TRAIT_TURF_COVERED "turf_covered"
diff --git a/code/_globalvars/lists/reagents_lists.dm b/code/_globalvars/lists/reagents_lists.dm
index 088d61d6329..978acdbcd68 100644
--- a/code/_globalvars/lists/reagents_lists.dm
+++ b/code/_globalvars/lists/reagents_lists.dm
@@ -13,7 +13,7 @@ GLOBAL_LIST_INIT(drinks, list("beer2","hot_coco","orangejuice","tomatojuice","li
"berryjuice","poisonberryjuice","watermelonjuice","lemonjuice","banana", "bungojuice",
"nothing","potato","milk","soymilk","cream","coffee","tea","icecoffee",
"icetea","cola","nuka_cola","spacemountainwind","thirteenloko","dr_gibb",
- "space_up","lemon_lime","beer","whiskey","gin","rum","vodka","holywater",
+ "space_up","lemon_lime","triple_citrus","beer","whiskey","gin","rum","vodka","holywater",
"tequila","vermouth","wine","tonic","kahlua","cognac","ale","sodawater",
"ice","bilk","atomicbomb","threemileisland","goldschlager","patron","gintonic",
"cubalibre","whiskeycola","martini","vodkamartini","whiterussian","screwdrivercocktail",
@@ -50,5 +50,5 @@ GLOBAL_LIST_INIT(blocked_chems, list("polonium", "initropidril", "concentrated_i
"teslium_paste", "omnizine_no_addiction", "zombiecure1",
"zombiecure2", "zombiecure3", "zombiecure4",
"admincleaner_all", "admincleaner_item", "admincleaner_mob",
- "synthetic_omnizine_no_addiction", "surge_plus"
+ "synthetic_omnizine_no_addiction", "surge_plus", "viral_eraser"
))
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
index 4dd7f20bbe5..4fbe48bfaf5 100644
--- a/code/_globalvars/traits.dm
+++ b/code/_globalvars/traits.dm
@@ -146,7 +146,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_ITEM_ACTIVE" = TRAIT_ITEM_ACTIVE,
"TRAIT_NO_STRIP" = TRAIT_NO_STRIP,
"TRAIT_SKIP_EXAMINE" = TRAIT_SKIP_EXAMINE,
- "TRAIT_I_WANT_BRAINS_ORGAN" = TRAIT_I_WANT_BRAINS_ORGAN
+ "TRAIT_I_WANT_BRAINS_ORGAN" = TRAIT_I_WANT_BRAINS_ORGAN,
+ "TRAIT_ANTI_VIRAL" = TRAIT_ANTI_VIRAL,
+ "TRAIT_ABSORB_RADS" = TRAIT_ABSORB_RADS
),
/turf = list(
diff --git a/code/datums/components/viral_contamination.dm b/code/datums/components/viral_contamination.dm
new file mode 100644
index 00000000000..402ca20973c
--- /dev/null
+++ b/code/datums/components/viral_contamination.dm
@@ -0,0 +1,45 @@
+/datum/component/viral_contamination
+ dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
+ /// Asoc list of virus Ids to virus refs.
+ var/list/viruses = list()
+
+/datum/component/viral_contamination/Initialize(_viruses)
+ if(!isobj(parent))
+ return COMPONENT_INCOMPATIBLE
+ for(var/datum/disease/virus in _viruses)
+ // If we don't have a copy of this virus, put one it
+ if(virus.spread_flags >= SPREAD_BLOOD && !(virus.GetDiseaseID() in viruses))
+ viruses += list("[virus.GetDiseaseID()]" = virus.Copy())
+ RegisterSignal(parent, COMSIG_MOB_REAGENT_EXCHANGE, PROC_REF(infect_target))
+ RegisterSignal(parent, COMSIG_ATOM_DISINFECTED, PROC_REF(disinfect))
+
+/datum/component/viral_contamination/InheritComponent(datum/component/viral_contamination/C, i_am_original, _viruses)
+ if(!i_am_original)
+ return
+ var/list/virus_list = list()
+ if(C)
+ virus_list = C.viruses
+ // Add a copy of each virus to our list if we don't already have one
+ for(var/disease_id in virus_list)
+ if(!(disease_id in viruses))
+ var/datum/disease/virus = C.viruses["[disease_id]"]
+ viruses += list("[disease_id]" = virus.Copy())
+ else
+ virus_list = _viruses
+ // Add a copy of each virus to our list if we don't already have on
+ for(var/datum/disease/virus in virus_list)
+ if(virus.spread_flags >= SPREAD_BLOOD && !(virus.GetDiseaseID() in viruses))
+ viruses += list(list("[virus.GetDiseaseID()]" = virus.Copy()))
+
+/datum/component/viral_contamination/proc/infect_target(atom/source, mob/target)
+ SIGNAL_HANDLER // COMSIG_MOB_REAGENT_EXCHANGE
+ if(!istype(target))
+ return
+ for(var/disease_id in viruses)
+ var/datum/disease/virus = viruses[disease_id]
+ if(istype(virus))
+ target.ForceContractDisease(virus, FALSE)
+
+/datum/component/viral_contamination/proc/disinfect(atom/source)
+ SIGNAL_HANDLER // COMSIG_ATOM_DISINFECTED
+ qdel(src)
diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm
index a7aefe4a03e..0e7261df8fe 100644
--- a/code/datums/diseases/_MobProcs.dm
+++ b/code/datums/diseases/_MobProcs.dm
@@ -1,13 +1,14 @@
-
-/mob/proc/HasDisease(datum/disease/D)
- for(var/thing in viruses)
- var/datum/disease/DD = thing
- if(DD.IsSame(D))
- return TRUE
- return FALSE
+/*
+MARK: Contraction
-/mob/proc/CanContractDisease(datum/disease/D)
+
+
+
+MARK: Helpers
+*/
+
+/mob/proc/check_contraction_mob(datum/disease/D, spread_method = SPREAD_CONTACT_GENERAL)
if(stat == DEAD && !D.allow_dead)
return FALSE
@@ -17,145 +18,30 @@
if(HasDisease(D))
return FALSE
- if(istype(D, /datum/disease/advance) && count_by_type(viruses, /datum/disease/advance) > 0)
- return FALSE
+ if(istype(D, /datum/disease/advance))
+ var/datum/disease/advance/advanced = D
+ for(var/datum/disease/advance/exists in viruses)
+ if(exists.event == advanced.event)
+ return FALSE
if(!(type in D.viable_mobtypes))
return -1 //for stupid fucking monkies
return TRUE
+/mob/living/carbon/proc/check_contraction_carbon(datum/disease/D, spread_method = SPREAD_CONTACT_GENERAL)
+ // positive satiety makes it harder to contract the disease.
+ return (spread_method & SPREAD_BLOOD) || !((satiety > 0 && prob(satiety/10)) || (prob(15/D.permeability_mod)))
-/mob/proc/ContractDisease(datum/disease/D)
- if(!CanContractDisease(D))
- return 0
- AddDisease(D)
- return TRUE
+/mob/living/carbon/human/proc/check_contraction_human(datum/disease/D, spread_method = SPREAD_CONTACT_GENERAL)
+ if((HAS_TRAIT(src, TRAIT_VIRUSIMMUNE) && !D.bypasses_immunity))
+ return FALSE
-
-/mob/proc/AddDisease(datum/disease/D, respect_carrier = FALSE)
- var/datum/disease/DD = new D.type(1, D, 0)
- viruses += DD
- DD.affected_mob = src
- GLOB.active_diseases += DD //Add it to the active diseases list, now that it's actually in a mob and being processed.
-
- //Copy properties over. This is so edited diseases persist.
- var/list/skipped = list("affected_mob","holder","carrier","stage","type","parent_type","vars","transformed")
- if(respect_carrier)
- skipped -= "carrier"
- for(var/V in DD.vars)
- if(V in skipped)
- continue
- if(istype(DD.vars[V],/list))
- var/list/L = D.vars[V]
- DD.vars[V] = L.Copy()
- else
- DD.vars[V] = D.vars[V]
-
- create_log(MISC_LOG, "has contacted the virus \"[DD]\"")
- DD.affected_mob.med_hud_set_status()
-
-
-/mob/living/carbon/ContractDisease(datum/disease/D)
- if(!CanContractDisease(D))
- return 0
+ // We transfer to the blood directly
+ if(spread_method == SPREAD_BLOOD)
+ return TRUE
if(src.mind && HAS_TRAIT(src.mind, TRAIT_GERMOPHOBE) && prob(85))
- return 0
-
- var/obj/item/clothing/Cl = null
- var/passed = 1
-
- var/head_ch = 100
- var/body_ch = 100
- var/hands_ch = 25
- var/feet_ch = 25
-
- if(D.spread_flags & CONTACT_HANDS)
- head_ch = 0
- body_ch = 0
- hands_ch = 100
- feet_ch = 0
- if(D.spread_flags & CONTACT_FEET)
- head_ch = 0
- body_ch = 0
- hands_ch = 0
- feet_ch = 100
-
- if(prob(15/D.permeability_mod))
- return
-
- if(satiety > 0 && prob(satiety/10)) // positive satiety makes it harder to contract the disease.
- return
-
- var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4)
-
- if(ishuman(src))
- var/mob/living/carbon/human/H = src
-
- switch(target_zone)
- if(1)
- if(isobj(H.head) && !istype(H.head, /obj/item/paper))
- Cl = H.head
- passed = prob((Cl.permeability_coefficient*100) - 1)
- if(passed && isobj(H.wear_mask))
- Cl = H.wear_mask
- passed = prob((Cl.permeability_coefficient*100) - 1)
- if(2)
- if(isobj(H.wear_suit))
- Cl = H.wear_suit
- passed = prob((Cl.permeability_coefficient*100) - 1)
- if(passed && isobj(H.w_uniform))
- Cl = H.w_uniform
- passed = prob((Cl.permeability_coefficient*100) - 1)
- if(3)
- if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS)
- Cl = H.wear_suit
- passed = prob((Cl.permeability_coefficient*100) - 1)
-
- if(passed && isobj(H.gloves))
- Cl = H.gloves
- passed = prob((Cl.permeability_coefficient*100) - 1)
- if(4)
- if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&FEET)
- Cl = H.wear_suit
- passed = prob((Cl.permeability_coefficient*100) - 1)
-
- if(passed && isobj(H.shoes))
- Cl = H.shoes
- passed = prob((Cl.permeability_coefficient*100) - 1)
-
-
- if(!passed && (D.spread_flags & AIRBORNE) && !internal)
- passed = (prob((50*D.permeability_mod) - 1))
-
- if(passed)
- AddDisease(D)
- return passed
-
-
-/**
- * Forces the mob to contract a virus. If the mob can have viruses. Ignores clothing and other protection
- * Returns TRUE if it succeeds. False if it doesn't
- *
- * Arguments:
- * * D - the disease the mob will try to contract
- * * respect_carrier - if set to TRUE will not ignore the disease carrier flag
- * * notify_ghosts - will notify ghosts of infection if set to TRUE
- */
-//Same as ContractDisease, except never overidden clothes checks
-/mob/proc/ForceContractDisease(datum/disease/D, respect_carrier, notify_ghosts = FALSE)
- if(!CanContractDisease(D))
- return FALSE
- if(notify_ghosts)
- for(var/mob/ghost as anything in GLOB.dead_mob_list) //Announce outbreak to dchat
- to_chat(ghost, "Disease outbreak: [src] ([ghost_follow_link(src, ghost)]) [D.carrier ? "is now a carrier of" : "has contracted"] [D]!")
- AddDisease(D, respect_carrier)
- return TRUE
-
-
-/mob/living/carbon/human/CanContractDisease(datum/disease/D)
- if(HAS_TRAIT(src, TRAIT_VIRUSIMMUNE) && !D.bypasses_immunity)
return FALSE
for(var/organ in D.required_organs)
@@ -166,13 +52,157 @@
if(locate(organ) in bodyparts)
continue
return FALSE
- return ..()
-/mob/living/carbon/human/monkey/CanContractDisease(datum/disease/D)
+ var/passed = FALSE
+
+ if(spread_method & (SPREAD_CONTACT_FEET | SPREAD_CONTACT_HANDS | SPREAD_CONTACT_GENERAL))
+ passed = TRUE
+ var/obj/item/clothing/covering_garment = null
+
+ var/head_ch = 100
+ var/body_ch = 100
+ var/hands_ch = 25
+ var/feet_ch = 25
+
+ if(D.spread_flags & SPREAD_CONTACT_HANDS)
+ head_ch = 0
+ body_ch = 0
+ hands_ch = 100
+ feet_ch = 0
+ if(D.spread_flags & SPREAD_CONTACT_FEET)
+ head_ch = 0
+ body_ch = 0
+ hands_ch = 0
+ feet_ch = 100
+
+ var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4)
+
+ switch(target_zone)
+ if(1)
+ if(isobj(head) && !istype(head, /obj/item/paper))
+ covering_garment = head
+ passed = prob((covering_garment.permeability_coefficient*100) - 1)
+ if(passed && isobj(wear_mask))
+ covering_garment = wear_mask
+ passed = prob((covering_garment.permeability_coefficient*100) - 1)
+ if(2)
+ if(isobj(wear_suit))
+ covering_garment = wear_suit
+ passed = prob((covering_garment.permeability_coefficient*100) - 1)
+ if(passed && isobj(w_uniform))
+ covering_garment = w_uniform
+ passed = prob((covering_garment.permeability_coefficient*100) - 1)
+ if(3)
+ if(isobj(wear_suit) && wear_suit.body_parts_covered&HANDS)
+ covering_garment = wear_suit
+ passed = prob((covering_garment.permeability_coefficient*100) - 1)
+
+ if(passed && isobj(gloves))
+ covering_garment = gloves
+ passed = prob((covering_garment.permeability_coefficient*100) - 1)
+ if(4)
+ if(isobj(wear_suit) && wear_suit.body_parts_covered&FEET)
+ covering_garment = wear_suit
+ passed = prob((covering_garment.permeability_coefficient*100) - 1)
+
+ if(passed && isobj(shoes))
+ covering_garment = shoes
+ passed = prob((covering_garment.permeability_coefficient*100) - 1)
+
+ // If spreading by air we need to get through the mask and helmet.
+ if(!passed && (spread_method & SPREAD_AIRBORNE))
+ // Check for eye protection
+ var/eye_check = !((wear_mask?.flags_cover & MASKCOVERSEYES) || (head?.flags_cover & HEADCOVERSEYES) || (glasses?.flags_cover & GLASSESCOVERSEYES))
+ // Masks and hoods protect our mouth from sneezes, but not truely airborn viruses
+ var/mouth_check = ((prob((wear_mask?.permeability_coefficient*100) - 1) || !(wear_mask?.flags_cover & MASKCOVERSMOUTH)) && (prob((head?.permeability_coefficient*100) - 1) || !(head?.flags_cover & HEADCOVERSMOUTH)))
+ // A further check on the mask against airborne diseases
+ var/breath_check = !internal && (D.spread_flags & SPREAD_AIRBORNE) && prob(100 * D.permeability_mod) && !((wear_mask?.flags_cover & MASKCOVERSMOUTH && HAS_TRAIT(wear_mask, TRAIT_ANTI_VIRAL)) || (head?.flags_cover & MASKCOVERSMOUTH && HAS_TRAIT(head, TRAIT_ANTI_VIRAL)))
+ // If anything gets penetrated we contract the disease.
+ passed = eye_check || mouth_check || breath_check
+
+ return passed
+
+// MARK: Mob
+
+/// Grinds a mob in the turbine
+/mob/compressor_grind()
+ gib()
+
+/// Returns whether or not the mob has the disease
+/mob/proc/HasDisease(datum/disease/D)
+ for(var/datum/disease/DD in viruses)
+ if(DD.IsSame(D))
+ return TRUE
+ return FALSE
+
+/// Checks if a mob can contract the disease
+/mob/proc/can_contract_disease(datum/disease/D, spread_method = SPREAD_CONTACT_GENERAL)
+ return check_contraction_mob(D, spread_method)
+
+/mob/proc/can_spread_disease(D, spread_method = SPREAD_CONTACT_GENERAL)
+ return TRUE
+
+// Attempt contracting a diseas
+/mob/proc/ContractDisease(datum/disease/D, spread_method = SPREAD_CONTACT_GENERAL)
+ if(!can_contract_disease(D, spread_method))
+ return FALSE
+ AddDisease(D)
+ return TRUE
+
+/**
+ * Forces the mob to contract a virus. If the mob can have viruses. Ignores clothing and other protection
+ * Returns TRUE if it succeeds. False if it doesn't
+ *
+ * Arguments:
+ * * D - the disease the mob will try to contract
+ * * respect_carrier - if set to TRUE will not ignore the disease carrier flag
+ * * notify_ghosts - will notify ghosts of infection if set to TRUE
+ */
+//Same as ContractDisease, except it ignores the clothes check
+/mob/proc/ForceContractDisease(datum/disease/D, respect_carrier, notify_ghosts = FALSE)
+ if(!can_contract_disease(D, SPREAD_BLOOD))
+ return FALSE
+ if(notify_ghosts)
+ for(var/mob/ghost as anything in GLOB.dead_mob_list) //Announce outbreak to dchat
+ to_chat(ghost, "Disease outbreak: [src] ([ghost_follow_link(src, ghost)]) [D.carrier ? "is now a carrier of" : "has contracted"] [D]!")
+ message_admins("[key_name(src)] [D.carrier ? "is now a carrier of" : "has contracted"] [D]!")
+ log_admin("[key_name(src)] [D.carrier ? "is now a carrier of" : "has contracted"] [D]!")
+ AddDisease(D, respect_carrier)
+ return TRUE
+
+/// Directly adds a disease to a mob.
+/mob/proc/AddDisease(datum/disease/D, respect_carrier = FALSE, start_stage = 1)
+ if(client)
+ D.record_infection()
+ var/datum/disease/DD = D.Copy(FALSE)
+ DD.stage = start_stage
+ viruses += DD
+ DD.affected_mob = src
+ GLOB.active_diseases += DD //Add it to the active diseases list, now that it's actually in a mob and being processed.
+
+ if(respect_carrier)
+ DD.carrier = D.carrier
+
+ create_log(MISC_LOG, "has contracted the virus \"[DD]\"")
+ DD.affected_mob.med_hud_set_status()
+ DD.after_infect()
+
+// MARK: Carbon
+/mob/living/carbon/can_spread_disease(D, spread_method = SPREAD_CONTACT_GENERAL)
+ return check_contraction_carbon(D, spread_method)
+
+/mob/living/carbon/can_contract_disease(datum/disease/D, spread_method = SPREAD_CONTACT_GENERAL)
+ return ..() && check_contraction_carbon(D)
+
+//MARK: Human
+/mob/living/carbon/human/can_spread_disease(D, spread_method = SPREAD_CONTACT_GENERAL)
+ return check_contraction_human(D, spread_method)
+
+/mob/living/carbon/human/can_contract_disease(datum/disease/D, spread_method = SPREAD_CONTACT_GENERAL)
+ return check_contraction_human(D, spread_method) && ..()
+
+/mob/living/carbon/human/monkey/can_contract_disease(datum/disease/D, spread_method = SPREAD_CONTACT_GENERAL)
. = ..()
if(. == -1)
if(D.viable_mobtypes.Find(/mob/living/carbon/human))
return 1 //this is stupid as fuck but because monkeys are only half the time actually subtypes of humans they need this
-
-/mob/compressor_grind()
- gib()
diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm
index a12fd49f217..51d3b4c226a 100644
--- a/code/datums/diseases/_disease.dm
+++ b/code/datums/diseases/_disease.dm
@@ -1,42 +1,12 @@
-#define VIRUS_SYMPTOM_LIMIT 6
-
-//Visibility Flags
-#define HIDDEN_SCANNER (1<<0)
-#define HIDDEN_PANDEMIC (1<<1)
-
-//Disease Flags
-#define CURABLE (1<<0)
-#define CAN_CARRY (1<<1)
-#define CAN_RESIST (1<<2)
-
-//Spread Flags
-#define SPECIAL (1<<0)
-#define NON_CONTAGIOUS (1<<1)
-#define BLOOD (1<<2)
-#define CONTACT_FEET (1<<3)
-#define CONTACT_HANDS (1<<4)
-#define CONTACT_GENERAL (1<<5)
-#define AIRBORNE (1<<6)
-
-
-//Severity Defines
-#define NONTHREAT "No threat"
-#define MINOR "Minor"
-#define MEDIUM "Medium"
-#define HARMFUL "Harmful"
-#define DANGEROUS "Dangerous!"
-#define BIOHAZARD "BIOHAZARD THREAT!"
-
-
GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
/datum/disease
//Flags
var/visibility_flags = 0
- var/disease_flags = CURABLE|CAN_CARRY|CAN_RESIST
- var/spread_flags = AIRBORNE
+ var/disease_flags = VIRUS_CURABLE|VIRUS_CAN_CARRY|VIRUS_CAN_RESIST
+ var/spread_flags = SPREAD_AIRBORNE
//Fluff
/// Used for identification of viruses in the Medical Records Virus Database
@@ -60,19 +30,21 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
//Other
var/list/viable_mobtypes = list() //typepaths of viable mobs
var/mob/living/carbon/affected_mob
- var/list/cures = list() //list of cures if the disease has the CURABLE flag, these are reagent ids
+ var/list/cures = list() //list of cures if the disease has the VIRUS_CURABLE flag, these are reagent ids
var/infectivity = 65
var/cure_chance = 8
var/carrier = FALSE //If our host is only a carrier
var/bypasses_immunity = FALSE //Does it skip species virus immunity check? Some things may diseases and not viruses
var/virus_heal_resistant = FALSE // Some things aren't technically viruses/traditional diseases and should be immune to edge case cure methods, like healing viruses.
var/permeability_mod = 1
- var/severity = NONTHREAT
+ var/severity = VIRUS_NONTHREAT
var/list/required_organs = list()
var/needs_all_cures = TRUE
var/list/strain_data = list() //dna_spread special bullshit
/// Allow the virus to infect and process while the affected_mob is dead
var/allow_dead = FALSE
+ /// How many cycles we should incubate
+ var/incubation = 0
/datum/disease/Destroy()
affected_mob = null
@@ -80,10 +52,19 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
return ..()
/datum/disease/proc/stage_act()
+ // Still incubating, do nothing
+ if(incubation)
+ if(is_species(affected_mob, /datum/species/monkey))
+ incubation = 0
+ else
+ incubation--
+ return FALSE
+ // We have no host
if(!affected_mob)
return FALSE
var/cure = has_cure()
+ // This is patient 0 and we aren't curing them. Do nothing
if(carrier && !cure)
return FALSE
@@ -104,14 +85,14 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
if(has_cure && prob(cure_chance))
stage = max(stage - 1, 1)
- if(disease_flags & CURABLE)
+ if(disease_flags & VIRUS_CURABLE)
if(has_cure && prob(cure_chance))
cure()
return FALSE
return TRUE
/datum/disease/proc/has_cure()
- if(!(disease_flags & CURABLE))
+ if(!(disease_flags & VIRUS_CURABLE))
return 0
var/cures_found = 0
@@ -132,7 +113,7 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
if(!affected_mob)
return
- if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread)
+ if((spread_flags & SPREAD_SPECIAL || spread_flags & SPREAD_NON_CONTAGIOUS || spread_flags & SPREAD_BLOOD) && !force_spread)
return
if(affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)))
@@ -143,17 +124,29 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
if(force_spread)
spread_range = force_spread
- if(spread_flags & AIRBORNE)
+ if(spread_flags & SPREAD_AIRBORNE)
spread_range++
+ var/spread_method = NONE
+ // If we do an airborne spread we will do that as well as other spreads
+ if((spread_flags & SPREAD_AIRBORNE) || spread_range > 1)
+ spread_method |= SPREAD_AIRBORNE
+
var/turf/target = affected_mob.loc
if(istype(target))
for(var/mob/living/carbon/C in oview(spread_range, affected_mob))
+ // Assume we are touching
+ spread_method |= (SPREAD_CONTACT_GENERAL | SPREAD_CONTACT_FEET | SPREAD_CONTACT_HANDS)
var/turf/current = get_turf(C)
if(current)
while(TRUE)
+ // Found a path from target to source that isn't atmos blocked. Try to give them the disease
if(current == target)
- C.ContractDisease(src)
+ // If we are further than 1 tile we aren't touching
+ if(get_dist(target, C) > 1)
+ spread_method &= ~(SPREAD_CONTACT_GENERAL | SPREAD_CONTACT_FEET | SPREAD_CONTACT_HANDS)
+ // We also want to test our own mob's permeability so people in hardsuits with internals won't just infect others with sneezes or touch
+ affected_mob.can_spread_disease(src, spread_method) && C.ContractDisease(src, spread_method)
break
var/direction = get_dir(current, target)
var/turf/next = get_step(current, direction)
@@ -161,16 +154,23 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
break
current = next
+/datum/disease/proc/after_infect()
+ return
/datum/disease/proc/cure()
if(affected_mob)
- if(disease_flags & CAN_RESIST)
+ if(disease_flags & VIRUS_CAN_RESIST)
if(!(type in affected_mob.resistances))
affected_mob.resistances += type
remove_virus()
affected_mob.create_log(MISC_LOG, "has been cured from the virus \"[src]\"")
qdel(src)
+// Gives the received mob a resistance to this disease. Does not cure it if they are already infected
+/datum/disease/proc/make_resistant(mob/living/target)
+ if(target && disease_flags & VIRUS_CAN_RESIST && !(type in target.resistances))
+ target.resistances += type
+
/datum/disease/proc/IsSame(datum/disease/D)
if(ispath(D))
return istype(src, D)
@@ -183,12 +183,35 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
D.strain_data = strain_data.Copy()
return D
+/datum/disease/proc/get_required_cures()
+ return needs_all_cures ? length(cures) : 1
+
+/datum/disease/proc/is_stabilized()
+ return TRUE
+
+/datum/disease/proc/get_tracker()
+ return ""
+
+/datum/disease/proc/get_stage()
+ return stage
/datum/disease/proc/GetDiseaseID()
return type
+// Id for the pandemic
+/datum/disease/proc/get_ui_id()
+ return name
+
+// Another Id for the pandemic. We need multiple procs so we can override them in different ways
+/datum/disease/proc/get_strain_id()
+ return name
+
+// Another Id for the pandemic.
+/datum/disease/proc/get_full_strain_id()
+ return name
+
/datum/disease/proc/IsSpreadByTouch()
- if(spread_flags & CONTACT_FEET || spread_flags & CONTACT_HANDS || spread_flags & CONTACT_GENERAL)
+ if(spread_flags & SPREAD_CONTACT_FEET || spread_flags & SPREAD_CONTACT_HANDS || spread_flags & SPREAD_CONTACT_GENERAL)
return 1
return 0
@@ -196,3 +219,24 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease))
/datum/disease/proc/remove_virus()
affected_mob.viruses -= src //remove the datum from the list
affected_mob.med_hud_set_status()
+
+/// Not interested in normal diseases right now
+/datum/disease/proc/record_infection()
+ return
+
+/// Returns whether or not the disease is known
+/datum/disease/proc/is_known(z)
+ return TRUE
+
+/// Returns an Asoc list of disease's symptoms and their properties in a format usable by the PANDEMIC
+/datum/disease/proc/get_pandemic_symptoms()
+ return list()
+
+/// Returns the Disease's base stats
+/datum/disease/proc/get_pandemic_base_stats()
+ return list(
+ "resistance" = 0,
+ "stealth" = 0,
+ "stageSpeed" = 0,
+ "transmissibility" = 0,
+ )
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index ccfabbd9a88..b0c2e6ef19b 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -1,3 +1,4 @@
+
/*
Advance Disease is a system for Virologist to Engineer their own disease with symptoms that have effects and properties
@@ -6,16 +7,30 @@
If you need help with creating new symptoms or expanding the advance disease, ask for Giacom on #coderbus.
*/
+GLOBAL_VAR_INIT(next_unique_strain, 1)
+
GLOBAL_LIST_EMPTY(archive_diseases)
// The order goes from easy to cure to hard to cure.
-GLOBAL_LIST_INIT(advance_cures, list(
+GLOBAL_LIST_INIT(standard_cures, list(
"sodiumchloride", "sugar", "orangejuice",
"spaceacillin", "salglu_solution", "ethanol",
"teporone", "diphenhydramine", "lipolicide",
"silver", "gold"
))
+GLOBAL_LIST_INIT(advanced_cures, list(
+ "atropine", "mitocholide", "acetic_acid",
+ "cryoxadone", "hydrocodone", "haloperidol",
+ "degreaser", "perfluorodecalin"
+))
+
+GLOBAL_LIST_INIT(plant_cures,list(
+ "bicaridine", "kelotane", "omnizine",
+ "synaptizine", "weak_omnizine", "morphine",
+ "cbd", "thc", "nicotine" , "psilocybin"
+))
+
/*
PROPERTIES
@@ -31,12 +46,31 @@ GLOBAL_LIST_INIT(advance_cures, list(
max_stages = 5
spread_text = "Unknown"
viable_mobtypes = list(/mob/living/carbon/human)
+ incubation = 60
// NEW VARS
- var/list/symptoms = list() // The symptoms of the disease.
+ /// The base properties of the virus. retained between strains
+ var/list/base_properties = list("resistance" = 1, "stealth" = 0, "stage rate" = 1, "transmissibility" = 1)
+ /// Chance of the virus evolving on spread
+ var/evolution_chance = VIRUS_EVOLUTION_CHANCE
+ /// The symptoms of the disease.
+ var/list/symptoms = list()
+ /// A unique ID for the strain and symptoms.
var/id = ""
+ /// Saves an ID. If that ID is analyzed the virus will be automatically analyzed when inserted into the PANDEMIC
+ var/tracker = ""
var/processing = FALSE
+ /// A unique ID for the strain. Uses the unique_datum_id of the first virus datum that is of that strain.
+ var/strain = ""
+ /// The event the virus came from, if it did
+ var/event
+ /// How far along the disease has progressed? This is tied with stage but is separate to give more granularity to symptom effects
+ var/progress = 0
+ /// The time at which the disease last advanced
+ var/last_advancement = 0
+ /// The number of cures from the cure list required to cure a patient
+ var/cures_required = 1
/*
@@ -44,46 +78,102 @@ GLOBAL_LIST_INIT(advance_cures, list(
*/
-/datum/disease/advance/New(process = 1, datum/disease/advance/D)
- if(!istype(D))
- D = null
+/datum/disease/advance/New(datum/disease/advance/to_copy, _event = NONE, copy_stage = TRUE)
+ if(!istype(to_copy))
+ to_copy = null
+ strain = "origin"
+ event = _event
+ last_advancement = world.time
+ // whether to generate a new cure or not
+ var/new_cure = TRUE
// Generate symptoms if we weren't given any.
-
if(!symptoms || !length(symptoms))
-
- if(!D || !D.symptoms || !length(D.symptoms))
+ if(!to_copy || !to_copy.symptoms || !length(to_copy.symptoms))
symptoms = GenerateSymptoms(0, 2)
else
- for(var/datum/symptom/S in D.symptoms)
+ for(var/datum/symptom/S in to_copy.symptoms)
symptoms += new S.type
+ // Copy cure, evolution ability and strain if we are copying an existing disease
+ if(to_copy)
+ name = to_copy.name
+ base_properties = to_copy.base_properties.Copy()
+ evolution_chance = to_copy.evolution_chance
+ tracker = to_copy.tracker
+ for(var/cure_reagent in to_copy.cures)
+ cures += cure_reagent
+ cure_text = to_copy.cure_text
+ strain = to_copy.strain
+ if(copy_stage)
+ stage = to_copy.stage
+ event = to_copy.event
+ new_cure = FALSE
+
+ Refresh(FALSE, FALSE , new_cure, FALSE)
- Refresh()
- ..(process, D)
return
/datum/disease/advance/Destroy()
if(processing)
for(var/datum/symptom/S in symptoms)
S.End(src)
+ if(event)
+ var/datum/event/disease_outbreak/outbreak = locateUID(event)
+ if(istype(outbreak) && !QDELETED(outbreak))
+ outbreak.infected_players -= src
return ..()
+/// Randomly mutate the disease
+/datum/disease/advance/after_infect()
+ if(event && affected_mob.mind)
+ var/datum/event/disease_outbreak/outbreak = locateUID(event)
+ if(istype(outbreak) && !QDELETED(outbreak))
+ outbreak.infected_players |= src
+ if(prob(evolution_chance))
+ if(affected_mob.mind)
+ SSblackbox.record_feedback("tally", "Advanced Disease", 1, "Spontanous Evolution")
+ var/min = rand(1, 6)
+ var/max = rand(min, 6)
+ var/last_strain = strain
+ // In most cases we try to gain a symptom, rarely we lose one
+ if(prob(95))
+ Evolve(min, max)
+ else
+ Devolve()
+ // Create a new strain even if we didn't gain or lose symptoms
+ if(last_strain == strain)
+ Refresh()
+
// Randomly pick a symptom to activate.
/datum/disease/advance/stage_act()
if(!..())
return FALSE
if(symptoms && length(symptoms))
-
+ var/list/mob_reagents = list()
+ for(var/datum/reagent/chem in affected_mob.reagents.reagent_list)
+ mob_reagents += list("[chem.id]" = chem.volume)
if(!processing)
processing = TRUE
for(var/datum/symptom/S in symptoms)
S.Start(src)
-
for(var/datum/symptom/S in symptoms)
S.Activate(src)
else
CRASH("We do not have any symptoms during stage_act()!")
return TRUE
+/datum/disease/advance/spread(force_spread)
+ if(carrier || force_spread || prob(40 + progress))
+ return ..()
+
+/datum/disease/advance/handle_stage_advance(has_cure = FALSE)
+ if(!has_cure && (prob(stage_prob) || world.time > last_advancement + 1000))
+ last_advancement = world.time
+ progress = min(progress + 6, 100)
+ stage = min(ceil(progress / 20), max_stages)
+ if(!discovered && stage >= CEILING(max_stages * discovery_threshold, 1)) // Once we reach a late enough stage, medical HUDs can pick us up even if we regress
+ discovered = TRUE
+ affected_mob.med_hud_set_status()
+
// Compares type then ID.
/datum/disease/advance/IsSame(datum/disease/advance/D)
if(ispath(D))
@@ -97,6 +187,11 @@ GLOBAL_LIST_INIT(advance_cures, list(
return TRUE
+/datum/disease/advance/handle_cure_testing(has_cure = FALSE)
+ . = ..()
+ if(has_cure)
+ progress = min(progress, stage * 20)
+
// To add special resistances.
/datum/disease/advance/cure(resistance=1)
if(affected_mob)
@@ -106,9 +201,19 @@ GLOBAL_LIST_INIT(advance_cures, list(
remove_virus()
qdel(src) //delete the datum to stop it processing
+// Gives the mob a resistance to this disease. Does not cure it if they are already infected
+/datum/disease/advance/make_resistant(mob/living/target)
+ if(target)
+ var/id = "[GetDiseaseID()]"
+ if(!(id in target.resistances))
+ target.resistances[id] = id
+
// Returns the advance disease with a different reference memory.
-/datum/disease/advance/Copy(process = 0)
- return new /datum/disease/advance(process, src, 1)
+/datum/disease/advance/Copy(copy_stage = TRUE)
+ return new /datum/disease/advance(to_copy = src, copy_stage = copy_stage)
+
+/datum/disease/advance/record_infection()
+ SSblackbox.record_feedback("tally", "Advanced Disease", 1, "[name]_[strain] Infection")
/*
@@ -119,7 +224,12 @@ GLOBAL_LIST_INIT(advance_cures, list(
// Mix the symptoms of two diseases (the src and the argument)
/datum/disease/advance/proc/Mix(datum/disease/advance/D)
if(!(IsSame(D)))
- var/list/possible_symptoms = shuffle(D.symptoms)
+ var/list/possible_symptoms = list()
+ // Wild viruses are less predictable when mixed
+ if(D.event || event)
+ possible_symptoms = shuffle(D.symptoms + D.GenerateSymptoms(1, 6, 3))
+ else
+ possible_symptoms = shuffle(D.symptoms)
for(var/datum/symptom/S in possible_symptoms)
AddSymptom(new S.type)
@@ -177,55 +287,63 @@ GLOBAL_LIST_INIT(advance_cures, list(
return generated
-/datum/disease/advance/proc/Refresh(new_name = FALSE, archive = FALSE)
+/// Called after changes are made to a disease to apply them properly
+/datum/disease/advance/proc/Refresh(new_name = FALSE, archive = FALSE, new_cure = TRUE, new_strain = TRUE)
+ if(new_strain)
+ strain = "adv_[num2text(GLOB.next_unique_strain++, 8)]"
+ evolution_chance = VIRUS_EVOLUTION_CHANCE
var/list/properties = GenerateProperties()
- AssignProperties(properties)
+ AssignProperties(properties, new_cure)
id = null
if(!GLOB.archive_diseases[GetDiseaseID()])
if(new_name)
AssignName()
GLOB.archive_diseases[GetDiseaseID()] = src // So we don't infinite loop
- GLOB.archive_diseases[GetDiseaseID()] = new /datum/disease/advance(0, src, 1)
+ GLOB.archive_diseases[GetDiseaseID()] = new /datum/disease/advance(src)
var/datum/disease/advance/A = GLOB.archive_diseases[GetDiseaseID()]
AssignName(A.name)
-//Generate disease properties based on the effects. Returns an associated list.
+/// Generate disease properties based on the symptoms and base properties. Returns an associated list.
/datum/disease/advance/proc/GenerateProperties()
if(!symptoms || !length(symptoms))
CRASH("We did not have any symptoms before generating properties.")
- var/list/properties = list("resistance" = 1, "stealth" = 0, "stage rate" = 1, "transmittable" = 1, "severity" = 0)
-
+ var/list/properties = base_properties.Copy()
for(var/datum/symptom/S in symptoms)
-
properties["resistance"] += S.resistance
properties["stealth"] += S.stealth
properties["stage rate"] += S.stage_speed
- properties["transmittable"] += S.transmittable
+ properties["transmissibility"] += S.transmissibility
properties["severity"] = max(properties["severity"], S.severity) // severity is based on the highest severity symptom
return properties
-// Assign the properties that are in the list.
-/datum/disease/advance/proc/AssignProperties(list/properties = list())
-
+/// Set the characteristics of the disease depending on the received properties
+/datum/disease/advance/proc/AssignProperties(list/properties = list(), new_cure = TRUE)
if(properties && length(properties))
switch(properties["stealth"])
- if(2)
- visibility_flags = HIDDEN_SCANNER
- if(3 to INFINITY)
- visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC
+ if(0 to 2)
+ visibility_flags = 0
+ if(2 to INFINITY)
+ visibility_flags = VIRUS_HIDDEN_SCANNER
- // The more symptoms we have, the less transmittable it is but some symptoms can make up for it.
- SetSpread(clamp(2 ** (properties["transmittable"] - length(symptoms)), BLOOD, AIRBORNE))
- permeability_mod = max(CEILING(0.4 * properties["transmittable"], 1), 1)
- cure_chance = 15 - clamp(properties["resistance"], -5, 5) // can be between 10 and 20
- stage_prob = max(properties["stage rate"], 2)
+ // The more symptoms we have, the less transmissibility it is but some symptoms can make up for it.
+ SetSpread(clamp(2 ** (properties["transmissibility"] - length(symptoms)), SPREAD_BLOOD, SPREAD_AIRBORNE))
+ permeability_mod = max(CEILING(0.4 * properties["transmissibility"], 1), 1)
+ cure_chance = 20 - clamp(properties["resistance"], -5, 5) // can be between 10 and 20
+ // The amount of cures needed to cure the disease. clamped between 1 and 6 because we generate 6 possible cures
+ cures_required = round(max(2.2 * (1.1 ** properties["resistance"]), 1))
+ // 9 stage rate is twice as fast as 0 stage rate, -9 stage rate is half as fast as 0.
+ stage_prob = 4 * (1.08 ** properties["stage rate"])
SetSeverity(properties["severity"])
- GenerateCure(properties)
+ // Calculate evolution chance, unless stabilized with stabilizing agar
+ if(evolution_chance)
+ evolution_chance = VIRUS_EVOLUTION_CHANCE * (1 + sqrtor0(properties["stage rate"]) / 6)
+ if(new_cure)
+ GenerateCure(properties)
else
CRASH("Our properties were empty or null!")
@@ -233,13 +351,13 @@ GLOBAL_LIST_INIT(advance_cures, list(
// Assign the spread type and give it the correct description.
/datum/disease/advance/proc/SetSpread(spread_id)
switch(spread_id)
- if(NON_CONTAGIOUS, SPECIAL)
+ if(SPREAD_NON_CONTAGIOUS, SPREAD_SPECIAL)
spread_text = "Non-contagious"
- if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET)
+ if(SPREAD_CONTACT_GENERAL, SPREAD_CONTACT_HANDS, SPREAD_CONTACT_FEET)
spread_text = "On contact"
- if(AIRBORNE)
+ if(SPREAD_AIRBORNE)
spread_text = "Airborne"
- if(BLOOD)
+ if(SPREAD_BLOOD)
spread_text = "Blood"
spread_flags = spread_id
@@ -249,33 +367,57 @@ GLOBAL_LIST_INIT(advance_cures, list(
switch(level_sev)
if(-INFINITY to 0)
- severity = NONTHREAT
+ severity = VIRUS_NONTHREAT
if(1)
- severity = MINOR
+ severity = VIRUS_MINOR
if(2)
- severity = MEDIUM
+ severity = VIRUS_MEDIUM
if(3)
- severity = HARMFUL
+ severity = VIRUS_HARMFUL
if(4)
- severity = DANGEROUS
+ severity = VIRUS_DANGEROUS
if(5 to INFINITY)
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
else
severity = "Unknown"
+/datum/disease/advance/has_cure()
+ if(!(disease_flags & VIRUS_CURABLE))
+ return 0
+
+ var/cures_found = 0
+ for(var/C_id in cures)
+ if(C_id == "ethanol")
+ for(var/datum/reagent/consumable/ethanol/booze in affected_mob.reagents.reagent_list)
+ cures_found++
+ break
+ else if(affected_mob.reagents.has_reagent(C_id))
+ cures_found++
+
+ return cures_found >= cures_required
+
+/datum/disease/advance/proc/cure_pick(list/curelist = list())
+ var/list/options = curelist - cures
+ return pick(options)
// Will generate a random cure, the less resistance the symptoms have, the harder the cure.
/datum/disease/advance/proc/GenerateCure(list/properties = list())
if(properties && length(properties))
- var/res = clamp(properties["resistance"] - (length(symptoms) / 2), 1, length(GLOB.advance_cures))
-// to_chat(world, "Res = [res]")
- cures = list(GLOB.advance_cures[res])
-
- // Get the cure name from the cure_id
- var/datum/reagent/D = GLOB.chemical_reagents_list[cures[1]]
- cure_text = D.name
-
-
+ cures = list()
+ cure_text = ""
+ cures += pick(GLOB.standard_cures)
+ for(var/i in 1 to cures_required + 2)
+ switch(pick(40;1, 40;2, 20;3))
+ if(1)
+ cures += cure_pick(GLOB.advanced_cures)
+ if(2)
+ cures += cure_pick(GLOB.plant_cures)
+ if(3)
+ cures += cure_pick(GLOB.drinks)
+ for(var/cure in cures)
+ // Get the cure name from the cure_id
+ var/datum/reagent/D = GLOB.chemical_reagents_list[cure]
+ cure_text += cure_text == "" ? "[D.name]" : ", [D.name]"
return
// Randomly generate a symptom, has a chance to lose or gain a symptom.
@@ -296,8 +438,11 @@ GLOBAL_LIST_INIT(advance_cures, list(
return
// Name the disease.
-/datum/disease/advance/proc/AssignName(name = "Unknown")
- src.name = name
+/datum/disease/advance/proc/AssignName(_name = "Unknown")
+ name = _name
+ if(GLOB.archive_diseases[GetDiseaseID()])
+ var/datum/disease/advance/virus = GLOB.archive_diseases[GetDiseaseID()]
+ virus.name = _name
return
// Return a unique ID of the disease.
@@ -306,7 +451,8 @@ GLOBAL_LIST_INIT(advance_cures, list(
var/list/L = list()
for(var/datum/symptom/S in symptoms)
L += S.id
- L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in.
+ L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in and add the strain to the end
+ L += strain
var/result = jointext(L, ":")
id = result
return id
@@ -326,11 +472,29 @@ GLOBAL_LIST_INIT(advance_cures, list(
symptoms += S
return
+/datum/disease/advance/proc/has_symptom_path(symptom_path)
+ for(var/datum/symptom/current_symptom in symptoms)
+ if(current_symptom.type == symptom_path)
+ return TRUE
+ return FALSE
+
+/datum/disease/advance/proc/add_symptom_path(symptom_path)
+ if(has_symptom_path(symptom_path))
+ return
+ if(length(symptoms) < VIRUS_SYMPTOM_LIMIT)
+ symptoms += new symptom_path
+
// Simply removes the symptom.
/datum/disease/advance/proc/RemoveSymptom(datum/symptom/S)
symptoms -= S
return
+/datum/disease/advance/proc/clear_symptoms()
+ for(var/datum/symptom/current_symptom in symptoms)
+ symptoms -= current_symptom
+ qdel(current_symptom)
+
+
/*
Static Procs
@@ -362,7 +526,9 @@ GLOBAL_LIST_INIT(advance_cures, list(
diseases -= D1
var/datum/disease/advance/D2 = pick(diseases)
- D2.Mix(D1)
+ // So that we don't mix a virus with itself
+ if(D2.GetDiseaseID() != D1.GetDiseaseID())
+ D2.Mix(D1)
// Should be only 1 entry left, but if not let's only return a single entry
// to_chat(world, "END MIXING!!!!!")
@@ -385,78 +551,113 @@ GLOBAL_LIST_INIT(advance_cures, list(
if(!user)
return
+ var/datum/disease/advance/admin_disease = new(_event = TRUE)
+
+ var/base_props = list("resistance" = 1, "stealth" = 0, "stage rate" = 1, "transmissibility" = 1)
+
+ for(var/prop in base_props)
+ var/current_prop = input(user, "Enter base [prop]", "Base Stats", null)
+ if(current_prop)
+ admin_disease.base_properties[prop] = text2num(current_prop)
+
var/i = VIRUS_SYMPTOM_LIMIT
- var/datum/disease/advance/D = new(0, null)
- D.symptoms = list()
+ admin_disease.symptoms = list()
var/list/symptoms = list()
symptoms += "Done"
symptoms += GLOB.list_symptoms.Copy()
do
if(user)
- var/symptom = input(user, "Choose a symptom to add ([i] remaining)", "Choose a Symptom") in symptoms
+ var/symptom = tgui_input_list(user, "Choose a Symptom", "Choose a symptom to add ([i] remaining)", symptoms)
if(isnull(symptom))
return
else if(istext(symptom))
i = 0
else if(ispath(symptom))
var/datum/symptom/S = new symptom
- if(!D.HasSymptom(S))
- D.symptoms += S
+ if(!admin_disease.HasSymptom(S))
+ admin_disease.symptoms += S
i -= 1
while(i > 0)
- if(length(D.symptoms) > 0)
+ if(length(admin_disease.symptoms) > 0)
var/new_name = stripped_input(user, "Name your new disease.", "New Name")
if(!new_name)
return
- D.AssignName(new_name)
- D.Refresh()
-
- for(var/datum/disease/advance/AD in GLOB.active_diseases)
- AD.Refresh()
-
- for(var/thing in shuffle(GLOB.human_list))
- var/mob/living/carbon/human/H = thing
- if(H.stat == DEAD || !is_station_level(H.z))
- continue
- if(!H.HasDisease(D))
- H.ForceContractDisease(D)
- break
-
- var/list/name_symptoms = list()
- for(var/datum/symptom/S in D.symptoms)
- name_symptoms += S.name
- message_admins("[key_name_admin(user)] has triggered a custom virus outbreak of [D.name]! It has these symptoms: [english_list(name_symptoms)]")
-
+ admin_disease.AssignName(new_name)
+ admin_disease.Refresh(FALSE, TRUE, TRUE, TRUE)
+ return admin_disease
/datum/disease/advance/proc/totalStageSpeed()
- var/total_stage_speed = 0
+ var/total_stage_speed = base_properties["stage rate"]
for(var/i in symptoms)
var/datum/symptom/S = i
total_stage_speed += S.stage_speed
return total_stage_speed
/datum/disease/advance/proc/totalStealth()
- var/total_stealth = 0
+ var/total_stealth = base_properties["stealth"]
for(var/i in symptoms)
var/datum/symptom/S = i
total_stealth += S.stealth
return total_stealth
/datum/disease/advance/proc/totalResistance()
- var/total_resistance = 0
+ var/total_resistance = base_properties["resistance"]
for(var/i in symptoms)
var/datum/symptom/S = i
total_resistance += S.resistance
return total_resistance
-/datum/disease/advance/proc/totalTransmittable()
- var/total_transmittable = 0
+/datum/disease/advance/proc/totaltransmissibility()
+ var/total_transmissibility = base_properties["transmissibility"]
for(var/i in symptoms)
var/datum/symptom/S = i
- total_transmittable += S.transmittable
- return total_transmittable
+ total_transmissibility += S.transmissibility
+ return total_transmissibility
+
+/datum/disease/advance/get_required_cures()
+ return cures_required
+
+/datum/disease/advance/is_stabilized()
+ return !evolution_chance
+
+/datum/disease/advance/get_tracker()
+ return tracker
+
+/datum/disease/advance/get_ui_id()
+ return id
+
+/datum/disease/advance/get_strain_id()
+ return strain
+
+/datum/disease/advance/get_full_strain_id()
+ return GetDiseaseID()
+
+/datum/disease/advance/is_known(z)
+ return (GetDiseaseID() in GLOB.known_advanced_diseases["[z]"])
+
+/datum/disease/advance/get_pandemic_symptoms(z)
+ . = list()
+ var/disease_known = is_known(z)
+ for(var/datum/symptom/virus_symptom in symptoms)
+ var/known = disease_known || (virus_symptom.name in GLOB.detected_advanced_diseases["[z]"][GetDiseaseID()]["known_symptoms"])
+ . += list(list(
+ "name" = known ? virus_symptom.name : "UNKNOWN",
+ "stealth" = known ? virus_symptom.stealth : "UNKNOWN",
+ "resistance" = known ? virus_symptom.resistance : "UNKNOWN",
+ "stageSpeed" = known ? virus_symptom.stage_speed : "UNKNOWN",
+ "transmissibility" = known ? virus_symptom.transmissibility : "UNKNOWN",
+ "complexity" = known ? virus_symptom.level : "UNKNOWN",
+ ))
+
+/datum/disease/advance/get_pandemic_base_stats()
+ return list(
+ "resistance" = base_properties["resistance"],
+ "stageSpeed" = base_properties["stage rate"],
+ "stealth" = base_properties["stealth"],
+ "transmissibility" = base_properties["transmissibility"],
+ )
diff --git a/code/datums/diseases/advance/disease_presets.dm b/code/datums/diseases/advance/disease_presets.dm
index 0cf111358c9..f654980b6c1 100644
--- a/code/datums/diseases/advance/disease_presets.dm
+++ b/code/datums/diseases/advance/disease_presets.dm
@@ -1,51 +1,51 @@
// Cold
-/datum/disease/advance/cold/New(process = 1, datum/disease/advance/D, copy = 0)
- if(!D)
+/datum/disease/advance/cold/New(datum/disease/advance/to_copy, _event = FALSE, copy_stage = FALSE)
+ if(!to_copy)
name = "Cold"
symptoms = list(new/datum/symptom/sneeze)
- ..(process, D, copy)
+ ..()
// Flu
-/datum/disease/advance/flu/New(process = 1, datum/disease/advance/D, copy = 0)
- if(!D)
+/datum/disease/advance/flu/New(datum/disease/advance/to_copy, _event = FALSE, copy_stage = FALSE)
+ if(!to_copy)
name = "Flu"
symptoms = list(new/datum/symptom/cough)
- ..(process, D, copy)
+ ..()
// Voice Changing
-/datum/disease/advance/voice_change/New(process = 1, datum/disease/advance/D, copy = 0)
- if(!D)
+/datum/disease/advance/voice_change/New(datum/disease/advance/to_copy, _event = FALSE, copy_stage = FALSE)
+ if(!to_copy)
name = "Epiglottis Mutation"
symptoms = list(new/datum/symptom/voice_change)
- ..(process, D, copy)
+ ..()
// Toxin Filter
-/datum/disease/advance/heal/New(process = 1, datum/disease/advance/D, copy = 0)
- if(!D)
+/datum/disease/advance/heal/New(datum/disease/advance/to_copy, _event = FALSE, copy_stage = FALSE)
+ if(!to_copy)
name = "Liver Enhancer"
symptoms = list(new/datum/symptom/heal)
- ..(process, D, copy)
+ ..()
// Hullucigen
-/datum/disease/advance/hullucigen/New(process = 1, datum/disease/advance/D, copy = 0)
- if(!D)
+/datum/disease/advance/hullucigen/New(datum/disease/advance/to_copy, _event = FALSE, copy_stage = FALSE)
+ if(!to_copy)
name = "Reality Impairment"
symptoms = list(new/datum/symptom/hallucigen)
- ..(process, D, copy)
+ ..()
// Sensory Restoration
-/datum/disease/advance/sensory_restoration/New(process = 1, datum/disease/advance/D, copy = 0)
- if(!D)
+/datum/disease/advance/sensory_restoration/New(datum/disease/advance/to_copy, _event = FALSE, copy_stage = FALSE)
+ if(!to_copy)
name = "Reality Enhancer"
symptoms = list(new/datum/symptom/sensory_restoration)
- ..(process, D, copy)
+ ..()
diff --git a/code/datums/diseases/advance/symptoms/beard.dm b/code/datums/diseases/advance/symptoms/beard.dm
index b3eaaba83cc..048dcff0fec 100644
--- a/code/datums/diseases/advance/symptoms/beard.dm
+++ b/code/datums/diseases/advance/symptoms/beard.dm
@@ -17,36 +17,32 @@ BONUS
/datum/symptom/beard
name = "Facial Hypertrichosis"
- stealth = -3
- resistance = -1
- stage_speed = -3
- transmittable = -1
+ stealth = -1
+ stage_speed = 2
+ transmissibility = -1
level = 4
severity = 1
-/datum/symptom/beard/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- var/obj/item/organ/external/head/head_organ = H.get_organ("head")
- if(!istype(head_organ))
- return
- switch(A.stage)
- if(1, 2)
- to_chat(H, "Your chin itches.")
- if(head_organ.f_style == "Shaved")
- head_organ.f_style = "Jensen Beard"
- H.update_fhair()
- if(3, 4)
- to_chat(H, "You feel tough.")
- if(!(head_organ.f_style == "Dwarf Beard") && !(head_organ.f_style == "Very Long Beard") && !(head_organ.f_style == "Full Beard"))
- head_organ.f_style = "Full Beard"
- H.update_fhair()
- else
- to_chat(H, "You feel manly!")
- if(!(head_organ.f_style == "Dwarf Beard") && !(head_organ.f_style == "Very Long Beard"))
- head_organ.f_style = pick("Dwarf Beard", "Very Long Beard")
- H.update_fhair()
+/datum/symptom/beard/symptom_act(datum/disease/advance/A, unmitigated)
+ if(ishuman(A.affected_mob))
+ var/mob/living/carbon/human/H = A.affected_mob
+ var/obj/item/organ/external/head/head_organ = H.get_organ("head")
+ if(!istype(head_organ))
+ return
+ switch(A.stage)
+ if(1, 2)
+ to_chat(H, "Your chin itches.")
+ if(head_organ.f_style == "Shaved")
+ head_organ.f_style = "Jensen Beard"
+ H.update_fhair()
+ if(3, 4)
+ to_chat(H, "You feel tough.")
+ if(!(head_organ.f_style == "Dwarf Beard") && !(head_organ.f_style == "Very Long Beard") && !(head_organ.f_style == "Full Beard"))
+ head_organ.f_style = "Full Beard"
+ H.update_fhair()
+ else
+ to_chat(H, "You feel manly!")
+ if(!(head_organ.f_style == "Dwarf Beard") && !(head_organ.f_style == "Very Long Beard"))
+ head_organ.f_style = pick("Dwarf Beard", "Very Long Beard")
+ H.update_fhair()
return
diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm
index f0a3eaa9ce0..e5e6b84ab02 100644
--- a/code/datums/diseases/advance/symptoms/choking.dm
+++ b/code/datums/diseases/advance/symptoms/choking.dm
@@ -19,35 +19,33 @@ Bonus
name = "Choking"
stealth = -3
- resistance = -2
stage_speed = -2
- transmittable = -4
+ transmissibility = -4
level = 3
severity = 3
+ chem_treatments = list(
+ "perfluorodecalin" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/choking/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1, 2)
- to_chat(M, "[pick("You're having difficulty breathing.", "Your breathing becomes heavy.")]")
- if(3, 4)
- to_chat(M, "[pick("Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult.")]")
- Choke_stage_3_4(M, A)
- M.emote("gasp")
- else
- to_chat(M, "[pick("You're choking!", "You can't breathe!")]")
- Choke(M, A)
- M.emote("gasp")
+/datum/symptom/choking/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.stage)
+ if(1, 2)
+ to_chat(M, "[pick("You're having difficulty breathing.", "Your breathing becomes heavy.")]")
+ if(3, 4)
+ to_chat(M, "[pick("Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult.")]")
+ Choke(M, A, unmitigated)
+ M.emote("gasp")
+ else
+ to_chat(M, "[pick("You're choking!", "You can't breathe!")]")
+ Choke(M, A)
+ M.emote("gasp")
return
-/datum/symptom/choking/proc/Choke_stage_3_4(mob/living/M, datum/disease/advance/A)
- var/get_damage = sqrtor0(21+A.totalStageSpeed()*0.5)+sqrtor0(16+A.totalStealth())
- M.adjustOxyLoss(get_damage)
- return 1
-
-/datum/symptom/choking/proc/Choke(mob/living/M, datum/disease/advance/A)
- var/get_damage = sqrtor0(21+A.totalStageSpeed()*0.5)+sqrtor0(16+A.totalStealth()*5)
+/datum/symptom/choking/proc/Choke(mob/living/M, datum/disease/advance/A, unmitigated)
+ var/get_damage = unmitigated
+ if(A.stage < 5)
+ get_damage *= sqrtor0(21 + A.totalStageSpeed() * 0.5)+sqrtor0(16+A.totalStealth())
+ else
+ get_damage *= sqrtor0(21 + A.totalStageSpeed() * 0.5)+sqrtor0(16+A.totalStealth() * 5)
M.adjustOxyLoss(get_damage)
return 1
diff --git a/code/datums/diseases/advance/symptoms/confusion.dm b/code/datums/diseases/advance/symptoms/confusion.dm
index fa0733bc0dd..d68b38defc1 100644
--- a/code/datums/diseases/advance/symptoms/confusion.dm
+++ b/code/datums/diseases/advance/symptoms/confusion.dm
@@ -6,7 +6,7 @@ Confusion
Little bit hidden.
Lowers resistance.
Decreases stage speed.
- Not very transmittable.
+ Not very transmissibility.
Intense Level.
Bonus
@@ -19,21 +19,25 @@ Bonus
name = "Confusion"
stealth = 1
- resistance = -1
+ resistance = 1
stage_speed = -3
level = 4
severity = 2
+ chem_treatments = list(
+ "synaptazine" = list("multiplier" = 0, "timer" = 0),
+ "ephedrine" = list("multiplier" = 0, "timer" = 0),
+ "methamphetamine" = list("multiplier" = 0, "timer" = 0),
+ "coffee" = list("multiplier" = 0.7, "timer" = 0),
+ "tea"= list("multiplier" = 0.7, "timer" = 0))
-/datum/symptom/confusion/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/carbon/M = A.affected_mob
- switch(A.stage)
- if(1, 2, 3, 4)
- to_chat(M, "[pick("Your head hurts.", "Your mind blanks for a moment.")]")
- else
- to_chat(M, "You can't think straight!")
- M.AdjustConfused(16 SECONDS, bound_lower = 0, bound_upper = 200 SECONDS)
+/datum/symptom/confusion/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/carbon/M = A.affected_mob
+ if(prob(A.progress ** 2))
+ to_chat(M, "You can't think straight!")
+ M.AdjustConfused(16 SECONDS * unmitigated, bound_lower = 0, bound_upper = 200 SECONDS)
+
+ else
+ to_chat(M, "[pick("Your head hurts.", "Your mind blanks for a moment.")]")
return
diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm
index 5f495718fff..e2613992bd3 100644
--- a/code/datums/diseases/advance/symptoms/cough.dm
+++ b/code/datums/diseases/advance/symptoms/cough.dm
@@ -6,7 +6,7 @@ Coughing
Noticable.
Little Resistance.
Doesn't increase stage speed much.
- Transmittable.
+ transmissibility.
Low Level.
BONUS
@@ -18,23 +18,24 @@ BONUS
/datum/symptom/cough
name = "Cough"
- stealth = -1
- resistance = 3
+ stealth = 2
stage_speed = 1
- transmittable = 2
+ transmissibility = 2
level = 1
severity = 1
+ chem_treatments = list(
+ "salbutamol" = list("multiplier" = 0, "timer" = 0),
+ "perfluorodecalin" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/cough/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1, 2, 3)
- to_chat(M, "[pick("You swallow excess mucus.", "You lightly cough.")]")
- else
- M.emote("cough")
- var/obj/item/I = M.get_active_hand()
- if(I && I.w_class == 1)
- M.drop_item()
+/datum/symptom/cough/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(prob(A.progress + 20))
+ M.emote("cough")
+ var/obj/item/I = M.get_active_hand()
+ if(prob(A.progress * unmitigated) && I && I.w_class == 1)
+ M.drop_item()
+ // smaller spread than sneeze
+ A.spread(3 * unmitigated)
+ else
+ to_chat(M, "[pick("You swallow excess mucus.", "You lightly cough.")]")
return
diff --git a/code/datums/diseases/advance/symptoms/damage_converter.dm b/code/datums/diseases/advance/symptoms/damage_converter.dm
index 9d8c47451f8..13d24137dc5 100644
--- a/code/datums/diseases/advance/symptoms/damage_converter.dm
+++ b/code/datums/diseases/advance/symptoms/damage_converter.dm
@@ -21,16 +21,15 @@ Bonus
stealth = 1
resistance = -4
stage_speed = -4
- transmittable = -2
+ transmissibility = -2
level = 4
+ activation_prob = SYMPTOM_ACTIVATION_PROB * 10
-/datum/symptom/damage_converter/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB * 10))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(4, 5)
- Convert(M)
+/datum/symptom/damage_converter/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.stage)
+ if(4, 5)
+ Convert(M)
return
/datum/symptom/damage_converter/proc/Convert(mob/living/M)
diff --git a/code/datums/diseases/advance/symptoms/deafness.dm b/code/datums/diseases/advance/symptoms/deafness.dm
index 6e08a7b0ad4..9c06171cf52 100644
--- a/code/datums/diseases/advance/symptoms/deafness.dm
+++ b/code/datums/diseases/advance/symptoms/deafness.dm
@@ -17,23 +17,22 @@ Bonus
/datum/symptom/deafness
name = "Deafness"
- stealth = -1
- resistance = -2
+ stealth = 1
stage_speed = -1
- transmittable = -3
+ transmissibility = -3
level = 4
severity = 3
+ chem_treatments = list(
+ "oculine" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/deafness/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- var/obj/item/organ/internal/ears/ears = M.get_organ_slot("ears")
- if(!ears)
- return //cutting off your ears to cure the deafness: the ultimate own
- switch(A.stage)
- if(3, 4)
- to_chat(M, "[pick("You hear a ringing in your ear.", "Your ears pop.")]")
- if(5)
- to_chat(M, "Your ears pop and begin ringing loudly!")
- M.Deaf(40 SECONDS)
+/datum/symptom/deafness/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ var/obj/item/organ/internal/ears/ears = M.get_organ_slot("ears")
+ if(!ears)
+ return //cutting off your ears to cure the deafness: the ultimate own
+ switch(A.stage)
+ if(3, 4)
+ to_chat(M, "[pick("You hear a ringing in your ear.", "Your ears pop.")]")
+ if(5)
+ to_chat(M, "Your ears pop and begin ringing loudly!")
+ M.Deaf(40 SECONDS * unmitigated)
diff --git a/code/datums/diseases/advance/symptoms/dizzy.dm b/code/datums/diseases/advance/symptoms/dizzy.dm
index ede04d3da1f..9151f169ed1 100644
--- a/code/datums/diseases/advance/symptoms/dizzy.dm
+++ b/code/datums/diseases/advance/symptoms/dizzy.dm
@@ -20,20 +20,20 @@ Bonus
name = "Dizziness"
stealth = 2
- resistance = -2
- stage_speed = -3
- transmittable = -1
+ stage_speed = -1
+ transmissibility = -1
level = 4
severity = 2
+ chem_treatments = list(
+ "antihol" = list("multiplier" = 0, "timer" = 0),
+ "ephedrine" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/dizzy/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1, 2, 3, 4)
- to_chat(M, "[pick("You feel dizzy.", "Your head spins.")]")
- else
- to_chat(M, "A wave of dizziness washes over you!")
- M.Dizzy(10 SECONDS)
+/datum/symptom/dizzy/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.stage)
+ if(1, 2, 3, 4)
+ to_chat(M, "[pick("You feel dizzy.", "Your head spins.")]")
+ else
+ to_chat(M, "A wave of dizziness washes over you!")
+ M.Dizzy(10 SECONDS * unmitigated)
return
diff --git a/code/datums/diseases/advance/symptoms/fever.dm b/code/datums/diseases/advance/symptoms/fever.dm
index 845ff9f5abc..770fe993061 100644
--- a/code/datums/diseases/advance/symptoms/fever.dm
+++ b/code/datums/diseases/advance/symptoms/fever.dm
@@ -6,7 +6,7 @@ Fever
No change to hidden.
Increases resistance.
Increases stage speed.
- Little transmittable.
+ Little transmissibility.
Low level.
Bonus
@@ -18,23 +18,21 @@ Bonus
/datum/symptom/fever
name = "Fever"
- resistance = 3
+ stealth = 2
+ resistance = 1
stage_speed = 3
- transmittable = 2
+ transmissibility = 2
level = 2
severity = 2
-/datum/symptom/fever/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/carbon/M = A.affected_mob
- to_chat(M, "[pick("You feel hot.", "You feel like you're burning.")]")
- if(M.bodytemperature < BODYTEMP_HEAT_DAMAGE_LIMIT)
- Heat(M, A)
-
+/datum/symptom/fever/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/carbon/M = A.affected_mob
+ to_chat(M, "[pick("You feel hot.", "You feel like you're burning.")]")
+ if(M.bodytemperature < BODYTEMP_HEAT_DAMAGE_LIMIT)
+ Heat(M, A, unmitigated)
return
-/datum/symptom/fever/proc/Heat(mob/living/M, datum/disease/advance/A)
- var/get_heat = (sqrtor0(21+A.totalTransmittable()*2))+(sqrtor0(20+A.totalStageSpeed()*3))
+/datum/symptom/fever/proc/Heat(mob/living/M, datum/disease/advance/A, unmitigated)
+ var/get_heat = unmitigated * ((sqrtor0(21 + A.totaltransmissibility() * 2)) + (sqrtor0(20 + A.totalStageSpeed() * 3)))
M.bodytemperature = min(M.bodytemperature + (get_heat * A.stage), BODYTEMP_HEAT_DAMAGE_LIMIT - 1)
return 1
diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm
index b88f04d1eea..93c05935cb0 100644
--- a/code/datums/diseases/advance/symptoms/fire.dm
+++ b/code/datums/diseases/advance/symptoms/fire.dm
@@ -18,40 +18,42 @@ Bonus
/datum/symptom/fire
name = "Spontaneous Combustion"
- stealth = 1
- resistance = -4
- stage_speed = -4
- transmittable = -4
+ stealth = -3
+ resistance = 3
+ stage_speed = 1
+ transmissibility = -4
level = 6
- severity = 5
+ severity = 6
+ chem_treatments = list(
+ "frostoil" = list("multiplier" = 0, "timer" = 0),
+ "menthol" = list("multiplier" = 0, "timer" = 0),
+ "water" = list("multiplier" = 0.82, "timer" = 0))
-/datum/symptom/fire/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(3)
- to_chat(M, "[pick("You feel hot.", "You hear a crackling noise.", "You smell smoke.")]")
- if(4)
- Firestacks_stage_4(M, A)
- M.IgniteMob()
- to_chat(M, "Your skin bursts into flames!")
- M.emote("scream")
- if(5)
- Firestacks_stage_5(M, A)
- M.IgniteMob()
- to_chat(M, "Your skin erupts into an inferno!")
- M.emote("scream")
+/datum/symptom/fire/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.progress)
+ if(30 to 59)
+ to_chat(M, "[pick("You feel hot.", "You hear a crackling noise.", "You smell smoke.")]")
+ if(60 to 79)
+ Firestacks(M, A, unmitigated)
+ M.IgniteMob()
+ to_chat(M, "Your skin bursts into flames!")
+ M.emote("scream")
+ if(80 to INFINITY)
+ Firestacks(M, A, unmitigated)
+ M.IgniteMob()
+ to_chat(M, "Your skin erupts into an inferno!")
+ M.emote("scream")
return
-/datum/symptom/fire/proc/Firestacks_stage_4(mob/living/M, datum/disease/advance/A)
- var/get_stacks = max((sqrtor0(20 + A.totalStageSpeed() * 2)) - (sqrtor0(16 + A.totalStealth())), 1)
- M.adjust_fire_stacks(get_stacks)
- M.adjustFireLoss(get_stacks * 0.5)
- return 1
+/datum/symptom/fire/proc/Firestacks(mob/living/M, datum/disease/advance/A, unmitigated)
+ var/get_stacks = unmitigated
+ if(A.stage < 5)
+ get_stacks *= ((A.progress / 100) ** 2) * max(sqrtor0(5 + A.totalStageSpeed() * 2), 1)
+ M.adjustFireLoss(get_stacks * 2)
+ else
+ get_stacks *= ((A.progress / 100) ** 2) * max(sqrtor0(10 + A.totalStageSpeed() * 3), 1)
+ M.adjustFireLoss(get_stacks * 4)
-/datum/symptom/fire/proc/Firestacks_stage_5(mob/living/M, datum/disease/advance/A)
- var/get_stacks = max((sqrtor0(20 + A.totalStageSpeed() * 3))-(sqrtor0(16 + A.totalStealth())), 1)
M.adjust_fire_stacks(get_stacks)
- M.adjustFireLoss(get_stacks)
return 1
diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm
index 9de5ce72b3c..48c81d4aa79 100644
--- a/code/datums/diseases/advance/symptoms/flesh_eating.dm
+++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm
@@ -18,25 +18,27 @@ Bonus
/datum/symptom/flesh_eating
name = "Necrotizing Fasciitis"
- stealth = -3
- resistance = -4
- transmittable = -4
+ stealth = -4
+ resistance = 3
+ transmissibility = -3
level = 6
- severity = 5
+ severity = 6
+ chem_treatments = list(
+ "synthflesh" = list("multiplier" = 0, "timer" = 0),
+ "lazarus_reagent" = list("multiplier" = 0, "timer" = 0))
+
+/datum/symptom/flesh_eating/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(A.stage > 1)
+ if(prob(A.progress))
+ to_chat(M, "[pick("You cringe as a violent pain takes over your body.", "It feels like your body is eating itself inside out.", "IT HURTS.")]")
+ Flesheat(M, A)
+ else
+ to_chat(M, "[pick("You feel a sudden pain across your body.", "Drops of blood appear suddenly on your skin.")]")
-/datum/symptom/flesh_eating/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(2,3)
- to_chat(M, "[pick("You feel a sudden pain across your body.", "Drops of blood appear suddenly on your skin.")]")
- if(4,5)
- to_chat(M, "[pick("You cringe as a violent pain takes over your body.", "It feels like your body is eating itself inside out.", "IT HURTS.")]")
- Flesheat(M, A)
return
/datum/symptom/flesh_eating/proc/Flesheat(mob/living/M, datum/disease/advance/A)
- var/get_damage = ((sqrtor0(16-A.totalStealth()))*5)
+ var/get_damage = (A.progress / 100) * ((sqrtor0(49 + 2 * A.totalStageSpeed()))*5)
M.adjustBruteLoss(get_damage)
return 1
diff --git a/code/datums/diseases/advance/symptoms/hair.dm b/code/datums/diseases/advance/symptoms/hair.dm
index 60419bd5b25..c6bcf6434c0 100644
--- a/code/datums/diseases/advance/symptoms/hair.dm
+++ b/code/datums/diseases/advance/symptoms/hair.dm
@@ -16,34 +16,32 @@ BONUS
/datum/symptom/hair
name = "Cranial Hypertrichosis"
- stealth = -3
+ stealth = -1
resistance = -1
- stage_speed = -3
- transmittable = -1
+ stage_speed = 1
+ transmissibility = 1
level = 4
severity = 1
-/datum/symptom/hair/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- if(!ishuman(A.affected_mob))
- return
- var/mob/living/carbon/human/H = A.affected_mob
- if(H.dna.species.bodyflags & BALD)
- return
- var/obj/item/organ/external/head/head_organ = H.get_organ("head")
- if(!istype(head_organ))
- return
- switch(A.stage)
- if(1, 2, 3)
- to_chat(H, "Your scalp itches.")
- head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name)
- else
- to_chat(H, "Hair bursts forth from your scalp!")
- var/datum/sprite_accessory/tmp_hair_style = GLOB.hair_styles_full_list["Very Long Hair"]
+/datum/symptom/hair/symptom_act(datum/disease/advance/A, unmitigated)
+ if(!ishuman(A.affected_mob))
+ return
+ var/mob/living/carbon/human/H = A.affected_mob
+ if(H.dna.species.bodyflags & BALD)
+ return
+ var/obj/item/organ/external/head/head_organ = H.get_organ("head")
+ if(!istype(head_organ))
+ return
+ switch(A.stage)
+ if(1, 2, 3)
+ to_chat(H, "Your scalp itches.")
+ head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name)
+ else
+ to_chat(H, "Hair bursts forth from your scalp!")
+ var/datum/sprite_accessory/tmp_hair_style = GLOB.hair_styles_full_list["Very Long Hair"]
- if(head_organ.dna.species.name in tmp_hair_style.species_allowed) //If 'Very Long Hair' is a style the person's species can have, give it to them.
- head_organ.h_style = "Very Long Hair"
- else //Otherwise, give them a random hair style.
- head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name)
- H.update_hair()
+ if(head_organ.dna.species.name in tmp_hair_style.species_allowed) //If 'Very Long Hair' is a style the person's species can have, give it to them.
+ head_organ.h_style = "Very Long Hair"
+ else //Otherwise, give them a random hair style.
+ head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name)
+ H.update_hair()
diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm
index 15506312836..3d2e63c7602 100644
--- a/code/datums/diseases/advance/symptoms/hallucigen.dm
+++ b/code/datums/diseases/advance/symptoms/hallucigen.dm
@@ -6,7 +6,7 @@ Hallucigen
Very noticable.
Lowers resistance considerably.
Decreases stage speed.
- Reduced transmittable.
+ Reduced transmissibility.
Critical Level.
Bonus
@@ -19,23 +19,23 @@ Bonus
name = "Hallucigen"
stealth = -2
- resistance = -3
- stage_speed = -3
- transmittable = -1
+ stage_speed = -4
+ transmissibility = 1
level = 5
severity = 3
+ chem_treatments = list(
+ "synaptazine" = list("multiplier" = 0, "timer" = 0),
+ "ephedrine" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/hallucigen/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/carbon/M = A.affected_mob
- switch(A.stage)
- if(1, 2)
- to_chat(M, "[pick("Something appears in your peripheral vision, then winks out.", "You hear a faint whisper with no source.", "Your head aches.")]")
- if(3, 4)
- to_chat(M, "[pick("Something is following you.", "You are being watched.", "You hear a whisper in your ear.", "Thumping footsteps slam toward you from nowhere.")]")
- else
- to_chat(M, "[pick("Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows...")]")
- M.AdjustHallucinate(5 SECONDS)
+/datum/symptom/hallucigen/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/carbon/M = A.affected_mob
+ switch(A.stage)
+ if(1, 2)
+ to_chat(M, "[pick("Something appears in your peripheral vision, then winks out.", "You hear a faint whisper with no source.", "Your head aches.")]")
+ if(3, 4)
+ to_chat(M, "[pick("Something is following you.", "You are being watched.", "You hear a whisper in your ear.", "Thumping footsteps slam toward you from nowhere.")]")
+ else
+ to_chat(M, "[pick("Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows...")]")
+ M.AdjustHallucinate(5 SECONDS)
return
diff --git a/code/datums/diseases/advance/symptoms/headache.dm b/code/datums/diseases/advance/symptoms/headache.dm
index 769abc9e987..4f7b0ad932c 100644
--- a/code/datums/diseases/advance/symptoms/headache.dm
+++ b/code/datums/diseases/advance/symptoms/headache.dm
@@ -6,7 +6,7 @@ Headache
Noticable.
Highly resistant.
Increases stage speed.
- Not transmittable.
+ Not transmissibility.
Low Level.
BONUS
@@ -19,15 +19,17 @@ BONUS
/datum/symptom/headache
name = "Headache"
- stealth = -1
- resistance = 4
- stage_speed = 2
+ stealth = 2
+ transmissibility = 3
level = 1
severity = 1
+ chem_treatments = list(
+ "hydrocodone" = list("multiplier" = 0, "timer" = 0),
+ "morphine" = list("multiplier" = 0, "timer" = 0),
+ "sal_acid" = list("multiplier" = 0, "timer" = 0),
+ "tea" = list("multiplier" = 0.5, "timer" = 0))
-/datum/symptom/headache/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- to_chat(M, "[pick("Your head hurts.", "Your head starts pounding.")]")
+/datum/symptom/headache/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ to_chat(M, "[pick("Your head hurts.", "Your head starts pounding.")]")
return
diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm
index c52c7df54b6..d3cb4f43ae9 100644
--- a/code/datums/diseases/advance/symptoms/heal.dm
+++ b/code/datums/diseases/advance/symptoms/heal.dm
@@ -21,21 +21,22 @@ Bonus
stealth = 1
resistance = -4
stage_speed = -4
- transmittable = -4
+ transmissibility = -4
level = 6
+ chem_treatments = list(
+ "frostoil" = list("multiplier" = 0.5, "timer" = 0))
+ activation_prob = SYMPTOM_ACTIVATION_PROB * 10
-/datum/symptom/heal/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB * 10))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(4, 5)
- Heal(M, A)
+/datum/symptom/heal/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.stage)
+ if(4, 5)
+ Heal(M, A, unmitigated)
return
-/datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A)
+/datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A, unmitigated)
var/get_damage = (sqrtor0(20+A.totalStageSpeed())*(1+rand()))
- M.adjustToxLoss(-get_damage)
+ M.adjustToxLoss(-get_damage * unmitigated)
return 1
/*
@@ -55,6 +56,7 @@ Bonus
//////////////////////////////////////
*/
+/*
/datum/symptom/heal/metabolism
name = "Anti-Bodies Metabolism"
@@ -87,6 +89,7 @@ Bonus
M.resistances -= res
to_chat(M, "You feel weaker.")
+*/
/*
//////////////////////////////////////
@@ -110,7 +113,7 @@ Bonus
stealth = 3
resistance = 4
stage_speed = 4
- transmittable = 4
+ transmissibility = 4
level = 3
var/longevity = 30
@@ -146,7 +149,7 @@ Bonus
stealth = -1
resistance = -1
stage_speed = 0
- transmittable = -3
+ transmissibility = -3
level = 5
/datum/symptom/heal/dna/Heal(mob/living/carbon/M, datum/disease/advance/A)
diff --git a/code/datums/diseases/advance/symptoms/itching.dm b/code/datums/diseases/advance/symptoms/itching.dm
index 6d62a443210..4d12932eeea 100644
--- a/code/datums/diseases/advance/symptoms/itching.dm
+++ b/code/datums/diseases/advance/symptoms/itching.dm
@@ -6,7 +6,7 @@ Itching
Not noticable or unnoticable.
Resistant.
Increases stage speed.
- Little transmittable.
+ Little transmissibility.
Low Level.
BONUS
@@ -19,15 +19,16 @@ BONUS
/datum/symptom/itching
name = "Itching"
- resistance = 3
+ stealth = 2
+ resistance = -1
stage_speed = 3
- transmittable = 1
+ transmissibility = 1
level = 1
severity = 1
+ chem_treatments = list(
+ "silver_sulfadiazine" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/itching/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- to_chat(M, "Your [pick("back", "arm", "leg", "elbow", "head")] itches.")
+/datum/symptom/itching/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ to_chat(M, "Your [pick("back", "arm", "leg", "elbow", "head")] itches.")
return
diff --git a/code/datums/diseases/advance/symptoms/oxygen.dm b/code/datums/diseases/advance/symptoms/oxygen.dm
index fbe43efe554..3e628d6eaab 100644
--- a/code/datums/diseases/advance/symptoms/oxygen.dm
+++ b/code/datums/diseases/advance/symptoms/oxygen.dm
@@ -21,18 +21,18 @@ Bonus
stealth = 1
resistance = -3
stage_speed = -3
- transmittable = -4
+ transmissibility = -4
level = 6
+ chem_treatments = list(
+ "cyanide" = list("multiplier" = 0, "timer" = 0))
+ activation_prob = SYMPTOM_ACTIVATION_PROB * 5
-/datum/symptom/oxygen/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB * 5))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(4, 5)
- if(M.reagents.get_reagent_amount("salbutamol") < 20)
- M.reagents.add_reagent("salbutamol", 20)
- else
- if(prob(SYMPTOM_ACTIVATION_PROB * 5))
- to_chat(M, "[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]")
+/datum/symptom/oxygen/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.stage)
+ if(4, 5)
+ if(M.reagents.get_reagent_amount("salbutamol") < 20)
+ M.reagents.add_reagent("salbutamol", 20)
+ else
+ to_chat(M, "[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]")
return
diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm
index 0945ce9f5d1..42f88702263 100644
--- a/code/datums/diseases/advance/symptoms/sensory.dm
+++ b/code/datums/diseases/advance/symptoms/sensory.dm
@@ -20,45 +20,43 @@ Bonus
stealth = -1
resistance = -4
stage_speed = -4
- transmittable = -3
+ transmissibility = -3
level = 5
+ activation_prob = SYMPTOM_ACTIVATION_PROB * 3
-/datum/symptom/mind_restoration/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB * 3))
- var/mob/living/M = A.affected_mob
- var/datum/reagents/RD = M.reagents
+/datum/symptom/mind_restoration/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ var/datum/reagents/RD = M.reagents
- if(A.stage >= 3)
- M.AdjustSlur(-4 SECONDS)
- M.AdjustDrunk(-8 SECONDS)
- M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3)
- if(A.stage >= 4)
- M.AdjustDrowsy(-4 SECONDS)
- if(RD.has_reagent("lsd"))
- RD.remove_reagent("lsd", 5)
- if(RD.has_reagent("histamine"))
- RD.remove_reagent("histamine", 5)
- M.AdjustHallucinate(-10 SECONDS)
- if(A.stage >= 5)
- RD.check_and_add("mannitol", 10, 10)
+ if(A.stage >= 3)
+ M.AdjustSlur(-4 SECONDS)
+ M.AdjustDrunk(-8 SECONDS)
+ M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3)
+ if(A.stage >= 4)
+ M.AdjustDrowsy(-4 SECONDS)
+ if(RD.has_reagent("lsd"))
+ RD.remove_reagent("lsd", 5)
+ if(RD.has_reagent("histamine"))
+ RD.remove_reagent("histamine", 5)
+ M.AdjustHallucinate(-10 SECONDS)
+ if(A.stage >= 5)
+ RD.check_and_add("mannitol", 10, 10)
/datum/symptom/sensory_restoration
name = "Sensory Restoration"
stealth = -1
resistance = -3
stage_speed = -2
- transmittable = -4
+ transmissibility = -4
level = 4
+ activation_prob = SYMPTOM_ACTIVATION_PROB * 5
-/datum/symptom/sensory_restoration/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB * 5))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(4, 5)
- if(M.reagents.get_reagent_amount("oculine") < 20)
- M.reagents.add_reagent("oculine", 20)
- else
- if(prob(SYMPTOM_ACTIVATION_PROB * 5))
- to_chat(M, "[pick("Your eyes feel great.","You feel like your eyes can focus more clearly.", "You don't feel the need to blink.","Your ears feel great.","Your hearing feels more acute.")]")
+/datum/symptom/sensory_restoration/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.stage)
+ if(4, 5)
+ if(M.reagents.get_reagent_amount("oculine") < 20)
+ M.reagents.add_reagent("oculine", 20)
+ else
+ if(prob(SYMPTOM_ACTIVATION_PROB * 5))
+ to_chat(M, "[pick("Your eyes feel great.","You feel like your eyes can focus more clearly.", "You don't feel the need to blink.","Your ears feel great.","Your hearing feels more acute.")]")
diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm
index 917ccbf14f6..7d3dabb5d8e 100644
--- a/code/datums/diseases/advance/symptoms/shedding.dm
+++ b/code/datums/diseases/advance/symptoms/shedding.dm
@@ -5,7 +5,7 @@ Alopecia
Noticable.
Decreases resistance slightly.
Reduces stage speed slightly.
- Transmittable.
+ transmissibility.
Intense Level.
BONUS
@@ -19,15 +19,11 @@ BONUS
name = "Alopecia"
stealth = -1
resistance = -1
- stage_speed = -1
- transmittable = 2
+ transmissibility = 2
level = 4
severity = 1
-/datum/symptom/shedding/Activate(datum/disease/advance/A)
- ..()
- if(!prob(SYMPTOM_ACTIVATION_PROB))
- return
+/datum/symptom/shedding/symptom_act(datum/disease/advance/A, unmitigated)
if(!ishuman(A.affected_mob))
return
var/mob/living/carbon/human/H = A.affected_mob
diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm
index e0cb6a9b563..e33b35d735a 100644
--- a/code/datums/diseases/advance/symptoms/shivering.dm
+++ b/code/datums/diseases/advance/symptoms/shivering.dm
@@ -6,7 +6,7 @@ Shivering
No change to hidden.
Increases resistance.
Increases stage speed.
- Little transmittable.
+ Little transmissibility.
Low level.
Bonus
@@ -18,19 +18,18 @@ Bonus
/datum/symptom/shivering
name = "Shivering"
- resistance = 2
+ stealth = 1
stage_speed = 2
- transmittable = 2
+ transmissibility = 3
level = 2
severity = 2
-/datum/symptom/shivering/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/carbon/M = A.affected_mob
- to_chat(M, "[pick("You feel cold.", "You start shivering.")]")
- if(M.bodytemperature > BODYTEMP_COLD_DAMAGE_LIMIT)
- Chill(M, A)
+/datum/symptom/shivering/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/carbon/M = A.affected_mob
+ to_chat(M, "[pick("You feel cold.", "You start shivering.")]")
+ M.emote("shiver")
+ if(M.bodytemperature > BODYTEMP_COLD_DAMAGE_LIMIT)
+ Chill(M, A)
return
/datum/symptom/shivering/proc/Chill(mob/living/M, datum/disease/advance/A)
diff --git a/code/datums/diseases/advance/symptoms/skin.dm b/code/datums/diseases/advance/symptoms/skin.dm
index b5c79f7ff4c..e736af707ea 100644
--- a/code/datums/diseases/advance/symptoms/skin.dm
+++ b/code/datums/diseases/advance/symptoms/skin.dm
@@ -18,25 +18,24 @@ BONUS
name = "Vitiligo"
stealth = -3
- resistance = -1
- stage_speed = -1
- transmittable = -2
+ stage_speed = 1
+ transmissibility = 2
level = 4
severity = 1
+ chem_treatments = list(
+ "synthflesh" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/vitiligo/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- if(H.s_tone == 85)
- return
- switch(A.stage)
- if(5)
- H.change_skin_tone(85, TRUE)
- else
- H.visible_message("[H] looks a bit pale...", "Your skin suddenly appears lighter...")
+/datum/symptom/vitiligo/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(H.s_tone == 85)
+ return
+ switch(A.stage)
+ if(5)
+ H.change_skin_tone(85, TRUE)
+ else
+ H.visible_message("[H] looks a bit pale...", "Your skin suddenly appears lighter...")
return
@@ -63,22 +62,22 @@ BONUS
stealth = -3
resistance = -1
stage_speed = -1
- transmittable = -2
+ transmissibility = -2
level = 4
severity = 1
+ chem_treatments = list(
+ "synthflesh" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/revitiligo/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- if(H.s_tone == -85)
- return
- switch(A.stage)
- if(5)
- H.change_skin_tone(-85, TRUE)
- else
- H.visible_message("[H] looks a bit dark...", "Your skin suddenly appears darker...")
+/datum/symptom/revitiligo/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(H.s_tone == -85)
+ return
+ switch(A.stage)
+ if(5)
+ H.change_skin_tone(-85, TRUE)
+ else
+ H.visible_message("[H] looks a bit dark...", "Your skin suddenly appears darker...")
return
diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm
index 8564360fa94..97e7684538d 100644
--- a/code/datums/diseases/advance/symptoms/sneeze.dm
+++ b/code/datums/diseases/advance/symptoms/sneeze.dm
@@ -6,11 +6,11 @@ Sneezing
Very Noticable.
Increases resistance.
Doesn't increase stage speed.
- Very transmittable.
+ Very transmissibility.
Low Level.
Bonus
- Forces a spread type of AIRBORNE
+ Forces a spread type of SPREAD_AIRBORNE
with extra range!
//////////////////////////////////////
@@ -20,19 +20,19 @@ Bonus
name = "Sneezing"
stealth = -2
- resistance = 3
- transmittable = 4
+ stage_speed = 2
+ transmissibility = 5
level = 1
severity = 1
+ chem_treatments = list(
+ "salbutamol" = list("multiplier" = 0, "timer" = 0),
+ "perfluorodecalin" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/sneeze/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1, 2, 3)
- M.emote("sniff")
- else
- M.emote("sneeze")
- A.spread(5)
+/datum/symptom/sneeze/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(prob(A.progress + 20))
+ M.emote("sneeze")
+ A.spread(5 * unmitigated)
+ else
+ M.emote("sniff")
return
diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm
index 454f71fc8bf..1c9c5fea8ac 100644
--- a/code/datums/diseases/advance/symptoms/symptoms.dm
+++ b/code/datums/diseases/advance/symptoms/symptoms.dm
@@ -8,13 +8,20 @@ GLOBAL_LIST_INIT(list_symptoms, subtypesof(/datum/symptom))
var/stealth = 0
var/resistance = 0
var/stage_speed = 0
- var/transmittable = 0
- // The type level of the symptom. Higher is harder to generate.
+ var/transmissibility = 0
+ /// The type level of the symptom. Higher is harder to generate.
var/level = 0
- // The severity level of the symptom. Higher is more dangerous.
+ /// The severity level of the symptom. Higher is more dangerous.
var/severity = 0
- // The hash tag for our diseases, we will add it up with our other symptoms to get a unique id! ID MUST BE UNIQUE!!!
+ /// The hash tag for our diseases, we will add it up with our other symptoms to get a unique id! ID MUST BE UNIQUE!!!
var/id = ""
+ /// Asoc list of treatment reagents to multiplier and timer. Multiplier multiplies the frequency and strength of the symptom
+ var/list/chem_treatments = list()
+ /// Amount of treatment reagents the symptom will consume
+ var/purge_amount = 0.4
+ /// How likely the symptom is to activate each process cycle
+ var/activation_prob = SYMPTOM_ACTIVATION_PROB
+
/datum/symptom/New()
var/list/S = GLOB.list_symptoms
@@ -32,6 +39,46 @@ GLOBAL_LIST_INIT(list_symptoms, subtypesof(/datum/symptom))
/datum/symptom/proc/End(datum/disease/advance/A)
return
+/// Checks the conditions for symptom activation
/datum/symptom/proc/Activate(datum/disease/advance/A)
+ var/unmitigated = check_treatment(A)
+ if(prob(unmitigated * activation_prob))
+ symptom_act(A, unmitigated)
return
+/// Applies the symptom effects
+/datum/symptom/proc/symptom_act(datum/disease/advance/A, unmitigated)
+ return
+
+/// Checks all forms of treatment and
+/datum/symptom/proc/check_treatment(datum/disease/advance/A)
+ . = 1
+ . *= check_chem_treatment(A)
+ . *= check_phys_treatment(A)
+ post_treatment(A, .)
+
+/// Actions that are taken after the treatment check like reverting or lessening effects.
+/datum/symptom/proc/post_treatment(datum/disease/advance/A, unmitigated)
+ return
+
+/// Default behaviour for treatment chems. Mitigate the symptom for a while after being consumed.
+/datum/symptom/proc/check_chem_treatment(datum/disease/advance/A)
+ . = 1
+ // Make an assoc id to volume list we can easily search through and use
+ var/list/mob_reagents = list()
+ for(var/datum/reagent/chem in A.affected_mob.reagents.reagent_list)
+ mob_reagents += list("[chem.id]" = chem.volume)
+ // Go over each treatment and apply its mitigation if it still has timer. increase its timer if present in the patient
+ for(var/treatment in chem_treatments)
+ if(chem_treatments[treatment]["timer"] >= 1)
+ . *= chem_treatments[treatment]["multiplier"]
+ chem_treatments[treatment]["timer"]--
+ if(treatment in mob_reagents)
+ // Consume as much as we need but no more than we have
+ var/consumption_mod = min(mob_reagents[treatment] / purge_amount, (VIRUS_MAX_TREATMENT_TIMER - chem_treatments[treatment]["timer"]) / VIRUS_TREATMENT_TIMER_MOD, 1)
+ A.affected_mob.reagents.remove_reagent(treatment, purge_amount * consumption_mod)
+ // Add to timer according to the amount consumed
+ chem_treatments[treatment]["timer"] += VIRUS_TREATMENT_TIMER_MOD * consumption_mod
+
+/datum/symptom/proc/check_phys_treatment(datum/disease/advance/A)
+ return 1
diff --git a/code/datums/diseases/advance/symptoms/viral.dm b/code/datums/diseases/advance/symptoms/viral.dm
index a4ddc9d5f86..95580b0f5d9 100644
--- a/code/datums/diseases/advance/symptoms/viral.dm
+++ b/code/datums/diseases/advance/symptoms/viral.dm
@@ -20,15 +20,13 @@ BONUS
stage_speed = -3
level = 3
-/datum/symptom/viraladaptation/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1)
- to_chat(M, "You feel off, but no different from before.")
- if(5)
- to_chat(M, "You feel better, but nothing interesting happens.")
+/datum/symptom/viraladaptation/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.stage)
+ if(1)
+ to_chat(M, "You feel off, but no different from before.")
+ if(5)
+ to_chat(M, "You feel better, but nothing interesting happens.")
/*
//////////////////////////////////////
@@ -47,18 +45,24 @@ BONUS
*/
/datum/symptom/viralevolution
name = "Viral evolutionary acceleration"
- stealth = -2
- resistance = -3
+ stealth = -4
stage_speed = 5
- transmittable = 3
+ transmissibility = 3
level = 3
+ var/static/list/possible_blocks
+
+/datum/symptom/viralevolution/Start(datum/disease/advance/A)
+ . = ..()
+ A.evolution_chance *= 1.5
+ possible_blocks = list(GLOB.hornsblock, GLOB.loudblock, GLOB.comicblock, GLOB.swedeblock, GLOB.chavblock, GLOB.nervousblock, GLOB.lispblock)
+
+/datum/symptom/viralevolution/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(prob(A.progress * 2))
+ // randomly set the value of a minor disability block
+ to_chat(M, "You feel like something is changing")
+ A.affected_mob.dna.SetSEValue(pick(possible_blocks), rand(0, 4095))
+ domutcheck(A.affected_mob)
+ else
+ to_chat(M, "You feel a weird")
-/datum/symptom/viralevolution/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1)
- to_chat(M, "You feel better, but no different from before.")
- if(5)
- to_chat(M, "You feel off, but nothing interesting happens.")
diff --git a/code/datums/diseases/advance/symptoms/vision.dm b/code/datums/diseases/advance/symptoms/vision.dm
index 7fe551f0f02..76b1f75c447 100644
--- a/code/datums/diseases/advance/symptoms/vision.dm
+++ b/code/datums/diseases/advance/symptoms/vision.dm
@@ -18,34 +18,35 @@ Bonus
/datum/symptom/visionloss
name = "Hyphema"
- stealth = -1
- resistance = -4
- stage_speed = -4
- transmittable = -3
+ stealth = 2
+ resistance = 1
+ stage_speed = -1
+ transmissibility = -4
level = 5
severity = 4
+ chem_treatments = list(
+ "oculine" = list("multiplier" = 0, "timer" = 0)
+ )
-/datum/symptom/visionloss/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/carbon/M = A.affected_mob
- var/obj/item/organ/internal/eyes/eyes = M.get_int_organ(/obj/item/organ/internal/eyes)
- if(!eyes) //NO EYES, NO PROBLEM! Rip out your eyes today to prevent future blindness!
- return
- switch(A.stage)
- if(1, 2)
- to_chat(M, "Your eyes itch.")
- if(3, 4)
- to_chat(M, "Your eyes burn!")
- M.EyeBlurry(40 SECONDS)
- eyes.receive_damage(1)
- else
- to_chat(M, "Your eyes burn horrificly!")
- M.EyeBlurry(60 SECONDS)
- eyes.receive_damage(5)
- if(eyes.damage >= 10)
- M.become_nearsighted(EYE_DAMAGE)
- if(prob(eyes.damage - 10 + 1))
- if(!M.AmountBlinded())
- to_chat(M, "You go blind!")
- eyes.receive_damage(eyes.max_damage)
+/datum/symptom/visionloss/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/carbon/M = A.affected_mob
+ var/obj/item/organ/internal/eyes/eyes = M.get_int_organ(/obj/item/organ/internal/eyes)
+ if(!eyes) //NO EYES, NO PROBLEM! Rip out your eyes today to prevent future blindness!
+ return
+ switch(A.stage)
+ if(1, 2)
+ to_chat(M, "Your eyes itch.")
+ if(3, 4)
+ to_chat(M, "Your eyes burn!")
+ M.EyeBlurry(40 SECONDS * unmitigated)
+ eyes.receive_damage(1 * unmitigated)
+ else
+ to_chat(M, "Your eyes burn horrificly!")
+ M.EyeBlurry(60 SECONDS * unmitigated)
+ eyes.receive_damage(5 * unmitigated)
+ if(eyes.damage >= 10)
+ M.become_nearsighted(EYE_DAMAGE)
+ if(prob(eyes.damage - 10 + 1) * unmitigated)
+ if(!M.AmountBlinded())
+ to_chat(M, "You go blind!")
+ eyes.receive_damage(eyes.max_damage)
diff --git a/code/datums/diseases/advance/symptoms/voice_change.dm b/code/datums/diseases/advance/symptoms/voice_change.dm
index 8ba3ed64008..af173b71960 100644
--- a/code/datums/diseases/advance/symptoms/voice_change.dm
+++ b/code/datums/diseases/advance/symptoms/voice_change.dm
@@ -6,7 +6,7 @@ Voice Change
Very Very noticable.
Lowers resistance considerably.
Decreases stage speed.
- Reduced transmittable.
+ Reduced transmissibility.
Fatal Level.
Bonus
@@ -18,28 +18,34 @@ Bonus
/datum/symptom/voice_change
name = "Voice Change"
- stealth = -2
+ stealth = 2
resistance = -3
- stage_speed = -3
- transmittable = -1
+ stage_speed = 3
+ transmissibility = -2
level = 6
severity = 2
+ chem_treatments = list(
+ "honey" = list("multiplier" = 0, "timer" = 0),
+ "lemonjuice" = list("multiplier" = 0, "timer" = 0),
+ "orangejuice" = list("multiplier" = 0, "timer" = 0),
+ "tea" = list("multiplier" = 0, "timer" = 0),
+ )
-/datum/symptom/voice_change/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
-
- var/mob/living/carbon/M = A.affected_mob
- switch(A.stage)
- if(1, 2, 3, 4)
- to_chat(M, "[pick("Your throat hurts.", "You clear your throat.")]")
- else
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- H.SetSpecialVoice(H.dna.species.get_random_name(H.gender))
-
+/datum/symptom/voice_change/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/carbon/M = A.affected_mob
+ switch(A.stage)
+ if(1, 2, 3, 4)
+ to_chat(M, "[pick("Your throat hurts.", "You clear your throat.")]")
+ else
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ H.SetSpecialVoice(H.dna.species.get_random_name(H.gender))
return
+/datum/symptom/voice_change/post_treatment(datum/disease/advance/A, unmitigated)
+ if(!unmitigated)
+ End()
+
/datum/symptom/voice_change/End(datum/disease/advance/A)
..()
if(ishuman(A.affected_mob))
diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm
index 650f7bb380f..e69027adfb6 100644
--- a/code/datums/diseases/advance/symptoms/vomit.dm
+++ b/code/datums/diseases/advance/symptoms/vomit.dm
@@ -6,7 +6,7 @@ Vomiting
Very Very Noticable.
Decreases resistance.
Doesn't increase stage speed.
- Little transmittable.
+ Little transmissibility.
Medium Level.
Bonus
@@ -22,26 +22,30 @@ Bonus
/datum/symptom/vomit
name = "Vomiting"
- stealth = -2
- resistance = -1
- transmittable = 1
+ stealth = -3
+ stage_speed = -2
+ transmissibility = 1
level = 3
- severity = 4
+ severity = 3
+ chem_treatments = list(
+ "calomel" = list("multiplier" = 0, "timer" = 0),
+ "charcoal" = list("multiplier" = 0, "timer" = 0),
+ "pen_acid" = list("multiplier" = 0, "timer" = 0))
-/datum/symptom/vomit/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB / 2))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1, 2, 3, 4)
+/datum/symptom/vomit/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(A.progress > 20 && prob(A.progress))
+ Vomit(M, A.progress)
+ else
+ switch(A.progress)
+ if(0 to 59)
to_chat(M, "[pick("You feel nauseous.", "You feel like you're going to throw up!")]")
- else
- Vomit(M)
-
+ if(60 to INFINITY)
+ to_chat(M, "[pick("You feel extremely nauseous!", "You barely manage to not throw up!")]")
return
-/datum/symptom/vomit/proc/Vomit(mob/living/carbon/M)
- M.vomit(20)
+/datum/symptom/vomit/proc/Vomit(mob/living/carbon/M, progress)
+ M.vomit(20 * (progress / 100))
/*
//////////////////////////////////////
@@ -51,7 +55,7 @@ Vomiting Blood
Very Very Noticable.
Decreases resistance.
Decreases stage speed.
- Little transmittable.
+ Little transmissibility.
Intense level.
Bonus
@@ -66,12 +70,14 @@ Bonus
/datum/symptom/vomit/blood
name = "Blood Vomiting"
- stage_speed = -1
+ stealth = -2
+ resistance = 2
+ stage_speed = -3
level = 4
severity = 5
-/datum/symptom/vomit/blood/Vomit(mob/living/carbon/M)
- M.vomit(0, 1)
+/datum/symptom/vomit/blood/Vomit(mob/living/carbon/M, progress)
+ M.vomit(35 * ((progress / 100) ** 2), TRUE, TRUE, distance = 1)
/*
@@ -82,7 +88,7 @@ Projectile Vomiting
Very Very Noticable.
Decreases resistance.
Doesn't increase stage speed.
- Little transmittable.
+ Little transmissibility.
Medium Level.
Bonus
@@ -95,7 +101,10 @@ Bonus
/datum/symptom/vomit/projectile
name = "Projectile Vomiting"
+ stealth = -2
+ resistance = 1
level = 4
+ severity = 4
-/datum/symptom/vomit/projectile/Vomit(mob/living/carbon/M)
- M.vomit(6,0,FALSE,5,1)
+/datum/symptom/vomit/projectile/Vomit(mob/living/carbon/M, progress)
+ M.vomit(10 * ((progress / 100) ** 2), FALSE, TRUE, 6, 1)
diff --git a/code/datums/diseases/advance/symptoms/weakness.dm b/code/datums/diseases/advance/symptoms/weakness.dm
index 6ae1028594a..7dc93726d39 100644
--- a/code/datums/diseases/advance/symptoms/weakness.dm
+++ b/code/datums/diseases/advance/symptoms/weakness.dm
@@ -18,27 +18,30 @@ Bonus
/datum/symptom/weakness
name = "Weakness"
- stealth = -1
- resistance = -1
+ stealth = -2
+ resistance = 1
stage_speed = -2
- transmittable = -2
+ transmissibility = -1
level = 3
- severity = 3
+ severity = 4
+ chem_treatments = list(
+ "synaptazine" = list("multiplier" = 0, "timer" = 0),
+ "ephedrine" = list("multiplier" = 0, "timer" = 0),
+ "coffee" = list("multiplier" = 0.6, "timer" = 0),
+ "tea" = list("multiplier" = 0.6, "timer" = 0))
-/datum/symptom/weakness/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1, 2)
- to_chat(M, "[pick("You feel weak.", "You feel lazy.")]")
- if(3, 4)
- to_chat(M, "[pick("You feel very frail.", "You think you might faint.")]")
- M.adjustStaminaLoss(15)
- else
- to_chat(M, "[pick("You feel tremendously weak!", "Your body trembles as exhaustion creeps over you.")]")
- M.adjustStaminaLoss(30)
- if(M.getStaminaLoss() > 60 && !M.stat)
- M.visible_message("[M] faints!", "You swoon and faint...")
- M.AdjustSleeping(10 SECONDS)
+/datum/symptom/weakness/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ switch(A.stage)
+ if(1, 2)
+ to_chat(M, "[pick("You feel weak.", "You feel lazy.")]")
+ if(3, 4)
+ to_chat(M, "[pick("You feel very frail.", "You think you might faint.")]")
+ M.adjustStaminaLoss(15 * unmitigated)
+ else
+ to_chat(M, "[pick("You feel tremendously weak!", "Your body trembles as exhaustion creeps over you.")]")
+ M.adjustStaminaLoss(30 * unmitigated)
+ if(M.getStaminaLoss() > 60 && !M.stat)
+ M.visible_message("[M] faints!", "You swoon and faint...")
+ M.AdjustSleeping(10 SECONDS * unmitigated)
return
diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm
index 732e56b69ed..fcb9fbf2366 100644
--- a/code/datums/diseases/advance/symptoms/weight.dm
+++ b/code/datums/diseases/advance/symptoms/weight.dm
@@ -6,7 +6,7 @@ Weight Loss
Very Very Noticable.
Decreases resistance.
Decreases stage speed.
- Reduced Transmittable.
+ Reduced transmissibility.
High level.
Bonus
@@ -19,21 +19,26 @@ Bonus
/datum/symptom/weight_loss
name = "Weight Loss"
- stealth = -3
- resistance = -2
+ stealth = -2
+ resistance = 1
stage_speed = -2
- transmittable = -2
+ transmissibility = -3
level = 3
- severity = 1
+ severity = 4
+ chem_treatments = list(
+ "frostoil" = list("multiplier" = 0, "timer" = 0),
+ "protein" = list("multiplier" = 0.8, "timer" = 0),
+ "sugar" = list("multiplier" = 0.9, "timer" = 0),
+ "plantmatter" = list("multiplier" = 0.9, "timer" = 0),
+ "vitamin" = list("multiplier" = 0.8, "timer" = 0)
+ )
+
+/datum/symptom/weight_loss/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(prob(A.progress))
+ to_chat(M, "[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]")
+ M.overeatduration = max(M.overeatduration - A.progress * unmitigated, 0)
+ M.adjust_nutrition(-A.progress * unmitigated)
+ else
+ to_chat(M, "[pick("You feel hungry.", "You crave for food.")]")
-/datum/symptom/weight_loss/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB))
- var/mob/living/M = A.affected_mob
- switch(A.stage)
- if(1, 2, 3, 4)
- to_chat(M, "[pick("You feel hungry.", "You crave for food.")]")
- else
- to_chat(M, "[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]")
- M.overeatduration = max(M.overeatduration - 100, 0)
- M.adjust_nutrition(-100)
diff --git a/code/datums/diseases/advance/symptoms/youth.dm b/code/datums/diseases/advance/symptoms/youth.dm
index e95196aa254..425a9483dfb 100644
--- a/code/datums/diseases/advance/symptoms/youth.dm
+++ b/code/datums/diseases/advance/symptoms/youth.dm
@@ -21,35 +21,33 @@ BONUS
stealth = 3
resistance = 4
stage_speed = 4
- transmittable = -4
+ transmissibility = -4
level = 5
+ activation_prob = SYMPTOM_ACTIVATION_PROB * 2
-/datum/symptom/youth/Activate(datum/disease/advance/A)
- ..()
- if(prob(SYMPTOM_ACTIVATION_PROB * 2))
- var/mob/living/M = A.affected_mob
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- switch(A.stage)
- if(1)
- if(H.age > 41)
- H.age = 41
- to_chat(H, "You haven't had this much energy in years!")
- if(2)
- if(H.age > 36)
- H.age = 36
- to_chat(H, "You're suddenly in a good mood.")
- if(3)
- if(H.age > 31)
- H.age = 31
- to_chat(H, "You begin to feel more lithe.")
- if(4)
- if(H.age > 26)
- H.age = 26
- to_chat(H, "You feel reinvigorated.")
- if(5)
- if(H.age > 21)
- H.age = 21
- to_chat(H, "You feel like you can take on the world!")
-
+/datum/symptom/youth/symptom_act(datum/disease/advance/A, unmitigated)
+ var/mob/living/M = A.affected_mob
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ switch(A.stage)
+ if(1)
+ if(H.age > 41)
+ H.age = 41
+ to_chat(H, "You haven't had this much energy in years!")
+ if(2)
+ if(H.age > 36)
+ H.age = 36
+ to_chat(H, "You're suddenly in a good mood.")
+ if(3)
+ if(H.age > 31)
+ H.age = 31
+ to_chat(H, "You begin to feel more lithe.")
+ if(4)
+ if(H.age > 26)
+ H.age = 26
+ to_chat(H, "You feel reinvigorated.")
+ if(5)
+ if(H.age > 21)
+ H.age = 21
+ to_chat(H, "You feel like you can take on the world!")
return
diff --git a/code/datums/diseases/anxiety.dm b/code/datums/diseases/anxiety.dm
index c5c97033116..0b0f4a5b2f9 100644
--- a/code/datums/diseases/anxiety.dm
+++ b/code/datums/diseases/anxiety.dm
@@ -3,13 +3,13 @@
form = "Infection"
max_stages = 4
spread_text = "On contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Ethanol"
cures = list("ethanol")
agent = "Excess Lepidopticides"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
desc = "If left untreated subject will regurgitate butterflies."
- severity = MINOR
+ severity = VIRUS_MINOR
/datum/disease/anxiety/stage_act()
if(!..())
diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm
index 674abaafe2a..502bfa99f9d 100644
--- a/code/datums/diseases/appendicitis.dm
+++ b/code/datums/diseases/appendicitis.dm
@@ -3,14 +3,14 @@
name = "Appendicitis"
max_stages = 3
spread_text = "Non-contagious"
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
cure_text = "Surgery"
agent = "Shitty Appendix"
viable_mobtypes = list(/mob/living/carbon/human)
desc = "If left untreated the subject will become very weak, and may vomit often."
- severity = MINOR
- disease_flags = CAN_CARRY|CAN_RESIST
- visibility_flags = HIDDEN_PANDEMIC
+ severity = VIRUS_MINOR
+ disease_flags = VIRUS_CAN_CARRY|VIRUS_CAN_RESIST
+ visibility_flags = VIRUS_HIDDEN_PANDEMIC
required_organs = list(/obj/item/organ/internal/appendix)
bypasses_immunity = TRUE
virus_heal_resistant = TRUE
diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm
index 348837c8d9f..ef4f0279737 100644
--- a/code/datums/diseases/beesease.dm
+++ b/code/datums/diseases/beesease.dm
@@ -3,13 +3,13 @@
form = "Infection"
max_stages = 4
spread_text = "On contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Sugar"
cures = list("sugar")
agent = "Apidae Infection"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
desc = "If left untreated subject will regurgitate bees."
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
/datum/disease/beesease/stage_act()
if(!..())
diff --git a/code/datums/diseases/berserker.dm b/code/datums/diseases/berserker.dm
index 0a310eeb8d6..0ff6fecdf77 100644
--- a/code/datums/diseases/berserker.dm
+++ b/code/datums/diseases/berserker.dm
@@ -3,15 +3,15 @@
max_stages = 2
stage_prob = 5
spread_text = "Non-contagious"
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
cure_text = "Anti-Psychotics"
cures = list("haloperidol")
agent = "Jagged Crystals"
cure_chance = 10
viable_mobtypes = list(/mob/living/carbon/human)
desc = "Swearing, shouting, attacking nearby crew members uncontrollably."
- severity = BIOHAZARD
- disease_flags = CURABLE
+ severity = VIRUS_BIOHAZARD
+ disease_flags = VIRUS_CURABLE
/datum/disease/berserker/stage_act()
if(!..())
diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm
index ae5c5a23782..5f5bd15f458 100644
--- a/code/datums/diseases/brainrot.dm
+++ b/code/datums/diseases/brainrot.dm
@@ -2,7 +2,7 @@
name = "Brainrot"
max_stages = 4
spread_text = "On contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Mannitol"
cures = list("mannitol")
agent = "Cryptococcus Cosmosis"
@@ -10,7 +10,7 @@
cure_chance = 15
desc = "This disease destroys the braincells, causing brain fever, brain necrosis and general intoxication."
required_organs = list(/obj/item/organ/internal/brain)
- severity = HARMFUL
+ severity = VIRUS_HARMFUL
/datum/disease/brainrot/stage_act()
if(!..())
diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm
index f2ddacc0dce..7363cc96725 100644
--- a/code/datums/diseases/cold.dm
+++ b/code/datums/diseases/cold.dm
@@ -8,7 +8,7 @@
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
permeability_mod = 0.5
desc = "If left untreated the subject will contract the flu."
- severity = MINOR
+ severity = VIRUS_MINOR
/datum/disease/cold/stage_act()
if(!..())
diff --git a/code/datums/diseases/cold9.dm b/code/datums/diseases/cold9.dm
index 584b284fd52..8b31fc36d6d 100644
--- a/code/datums/diseases/cold9.dm
+++ b/code/datums/diseases/cold9.dm
@@ -3,13 +3,13 @@
medical_name = "ICE9 Cold"
max_stages = 3
spread_text = "On contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Spaceacillin"
cures = list("spaceacillin")
agent = "ICE9-rhinovirus"
viable_mobtypes = list(/mob/living/carbon/human)
desc = "If left untreated the subject will slow, as if partly frozen."
- severity = HARMFUL
+ severity = VIRUS_HARMFUL
/datum/disease/cold9/stage_act()
if(!..())
diff --git a/code/datums/diseases/critical.dm b/code/datums/diseases/critical.dm
index 2ec4c68e7fe..d582fd35730 100644
--- a/code/datums/diseases/critical.dm
+++ b/code/datums/diseases/critical.dm
@@ -1,11 +1,11 @@
/datum/disease/critical
form = "Medical Emergency"
max_stages = 3
- spread_flags = SPECIAL
+ spread_flags = SPREAD_SPECIAL
viable_mobtypes = list(/mob/living/carbon/human)
- severity = MINOR
- disease_flags = CURABLE
- visibility_flags = HIDDEN_PANDEMIC
+ severity = VIRUS_MINOR
+ disease_flags = VIRUS_CURABLE
+ visibility_flags = VIRUS_HIDDEN_PANDEMIC
bypasses_immunity = TRUE
virus_heal_resistant = TRUE
@@ -87,7 +87,7 @@
cures = list("atropine", "epinephrine", "heparin", "syndicate_nanites", "stimulative_agent")
cure_chance = 10
stage_prob = 5
- severity = HARMFUL
+ severity = VIRUS_HARMFUL
required_organs = list(ORGAN_DATUM_HEART)
/datum/disease/critical/heart_failure/stage_act()
diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm
index 1981a40967e..e9efece8bb6 100644
--- a/code/datums/diseases/fake_gbs.dm
+++ b/code/datums/diseases/fake_gbs.dm
@@ -2,13 +2,13 @@
name = "GBS"
max_stages = 5
spread_text = "On contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Diphenhydramine & Sulfur"
cures = list("diphenhydramine","sulfur")
agent = "Gravitokinetic Bipotential SADS-"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
desc = "If left untreated death will occur."
- severity = BIOHAZARD // Mimicking real GBS
+ severity = VIRUS_BIOHAZARD // Mimicking real GBS
/datum/disease/fake_gbs/stage_act()
if(!..())
diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm
index 15540321fb7..a56b18a4dbe 100644
--- a/code/datums/diseases/flu.dm
+++ b/code/datums/diseases/flu.dm
@@ -9,7 +9,7 @@
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
permeability_mod = 0.75
desc = "If left untreated the subject will feel quite unwell."
- severity = MINOR
+ severity = VIRUS_MINOR
/datum/disease/flu/stage_act()
if(!..())
diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm
index 6245d9bce0b..17c1a1604df 100644
--- a/code/datums/diseases/fluspanish.dm
+++ b/code/datums/diseases/fluspanish.dm
@@ -9,7 +9,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
desc = "If left untreated the subject will burn to death for being a heretic."
- severity = HARMFUL
+ severity = VIRUS_HARMFUL
/datum/disease/fluspanish/stage_act()
if(!..())
diff --git a/code/datums/diseases/food_poisoning.dm b/code/datums/diseases/food_poisoning.dm
index 30ba51330d9..c28bc006343 100644
--- a/code/datums/diseases/food_poisoning.dm
+++ b/code/datums/diseases/food_poisoning.dm
@@ -3,15 +3,15 @@
max_stages = 3
stage_prob = 5
spread_text = "Non-contagious"
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
cure_text = "Sleep"
agent = "Salmonella"
cures = list("chicken_soup")
cure_chance = 10
viable_mobtypes = list(/mob/living/carbon/human)
desc = "Nausea, sickness, and vomitting."
- severity = MINOR
- disease_flags = CURABLE
+ severity = VIRUS_MINOR
+ disease_flags = VIRUS_CURABLE
virus_heal_resistant = TRUE
/datum/disease/food_poisoning/stage_act()
diff --git a/code/datums/diseases/gbs.dm b/code/datums/diseases/gbs.dm
index 3044da57aa0..33c0984a06a 100644
--- a/code/datums/diseases/gbs.dm
+++ b/code/datums/diseases/gbs.dm
@@ -2,13 +2,13 @@
name = "GBS"
max_stages = 5
spread_text = "On contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Diphenhydramine & Sulfur"
cures = list("diphenhydramine","sulfur")
cure_chance = 15 // Higher chance to cure, since two reagents are required
agent = "Gravitokinetic Bipotential SADS+"
viable_mobtypes = list(/mob/living/carbon/human)
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
/datum/disease/gbs/stage_act()
if(!..())
@@ -41,9 +41,9 @@
name = "Non-Contagious GBS"
stage_prob = 5
spread_text = "Non-contagious"
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
cure_text = "Cryoxadone"
cures = list("cryoxadone")
cure_chance = 10
agent = "gibbis"
- disease_flags = CURABLE
+ disease_flags = VIRUS_CURABLE
diff --git a/code/datums/diseases/kingstons.dm b/code/datums/diseases/kingstons.dm
index add3612f618..b00912038e1 100644
--- a/code/datums/diseases/kingstons.dm
+++ b/code/datums/diseases/kingstons.dm
@@ -9,7 +9,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
desc = "If left untreated the subject will turn into a feline. In felines it has... OTHER... effects."
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
/datum/disease/kingstons/stage_act()
if(!..())
@@ -59,7 +59,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
desc = "If left untreated the subject will mutate to a different species."
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
var/list/virspecies = list(/datum/species/human, /datum/species/tajaran, /datum/species/unathi,/datum/species/skrell, /datum/species/vulpkanin, /datum/species/diona,
/datum/species/slime, /datum/species/kidan, /datum/species/drask, /datum/species/grey, /datum/species/moth) // No IPCs (not organic), or vox+plasmemes because of air requirements
var/list/virsuffix = list("pox", "rot", "flu", "cough", "-gitis", "cold", "rash", "itch", "decay")
diff --git a/code/datums/diseases/kuru.dm b/code/datums/diseases/kuru.dm
index 8bb5ca3a95b..96dc5d07dfa 100644
--- a/code/datums/diseases/kuru.dm
+++ b/code/datums/diseases/kuru.dm
@@ -4,13 +4,13 @@
max_stages = 4
stage_prob = 5
spread_text = "Non-contagious"
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
cure_text = "Incurable"
agent = "Prions"
viable_mobtypes = list(/mob/living/carbon/human)
desc = "Uncontrollable laughing."
- severity = BIOHAZARD
- disease_flags = CAN_CARRY
+ severity = VIRUS_BIOHAZARD
+ disease_flags = VIRUS_CAN_CARRY
bypasses_immunity = TRUE // Kuru is a prion disorder, not a virus
virus_heal_resistant = TRUE
diff --git a/code/datums/diseases/lycancoughy.dm b/code/datums/diseases/lycancoughy.dm
index 60ff4ad780a..883ef6d6573 100644
--- a/code/datums/diseases/lycancoughy.dm
+++ b/code/datums/diseases/lycancoughy.dm
@@ -3,13 +3,13 @@
form = "Infection"
max_stages = 4
spread_text = "On contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Ethanol"
cures = list("ethanol")
agent = "Excess Snuggles"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
desc = "If left untreated subject will regurgitate... puppies."
- severity = HARMFUL
+ severity = VIRUS_HARMFUL
var/barklimit = 10
var/list/puppy_types = list(/mob/living/simple_animal/pet/dog/corgi/puppy, /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/dog/fox)
var/list/plush_types = list(/obj/item/toy/plushie/orange_fox, /obj/item/toy/plushie/corgi, /obj/item/toy/plushie/robo_corgi, /obj/item/toy/plushie/pink_fox)
diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm
index ddb6782f6db..4a1009e0528 100644
--- a/code/datums/diseases/magnitis.dm
+++ b/code/datums/diseases/magnitis.dm
@@ -8,7 +8,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
desc = "This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field."
- severity = MINOR
+ severity = VIRUS_MINOR
/datum/disease/magnitis/stage_act()
if(!..())
diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm
index dd2c7580924..1a9dc8334b4 100644
--- a/code/datums/diseases/pierrot_throat.dm
+++ b/code/datums/diseases/pierrot_throat.dm
@@ -9,7 +9,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
desc = "If left untreated the subject will probably drive others to insanity and go insane themselves."
- severity = MINOR
+ severity = VIRUS_MINOR
/datum/disease/pierrot_throat/stage_act()
if(!..())
diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm
index e764d037ccc..f5531b6eafc 100644
--- a/code/datums/diseases/retrovirus.dm
+++ b/code/datums/diseases/retrovirus.dm
@@ -2,13 +2,13 @@
name = "Retrovirus"
max_stages = 4
spread_text = "Contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Rest or an injection of mutadone"
cure_chance = 6
agent = ""
viable_mobtypes = list(/mob/living/carbon/human)
desc = "A DNA-altering retrovirus that scrambles the structural and unique enzymes of a host constantly."
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
permeability_mod = 0.4
stage_prob = 2
var/SE
diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm
index 80856f108f3..b8ef0322a2d 100644
--- a/code/datums/diseases/rhumba_beat.dm
+++ b/code/datums/diseases/rhumba_beat.dm
@@ -2,12 +2,12 @@
name = "The Rhumba Beat"
max_stages = 5
spread_text = "On contact"
- spread_flags = CONTACT_GENERAL
+ spread_flags = SPREAD_CONTACT_GENERAL
cure_text = "Chick Chicky Boom!"
cures = list("plasma")
agent = "Unknown"
viable_mobtypes = list(/mob/living/carbon/human)
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
/datum/disease/rhumba_beat/stage_act()
if(!..())
diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index 8ade68def32..242b32d9867 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -2,13 +2,13 @@
name = "Transformation"
max_stages = 5
spread_text = "Acute"
- spread_flags = SPECIAL
+ spread_flags = SPREAD_SPECIAL
cure_text = "A coder's love (theoretical)."
agent = "Shenanigans"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/alien)
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
stage_prob = 10
- disease_flags = CURABLE
+ disease_flags = VIRUS_CURABLE
var/list/stage1 = list("You feel unremarkable.")
var/list/stage2 = list("You feel boring.")
var/list/stage3 = list("You feel utterly plain.")
diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm
index e8f6bb317b5..f8709892d16 100644
--- a/code/datums/diseases/tuberculosis.dm
+++ b/code/datums/diseases/tuberculosis.dm
@@ -10,7 +10,7 @@
cure_chance = 5 // Like hell are you getting out of hell
desc = "A rare highly transmittable virulent virus. Few samples exist, rumoured to be carefully grown and cultured by clandestine bio-weapon specialists. Causes fever, blood vomiting, lung damage, weight loss, and fatigue."
required_organs = list(ORGAN_DATUM_LUNGS)
- severity = HARMFUL
+ severity = VIRUS_HARMFUL
bypasses_immunity = TRUE //Fungal and bacterial in nature; also infects the lungs
/datum/disease/tuberculosis/stage_act()
diff --git a/code/datums/diseases/wizard_diseases.dm b/code/datums/diseases/wizard_diseases.dm
index 48e2e2fc864..39a8bf52610 100644
--- a/code/datums/diseases/wizard_diseases.dm
+++ b/code/datums/diseases/wizard_diseases.dm
@@ -1,39 +1,39 @@
/datum/disease/beesease/wizard_variant
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
/datum/disease/cold9/wizard_variant
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
/datum/disease/fluspanish/wizard_variant
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
/datum/disease/kingstons_advanced/wizard_variant
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
/datum/disease/dna_retrovirus/wizard_variant
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
/datum/disease/tuberculosis/wizard_variant
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
/datum/disease/wizarditis/wizard_variant
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
/datum/disease/anxiety/wizard_variant
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
/datum/disease/grut_gut
name = "Grut Gut"
max_stages = 5
stage_prob = 5
spread_text = "Non-contagious"
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
cure_text = "Pyrotech stabilizing agents"
agent = "Eruca Stomachum"
cures = list("stabilizing_agent")
viable_mobtypes = list(/mob/living/carbon/human)
- desc = "A magic-infused disease that builds up dangerously high pressure bile within the stomach."
- severity = DANGEROUS
+ desc = "A magic-infused disease that builds up VIRUS_DANGEROUSly high pressure bile within the stomach."
+ severity = VIRUS_DANGEROUS
virus_heal_resistant = TRUE
/datum/disease/grut_gut/stage_act()
@@ -98,13 +98,13 @@
max_stages = 5
stage_prob = 5
spread_text = "Non-contagious"
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
cure_text = "Acetaldehyde"
agent = "nasum magicum"
cures = list("acetaldehyde")
viable_mobtypes = list(/mob/living/carbon/human)
desc = "A magic-infused disease that replaces one's nose hairs with tiny wands. Avoid nasal irritants."
- severity = DANGEROUS
+ severity = VIRUS_DANGEROUS
virus_heal_resistant = TRUE
/datum/disease/wand_rot/stage_act()
@@ -165,13 +165,13 @@
max_stages = 5
stage_prob = 5
spread_text = "Non-contagious"
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
cure_text = "liquid dark matter"
agent = "Spatio Ventrem"
cures = list("liquid_dark_matter")
viable_mobtypes = list(/mob/living/carbon/human)
desc = "A magic-infused disease that resides in the gut, converting gastric juices into space-matter."
- severity = DANGEROUS
+ severity = VIRUS_DANGEROUS
virus_heal_resistant = TRUE
/datum/disease/mystic_malaise/stage_act()
diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm
index 2dd23b8734a..11861edc222 100644
--- a/code/datums/diseases/wizarditis.dm
+++ b/code/datums/diseases/wizarditis.dm
@@ -9,7 +9,7 @@
agent = "Rincewindus Vulgaris"
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
- severity = MINOR
+ severity = VIRUS_MINOR
/// A mapping of `num2text(ITEM_SLOT_XYZ)` -> item path
var/list/magic_fashion = list()
diff --git a/code/datums/diseases/zombie_virus.dm b/code/datums/diseases/zombie_virus.dm
index ce080ee0e0f..661fdad1b98 100644
--- a/code/datums/diseases/zombie_virus.dm
+++ b/code/datums/diseases/zombie_virus.dm
@@ -4,14 +4,14 @@
desc = "This virus infects humanoids and drives them insane with a hunger for flesh, along with possessing regenerative abilities."
max_stages = 7
spread_text = "Blood and Saliva"
- spread_flags = BLOOD
+ spread_flags = SPREAD_BLOOD
cure_text = "Anti-plague viral solutions"
cures = list()
agent = ""
viable_mobtypes = list(/mob/living/carbon/human)
- severity = BIOHAZARD
+ severity = VIRUS_BIOHAZARD
allow_dead = TRUE
- disease_flags = CAN_CARRY
+ disease_flags = VIRUS_CAN_CARRY
virus_heal_resistant = TRUE
stage_prob = 100 // It isn't actually 100%, but is instead based on a timer
cure_chance = 80
@@ -180,7 +180,7 @@
return ..()
/datum/disease/zombie/wizard
- spread_flags = NON_CONTAGIOUS
+ spread_flags = SPREAD_NON_CONTAGIOUS
bypasses_immunity = TRUE
spread_text = "Non Contagious"
cure_text = "Anti-magic"
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index fb02c7be254..aeaadbf2803 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -107,7 +107,7 @@
var/datum/disease/D = thing
if(!D.discovered) // Early-stage viruses should not show up on med HUD (though health analywers can still pick them up)
continue
- if((!(D.visibility_flags & HIDDEN_SCANNER)) && (D.severity != NONTHREAT))
+ if((!(D.visibility_flags & VIRUS_HIDDEN_SCANNER)) && (D.severity != VIRUS_NONTHREAT))
return TRUE
return FALSE
diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm
index b169adc13d8..8ed9784337a 100644
--- a/code/game/gamemodes/miniantags/abduction/gland.dm
+++ b/code/game/gamemodes/miniantags/abduction/gland.dm
@@ -194,12 +194,13 @@
to_chat(owner, "You feel sick.")
var/datum/disease/advance/A = random_virus(pick(2, 6), 6)
A.carrier = TRUE
- owner.ForceContractDisease(A)
+ owner.ForceContractDisease(A, TRUE)
/obj/item/organ/internal/heart/gland/viral/proc/random_virus(max_symptoms, max_level)
if(max_symptoms > VIRUS_SYMPTOM_LIMIT)
max_symptoms = VIRUS_SYMPTOM_LIMIT
var/datum/disease/advance/A = new /datum/disease/advance()
+ A.clear_symptoms()
var/list/datum/symptom/possible_symptoms = list()
for(var/symptom in subtypesof(/datum/symptom))
var/datum/symptom/S = symptom
@@ -208,7 +209,7 @@
if(initial(S.level) <= 0) //unobtainable symptoms
continue
possible_symptoms += S
- for(var/i in 1 to max_symptoms)
+ while(length(A.symptoms) < max_symptoms)
var/datum/symptom/chosen_symptom = pick_n_take(possible_symptoms)
if(chosen_symptom)
var/datum/symptom/S = new chosen_symptom
diff --git a/code/game/gamemodes/wizard/magic_tarot.dm b/code/game/gamemodes/wizard/magic_tarot.dm
index 4f3f0795a0f..faa875eccdf 100644
--- a/code/game/gamemodes/wizard/magic_tarot.dm
+++ b/code/game/gamemodes/wizard/magic_tarot.dm
@@ -533,7 +533,7 @@
H.apply_status_effect(STATUS_EFFECT_PANACEA)
for(var/thing in H.viruses)
var/datum/disease/D = thing
- if(D.severity == NONTHREAT)
+ if(D.severity == VIRUS_NONTHREAT)
continue
D.cure()
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 250b77b87c8..b24f21dc4f0 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -251,7 +251,7 @@
var/found_disease = FALSE
for(var/thing in occupant.viruses)
var/datum/disease/D = thing
- if(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC)
+ if(D.visibility_flags & VIRUS_HIDDEN_SCANNER || D.visibility_flags & VIRUS_HIDDEN_PANDEMIC)
continue
if(istype(D, /datum/disease/critical))
continue
@@ -441,7 +441,7 @@
var/found_disease = FALSE
for(var/thing in occupant.viruses)
var/datum/disease/D = thing
- if(D.visibility_flags & HIDDEN_SCANNER || D.visibility_flags & HIDDEN_PANDEMIC)
+ if(D.visibility_flags & VIRUS_HIDDEN_SCANNER || D.visibility_flags & VIRUS_HIDDEN_PANDEMIC)
continue
found_disease = TRUE
break
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index 7806fbbcf0c..f0f58840b73 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -179,12 +179,6 @@
build_path = /obj/machinery/computer/med_data
origin_tech = "programming=2;biotech=2"
-/obj/item/circuitboard/pandemic
- board_name = "PanD.E.M.I.C. 2200"
- icon_state = "medical"
- build_path = /obj/machinery/computer/pandemic
- origin_tech = "programming=2;biotech=2"
-
/obj/item/circuitboard/scan_consolenew
board_name = "DNA Machine"
icon_state = "medical"
diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm
index cabf1c2a342..8585dd29496 100644
--- a/code/game/machinery/dish_drive.dm
+++ b/code/game/machinery/dish_drive.dm
@@ -89,6 +89,7 @@
LAZYADD(dish_drive_contents, I)
visible_message("[src] beams up [I]!")
I.forceMove(src)
+ SEND_SIGNAL(src, COMSIG_ATOM_DISINFECTED)
playsound(src, 'sound/items/pshoom.ogg', 15, TRUE)
flick("synthesizer_beam", src)
else
diff --git a/code/game/machinery/machine_frame.dm b/code/game/machinery/machine_frame.dm
index 7c63e9dcffc..ede3ae65ca4 100644
--- a/code/game/machinery/machine_frame.dm
+++ b/code/game/machinery/machine_frame.dm
@@ -987,6 +987,14 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/cable_coil = 1,
/obj/item/stack/sheet/glass = 4)
+/obj/item/circuitboard/pandemic
+ board_name = "PanD.E.M.I.C. 2200"
+ icon_state = "medical"
+ board_type = "machine"
+ build_path = /obj/machinery/pandemic
+ req_components = list(/obj/item/stock_parts/manipulator = 1, /obj/item/stock_parts/micro_laser = 1)
+ origin_tech = "programming=2;biotech=2"
+
/obj/item/circuitboard/cell_charger
board_name = "Cell Charger"
icon_state = "engineering"
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 5c6ebe8189e..7beccb38d8e 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -275,11 +275,19 @@ SLIME SCANNER
for(var/thing in H.viruses)
var/datum/disease/D = thing
- if(D.visibility_flags & HIDDEN_SCANNER)
+ // If the disease is incubating, or if it's stealthy and hasn't been put into a pandemic yet the scanner won't see it
+ if(D.incubation || (D.visibility_flags & VIRUS_HIDDEN_SCANNER && !(D.GetDiseaseID() in GLOB.detected_advanced_diseases["[user.z]"])))
continue
// Snowflaking heart problems, because they are special (and common).
if(istype(D, /datum/disease/critical))
- msgs += "Warning: Subject is undergoing [D.name].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]"
+ msgs += "Warning: Subject is undergoing [D.name].\nStage: [D.stage]/[D.max_stages].\nCure: [D.cure_text]"
+ continue
+ if(istype(D, /datum/disease/advance))
+ var/datum/disease/advance/A = D
+ if(!(A.id in GLOB.known_advanced_diseases[num2text(user.z)]))
+ msgs += "Warning: Unknown viral strain detected\nStrain:[A.strain]\nStage: [A.stage]"
+ else
+ msgs += "Warning: [A.form] detected\nName: [A.name].\nStrain:[A.strain]\nType: [A.spread_text].\nStage: [A.stage]/[A.max_stages].\nPossible Cures: [A.cure_text]\nNeeded Cures: [A.cures_required]"
continue
msgs += "Warning: [D.form] detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]"
@@ -395,6 +403,8 @@ SLIME SCANNER
if(H.radiation > RAD_MOB_SAFE)
msgs += "Subject is irradiated."
+ msgs += "Biological Age: [H.age]"
+
to_chat(user, chat_box_healthscan(msgs.Join("
")))
/obj/item/healthanalyzer/attackby__legacy__attackchain(obj/item/I, mob/user, params)
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 56535a23a42..2370d2a4902 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -210,6 +210,8 @@
. = ..()
extinguish()
acid_level = 0
+ if(temperature > VIRUS_DISINFECTION_TEMP)
+ SEND_SIGNAL(src, COMSIG_ATOM_DISINFECTED)
/obj/singularity_pull(S, current_size)
..()
diff --git a/code/game/turfs/space/space_turf.dm b/code/game/turfs/space/space_turf.dm
index 761eebd017b..751bea457dc 100644
--- a/code/game/turfs/space/space_turf.dm
+++ b/code/game/turfs/space/space_turf.dm
@@ -15,6 +15,8 @@
atmos_mode = ATMOS_MODE_SPACE
+ rad_insulation_alpha = RAD_NO_INSULATION
+
/turf/space/Initialize(mapload)
SHOULD_CALL_PARENT(FALSE)
if(!istype(src, /turf/space/transit))
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 7da4cb363ad..e86f94333a6 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -92,6 +92,7 @@ GLOBAL_LIST_INIT(admin_verbs_event, list(
/client/proc/cmd_admin_dress,
/client/proc/cmd_admin_gib_self,
/client/proc/drop_bomb,
+ /client/proc/disease_outbreak,
/client/proc/one_click_antag,
/client/proc/cmd_admin_add_freeform_ai_law,
/client/proc/cmd_admin_add_random_ai_law,
@@ -776,12 +777,53 @@ GLOBAL_LIST_INIT(view_logs_verbs, list(
set category = "Event"
set name = "Give Disease"
set desc = "Gives a Disease to a mob."
- var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in GLOB.diseases
- if(!D) return
- T.ForceContractDisease(new D)
+ var/datum/disease/given_disease = null
+
+ if(tgui_input_list(usr, "Create own disease", "Would you like to create your own disease?", list("Yes","No")) == "Yes")
+ given_disease = AdminCreateVirus(usr)
+ else
+ given_disease = tgui_input_list(usr, "ACHOO", "Choose the disease to give to that guy", GLOB.diseases)
+
+ if(!given_disease)
+ return
+
+ if(!istype(given_disease, /datum/disease/advance))
+ given_disease = new given_disease
+ T.ForceContractDisease(given_disease)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Give Disease") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].")
- message_admins("[key_name_admin(usr)] gave [key_name(T)] the disease [D].")
+ log_admin("[key_name(usr)] gave [key_name(T)] the disease [given_disease].")
+ message_admins("[key_name_admin(usr)] gave [key_name(T)] the disease [given_disease].")
+
+/client/proc/disease_outbreak()
+ set category = "Event"
+ set name = "Disease Outbreak"
+ set desc = "Creates a disease and infects a random player with it"
+ var/datum/disease/given_disease = null
+ if(tgui_input_list(usr, "Create own disease", "Would you like to create your own disease?", list("Yes","No")) == "Yes")
+ given_disease = AdminCreateVirus(usr)
+ else
+ given_disease = tgui_input_list(usr, "ACHOO", "Choose the disease to give to that guy", GLOB.diseases)
+ if(!given_disease)
+ return
+
+ if(!istype(given_disease, /datum/disease/advance))
+ given_disease = new given_disease
+
+ for(var/thing in shuffle(GLOB.human_list))
+ var/mob/living/carbon/human/H = thing
+ if(H.stat == DEAD || !is_station_level(H.z))
+ continue
+ if(!H.HasDisease(given_disease))
+ H.ForceContractDisease(given_disease)
+ break
+ if(istype(given_disease, /datum/disease/advance))
+ var/datum/disease/advance/given_advanced_disease = given_disease
+ var/list/name_symptoms = list()
+ for(var/datum/symptom/S in given_advanced_disease.symptoms)
+ name_symptoms += S.name
+ message_admins("[key_name_admin(usr)] has triggered a custom virus outbreak of [given_advanced_disease.name]! It has these symptoms: [english_list(name_symptoms)] and these base stats [english_map(given_advanced_disease.base_properties)]")
+ else
+ message_admins("[key_name_admin(usr)] has triggered a custom virus outbreak of [given_disease.name]!")
/client/proc/make_sound(obj/O in view()) // -- TLE
set name = "\[Admin\] Make Sound"
diff --git a/code/modules/admin/menus/antagonist_menu.dm b/code/modules/admin/menus/antagonist_menu.dm
index 6d62a4c6d16..4aa3da8a83b 100644
--- a/code/modules/admin/menus/antagonist_menu.dm
+++ b/code/modules/admin/menus/antagonist_menu.dm
@@ -133,6 +133,28 @@ RESTRICT_TYPE(/datum/ui_module/admin/antagonist_menu)
temp_list["max_health"] = player.maxHealth
cached_data["security"] += list(temp_list)
+ cached_data["disease_carriers"] = list()
+ cached_data["virus_data"] = list()
+ for(var/datum/disease/advance/virus in GLOB.active_diseases)
+ var/list/temp_list = list()
+ var/list/temp_list2 = list()
+ var/mob/living/carbon/player = virus.affected_mob
+ if(!player?.mind)
+ continue
+ temp_list["name"] = player.mind.name
+ temp_list["mind_uid"] = player.mind.UID()
+ temp_list["ckey"] = ckey(player.mind.key)
+ temp_list["status"] = player.stat
+ temp_list["health"] = player.health
+ temp_list["max_health"] = player.maxHealth
+ temp_list["progress"] = virus.progress
+ temp_list["patient_zero"] = virus.carrier
+ temp_list["virus_name"] = virus.name
+ temp_list["strain"] = virus.strain
+ if(!("[virus.strain]" in temp_list2))
+ temp_list2["[virus.strain]"] = english_list(virus.symptoms)
+ cached_data["disease_carriers"] += list(temp_list)
+ cached_data["virus_data"] += temp_list2
/datum/ui_module/admin/antagonist_menu/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
if(..())
diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm
index 231af787959..f11689f1753 100644
--- a/code/modules/antagonists/changeling/powers/panacea.dm
+++ b/code/modules/antagonists/changeling/powers/panacea.dm
@@ -26,7 +26,7 @@
user.apply_status_effect(STATUS_EFFECT_PANACEA)
for(var/thing in user.viruses)
var/datum/disease/D = thing
- if(D.severity == NONTHREAT)
+ if(D.severity == VIRUS_NONTHREAT)
continue
D.cure()
diff --git a/code/modules/antagonists/zombie/datum_zombie.dm b/code/modules/antagonists/zombie/datum_zombie.dm
index f23920429a8..a8c7229080f 100644
--- a/code/modules/antagonists/zombie/datum_zombie.dm
+++ b/code/modules/antagonists/zombie/datum_zombie.dm
@@ -79,8 +79,7 @@ RESTRICT_TYPE(/datum/antagonist/zombie)
ADD_TRAIT(L, trait, ZOMBIE_TRAIT)
if(!L.HasDisease(/datum/disease/zombie))
var/datum/disease/zombie/zomb = new /datum/disease/zombie()
- zomb.stage = 7
- L.AddDisease(zomb)
+ L.AddDisease(zomb, FALSE, 7)
if(ishuman(L))
var/mob/living/carbon/human/H = L
diff --git a/code/modules/awaymissions/mob_spawn.dm b/code/modules/awaymissions/mob_spawn.dm
index 7c2e127d3eb..922071bc4a8 100644
--- a/code/modules/awaymissions/mob_spawn.dm
+++ b/code/modules/awaymissions/mob_spawn.dm
@@ -764,8 +764,8 @@
ADD_TRAIT(H, TRAIT_NON_INFECTIOUS_ZOMBIE, ROUNDSTART_TRAIT)
. = ..()
for(var/datum/disease/zombie/zomb in H.viruses)
- zomb.spread_flags = SPECIAL
- zomb.visibility_flags = HIDDEN_PANDEMIC // This is how critical diseases block being interacted by the pandemic or copied. I hate it here.
+ zomb.spread_flags = SPREAD_SPECIAL
+ zomb.visibility_flags = VIRUS_HIDDEN_PANDEMIC // This is how critical diseases block being interacted by the pandemic or copied. I hate it here.
/// these mob spawn subtypes trigger immediately (New or Initialize) and are not player controlled... since they're dead, you know?
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index c7926e986aa..67a840c607d 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -2,6 +2,7 @@
name = "clothing"
integrity_failure = 80
resistance_flags = FLAMMABLE
+ permeability_coefficient = 0.8
/// Only these species can wear this kit.
var/list/species_restricted
/// Can the wearer see reagents inside transparent containers while it's equipped?
@@ -244,6 +245,7 @@
gender = PLURAL
icon = 'icons/obj/clothing/gloves.dmi'
siemens_coefficient = 0.50
+ permeability_coefficient = 0.5
body_parts_covered = HANDS
slot_flags = ITEM_SLOT_GLOVES
attack_verb = list("challenged")
@@ -538,6 +540,7 @@
body_parts_covered = HEAD
slot_flags = ITEM_SLOT_MASK
put_on_delay = 4 SECONDS
+ permeability_coefficient = 0.7
var/adjusted_flags = null
@@ -620,7 +623,7 @@
dyeable = TRUE
dyeing_key = DYE_REGISTRY_SHOES
- permeability_coefficient = 0.50
+ permeability_coefficient = 0.4
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/shoes.dmi',
@@ -748,6 +751,7 @@
drop_sound = 'sound/items/handling/cloth_drop.ogg'
pickup_sound = 'sound/items/handling/cloth_pickup.ogg'
slot_flags = ITEM_SLOT_OUTER_SUIT
+ permeability_coefficient = 0.75
var/fire_resist = T0C + 100
var/blood_overlay_type = "suit"
@@ -972,7 +976,7 @@
item_state = "s_suit"
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
- permeability_coefficient = 0.02
+ permeability_coefficient = 0.01
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
@@ -999,7 +1003,6 @@
icon = 'icons/obj/clothing/under/misc.dmi'
name = "under"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
- permeability_coefficient = 0.90
slot_flags = ITEM_SLOT_JUMPSUIT
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 0, ACID = 0)
equip_sound = 'sound/items/equip/jumpsuit_equip.ogg'
diff --git a/code/modules/clothing/glasses/hudglasses.dm b/code/modules/clothing/glasses/hudglasses.dm
index b0def2f3f61..d40de2e8954 100644
--- a/code/modules/clothing/glasses/hudglasses.dm
+++ b/code/modules/clothing/glasses/hudglasses.dm
@@ -1,7 +1,7 @@
/obj/item/clothing/glasses/hud
name = "\improper HUD"
desc = "A heads-up display that provides important info in (almost) real time."
- flags = null //doesn't protect eyes because it's a monocle, duh
+ flags_cover = null //doesn't protect eyes because it's a monocle, duh
origin_tech = "magnets=3;biotech=2"
prescription_upgradable = TRUE
/// The visual icons granted by wearing these glasses.
diff --git a/code/modules/clothing/glasses/hudgoggles.dm b/code/modules/clothing/glasses/hudgoggles.dm
index a0569502881..b8d4d1224d9 100644
--- a/code/modules/clothing/glasses/hudgoggles.dm
+++ b/code/modules/clothing/glasses/hudgoggles.dm
@@ -2,23 +2,28 @@
name = "security HUD goggles"
desc = "Fashionable security goggles."
icon_state = "sechudgoggles"
+ flags_cover = GLASSESCOVERSEYES
/obj/item/clothing/glasses/hud/health/goggles
name = "health HUD goggles"
desc = "Fashionable medical goggles."
icon_state = "medhudgoggles"
+ flags_cover = GLASSESCOVERSEYES
/obj/item/clothing/glasses/hud/diagnostic/goggles
name = "diagnostic HUD goggles"
desc = "Fashionable diagnostic goggles."
icon_state = "diaghudgoggles"
+ flags_cover = GLASSESCOVERSEYES
/obj/item/clothing/glasses/hud/hydroponic/goggles
name = "hydroponic HUD goggles"
desc = "Fashionable hydroponic goggles."
icon_state = "hydrohudgoggles"
+ flags_cover = GLASSESCOVERSEYES
/obj/item/clothing/glasses/hud/skills/goggles
name = "skills HUD goggles"
desc = "Fashionable skills goggles."
icon_state = "skillhudgoggles"
+ flags_cover = GLASSESCOVERSEYES
diff --git a/code/modules/clothing/gloves/colored_gloves.dm b/code/modules/clothing/gloves/colored_gloves.dm
index e45e6919f65..9f4db0cc59c 100644
--- a/code/modules/clothing/gloves/colored_gloves.dm
+++ b/code/modules/clothing/gloves/colored_gloves.dm
@@ -7,7 +7,7 @@
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 0
- permeability_coefficient = 0.05
+ permeability_coefficient = 0.01
item_color = "yellow"
resistance_flags = NONE
@@ -21,7 +21,7 @@
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
- permeability_coefficient = 0.05
+ permeability_coefficient = 0.01
item_color="yellow"
resistance_flags = NONE
@@ -55,6 +55,7 @@
"Grey" = 'icons/mob/clothing/species/grey/gloves.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi',
)
+ permeability_coefficient = 0.1
/obj/item/clothing/gloves/color/black/thief
pickpocket = 1
@@ -98,7 +99,7 @@
name = "insulated gloves"
desc = "A pair of rubber-lined industrial gloves. They'll protect the wearer from electrical shocks."
siemens_coefficient = 0
- permeability_coefficient = 0.05
+ permeability_coefficient = 0.01
resistance_flags = NONE
/obj/item/clothing/gloves/color/rainbow
@@ -193,7 +194,7 @@
item_state = "captain"
item_color = "captain"
siemens_coefficient = 0
- permeability_coefficient = 0.05
+ permeability_coefficient = 0.01
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
diff --git a/code/modules/clothing/gloves/misc_gloves.dm b/code/modules/clothing/gloves/misc_gloves.dm
index c8747f9a40b..f798e84ea43 100644
--- a/code/modules/clothing/gloves/misc_gloves.dm
+++ b/code/modules/clothing/gloves/misc_gloves.dm
@@ -7,6 +7,7 @@
transfer_prints = TRUE
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
+ permeability_coefficient = 1
strip_delay = 40
put_on_delay = 20
clipped = TRUE
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 80daa2e2920..0740bf45200 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -19,6 +19,7 @@
"Drask" = 'icons/mob/clothing/species/drask/helmet.dmi',
"Grey" = 'icons/mob/clothing/species/grey/helmet.dmi'
)
+ permeability_coefficient = 0.4
/obj/item/clothing/head/helmet/attack_self__legacy__attackchain(mob/user)
if(can_toggle && !user.incapacitated())
@@ -94,6 +95,7 @@
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
strip_delay = 80
dog_fashion = null
+ permeability_coefficient = 0.01
/obj/item/clothing/head/helmet/riot/knight
name = "medieval helmet"
diff --git a/code/modules/clothing/head/job_hats.dm b/code/modules/clothing/head/job_hats.dm
index 82c8a1d37cd..0e071424169 100644
--- a/code/modules/clothing/head/job_hats.dm
+++ b/code/modules/clothing/head/job_hats.dm
@@ -198,6 +198,7 @@
"Drask" = 'icons/mob/clothing/species/drask/head.dmi',
"Vox" = 'icons/mob/clothing/species/vox/head.dmi'
)
+ permeability_coefficient = 0.01
/obj/item/clothing/head/surgery/purple
name = "purple surgical cap"
diff --git a/code/modules/clothing/masks/misc_masks.dm b/code/modules/clothing/masks/misc_masks.dm
index bc5accf82f0..15a9b6b58a6 100644
--- a/code/modules/clothing/masks/misc_masks.dm
+++ b/code/modules/clothing/masks/misc_masks.dm
@@ -194,6 +194,9 @@
"Drask" = 'icons/mob/clothing/species/drask/mask.dmi'
)
+/obj/item/clothing/mask/surgical/Initialize(mapload)
+ . = ..()
+ ADD_TRAIT(src, TRAIT_ANTI_VIRAL, "inherent")
/obj/item/clothing/mask/surgical/attack_self__legacy__attackchain(mob/user)
adjustmask(user)
diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm
index e81144c7d85..1da95515bf1 100644
--- a/code/modules/clothing/suits/labcoat.dm
+++ b/code/modules/clothing/suits/labcoat.dm
@@ -20,6 +20,7 @@
)
actions_types = list(/datum/action/item_action/button)
adjust_flavour = "unbutton"
+ permeability_coefficient = 0.35
/obj/item/clothing/suit/storage/labcoat/medical
name = "medical doctor's labcoat"
@@ -33,6 +34,7 @@
icon_state = "labcoat_cmo_open"
item_state = "labcoat_cmo_open"
insert_max = 2
+ permeability_coefficient = 0.2
/obj/item/clothing/suit/storage/labcoat/mad
name = "mad scientist's labcoat"
@@ -57,6 +59,7 @@
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has green medical markings."
icon_state = "labcoat_viro_open"
item_state = "labcoat_viro_open"
+ permeability_coefficient = 0.2
/obj/item/clothing/suit/storage/labcoat/science
name = "scientist labcoat"
diff --git a/code/modules/clothing/under/jobs/medical_jumpsuits.dm b/code/modules/clothing/under/jobs/medical_jumpsuits.dm
index e9f5cad37ec..fca0d58ba18 100644
--- a/code/modules/clothing/under/jobs/medical_jumpsuits.dm
+++ b/code/modules/clothing/under/jobs/medical_jumpsuits.dm
@@ -28,7 +28,7 @@
/obj/item/clothing/under/rank/medical/doctor
name = "medical doctor's jumpsuit"
- desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel."
+ desc = "It's made of a special fiber that provides protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel."
icon_state = "medical"
item_state = "medical"
item_color = "medical"
@@ -90,35 +90,36 @@
/obj/item/clothing/under/rank/medical/scrubs
name = "blue medical scrubs"
- desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue."
+ desc = "It's made of a special fiber that provides protection against biohazards. This one is in baby blue."
icon_state = "scrubsblue"
item_color = "scrubsblue"
+ permeability_coefficient = 0.1
/obj/item/clothing/under/rank/medical/scrubs/green
name = "green medical scrubs"
- desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green."
+ desc = "It's made of a special fiber that provides protection against biohazards. This one is in dark green."
icon_state = "scrubsgreen"
item_color = "scrubsgreen"
/obj/item/clothing/under/rank/medical/scrubs/purple
name = "purple medical scrubs"
- desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple."
+ desc = "It's made of a special fiber that provides protection against biohazards. This one is in deep purple."
icon_state = "scrubspurple"
item_color = "scrubspurple"
/obj/item/clothing/under/rank/medical/scrubs/coroner
name = "coroner's scrubs"
- desc = "It's made of a special fiber that provides minor protection against biohazards. This one is as dark as an emo's poetry."
+ desc = "It's made of a special fiber that provides protection against biohazards. This one is as dark as an emo's poetry."
icon_state = "scrubsblack"
item_color = "scrubsblack"
/obj/item/clothing/under/rank/medical/chemist
name = "chemist's jumpsuit"
- desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it."
+ desc = "It's made of a special fiber that gives minor protection against biohazards. It has a chemist rank stripe on it."
icon_state = "chemistry"
item_state = "chemistry"
item_color = "chemistry"
- permeability_coefficient = 0.50
+ permeability_coefficient = 0.3
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 95)
/obj/item/clothing/under/rank/medical/chemist/skirt
@@ -133,7 +134,7 @@
icon_state = "paramedic"
item_state = "paramedic"
item_color = "paramedic"
- permeability_coefficient = 0.50
+ permeability_coefficient = 0.3
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 5, FIRE = 0, ACID = 0)
/obj/item/clothing/under/rank/medical/paramedic/skirt
diff --git a/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm b/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm
index 57126c15280..7b804f7da43 100644
--- a/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm
+++ b/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm
@@ -12,6 +12,7 @@
item_color = "plasmaman"
dyeable = TRUE
dyeing_key = DYE_REGISTRY_PLASMAMEN
+ permeability_coefficient = 0.6
var/next_extinguish = 0
var/extinguish_cooldown = 10 SECONDS
diff --git a/code/modules/clothing/under/jobs/plasmamen/medsci.dm b/code/modules/clothing/under/jobs/plasmamen/medsci.dm
index 424540914b4..0924ea1300d 100644
--- a/code/modules/clothing/under/jobs/plasmamen/medsci.dm
+++ b/code/modules/clothing/under/jobs/plasmamen/medsci.dm
@@ -4,6 +4,7 @@
icon_state = "doctor_envirosuit"
item_state = "doctor_envirosuit"
item_color = "doctor_envirosuit"
+ permeability_coefficient = 0.1
/obj/item/clothing/under/plasmaman/cmo
name = "chief medical officer's plasma envirosuit"
@@ -11,6 +12,7 @@
icon_state = "cmo_envirosuit"
item_state = "cmo_envirosuit"
item_color = "cmo_envirosuit"
+ permeability_coefficient = 0.1
/obj/item/clothing/under/plasmaman/science
name = "science plasma envirosuit"
diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm
index 9e1274e53d3..1c160c90eef 100644
--- a/code/modules/events/disease_outbreak.dm
+++ b/code/modules/events/disease_outbreak.dm
@@ -1,5 +1,9 @@
GLOBAL_LIST_EMPTY(current_pending_diseases)
/datum/event/disease_outbreak
+ // We only want the announcement to happen after the virus has spawned on station
+ announceWhen = -1
+ // Keep the event running until we announce it
+ noAutoEnd = TRUE
/// The type of disease that patient zero will be infected with.
var/datum/disease/chosen_disease
@@ -11,6 +15,8 @@ GLOBAL_LIST_EMPTY(current_pending_diseases)
var/static/list/transmissable_symptoms = list()
var/static/list/diseases_minor = list()
var/static/list/diseases_moderate_major = list()
+ var/force_disease_time = 300
+ var/list/infected_players = list()
/datum/event/disease_outbreak/setup()
if(isemptylist(diseases_minor) && isemptylist(diseases_moderate_major))
@@ -18,49 +24,90 @@ GLOBAL_LIST_EMPTY(current_pending_diseases)
if(isemptylist(transmissable_symptoms))
populate_symptoms()
var/datum/disease/virus
- if(prob(50))
- switch(severity)
- if(EVENT_LEVEL_MUNDANE)
- virus = pick(diseases_minor)
- if(EVENT_LEVEL_MODERATE)
+ // Either choose a type to create a normal disease from or create an advanced disease
+ switch(severity)
+ if(EVENT_LEVEL_MUNDANE)
+ virus = pick(diseases_minor)
+ if(EVENT_LEVEL_MODERATE)
+ if(prob(50))
virus = pick(diseases_moderate_major)
else
- stack_trace("Disease Outbreak: Invalid Event Level [severity]. Expected: 1-2")
- virus = /datum/disease/cold
- chosen_disease = new virus()
- else
- if(severity == EVENT_LEVEL_MODERATE)
- chosen_disease = create_virus(severity * pick(2,3)) //50% chance for a major disease instead of a moderate one
- else
+ chosen_disease = create_virus(severity * 2)
+ if(EVENT_LEVEL_MAJOR)
chosen_disease = create_virus(severity * 2)
+ if(virus)
+ chosen_disease = new virus
chosen_disease.carrier = TRUE
/datum/event/disease_outbreak/start()
- GLOB.current_pending_diseases += chosen_disease
+ GLOB.current_pending_diseases += list(list("disease" = chosen_disease, "event" = src))
for(var/mob/M as anything in GLOB.dead_mob_list) //Announce outbreak to dchat
if(istype(chosen_disease, /datum/disease/advance))
- var/datum/disease/advance/temp_disease = chosen_disease.Copy()
- to_chat(M, "Disease outbreak: The next new arrival is a carrier of [chosen_disease.name]! A \"[chosen_disease.severity]\" disease with the following symptoms: [english_list(temp_disease.symptoms)]")
+ var/datum/disease/advance/temp_disease = chosen_disease
+ to_chat(M, chat_box_examine("Disease outbreak: The next new arrival is a carrier of [chosen_disease.name]! A \"[chosen_disease.severity]\" disease with the following symptoms:\n[english_list(temp_disease.symptoms)]\nand the following stats:\n[english_map(temp_disease.GenerateProperties())]"))
else
- to_chat(M, "Disease outbreak: The next new arrival is a carrier of a \"[chosen_disease.severity]\" disease: [chosen_disease.name]!")
+ to_chat(M, chat_box_examine("Disease outbreak: The next new arrival is a carrier of a \"[chosen_disease.severity]\" disease: [chosen_disease.name]!"))
+
+/datum/event/disease_outbreak/announce()
+ switch(severity)
+ if(EVENT_LEVEL_MAJOR)
+ GLOB.major_announcement.Announce("Lethal viral pathogen detected aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/effects/siren-spooky.ogg', new_sound2 = 'sound/AI/outbreak_virus.ogg')
+ if(EVENT_LEVEL_MODERATE)
+ GLOB.minor_announcement.Announce("Moderate contagion detected aboard [station_name()].", new_sound = 'sound/misc/notice2.ogg', new_title = "Contagion Alert")
+ if(EVENT_LEVEL_MUNDANE)
+ GLOB.minor_announcement.Announce("Minor contagion detected aboard [station_name()].", new_sound = 'sound/misc/notice2.ogg', new_title = "Contagion Alert")
+ // We did our announcement, the event no longer needs to run
+ kill()
+
+/datum/event/disease_outbreak/process()
+ if(activeFor == force_disease_time)
+ for(var/list/disease_event in GLOB.current_pending_diseases)
+ if(chosen_disease == disease_event["disease"])
+ for(var/mob/living/carbon/human/player in GLOB.player_list)
+ if((player.name in GLOB.crew_list) && player.ForceContractDisease(chosen_disease, TRUE, TRUE))
+ GLOB.current_pending_diseases -= list(disease_event)
+ break
+ break
+ if(length(infected_players) > 2 && announceWhen <= 0)
+ announceWhen = activeFor + 180
+ . = ..()
//Creates a virus with a harmful effect, guaranteed to be spreadable by contact or airborne
/datum/event/disease_outbreak/proc/create_virus(max_severity = 6)
- var/datum/disease/advance/A = new /datum/disease/advance
- A.symptoms = A.GenerateSymptomsBySeverity(max_severity - 1, max_severity, 2) //Choose "Payload" symptoms
- A.AssignProperties(A.GenerateProperties())
- var/list/symptoms_to_try = transmissable_symptoms.Copy()
- while(length(symptoms_to_try))
- if(A.spread_text != "Blood")
- break
- if(length(A.symptoms) < VIRUS_SYMPTOM_LIMIT) //Ensure the virus is spreadable by adding symptoms that boost transmission
- var/datum/symptom/TS = pick_n_take(symptoms_to_try)
- A.AddSymptom(new TS)
- else
- popleft(A.symptoms) //We have a full symptom list but are still not transmittable. Try removing one of the "payloads"
+ var/datum/disease/advance/A = new /datum/disease/advance(_event = UID())
+ A.clear_symptoms()
+ // Base properties get buffs depending on severity
+ var/list/properties_to_buff = A.base_properties.Copy() - list("transmissibility")
+ for(var/i = 0, i < max_severity / 2, i++)
+ A.base_properties[pick(properties_to_buff)]++
+ A.base_properties["stealth"] += max_severity // Stealth gets an additional bonus since most symptoms reduce it a fair bit.
+ var/spread_threhsold = 4
+ // Chance for it to be extra spready, scales quadratically with severity
+ if(prob((max_severity ** 2) * 3))
+ spread_threhsold = 5
+ if(prob((max_severity ** 2) * 1.5))
+ spread_threhsold = 6
+
+ // If we have extra spread include either cough or sneeze
+ if(spread_threhsold >= 5)
+ var/symptom_path = pick(/datum/symptom/cough, /datum/symptom/sneeze)
+ A.add_symptom_path(symptom_path)
+
+ // Generate payload. 2-3 symptoms that actually do something
+ A.symptoms += A.GenerateSymptomsBySeverity(max_severity - 1, max_severity, 1)
+ A.symptoms += A.GenerateSymptomsBySeverity(max_severity - 3, max_severity - 1, rand(1, 2))
+
+ var/symptom_list = transmissable_symptoms.Copy()
+
+ // Add symptoms that increase transmittability to fill the rest
+ while(length(A.symptoms) < VIRUS_SYMPTOM_LIMIT)
+ var/symptom_path = pick_n_take(symptom_list)
+ A.add_symptom_path(symptom_path)
+
+ // Add extra transmissibility through base properties as needed
+ A.base_properties["transmissibility"] = max(0, spread_threhsold - (A.totaltransmissibility() - length(A.symptoms)))
- A.AssignProperties(A.GenerateProperties())
A.name = pick(GLOB.alphabet_uppercase) + num2text(rand(1,9)) + pick(GLOB.alphabet_uppercase) + num2text(rand(1,9)) + pick("v", "V", "-" + num2text(GLOB.game_year), "")
A.Refresh()
return A
@@ -71,13 +118,15 @@ GLOBAL_LIST_EMPTY(current_pending_diseases)
if(is_type_in_list(CD, disease_blacklist))
continue
switch(CD.severity)
- if(NONTHREAT, MINOR)
+ if(VIRUS_NONTHREAT, VIRUS_MINOR)
diseases_minor += candidate
- if(MEDIUM, HARMFUL, DANGEROUS, BIOHAZARD)
+ if(VIRUS_MEDIUM, VIRUS_HARMFUL, VIRUS_DANGEROUS, VIRUS_BIOHAZARD)
diseases_moderate_major += candidate
/datum/event/disease_outbreak/proc/populate_symptoms()
- for(var/candidate in subtypesof(/datum/symptom))
+ // Disease events shouldn't just resolve themselves
+ var/list/candidate_list = subtypesof(/datum/symptom) - /datum/symptom/heal/longevity
+ for(var/candidate in candidate_list)
var/datum/symptom/CS = candidate
- if(initial(CS.transmittable) > 1)
+ if(initial(CS.transmissibility) > 0)
transmissable_symptoms += candidate
diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm
index 7709bd53f9f..3ce4062a661 100644
--- a/code/modules/events/event_container.dm
+++ b/code/modules/events/event_container.dm
@@ -209,7 +209,8 @@ GLOBAL_LIST_EMPTY(event_last_fired)
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Slaughter Demon", /datum/event/spawn_slaughter, 20, is_one_shot = TRUE),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Shadow Demon", /datum/event/spawn_slaughter/shadow, 20, is_one_shot = TRUE),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Demonic Incursion", /datum/event/demon_incursion, 20, list(ASSIGNMENT_SECURITY = 3)),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Immovable Rod", /datum/event/immovable_rod, 0, list(ASSIGNMENT_ENGINEER = 10), TRUE)
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Immovable Rod", /datum/event/immovable_rod, 0, list(ASSIGNMENT_ENGINEER = 10), TRUE),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Disease Outbreak", /datum/event/disease_outbreak, 15, list(ASSIGNMENT_MEDICAL = 4), TRUE),
//new /datum/event_meta(EVENT_LEVEL_MAJOR, "Floor Cluwne", /datum/event/spawn_floor_cluwne, 15, is_one_shot = TRUE)
//new /datum/event_meta(EVENT_LEVEL_MAJOR, "Pulse Demon Infiltration", /datum/event/spawn_pulsedemon, 20, is_one_shot = TRUE)
)
diff --git a/code/modules/food_and_drinks/food_base.dm b/code/modules/food_and_drinks/food_base.dm
index 62999a767ce..1d087303cbc 100644
--- a/code/modules/food_and_drinks/food_base.dm
+++ b/code/modules/food_and_drinks/food_base.dm
@@ -148,6 +148,16 @@
/obj/item/food/proc/On_Consume(mob/M, mob/user)
if(!user)
return
+ // Add viruses where needed
+ if(length(M.viruses))
+ AddComponent(/datum/component/viral_contamination, M.viruses)
+ var/datum/reagent/blood/blood_contained = locate() in reagents.reagent_list
+ // Infect contained blood as well for splash reactions
+ if(blood_contained?.data["viruses"])
+ var/list/blood_viruses = blood_contained.data["viruses"]
+ blood_viruses |= M.viruses.Copy()
+ blood_contained.data["viruses"] = blood_viruses
+ SEND_SIGNAL(src, COMSIG_MOB_REAGENT_EXCHANGE, M)
if(!reagents.total_volume)
if(M == user)
to_chat(user, "You finish eating [src].")
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index f0f0c494c1c..8358c63840f 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -857,11 +857,14 @@
/obj/machinery/smartfridge/secure/chemistry/virology/preloaded/Initialize(mapload)
starting_items = list(
/obj/item/reagent_containers/syringe/antiviral = 4,
+ /obj/item/reagent_containers/glass/bottle/tracking_agar = 1,
+ /obj/item/reagent_containers/glass/bottle/stable_agar = 1,
/obj/item/reagent_containers/glass/bottle/cold = 1,
/obj/item/reagent_containers/glass/bottle/flu_virion = 1,
/obj/item/reagent_containers/glass/bottle/mutagen = 1,
/obj/item/reagent_containers/glass/bottle/plasma = 1,
/obj/item/reagent_containers/glass/bottle/diphenhydramine = 1,
+ /obj/item/reagent_containers/glass/bottle/sterilizine,
/obj/item/storage/lockbox/vials = 2
)
. = ..()
@@ -877,6 +880,8 @@
/obj/machinery/smartfridge/secure/chemistry/virology/preloaded/syndicate/Initialize(mapload)
starting_items = list(
/obj/item/reagent_containers/syringe/antiviral = 4,
+ /obj/item/reagent_containers/glass/bottle/tracking_agar = 1,
+ /obj/item/reagent_containers/glass/bottle/stable_agar = 1,
/obj/item/reagent_containers/glass/bottle/cold = 1,
/obj/item/reagent_containers/glass/bottle/flu_virion = 1,
/obj/item/reagent_containers/glass/bottle/mutagen = 1,
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 1bd9d643cb3..aacda083452 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -27,13 +27,14 @@
for(var/thing in viruses)
var/datum/disease/D = thing
- if(D.IsSpreadByTouch())
- user.ContractDisease(D)
+ if(D.spread_flags >= SPREAD_CONTACT_GENERAL)
+ can_spread_disease(D, SPREAD_CONTACT_GENERAL) && user.ContractDisease(D, SPREAD_CONTACT_HANDS)
for(var/thing in user.viruses)
var/datum/disease/D = thing
- if(D.IsSpreadByTouch())
- ContractDisease(D)
+ var/spread_method = min(D.spread_flags, SPREAD_CONTACT_GENERAL)
+ if(spread_method >= SPREAD_CONTACT_HANDS)
+ user.can_spread_disease(D, SPREAD_CONTACT_HANDS) && ContractDisease(D, spread_method)
if(IS_HORIZONTAL(src) && length(surgeries))
if(user.a_intent == INTENT_HELP)
diff --git a/code/modules/mob/living/carbon/carbon_procs.dm b/code/modules/mob/living/carbon/carbon_procs.dm
index b64c85aac29..22b4f4d8a55 100644
--- a/code/modules/mob/living/carbon/carbon_procs.dm
+++ b/code/modules/mob/living/carbon/carbon_procs.dm
@@ -123,6 +123,7 @@
if(blood)
if(T)
add_splatter_floor(T)
+ blood_volume = max(blood_volume - lost_nutrition, 0)
if(should_confuse)
adjustBruteLoss(3)
else
@@ -132,6 +133,11 @@
if(should_confuse)
adjustToxLoss(-3)
+ // Try to infect the people we hit with our viruses
+ for(var/mob/living/carbon/to_infect in T.contents)
+ for(var/datum/disease/illness in viruses)
+ to_infect.ContractDisease(illness)
+
T = get_step(T, dir)
if(T.is_blocked_turf())
break
diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm
index 4b828e9495d..4b56925b552 100644
--- a/code/modules/mob/living/carbon/human/species/_species.dm
+++ b/code/modules/mob/living/carbon/human/species/_species.dm
@@ -1142,7 +1142,7 @@ It'll return null if the organ doesn't correspond, so include null checks when u
if(!HAS_TRAIT(user, TRAIT_NON_INFECTIOUS_ZOMBIE))
if(!target.HasDisease(/datum/disease/zombie))
var/datum/disease/zombie/zomb = new /datum/disease/zombie
- if(target.CanContractDisease(zomb)) // biosuit aint going to protect you buddy
+ if(target.can_contract_disease(zomb)) // biosuit aint going to protect you buddy
target.ForceContractDisease(zomb)
target.Dizzy(10 SECONDS)
target.Confused(10 SECONDS)
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm
index 3302fbc5ad9..7d4b6160065 100644
--- a/code/modules/mob/living/simple_animal/bot/medbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/medbot.dm
@@ -406,7 +406,7 @@
return
for(var/datum/disease/D as anything in C.viruses)
- if(!(D.visibility_flags & HIDDEN_SCANNER && D.visibility_flags & HIDDEN_PANDEMIC) && D.severity != NONTHREAT && (D.stage > 1 || D.spread_flags & AIRBORNE))
+ if((!(D.visibility_flags & VIRUS_HIDDEN_SCANNER) || (D.GetDiseaseID() in GLOB.detected_advanced_diseases["[z]"])) && D.severity != VIRUS_NONTHREAT && (D.stage > 1 || D.spread_flags & SPREAD_AIRBORNE))
return TRUE //Medbots see viruses that aren't fully hidden and have developed enough/are airborne, ignoring safe viruses
/mob/living/simple_animal/bot/medbot/proc/select_medication(mob/living/carbon/C, beaker_injection)
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index b5d2892c9ea..da68bba9731 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -385,7 +385,9 @@
GLOB.data_core.manifest_inject(character)
AnnounceArrival(character, rank, join_message)
- if(length(GLOB.current_pending_diseases) && character.ForceContractDisease(GLOB.current_pending_diseases[1], TRUE, TRUE))
+ if(length(GLOB.current_pending_diseases) && character.ForceContractDisease(GLOB.current_pending_diseases[1]["disease"], TRUE, TRUE))
+ var/datum/event/disease_outbreak/outbreak = GLOB.current_pending_diseases[1]["event"]
+ outbreak.force_disease_time = 0
popleft(GLOB.current_pending_diseases)
if(GLOB.summon_guns_triggered)
give_guns(character)
diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm
index 12f45d2ceeb..62293f6897a 100644
--- a/code/modules/reagents/chemistry/machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry/machinery/pandemic.dm
@@ -1,31 +1,106 @@
-/obj/machinery/computer/pandemic
+#define ANALYSIS_DIFFICULTY_BASE 100
+#define ANALYSIS_DIFFICULTY_INCREMENT 40
+#define ANALYSIS_DURATION_BASE (0.5 MINUTES)
+#define STAGE_CONTRIBUTION 40
+#define GENE_CONTRIBUTION 60
+
+/// list of known advanced disease ids. If an advanced disease isn't here it will display as unknown disease on scanners
+/// Initialized with the id of the flu and cold samples from the virologist's fridge in the pandemic's init
+GLOBAL_LIST_EMPTY(known_advanced_diseases)
+GLOBAL_LIST_EMPTY(detected_advanced_diseases)
+
+/obj/machinery/pandemic
name = "PanD.E.M.I.C 2200"
desc = "Used to work with viruses."
icon = 'icons/obj/chemical.dmi'
icon_state = "pandemic0"
- circuit = /obj/item/circuitboard/pandemic
idle_power_consumption = 20
resistance_flags = ACID_PROOF
+ density = TRUE
+ anchored = TRUE
+ /// The base analysis time which is later modified by samples of uniqute stages and symptom prediction
+ var/analysis_difficulty_base = ANALYSIS_DIFFICULTY_BASE
+ /// How difficult the disease is to analyze. This sets the requirements for how much you need to contribute with things like stages and symptom predictions
+ var/analysis_difficulty = 0
+ /// The contribution of various factors towards analysis. The "max" values are only for the UI
+ var/analysis_contributions = list(
+ "Stage Data" = list("amount" = 0, "max" = 5 * STAGE_CONTRIBUTION),
+ "Viral Gene Data" = list("amount" = 0, "max" = 2 * GENE_CONTRIBUTION),
+ "Symptom Data" = list("amount" = 0, "max" = 0.5 * ANALYSIS_DIFFICULTY_BASE)
+ )
+ /// The time at which the analysis of a disease will be done. Calculated at the begnining of analysis using analysis_difficulty and symptoms symptom_guesses.
+ var/analysis_time
+ /// How much time analysis will take. Depends on components
+ var/analysis_duration
+ /// Whether the PANDEMIC is currently analyzing an advanced disease
+ var/analyzing = FALSE
+ /// Whether to keep the report screen up. This is so it can stay persistent while the UI is closed
+ var/reporting = FALSE
+ /// Can our sample be analyzed
+ var/valid_sample = FALSE
+ /// ID of the disease being analyzed
+ var/analyzed_ID = ""
+ /// Index of the disease being analyzed
+ var/analyzed_index
+ /// List of all symptoms. Gets filled in Initialize().
+ var/symptom_list = list()
var/temp_html = ""
var/printing = null
var/wait = null
var/selected_strain_index = 1
var/obj/item/reagent_containers/beaker = null
+ /// The current symptom predictions
+ var/list/predictions = list(
+ "No Prediction",
+ "No Prediction",
+ "No Prediction",
+ "No Prediction",
+ "No Prediction",
+ "No Prediction"
+ )
-/obj/machinery/computer/pandemic/Initialize(mapload)
+/obj/machinery/pandemic/Initialize(mapload)
. = ..()
+ component_parts = list()
+ component_parts += new /obj/item/circuitboard/pandemic(null)
+ component_parts += new /obj/item/stock_parts/manipulator(null)
+ component_parts += new /obj/item/stock_parts/micro_laser(null)
+ RefreshParts()
+
GLOB.pandemics |= src
+ var/datum/symptom/S
+ symptom_list += list("No Prediction")
+ for(var/symptom_path in GLOB.list_symptoms)
+ // I don't know a way to access the name of something with only the path without creating an instance.
+ S = new symptom_path()
+ symptom_list += list(S.name)
+ qdel(S)
+ // We init the list for the Z level here so that we can know it is loaded when we do.
+ if(!(z in GLOB.known_advanced_diseases))
+ GLOB.known_advanced_diseases += list("[z]" = list("4:origin", "24:origin"))
update_icon()
-/obj/machinery/computer/pandemic/Destroy()
+/obj/machinery/pandemic/RefreshParts()
+ var/manip_rating = 0
+ var/laser_rating = 0
+ for(var/obj/item/stock_parts/manipulator/manip in component_parts)
+ manip_rating += manip.rating
+ for(var/obj/item/stock_parts/micro_laser/laser in component_parts)
+ laser_rating += laser.rating
+
+ analysis_difficulty_base = ANALYSIS_DIFFICULTY_BASE * (9 / (manip_rating + 8))
+ analysis_duration = ANALYSIS_DURATION_BASE * (1 / laser_rating)
+ find_analysis_requirements()
+
+/obj/machinery/pandemic/Destroy()
GLOB.pandemics -= src
return ..()
-/obj/machinery/computer/pandemic/set_broken()
+/obj/machinery/pandemic/proc/set_broken()
stat |= BROKEN
update_icon()
-/obj/machinery/computer/pandemic/proc/GetViruses()
+/obj/machinery/pandemic/proc/GetViruses()
if(beaker && beaker.reagents)
if(length(beaker.reagents.reagent_list))
var/datum/reagent/blood/BL = locate() in beaker.reagents.reagent_list
@@ -34,12 +109,12 @@
var/list/viruses = BL.data["viruses"]
return viruses
-/obj/machinery/computer/pandemic/proc/GetVirusByIndex(index)
+/obj/machinery/pandemic/proc/GetVirusByIndex(index)
var/list/viruses = GetViruses()
if(viruses && index > 0 && index <= length(viruses))
return viruses[index]
-/obj/machinery/computer/pandemic/proc/GetResistances()
+/obj/machinery/pandemic/proc/GetResistances()
if(beaker && beaker.reagents)
if(length(beaker.reagents.reagent_list))
var/datum/reagent/blood/BL = locate() in beaker.reagents.reagent_list
@@ -48,17 +123,17 @@
var/list/resistances = BL.data["resistances"]
return resistances
-/obj/machinery/computer/pandemic/proc/GetResistancesByIndex(index)
+/obj/machinery/pandemic/proc/GetResistancesByIndex(index)
var/list/resistances = GetResistances()
if(resistances && index > 0 && index <= length(resistances))
return resistances[index]
-/obj/machinery/computer/pandemic/proc/GetVirusTypeByIndex(index)
+/obj/machinery/pandemic/proc/GetVirusTypeByIndex(index)
var/datum/disease/D = GetVirusByIndex(index)
if(D)
return D.GetDiseaseID()
-/obj/machinery/computer/pandemic/proc/replicator_cooldown(waittime)
+/obj/machinery/pandemic/proc/replicator_cooldown(waittime)
wait = 1
update_icon()
spawn(waittime)
@@ -66,18 +141,18 @@
update_icon()
playsound(loc, 'sound/machines/ping.ogg', 30, 1)
-/obj/machinery/computer/pandemic/update_icon_state()
+/obj/machinery/pandemic/update_icon_state()
if(stat & BROKEN)
icon_state = (beaker ? "pandemic1_b" : "pandemic0_b")
return
icon_state = "pandemic[(beaker)?"1":"0"][(has_power()) ? "" : "_nopower"]"
-/obj/machinery/computer/pandemic/update_overlays()
+/obj/machinery/pandemic/update_overlays()
. = list()
if(!wait)
. += "waitlight"
-/obj/machinery/computer/pandemic/proc/create_culture(name, bottle_type = "culture", cooldown = 50)
+/obj/machinery/pandemic/proc/create_culture(name, bottle_type = "culture", cooldown = 50)
var/obj/item/reagent_containers/glass/bottle/B = new/obj/item/reagent_containers/glass/bottle(loc)
B.icon_state = "bottle"
B.scatter_atom()
@@ -85,7 +160,118 @@
B.name = "[name] [bottle_type] bottle"
return B
-/obj/machinery/computer/pandemic/ui_act(action, params, datum/tgui/ui, datum/ui_state/state)
+/// Find the time it would take to analyze the current disease before any symptom predictions are made
+/obj/machinery/pandemic/proc/find_analysis_requirements()
+ if(!beaker)
+ return
+ analysis_contributions["Stage Data"]["amount"] = 0
+ analysis_contributions["Viral Gene Data"]["amount"] = 0
+ analysis_contributions["Symptom Data"]["amount"] = 0
+ analysis_contributions["Symptom Data"]["max"] = 1
+ valid_sample = TRUE
+ var/strains = 0
+ var/list/stages = list()
+ var/current_strain = ""
+ var/stealth_init = FALSE
+ var/stealth = 0
+ var/resistance = 0
+ var/max_stages = 0
+ var/known_symptoms = 0
+ var/num_symptoms = 0
+ var/datum/reagent/blood/blood_sample = locate() in beaker.reagents.reagent_list
+ var/datum/reagent/virus_genes/gene_sample = locate() in beaker.reagents.reagent_list
+ if(blood_sample && blood_sample.data && blood_sample.data["viruses"])
+ for(var/datum/disease/advance/to_analyze in blood_sample.data["viruses"])
+ // Note down number of symptoms and number of known symptoms.
+ // We only use these values if we find one strain, so no need to worry about overwriting
+ known_symptoms = length(GLOB.detected_advanced_diseases["[z]"][to_analyze.GetDiseaseID()]["known_symptoms"])
+ num_symptoms = length(to_analyze.symptoms)
+ // Automatically analyze if the tracker stores the ID of an analyzed disease
+ if(to_analyze.tracker && (to_analyze.tracker in GLOB.known_advanced_diseases["[z]"]))
+ if(!(to_analyze.GetDiseaseID() in GLOB.known_advanced_diseases["[z]"]))
+ GLOB.known_advanced_diseases["[z]"] += list(to_analyze.GetDiseaseID())
+ // If we know this disease there's no need to keep going.
+ if(to_analyze.GetDiseaseID() in GLOB.known_advanced_diseases["[z]"])
+ return
+ // If we somehow got multiple strains we can't do analysis.
+ if(to_analyze.strain != current_strain || current_strain == "")
+ strains++
+ if(strains > 1)
+ valid_sample = FALSE
+ SStgui.update_uis(src, TRUE)
+ return
+ current_strain = to_analyze.strain
+ // Calculate the stealth and resistance values. We only need to do this once
+ if(!stealth_init)
+ for(var/datum/symptom/S in to_analyze.symptoms)
+ stealth += S.stealth
+ resistance += S.resistance
+ stealth += to_analyze.base_properties["stealth"]
+ resistance += to_analyze.base_properties["resistance"]
+ max_stages = to_analyze.max_stages
+ stealth_init = TRUE
+ // If we found a unique stage count it
+ if(!(to_analyze.stage in stages))
+ analysis_contributions["Stage Data"]["amount"] += STAGE_CONTRIBUTION
+ stages += to_analyze.stage
+
+ if(gene_sample && gene_sample.data)
+ for(var/key in gene_sample.data)
+ for(var/strain_id in gene_sample.data[key])
+ if(strain_id == current_strain)
+ analysis_contributions["Viral Gene Data"]["amount"] += GENE_CONTRIBUTION
+ break
+
+ var/power_level = (stealth + resistance)
+ // Make sure we don't runtime if empty
+ if(max_stages)
+ analysis_difficulty = analysis_difficulty_base + ANALYSIS_DIFFICULTY_INCREMENT * (1.17 ** power_level)
+ else
+ analysis_difficulty = analysis_difficulty_base
+
+ analysis_contributions["Symptom Data"]["amount"] = num_symptoms ? analysis_difficulty * known_symptoms / (2 * num_symptoms) : 0
+ analysis_contributions["Symptom Data"]["max"] = max(analysis_difficulty / 2, 1)
+
+ SStgui.update_uis(src, TRUE)
+
+/obj/machinery/pandemic/proc/start_analysis(strain_index)
+ var/datum/disease/advance/virus = GetVirusByIndex(strain_index)
+ analyzing = TRUE
+ analysis_time = world.time + analysis_duration
+ analyzed_ID = virus.GetDiseaseID()
+ analyzed_index = strain_index
+
+/obj/machinery/pandemic/proc/analyze(strain_index)
+ reporting = TRUE
+ var/datum/disease/advance/virus = GetVirusByIndex(analyzed_index)
+ var/symptom_names = list()
+ for(var/datum/symptom/current_symptom in virus.symptoms)
+ symptom_names += list(current_symptom.name)
+ for(var/name in predictions)
+ if(!name || name == "No Prediction")
+ continue
+ if(name in symptom_names)
+ GLOB.detected_advanced_diseases["[z]"][analyzed_ID]["known_symptoms"] |= list(name)
+
+ var/found_symptoms = length(GLOB.detected_advanced_diseases["[z]"][analyzed_ID]["known_symptoms"])
+ // Correct symptom symptom_guesses reduce the final analysis time by up to half of the base time.
+ analysis_contributions["Symptom Data"]["max"] = analysis_difficulty / 2
+ analysis_contributions["Symptom Data"]["amount"] = analysis_difficulty * found_symptoms / (2 * length(virus.symptoms))
+
+ var/total_contribution = 0
+ for(var/factor in analysis_contributions)
+ total_contribution += analysis_contributions[factor]["amount"]
+
+ return (analysis_difficulty - total_contribution) <= 0
+
+/obj/machinery/pandemic/process()
+ if(analyzing && analysis_time < world.time)
+ if(analyze(analyzed_index))
+ GLOB.known_advanced_diseases["[z]"] += analyzed_ID
+ analyzing = FALSE
+ SStgui.update_uis(src, TRUE)
+
+/obj/machinery/pandemic/ui_act(action, params, datum/tgui/ui, datum/ui_state/state)
if(..())
return
if(inoperable())
@@ -111,9 +297,9 @@
return
var/type = virus.GetDiseaseID()
if(!ispath(type))
- var/datum/disease/advance/A = GLOB.archive_diseases[type]
- if(A)
- D = new A.type(0, A)
+ var/datum/disease/advance/A = virus
+ if(istype(A))
+ D = A.Copy()
else if(type)
if(type in GLOB.diseases) // Make sure this is a disease
D = new type(0, null)
@@ -158,6 +344,10 @@
var/obj/item/reagent_containers/glass/bottle/B = create_culture(vaccine_name, "vaccine", 200)
B.reagents.add_reagent("vaccine", 15, list(vaccine_type))
+ if("remove_from_database")
+ if(params["strain_id"] in GLOB.known_advanced_diseases["[z]"])
+ GLOB.known_advanced_diseases["[z]"] -= params["strain_id"]
+ SStgui.update_uis(src, TRUE)
if("eject_beaker")
eject_beaker()
update_static_data(ui.user)
@@ -192,15 +382,16 @@
if(!A)
atom_say("Unable to find requested strain.")
return
- if(A.name != "Unknown")
- atom_say("Request rejected. Strain already has a name.")
- return
var/new_name = tgui_input_text(usr, "Name the Strain", "New Name", max_length = MAX_NAME_LEN)
if(!new_name)
return
A.AssignName(new_name)
for(var/datum/disease/advance/AD in GLOB.active_diseases)
- AD.Refresh()
+ AD.Refresh(TRUE, FALSE, FALSE, FALSE)
+ var/datum/reagent/blood = locate() in beaker.reagents.reagent_list
+ if(blood.data && blood.data["viruses"])
+ for(var/datum/disease/advance/virus in blood.data["viruses"])
+ virus.AssignName(new_name)
update_static_data(ui.user)
if("switch_strain")
var/strain_index = text2num(params["strain_index"])
@@ -212,26 +403,52 @@
atom_say("Unable to find requested strain.")
return
selected_strain_index = strain_index;
+ if("analyze_strain")
+ start_analysis(params["strain_index"])
+ if("set_prediction")
+ set_predictions(text2num(params["pred_index"]), params["pred_value"])
+ SStgui.update_uis(src)
+ if("close_report")
+ reporting = FALSE
else
return FALSE
-/obj/machinery/computer/pandemic/ui_state(mob/user)
+/obj/machinery/pandemic/proc/set_predictions(index, value)
+ predictions[index] = value
+
+/obj/machinery/pandemic/ui_state(mob/user)
return GLOB.default_state
-/obj/machinery/computer/pandemic/ui_interact(mob/user, datum/tgui/ui = null)
+/obj/machinery/pandemic/ui_interact(mob/user, datum/tgui/ui = null)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "PanDEMIC", name)
ui.open()
-/obj/machinery/computer/pandemic/ui_data(mob/user)
+/obj/machinery/pandemic/ui_data(mob/user)
var/datum/reagent/blood/Blood = null
+ var/can_analyze = valid_sample
+ var/contribution_list = list()
+ var/contribution_sum = 0
if(beaker)
var/datum/reagents/R = beaker.reagents
for(var/datum/reagent/blood/B in R.reagent_list)
if(B)
Blood = B
break
+ if(Blood)
+ if(Blood.data && Blood.data["viruses"])
+ for(var/datum/disease/advance/virus in Blood.data["viruses"])
+ if((virus.GetDiseaseID() in GLOB.known_advanced_diseases["[z]"]))
+ can_analyze = FALSE
+ break
+ for(var/factor in analysis_contributions)
+ contribution_list += list(list(
+ "factor" = factor,
+ "amount" = analysis_contributions[factor]["amount"],
+ "maxAmount" = analysis_contributions[factor]["max"],
+ ))
+ contribution_sum += analysis_contributions[factor]["amount"]
var/list/data = list(
"synthesisCooldown" = wait ? TRUE : FALSE,
@@ -239,11 +456,21 @@
"beakerContainsBlood" = Blood ? TRUE : FALSE,
"beakerContainsVirus" = length(Blood?.data["viruses"]) != 0,
"selectedStrainIndex" = selected_strain_index,
+ "analysisTime" = analysis_time > world.time ? analysis_time - world.time : 0,
+ "analysisDuration" = analysis_duration,
+ "analysisDifficulty" = analysis_difficulty,
+ "analysisContributions" = contribution_list,
+ "totalContribution" = contribution_sum,
+ "canAnalyze" = can_analyze,
+ "analyzing" = analyzing,
+ "reporting" = reporting,
+ "symptom_names" = symptom_list,
+ "predictions" = predictions,
)
return data
-/obj/machinery/computer/pandemic/ui_static_data(mob/user)
+/obj/machinery/pandemic/ui_static_data(mob/user)
var/list/data = list()
. = data
@@ -256,59 +483,58 @@
break
var/list/strains = list()
- for(var/datum/disease/D in GetViruses())
- if(D.visibility_flags & HIDDEN_PANDEMIC)
+ for(var/datum/disease/blood_disease in GetViruses())
+ if(!(blood_disease.GetDiseaseID() in GLOB.detected_advanced_diseases["[z]"]))
+ GLOB.detected_advanced_diseases["[z]"] += list(blood_disease.GetDiseaseID() = list("known_symptoms" = list()))
+ if(blood_disease.visibility_flags & VIRUS_HIDDEN_PANDEMIC)
continue
- var/list/symptoms = list()
- if(istype(D, /datum/disease/advance))
- var/datum/disease/advance/A = D
- D = GLOB.archive_diseases[A.GetDiseaseID()]
- if(!D)
- CRASH("We weren't able to get the advance disease from the archive.")
- for(var/datum/symptom/S in A.symptoms)
- symptoms += list(list(
- "name" = S.name,
- "stealth" = S.stealth,
- "resistance" = S.resistance,
- "stageSpeed" = S.stage_speed,
- "transmissibility" = S.transmittable,
- "complexity" = S.level,
- ))
-
+ var/list/symptoms = blood_disease.get_pandemic_symptoms(z)
+ var/list/base_stats = blood_disease.get_pandemic_base_stats()
+ var/known = blood_disease.is_known(z)
strains += list(list(
- "commonName" = D.name,
- "description" = D.desc,
+ "commonName" = known ? blood_disease.name : "Unknown strain",
+ "description" = known ? blood_disease.desc : "Unknown strain",
+ "strainID" = blood_disease.get_strain_id(),
+ "strainFullID" = blood_disease.get_full_strain_id(),
+ "diseaseID" = blood_disease.get_ui_id(),
+ "sample_stage" = blood_disease.get_stage(),
+ "known" = known,
"bloodDNA" = Blood.data["blood_DNA"],
"bloodType" = Blood.data["blood_type"],
- "diseaseAgent" = D.agent,
- "possibleTreatments" = D.cure_text,
- "transmissionRoute" = D.spread_text,
+ "diseaseAgent" = blood_disease.agent,
+ "possibleCures" = known ? blood_disease.cure_text : "Unknown strain",
+ "RequiredCures" = "[blood_disease.get_required_cures()]",
+ "Stabilized" = blood_disease.is_stabilized(),
+ "StrainTracker" = blood_disease.get_tracker(),
+ "transmissionRoute" = known ? blood_disease.spread_text : "Unknown strain",
"symptoms" = symptoms,
- "isAdvanced" = istype(D, /datum/disease/advance),
+ "baseStats" = base_stats,
+ "isAdvanced" = istype(blood_disease, /datum/disease/advance),
))
data["strains"] = strains
var/list/resistances = list()
for(var/resistance in GetResistances())
if(!ispath(resistance))
- var/datum/disease/D = GLOB.archive_diseases[resistance]
- if(D)
- resistances += list(D.name)
+ var/datum/disease/resisted_disease = GLOB.archive_diseases[resistance]
+ if(resisted_disease)
+ resistances += list(resisted_disease.name)
else if(resistance)
- var/datum/disease/D = new resistance(0, null)
- if(D)
- resistances += list(D.name)
+ var/datum/disease/resistance_disease = new resistance(0, null)
+ if(resistance_disease)
+ resistances += list(resistance_disease.name)
data["resistances"] = resistances
+ data["analysis_difficulty"] = analysis_difficulty
-/obj/machinery/computer/pandemic/proc/eject_beaker()
+/obj/machinery/pandemic/proc/eject_beaker()
beaker.forceMove(loc)
beaker = null
icon_state = "pandemic0"
selected_strain_index = 1
//Prints a nice virus release form. Props to Urbanliner for the layout
-/obj/machinery/computer/pandemic/proc/print_form(datum/disease/advance/D, mob/living/user)
+/obj/machinery/pandemic/proc/print_form(datum/disease/advance/D, mob/living/user)
D = GLOB.archive_diseases[D.GetDiseaseID()]
if(!(printing) && D)
var/reason = tgui_input_text(user,"Enter a reason for the release", "Write", multiline = TRUE)
@@ -350,7 +576,7 @@
P.name = "Releasing Virus - [D.name]"
printing = null
-/obj/machinery/computer/pandemic/proc/print_goal_orders()
+/obj/machinery/pandemic/proc/print_goal_orders()
if(stat & (BROKEN|NOPOWER))
return
@@ -370,18 +596,18 @@
P.info = info_text.Join("")
P.update_icon()
-/obj/machinery/computer/pandemic/attack_ai(mob/user)
+/obj/machinery/pandemic/attack_ai(mob/user)
return attack_hand(user)
-/obj/machinery/computer/pandemic/attack_hand(mob/user)
+/obj/machinery/pandemic/attack_hand(mob/user)
if(..())
return
ui_interact(user)
-/obj/machinery/computer/pandemic/attack_ghost(mob/user)
+/obj/machinery/pandemic/attack_ghost(mob/user)
ui_interact(user)
-/obj/machinery/computer/pandemic/item_interaction(mob/living/user, obj/item/used, list/modifiers)
+/obj/machinery/pandemic/item_interaction(mob/living/user, obj/item/used, list/modifiers)
if(default_unfasten_wrench(user, used, time = 4 SECONDS))
power_change()
return
@@ -395,17 +621,33 @@
return ITEM_INTERACT_COMPLETE
beaker = used
- beaker.loc = src
+ beaker.forceMove(src)
to_chat(user, "You add the beaker to the machine.")
- SStgui.update_uis(src, TRUE)
icon_state = "pandemic1"
-
+ var/datum/reagent/blood/inserted = locate() in beaker.reagents.reagent_list
+ if(inserted && inserted.data && inserted.data["viruses"])
+ for(var/datum/disease/advance/virus in inserted.data["viruses"])
+ if(!(virus.GetDiseaseID() in GLOB.detected_advanced_diseases["[z]"]))
+ GLOB.detected_advanced_diseases["[z]"] += list(virus.GetDiseaseID() = list("known_symptoms" = list()))
+ log_admin("[key_name(user)] inserted disease [virus] of strain [virus.strain] with the following symptoms: [english_list(virus.symptoms)] into [src] at these coords x: [x] y: [y] z: [z]")
+ find_analysis_requirements()
+ SStgui.update_uis(src, TRUE)
return ITEM_INTERACT_COMPLETE
else
return ..()
-/obj/machinery/computer/pandemic/screwdriver_act(mob/user, obj/item/I)
+/obj/machinery/pandemic/screwdriver_act(mob/living/user, obj/item/I)
+ if(!default_deconstruction_screwdriver(user, icon_state, icon_state, I))
+ return FALSE
if(beaker)
eject_beaker()
- return TRUE
- return ..()
+ return TRUE
+
+/obj/machinery/pandemic/crowbar_act(mob/living/user, obj/item/I)
+ return default_deconstruction_crowbar(user, I)
+
+#undef ANALYSIS_DIFFICULTY_BASE
+#undef ANALYSIS_DIFFICULTY_INCREMENT
+#undef ANALYSIS_DURATION_BASE
+#undef STAGE_CONTRIBUTION
+#undef GENE_CONTRIBUTION
diff --git a/code/modules/reagents/chemistry/reagents/admin_reagents.dm b/code/modules/reagents/chemistry/reagents/admin_reagents.dm
index 87622d97419..8a01dcc9ff8 100644
--- a/code/modules/reagents/chemistry/reagents/admin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/admin_reagents.dm
@@ -52,7 +52,7 @@
M.SetJitter(0)
for(var/thing in M.viruses)
var/datum/disease/D = thing
- if(D.severity == NONTHREAT)
+ if(D.severity == VIRUS_NONTHREAT)
continue
D.cure(0)
..()
diff --git a/code/modules/reagents/chemistry/reagents/disease.dm b/code/modules/reagents/chemistry/reagents/disease.dm
index 8bfd678d0dd..6f549d5f54c 100644
--- a/code/modules/reagents/chemistry/reagents/disease.dm
+++ b/code/modules/reagents/chemistry/reagents/disease.dm
@@ -155,6 +155,12 @@
color = "#899613" // rgb: 137, 150, 19
taste_description = "watery milk"
+/datum/reagent/consumable/virus_food/on_mob_life(mob/living/M)
+ . = ..()
+ for(var/datum/disease/advance/virus in M.viruses)
+ if(prob(3))
+ virus.progress += 20
+
/datum/reagent/mutagen/mutagenvirusfood
name = "Mutagenic agar"
id = "mutagenvirusfood"
@@ -183,3 +189,32 @@
name = "Weakened virus plasma"
id = "weakplasmavirusfood"
color = "#CEC3C6" // rgb: 206,195,198
+
+/datum/reagent/consumable/stable_agar
+ name = "Stable agar"
+ id = "stable_agar"
+ color = "#50BDB0" // rgb: 80,206,192
+
+/datum/reagent/consumable/tracking_agar
+ name = "Tracking agar"
+ id = "tracking_agar"
+ color = "#2c8852" // rgb: 45,136,82
+
+/datum/reagent/virus_genes
+ name = "Viral Genetic Material"
+ id = "virus_genes"
+ color = "#e0717a"
+
+/// Depth 1 copy of the lists
+/datum/reagent/virus_genes/on_merge(list/_data)
+ var/list/result = list()
+ for(var/key in (data + _data))
+ result[key] = data[key]
+ if(_data[key])
+ result[key] += _data[key]
+ data = result
+
+/datum/reagent/viral_eraser
+ name = "Viral Eraser"
+ id = "viral_eraser"
+ color = "#ffe600" // rgb: 45,136,82
diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm
index f4b90e799cd..e2f5f389e80 100644
--- a/code/modules/reagents/chemistry/reagents/medicine.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine.dm
@@ -29,6 +29,35 @@
var/update_flags = STATUS_UPDATE_HEALTH
return ..() | update_flags
+/datum/reagent/medicine/sterilizine
+ name = "Sterilizine"
+ id = "sterilizine"
+ description = "Sterilizes wounds in preparation for surgery."
+ reagent_state = LIQUID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+ taste_description = "antiseptic"
+ goal_difficulty = REAGENT_GOAL_EASY
+
+ //makes you squeaky clean
+/datum/reagent/medicine/sterilizine/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume)
+ if(method == REAGENT_TOUCH)
+ M.germ_level -= min(volume*20, M.germ_level)
+
+/datum/reagent/medicine/sterilizine/reaction_obj(obj/O, volume)
+ O.germ_level -= min(volume*20, O.germ_level)
+ SEND_SIGNAL(O, COMSIG_ATOM_DISINFECTED)
+
+/datum/reagent/medicine/sterilizine/reaction_turf(turf/T, volume)
+ T.germ_level -= min(volume*20, T.germ_level)
+
+/datum/reagent/medicine/sterilizine/reaction_temperature(exposed_temperature, exposed_volume)
+ // Sterilize the container
+ for(var/datum/reagent/to_disinfect in holder.reagent_list)
+ if(to_disinfect.data && to_disinfect.data["viruses"])
+ to_disinfect?.data["viruses"] = list()
+ if(isobj(holder.my_atom))
+ SEND_SIGNAL(holder.my_atom, COMSIG_ATOM_DISINFECTED)
+
/datum/reagent/medicine/synaptizine
name = "Synaptizine"
id = "synaptizine"
diff --git a/code/modules/reagents/chemistry/reagents/water.dm b/code/modules/reagents/chemistry/reagents/water.dm
index 724e60f84ce..74e1cccf5c7 100644
--- a/code/modules/reagents/chemistry/reagents/water.dm
+++ b/code/modules/reagents/chemistry/reagents/water.dm
@@ -106,7 +106,7 @@
for(var/thing in data["viruses"])
var/datum/disease/D = thing
- if(D.spread_flags & SPECIAL || D.spread_flags & NON_CONTAGIOUS)
+ if(D.spread_flags & SPREAD_SPECIAL || D.spread_flags & SPREAD_NON_CONTAGIOUS)
continue
if(method == REAGENT_TOUCH)
@@ -121,6 +121,13 @@
C.blood_volume = min(C.blood_volume + round(volume, 0.1), BLOOD_VOLUME_NORMAL)
..()
+/datum/reagent/blood/reaction_temperature(exposed_temperature, exposed_volume)
+ // If the blood goes above 60C kill all viruses
+ if(exposed_temperature > VIRUS_DISINFECTION_TEMP)
+ data["viruses"] = list()
+ ..()
+
+
/datum/reagent/blood/on_new(list/data)
if(istype(data))
SetViruses(src, data)
@@ -151,15 +158,38 @@
// Stop issues with the list changing during mixing.
var/list/to_mix = list()
+ var/list/disease_ids = list()
+ var/list/stages = list()
for(var/datum/disease/advance/AD in mix1)
- to_mix += AD
- for(var/datum/disease/advance/AD in mix2)
- to_mix += AD
+ if(!(AD.GetDiseaseID() in disease_ids))
+ disease_ids += AD.GetDiseaseID()
+ stages[AD.GetDiseaseID()] = list(AD.stage)
+ to_mix += AD
+ if(!(AD.stage in stages[AD.GetDiseaseID()]))
+ stages[AD.GetDiseaseID()] += list(AD.stage)
+ to_mix += AD
- var/datum/disease/advance/AD = Advance_Mix(to_mix)
- if(AD)
- var/list/preserve = list(AD)
+ for(var/datum/disease/advance/AD in mix2)
+ if(!(AD.GetDiseaseID() in disease_ids))
+ disease_ids += AD.GetDiseaseID()
+ stages[AD.GetDiseaseID()] = list(AD.stage)
+ to_mix += AD
+ if(!(AD.stage in stages[AD.GetDiseaseID()]))
+ stages[AD.GetDiseaseID()] += list(AD.stage)
+ to_mix += AD
+
+ var/list/result_diseases = list()
+ if(length(disease_ids) == 1)
+ for(var/datum/disease/advance/AD in to_mix)
+ result_diseases += AD.Copy()
+ else
+ var/datum/disease/advance/result_virus = Advance_Mix(to_mix)
+ if(istype(result_virus))
+ result_diseases = list(result_virus)
+
+ if(length(result_diseases))
+ var/list/preserve = result_diseases
for(var/D in data["viruses"])
if(!istype(D, /datum/disease/advance))
preserve += D
@@ -187,6 +217,19 @@
blood_prop = new(T)
blood_prop.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
+/// If irradiated by gamma radiation and there are advanced viruses in the blood become a sample of viral genetic data
+/datum/reagent/blood/reaction_radiation(amount, emission_type)
+ if(emission_type == GAMMA_RAD && amount > 100)
+ if(data && data["viruses"])
+ var/list/strains = list("radiation" = list())
+ for(var/datum/disease/advance/virus in data["viruses"])
+ strains["radiation"] += virus.strain
+ if(length(strains["radiation"]))
+ var/blood_volume = volume
+ holder.remove_reagent(id, blood_volume)
+ holder.add_reagent("virus_genes", blood_volume, strains)
+
+
/datum/reagent/vaccine
//data must contain virus type
name = "Vaccine"
@@ -199,7 +242,7 @@
for(var/thing in M.viruses)
var/datum/disease/D = thing
if(D.GetDiseaseID() in data)
- D.cure()
+ D.make_resistant(M)
M.resistances |= data
/datum/reagent/vaccine/on_merge(list/incoming_data)
diff --git a/code/modules/reagents/chemistry/reagents_datum.dm b/code/modules/reagents/chemistry/reagents_datum.dm
index 9249da145d5..9a5f640fb2c 100644
--- a/code/modules/reagents/chemistry/reagents_datum.dm
+++ b/code/modules/reagents/chemistry/reagents_datum.dm
@@ -62,7 +62,12 @@
data.Cut()
data = null
-/datum/reagent/proc/reaction_temperature(exposed_temperature, exposed_volume) //By default we do nothing.
+/// By default do nothing
+/datum/reagent/proc/reaction_temperature(exposed_temperature, exposed_volume)
+ return
+
+/// By default do nothing
+/datum/reagent/proc/reaction_radiation(amount, emission_type)
return
/**
diff --git a/code/modules/reagents/chemistry/reagents_holder.dm b/code/modules/reagents/chemistry/reagents_holder.dm
index c6a46cead10..0fb8603abd5 100644
--- a/code/modules/reagents/chemistry/reagents_holder.dm
+++ b/code/modules/reagents/chemistry/reagents_holder.dm
@@ -35,7 +35,8 @@
var/list/addiction_threshold_accumulated = list()
var/flags
-/datum/reagents/New(maximum = 100, temperature_minimum, temperature_maximum)
+/datum/reagents/New(maximum = 100, temperature_minimum, temperature_maximum, atom/_my_atom = null)
+ my_atom = _my_atom
maximum_volume = maximum
if(temperature_minimum)
temperature_min = temperature_minimum
@@ -63,9 +64,10 @@
var/datum/chemical_reaction/D = new path()
var/list/reaction_ids = list()
- if(D && length(D.required_reagents))
- for(var/reaction in D.required_reagents)
- reaction_ids += reaction
+ if(D && (length(D.required_reagents) || length(D.required_catalysts)))
+ var/list/all_requirements = D.required_reagents + D.required_catalysts
+ for(var/reagent_id in all_requirements)
+ reaction_ids += reagent_id
// Create filters based on each reagent id in the required reagents list
for(var/id in reaction_ids)
@@ -73,6 +75,9 @@
GLOB.chemical_reactions_list[id] = list()
GLOB.chemical_reactions_list[id] += D
break // Don't bother adding ourselves to other reagent ids, it is redundant.
+ if(my_atom)
+ RegisterSignal(my_atom, COMSIG_ATOM_RAD_ACT, PROC_REF(radiation_react))
+ ADD_TRAIT(my_atom, TRAIT_ABSORB_RADS, "reagents_holder_[UID()]")
/**
* Removes reagents from the holder until the passed amount is matched.
@@ -171,11 +176,16 @@
if(!O.reagents)
return
R = O.reagents
+ if(isliving(my_atom))
+ var/atom/thing = target
+ SEND_SIGNAL(thing, COMSIG_MOB_REAGENT_EXCHANGE, my_atom)
else if(isliving(target))
var/mob/living/M = target
if(!M.reagents)
return
R = M.reagents
+ if(isobj(my_atom))
+ SEND_SIGNAL(my_atom, COMSIG_MOB_REAGENT_EXCHANGE, target)
else if(istype(target, /datum/reagents))
R = target
else
@@ -186,7 +196,6 @@
var/trans_data = null
for(var/A in reagent_list)
var/datum/reagent/current_reagent = A
-
var/current_reagent_transfer = current_reagent.volume * part
if(preserve_data)
trans_data = copy_data(current_reagent)
@@ -199,6 +208,8 @@
if(!no_react)
R.handle_reactions()
handle_reactions()
+ R.temperature_react()
+ temperature_react()
return amount
/datum/reagents/proc/copy_to(obj/target, amount = 1, multiplier = 1, preserve_data = TRUE, safety = FALSE)
@@ -215,12 +226,15 @@
var/current_reagent_transfer = current_reagent.volume * part
if(preserve_data)
trans_data = copy_data(current_reagent)
+
R.add_reagent(current_reagent.id, (current_reagent_transfer * multiplier), trans_data)
update_total()
R.update_total()
R.handle_reactions()
handle_reactions()
+ R.temperature_react()
+ temperature_react()
return amount
/datum/reagents/proc/set_reagent_temp(new_temp = T0C, react = TRUE)
@@ -230,10 +244,17 @@
handle_reactions()
/datum/reagents/proc/temperature_react() //Calls the temperature reaction procs without changing the temp.
+ if(chem_temp > VIRUS_DISINFECTION_TEMP && isobj(my_atom))
+ SEND_SIGNAL(my_atom, COMSIG_ATOM_DISINFECTED)
for(var/A in reagent_list)
var/datum/reagent/current_reagent = A
current_reagent.reaction_temperature(chem_temp, 100)
+/datum/reagents/proc/radiation_react(atom/source, amount, emission_type)
+ SIGNAL_HANDLER // COMSIG_ATOM_RAD_ACT
+ for(var/datum/reagent/current_reagent in reagent_list)
+ current_reagent.reaction_radiation(amount, emission_type)
+
/datum/reagents/proc/temperature_reagents(exposed_temperature, divisor = 35, change_cap = 15) //This is what you use to change the temp of a reagent holder.
//Do not manually change the reagent unless you know what youre doing.
var/difference = abs(chem_temp - exposed_temperature)
@@ -275,6 +296,8 @@
if(get_reagent_amount(reagent) < amount)
amount = get_reagent_amount(reagent)
amount = min(amount, R.maximum_volume - R.total_volume)
+ if(isliving(my_atom))
+ SEND_SIGNAL(target,COMSIG_MOB_REAGENT_EXCHANGE , my_atom)
var/trans_data = null
for(var/A in reagent_list)
var/datum/reagent/current_reagent = A
@@ -288,6 +311,7 @@
update_total()
R.update_total()
R.handle_reactions()
+ R.temperature_react()
return amount
@@ -492,7 +516,7 @@
var/preserved_data = null
for(var/B in C.required_reagents)
if(!preserved_data)
- preserved_data = get_data(B)
+ preserved_data = copy_data_by_id(B)
remove_reagent(B, (multiplier * C.required_reagents[B]), safety = TRUE)
var/created_volume = C.result_amount*multiplier
@@ -690,6 +714,9 @@
if(total_volume + amount > maximum_volume) amount = (maximum_volume - total_volume) //Doesnt fit in. Make it disappear. Shouldnt happen. Will happen.
if(amount <= 0)
return FALSE
+ // Contaminate the container with viruses if the reagent has any. We do this here rather than a reaction because it only depends on the data, and not necessarily the reagent.
+ if(data && length(data["viruses"]) && isobj(my_atom))
+ my_atom.AddComponent(/datum/component/viral_contamination, data["viruses"])
chem_temp = clamp((chem_temp * total_volume + reagtemp * amount) / (total_volume + amount), temperature_min, temperature_max) //equalize with new chems
var/list/cached_reagents = reagent_list
@@ -888,6 +915,11 @@
if(R.id == reagent_id)
R.data = new_data
+/datum/reagents/proc/copy_data_by_id(reagent_id)
+ for(var/datum/reagent/candidate in reagent_list)
+ if(candidate.id == reagent_id)
+ return(copy_data(candidate))
+
/datum/reagents/proc/copy_data(datum/reagent/current_reagent)
if(!current_reagent || !current_reagent.data)
return null
@@ -966,8 +998,7 @@
// Convenience proc to create a reagents holder for an atom
// Max vol is maximum volume of holder
/atom/proc/create_reagents(max_vol, temperature_minimum, temperature_maximum)
- reagents = new /datum/reagents(max_vol, temperature_minimum, temperature_maximum)
- reagents.my_atom = src
+ reagents = new /datum/reagents(max_vol, temperature_minimum, temperature_maximum, src)
/proc/get_random_reagent_id() // Returns a random reagent ID minus blacklisted reagents
var/static/list/random_reagents
@@ -1012,8 +1043,11 @@
reagent_list = null
QDEL_LIST_CONTENTS(addiction_list)
addiction_list = null
- if(my_atom && my_atom.reagents == src)
- my_atom.reagents = null
+ if(my_atom)
+ UnregisterSignal(my_atom, COMSIG_ATOM_RAD_ACT)
+ REMOVE_TRAIT(my_atom, TRAIT_ABSORB_RADS, "reagents_holder_[UID()]")
+ if(my_atom.reagents == src)
+ my_atom.reagents = null
my_atom = null
#undef ADDICTION_TIME
diff --git a/code/modules/reagents/chemistry/recipes/medicine_reactions.dm b/code/modules/reagents/chemistry/recipes/medicine_reactions.dm
index e41efaaaff1..74db4cc4ddd 100644
--- a/code/modules/reagents/chemistry/recipes/medicine_reactions.dm
+++ b/code/modules/reagents/chemistry/recipes/medicine_reactions.dm
@@ -36,6 +36,13 @@
required_reagents = list("carpotoxin" = 1, "spaceacillin" = 1, "copper" = 1)
result_amount = 3
+/datum/chemical_reaction/sterilizine
+ name = "Sterilizine"
+ id = "sterilizine"
+ result = "sterilizine"
+ required_reagents = list("antihol" = 2, "chlorine" = 1)
+ result_amount = 3
+
/datum/chemical_reaction/charcoal
name = "Charcoal"
id = "charcoal"
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index 1ef49b5c1ed..e8b5e7107ab 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -414,6 +414,20 @@
required_reagents = list("salglu_solution" = 1, "mutagenvirusfood" = 1)
result_amount = 2
+/datum/chemical_reaction/virus_food_mutadone
+ name = "stable agar"
+ id = "stable_agar"
+ result = "stable_agar"
+ required_reagents = list("mutadone" = 1, "virusfood" = 1)
+ result_amount = 2
+
+/datum/chemical_reaction/virus_food_tracker
+ name = "Tracking agar"
+ id = "tracking_agar"
+ result = "tracking_agar"
+ required_reagents = list("fluorosurfactant" = 1, "virusfood" = 1)
+ result_amount = 2
+
/datum/chemical_reaction/mix_virus
name = "Mix Virus"
id = "mixvirus"
@@ -499,6 +513,43 @@
if(D)
D.Devolve()
+/datum/chemical_reaction/mix_virus/stabilize_virus
+ name = "Stabilize Virus"
+ id = "stabilize_virus"
+ required_reagents = list("stable_agar" = 1)
+
+/datum/chemical_reaction/mix_virus/stabilize_virus/on_reaction(datum/reagents/holder, created_volume)
+ var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
+ if(B && B.data)
+ var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
+ if(istype(D))
+ D.evolution_chance = 0
+
+/datum/chemical_reaction/mix_virus/track_virus
+ name = "Track Virus"
+ id = "track_virus"
+ required_reagents = list("tracking_agar" = 1)
+
+/datum/chemical_reaction/mix_virus/track_virus/on_reaction(datum/reagents/holder, created_volume)
+ var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
+ if(B && B.data)
+ var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
+ if(istype(D))
+ D.tracker = D.GetDiseaseID()
+
+/datum/chemical_reaction/mix_virus/clear_virus
+ name = "Clear Virus"
+ id = "clear_virus"
+ required_reagents = list("viral_eraser" = 10)
+
+/datum/chemical_reaction/mix_virus/clear_virus/on_reaction(datum/reagents/holder, created_volume)
+ var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
+ if(B && B.data)
+ var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
+ if(istype(D))
+ D.tracker = ""
+ D.evolution_chance = VIRUS_EVOLUTION_CHANCE
+
// Someday, maybe add some version of doing science on patient zero to discover the recipees.
/datum/chemical_reaction/zombie
name = "Anti-Plague Sequence Alpha"
@@ -575,7 +626,7 @@
result = "zombiecure4"
cure_level = 4
amt_req_cures = 2
- required_symptom = /datum/symptom/heal/metabolism
+ required_symptom = /datum/symptom/heal
/datum/chemical_reaction/zombie/four/get_possible_cures()
return list("colorful_reagent", "bacchus_blessing", "pen_acid", "glyphosate", "lazarus_reagent", "omnizine", "sarin", "ants", "clf3", "sorium", "????", "aranesp")
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index bb712538c65..047fa52f653 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -512,6 +512,28 @@
/datum/chemical_reaction/slimemutate2/on_reaction(datum/reagents/holder)
SSblackbox.record_feedback("tally", "slime_cores_used", 1, type)
+/datum/chemical_reaction/viral_gene_extraction
+ name = "Virus Gene Extraction"
+ id = "virus_gene_extraction"
+ result = "virus_genes"
+ required_reagents = list("blood" = 1)
+ result_amount = 1
+ required_other = TRUE
+ required_container = /obj/item/slime_extract/black
+
+/datum/chemical_reaction/viral_gene_extraction/on_reaction(datum/reagents/holder)
+ SSblackbox.record_feedback("tally", "slime_cores_used", 1, type)
+ var/obj/item/reagent_containers/glass/bottle/result_bottle = new(get_turf(holder.my_atom))
+ holder.trans_to(result_bottle, holder.total_volume)
+ var/datum/reagent/virus_genes/result_genes = locate() in result_bottle.reagents.reagent_list
+ var/list/strains = list("slime" = list())
+ if(result_genes.data && result_genes.data["viruses"])
+ for(var/datum/disease/advance/advanced_virus in result_genes.data["viruses"])
+ strains["slime"] += list(advanced_virus.strain)
+ result_bottle.name = "[advanced_virus.strain] Strain Viral Genetic Matter"
+ break
+ result_genes.data = strains
+
//Oil
/datum/chemical_reaction/slime_explosion
name = "Slime Explosion"
diff --git a/code/modules/reagents/reagent_containers/chemical_bottle.dm b/code/modules/reagents/reagent_containers/chemical_bottle.dm
index 0a3cd6f40e0..4300c6207ad 100644
--- a/code/modules/reagents/reagent_containers/chemical_bottle.dm
+++ b/code/modules/reagents/reagent_containers/chemical_bottle.dm
@@ -302,6 +302,26 @@
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
spawned_disease = /datum/disease/pierrot_throat
+/obj/item/reagent_containers/glass/bottle/tracking_agar
+ name = "Tracking agar bottle"
+ desc = "A small bottle. Contains tracking agar which allows modifying a virus without needing to reanalyze it"
+ list_reagents = list("tracking_agar" = 50)
+
+/obj/item/reagent_containers/glass/bottle/stable_agar
+ name = "Stable agar bottle"
+ desc = "A small bottle. Contains stable agar which stop a virus from being able to mutate on its own"
+ list_reagents = list("stable_agar" = 50)
+
+/obj/item/reagent_containers/glass/bottle/sterilizine
+ name = "Sterilizine bottle"
+ desc = "A small bottle. Contains sterilizine, which is used to sterilize beakers and syringes"
+ list_reagents = list("sterilizine" = 50)
+
+/obj/item/reagent_containers/glass/bottle/viral_eraser
+ name = "Viral eraser bottle"
+ desc = "A small bottle. Contains a small amount of viral eraser which removes all tracking and stabilizing from a virus"
+ list_reagents = list("viral_eraser" = 10)
+
/obj/item/reagent_containers/glass/bottle/cold
name = "Rhinovirus culture bottle"
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm
index 6bcd97afdee..2b136c02963 100644
--- a/code/modules/reagents/reagent_containers/glass_containers.dm
+++ b/code/modules/reagents/reagent_containers/glass_containers.dm
@@ -63,11 +63,20 @@
add_attack_logs(user, target, "Fed with [name] containing [contained]", !!target.ckey ? null : ATKLOG_ALL)
else
to_chat(user, "You swallow a gulp of [src].")
-
var/fraction = min(5 / reagents.total_volume, 1)
reagents.reaction(target, REAGENT_INGEST, fraction)
addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, trans_to), target, 5), 5)
playsound(target.loc,'sound/items/drink.ogg', rand(10,50), TRUE)
+ // Add viruses where needed
+ if(length(target.viruses))
+ AddComponent(/datum/component/viral_contamination, target.viruses)
+ // Infect contained blood as well for splash reactions
+ var/datum/reagent/blood/blood_contained = locate() in reagents.reagent_list
+ if(blood_contained?.data["viruses"])
+ var/list/blood_viruses = blood_contained.data["viruses"]
+ blood_viruses |= target.viruses.Copy()
+ blood_contained.data["viruses"] = blood_viruses
+ SEND_SIGNAL(src, COMSIG_MOB_REAGENT_EXCHANGE, target)
/obj/item/reagent_containers/glass/normal_act(atom/target, mob/living/user)
if(!check_allowed_items(target, target_self = TRUE) || !is_open_container() || !reagents)
diff --git a/code/modules/reagents/reagent_containers/iv_bag.dm b/code/modules/reagents/reagent_containers/iv_bag.dm
index df7ee4f5a25..31129f2fcb8 100644
--- a/code/modules/reagents/reagent_containers/iv_bag.dm
+++ b/code/modules/reagents/reagent_containers/iv_bag.dm
@@ -54,6 +54,8 @@
/obj/item/reagent_containers/iv_bag/proc/begin_processing(mob/target)
injection_target = target
+ if(target.viruses)
+ AddComponent(/datum/component/viral_contamination, target.viruses)
RegisterSignal(injection_target, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine))
START_PROCESSING(SSobj, src)
update_iv_type()
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 84b8aa51b11..36846c4f05b 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -188,6 +188,10 @@
var/fraction = min(amount_per_transfer_from_this / reagents.total_volume, 1)
reagents.reaction(target, REAGENT_INGEST, fraction)
reagents.trans_to(target, amount_per_transfer_from_this)
+ if(iscarbon(target))
+ var/mob/living/carbon/carbon_target = target
+ if(length(carbon_target.viruses))
+ AddComponent(/datum/component/viral_contamination, carbon_target.viruses)
to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.")
if(reagents.total_volume <= 0 && mode == SYRINGE_INJECT)
mode = SYRINGE_DRAW
diff --git a/code/modules/supply/supply_packs/pack_medical.dm b/code/modules/supply/supply_packs/pack_medical.dm
index 6c35eed849b..cc6af04e870 100644
--- a/code/modules/supply/supply_packs/pack_medical.dm
+++ b/code/modules/supply/supply_packs/pack_medical.dm
@@ -173,3 +173,32 @@
contains = list(/obj/item/reagent_containers/glass/bottle/reagent/omnizine)
cost = 300
containername = "omnizine shipment crate"
+
+/datum/supply_packs/medical/biosuits
+ name = "Biosuit 4-pack"
+ contains = list(
+ /obj/item/clothing/suit/bio_suit,
+ /obj/item/clothing/suit/bio_suit,
+ /obj/item/clothing/suit/bio_suit,
+ /obj/item/clothing/suit/bio_suit,
+ /obj/item/clothing/head/bio_hood,
+ /obj/item/clothing/head/bio_hood,
+ /obj/item/clothing/head/bio_hood,
+ /obj/item/clothing/head/bio_hood,
+ )
+ cost = 400
+ containername = "biosuit shipment crate"
+
+/datum/supply_packs/medical/surgical_masks
+ name = "Sterile Mask And Goggles 4-pack"
+ contains = list(/obj/item/clothing/mask/surgical,
+ /obj/item/clothing/mask/surgical,
+ /obj/item/clothing/mask/surgical,
+ /obj/item/clothing/mask/surgical,
+ /obj/item/clothing/glasses/goggles,
+ /obj/item/clothing/glasses/goggles,
+ /obj/item/clothing/glasses/goggles,
+ /obj/item/clothing/glasses/goggles,
+ )
+ cost = 200
+ containername = "sterile mask shipment crate"
diff --git a/code/modules/surgery/organs/blood.dm b/code/modules/surgery/organs/blood.dm
index f8aa52a60b2..24f3d6a706e 100644
--- a/code/modules/surgery/organs/blood.dm
+++ b/code/modules/surgery/organs/blood.dm
@@ -1,5 +1,5 @@
/****************************************************
- BLOOD SYSTEM
+ MARK: BLOOD SYSTEM
****************************************************/
#define EXOTIC_BLEED_MULTIPLIER 4 //Multiplies the actually bled amount by this number for the purposes of turf reaction calculations.
@@ -134,7 +134,7 @@
bleed_rate = 0
/****************************************************
- BLOOD TRANSFERS
+ MARK: BLOOD TRANSFERS
****************************************************/
//Gets blood from mob to a container or other mob, preserving all data in it.
@@ -153,6 +153,8 @@
blood_volume -= amount
+ SEND_SIGNAL(AM, COMSIG_MOB_REAGENT_EXCHANGE, src)
+
var/list/blood_data = get_blood_data(blood_id)
if(iscarbon(AM))
@@ -162,7 +164,7 @@
if(blood_data["viruses"])
for(var/thing in blood_data["viruses"])
var/datum/disease/D = thing
- if((D.spread_flags & SPECIAL) || (D.spread_flags & NON_CONTAGIOUS))
+ if((D.spread_flags & SPREAD_SPECIAL) || (D.spread_flags & SPREAD_NON_CONTAGIOUS))
continue
C.ForceContractDisease(D)
if(!(blood_data?["blood_type"] in get_safe_blood(C.dna.blood_type)) || C.dna.species.name != blood_data["species"] && (blood_data["species_only"] || C.dna.species.own_species_blood))
diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm
index fda729e751b..b8871bafdd8 100644
--- a/code/modules/surgery/surgery.dm
+++ b/code/modules/surgery/surgery.dm
@@ -483,6 +483,8 @@
if(SURGERY_BLOODSPREAD_FULLBODY)
target.visible_message("A spray of blood coats [user].")
H.bloody_body(target)
+ SEND_SIGNAL(tool, COMSIG_MOB_REAGENT_EXCHANGE, target)
+ tool.AddComponent(/datum/component/viral_contamination, target.viruses)
/**
* Finish a surgery step, performing anything that runs on the tail-end of a successful surgery.
diff --git a/code/modules/virology/virology_goals.dm b/code/modules/virology/virology_goals.dm
index e95a24da031..2f1c1c7ae55 100644
--- a/code/modules/virology/virology_goals.dm
+++ b/code/modules/virology/virology_goals.dm
@@ -4,9 +4,9 @@ GLOBAL_LIST_EMPTY(archived_virology_goals)
/datum/virology_goal
var/name = "Generic Virology Goal"
- /// The amount of units currently already delivered
- var/delivered_amount = 0
- /// The amount of units of the required virus that must be delivered for the completion of this goal
+ /// The amount of units currently already delivered
+ var/delivered_amount = 0
+ /// The amount of units of the required virus that must be delivered for the completion of this goal
var/delivery_goal = 15
var/completed = FALSE
@@ -80,7 +80,7 @@ GLOBAL_LIST_EMPTY(archived_virology_goals)
return
GLOB.archived_virology_goals += GLOB.virology_goals
GLOB.virology_goals = list(new /datum/virology_goal/property_symptom, new /datum/virology_goal/virus, new /datum/virology_goal/virus/stealth)
- for(var/obj/machinery/computer/pandemic/P in GLOB.pandemics)
+ for(var/obj/machinery/pandemic/P in GLOB.pandemics)
P.print_goal_orders()
/datum/virology_goal/Destroy()
@@ -112,7 +112,7 @@ GLOBAL_LIST_EMPTY(archived_virology_goals)
var/datum/symptom/S = new type()
goal_symptom = S.type
goal_symptom_name = S.name
- goal_property = pick("resistance", "stealth", "stage rate", "transmittable")
+ goal_property = pick("resistance", "stealth", "stage rate", "transmissibility")
goal_property_value = rand(-8, 6)
switch(goal_property)
if("resistance")
@@ -121,8 +121,8 @@ GLOBAL_LIST_EMPTY(archived_virology_goals)
goal_property_value += S.stealth
if("stage rate")
goal_property_value += S.stage_speed
- if("transmittable")
- goal_property_value += S.transmittable
+ if("transmissibility")
+ goal_property_value += S.transmissibility
qdel(S)
times_looped++
while(check_for_duplicate() && times_looped < MAX_LOOPS)
diff --git a/paradise.dme b/paradise.dme
index 84c1f0324b9..2fa167220dc 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -59,6 +59,7 @@
#include "code\__DEFINES\cult_defines.dm"
#include "code\__DEFINES\departments_defines.dm"
#include "code\__DEFINES\directions.dm"
+#include "code\__DEFINES\disease_defines.dm"
#include "code\__DEFINES\dna.dm"
#include "code\__DEFINES\dye_keys.dm"
#include "code\__DEFINES\economy_defines.dm"
@@ -166,6 +167,7 @@
#include "code\__DEFINES\dcs\dcs_flags.dm"
#include "code\__DEFINES\dcs\dcs_helpers.dm"
#include "code\__DEFINES\dcs\dept_signals.dm"
+#include "code\__DEFINES\dcs\disease_signals.dm"
#include "code\__DEFINES\dcs\global_signals.dm"
#include "code\__DEFINES\dcs\item_signals.dm"
#include "code\__DEFINES\dcs\machinery_signals.dm"
@@ -567,6 +569,7 @@
#include "code\datums\components\tilted.dm"
#include "code\datums\components\tippable.dm"
#include "code\datums\components\two_handed.dm"
+#include "code\datums\components\viral_contamination.dm"
#include "code\datums\components\zombie_regen.dm"
#include "code\datums\components\pet_commands\obeys_commands.dm"
#include "code\datums\components\pet_commands\pet_command.dm"
diff --git a/sound/AI/outbreak_virus.ogg b/sound/AI/outbreak_virus.ogg
new file mode 100644
index 00000000000..c98cf8ea0c4
Binary files /dev/null and b/sound/AI/outbreak_virus.ogg differ
diff --git a/tgui/packages/tgui/interfaces/PanDEMIC.tsx b/tgui/packages/tgui/interfaces/PanDEMIC.tsx
index b2599ab9c2e..c03aa083a1f 100644
--- a/tgui/packages/tgui/interfaces/PanDEMIC.tsx
+++ b/tgui/packages/tgui/interfaces/PanDEMIC.tsx
@@ -1,30 +1,65 @@
import { ReactNode } from 'react';
-import { Button, Flex, LabeledList, NoticeBox, Section, Stack, Table, Tabs } from 'tgui-core/components';
+import {
+ Button,
+ Dimmer,
+ Dropdown,
+ Flex,
+ Icon,
+ LabeledList,
+ Modal,
+ NoticeBox,
+ ProgressBar,
+ Section,
+ Stack,
+ Table,
+ Tabs,
+} from 'tgui-core/components';
import { BooleanLike } from 'tgui-core/react';
import { useBackend } from '../backend';
import { Window } from '../layouts';
+interface BaseStats {
+ resistance: number;
+ stealth: number;
+ stageSpeed: number;
+ transmissibility: number;
+}
interface PathogenSymptom {
name: string;
stealth: number;
resistance: number;
stageSpeed: number;
transmissibility: number;
+ guess: string;
}
interface PathogenStrain {
commonName?: string;
description?: string;
+ strainID?: string;
+ strainFullID?: string;
+ diseaseID?: string;
+ sample_stage?: number;
+ known?: BooleanLike;
bloodDNA?: string;
bloodType?: string;
diseaseAgent: string;
- possibleTreatments?: string;
+ possibleCures?: string;
transmissionRoute?: string;
symptoms: PathogenSymptom[];
+ baseStats: BaseStats;
isAdvanced: BooleanLike;
+ RequiredCures: string;
+ Stabilized: BooleanLike;
+ StrainTracker: string;
}
+interface Contribution {
+ factor: string;
+ amount: number;
+ maxAmount: number;
+}
interface PanDEMICData {
synthesisCooldown: BooleanLike;
beakerLoaded: BooleanLike;
@@ -33,12 +68,21 @@ interface PanDEMICData {
selectedStrainIndex: number;
strains: PathogenStrain[];
resistances: string[];
+ analysisDuration: number;
+ analysisTime: number;
+ canAnalyze: boolean;
+ analyzing: boolean;
+ reporting: boolean;
+ analysisDifficulty: number;
+ analysisContributions: Contribution[];
+ totalContribution: number;
+ symptom_names: string[];
+ predictions: string[];
}
export const PanDEMIC = (props) => {
const { data } = useBackend();
- const { beakerLoaded, beakerContainsBlood, beakerContainsVirus, resistances = [] } = data;
-
+ const { reporting, analyzing, beakerLoaded, beakerContainsBlood, beakerContainsVirus, resistances = [] } = data;
let emptyPlaceholder;
if (!beakerLoaded) {
emptyPlaceholder = <>No container loaded.>;
@@ -49,9 +93,10 @@ export const PanDEMIC = (props) => {
}
return (
-
+
+
{emptyPlaceholder && !beakerContainsVirus ? (
}>
{emptyPlaceholder}
@@ -66,6 +111,55 @@ export const PanDEMIC = (props) => {
);
};
+const AnalysisDimmer = (props) => {
+ const { operating } = props;
+ const { act, data } = useBackend();
+ const { analyzing, analysisTime, analysisDuration, analysisDifficulty, totalContribution, analysisContributions } =
+ data;
+ const analysisReport = (
+ <>
+ {Math.ceil(analysisDifficulty)}
+
+ {analysisContributions.map((contribution, i) => (
+
+ {Math.floor(contribution.amount)}
+
+ ))}
+ {Math.floor(totalContribution)}
+
+ {analysisDifficulty - totalContribution < 0 ? 'Disease Analyzed Successfully' : 'Analysis Failed'}
+
+ >
+ );
+ if (operating) {
+ if (analyzing) {
+ return (
+
+
+
+
+
+ Analyzing {Math.floor(100 - (100 * analysisTime) / analysisDuration)}%
+
+
+
+ );
+ }
+ return (
+
+
+
+ {analysisReport}
+
+
+
+
+ );
+ }
+};
+
const CommonCultureActions = (props) => {
const { act, data } = useBackend();
const { beakerLoaded } = data;
@@ -86,16 +180,22 @@ const CommonCultureActions = (props) => {
const StrainInformation = (props: { strain: PathogenStrain; strainIndex: number }) => {
const { act, data } = useBackend();
- const { beakerContainsVirus } = data;
+ const { analysisDifficulty, analysisContributions, beakerContainsVirus, analyzing, canAnalyze } = data;
const {
commonName,
description,
+ strainID,
+ sample_stage,
+ known,
diseaseAgent,
bloodDNA,
bloodType,
- possibleTreatments,
+ possibleCures,
transmissionRoute,
isAdvanced,
+ RequiredCures,
+ Stabilized,
+ StrainTracker,
} = props.strain;
const bloodInformation = (
@@ -119,6 +219,31 @@ const StrainInformation = (props: { strain: PathogenStrain; strainIndex: number
return {bloodInformation};
}
+ const analysisInformation = (
+ <>
+ {Math.ceil(analysisDifficulty)}
+ {analysisContributions.map((contribution, i) => (
+
+
+ {contribution.amount}
+
+
+ ))}
+ >
+ );
+
let nameButtons;
if (isAdvanced) {
if (commonName !== undefined && commonName !== null && commonName !== 'Unknown') {
@@ -138,29 +263,71 @@ const StrainInformation = (props: { strain: PathogenStrain; strainIndex: number
nameButtons = (
+ );
+ }
};
const StrainInformationSection = (props: {
@@ -220,26 +387,24 @@ const CultureInformationSection = (props) => {
return (
-
-
-
- {strains.map((strain, i) => (
- act('switch_strain', { strain_index: i + 1 })}
- >
- {strain.commonName ?? 'Unknown'}
-
- ))}
-
-
-
- {selectedStrain.symptoms?.length > 0 && (
-
- )}
-
+
+
+ {strains.map((strain, i) => (
+ act('switch_strain', { strain_index: i + 1 })}
+ >
+ {strain.commonName ?? 'Unknown'}
+
+ ))}
+
+
+
+ {selectedStrain.symptoms?.length > 0 && (
+
+ )}
);
@@ -250,7 +415,9 @@ const sum = (values: number[]) => {
};
const StrainSymptomsSection = (props: { className?: string; strain: PathogenStrain }) => {
- const { symptoms } = props.strain;
+ const { act, data } = useBackend();
+ const { predictions, symptom_names, analyzing, analysisDuration } = data;
+ const { baseStats, symptoms, known } = props.strain;
return (
@@ -264,20 +431,41 @@ const StrainSymptomsSection = (props: { className?: string; strain: PathogenStra
{symptoms.map((symptom, index) => (
- {symptom.name}
+ {known || !(symptom.name === 'UNKNOWN') ? (
+ {symptom.name}
+ ) : (
+ a.localeCompare(b))}
+ width="180px"
+ selected={predictions[index]}
+ disabled={analyzing || analysisDuration === -2}
+ onSelected={(val) => act('set_prediction', { pred_index: index + 1, pred_value: val })}
+ />
+ )}
{symptom.stealth}
{symptom.resistance}
{symptom.stageSpeed}
{symptom.transmissibility}
))}
+
- Total
- {sum(symptoms.map((s) => s.stealth))}
- {sum(symptoms.map((s) => s.resistance))}
- {sum(symptoms.map((s) => s.stageSpeed))}
- {sum(symptoms.map((s) => s.transmissibility))}
+ {'Base Stats'}
+ {known ? baseStats.stealth : 'UNKNOWN'}
+ {known ? baseStats.resistance : 'UNKNOWN'}
+ {known ? baseStats.stageSpeed : 'UNKNOWN'}
+ {known ? baseStats.transmissibility : 'UNKNOWN'}
+
+
+
+ Total
+ {known ? sum(symptoms.map((s) => s.stealth)) + baseStats.stealth : 'UNKNOWN'}
+ {known ? sum(symptoms.map((s) => s.resistance)) + baseStats.resistance : 'UNKNOWN'}
+ {known ? sum(symptoms.map((s) => s.stageSpeed)) + baseStats.stageSpeed : 'UNKNOWN'}
+
+ {known ? sum(symptoms.map((s) => s.transmissibility)) + baseStats.transmissibility : 'UNKNOWN'}
+
diff --git a/tgui/public/tgui.bundle.js b/tgui/public/tgui.bundle.js
index f240c05d391..6b236fedffc 100644
--- a/tgui/public/tgui.bundle.js
+++ b/tgui/public/tgui.bundle.js
@@ -1 +1 @@
-(()=>{var e={4427:function(e,n,t){var r={"./pai_atmosphere.jsx":"4229","./pai_bioscan.jsx":"4341","./pai_directives.jsx":"5706","./pai_doorjack.jsx":"6582","./pai_main_menu.jsx":"4889","./pai_manifest.jsx":"1478","./pai_medrecords.jsx":"8695","./pai_messenger.jsx":"559","./pai_radio.jsx":"6097","./pai_secrecords.jsx":"1381","./pai_signaler.jsx":"226"};function i(e){return t(o(e))}function o(e){if(!t.o(r,e)){var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=4427},1552:function(e,n,t){var r={"./pda_atmos_scan.jsx":"4079","./pda_cookbook.jsx":"5683","./pda_games.jsx":"5715","./pda_janitor.jsx":"6116","./pda_main_menu.jsx":"2433","./pda_manifest.jsx":"7454","./pda_medical.jsx":"2017","./pda_messenger.jsx":"2555","./pda_minesweeper.jsx":"760","./pda_mule.jsx":"1706","./pda_nanobank.jsx":"1909","./pda_notes.jsx":"5450","./pda_power.jsx":"874","./pda_secbot.jsx":"6192","./pda_security.jsx":"1591","./pda_signaler.jsx":"3691","./pda_status_display.jsx":"7550","./pda_supplyrecords.jsx":"3041"};function i(e){return t(o(e))}function o(e){if(!t.o(r,e)){var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=1552},4337:function(e,n,t){var r={"./AICard":"2639","./AICard.jsx":"2639","./AIControllerDebugger":"6407","./AIControllerDebugger.tsx":"6407","./AIFixer":"2543","./AIFixer.jsx":"2543","./AIProgramPicker":"5817","./AIProgramPicker.jsx":"5817","./AIResourceManagementConsole":"2706","./AIResourceManagementConsole.jsx":"2706","./APC":"663","./APC.jsx":"663","./ATM":"3496","./ATM.jsx":"3496","./AccountsUplinkTerminal":"8189","./AccountsUplinkTerminal.jsx":"8189","./AdminAntagMenu":"7056","./AdminAntagMenu.jsx":"7056","./AgentCard":"3561","./AgentCard.tsx":"3561","./AiAirlock":"5931","./AiAirlock.jsx":"5931","./AirAlarm":"6273","./AirAlarm.jsx":"6273","./AirlockAccessController":"1769","./AirlockAccessController.jsx":"1769","./AirlockElectronics":"6311","./AirlockElectronics.tsx":"6311","./AlertModal":"6683","./AlertModal.tsx":"6683","./AppearanceChanger":"6952","./AppearanceChanger.jsx":"6952","./AtmosAlertConsole":"8544","./AtmosAlertConsole.jsx":"8544","./AtmosControl":"6543","./AtmosControl.jsx":"6543","./AtmosFilter":"4435","./AtmosFilter.jsx":"4435","./AtmosMixer":"9894","./AtmosMixer.jsx":"9894","./AtmosPump":"95","./AtmosPump.jsx":"95","./AtmosTankControl":"3025","./AtmosTankControl.jsx":"3025","./AugmentMenu":"3383","./AugmentMenu.jsx":"3383","./Autolathe":"4820","./Autolathe.tsx":"4820","./BioChipPad":"7978","./BioChipPad.jsx":"7978","./Biogenerator":"9112","./Biogenerator.jsx":"9112","./BloomEdit":"9975","./BloomEdit.jsx":"9975","./BlueSpaceArtilleryControl":"5854","./BlueSpaceArtilleryControl.jsx":"5854","./BluespaceTap":"4758","./BluespaceTap.jsx":"4758","./BodyScanner":"5643","./BodyScanner.jsx":"5643","./BookBinder":"3854","./BookBinder.jsx":"3854","./BotCall":"6823","./BotCall.jsx":"6823","./BotClean":"4208","./BotClean.jsx":"4208","./BotFloor":"1340","./BotFloor.jsx":"1340","./BotHonk":"27","./BotHonk.jsx":"27","./BotMed":"2494","./BotMed.jsx":"2494","./BotSecurity":"3165","./BotSecurity.jsx":"3165","./BrigCells":"4216","./BrigCells.jsx":"4216","./BrigTimer":"6017","./BrigTimer.jsx":"6017","./CameraConsole":"8107","./CameraConsole.tsx":"8107","./Canister":"8177","./Canister.jsx":"8177","./CardComputer":"4594","./CardComputer.jsx":"4594","./CargoConsole":"5198","./CargoConsole.jsx":"5198","./Chameleon":"4014","./Chameleon.tsx":"4014","./ChangelogView":"2110","./ChangelogView.jsx":"2110","./CheckboxListInputModal":"5064","./CheckboxListInputModal.tsx":"5064","./ChemDispenser":"3536","./ChemDispenser.jsx":"3536","./ChemHeater":"3741","./ChemHeater.jsx":"3741","./ChemMaster":"5625","./ChemMaster.tsx":"5625","./CloningConsole":"6889","./CloningConsole.jsx":"6889","./CloningPod":"1102","./CloningPod.jsx":"1102","./CoinMint":"140","./CoinMint.tsx":"140","./ColorPickerModal":"7017","./ColorPickerModal.tsx":"7017","./ColourMatrixTester":"2418","./ColourMatrixTester.jsx":"2418","./CommunicationsComputer":"9171","./CommunicationsComputer.jsx":"9171","./CompostBin":"5544","./CompostBin.jsx":"5544","./Contractor":"7103","./Contractor.jsx":"7103","./ConveyorSwitch":"5601","./ConveyorSwitch.jsx":"5601","./CrewMonitor":"2498","./CrewMonitor.jsx":"2498","./Cryo":"8356","./Cryo.jsx":"8356","./CryopodConsole":"7828","./CryopodConsole.jsx":"7828","./DNAModifier":"6525","./DNAModifier.tsx":"6525","./DecalPainter":"7591","./DecalPainter.tsx":"7591","./DestinationTagger":"8950","./DestinationTagger.jsx":"8950","./DisposalBin":"202","./DisposalBin.jsx":"202","./DnaVault":"9561","./DnaVault.jsx":"9561","./DroneConsole":"6072","./DroneConsole.jsx":"6072","./EFTPOS":"2969","./EFTPOS.jsx":"2969","./ERTManager":"6429","./ERTManager.jsx":"6429","./EconomyManager":"6954","./EconomyManager.jsx":"6954","./Electropack":"2170","./Electropack.jsx":"2170","./Emojipedia":"1285","./Emojipedia.tsx":"1285","./EvolutionMenu":"7213","./EvolutionMenu.jsx":"7213","./ExosuitFabricator":"3413","./ExosuitFabricator.jsx":"3413","./ExperimentConsole":"1727","./ExperimentConsole.jsx":"1727","./ExternalAirlockController":"7317","./ExternalAirlockController.jsx":"7317","./FaxMachine":"7290","./FaxMachine.jsx":"7290","./FilingCabinet":"4363","./FilingCabinet.jsx":"4363","./FloorPainter":"5870","./FloorPainter.jsx":"5870","./GPS":"1541","./GPS.jsx":"1541","./GeneModder":"3310","./GeneModder.jsx":"3310","./GenericCrewManifest":"6696","./GenericCrewManifest.jsx":"6696","./GhostHudPanel":"6013","./GhostHudPanel.jsx":"6013","./GlandDispenser":"6726","./GlandDispenser.jsx":"6726","./GravityGen":"5490","./GravityGen.jsx":"5490","./GuestPass":"3172","./GuestPass.jsx":"3172","./HandheldChemDispenser":"6898","./HandheldChemDispenser.jsx":"6898","./HealthSensor":"2036","./HealthSensor.jsx":"2036","./Holodeck":"3288","./Holodeck.tsx":"3288","./Instrument":"5553","./Instrument.jsx":"5553","./KeyComboModal":"772","./KeyComboModal.tsx":"772","./KeycardAuth":"1888","./KeycardAuth.jsx":"1888","./KitchenMachine":"2248","./KitchenMachine.jsx":"2248","./LawManager":"4055","./LawManager.tsx":"4055","./LibraryComputer":"2038","./LibraryComputer.jsx":"2038","./LibraryManager":"4713","./LibraryManager.jsx":"4713","./ListInputModal":"3868","./ListInputModal.tsx":"3868","./Loadout":"2684","./Loadout.tsx":"2684","./MODsuit":"6027","./MODsuit.tsx":"6027","./MagnetController":"3330","./MagnetController.jsx":"3330","./MechBayConsole":"1219","./MechBayConsole.jsx":"1219","./MechaControlConsole":"8721","./MechaControlConsole.jsx":"8721","./MedicalRecords":"6984","./MedicalRecords.jsx":"6984","./MerchVendor":"6579","./MerchVendor.jsx":"6579","./MiningVendor":"6992","./MiningVendor.jsx":"6992","./NTRecruiter":"515","./NTRecruiter.jsx":"515","./Newscaster":"6654","./Newscaster.jsx":"6654","./Noticeboard":"7728","./Noticeboard.tsx":"7728","./NuclearBomb":"1423","./NuclearBomb.jsx":"1423","./NumberInputModal":"3775","./NumberInputModal.tsx":"3775","./OperatingComputer":"6891","./OperatingComputer.jsx":"6891","./Orbit":"8904","./Orbit.jsx":"8904","./OreRedemption":"6669","./OreRedemption.jsx":"6669","./PAI":"1405","./PAI.jsx":"1405","./PDA":"2699","./PDA.jsx":"2699","./Pacman":"2031","./Pacman.jsx":"2031","./PanDEMIC":"4174","./PanDEMIC.tsx":"4174","./ParticleAccelerator":"5639","./ParticleAccelerator.jsx":"5639","./PdaPainter":"975","./PdaPainter.jsx":"975","./PersonalCrafting":"6272","./PersonalCrafting.jsx":"6272","./Photocopier":"4319","./Photocopier.jsx":"4319","./PoolController":"174","./PoolController.jsx":"174","./PortablePump":"23","./PortablePump.jsx":"23","./PortableScrubber":"9845","./PortableScrubber.jsx":"9845","./PortableTurret":"1908","./PortableTurret.jsx":"1908","./PowerMonitor":"5686","./PowerMonitor.tsx":"5686","./PrisonerImplantManager":"8598","./PrisonerImplantManager.jsx":"8598","./PrisonerShuttleConsole":"6284","./PrisonerShuttleConsole.jsx":"6284","./PrizeCounter":"1434","./PrizeCounter.tsx":"1434","./RCD":"8386","./RCD.tsx":"8386","./RPD":"9","./RPD.jsx":"9","./Radio":"5307","./Radio.tsx":"5307","./RankedListInputModal":"2905","./RankedListInputModal.tsx":"2905","./ReagentGrinder":"8712","./ReagentGrinder.jsx":"8712","./ReagentsEditor":"8992","./ReagentsEditor.tsx":"8992","./RemoteSignaler":"6120","./RemoteSignaler.jsx":"6120","./RequestConsole":"3737","./RequestConsole.jsx":"3737","./RndBackupConsole":"5473","./RndBackupConsole.jsx":"5473","./RndConsole":"9244","./RndConsole/":"9244","./RndConsole/AnalyzerMenu":"8847","./RndConsole/AnalyzerMenu.jsx":"8847","./RndConsole/DataDiskMenu":"4761","./RndConsole/DataDiskMenu.jsx":"4761","./RndConsole/LatheCategory":"4765","./RndConsole/LatheCategory.jsx":"4765","./RndConsole/LatheChemicalStorage":"4579","./RndConsole/LatheChemicalStorage.jsx":"4579","./RndConsole/LatheMainMenu":"9970","./RndConsole/LatheMainMenu.jsx":"9970","./RndConsole/LatheMaterialStorage":"3780","./RndConsole/LatheMaterialStorage.jsx":"3780","./RndConsole/LatheMaterials":"8642","./RndConsole/LatheMaterials.jsx":"8642","./RndConsole/LatheMenu":"1465","./RndConsole/LatheMenu.jsx":"1465","./RndConsole/LatheSearch":"9986","./RndConsole/LatheSearch.jsx":"9986","./RndConsole/LinkMenu":"7946","./RndConsole/LinkMenu.jsx":"7946","./RndConsole/SettingsMenu":"9769","./RndConsole/SettingsMenu.jsx":"9769","./RndConsole/index":"9244","./RndConsole/index.jsx":"9244","./RndNetController":"3","./RndNetController.jsx":"3","./RndServer":"1830","./RndServer.jsx":"1830","./RobotSelfDiagnosis":"3166","./RobotSelfDiagnosis.jsx":"3166","./RoboticsControlConsole":"7558","./RoboticsControlConsole.jsx":"7558","./Safe":"6024","./Safe.jsx":"6024","./SatelliteControl":"288","./SatelliteControl.jsx":"288","./SecureStorage":"8610","./SecureStorage.jsx":"8610","./SecurityRecords":"1955","./SecurityRecords.jsx":"1955","./SeedExtractor":"1995","./SeedExtractor.tsx":"1995","./ShuttleConsole":"4681","./ShuttleConsole.jsx":"4681","./ShuttleManipulator":"9618","./ShuttleManipulator.jsx":"9618","./SingularityMonitor":"543","./SingularityMonitor.jsx":"543","./Sleeper":"4952","./Sleeper.tsx":"4952","./SlotMachine":"6515","./SlotMachine.jsx":"6515","./Smartfridge":"9138","./Smartfridge.jsx":"9138","./Smes":"3900","./Smes.tsx":"3900","./SolarControl":"3873","./SolarControl.jsx":"3873","./SpawnersMenu":"4035","./SpawnersMenu.jsx":"4035","./SpecMenu":"2361","./SpecMenu.jsx":"2361","./StackCraft":"2011","./StackCraft.tsx":"2011","./StationAlertConsole":"7115","./StationAlertConsole.jsx":"7115","./StationTraitsPanel":"575","./StationTraitsPanel.tsx":"575","./StripMenu":"1687","./StripMenu.tsx":"1687","./SuitStorage":"9508","./SuitStorage.jsx":"9508","./SupermatterMonitor":"178","./SupermatterMonitor.tsx":"178","./SyndicateComputerSimple":"2859","./SyndicateComputerSimple.jsx":"2859","./TEG":"6725","./TEG.jsx":"6725","./TachyonArray":"1522","./TachyonArray.jsx":"1522","./Tank":"131","./Tank.jsx":"131","./TankDispenser":"7383","./TankDispenser.jsx":"7383","./TcommsCore":"3866","./TcommsCore.jsx":"3866","./TcommsRelay":"5793","./TcommsRelay.jsx":"5793","./Teleporter":"8956","./Teleporter.jsx":"8956","./TelescienceConsole":"951","./TelescienceConsole.jsx":"951","./TempGun":"326","./TempGun.jsx":"326","./TextInputModal":"5113","./TextInputModal.tsx":"5113","./ThermoMachine":"3308","./ThermoMachine.jsx":"3308","./TransferValve":"3184","./TransferValve.jsx":"3184","./TurbineComputer":"7657","./TurbineComputer.jsx":"7657","./Uplink":"6941","./Uplink.tsx":"6941","./Vending":"3653","./Vending.jsx":"3653","./VolumeMixer":"3479","./VolumeMixer.jsx":"3479","./VotePanel":"9294","./VotePanel.jsx":"9294","./Wires":"473","./Wires.jsx":"473","./WizardApprenticeContract":"8420","./WizardApprenticeContract.jsx":"8420","./common/AccessList":"8986","./common/AccessList.tsx":"8986","./common/AtmosScan":"8665","./common/AtmosScan.tsx":"8665","./common/BeakerContents":"8124","./common/BeakerContents.tsx":"8124","./common/BotStatus":"4647","./common/BotStatus.jsx":"4647","./common/ComplexModal":"5279","./common/ComplexModal.jsx":"5279","./common/CrewManifest":"2997","./common/CrewManifest.jsx":"2997","./common/InputButtons":"3100","./common/InputButtons.tsx":"3100","./common/InterfaceLockNoticeBox":"4278","./common/InterfaceLockNoticeBox.jsx":"4278","./common/Loader":"4799","./common/Loader.tsx":"4799","./common/LoginInfo":"8061","./common/LoginInfo.jsx":"8061","./common/LoginScreen":"8575","./common/LoginScreen.jsx":"8575","./common/Operating":"1735","./common/Operating.tsx":"1735","./common/SearchableTableContext":"4220","./common/SearchableTableContext.tsx":"4220","./common/Signaler":"1675","./common/Signaler.jsx":"1675","./common/SimpleRecords":"2763","./common/SimpleRecords.jsx":"2763","./common/SortableTableContext":"7484","./common/SortableTableContext.tsx":"7484","./common/TabsContext":"9576","./common/TabsContext.tsx":"9576","./common/TemporaryNotice":"7389","./common/TemporaryNotice.jsx":"7389","./goonstation_PTL":"3387","./goonstation_PTL/":"3387","./goonstation_PTL/index":"3387","./goonstation_PTL/index.jsx":"3387","./pai/pai_atmosphere":"4229","./pai/pai_atmosphere.jsx":"4229","./pai/pai_bioscan":"4341","./pai/pai_bioscan.jsx":"4341","./pai/pai_directives":"5706","./pai/pai_directives.jsx":"5706","./pai/pai_doorjack":"6582","./pai/pai_doorjack.jsx":"6582","./pai/pai_main_menu":"4889","./pai/pai_main_menu.jsx":"4889","./pai/pai_manifest":"1478","./pai/pai_manifest.jsx":"1478","./pai/pai_medrecords":"8695","./pai/pai_medrecords.jsx":"8695","./pai/pai_messenger":"559","./pai/pai_messenger.jsx":"559","./pai/pai_radio":"6097","./pai/pai_radio.jsx":"6097","./pai/pai_secrecords":"1381","./pai/pai_secrecords.jsx":"1381","./pai/pai_signaler":"226","./pai/pai_signaler.jsx":"226","./pda/pda_atmos_scan":"4079","./pda/pda_atmos_scan.jsx":"4079","./pda/pda_cookbook":"5683","./pda/pda_cookbook.jsx":"5683","./pda/pda_games":"5715","./pda/pda_games.jsx":"5715","./pda/pda_janitor":"6116","./pda/pda_janitor.jsx":"6116","./pda/pda_main_menu":"2433","./pda/pda_main_menu.jsx":"2433","./pda/pda_manifest":"7454","./pda/pda_manifest.jsx":"7454","./pda/pda_medical":"2017","./pda/pda_medical.jsx":"2017","./pda/pda_messenger":"2555","./pda/pda_messenger.jsx":"2555","./pda/pda_minesweeper":"760","./pda/pda_minesweeper.jsx":"760","./pda/pda_mule":"1706","./pda/pda_mule.jsx":"1706","./pda/pda_nanobank":"1909","./pda/pda_nanobank.jsx":"1909","./pda/pda_notes":"5450","./pda/pda_notes.jsx":"5450","./pda/pda_power":"874","./pda/pda_power.jsx":"874","./pda/pda_secbot":"6192","./pda/pda_secbot.jsx":"6192","./pda/pda_security":"1591","./pda/pda_security.jsx":"1591","./pda/pda_signaler":"3691","./pda/pda_signaler.jsx":"3691","./pda/pda_status_display":"7550","./pda/pda_status_display.jsx":"7550","./pda/pda_supplyrecords":"3041","./pda/pda_supplyrecords.jsx":"3041"};function i(e){return t(o(e))}function o(e){if(!t.o(r,e)){var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=4337},424:function(e,n,t){var r={"./ByondUi.stories.js":"6123","./Storage.stories.js":"2688","./Themes.stories.js":"6419"};function i(e){return t(o(e))}function o(e){if(!t.o(r,e)){var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=424},3579:function(e,n,t){"use strict";function r(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}var i,o=t(1171),l=t(2778),a=t(9807);function c(e){var n="https://react.dev/errors/"+e;if(1D||(e.current=N[D],N[D]=null,D--)}function K(e,n){N[++D]=e.current,e.current=n}var L=q(null),$=q(null),B=q(null),F=q(null);function V(e,n){switch(K(B,n),K($,e),K(L,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?sl(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)e=sa(n=sl(n),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}M(L),K(L,e)}function U(){M(L),M($),M(B)}function W(e){null!==e.memoizedState&&K(F,e);var n=L.current,t=sa(n,e.type);n!==t&&(K($,e),K(L,t))}function G(e){$.current===e&&(M(L),M($)),F.current===e&&(M(F),sJ._currentValue=T)}var Q=Object.prototype.hasOwnProperty,J=o.unstable_scheduleCallback,Y=o.unstable_cancelCallback,X=o.unstable_shouldYield,Z=o.unstable_requestPaint,ee=o.unstable_now,en=o.unstable_getCurrentPriorityLevel,et=o.unstable_ImmediatePriority,er=o.unstable_UserBlockingPriority,ei=o.unstable_NormalPriority,eo=o.unstable_LowPriority,el=o.unstable_IdlePriority,ea=o.log,ec=o.unstable_setDisableYieldValue,es=null,eu=null;function ed(e){if("function"==typeof ea&&ec(e),eu&&"function"==typeof eu.setStrictMode)try{eu.setStrictMode(es,e)}catch(e){}}var ef=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(eh(e)/em|0)|0},eh=Math.log,em=Math.LN2,ex=256,ep=4194304;function ej(e){var n=42&e;if(0!==n)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function eg(e,n,t){var r=e.pendingLanes;if(0===r)return 0;var i=0,o=e.suspendedLanes,l=e.pingedLanes;e=e.warmLanes;var a=0x7ffffff&r;return 0!==a?0!=(r=a&~o)?i=ej(r):0!=(l&=a)?i=ej(l):t||0!=(t=a&~e)&&(i=ej(t)):0!=(a=r&~o)?i=ej(a):0!==l?i=ej(l):t||0!=(t=r&~e)&&(i=ej(t)),0===i?0:0!==n&&n!==i&&0==(n&o)&&((o=i&-i)>=(t=n&-n)||32===o&&0!=(4194048&t))?n:i}function eb(e,n){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)}function ey(){var e=ex;return 0==(4194048&(ex<<=1))&&(ex=256),e}function ev(){var e=ep;return 0==(0x3c00000&(ep<<=1))&&(ep=4194304),e}function ew(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function ek(e,n){e.pendingLanes|=n,0x10000000!==n&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function e_(e,n,t){e.pendingLanes|=n,e.suspendedLanes&=~n;var r=31-ef(n);e.entangledLanes|=n,e.entanglements[r]=0x40000000|e.entanglements[r]|4194090&t}function eC(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-ef(t),i=1<)":-1o||s[i]!==u[o]){var d="\n"+s[i].replace(" at new "," at ");return e.displayName&&d.includes("")&&(d=d.replace("",e.displayName)),d}while(1<=i&&0<=o);break}}}finally{e1=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:"")?e0(t):""}function e5(e){try{var n="";do n+=function(e){switch(e.tag){case 26:case 27:case 5:return e0(e.type);case 16:return e0("Lazy");case 13:return e0("Suspense");case 19:return e0("SuspenseList");case 0:case 15:return e2(e.type,!1);case 11:return e2(e.type.render,!1);case 1:return e2(e.type,!0);case 31:return e0("Activity");default:return""}}(e),e=e.return;while(e);return n}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}function e3(e){switch(void 0===e?"undefined":r(e)){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function e8(e){var n=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===n||"radio"===n)}function e7(e){e._valueTracker||(e._valueTracker=function(e){var n=e8(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&void 0!==t&&"function"==typeof t.get&&"function"==typeof t.set){var i=t.get,o=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}(e))}function e4(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=e8(e)?e.checked?"true":"false":e.value),(e=r)!==t&&(n.setValue(e),!0)}function e9(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}var e6=/[\n"\\]/g;function ne(e){return e.replace(e6,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function nn(e,n,t,i,o,l,a,c){e.name="",null!=a&&"function"!=typeof a&&"symbol"!==(void 0===a?"undefined":r(a))&&"boolean"!=typeof a?e.type=a:e.removeAttribute("type"),null!=n?"number"===a?(0===n&&""===e.value||e.value!=n)&&(e.value=""+e3(n)):e.value!==""+e3(n)&&(e.value=""+e3(n)):"submit"!==a&&"reset"!==a||e.removeAttribute("value"),null!=n?nr(e,a,e3(n)):null!=t?nr(e,a,e3(t)):null!=i&&e.removeAttribute("value"),null==o&&null!=l&&(e.defaultChecked=!!l),null!=o&&(e.checked=o&&"function"!=typeof o&&"symbol"!==(void 0===o?"undefined":r(o))),null!=c&&"function"!=typeof c&&"symbol"!==(void 0===c?"undefined":r(c))&&"boolean"!=typeof c?e.name=""+e3(c):e.removeAttribute("name")}function nt(e,n,t,i,o,l,a,c){if(null!=l&&"function"!=typeof l&&"symbol"!==(void 0===l?"undefined":r(l))&&"boolean"!=typeof l&&(e.type=l),null!=n||null!=t){if(("submit"===l||"reset"===l)&&null==n)return;t=null!=t?""+e3(t):"",n=null!=n?""+e3(n):t,c||n===e.value||(e.value=n),e.defaultValue=n}i="function"!=typeof(i=null!=i?i:o)&&"symbol"!==(void 0===i?"undefined":r(i))&&!!i,e.checked=c?e.checked:!!i,e.defaultChecked=!!i,null!=a&&"function"!=typeof a&&"symbol"!==(void 0===a?"undefined":r(a))&&"boolean"!=typeof a&&(e.name=a)}function nr(e,n,t){"number"===n&&e9(e.ownerDocument)===e||e.defaultValue===""+t||(e.defaultValue=""+t)}function ni(e,n,t,r){if(e=e.options,n){n={};for(var i=0;i=n6),tt=!1;function tr(e,n){switch(e){case"keyup":return -1!==n4.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ti(e){return"object"===(void 0===(e=e.detail)?"undefined":r(e))&&"data"in e?e.data:null}var to=!1,tl={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function ta(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===n?!!tl[e.type]:"textarea"===n}function tc(e,n,t,r){nj?ng?ng.push(r):ng=[r]:nj=r,0<(n=c2(n,"onChange")).length&&(t=new nK("onChange","change",null,t,r),e.push({event:t,listeners:n}))}var ts=null,tu=null;function td(e){cG(e,0)}function tf(e){if(e4(eL(e)))return e}function th(e,n){if("change"===e)return n}var tm=!1;if(nk){if(nk){var tx="oninput"in document;if(!tx){var tp=document.createElement("div");tp.setAttribute("oninput","return;"),tx="function"==typeof tp.oninput}i=tx}else i=!1;tm=i&&(!document.documentMode||9=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=tC(r)}}function tI(e){var n,t;e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var r=e9(e.document);n=r,null!=(t=e.HTMLIFrameElement)&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](n):n instanceof t;){try{var i="string"==typeof r.contentWindow.location.href}catch(e){i=!1}if(i)e=r.contentWindow;else break;r=e9(e.document)}return r}function tA(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}var tO=nk&&"documentMode"in document&&11>=document.documentMode,tz=null,tP=null,tR=null,tE=!1;function tH(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;tE||null==tz||tz!==e9(r)||(r="selectionStart"in(r=tz)&&tA(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},tR&&t_(tR,r)||(tR=r,0<(r=c2(tP,"onSelect")).length&&(n=new nK("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=tz)))}function tT(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var tN={animationend:tT("Animation","AnimationEnd"),animationiteration:tT("Animation","AnimationIteration"),animationstart:tT("Animation","AnimationStart"),transitionrun:tT("Transition","TransitionRun"),transitionstart:tT("Transition","TransitionStart"),transitioncancel:tT("Transition","TransitionCancel"),transitionend:tT("Transition","TransitionEnd")},tD={},tq={};function tM(e){if(tD[e])return tD[e];if(!tN[e])return e;var n,t=tN[e];for(n in t)if(t.hasOwnProperty(n)&&n in tq)return tD[e]=t[n];return e}nk&&(tq=document.createElement("div").style,"AnimationEvent"in window||(delete tN.animationend.animation,delete tN.animationiteration.animation,delete tN.animationstart.animation),"TransitionEvent"in window||delete tN.transitionend.transition);var tK=tM("animationend"),tL=tM("animationiteration"),t$=tM("animationstart"),tB=tM("transitionrun"),tF=tM("transitionstart"),tV=tM("transitioncancel"),tU=tM("transitionend"),tW=new Map,tG="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function tQ(e,n){tW.set(e,n),eU(n,[e])}tG.push("scrollEnd");var tJ=new WeakMap;function tY(e,n){if("object"===(void 0===e?"undefined":r(e))&&null!==e){var t=tJ.get(e);return void 0!==t?t:(n={value:e,source:n,stack:e5(n)},tJ.set(e,n),n)}return{value:e,source:n,stack:e5(n)}}var tX=[],tZ=0,t0=0;function t1(){for(var e=tZ,n=t0=tZ=0;n>=l,i-=l,rm=1<<32-ef(n)+i|t<l?l:8;var a=E.T,c={};E.T=c,oL(e,!1,n,t);try{var s=o(),u=E.S;if(null!==u&&u(c,s),null!==s&&"object"===(void 0===s?"undefined":r(s))&&"function"==typeof s.then){var d,f,h=(d=[],f={status:"pending",value:null,reason:null,then:function(e){d.push(e)}},s.then(function(){f.status="fulfilled",f.value=i;for(var e=0;ef?(m=d,d=null):m=d.sibling;var x=j(r,d,a[f],c);if(null===x){null===d&&(d=m);break}e&&d&&null===x.alternate&&n(r,d),o=l(x,o,f),null===u?s=x:u.sibling=x,u=x,d=m}if(f===a.length)return t(r,d),rw&&rp(r,f),s;if(null===d){for(;fm?(x=f,f=null):x=f.sibling;var b=j(r,f,p.value,s);if(null===b){null===f&&(f=x);break}e&&f&&null===b.alternate&&n(r,f),o=l(b,o,m),null===d?u=b:d.sibling=b,d=b,f=x}if(p.done)return t(r,f),rw&&rp(r,m),u;if(null===f){for(;!p.done;m++,p=a.next())null!==(p=h(r,p.value,s))&&(o=l(p,o,m),null===d?u=p:d.sibling=p,d=p);return rw&&rp(r,m),u}for(f=i(f);!p.done;m++,p=a.next())null!==(p=g(f,r,m,p.value,s))&&(e&&null!==p.alternate&&f.delete(null===p.key?m:p.key),o=l(p,o,m),null===d?u=p:d.sibling=p,d=p);return e&&f.forEach(function(e){return n(r,e)}),rw&&rp(r,m),u}(u,d,f=y.call(f),b)}if("function"==typeof f.then)return s(u,d,oY(f),b);if(f.$$typeof===v)return s(u,d,rF(u,f),b);oZ(u,f)}return"string"==typeof f&&""!==f||"number"==typeof f||"bigint"===(void 0===f?"undefined":r(f))?(f=""+f,null!==d&&6===d.tag?(t(u,d.sibling),(b=o(d,f)).return=u):(t(u,d),(b=ro(f,u.mode,b)).return=u),a(u=b)):t(u,d)}(s,u,d,f);return oQ=null,b}catch(e){if(e===r9||e===ie)throw e;var y=t6(29,e,null,s.mode);return y.lanes=f,y.return=s,y}finally{}}}var o2=o1(!0),o5=o1(!1),o3=q(null),o8=null;function o7(e){var n=e.alternate;K(le,1&le.current),K(o3,e),null===o8&&(null===n||null!==iw.current?o8=e:null!==n.memoizedState&&(o8=e))}function o4(e){if(22===e.tag){if(K(le,le.current),K(o3,e),null===o8){var n=e.alternate;null!==n&&null!==n.memoizedState&&(o8=e)}}else o9(e)}function o9(){K(le,le.current),K(o3,o3.current)}function o6(e){M(o3),o8===e&&(o8=null),M(le)}var le=q(0);function ln(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||"$?"===t.data||sg(t)))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!=(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function lt(e,n,t,r){t=null==(t=t(r,n=e.memoizedState))?n:f({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var lr={enqueueSetState:function(e,n,t){e=e._reactInternals;var r=a8(),i=ih(r);i.payload=n,null!=t&&(i.callback=t),null!==(n=im(e,i,r))&&(a4(n,e,r),ix(n,e,r))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=a8(),i=ih(r);i.tag=1,i.payload=n,null!=t&&(i.callback=t),null!==(n=im(e,i,r))&&(a4(n,e,r),ix(n,e,r))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=a8(),r=ih(t);r.tag=2,null!=n&&(r.callback=n),null!==(n=im(e,r,t))&&(a4(n,e,t),ix(n,e,t))}};function li(e,n,t,r,i,o,l){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,l):!n.prototype||!n.prototype.isPureReactComponent||!t_(t,r)||!t_(i,o)}function lo(e,n,t,r){e=n.state,"function"==typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),"function"==typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&lr.enqueueReplaceState(n,n.state,null)}function ll(e,n){var t=n;if("ref"in n)for(var r in t={},n)"ref"!==r&&(t[r]=n[r]);if(e=e.defaultProps)for(var i in t===n&&(t=f({},t)),e)void 0===t[i]&&(t[i]=e[i]);return t}var la="function"==typeof reportError?reportError:function(e){if("object"===("undefined"==typeof window?"undefined":r(window))&&"function"==typeof window.ErrorEvent){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"===(void 0===e?"undefined":r(e))&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if("object"===("undefined"==typeof process?"undefined":r(process))&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function lc(e){la(e)}function ls(e){console.error(e)}function lu(e){la(e)}function ld(e,n){try{(0,e.onUncaughtError)(n.value,{componentStack:n.stack})}catch(e){setTimeout(function(){throw e})}}function lf(e,n,t){try{(0,e.onCaughtError)(t.value,{componentStack:t.stack,errorBoundary:1===n.tag?n.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function lh(e,n,t){return(t=ih(t)).tag=3,t.payload={element:null},t.callback=function(){ld(e,n)},t}function lm(e){return(e=ih(e)).tag=3,e}function lx(e,n,t,r){var i=t.type.getDerivedStateFromError;if("function"==typeof i){var o=r.value;e.payload=function(){return i(o)},e.callback=function(){lf(n,t,r)}}var l=t.stateNode;null!==l&&"function"==typeof l.componentDidCatch&&(e.callback=function(){lf(n,t,r),"function"!=typeof i&&(null===aQ?aQ=new Set([this]):aQ.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var lp=Error(c(461)),lj=!1;function lg(e,n,t,r){n.child=null===e?o5(n,null,t,r):o2(n,e.child,t,r)}function lb(e,n,t,r,i){t=t.render;var o=n.ref;if("ref"in r){var l={};for(var a in r)"ref"!==a&&(l[a]=r[a])}else l=r;return(r$(n),r=iK(e,n,t,l,o,i),a=iF(),null===e||lj)?(rw&&a&&rg(n),n.flags|=1,lg(e,n,r,i),n.child):(iV(e,n,i),lM(e,n,i))}function ly(e,n,t,r,i){if(null===e){var o=t.type;return"function"!=typeof o||re(o)||void 0!==o.defaultProps||null!==t.compare?((e=rr(t.type,null,r,n,n.mode,i)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=o,lv(e,n,o,r,i))}if(o=e.child,!lK(e,i)){var l=o.memoizedProps;if((t=null!==(t=t.compare)?t:t_)(l,r)&&e.ref===n.ref)return lM(e,n,i)}return n.flags|=1,(e=rn(o,r)).ref=n.ref,e.return=n,n.child=e}function lv(e,n,t,r,i){if(null!==e){var o=e.memoizedProps;if(t_(o,r)&&e.ref===n.ref)if(lj=!1,n.pendingProps=r=o,!lK(e,i))return n.lanes=e.lanes,lM(e,n,i);else 0!=(131072&e.flags)&&(lj=!0)}return lC(e,n,t,r,i)}function lw(e,n,t){var r=n.pendingProps,i=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode){if(0!=(128&n.flags)){if(r=null!==o?o.baseLanes|t:t,null!==e){for(o=0,i=n.child=e.child;null!==i;)o=o|i.lanes|i.childLanes,i=i.sibling;n.childLanes=o&~r}else n.childLanes=0,n.child=null;return lk(e,n,r,t)}if(0==(0x20000000&t))return n.lanes=n.childLanes=0x20000000,lk(e,n,null!==o?o.baseLanes|t:t,t);n.memoizedState={baseLanes:0,cachePool:null},null!==e&&r7(n,null!==o?o.cachePool:null),null!==o?i_(n,o):iC(),o4(n)}else null!==o?(r7(n,o.cachePool),i_(n,o),o9(n),n.memoizedState=null):(null!==e&&r7(n,null),iC(),o9(n));return lg(e,n,i,t),n.child}function lk(e,n,t,r){var i=r8();return n.memoizedState={baseLanes:t,cachePool:i=null===i?null:{parent:rQ._currentValue,pool:i}},null!==e&&r7(n,null),iC(),o4(n),null!==e&&rK(e,n,r,!0),null}function l_(e,n){var t=n.ref;if(null===t)null!==e&&null!==e.ref&&(n.flags|=4194816);else{if("function"!=typeof t&&"object"!==(void 0===t?"undefined":r(t)))throw Error(c(284));(null===e||e.ref!==t)&&(n.flags|=4194816)}}function lC(e,n,t,r,i){return(r$(n),t=iK(e,n,t,r,void 0,i),r=iF(),null===e||lj)?(rw&&r&&rg(n),n.flags|=1,lg(e,n,t,i),n.child):(iV(e,n,i),lM(e,n,i))}function lS(e,n,t,r,i,o){return(r$(n),n.updateQueue=null,t=i$(n,r,t,i),iL(e),r=iF(),null===e||lj)?(rw&&r&&rg(n),n.flags|=1,lg(e,n,t,o),n.child):(iV(e,n,o),lM(e,n,o))}function lI(e,n,t,i,o){if(r$(n),null===n.stateNode){var l=t4,a=t.contextType;"object"===(void 0===a?"undefined":r(a))&&null!==a&&(l=rB(a)),n.memoizedState=null!==(l=new t(i,l)).state&&void 0!==l.state?l.state:null,l.updater=lr,n.stateNode=l,l._reactInternals=n,(l=n.stateNode).props=i,l.state=n.memoizedState,l.refs={},iu(n),a=t.contextType,l.context="object"===(void 0===a?"undefined":r(a))&&null!==a?rB(a):t4,l.state=n.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(lt(n,t,a,i),l.state=n.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof l.getSnapshotBeforeUpdate||"function"!=typeof l.UNSAFE_componentWillMount&&"function"!=typeof l.componentWillMount||(a=l.state,"function"==typeof l.componentWillMount&&l.componentWillMount(),"function"==typeof l.UNSAFE_componentWillMount&&l.UNSAFE_componentWillMount(),a!==l.state&&lr.enqueueReplaceState(l,l.state,null),ib(n,i,l,o),ig(),l.state=n.memoizedState),"function"==typeof l.componentDidMount&&(n.flags|=4194308),i=!0}else if(null===e){l=n.stateNode;var c=n.memoizedProps,s=ll(t,c);l.props=s;var u=l.context,d=t.contextType;a=t4,"object"===(void 0===d?"undefined":r(d))&&null!==d&&(a=rB(d));var f=t.getDerivedStateFromProps;d="function"==typeof f||"function"==typeof l.getSnapshotBeforeUpdate,c=n.pendingProps!==c,d||"function"!=typeof l.UNSAFE_componentWillReceiveProps&&"function"!=typeof l.componentWillReceiveProps||(c||u!==a)&&lo(n,l,i,a),is=!1;var h=n.memoizedState;l.state=h,ib(n,i,l,o),ig(),u=n.memoizedState,c||h!==u||is?("function"==typeof f&&(lt(n,t,f,i),u=n.memoizedState),(s=is||li(n,t,s,i,h,u,a))?(d||"function"!=typeof l.UNSAFE_componentWillMount&&"function"!=typeof l.componentWillMount||("function"==typeof l.componentWillMount&&l.componentWillMount(),"function"==typeof l.UNSAFE_componentWillMount&&l.UNSAFE_componentWillMount()),"function"==typeof l.componentDidMount&&(n.flags|=4194308)):("function"==typeof l.componentDidMount&&(n.flags|=4194308),n.memoizedProps=i,n.memoizedState=u),l.props=i,l.state=u,l.context=a,i=s):("function"==typeof l.componentDidMount&&(n.flags|=4194308),i=!1)}else{l=n.stateNode,id(e,n),d=ll(t,a=n.memoizedProps),l.props=d,f=n.pendingProps,h=l.context,u=t.contextType,s=t4,"object"===(void 0===u?"undefined":r(u))&&null!==u&&(s=rB(u)),(u="function"==typeof(c=t.getDerivedStateFromProps)||"function"==typeof l.getSnapshotBeforeUpdate)||"function"!=typeof l.UNSAFE_componentWillReceiveProps&&"function"!=typeof l.componentWillReceiveProps||(a!==f||h!==s)&&lo(n,l,i,s),is=!1,h=n.memoizedState,l.state=h,ib(n,i,l,o),ig();var m=n.memoizedState;a!==f||h!==m||is||null!==e&&null!==e.dependencies&&rL(e.dependencies)?("function"==typeof c&&(lt(n,t,c,i),m=n.memoizedState),(d=is||li(n,t,d,i,h,m,s)||null!==e&&null!==e.dependencies&&rL(e.dependencies))?(u||"function"!=typeof l.UNSAFE_componentWillUpdate&&"function"!=typeof l.componentWillUpdate||("function"==typeof l.componentWillUpdate&&l.componentWillUpdate(i,m,s),"function"==typeof l.UNSAFE_componentWillUpdate&&l.UNSAFE_componentWillUpdate(i,m,s)),"function"==typeof l.componentDidUpdate&&(n.flags|=4),"function"==typeof l.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!=typeof l.componentDidUpdate||a===e.memoizedProps&&h===e.memoizedState||(n.flags|=4),"function"!=typeof l.getSnapshotBeforeUpdate||a===e.memoizedProps&&h===e.memoizedState||(n.flags|=1024),n.memoizedProps=i,n.memoizedState=m),l.props=i,l.state=m,l.context=s,i=d):("function"!=typeof l.componentDidUpdate||a===e.memoizedProps&&h===e.memoizedState||(n.flags|=4),"function"!=typeof l.getSnapshotBeforeUpdate||a===e.memoizedProps&&h===e.memoizedState||(n.flags|=1024),i=!1)}return l=i,l_(e,n),i=0!=(128&n.flags),l||i?(l=n.stateNode,t=i&&"function"!=typeof t.getDerivedStateFromError?null:l.render(),n.flags|=1,null!==e&&i?(n.child=o2(n,e.child,null,o),n.child=o2(n,null,t,o)):lg(e,n,t,o),n.memoizedState=l.state,e=n.child):e=lM(e,n,o),e}function lA(e,n,t,r){return rz(),n.flags|=256,lg(e,n,t,r),n.child}var lO={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function lz(e){return{baseLanes:e,cachePool:r4()}}function lP(e,n,t){return e=null!==e?e.childLanes&~t:0,n&&(e|=aL),e}function lR(e,n,t){var r,i=n.pendingProps,o=!1,l=0!=(128&n.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&le.current)),r&&(o=!0,n.flags&=-129),r=0!=(32&n.flags),n.flags&=-33,null===e){if(rw){if(o?o7(n):o9(n),rw){var a,s=rv;if(a=s){t:{for(a=s,s=r_;8!==a.nodeType;)if(!s||null===(a=sb(a.nextSibling))){s=null;break t}s=a}null!==s?(n.memoizedState={dehydrated:s,treeContext:null!==rh?{id:rm,overflow:rx}:null,retryLane:0x20000000,hydrationErrors:null},(a=t6(18,null,null,0)).stateNode=s,a.return=n,n.child=a,ry=n,rv=null,a=!0):a=!1}a||rS(n)}if(null!==(s=n.memoizedState)&&null!==(s=s.dehydrated))return sg(s)?n.lanes=32:n.lanes=0x20000000,null;o6(n)}return(s=i.children,i=i.fallback,o)?(o9(n),s=lH({mode:"hidden",children:s},o=n.mode),i=ri(i,o,t,null),s.return=n,i.return=n,s.sibling=i,n.child=s,(o=n.child).memoizedState=lz(t),o.childLanes=lP(e,r,t),n.memoizedState=lO,i):(o7(n),lE(n,s))}if(null!==(a=e.memoizedState)&&null!==(s=a.dehydrated)){if(l)256&n.flags?(o7(n),n.flags&=-257,n=lT(e,n,t)):null!==n.memoizedState?(o9(n),n.child=e.child,n.flags|=128,n=null):(o9(n),o=i.fallback,s=n.mode,i=lH({mode:"visible",children:i.children},s),o=ri(o,s,t,null),o.flags|=2,i.return=n,o.return=n,i.sibling=o,n.child=i,o2(n,e.child,null,t),(i=n.child).memoizedState=lz(t),i.childLanes=lP(e,r,t),n.memoizedState=lO,n=o);else if(o7(n),sg(s)){if(r=s.nextSibling&&s.nextSibling.dataset)var u=r.dgst;r=u,(i=Error(c(419))).stack="",i.digest=r,rR({value:i,source:null,stack:null}),n=lT(e,n,t)}else if(lj||rK(e,n,t,!1),r=0!=(t&e.childLanes),lj||r){if(null!==(r=aA)&&0!==(i=0!=((i=0!=(42&(i=t&-t))?1:eS(i))&(r.suspendedLanes|t))?0:i)&&i!==a.retryLane)throw a.retryLane=i,t3(e,i),a4(r,e,i),lp;"$?"===s.data||ca(),n=lT(e,n,t)}else"$?"===s.data?(n.flags|=192,n.child=e.child,n=null):(e=a.treeContext,rv=sb(s.nextSibling),ry=n,rw=!0,rk=null,r_=!1,null!==e&&(rd[rf++]=rm,rd[rf++]=rx,rd[rf++]=rh,rm=e.id,rx=e.overflow,rh=n),n=lE(n,i.children),n.flags|=4096);return n}return o?(o9(n),o=i.fallback,s=n.mode,u=(a=e.child).sibling,(i=rn(a,{mode:"hidden",children:i.children})).subtreeFlags=0x3e00000&a.subtreeFlags,null!==u?o=rn(u,o):(o=ri(o,s,t,null),o.flags|=2),o.return=n,i.return=n,i.sibling=o,n.child=i,i=o,o=n.child,null===(s=e.child.memoizedState)?s=lz(t):(null!==(a=s.cachePool)?(u=rQ._currentValue,a=a.parent!==u?{parent:u,pool:u}:a):a=r4(),s={baseLanes:s.baseLanes|t,cachePool:a}),o.memoizedState=s,o.childLanes=lP(e,r,t),n.memoizedState=lO,i):(o7(n),e=(t=e.child).sibling,(t=rn(t,{mode:"visible",children:i.children})).return=n,t.sibling=null,null!==e&&(null===(r=n.deletions)?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t,n.memoizedState=null,t)}function lE(e,n){return(n=lH({mode:"visible",children:n},e.mode)).return=e,e.child=n}function lH(e,n){return(e=t6(22,e,null,n)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function lT(e,n,t){return o2(n,e.child,null,t),e=lE(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function lN(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),rq(e.return,n,t)}function lD(e,n,t,r,i){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:i}:(o.isBackwards=n,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=t,o.tailMode=i)}function lq(e,n,t){var r=n.pendingProps,i=r.revealOrder,o=r.tail;if(lg(e,n,r.children,t),0!=(2&(r=le.current)))r=1&r|2,n.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&lN(e,t,n);else if(19===e.tag)lN(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}switch(K(le,r),i){case"forwards":for(i=null,t=n.child;null!==t;)null!==(e=t.alternate)&&null===ln(e)&&(i=t),t=t.sibling;null===(t=i)?(i=n.child,n.child=null):(i=t.sibling,t.sibling=null),lD(n,!1,i,t,o);break;case"backwards":for(t=null,i=n.child,n.child=null;null!==i;){if(null!==(e=i.alternate)&&null===ln(e)){n.child=i;break}e=i.sibling,i.sibling=t,t=i,i=e}lD(n,!0,t,null,o);break;case"together":lD(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function lM(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),aq|=n.lanes,0==(t&n.childLanes)){if(null===e)return null;else if(rK(e,n,t,!1),0==(t&n.childLanes))return null}if(null!==e&&n.child!==e.child)throw Error(c(153));if(null!==n.child){for(t=rn(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=rn(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function lK(e,n){return 0!=(e.lanes&n)||!!(null!==(e=e.dependencies)&&rL(e))}function lL(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps)lj=!0;else{if(!lK(e,t)&&0==(128&n.flags))return lj=!1,function(e,n,t){switch(n.tag){case 3:V(n,n.stateNode.containerInfo),rN(n,rQ,e.memoizedState.cache),rz();break;case 27:case 5:W(n);break;case 4:V(n,n.stateNode.containerInfo);break;case 10:rN(n,n.type,n.memoizedProps.value);break;case 13:var r=n.memoizedState;if(null!==r){if(null!==r.dehydrated)return o7(n),n.flags|=128,null;if(0!=(t&n.child.childLanes))return lR(e,n,t);return o7(n),null!==(e=lM(e,n,t))?e.sibling:null}o7(n);break;case 19:var i=0!=(128&e.flags);if((r=0!=(t&n.childLanes))||(rK(e,n,t,!1),r=0!=(t&n.childLanes)),i){if(r)return lq(e,n,t);n.flags|=128}if(null!==(i=n.memoizedState)&&(i.rendering=null,i.tail=null,i.lastEffect=null),K(le,le.current),!r)return null;break;case 22:case 23:return n.lanes=0,lw(e,n,t);case 24:rN(n,rQ,e.memoizedState.cache)}return lM(e,n,t)}(e,n,t);lj=0!=(131072&e.flags)}else lj=!1,rw&&0!=(1048576&n.flags)&&rj(n,ru,n.index);switch(n.lanes=0,n.tag){case 16:e:{e=n.pendingProps;var i=n.elementType,o=i._init;if(i=o(i._payload),n.type=i,"function"==typeof i)re(i)?(e=ll(i,e),n.tag=1,n=lI(null,n,i,e,t)):(n.tag=0,n=lC(null,n,i,e,t));else{if(null!=i){if((o=i.$$typeof)===w){n.tag=11,n=lb(null,n,i,e,t);break e}else if(o===C){n.tag=14,n=ly(null,n,i,e,t);break e}}throw Error(c(306,n=function e(n){if(null==n)return null;if("function"==typeof n)return n.$$typeof===P?null:n.displayName||n.name||null;if("string"==typeof n)return n;switch(n){case p:return"Fragment";case g:return"Profiler";case j:return"StrictMode";case k:return"Suspense";case _:return"SuspenseList";case I:return"Activity"}if("object"===(void 0===n?"undefined":r(n)))switch(n.$$typeof){case x:return"Portal";case v:return(n.displayName||"Context")+".Provider";case y:return(n._context.displayName||"Context")+".Consumer";case w:var t=n.render;return(n=n.displayName)||(n=""!==(n=t.displayName||t.name||"")?"ForwardRef("+n+")":"ForwardRef"),n;case C:return null!==(t=n.displayName||null)?t:e(n.type)||"Memo";case S:t=n._payload,n=n._init;try{return e(n(t))}catch(e){}}return null}(i)||i,""))}}return n;case 0:return lC(e,n,n.type,n.pendingProps,t);case 1:return o=ll(i=n.type,n.pendingProps),lI(e,n,i,o,t);case 3:e:{if(V(n,n.stateNode.containerInfo),null===e)throw Error(c(387));i=n.pendingProps;var l=n.memoizedState;o=l.element,id(e,n),ib(n,i,null,t);var a=n.memoizedState;if(rN(n,rQ,i=a.cache),i!==l.cache&&rM(n,[rQ],t,!0),ig(),i=a.element,l.isDehydrated)if(l={element:i,isDehydrated:!1,cache:a.cache},n.updateQueue.baseState=l,n.memoizedState=l,256&n.flags){n=lA(e,n,i,t);break e}else if(i!==o){rR(o=tY(Error(c(424)),n)),n=lA(e,n,i,t);break e}else for(rv=sb((e=9===(e=n.stateNode.containerInfo).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e).firstChild),ry=n,rw=!0,rk=null,r_=!0,t=o5(n,null,i,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling;else{if(rz(),i===o){n=lM(e,n,t);break e}lg(e,n,i,t)}n=n.child}return n;case 26:return l_(e,n),null===e?(t=sz(n.type,null,n.pendingProps,null))?n.memoizedState=t:rw||(t=n.type,e=n.pendingProps,(i=so(B.current).createElement(t))[ez]=n,i[eP]=e,st(i,t,e),eB(i),n.stateNode=i):n.memoizedState=sz(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return W(n),null===e&&rw&&(i=n.stateNode=sw(n.type,n.pendingProps,B.current),ry=n,r_=!0,o=rv,sx(n.type)?(sy=o,rv=sb(i.firstChild)):rv=o),lg(e,n,n.pendingProps.children,t),l_(e,n),null===e&&(n.flags|=4194304),n.child;case 5:return null===e&&rw&&((o=i=rv)&&(null!==(i=function(e,n,t,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[eD])switch(n){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(i=e.getAttribute("rel"))&&e.hasAttribute("data-precedence")||i!==t.rel||e.getAttribute("href")!==(null==t.href||""===t.href?null:t.href)||e.getAttribute("crossorigin")!==(null==t.crossOrigin?null:t.crossOrigin)||e.getAttribute("title")!==(null==t.title?null:t.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((i=e.getAttribute("src"))!==(null==t.src?null:t.src)||e.getAttribute("type")!==(null==t.type?null:t.type)||e.getAttribute("crossorigin")!==(null==t.crossOrigin?null:t.crossOrigin))&&i&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==n||"hidden"!==e.type)return e;var i=null==t.name?null:""+t.name;if("hidden"===t.type&&e.getAttribute("name")===i)return e}if(null===(e=sb(e.nextSibling)))break}return null}(i,n.type,n.pendingProps,r_))?(n.stateNode=i,ry=n,rv=sb(i.firstChild),r_=!1,o=!0):o=!1),o||rS(n)),W(n),o=n.type,l=n.pendingProps,a=null!==e?e.memoizedProps:null,i=l.children,sc(o,l)?i=null:null!==a&&sc(o,a)&&(n.flags|=32),null!==n.memoizedState&&(sJ._currentValue=o=iK(e,n,iB,null,null,t)),l_(e,n),lg(e,n,i,t),n.child;case 6:return null===e&&rw&&((e=t=rv)&&(null!==(t=function(e,n,t){if(""===n)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!t||null===(e=sb(e.nextSibling)))return null;return e}(t,n.pendingProps,r_))?(n.stateNode=t,ry=n,rv=null,e=!0):e=!1),e||rS(n)),null;case 13:return lR(e,n,t);case 4:return V(n,n.stateNode.containerInfo),i=n.pendingProps,null===e?n.child=o2(n,null,i,t):lg(e,n,i,t),n.child;case 11:return lb(e,n,n.type,n.pendingProps,t);case 7:return lg(e,n,n.pendingProps,t),n.child;case 8:case 12:return lg(e,n,n.pendingProps.children,t),n.child;case 10:return i=n.pendingProps,rN(n,n.type,i.value),lg(e,n,i.children,t),n.child;case 9:return o=n.type._context,i=n.pendingProps.children,r$(n),i=i(o=rB(o)),n.flags|=1,lg(e,n,i,t),n.child;case 14:return ly(e,n,n.type,n.pendingProps,t);case 15:return lv(e,n,n.type,n.pendingProps,t);case 19:return lq(e,n,t);case 31:return i=n.pendingProps,t=n.mode,i={mode:i.mode,children:i.children},null===e?(t=lH(i,t)).ref=n.ref:(t=rn(e.child,i)).ref=n.ref,n.child=t,t.return=n,n=t;case 22:return lw(e,n,t);case 24:return r$(n),i=rB(rQ),null===e?(null===(o=r8())&&(o=aA,l=rJ(),o.pooledCache=l,l.refCount++,null!==l&&(o.pooledCacheLanes|=t),o=l),n.memoizedState={parent:i,cache:o},iu(n),rN(n,rQ,o)):(0!=(e.lanes&t)&&(id(e,n),ib(n,null,null,t),ig()),o=e.memoizedState,l=n.memoizedState,o.parent!==i?(o={parent:i,cache:i},n.memoizedState=o,0===n.lanes&&(n.memoizedState=n.updateQueue.baseState=o),rN(n,rQ,i)):(rN(n,rQ,i=l.cache),i!==o.cache&&rM(n,[rQ],t,!0))),lg(e,n,n.pendingProps.children,t),n.child;case 29:throw n.pendingProps}throw Error(c(156,n.tag))}function l$(e){e.flags|=4}function lB(e,n){if("stylesheet"!==n.type||0!=(4&n.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!sB(n)){if(null!==(n=o3.current)&&((4194048&az)===az?null!==o8:(0x3c00000&az)!==az&&0==(0x20000000&az)||n!==o8))throw il=it,r6;e.flags|=8192}}function lF(e,n){null!==n&&(e.flags|=4),16384&e.flags&&(n=22!==e.tag?ev():0x20000000,e.lanes|=n,a$|=n)}function lV(e,n){if(!rw)switch(e.tailMode){case"hidden":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case"collapsed":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function lU(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var i=e.child;null!==i;)t|=i.lanes|i.childLanes,r|=0x3e00000&i.subtreeFlags,r|=0x3e00000&i.flags,i.return=e,i=i.sibling;else for(i=e.child;null!==i;)t|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function lW(e,n){switch(rb(n),n.tag){case 3:rD(rQ),U();break;case 26:case 27:case 5:G(n);break;case 4:U();break;case 13:o6(n);break;case 19:M(le);break;case 10:rD(n.type);break;case 22:case 23:o6(n),iS(),null!==e&&M(r3);break;case 24:rD(rQ)}}function lG(e,n){try{var t=n.updateQueue,r=null!==t?t.lastEffect:null;if(null!==r){var i=r.next;t=i;do{if((t.tag&e)===e){r=void 0;var o=t.create;t.inst.destroy=r=o()}t=t.next}while(t!==i)}}catch(e){cw(n,n.return,e)}}function lQ(e,n,t){try{var r=n.updateQueue,i=null!==r?r.lastEffect:null;if(null!==i){var o=i.next;r=o;do{if((r.tag&e)===e){var l=r.inst,a=l.destroy;if(void 0!==a){l.destroy=void 0,i=n;try{a()}catch(e){cw(i,t,e)}}}r=r.next}while(r!==o)}}catch(e){cw(n,n.return,e)}}function lJ(e){var n=e.updateQueue;if(null!==n){var t=e.stateNode;try{iv(n,t)}catch(n){cw(e,e.return,n)}}}function lY(e,n,t){t.props=ll(e.type,e.memoizedProps),t.state=e.memoizedState;try{t.componentWillUnmount()}catch(t){cw(e,n,t)}}function lX(e,n){try{var t=e.ref;if(null!==t){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof t?e.refCleanup=t(r):t.current=r}}catch(t){cw(e,n,t)}}function lZ(e,n){var t=e.ref,r=e.refCleanup;if(null!==t)if("function"==typeof r)try{r()}catch(t){cw(e,n,t)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof t)try{t(null)}catch(t){cw(e,n,t)}else t.current=null}function l0(e){var n=e.type,t=e.memoizedProps,r=e.stateNode;try{switch(n){case"button":case"input":case"select":case"textarea":t.autoFocus&&r.focus();break;case"img":t.src?r.src=t.src:t.srcSet&&(r.srcset=t.srcSet)}}catch(n){cw(e,e.return,n)}}function l1(e,n,t){try{var i=e.stateNode;(function(e,n,t,i){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var o=null,l=null,a=null,s=null,u=null,d=null,f=null;for(x in t){var h=t[x];if(t.hasOwnProperty(x)&&null!=h)switch(x){case"checked":case"value":break;case"defaultValue":u=h;default:i.hasOwnProperty(x)||se(e,n,x,null,i,h)}}for(var m in i){var x=i[m];if(h=t[m],i.hasOwnProperty(m)&&(null!=x||null!=h))switch(m){case"type":l=x;break;case"name":o=x;break;case"checked":d=x;break;case"defaultChecked":f=x;break;case"value":a=x;break;case"defaultValue":s=x;break;case"children":case"dangerouslySetInnerHTML":if(null!=x)throw Error(c(137,n));break;default:x!==h&&se(e,n,m,x,i,h)}}nn(e,a,s,u,d,f,l,o);return;case"select":for(l in x=a=s=m=null,t)if(u=t[l],t.hasOwnProperty(l)&&null!=u)switch(l){case"value":break;case"multiple":x=u;default:i.hasOwnProperty(l)||se(e,n,l,null,i,u)}for(o in i)if(l=i[o],u=t[o],i.hasOwnProperty(o)&&(null!=l||null!=u))switch(o){case"value":m=l;break;case"defaultValue":s=l;break;case"multiple":a=l;default:l!==u&&se(e,n,o,l,i,u)}n=s,t=a,i=x,null!=m?ni(e,!!t,m,!1):!!i!=!!t&&(null!=n?ni(e,!!t,n,!0):ni(e,!!t,t?[]:"",!1));return;case"textarea":for(s in x=m=null,t)if(o=t[s],t.hasOwnProperty(s)&&null!=o&&!i.hasOwnProperty(s))switch(s){case"value":case"children":break;default:se(e,n,s,null,i,o)}for(a in i)if(o=i[a],l=t[a],i.hasOwnProperty(a)&&(null!=o||null!=l))switch(a){case"value":m=o;break;case"defaultValue":x=o;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=o)throw Error(c(91));break;default:o!==l&&se(e,n,a,o,i,l)}no(e,m,x);return;case"option":for(var p in t)m=t[p],t.hasOwnProperty(p)&&null!=m&&!i.hasOwnProperty(p)&&("selected"===p?e.selected=!1:se(e,n,p,null,i,m));for(u in i)m=i[u],x=t[u],i.hasOwnProperty(u)&&m!==x&&(null!=m||null!=x)&&("selected"===u?e.selected=m&&"function"!=typeof m&&"symbol"!==(void 0===m?"undefined":r(m)):se(e,n,u,m,i,x));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var j in t)m=t[j],t.hasOwnProperty(j)&&null!=m&&!i.hasOwnProperty(j)&&se(e,n,j,null,i,m);for(d in i)if(m=i[d],x=t[d],i.hasOwnProperty(d)&&m!==x&&(null!=m||null!=x))switch(d){case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(c(137,n));break;default:se(e,n,d,m,i,x)}return;default:if(nd(n)){for(var g in t)m=t[g],t.hasOwnProperty(g)&&void 0!==m&&!i.hasOwnProperty(g)&&sn(e,n,g,void 0,i,m);for(f in i)m=i[f],x=t[f],i.hasOwnProperty(f)&&m!==x&&(void 0!==m||void 0!==x)&&sn(e,n,f,m,i,x);return}}for(var b in t)m=t[b],t.hasOwnProperty(b)&&null!=m&&!i.hasOwnProperty(b)&&se(e,n,b,null,i,m);for(h in i)m=i[h],x=t[h],i.hasOwnProperty(h)&&m!==x&&(null!=m||null!=x)&&se(e,n,h,m,i,x)})(i,e.type,t,n),i[eP]=n}catch(n){cw(e,e.return,n)}}function l2(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&sx(e.type)||4===e.tag}function l5(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||l2(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&sx(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function l3(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&(27===r&&sx(e.type)&&(t=e.stateNode),null!==(e=e.child)))for(l3(e,n,t),e=e.sibling;null!==e;)l3(e,n,t),e=e.sibling}function l8(e){var n=e.stateNode,t=e.memoizedProps;try{for(var r=e.type,i=n.attributes;i.length;)n.removeAttributeNode(i[0]);st(n,r,t),n[ez]=e,n[eP]=t}catch(n){cw(e,e.return,n)}}var l7=!1,l4=!1,l9=!1,l6="function"==typeof WeakSet?WeakSet:Set,ae=null;function an(e,n,t){var r=t.flags;switch(t.tag){case 0:case 11:case 15:af(e,t),4&r&&lG(5,t);break;case 1:if(af(e,t),4&r)if(e=t.stateNode,null===n)try{e.componentDidMount()}catch(e){cw(t,t.return,e)}else{var i=ll(t.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(i,n,e.__reactInternalSnapshotBeforeUpdate)}catch(e){cw(t,t.return,e)}}64&r&&lJ(t),512&r&&lX(t,t.return);break;case 3:if(af(e,t),64&r&&null!==(e=t.updateQueue)){if(n=null,null!==t.child)switch(t.child.tag){case 27:case 5:case 1:n=t.child.stateNode}try{iv(e,n)}catch(e){cw(t,t.return,e)}}break;case 27:null===n&&4&r&&l8(t);case 26:case 5:af(e,t),null===n&&4&r&&l0(t),512&r&&lX(t,t.return);break;case 12:default:af(e,t);break;case 13:af(e,t),4&r&&al(e,t),64&r&&null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)&&function(e,n){var t=e.ownerDocument;if("$?"!==e.data||"complete"===t.readyState)n();else{var r=function(){n(),t.removeEventListener("DOMContentLoaded",r)};t.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,t=cS.bind(null,t));break;case 22:if(!(r=null!==t.memoizedState||l7)){n=null!==n&&null!==n.memoizedState||l4,i=l7;var o=l4;l7=r,(l4=n)&&!o?function e(n,t,r){for(r=r&&0!=(8772&t.subtreeFlags),t=t.child;null!==t;){var i=t.alternate,o=n,l=t,a=l.flags;switch(l.tag){case 0:case 11:case 15:e(o,l,r),lG(4,l);break;case 1:if(e(o,l,r),"function"==typeof(o=(i=l).stateNode).componentDidMount)try{o.componentDidMount()}catch(e){cw(i,i.return,e)}if(null!==(o=(i=l).updateQueue)){var c=i.stateNode;try{var s=o.shared.hiddenCallbacks;if(null!==s)for(o.shared.hiddenCallbacks=null,o=0;o title"))),st(o,r,t),o[ez]=e,eB(o),r=o;break e;case"link":var l=sL("link","href",i).get(r+(t.href||""));if(l){for(var a=0;a<\/script>",e=e.removeChild(e.firstChild);break;case"select":e="string"==typeof r.is?i.createElement("select",{is:r.is}):i.createElement("select"),r.multiple?e.multiple=!0:r.size&&(e.size=r.size);break;default:e="string"==typeof r.is?i.createElement(t,{is:r.is}):i.createElement(t)}}e[ez]=n,e[eP]=r;e:for(i=n.child;null!==i;){if(5===i.tag||6===i.tag)e.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===n)break;for(;null===i.sibling;){if(null===i.return||i.return===n)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(n.stateNode=e,st(e,t,r),t){case"button":case"input":case"select":case"textarea":e=!!r.autoFocus;break;case"img":e=!0;break;default:e=!1}e&&l$(n)}}return lU(n),n.flags&=-0x1000001,null;case 6:if(e&&null!=n.stateNode)e.memoizedProps!==r&&l$(n);else{if("string"!=typeof r&&null===n.stateNode)throw Error(c(166));if(e=B.current,rO(n)){if(e=n.stateNode,t=n.memoizedProps,r=null,null!==(i=ry))switch(i.tag){case 27:case 5:r=i.memoizedProps}e[ez]=n,(e=!!(e.nodeValue===t||null!==r&&!0===r.suppressHydrationWarning||c9(e.nodeValue,t)))||rS(n)}else(e=so(e).createTextNode(r))[ez]=n,n.stateNode=e}return lU(n),null;case 13:if(r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(i=rO(n),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(c(318));if(!(i=null!==(i=n.memoizedState)?i.dehydrated:null))throw Error(c(317));i[ez]=n}else rz(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;lU(n),i=!1}else i=rP(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i){if(256&n.flags)return o6(n),n;return o6(n),null}}if(o6(n),0!=(128&n.flags))return n.lanes=t,n;if(t=null!==r,e=null!==e&&null!==e.memoizedState,t){r=n.child,i=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(i=r.alternate.memoizedState.cachePool.pool);var o=null;null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)}return t!==e&&t&&(n.child.flags|=8192),lF(n,n.updateQueue),lU(n),null;case 4:return U(),null===e&&cX(n.stateNode.containerInfo),lU(n),null;case 10:return rD(n.type),lU(n),null;case 19:if(M(le),null===(i=n.memoizedState))return lU(n),null;if(r=0!=(128&n.flags),null===(o=i.rendering))if(r)lV(i,!1);else{if(0!==aD||null!==e&&0!=(128&e.flags))for(e=n.child;null!==e;){if(null!==(o=ln(e))){for(n.flags|=128,lV(i,!1),e=o.updateQueue,n.updateQueue=e,lF(n,e),n.subtreeFlags=0,e=t,t=n.child;null!==t;)rt(t,e),t=t.sibling;return K(le,1&le.current|2),n.child}e=e.sibling}null!==i.tail&&ee()>aW&&(n.flags|=128,r=!0,lV(i,!1),n.lanes=4194304)}else{if(!r)if(null!==(e=ln(o))){if(n.flags|=128,r=!0,e=e.updateQueue,n.updateQueue=e,lF(n,e),lV(i,!0),null===i.tail&&"hidden"===i.tailMode&&!o.alternate&&!rw)return lU(n),null}else 2*ee()-i.renderingStartTime>aW&&0x20000000!==t&&(n.flags|=128,r=!0,lV(i,!1),n.lanes=4194304);i.isBackwards?(o.sibling=n.child,n.child=o):(null!==(e=i.last)?e.sibling=o:n.child=o,i.last=o)}if(null!==i.tail)return n=i.tail,i.rendering=n,i.tail=n.sibling,i.renderingStartTime=ee(),n.sibling=null,e=le.current,K(le,r?1&e|2:1&e),n;return lU(n),null;case 22:case 23:return o6(n),iS(),r=null!==n.memoizedState,null!==e?null!==e.memoizedState!==r&&(n.flags|=8192):r&&(n.flags|=8192),r?0!=(0x20000000&t)&&0==(128&n.flags)&&(lU(n),6&n.subtreeFlags&&(n.flags|=8192)):lU(n),null!==(t=n.updateQueue)&&lF(n,t.retryQueue),t=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),r=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(r=n.memoizedState.cachePool.pool),r!==t&&(n.flags|=2048),null!==e&&M(r3),null;case 24:return t=null,null!==e&&(t=e.memoizedState.cache),n.memoizedState.cache!==t&&(n.flags|=2048),rD(rQ),lU(n),null;case 25:case 30:return null}throw Error(c(156,n.tag))}(n.alternate,n,aN);if(null!==t){aO=t;return}if(null!==(n=n.sibling)){aO=n;return}aO=n=e}while(null!==n);0===aD&&(aD=5)}function ch(e,n){do{var t=function(e,n){switch(rb(n),n.tag){case 1:return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return rD(rQ),U(),0!=(65536&(e=n.flags))&&0==(128&e)?(n.flags=-65537&e|128,n):null;case 26:case 27:case 5:return G(n),null;case 13:if(o6(n),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(c(340));rz()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return M(le),null;case 4:return U(),null;case 10:return rD(n.type),null;case 22:case 23:return o6(n),iS(),null!==e&&M(r3),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 24:return rD(rQ),null;default:return null}}(e.alternate,e);if(null!==t){t.flags&=32767,aO=t;return}if(null!==(t=e.return)&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!n&&null!==(e=e.sibling)){aO=e;return}aO=e=t}while(null!==e);aD=6,aO=null}function cm(e,n,t,r,i,o,l,a,s){e.cancelPendingCommit=null;do cb();while(0!==aJ);if(0!=(6&aI))throw Error(c(327));if(null!==n){if(n===e.current)throw Error(c(177));if(!function(e,n,t,r,i,o){var l=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var a=e.entanglements,c=e.expirationTimes,s=e.hiddenUpdates;for(t=l&~t;0p&&(l=p,p=x,x=l);var j=tS(a,x),g=tS(a,p);if(j&&g&&(1!==h.rangeCount||h.anchorNode!==j.node||h.anchorOffset!==j.offset||h.focusNode!==g.node||h.focusOffset!==g.offset)){var b=d.createRange();b.setStart(j.node,j.offset),h.removeAllRanges(),x>p?(h.addRange(b),h.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),h.addRange(b))}}}}for(d=[],h=a;h=h.parentNode;)1===h.nodeType&&d.push({element:h,left:h.scrollLeft,top:h.scrollTop});for("function"==typeof a.focus&&a.focus(),a=0;at?32:t,E.T=null,t=a1,a1=null;var o=aY,l=aZ;if(aJ=0,aX=aY=null,aZ=0,0!=(6&aI))throw Error(c(331));var a=aI;if(aI|=4,ak(o.current),ap(o,o.current,l,t),aI=a,cT(0,!1),eu&&"function"==typeof eu.onPostCommitFiberRoot)try{eu.onPostCommitFiberRoot(es,o)}catch(e){}return!0}finally{H.p=i,E.T=r,cg(e,n)}}function cv(e,n,t){n=tY(t,n),n=lh(e.stateNode,n,2),null!==(e=im(e,n,2))&&(ek(e,2),cH(e))}function cw(e,n,t){if(3===e.tag)cv(e,e,t);else for(;null!==n;){if(3===n.tag){cv(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===aQ||!aQ.has(r))){e=tY(t,e),null!==(r=im(n,t=lm(2),2))&&(lx(t,r,n,e),ek(r,2),cH(r));break}}n=n.return}}function ck(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new aS;var i=new Set;r.set(n,i)}else void 0===(i=r.get(n))&&(i=new Set,r.set(n,i));i.has(t)||(aT=!0,i.add(t),e=c_.bind(null,e,n,t),n.then(e,e))}function c_(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,aA===e&&(az&t)===t&&(4===aD||3===aD&&(0x3c00000&az)===az&&300>ee()-aU?0==(2&aI)&&cr(e,0):aK|=t,a$===az&&(a$=0)),cH(e)}function cC(e,n){0===n&&(n=ev()),null!==(e=t3(e,n))&&(ek(e,n),cH(e))}function cS(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),cC(e,t)}function cI(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;null!==i&&(t=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(c(314))}null!==r&&r.delete(n),cC(e,t)}var cA=null,cO=null,cz=!1,cP=!1,cR=!1,cE=0;function cH(e){e!==cO&&null===e.next&&(null===cO?cA=cO=e:cO=cO.next=e),cP=!0,cz||(cz=!0,sh(function(){0!=(6&aI)?J(et,cN):cD()}))}function cT(e,n){if(!cR&&cP){cR=!0;do for(var t=!1,r=cA;null!==r;){if(!n)if(0!==e){var i=r.pendingLanes;if(0===i)var o=0;else{var l=r.suspendedLanes,a=r.pingedLanes;o=0xc000095&(o=(1<<31-ef(42|e)+1)-1&(i&~(l&~a)))?0xc000095&o|1:o?2|o:0}0!==o&&(t=!0,cK(r,o))}else o=az,0==(3&(o=eg(r,r===aA?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eb(r,o)||(t=!0,cK(r,o));r=r.next}while(t);cR=!1}}function cN(){cD()}function cD(){cP=cz=!1;var e,n=0;0!==cE&&(((e=window.event)&&"popstate"===e.type?e===ss||(ss=e,0):(ss=null,1))||(n=cE),cE=0);for(var t=ee(),r=null,i=cA;null!==i;){var o=i.next,l=cq(i,t);0===l?(i.next=null,null===r?cA=o:r.next=o,null===o&&(cO=r)):(r=i,(0!==n||0!=(3&l))&&(cP=!0)),i=o}cT(n,!1)}function cq(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,o=-0x3c00001&e.pendingLanes;0r){t=r;var l=e.ownerDocument;if(1&t&&sk(l.documentElement),2&t&&sk(l.body),4&t)for(sk(t=l.head),l=t.firstChild;l;){var a=l.nextSibling,c=l.nodeName;l[eD]||"SCRIPT"===c||"STYLE"===c||"LINK"===c&&"stylesheet"===l.rel.toLowerCase()||t.removeChild(l),l=a}}if(0===i){e.removeChild(o),uj(n);return}i--}else"$"===t||"$?"===t||"$!"===t?i++:r=t.charCodeAt(0)-48;else r=0;t=o}while(t);uj(n)}function sj(e){var n=e.firstChild;for(n&&10===n.nodeType&&(n=n.nextSibling);n;){var t=n;switch(n=n.nextSibling,t.nodeName){case"HTML":case"HEAD":case"BODY":sj(t),eq(t);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===t.rel.toLowerCase())continue}e.removeChild(t)}}function sg(e){return"$!"===e.data||"$?"===e.data&&"complete"===e.ownerDocument.readyState}function sb(e){for(;null!=e;e=e.nextSibling){var n=e.nodeType;if(1===n||3===n)break;if(8===n){if("$"===(n=e.data)||"$!"===n||"$?"===n||"F!"===n||"F"===n)break;if("/$"===n)return null}}return e}var sy=null;function sv(e){e=e.previousSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if("$"===t||"$!"===t||"$?"===t){if(0===n)return e;n--}else"/$"===t&&n++}e=e.previousSibling}return null}function sw(e,n,t){switch(n=so(t),e){case"html":if(!(e=n.documentElement))throw Error(c(452));return e;case"head":if(!(e=n.head))throw Error(c(453));return e;case"body":if(!(e=n.body))throw Error(c(454));return e;default:throw Error(c(451))}}function sk(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);eq(e)}var s_=new Map,sC=new Set;function sS(e){return"function"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var sI=H.d;H.d={f:function(){var e=sI.f(),n=cn();return e||n},r:function(e){var n=eK(e);null!==n&&5===n.tag&&"form"===n.type?oE(n):sI.r(e)},D:function(e){sI.D(e),sO("dns-prefetch",e,null)},C:function(e,n){sI.C(e,n),sO("preconnect",e,n)},L:function(e,n,t){if(sI.L(e,n,t),sA&&e&&n){var r='link[rel="preload"][as="'+ne(n)+'"]';"image"===n&&t&&t.imageSrcSet?(r+='[imagesrcset="'+ne(t.imageSrcSet)+'"]',"string"==typeof t.imageSizes&&(r+='[imagesizes="'+ne(t.imageSizes)+'"]')):r+='[href="'+ne(e)+'"]';var i=r;switch(n){case"style":i=sP(e);break;case"script":i=sH(e)}s_.has(i)||(e=f({rel:"preload",href:"image"===n&&t&&t.imageSrcSet?void 0:e,as:n},t),s_.set(i,e),null!==sA.querySelector(r)||"style"===n&&sA.querySelector(sR(i))||"script"===n&&sA.querySelector(sT(i))||(st(n=sA.createElement("link"),"link",e),eB(n),sA.head.appendChild(n)))}},m:function(e,n){if(sI.m(e,n),sA&&e){var t=n&&"string"==typeof n.as?n.as:"script",r='link[rel="modulepreload"][as="'+ne(t)+'"][href="'+ne(e)+'"]',i=r;switch(t){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=sH(e)}if(!s_.has(i)&&(e=f({rel:"modulepreload",href:e},n),s_.set(i,e),null===sA.querySelector(r))){switch(t){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(sA.querySelector(sT(i)))return}st(t=sA.createElement("link"),"link",e),eB(t),sA.head.appendChild(t)}}},X:function(e,n){if(sI.X(e,n),sA&&e){var t=e$(sA).hoistableScripts,r=sH(e),i=t.get(r);i||((i=sA.querySelector(sT(r)))||(e=f({src:e,async:!0},n),(n=s_.get(r))&&sM(e,n),eB(i=sA.createElement("script")),st(i,"link",e),sA.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},t.set(r,i))}},S:function(e,n,t){if(sI.S(e,n,t),sA&&e){var r=e$(sA).hoistableStyles,i=sP(e);n=n||"default";var o=r.get(i);if(!o){var l={loading:0,preload:null};if(o=sA.querySelector(sR(i)))l.loading=5;else{e=f({rel:"stylesheet",href:e,"data-precedence":n},t),(t=s_.get(i))&&sq(e,t);var a=o=sA.createElement("link");eB(a),st(a,"link",e),a._p=new Promise(function(e,n){a.onload=e,a.onerror=n}),a.addEventListener("load",function(){l.loading|=1}),a.addEventListener("error",function(){l.loading|=2}),l.loading|=4,sD(o,n,sA)}o={type:"stylesheet",instance:o,count:1,state:l},r.set(i,o)}}},M:function(e,n){if(sI.M(e,n),sA&&e){var t=e$(sA).hoistableScripts,r=sH(e),i=t.get(r);i||((i=sA.querySelector(sT(r)))||(e=f({src:e,async:!0,type:"module"},n),(n=s_.get(r))&&sM(e,n),eB(i=sA.createElement("script")),st(i,"link",e),sA.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},t.set(r,i))}}};var sA="undefined"==typeof document?null:document;function sO(e,n,t){if(sA&&"string"==typeof n&&n){var r=ne(n);r='link[rel="'+e+'"][href="'+r+'"]',"string"==typeof t&&(r+='[crossorigin="'+t+'"]'),sC.has(r)||(sC.add(r),e={rel:e,crossOrigin:t,href:n},null===sA.querySelector(r)&&(st(n=sA.createElement("link"),"link",e),eB(n),sA.head.appendChild(n)))}}function sz(e,n,t,i){var o=(o=B.current)?sS(o):null;if(!o)throw Error(c(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof t.precedence&&"string"==typeof t.href?(n=sP(t.href),(i=(t=e$(o).hoistableStyles).get(n))||(i={type:"style",instance:null,count:0,state:null},t.set(n,i)),i):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===t.rel&&"string"==typeof t.href&&"string"==typeof t.precedence){e=sP(t.href);var l,a,s,u,d=e$(o).hoistableStyles,f=d.get(e);if(f||(o=o.ownerDocument||o,f={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},d.set(e,f),(d=o.querySelector(sR(e)))&&!d._p&&(f.instance=d,f.state.loading=5),s_.has(e)||(t={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},s_.set(e,t),d||(l=o,a=e,s=t,u=f.state,l.querySelector('link[rel="preload"][as="style"]['+a+"]")?u.loading=1:(u.preload=a=l.createElement("link"),a.addEventListener("load",function(){return u.loading|=1}),a.addEventListener("error",function(){return u.loading|=2}),st(a,"link",s),eB(a),l.head.appendChild(a))))),n&&null===i)throw Error(c(528,""));return f}if(n&&null!==i)throw Error(c(529,""));return null;case"script":return n=t.async,"string"==typeof(t=t.src)&&n&&"function"!=typeof n&&"symbol"!==(void 0===n?"undefined":r(n))?(n=sH(t),(i=(t=e$(o).hoistableScripts).get(n))||(i={type:"script",instance:null,count:0,state:null},t.set(n,i)),i):{type:"void",instance:null,count:0,state:null};default:throw Error(c(444,e))}}function sP(e){return'href="'+ne(e)+'"'}function sR(e){return'link[rel="stylesheet"]['+e+"]"}function sE(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function sH(e){return'[src="'+ne(e)+'"]'}function sT(e){return"script[async]"+e}function sN(e,n,t){if(n.count++,null===n.instance)switch(n.type){case"style":var r=e.querySelector('style[data-href~="'+ne(t.href)+'"]');if(r)return n.instance=r,eB(r),r;var i=f({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return eB(r=(e.ownerDocument||e).createElement("style")),st(r,"style",i),sD(r,t.precedence,e),n.instance=r;case"stylesheet":i=sP(t.href);var o=e.querySelector(sR(i));if(o)return n.state.loading|=4,n.instance=o,eB(o),o;r=sE(t),(i=s_.get(i))&&sq(r,i),eB(o=(e.ownerDocument||e).createElement("link"));var l=o;return l._p=new Promise(function(e,n){l.onload=e,l.onerror=n}),st(o,"link",r),n.state.loading|=4,sD(o,t.precedence,e),n.instance=o;case"script":if(o=sH(t.src),i=e.querySelector(sT(o)))return n.instance=i,eB(i),i;return r=t,(i=s_.get(o))&&sM(r=f({},t),i),eB(i=(e=e.ownerDocument||e).createElement("script")),st(i,"link",r),e.head.appendChild(i),n.instance=i;case"void":return null;default:throw Error(c(443,n.type))}return"stylesheet"===n.type&&0==(4&n.state.loading)&&(r=n.instance,n.state.loading|=4,sD(r,t.precedence,e)),n.instance}function sD(e,n,t){for(var r=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=r.length?r[r.length-1]:null,o=i,l=0;l title"):null)}function sB(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}var sF=null;function sV(){}function sU(){if(this.count--,0===this.count){if(this.stylesheets)sG(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var sW=null;function sG(e,n){e.stylesheets=null,null!==e.unsuspend&&(e.count++,sW=new Map,n.forEach(sQ,e),sW=null,sU.call(e))}function sQ(e,n){if(!(4&n.state.loading)){var t=sW.get(e);if(t)var r=t.get(null);else{t=new Map,sW.set(e,t);for(var i=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;oe.length)&&(n=e.length);for(var t=0,r=Array(n);ti})},9715:function(e,n,t){"use strict";t.d(n,{HP:()=>i,UW:()=>l,jV:()=>r,pv:()=>o});var r=2,i=1,o=0,l=["average","bad","black","blue","brown","good","green","grey","label","olive","orange","pink","purple","red","teal","transparent","violet","white","yellow"]},8995:function(e,n,t){"use strict";t.d(n,{hf:()=>w,o7:()=>v,uB:()=>f,xd:()=>u});var r,i=t(196);function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t1?n-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{};d=!!e.ignoreWindowFocus},h=!0;function m(e,n){if(d){h=!0;return}if(r&&(clearTimeout(r),r=null),n){r=setTimeout(function(){return m(e)});return}h!==e&&(h=e,u.emit(e?"window-focus":"window-blur"),u.emit("window-focus-change",e))}var x=null;function p(e){var n=String(e.tagName).toLowerCase();return"input"===n||"textarea"===n}function j(){x&&(x.removeEventListener("blur",j),x=null,u.emit("input-blur"))}var g=null,b=null,y=[];function v(e){y.push(e)}function w(e){var n=y.indexOf(e);n>=0&&y.splice(n,1)}window.addEventListener("mousemove",function(e){var n=e.target;n!==b&&(b=n,function(e){if(!x&&h)for(var n=document.body;e&&e!==n;){if(y.includes(e)){if(e.contains(g))return;g=e,e.focus();return}e=e.parentElement}}(n))}),document.addEventListener("focus",function(e){var n,t,r;if(t=e.target,null!=(r=Element)&&"undefined"!=typeof Symbol&&r[Symbol.hasInstance]?!r[Symbol.hasInstance](t):!(t instanceof r)){b=null,g=null;return}b=null,g=e.target,p(e.target)&&(n=e.target,j(),(x=n).addEventListener("blur",j),u.emit("input-focus"))},!0),document.addEventListener("blur",function(){b=null},!0),window.addEventListener("focus",function(){m(!0)}),window.addEventListener("blur",function(){b=null,m(!1,!0)}),window.addEventListener("close",function(){m(!1)});var k={},_=function(){function e(n,t,r){l(this,e),s(this,"event",void 0),s(this,"type",void 0),s(this,"code",void 0),s(this,"ctrl",void 0),s(this,"shift",void 0),s(this,"alt",void 0),s(this,"repeat",void 0),s(this,"_str",void 0),this.event=n,this.type=t,this.code=n.keyCode,this.ctrl=n.ctrlKey,this.shift=n.shiftKey,this.alt=n.altKey,this.repeat=!!r}return c(e,[{key:"hasModifierKeys",value:function(){return this.ctrl||this.alt||this.shift}},{key:"isModifierKey",value:function(){return this.code===i.GW||this.code===i.pN||this.code===i.cm}},{key:"isDown",value:function(){return"keydown"===this.type}},{key:"isUp",value:function(){return"keyup"===this.type}},{key:"toString",value:function(){return this._str||(this._str="",this.ctrl&&(this._str+="Ctrl+"),this.alt&&(this._str+="Alt+"),this.shift&&(this._str+="Shift+"),this.code>=48&&this.code<=90?this._str+=String.fromCharCode(this.code):this.code>=i.Bo&&this.code<=i._m?this._str+="F".concat(this.code-111):this._str+="[".concat(this.code,"]")),this._str}}]),e}();document.addEventListener("keydown",function(e){if(!p(e.target)){var n=e.keyCode,t=new _(e,"keydown",k[n]);u.emit("keydown",t),u.emit("key",t),k[n]=!0}}),document.addEventListener("keyup",function(e){if(!p(e.target)){var n=e.keyCode,t=new _(e,"keyup");u.emit("keyup",t),u.emit("key",t),k[n]=!1}})},9956:function(e,n,t){"use strict";t.d(n,{bu:()=>l,l7:()=>o,lb:()=>a,mr:()=>c});var r=["f","p","n","μ","m"," ","k","M","G","T","P","E","Z","Y","R","Q","F","N","H"],i=r.indexOf(" ");function o(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-i,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(!Number.isFinite(e))return e.toString();var o=Math.floor(Math.max(3*n,Math.floor(Math.log10(Math.abs(e))))/3),l=r[Math.min(o+i,r.length-1)],a=(e/Math.pow(1e3,o)).toFixed(2);return a.endsWith(".00")?a=a.slice(0,-3):a.endsWith(".0")&&(a=a.slice(0,-2)),"".concat(a," ").concat(l.trim()).concat(t).trim()}function l(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return o(e,n,"W")}function a(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!Number.isFinite(e))return String(e);var t=Number(e.toFixed(n)),r=Math.abs(t).toString().split(".");r[0]=r[0].replace(/\B(?=(\d{3})+(?!\d))/g," ");var i=r.join(".");return t<0?"-".concat(i):i}function c(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default",t=Math.floor(e/10),r=Math.floor(t/3600),i=Math.floor(t%3600/60),o=t%60;if("short"===n)return"".concat(r>0?"".concat(r,"h"):"").concat(i>0?"".concat(i,"m"):"").concat(o>0?"".concat(o,"s"):"");var l=String(r).padStart(2,"0"),a=String(i).padStart(2,"0"),c=String(o).padStart(2,"0");return"".concat(l,":").concat(a,":").concat(c)}},9117:function(e,n,t){"use strict";t.d(n,{Dd:()=>d,Ob:()=>h,_1:()=>s,gp:()=>f});var r=t(8995),i=t(196),o={},l=[i.KW,i.tt,i.PC,i.HF,i.GW,i.pN,i.R4,i.Hb,i.ob,i.iB,i.mY],a={},c=[];function s(){for(var e in a)a[e]&&(a[e]=!1,Byond.command(u.verbParamsFn(u.keyUpVerb,e)))}var u={keyDownVerb:"KeyDown",keyUpVerb:"KeyUp",verbParamsFn:function(e,n){return"".concat(e,' "').concat(n,'"')}};function d(e){e&&(u=e),Byond.winget("default.*").then(function(e){var n=function(e){return e.substring(1,e.length-1).replace(c,'"')},t={};for(var r in e){var i=r.split("."),l=i[1],a=i[2];l&&a&&(t[l]||(t[l]={}),t[l][a]=e[r])}var c=/\\"/g;for(var s in t){var u=t[s];o[n(u.name)]=n(u.command)}}),r.xd.on("window-blur",function(){s()}),r.xd.on("input-focus",function(){s()}),f()}function f(){r.xd.on("key",m)}function h(){r.xd.off("key",m)}function m(e){var n=!0,t=!1,r=void 0;try{for(var i,s=c[Symbol.iterator]();!(n=(i=s.next()).done);n=!0)(0,i.value)(e)}catch(e){t=!0,r=e}finally{try{n||null==s.return||s.return()}finally{if(t)throw r}}!function(e){var n,t=String(e);if("Ctrl+F5"===t||"Ctrl+R"===t)return location.reload();if(!("Ctrl+F"===t||e.event.defaultPrevented||e.isModifierKey()||l.includes(e.code))){var r=16===(n=e.code)?"Shift":17===n?"Ctrl":18===n?"Alt":33===n?"Northeast":34===n?"Southeast":35===n?"Southwest":36===n?"Northwest":37===n?"West":38===n?"North":39===n?"East":40===n?"South":45===n?"Insert":46===n?"Delete":n>=48&&n<=57||n>=65&&n<=90?String.fromCharCode(n):n>=96&&n<=105?"Numpad".concat(n-96):n>=112&&n<=123?"F".concat(n-111):188===n?",":189===n?"-":190===n?".":void 0;if(r){var i=o[r];if(i)return Byond.command(i);if(e.isDown()&&!a[r]){a[r]=!0;var c=u.verbParamsFn(u.keyDownVerb,r);return Byond.command(c)}if(e.isUp()&&a[r]){a[r]=!1;var s=u.verbParamsFn(u.keyUpVerb,r);Byond.command(s)}}}}(e)}},196:function(e,n,t){"use strict";t.d(n,{Bo:()=>v,Fi:()=>x,GW:()=>a,HF:()=>i,Hb:()=>m,II:()=>p,KW:()=>s,Kx:()=>j,PC:()=>u,R4:()=>f,_m:()=>k,au:()=>g,bC:()=>y,cm:()=>c,iB:()=>h,iH:()=>b,j:()=>r,mY:()=>w,ob:()=>d,pN:()=>l,tt:()=>o});var r=8,i=9,o=13,l=16,a=17,c=18,s=27,u=32,d=37,f=38,h=39,m=40,x=48,p=57,j=65,g=90,b=96,y=105,v=112,w=116,k=123},9347:function(e,n,t){"use strict";t.d(n,{Fn:()=>i,VW:()=>o});var r,i=((r={}).A="a",r.Alt="Alt",r.Backspace="Backspace",r.Control="Control",r.D="d",r.Delete="Delete",r.Down="ArrowDown",r.E="e",r.End="End",r.Enter="Enter",r.Esc="Esc",r.Escape="Escape",r.Home="Home",r.Insert="Insert",r.Left="ArrowLeft",r.Minus="-",r.N="n",r.PageDown="PageDown",r.PageUp="PageUp",r.Plus="+",r.Right="ArrowRight",r.S="s",r.Shift="Shift",r.Space=" ",r.Tab="Tab",r.Up="ArrowUp",r.W="w",r.Z="z",r);function o(e){return"Esc"===e||"Escape"===e}},8153:function(e,n,t){"use strict";function r(e,n,t){return et?t:e}function i(e){return e<0?0:e>1?1:e}function o(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100;return(e-n)/(t-n)}function l(e,n){return Number.parseFloat((Math.round(e*Math.pow(10,n)+1e-4*(e>=0?1:-1))/Math.pow(10,n)).toFixed(n))}function a(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Number(e).toFixed(Math.max(n,0))}function c(e,n){var t=!0,r=!1,i=void 0;try{for(var o,l=Object.keys(n)[Symbol.iterator]();!(t=(o=l.next()).done);t=!0){var a,c=o.value;if((a=n[c])&&e>=a[0]&&e<=a[1])return c}}catch(e){r=!0,i=e}finally{try{t||null==l.return||l.return()}finally{if(r)throw i}}}function s(e){return"number"==typeof e&&Number.isFinite(e)&&!Number.isNaN(e)}function u(e){return 180/Math.PI*e}t.d(n,{BV:()=>u,FH:()=>a,NM:()=>l,RH:()=>s,V2:()=>i,bA:()=>o,k0:()=>c,uZ:()=>r})},3946:function(e,n,t){"use strict";function r(e){for(var n="",t=0;ti,Sh:()=>r})},8531:function(e,n,t){"use strict";function r(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return JSON.stringify(e)},t=e.toLowerCase().trim();return function(e){if(!t)return!0;var r=n(e);return!!r&&r.toLowerCase().includes(t)}}function i(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}t.d(n,{LF:()=>a,aV:()=>u,kC:()=>i,mj:()=>r});var o=["Id","Tv"],l=["A","An","And","As","At","But","By","For","For","From","In","Into","Near","Nor","Of","On","Onto","Or","The","To","With"];function a(e){if(!e)return e;var n=e.replace(/([^\W_]+[^\s-]*) */g,function(e){return i(e)}),t=!0,r=!1,a=void 0;try{for(var c,s=l[Symbol.iterator]();!(t=(c=s.next()).done);t=!0){var u=c.value,d=RegExp("\\s".concat(u,"\\s"),"g");n=n.replace(d,function(e){return e.toLowerCase()})}}catch(e){r=!0,a=e}finally{try{t||null==s.return||s.return()}finally{if(r)throw a}}var f=!0,h=!1,m=void 0;try{for(var x,p=o[Symbol.iterator]();!(f=(x=p.next()).done);f=!0){var j=x.value,g=RegExp("\\b".concat(j,"\\b"),"g");n=n.replace(g,function(e){return e.toLowerCase()})}}catch(e){h=!0,m=e}finally{try{f||null==p.return||p.return()}finally{if(h)throw m}}return n}var c=/&(nbsp|amp|quot|lt|gt|apos|trade|copy);/g,s={amp:"&",apos:"'",cops:"\xa9",gt:">",lt:"<",nbsp:" ",quot:'"',trade:"™"};function u(e){return e?e.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(c,function(e,n){return s[n]}).replace(/?([0-9]+);/gi,function(e,n){return String.fromCharCode(Number.parseInt(n,10))}).replace(/?([0-9a-f]+);/gi,function(e,n){return String.fromCharCode(Number.parseInt(n,16))}):e}},5177:function(e,n,t){"use strict";t.d(n,{Iz:()=>g,bf:()=>l,i9:()=>p,wI:()=>j});var r=t(9715),i=t(3946);function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);ttv,mx:()=>p,SW:()=>tu,lH:()=>tZ,iA:()=>rh,DA:()=>tC,JO:()=>S,II:()=>tY,iz:()=>tw,u_:()=>t4,zF:()=>tb,Kx:()=>ry,R4:()=>v,Y2:()=>rr,zt:()=>h,M9:()=>t5,iR:()=>ru,xu:()=>y,Kq:()=>tG,f7:()=>t9,k4:()=>ty,zx:()=>tr,Ee:()=>t_,zA:()=>tK,u:()=>n3,kL:()=>tj,$0:()=>rs,kC:()=>tq,ko:()=>tV,N1:()=>ra,mQ:()=>rj,Lt:()=>tR,RK:()=>m,H2:()=>t3,QG:()=>r_});var r,i,o,l,a=t(1557),c=t(8153),s=t(2778),u=t.t(s,2);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);te.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["as","className","children","tw"]),c=i?"".concat(i," ").concat((0,g.wI)(a)):(0,g.wI)(a);return(0,s.createElement)(void 0===r?"div":r,(n=b({},(0,g.i9)(b({},a,(0,g.Iz)(l)))),t=t={className:c},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n),o)}function v(e){var n=e.className,t=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["className"]);return(0,a.jsx)(y,function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var C=/-o$/;function S(e){var n=e.name,t=void 0===n?"":n,r=e.size,i=e.spin,o=e.className,l=e.rotation,c=_(e,["name","size","spin","className","rotation"]),s=c.style||{};r&&(s.fontSize="".concat(100*r,"%")),l&&(s.transform="rotate(".concat(l,"deg)")),c.style=s;var u=(0,g.i9)(c),d="";if(t.startsWith("tg-"))d=t;else{var f=C.test(t),h=t.replace(C,""),m=!h.startsWith("fa-");d=f?"far ":"fas ",m&&(d+="fa-"),d+=h,i&&(d+=" fa-spin")}return(0,a.jsx)("i",k({className:(0,j.Sh)(["Icon",d,o,(0,g.wI)(c)])},u))}function I(){return"undefined"!=typeof window}function A(e){return P(e)?(e.nodeName||"").toLowerCase():"#document"}function O(e){var n;return(null==e||null==(n=e.ownerDocument)?void 0:n.defaultView)||window}function z(e){var n;return null==(n=(P(e)?e.ownerDocument:e.document)||window.document)?void 0:n.documentElement}function P(e){return!!I()&&(e instanceof Node||e instanceof O(e).Node)}function R(e){return!!I()&&(e instanceof Element||e instanceof O(e).Element)}function E(e){return!!I()&&(e instanceof HTMLElement||e instanceof O(e).HTMLElement)}function H(e){return!!I()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof O(e).ShadowRoot)}(S||(S={})).Stack=function(e){var n,t,r=e.className,i=e.children,o=e.size,l=_(e,["className","children","size"]),c=l.style||{};return o&&(c.fontSize="".concat(100*o,"%")),l.style=c,(0,a.jsx)("span",(n=k({className:(0,j.Sh)(["IconStack",r,(0,g.wI)(l)])},(0,g.i9)(l)),t=t={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))};let T=new Set(["inline","contents"]);function N(e){let{overflow:n,overflowX:t,overflowY:r,display:i}=W(e);return/auto|scroll|overlay|hidden|clip/.test(n+r+t)&&!T.has(i)}let D=new Set(["table","td","th"]),q=[":popover-open",":modal"];function M(e){return q.some(n=>{try{return e.matches(n)}catch(e){return!1}})}let K=["transform","translate","scale","rotate","perspective"],L=["transform","translate","scale","rotate","perspective","filter"],$=["paint","layout","strict","content"];function B(e){let n=F(),t=R(e)?W(e):e;return K.some(e=>!!t[e]&&"none"!==t[e])||!!t.containerType&&"normal"!==t.containerType||!n&&!!t.backdropFilter&&"none"!==t.backdropFilter||!n&&!!t.filter&&"none"!==t.filter||L.some(e=>(t.willChange||"").includes(e))||$.some(e=>(t.contain||"").includes(e))}function F(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}let V=new Set(["html","body","#document"]);function U(e){return V.has(A(e))}function W(e){return O(e).getComputedStyle(e)}function G(e){return R(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Q(e){if("html"===A(e))return e;let n=e.assignedSlot||e.parentNode||H(e)&&e.host||z(e);return H(n)?n.host:n}function J(e,n,t){var r;void 0===n&&(n=[]),void 0===t&&(t=!0);let i=function e(n){let t=Q(n);return U(t)?n.ownerDocument?n.ownerDocument.body:n.body:E(t)&&N(t)?t:e(t)}(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),l=O(i);if(o){let e=Y(l);return n.concat(l,l.visualViewport||[],N(i)?i:[],e&&t?J(e):[])}return n.concat(i,J(i,[],t))}function Y(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var X='input:not([inert]),select:not([inert]),textarea:not([inert]),a[href]:not([inert]),button:not([inert]),[tabindex]:not(slot):not([inert]),audio[controls]:not([inert]),video[controls]:not([inert]),[contenteditable]:not([contenteditable="false"]):not([inert]),details>summary:first-of-type:not([inert]),details:not([inert])',Z="undefined"==typeof Element,ee=Z?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,en=!Z&&Element.prototype.getRootNode?function(e){var n;return null==e||null==(n=e.getRootNode)?void 0:n.call(e)}:function(e){return null==e?void 0:e.ownerDocument},et=function e(n,t){void 0===t&&(t=!0);var r,i=null==n||null==(r=n.getAttribute)?void 0:r.call(n,"inert");return""===i||"true"===i||t&&n&&e(n.parentNode)},er=function(e){var n,t=null==e||null==(n=e.getAttribute)?void 0:n.call(e,"contenteditable");return""===t||"true"===t},ei=function(e,n,t){if(et(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(X));return n&&ee.call(e,X)&&r.unshift(e),r=r.filter(t)},eo=function e(n,t,r){for(var i=[],o=Array.from(n);o.length;){var l=o.shift();if(!et(l,!1))if("SLOT"===l.tagName){var a=l.assignedElements(),c=e(a.length?a:l.children,!0,r);r.flatten?i.push.apply(i,c):i.push({scopeParent:l,candidates:c})}else{ee.call(l,X)&&r.filter(l)&&(t||!n.includes(l))&&i.push(l);var s=l.shadowRoot||"function"==typeof r.getShadowRoot&&r.getShadowRoot(l),u=!et(s,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(l));if(s&&u){var d=e(!0===s?l.children:s.children,!0,r);r.flatten?i.push.apply(i,d):i.push({scopeParent:l,candidates:d})}else o.unshift.apply(o,l.children)}}return i},el=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ea=function(e){if(!e)throw Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||er(e))&&!el(e)?0:e.tabIndex},ec=function(e,n){var t=ea(e);return t<0&&n&&!el(e)?0:t},es=function(e,n){return e.tabIndex===n.tabIndex?e.documentOrder-n.documentOrder:e.tabIndex-n.tabIndex},eu=function(e){return"INPUT"===e.tagName},ed=function(e,n){for(var t=0;tsummary:first-of-type")?e.parentElement:e;if(ee.call(i,"details:not([open]) *"))return!0;if(t&&"full"!==t&&"legacy-full"!==t){if("non-zero-area"===t)return ex(e)}else{if("function"==typeof r){for(var o=e;e;){var l=e.parentElement,a=en(e);if(l&&!l.shadowRoot&&!0===r(l))return ex(e);e=e.assignedSlot?e.assignedSlot:l||a===e.ownerDocument?l:a.host}e=o}if(em(e))return!e.getClientRects().length;if("legacy-full"!==t)return!0}return!1},ej=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var n=e.parentElement;n;){if("FIELDSET"===n.tagName&&n.disabled){for(var t=0;tea(n))&&!!eg(e,n)},ey=function(e){var n=parseInt(e.getAttribute("tabindex"),10);return!!isNaN(n)||!!(n>=0)},ev=function e(n){var t=[],r=[];return n.forEach(function(n,i){var o=!!n.scopeParent,l=o?n.scopeParent:n,a=ec(l,o),c=o?e(n.candidates):l;0===a?o?t.push.apply(t,c):t.push(l):r.push({documentOrder:i,tabIndex:a,item:n,isScope:o,content:c})}),r.sort(es).reduce(function(e,n){return n.isScope?e.push.apply(e,n.content):e.push(n.content),e},[]).concat(t)},ew=function(e,n){var t;return ev((n=n||{}).getShadowRoot?eo([e],n.includeContainer,{filter:eb.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:ey}):ei(e,n.includeContainer,eb.bind(null,n)))};function ek(e,n){if(!e||!n)return!1;let t=null==n.getRootNode?void 0:n.getRootNode();if(e.contains(n))return!0;if(t&&H(t)){let t=n;for(;t;){if(e===t)return!0;t=t.parentNode||t.host}}return!1}function e_(e){return"composedPath"in e?e.composedPath()[0]:e.target}function eC(e,n){return null!=n&&("composedPath"in e?e.composedPath().includes(n):null!=e.target&&n.contains(e.target))}function eS(e){return(null==e?void 0:e.ownerDocument)||document}function eI(e,n,t){return void 0===t&&(t=!0),e.filter(e=>{var r;return e.parentId===n&&(!t||(null==(r=e.context)?void 0:r.open))}).flatMap(n=>[n,...eI(e,n.id,t)])}function eA(e,n){let t=["mouse","pen"];return n||t.push("",void 0),t.includes(e)}var eO="undefined"!=typeof document?s.useLayoutEffect:function(){};function ez(e){let n=s.useRef(e);return eO(()=>{n.current=e}),n}let eP={...u}.useInsertionEffect||(e=>e());function eR(e){let n=s.useRef(()=>{});return eP(()=>{n.current=e}),s.useCallback(function(){for(var e=arguments.length,t=Array(e),r=0;r({getShadowRoot:!0,displayCheck:"function"==typeof ResizeObserver&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function eH(e,n){let t=ew(e,eE()),r=t.length;if(0===r)return;let i=function(e){let n=e.activeElement;for(;(null==(t=n)||null==(t=t.shadowRoot)?void 0:t.activeElement)!=null;){var t;n=n.shadowRoot.activeElement}return n}(eS(e)),o=t.indexOf(i);return t[-1===o?1===n?0:r-1:o+n]}function eT(e,n){let t=n||e.currentTarget,r=e.relatedTarget;return!r||!ek(t,r)}function eN(e){e.querySelectorAll("[data-tabindex]").forEach(e=>{let n=e.dataset.tabindex;delete e.dataset.tabindex,n?e.setAttribute("tabindex",n):e.removeAttribute("tabindex")})}var eD=t(9807);let eq=Math.min,eM=Math.max,eK=Math.round,eL=Math.floor,e$=e=>({x:e,y:e}),eB={left:"right",right:"left",bottom:"top",top:"bottom"},eF={start:"end",end:"start"};function eV(e,n){return"function"==typeof e?e(n):e}function eU(e){return e.split("-")[0]}function eW(e){return e.split("-")[1]}function eG(e){return"x"===e?"y":"x"}function eQ(e){return"y"===e?"height":"width"}let eJ=new Set(["top","bottom"]);function eY(e){return eJ.has(eU(e))?"y":"x"}function eX(e){return e.replace(/start|end/g,e=>eF[e])}let eZ=["left","right"],e0=["right","left"],e1=["top","bottom"],e2=["bottom","top"];function e5(e){return e.replace(/left|right|bottom|top/g,e=>eB[e])}function e3(e){let{x:n,y:t,width:r,height:i}=e;return{width:r,height:i,top:t,left:n,right:n+r,bottom:t+i,x:n,y:t}}function e8(e,n,t){let r,{reference:i,floating:o}=e,l=eY(n),a=eG(eY(n)),c=eQ(a),s=eU(n),u="y"===l,d=i.x+i.width/2-o.width/2,f=i.y+i.height/2-o.height/2,h=i[c]/2-o[c]/2;switch(s){case"top":r={x:d,y:i.y-o.height};break;case"bottom":r={x:d,y:i.y+i.height};break;case"right":r={x:i.x+i.width,y:f};break;case"left":r={x:i.x-o.width,y:f};break;default:r={x:i.x,y:i.y}}switch(eW(n)){case"start":r[a]-=h*(t&&u?-1:1);break;case"end":r[a]+=h*(t&&u?-1:1)}return r}let e7=async(e,n,t)=>{let{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:l}=t,a=o.filter(Boolean),c=await (null==l.isRTL?void 0:l.isRTL(n)),s=await l.getElementRects({reference:e,floating:n,strategy:i}),{x:u,y:d}=e8(s,r,c),f=r,h={},m=0;for(let t=0;tR(e)&&"body"!==A(e)),i=null,o="fixed"===W(e).position,l=o?Q(e):e;for(;R(l)&&!U(l);){let n=W(l),t=B(l);t||"fixed"!==n.position||(i=null),(o?!t&&!i:!t&&"static"===n.position&&!!i&&nc.has(i.position)||N(l)&&!t&&function e(n,t){let r=Q(n);return!(r===t||!R(r)||U(r))&&("fixed"===W(r).position||e(r,t))}(e,l))?r=r.filter(e=>e!==l):i=n,l=Q(l)}return n.set(e,r),r}(n,this._c):[].concat(t),r],l=o[0],a=o.reduce((e,t)=>{let r=ns(n,t,i);return e.top=eM(r.top,e.top),e.right=eq(r.right,e.right),e.bottom=eq(r.bottom,e.bottom),e.left=eM(r.left,e.left),e},ns(n,l,i));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:nf,getElementRects:nh,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:n,height:t}=ne(e);return{width:n,height:t}},getScale:nt,isElement:R,isRTL:function(e){return"rtl"===W(e).direction}};function nx(e,n){return e.x===n.x&&e.y===n.y&&e.width===n.width&&e.height===n.height}let np=(e,n,t)=>{let r=new Map,i={platform:nm,...t},o={...i.platform,_c:r};return e7(e,n,{...i,platform:o})};var nj="undefined"!=typeof document?s.useLayoutEffect:function(){};function ng(e,n){let t,r,i;if(e===n)return!0;if(typeof e!=typeof n)return!1;if("function"==typeof e&&e.toString()===n.toString())return!0;if(e&&n&&"object"==typeof e){if(Array.isArray(e)){if((t=e.length)!==n.length)return!1;for(r=t;0!=r--;)if(!ng(e[r],n[r]))return!1;return!0}if((t=(i=Object.keys(e)).length)!==Object.keys(n).length)return!1;for(r=t;0!=r--;)if(!({}).hasOwnProperty.call(n,i[r]))return!1;for(r=t;0!=r--;){let t=i[r];if(("_owner"!==t||!e.$$typeof)&&!ng(e[t],n[t]))return!1}return!0}return e!=e&&n!=n}function nb(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ny(e,n){let t=nb(e);return Math.round(n*t)/t}function nv(e){let n=s.useRef(e);return nj(()=>{n.current=e}),n}let nw=(e,n)=>{var t;return{...(void 0===(t=e)&&(t=0),{name:"offset",options:t,async fn(e){var n,r;let{x:i,y:o,placement:l,middlewareData:a}=e,c=await e6(e,t);return l===(null==(n=a.offset)?void 0:n.placement)&&null!=(r=a.arrow)&&r.alignmentOffset?{}:{x:i+c.x,y:o+c.y,data:{...c,placement:l}}}}),options:[e,n]}},nk=(e,n)=>{var t;return{...(void 0===(t=e)&&(t={}),{name:"shift",options:t,async fn(e){let{x:n,y:r,placement:i}=e,{mainAxis:o=!0,crossAxis:l=!1,limiter:a={fn:e=>{let{x:n,y:t}=e;return{x:n,y:t}}},...c}=eV(t,e),s={x:n,y:r},u=await e4(e,c),d=eY(eU(i)),f=eG(d),h=s[f],m=s[d];if(o){let e="y"===f?"top":"left",n="y"===f?"bottom":"right",t=h+u[e],r=h-u[n];h=eM(t,eq(h,r))}if(l){let e="y"===d?"top":"left",n="y"===d?"bottom":"right",t=m+u[e],r=m-u[n];m=eM(t,eq(m,r))}let x=a.fn({...e,[f]:h,[d]:m});return{...x,data:{x:x.x-n,y:x.y-r,enabled:{[f]:o,[d]:l}}}}}),options:[e,n]}},n_=(e,n)=>{var t;return{...(void 0===(t=e)&&(t={}),{name:"flip",options:t,async fn(e){var n,r,i,o,l;let{placement:a,middlewareData:c,rects:s,initialPlacement:u,platform:d,elements:f}=e,{mainAxis:h=!0,crossAxis:m=!0,fallbackPlacements:x,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:j="none",flipAlignment:g=!0,...b}=eV(t,e);if(null!=(n=c.arrow)&&n.alignmentOffset)return{};let y=eU(a),v=eY(u),w=eU(u)===u,k=await (null==d.isRTL?void 0:d.isRTL(f.floating)),_=x||(w||!g?[e5(u)]:function(e){let n=e5(e);return[eX(e),n,eX(n)]}(u)),C="none"!==j;!x&&C&&_.push(...function(e,n,t,r){let i=eW(e),o=function(e,n,t){switch(e){case"top":case"bottom":if(t)return n?e0:eZ;return n?eZ:e0;case"left":case"right":return n?e1:e2;default:return[]}}(eU(e),"start"===t,r);return i&&(o=o.map(e=>e+"-"+i),n&&(o=o.concat(o.map(eX)))),o}(u,g,j,k));let S=[u,..._],I=await e4(e,b),A=[],O=(null==(r=c.flip)?void 0:r.overflows)||[];if(h&&A.push(I[y]),m){let e=function(e,n,t){void 0===t&&(t=!1);let r=eW(e),i=eG(eY(e)),o=eQ(i),l="x"===i?r===(t?"end":"start")?"right":"left":"start"===r?"bottom":"top";return n.reference[o]>n.floating[o]&&(l=e5(l)),[l,e5(l)]}(a,s,k);A.push(I[e[0]],I[e[1]])}if(O=[...O,{placement:a,overflows:A}],!A.every(e=>e<=0)){let e=((null==(i=c.flip)?void 0:i.index)||0)+1,n=S[e];if(n&&("alignment"!==m||v===eY(n)||O.every(e=>e.overflows[0]>0&&eY(e.placement)===v)))return{data:{index:e,overflows:O},reset:{placement:n}};let t=null==(o=O.filter(e=>e.overflows[0]<=0).sort((e,n)=>e.overflows[1]-n.overflows[1])[0])?void 0:o.placement;if(!t)switch(p){case"bestFit":{let e=null==(l=O.filter(e=>{if(C){let n=eY(e.placement);return n===v||"y"===n}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,n)=>e+n,0)]).sort((e,n)=>e[1]-n[1])[0])?void 0:l[0];e&&(t=e);break}case"initialPlacement":t=u}if(a!==t)return{reset:{placement:t}}}return{}}}),options:[e,n]}},nC=(e,n)=>{var t;return{...(void 0===(t=e)&&(t={}),{name:"size",options:t,async fn(e){var n,r;let i,o,{placement:l,rects:a,platform:c,elements:s}=e,{apply:u=()=>{},...d}=eV(t,e),f=await e4(e,d),h=eU(l),m=eW(l),x="y"===eY(l),{width:p,height:j}=a.floating;"top"===h||"bottom"===h?(i=h,o=m===(await (null==c.isRTL?void 0:c.isRTL(s.floating))?"start":"end")?"left":"right"):(o=h,i="end"===m?"top":"bottom");let g=j-f.top-f.bottom,b=p-f.left-f.right,y=eq(j-f[i],g),v=eq(p-f[o],b),w=!e.middlewareData.shift,k=y,_=v;if(null!=(n=e.middlewareData.shift)&&n.enabled.x&&(_=b),null!=(r=e.middlewareData.shift)&&r.enabled.y&&(k=g),w&&!m){let e=eM(f.left,0),n=eM(f.right,0),t=eM(f.top,0),r=eM(f.bottom,0);x?_=p-2*(0!==e||0!==n?e+n:eM(f.left,f.right)):k=j-2*(0!==t||0!==r?t+r:eM(f.top,f.bottom))}await u({...e,availableWidth:_,availableHeight:k});let C=await c.getDimensions(s.floating);return p!==C.width||j!==C.height?{reset:{rects:!0}}:{}}}),options:[e,n]}},nS="active",nI="selected",nA={...u},nO=!1,nz=0,nP=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+nz++,nR=nA.useId||function(){let[e,n]=s.useState(()=>nO?nP():void 0);return eO(()=>{null==e&&n(nP())},[]),s.useEffect(()=>{nO=!0},[]),e},nE=s.createContext(null),nH=s.createContext(null),nT=()=>{var e;return(null==(e=s.useContext(nE))?void 0:e.id)||null},nN=()=>s.useContext(nH);function nD(e){return"data-floating-ui-"+e}function nq(e){-1!==e.current&&(clearTimeout(e.current),e.current=-1)}let nM=nD("safe-polygon");function nK(e,n,t){if(t&&!eA(t))return 0;if("number"==typeof e)return e;if("function"==typeof e){let t=e();return"number"==typeof t?t:null==t?void 0:t[n]}return null==e?void 0:e[n]}function nL(e){return"function"==typeof e?e():e}let n$={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"fixed",whiteSpace:"nowrap",width:"1px",top:0,left:0},nB=s.forwardRef(function(e,n){let[t,r]=s.useState();eO(()=>{/apple/i.test(navigator.vendor)&&r("button")},[]);let i={ref:n,tabIndex:0,role:t,"aria-hidden":!t||void 0,[nD("focus-guard")]:"",style:n$};return(0,a.jsx)("span",{...e,...i})}),nF=s.createContext(null),nV=nD("portal");function nU(e){let{children:n,id:t,root:r,preserveTabOrder:i=!0}=e,o=function(e){void 0===e&&(e={});let{id:n,root:t}=e,r=nR(),i=nW(),[o,l]=s.useState(null),a=s.useRef(null);return eO(()=>()=>{null==o||o.remove(),queueMicrotask(()=>{a.current=null})},[o]),eO(()=>{if(!r||a.current)return;let e=n?document.getElementById(n):null;if(!e)return;let t=document.createElement("div");t.id=r,t.setAttribute(nV,""),e.appendChild(t),a.current=t,l(t)},[n,r]),eO(()=>{if(null===t||!r||a.current)return;let e=t||(null==i?void 0:i.portalNode);e&&!R(e)&&(e=e.current),e=e||document.body;let o=null;n&&((o=document.createElement("div")).id=n,e.appendChild(o));let c=document.createElement("div");c.id=r,c.setAttribute(nV,""),(e=o||e).appendChild(c),a.current=c,l(c)},[n,t,r,i]),o}({id:t,root:r}),[l,c]=s.useState(null),u=s.useRef(null),d=s.useRef(null),f=s.useRef(null),h=s.useRef(null),m=null==l?void 0:l.modal,x=null==l?void 0:l.open,p=!!l&&!l.modal&&l.open&&i&&!!(r||o);return s.useEffect(()=>{if(o&&i&&!m)return o.addEventListener("focusin",e,!0),o.addEventListener("focusout",e,!0),()=>{o.removeEventListener("focusin",e,!0),o.removeEventListener("focusout",e,!0)};function e(e){o&&eT(e)&&("focusin"===e.type?eN:function(e){ew(e,eE()).forEach(e=>{e.dataset.tabindex=e.getAttribute("tabindex")||"",e.setAttribute("tabindex","-1")})})(o)}},[o,i,m]),s.useEffect(()=>{o&&(x||eN(o))},[x,o]),(0,a.jsxs)(nF.Provider,{value:s.useMemo(()=>({preserveTabOrder:i,beforeOutsideRef:u,afterOutsideRef:d,beforeInsideRef:f,afterInsideRef:h,portalNode:o,setFocusManagerState:c}),[i,o]),children:[p&&o&&(0,a.jsx)(nB,{"data-type":"outside",ref:u,onFocus:e=>{var n,t;if(eT(e,o))null==(n=f.current)||n.focus();else{let e=eH(eS(t=l?l.domReference:null).body,-1)||t;null==e||e.focus()}}}),p&&o&&(0,a.jsx)("span",{"aria-owns":o.id,style:n$}),o&&eD.createPortal(n,o),p&&o&&(0,a.jsx)(nB,{"data-type":"outside",ref:d,onFocus:e=>{var n,t;if(eT(e,o))null==(n=h.current)||n.focus();else{let n=eH(eS(t=l?l.domReference:null).body,1)||t;null==n||n.focus(),(null==l?void 0:l.closeOnFocusOut)&&(null==l||l.onOpenChange(!1,e.nativeEvent,"focus-out"))}}})]})}let nW=()=>s.useContext(nF);function nG(e){return E(e.target)&&"BUTTON"===e.target.tagName}function nQ(e){return E(e)&&e.matches("input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])")}let nJ={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},nY={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},nX=e=>{var n,t;return{escapeKey:"boolean"==typeof e?e:null!=(n=null==e?void 0:e.escapeKey)&&n,outsidePress:"boolean"==typeof e?e:null==(t=null==e?void 0:e.outsidePress)||t}};function nZ(e,n,t){let r=new Map,i="item"===t,o=e;if(i&&e){let{[nS]:n,[nI]:t,...r}=e;o=r}return{..."floating"===t&&{tabIndex:-1,"data-floating-ui-focusable":""},...o,...n.map(n=>{let r=n?n[t]:null;return"function"==typeof r?e?r(e):null:r}).concat(e).reduce((e,n)=>(n&&Object.entries(n).forEach(n=>{let[t,o]=n;if(!(i&&[nS,nI].includes(t)))if(0===t.indexOf("on")){if(r.has(t)||r.set(t,[]),"function"==typeof o){var l;null==(l=r.get(t))||l.push(o),e[t]=function(){for(var e,n=arguments.length,i=Array(n),o=0;oe(...i)).find(e=>void 0!==e)}}}else e[t]=o}),e),{})}}function n0(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t(function(){let e=new Map;return{emit(n,t){var r;null==(r=e.get(n))||r.forEach(e=>e(t))},on(n,t){e.has(n)||e.set(n,new Set),e.get(n).add(t)},off(n,t){var r;null==(r=e.get(n))||r.delete(t)}}})()),a=null!=nT(),[c,u]=s.useState(r.reference),d=eR((e,n,r)=>{o.current.openEvent=e?n:void 0,l.emit("openchange",{open:e,event:n,reason:r,nested:a}),null==t||t(e,n,r)}),f=s.useMemo(()=>({setPositionReference:u}),[]),h=s.useMemo(()=>({reference:c||r.reference||null,floating:r.floating||null,domReference:r.reference}),[c,r.reference,r.floating]);return s.useMemo(()=>({dataRef:o,open:n,onOpenChange:d,elements:h,events:l,floatingId:i,refs:f}),[n,d,h,l,i,f])}({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||t,i=r.elements,[o,l]=s.useState(null),[a,c]=s.useState(null),u=(null==i?void 0:i.domReference)||o,d=s.useRef(null),f=nN();eO(()=>{u&&(d.current=u)},[u]);let h=function(e){void 0===e&&(e={});let{placement:n="bottom",strategy:t="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:l}={},transform:a=!0,whileElementsMounted:c,open:u}=e,[d,f]=s.useState({x:0,y:0,strategy:t,placement:n,middlewareData:{},isPositioned:!1}),[h,m]=s.useState(r);ng(h,r)||m(r);let[x,p]=s.useState(null),[j,g]=s.useState(null),b=s.useCallback(e=>{e!==k.current&&(k.current=e,p(e))},[]),y=s.useCallback(e=>{e!==_.current&&(_.current=e,g(e))},[]),v=o||x,w=l||j,k=s.useRef(null),_=s.useRef(null),C=s.useRef(d),S=null!=c,I=nv(c),A=nv(i),O=nv(u),z=s.useCallback(()=>{if(!k.current||!_.current)return;let e={placement:n,strategy:t,middleware:h};A.current&&(e.platform=A.current),np(k.current,_.current,e).then(e=>{let n={...e,isPositioned:!1!==O.current};P.current&&!ng(C.current,n)&&(C.current=n,eD.flushSync(()=>{f(n)}))})},[h,n,t,A,O]);nj(()=>{!1===u&&C.current.isPositioned&&(C.current.isPositioned=!1,f(e=>({...e,isPositioned:!1})))},[u]);let P=s.useRef(!1);nj(()=>(P.current=!0,()=>{P.current=!1}),[]),nj(()=>{if(v&&(k.current=v),w&&(_.current=w),v&&w){if(I.current)return I.current(v,w,z);z()}},[v,w,z,I,S]);let R=s.useMemo(()=>({reference:k,floating:_,setReference:b,setFloating:y}),[b,y]),E=s.useMemo(()=>({reference:v,floating:w}),[v,w]),H=s.useMemo(()=>{let e={position:t,left:0,top:0};if(!E.floating)return e;let n=ny(E.floating,d.x),r=ny(E.floating,d.y);return a?{...e,transform:"translate("+n+"px, "+r+"px)",...nb(E.floating)>=1.5&&{willChange:"transform"}}:{position:t,left:n,top:r}},[t,a,E.floating,d.x,d.y]);return s.useMemo(()=>({...d,update:z,refs:R,elements:E,floatingStyles:H}),[d,z,R,E,H])}({...e,elements:{...i,...a&&{reference:a}}}),m=s.useCallback(e=>{let n=R(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;c(n),h.refs.setReference(n)},[h.refs]),x=s.useCallback(e=>{(R(e)||null===e)&&(d.current=e,l(e)),(R(h.refs.reference.current)||null===h.refs.reference.current||null!==e&&!R(e))&&h.refs.setReference(e)},[h.refs]),p=s.useMemo(()=>({...h.refs,setReference:x,setPositionReference:m,domReference:d}),[h.refs,x,m]),j=s.useMemo(()=>({...h.elements,domReference:u}),[h.elements,u]),g=s.useMemo(()=>({...h,...r,refs:p,elements:j,nodeId:n}),[h,p,j,n,r]);return eO(()=>{r.dataRef.current.floatingContext=g;let e=null==f?void 0:f.nodesRef.current.find(e=>e.id===n);e&&(e.context=g)}),s.useMemo(()=>({...h,context:g,refs:p,elements:j}),[h,p,j,g])}({middleware:[nw(void 0===f?6:f),n_({padding:6}),nk(),u&&nC({apply:function(e){var n=e.rects;e.elements.floating.style.width="".concat(n.reference.width,"px")}})],onOpenChange:function(e){S(e),null==k||k(e)},open:C,placement:y||"bottom",transform:!1,whileElementsMounted:function(e,n,t){return void 0!==b&&b(),function(e,n,t,r){let i;void 0===r&&(r={});let{ancestorScroll:o=!0,ancestorResize:l=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:c="function"==typeof IntersectionObserver,animationFrame:s=!1}=r,u=nn(e),d=o||l?[...u?J(u):[],...J(n)]:[];d.forEach(e=>{o&&e.addEventListener("scroll",t,{passive:!0}),l&&e.addEventListener("resize",t)});let f=u&&c?function(e,n){let t,r=null,i=z(e);function o(){var e;clearTimeout(t),null==(e=r)||e.disconnect(),r=null}return!function l(a,c){void 0===a&&(a=!1),void 0===c&&(c=1),o();let s=e.getBoundingClientRect(),{left:u,top:d,width:f,height:h}=s;if(a||n(),!f||!h)return;let m=eL(d),x=eL(i.clientWidth-(u+f)),p={rootMargin:-m+"px "+-x+"px "+-eL(i.clientHeight-(d+h))+"px "+-eL(u)+"px",threshold:eM(0,eq(1,c))||1},j=!0;function g(n){let r=n[0].intersectionRatio;if(r!==c){if(!j)return l();r?l(!1,r):t=setTimeout(()=>{l(!1,1e-7)},1e3)}1!==r||nx(s,e.getBoundingClientRect())||l(),j=!1}try{r=new IntersectionObserver(g,{...p,root:i.ownerDocument})}catch(e){r=new IntersectionObserver(g,p)}r.observe(e)}(!0),o}(u,t):null,h=-1,m=null;a&&(m=new ResizeObserver(e=>{let[r]=e;r&&r.target===u&&m&&(m.unobserve(n),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var e;null==(e=m)||e.observe(n)})),t()}),u&&!s&&m.observe(u),m.observe(n));let x=s?no(e):null;return s&&function n(){let r=no(e);x&&!nx(x,r)&&t(),x=r,i=requestAnimationFrame(n)}(),t(),()=>{var e;d.forEach(e=>{o&&e.removeEventListener("scroll",t),l&&e.removeEventListener("resize",t)}),null==f||f(),null==(e=m)||e.disconnect(),m=null,s&&cancelAnimationFrame(i)}}(e,n,t,{ancestorResize:!1,ancestorScroll:!1,elementResize:!1})}}),A=I.refs,O=I.floatingStyles,P=I.context,H=function(e,n){void 0===n&&(n={});let{open:t,elements:{floating:r}}=e,{duration:i=250}=n,o=("number"==typeof i?i:i.close)||0,[l,a]=s.useState("unmounted"),c=function(e,n){let[t,r]=s.useState(e);return e&&!t&&r(!0),s.useEffect(()=>{if(!e&&t){let e=setTimeout(()=>r(!1),n);return()=>clearTimeout(e)}},[e,t,n]),t}(t,o);return c||"close"!==l||a("unmounted"),eO(()=>{if(r){if(t){a("initial");let e=requestAnimationFrame(()=>{eD.flushSync(()=>{a("open")})});return()=>{cancelAnimationFrame(e)}}a("close")}},[t,r]),{isMounted:c,status:l}}(P,{duration:i||200}),T=H.isMounted,N=H.status,D=function(e,n){void 0===n&&(n={});let{open:t,onOpenChange:r,elements:i,dataRef:o}=e,{enabled:l=!0,escapeKey:a=!0,outsidePress:c=!0,outsidePressEvent:u="pointerdown",referencePress:d=!1,referencePressEvent:f="pointerdown",ancestorScroll:h=!1,bubbles:m,capture:x}=n,p=nN(),j=eR("function"==typeof c?c:()=>!1),g="function"==typeof c?j:c,b=s.useRef(!1),{escapeKey:y,outsidePress:v}=nX(m),{escapeKey:w,outsidePress:k}=nX(x),_=s.useRef(!1),C=s.useRef(-1),S=eR(e=>{var n;if(!t||!l||!a||"Escape"!==e.key||_.current)return;let i=null==(n=o.current.floatingContext)?void 0:n.nodeId,c=p?eI(p.nodesRef.current,i):[];if(!y&&(e.stopPropagation(),c.length>0)){let e=!0;if(c.forEach(n=>{var t;if(null!=(t=n.context)&&t.open&&!n.context.dataRef.current.__escapeKeyBubbles){e=!1;return}}),!e)return}r(!1,"nativeEvent"in e?e.nativeEvent:e,"escape-key")}),I=eR(e=>{var n;let t=()=>{var n;S(e),null==(n=e_(e))||n.removeEventListener("keydown",t)};null==(n=e_(e))||n.addEventListener("keydown",t)}),A=eR(e=>{var n;let t=o.current.insideReactTree;o.current.insideReactTree=!1;let l=b.current;if(b.current=!1,"click"===u&&l||t||"function"==typeof g&&!g(e))return;let a=e_(e),c="["+nD("inert")+"]",s=eS(i.floating).querySelectorAll(c),d=R(a)?a:null;for(;d&&!U(d);){let e=Q(d);if(U(e)||!R(e))break;d=e}if(s.length&&R(a)&&!a.matches("html,body")&&!ek(a,i.floating)&&Array.from(s).every(e=>!ek(d,e)))return;if(E(a)&&P){let n=U(a),t=W(a),r=/auto|scroll/,i=n||r.test(t.overflowX),o=n||r.test(t.overflowY),l=i&&a.clientWidth>0&&a.scrollWidth>a.clientWidth,c=o&&a.clientHeight>0&&a.scrollHeight>a.clientHeight,s="rtl"===t.direction,u=c&&(s?e.offsetX<=a.offsetWidth-a.clientWidth:e.offsetX>a.clientWidth),d=l&&e.offsetY>a.clientHeight;if(u||d)return}let f=null==(n=o.current.floatingContext)?void 0:n.nodeId,h=p&&eI(p.nodesRef.current,f).some(n=>{var t;return eC(e,null==(t=n.context)?void 0:t.elements.floating)});if(eC(e,i.floating)||eC(e,i.domReference)||h)return;let m=p?eI(p.nodesRef.current,f):[];if(m.length>0){let e=!0;if(m.forEach(n=>{var t;if(null!=(t=n.context)&&t.open&&!n.context.dataRef.current.__outsidePressBubbles){e=!1;return}}),!e)return}r(!1,e,"outside-press")}),O=eR(e=>{var n;let t=()=>{var n;A(e),null==(n=e_(e))||n.removeEventListener(u,t)};null==(n=e_(e))||n.addEventListener(u,t)});s.useEffect(()=>{if(!t||!l)return;o.current.__escapeKeyBubbles=y,o.current.__outsidePressBubbles=v;let e=-1;function n(e){r(!1,e,"ancestor-scroll")}function c(){window.clearTimeout(e),_.current=!0}function s(){e=window.setTimeout(()=>{_.current=!1},5*!!F())}let d=eS(i.floating);a&&(d.addEventListener("keydown",w?I:S,w),d.addEventListener("compositionstart",c),d.addEventListener("compositionend",s)),g&&d.addEventListener(u,k?O:A,k);let f=[];return h&&(R(i.domReference)&&(f=J(i.domReference)),R(i.floating)&&(f=f.concat(J(i.floating))),!R(i.reference)&&i.reference&&i.reference.contextElement&&(f=f.concat(J(i.reference.contextElement)))),(f=f.filter(e=>{var n;return e!==(null==(n=d.defaultView)?void 0:n.visualViewport)})).forEach(e=>{e.addEventListener("scroll",n,{passive:!0})}),()=>{a&&(d.removeEventListener("keydown",w?I:S,w),d.removeEventListener("compositionstart",c),d.removeEventListener("compositionend",s)),g&&d.removeEventListener(u,k?O:A,k),f.forEach(e=>{e.removeEventListener("scroll",n)}),window.clearTimeout(e)}},[o,i,a,g,u,t,r,h,l,y,v,S,w,I,A,k,O]),s.useEffect(()=>{o.current.insideReactTree=!1},[o,g,u]);let z=s.useMemo(()=>({onKeyDown:S,...d&&{[nJ[f]]:e=>{r(!1,e.nativeEvent,"reference-press")},..."click"!==f&&{onClick(e){r(!1,e.nativeEvent,"reference-press")}}}}),[S,r,d,f]),P=s.useMemo(()=>({onKeyDown:S,onMouseDown(){b.current=!0},onMouseUp(){b.current=!0},[nY[u]]:()=>{o.current.insideReactTree=!0},onBlurCapture(){p||(nq(C),o.current.insideReactTree=!0,C.current=window.setTimeout(()=>{o.current.insideReactTree=!1}))}}),[S,u,o,p]);return s.useMemo(()=>l?{reference:z,floating:P}:{},[l,z,P])}(P,{ancestorScroll:!0,outsidePress:function(e){var n,t;return!r||(n=e.target,(null!=(t=Element)&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](n):n instanceof t)&&!e.target.closest(r))}}),q=function(e,n){void 0===n&&(n={});let{open:t,onOpenChange:r,dataRef:i,elements:{domReference:o}}=e,{enabled:l=!0,event:a="click",toggle:c=!0,ignoreMouse:u=!1,keyboardHandlers:d=!0,stickIfOpen:f=!0}=n,h=s.useRef(),m=s.useRef(!1),x=s.useMemo(()=>({onPointerDown(e){h.current=e.pointerType},onMouseDown(e){let n=h.current;0===e.button&&"click"!==a&&(eA(n,!0)&&u||(t&&c&&(!i.current.openEvent||!f||"mousedown"===i.current.openEvent.type)?r(!1,e.nativeEvent,"click"):(e.preventDefault(),r(!0,e.nativeEvent,"click"))))},onClick(e){let n=h.current;if("mousedown"===a&&h.current){h.current=void 0;return}eA(n,!0)&&u||(t&&c&&(!i.current.openEvent||!f||"click"===i.current.openEvent.type)?r(!1,e.nativeEvent,"click"):r(!0,e.nativeEvent,"click"))},onKeyDown(e){h.current=void 0,!(e.defaultPrevented||!d||nG(e))&&(" "!==e.key||nQ(o)||(e.preventDefault(),m.current=!0),E(e.target)&&"A"===e.target.tagName||"Enter"!==e.key||(t&&c?r(!1,e.nativeEvent,"click"):r(!0,e.nativeEvent,"click")))},onKeyUp(e){!(e.defaultPrevented||!d||nG(e)||nQ(o))&&" "===e.key&&m.current&&(m.current=!1,t&&c?r(!1,e.nativeEvent,"click"):r(!0,e.nativeEvent,"click"))}}),[i,o,a,u,d,r,t,f,c]);return s.useMemo(()=>l?{reference:x}:{},[l,x])}(P,{enabled:!m}),M=function(e,n){void 0===n&&(n={});let{open:t,onOpenChange:r,dataRef:i,events:o,elements:l}=e,{enabled:a=!0,delay:c=0,handleClose:u=null,mouseOnly:d=!1,restMs:f=0,move:h=!0}=n,m=nN(),x=nT(),p=ez(u),j=ez(c),g=ez(t),b=ez(f),y=s.useRef(),v=s.useRef(-1),w=s.useRef(),k=s.useRef(-1),_=s.useRef(!0),C=s.useRef(!1),S=s.useRef(()=>{}),I=s.useRef(!1),A=eR(()=>{var e;let n=null==(e=i.current.openEvent)?void 0:e.type;return(null==n?void 0:n.includes("mouse"))&&"mousedown"!==n});s.useEffect(()=>{if(a)return o.on("openchange",e),()=>{o.off("openchange",e)};function e(e){let{open:n}=e;n||(nq(v),nq(k),_.current=!0,I.current=!1)}},[a,o]),s.useEffect(()=>{if(!a||!p.current||!t)return;function e(e){A()&&r(!1,e,"hover")}let n=eS(l.floating).documentElement;return n.addEventListener("mouseleave",e),()=>{n.removeEventListener("mouseleave",e)}},[l.floating,t,r,a,p,A]);let O=s.useCallback(function(e,n,t){void 0===n&&(n=!0),void 0===t&&(t="hover");let i=nK(j.current,"close",y.current);i&&!w.current?(nq(v),v.current=window.setTimeout(()=>r(!1,e,t),i)):n&&(nq(v),r(!1,e,t))},[j,r]),z=eR(()=>{S.current(),w.current=void 0}),P=eR(()=>{if(C.current){let e=eS(l.floating).body;e.style.pointerEvents="",e.removeAttribute(nM),C.current=!1}}),E=eR(()=>!!i.current.openEvent&&["click","mousedown"].includes(i.current.openEvent.type));s.useEffect(()=>{if(a&&R(l.domReference)){let r=l.domReference,i=l.floating;return t&&r.addEventListener("mouseleave",o),h&&r.addEventListener("mousemove",e,{once:!0}),r.addEventListener("mouseenter",e),r.addEventListener("mouseleave",n),i&&(i.addEventListener("mouseleave",o),i.addEventListener("mouseenter",c),i.addEventListener("mouseleave",s)),()=>{t&&r.removeEventListener("mouseleave",o),h&&r.removeEventListener("mousemove",e),r.removeEventListener("mouseenter",e),r.removeEventListener("mouseleave",n),i&&(i.removeEventListener("mouseleave",o),i.removeEventListener("mouseenter",c),i.removeEventListener("mouseleave",s))}}function e(e){if(nq(v),_.current=!1,d&&!eA(y.current)||nL(b.current)>0&&!nK(j.current,"open"))return;let n=nK(j.current,"open",y.current);n?v.current=window.setTimeout(()=>{g.current||r(!0,e,"hover")},n):t||r(!0,e,"hover")}function n(e){if(E())return void P();S.current();let n=eS(l.floating);if(nq(k),I.current=!1,p.current&&i.current.floatingContext){t||nq(v),w.current=p.current({...i.current.floatingContext,tree:m,x:e.clientX,y:e.clientY,onClose(){P(),z(),E()||O(e,!0,"safe-polygon")}});let r=w.current;n.addEventListener("mousemove",r),S.current=()=>{n.removeEventListener("mousemove",r)};return}"touch"===y.current&&ek(l.floating,e.relatedTarget)||O(e)}function o(e){!E()&&i.current.floatingContext&&(null==p.current||p.current({...i.current.floatingContext,tree:m,x:e.clientX,y:e.clientY,onClose(){P(),z(),E()||O(e)}})(e))}function c(){nq(v)}function s(e){E()||O(e,!1)}},[l,a,e,d,h,O,z,P,r,t,g,m,j,p,i,E,b]),eO(()=>{var e,n;if(a&&t&&null!=(e=p.current)&&null!=(e=e.__options)&&e.blockPointerEvents&&A()){C.current=!0;let e=l.floating;if(R(l.domReference)&&e){let t=eS(l.floating).body;t.setAttribute(nM,"");let r=l.domReference,i=null==m||null==(n=m.nodesRef.current.find(e=>e.id===x))||null==(n=n.context)?void 0:n.elements.floating;return i&&(i.style.pointerEvents=""),t.style.pointerEvents="none",r.style.pointerEvents="auto",e.style.pointerEvents="auto",()=>{t.style.pointerEvents="",r.style.pointerEvents="",e.style.pointerEvents=""}}}},[a,t,x,l,m,p,A]),eO(()=>{t||(y.current=void 0,I.current=!1,z(),P())},[t,z,P]),s.useEffect(()=>()=>{z(),nq(v),nq(k),P()},[a,l.domReference,z,P]);let H=s.useMemo(()=>{function e(e){y.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:n}=e;function i(){_.current||g.current||r(!0,n,"hover")}(!d||eA(y.current))&&!t&&0!==nL(b.current)&&(I.current&&e.movementX**2+e.movementY**2<2||(nq(k),"touch"===y.current?i():(I.current=!0,k.current=window.setTimeout(i,nL(b.current)))))}}},[d,r,t,g,b]);return s.useMemo(()=>a?{reference:H}:{},[a,H])}(P,{enabled:!m,restMs:x||200}),K=void 0!==g,L=function(e){void 0===e&&(e=[]);let n=e.map(e=>null==e?void 0:e.reference),t=e.map(e=>null==e?void 0:e.floating),r=e.map(e=>null==e?void 0:e.item),i=s.useCallback(n=>nZ(n,e,"reference"),n),o=s.useCallback(n=>nZ(n,e,"floating"),t),l=s.useCallback(n=>nZ(n,e,"item"),r);return s.useMemo(()=>({getReferenceProps:i,getFloatingProps:o,getItemProps:l}),[i,o,l])}(K?[]:[D,p?M:q]),$=L.getReferenceProps,B=L.getFloatingProps,V=$(n1({ref:A.setReference},w&&{onClick:function(e){return e.stopPropagation()}})),G=B({onClick:function(){l&&P.onOpenChange(!1)},ref:A.setFloating});(0,s.useEffect)(function(){K&&P.onOpenChange(g)},[g]),t=(0,s.isValidElement)(o)?(0,s.cloneElement)(o,V):(0,a.jsx)("div",n2(n1({},V),{children:o}));var Y=(0,a.jsx)("div",n2(n1({className:(0,j.Sh)(["Floating",!i&&"Floating--animated",d]),"data-position":P.placement,"data-transition":N,style:n1({},O,h)},G),{children:c}));return(0,a.jsxs)(a.Fragment,{children:[t,T&&!!c&&(v?Y:(0,a.jsx)(nU,{id:"tgui-root",children:Y}))]})}function n3(e){var n=e.content,t=e.children,r=e.position;return(0,a.jsx)(n5,{content:n,contentClasses:"Tooltip",hoverOpen:!0,placement:r,children:t})}function n8(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function tn(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),!n||o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(e,n)||function(e,n){if(e){if("string"==typeof e)return n8(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return n8(e,n)}}(e,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function tt(e,n){var t,r,i,o,l={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){var c=[o,a];if(t)throw TypeError("Generator is already executing.");for(;l;)try{if(t=1,r&&(i=2&c[0]?r.return:c[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,c[1])).done)return i;switch(r=0,i&&(c=[2&c[0],i.value]),c[0]){case 0:case 1:i=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(i=(i=l.trys).length>0&&i[i.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]e.length)&&(n=e.length);for(var t=0,r=Array(n);t2&&void 0!==arguments[2]&&arguments[2];return function(){for(var i=arguments.length,o=Array(i),l=0;l=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["params","phonehome"]),i=(0,s.useRef)(null),o=(0,s.useRef)(function(e){var n=!(arguments.length>1)||void 0===arguments[1]||arguments[1],t=ts.length;ts.push(null);var r=e||"byondui_".concat(t);return{render:function(e){n&&Byond.sendMessage("renderByondUi",{renderByondUi:r}),ts[t]=r,Byond.winset(r,e)},unmount:function(){n&&Byond.sendMessage("unmountByondUi",{renderByondUi:r}),ts[t]=null,Byond.winset(r,{parent:""})}}}(null==n?void 0:n.id,t));function l(){var e=i.current;if(e){var t,r,l,a=(r=null!=(t=window.devicePixelRatio)?t:1,{pos:[(l=e.getBoundingClientRect()).left*r,l.top*r],size:[(l.right-l.left)*r,(l.bottom-l.top)*r]});o.current.render(tc(ta({parent:Byond.windowId},n),{pos:"".concat(a.pos[0],",").concat(a.pos[1]),size:"".concat(a.size[0],"x").concat(a.size[1])}))}}var c=tl(function(){l()},100);return(0,s.useEffect)(function(){return window.addEventListener("resize",c),l(),function(){window.removeEventListener("resize",c),o.current.unmount()}},[]),(0,a.jsx)("div",tc(ta({ref:i},(0,g.i9)(r)),{children:(0,a.jsx)("div",{style:{minHeight:"22px"}})}))}window.addEventListener("beforeunload",function(){for(var e=0;ee.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),h=(0,s.useRef)(null),m=th((0,s.useState)([600,200]),2),x=m[0],p=m[1],j=function(e,n,t,r){if(0===e.length)return[];var i,o,l=td.$.apply(void 0,tm(e)),a=l.map(function(e){return(i=Math).min.apply(i,tm(e))}),c=l.map(function(e){return(o=Math).max.apply(o,tm(e))});return void 0!==t&&(a[0]=t[0],c[0]=t[1]),void 0!==r&&(a[1]=r[0],c[1]=r[1]),e.map(function(e){return(0,td.$)(e,a,c,n).map(function(e){var n=th(e,4),t=n[0],r=n[1];return(t-r)/(n[2]-r)*n[3]})})}(void 0===r?[]:r,x,i,o);if(j.length>0){var g=j[0],b=j[j.length-1];j.push([x[0]+d,b[1]]),j.push([x[0]+d,-d]),j.push([-d,-d]),j.push([-d,g[1]])}var v=function(e){for(var n="",t=0;te.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children","child_mt","childStyles","color","title","buttons","icon"]),m=(n=(0,s.useState)(e.open),function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(n,2)||function(e,n){if(e){if("string"==typeof e)return tg(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tg(e,n)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),x=m[0],p=m[1];return(0,a.jsxs)(y,{mb:1,children:[(0,a.jsxs)("div",{className:"Table",children:[(0,a.jsx)("div",{className:"Table__cell",children:(0,a.jsx)(tr,(t=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["content","children","className"]);return o.color=r?null:"default",o.backgroundColor=e.color||"default",(0,a.jsx)("div",(n=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["className","children"]);return(0,a.jsx)(y,(n=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["fixBlur","fixErrors","objectFit","src"]),d=(0,s.useRef)(0),f=(0,s.useRef)(null),h=(0,g.i9)(u);return n=tk({},h.style),t=t={imageRendering:void 0===r||r?"pixelated":"auto",objectFit:void 0===o?"fill":o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),h.style=n,(0,s.useEffect)(function(){return function(){f.current&&clearTimeout(f.current)}},[]),(0,a.jsx)("img",tk({alt:"dm icon",onError:function(e){if(!i||d.current>=5){f.current&&clearTimeout(f.current);return}var n=e.currentTarget;f.current=setTimeout(function(){n.src="".concat(c,"?attempt=").concat(d.current),d.current++},1e3)},src:c},h))}function tC(e){var n,t=e.direction,r=e.fallback,i=e.frame,o=e.icon_state,l=e.icon,c=e.movement,s=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["direction","fallback","frame","icon_state","icon","movement"]),u=null==(n=Byond.iconRefMap)?void 0:n[l];return u?(0,a.jsx)(t_,function(e){for(var n=1;ne.length)&&(n=e.length);for(var t=0,r=Array(n);te.length)&&(n=e.length);for(var t=0,r=Array(n);tk.length-3?k.length-1:e-2;var t=E.current,r=null==t?void 0:t.children[n];t&&r&&(t.scrollTop=r.offsetTop)}function N(e){if(!(k.length<1)&&!c){var n,t=k.length-1;n=H<0?"next"===e?t:0:"next"===e?H===t?0:H+1:0===H?t:H-1,P&&r&&T(n),null==y||y(tP(k[n]))}}var D=_?"top":"bottom";return m&&(D="".concat(D,"-start")),(0,a.jsxs)("div",{className:(0,j.Sh)(["Dropdown",A&&"Dropdown--fluid"]),children:[(0,a.jsx)(n5,{allowedOutsideClasses:".Dropdown__button",closeAfterInteract:!0,content:(0,a.jsx)("div",{className:"Dropdown__menu",ref:E,children:0===k.length?(0,a.jsx)("div",{className:"Dropdown__menu--entry",children:"No options"}):k.map(function(e){var n=tP(e);return(0,a.jsx)("div",{className:(0,j.Sh)(["Dropdown__menu--entry",I===n&&"selected"]),onClick:function(){null==y||y(n)},onKeyDown:function(e){e.key===w.Fn.Enter&&(null==y||y(n))},children:"string"==typeof e?e:e.displayText},n)})}),contentAutoWidth:!x,contentClasses:"Dropdown__menu--wrapper",contentStyles:{width:x?(0,g.bf)(x):void 0},disabled:c,onMounted:function(){P&&r&&-1!==H&&T(H)},onOpenChange:R,placement:D,children:(0,a.jsxs)("div",{className:(0,j.Sh)(["Dropdown__control","Button--color--".concat(void 0===l?"default":l),c&&"Button--disabled",m&&"Dropdown__control--icon-only",o]),onClick:function(e){(!c||P)&&(null==b||b(e))},onKeyDown:function(e){e.key!==w.Fn.Enter||c||null==b||b(e)},style:{width:(0,g.bf)(void 0===O?15:O)},children:[d&&(0,a.jsx)(S,{className:"Dropdown__icon",name:d,rotation:f,spin:h}),!m&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"Dropdown__selected-text",children:u||I&&tP(I)||(void 0===C?"Select...":C)}),!p&&(0,a.jsx)(S,{className:(0,j.Sh)(["Dropdown__icon","Dropdown__icon--arrow",_&&"over",P&&"open"]),name:"chevron-down"})]})]})}),i&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tr,{className:"Dropdown__button",disabled:c,icon:"chevron-left",onClick:function(){N("previous")}}),(0,a.jsx)(tr,{className:"Dropdown__button",disabled:c,icon:"chevron-right",onClick:function(){N("next")}})]})]})}function tE(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function tN(e){return(0,j.Sh)(["Flex",e.inlineFlex&&"Flex--inline",(0,g.wI)(e)])}function tD(e){var n=e.direction,t=e.wrap,r=e.align,i=e.justify,o=tT(e,["direction","wrap","align","justify"]);return(0,g.i9)(tE({style:tH(tE({},o.style),{alignItems:r,flexDirection:n,flexWrap:!0===t?"wrap":t,justifyContent:i})},o))}function tq(e){var n=e.className,t=tT(e,["className"]);return(0,a.jsx)("div",tE({className:(0,j.Sh)([n,tN(t)])},tD(t)))}function tM(e){var n,t=e.style,r=e.grow,i=e.order,o=e.shrink,l=e.basis,a=e.align,c=tT(e,["style","grow","order","shrink","basis","align"]),s=null!=(n=null!=l?l:e.width)?n:void 0!==r?0:void 0;return(0,g.i9)(tE({style:tH(tE({},t),{alignSelf:a,flexBasis:(0,g.bf)(s),flexGrow:void 0!==r&&Number(r),flexShrink:void 0!==o&&Number(o),order:i})},c))}function tK(e){var n,t,r=e.asset,i=e.assetSize,o=e.base64,l=e.buttons,c=e.buttonsAlt,s=e.children,u=e.className,d=e.color,f=e.disabled,h=e.dmFallback,m=e.dmIcon,x=e.dmIconState,p=e.fluid,b=e.fallbackIcon,y=e.imageSize,v=void 0===y?64:y,w=e.imageSrc,k=e.onClick,_=e.onRightClick,C=e.selected,S=e.title,I=e.tooltip,A=e.tooltipPosition,O=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["asset","assetSize","base64","buttons","buttonsAlt","children","className","color","disabled","dmFallback","dmIcon","dmIconState","fluid","fallbackIcon","imageSize","imageSrc","onClick","onRightClick","selected","title","tooltip","tooltipPosition"]),z=(0,a.jsxs)("div",{className:"ImageButton__container",onClick:function(e){!f&&k&&k(e)},onContextMenu:function(e){e.preventDefault(),!f&&_&&_(e)},onKeyDown:function(e){"Enter"===e.key&&!f&&k&&k(e)},style:{width:p?"auto":"calc(".concat(v,"px + 0.5em + 2px)")},tabIndex:f?void 0:0,children:[(0,a.jsx)("div",{className:"ImageButton__image",children:o||w?(0,a.jsx)(t_,{height:"".concat(v,"px"),src:o?"data:image/png;base64,".concat(o):w,width:"".concat(v,"px")}):m&&x?(0,a.jsx)(tC,{fallback:h||(0,a.jsx)(tL,{icon:"spinner",size:v,spin:!0}),height:"".concat(v,"px"),icon:m,icon_state:x,width:"".concat(v,"px")}):r?(0,a.jsx)(t_,{className:(0,j.Sh)(r||[]),height:"".concat(v,"px"),style:{transform:"scale(".concat(v/(void 0===i?32:i),")"),transformOrigin:"top left"},width:"".concat(v,"px")}):(0,a.jsx)(tL,{icon:b||"question",size:v})}),p&&(S||s)?(0,a.jsxs)("div",{className:"ImageButton__content",children:[S&&(0,a.jsx)("span",{className:(0,j.Sh)(["ImageButton__content--title",!!s&&"ImageButton__content--divider"]),children:S}),s&&(0,a.jsx)("span",{className:"ImageButton__content--text",children:s})]}):s&&(0,a.jsx)("span",{className:"ImageButton__content",children:s})]});return I&&(z=(0,a.jsx)(n3,{content:I,position:A,children:z})),(0,a.jsxs)("div",(n=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["className","value","minValue","maxValue","color","ranges","empty","children"]),f=(0,c.bA)(t,void 0===r?0:r,void 0===i?1:i),h=void 0!==u,m=o||(0,c.k0)(t,void 0===l?{}:l)||"default",x=(0,g.i9)(d),p=["ProgressBar",n,(0,g.wI)(d)],b={width:"".concat(100*(0,c.V2)(f),"%")};return t$.UW.includes(m)||"default"===m?p.push("ProgressBar--color--".concat(m)):(x.style=tF(tB({},x.style),{borderColor:m}),b.backgroundColor=m),(0,a.jsxs)("div",tF(tB({className:(0,j.Sh)(p)},x),{children:[(0,a.jsx)("div",{className:"ProgressBar__fill ProgressBar__fill--animated",style:b}),(0,a.jsx)("div",{className:"ProgressBar__content",children:h?u:!s&&"".concat((0,c.FH)(100*f),"%")})]}))}function tU(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function tG(e){var n=e.className,t=e.vertical,r=e.fill,i=e.reverse,o=e.zebra,l=tW(e,["className","vertical","fill","reverse","zebra"]);return(0,a.jsx)("div",tU({className:(0,j.Sh)(["Stack",r&&"Stack--fill",t?"Stack--vertical":"Stack--horizontal",o&&"Stack--zebra",i&&"Stack--reverse".concat(t?"--vertical":""),n,tN(e)])},tD(tU({direction:"".concat(t?"column":"row").concat(i?"-reverse":"")},l))))}function tQ(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["autoFocus","autoSelect","className","disabled","expensive","fluid","maxLength","monospace","onBlur","onChange","onEnter","onEscape","onKeyDown","placeholder","ref","selfClear","value"]),I=(0,s.useRef)(null),A=null!=k?k:I,O=(n=(0,s.useState)(null!=C?C:""),function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(n,2)||function(e,n){if(e){if("string"==typeof e)return tQ(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tQ(e,n)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),z=O[0],P=O[1];(0,s.useEffect)(function(){var e;return(i||o)&&(e=setTimeout(function(){var e,n;null==(e=A.current)||e.focus(),o&&(null==(n=A.current)||n.select())},1)),function(){return clearTimeout(e)}},[]),(0,s.useEffect)(function(){A.current&&document.activeElement!==A.current&&C!==z&&P(null!=C?C:"")},[C]);var R=(0,g.i9)(S),E=(0,j.Sh)(["Input",c&&"Input--disabled",d&&"Input--fluid",h&&"Input--monospace",(0,g.wI)(S),l]);return(0,a.jsx)("input",(t=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","unclamped","unit","value","bipolar","popupPosition","className","color","fillValue","ranges","size","style"]);return(0,a.jsx)(tO,{dragMatrix:[0,-1],animated:n,format:t,maxValue:r,minValue:i,onChange:o,onDrag:l,step:s,stepPixelSize:u,unclamped:d,unit:f,value:h,children:function(e){var n,t,o=e.displayElement,l=e.displayValue,s=e.dragging,u=e.handleDragStart,d=e.inputElement,f=(0,c.bA)(null!=y?y:l,i,r),v=(0,c.bA)(l,i,r),k=b||(0,c.k0)(null!=y?y:h,w)||"default",I=Math.min((v-.5)*270,225);return(0,a.jsx)(n5,{content:o,contentClasses:"Knob__popupValue",handleOpen:s,placement:x||"top",preventPortal:!0,children:(0,a.jsxs)("div",(n=tX({className:(0,j.Sh)(["Knob","Knob--color--".concat(k),m&&"Knob--bipolar",p,(0,g.wI)(S)])},(0,g.i9)(tX({style:tX({fontSize:"".concat(_,"em")},C)},S))),t=t={onMouseDown:u,children:[(0,a.jsx)("div",{className:"Knob__circle",children:(0,a.jsx)("div",{className:"Knob__cursorBox",style:{transform:"rotate(".concat(I,"deg)")},children:(0,a.jsx)("div",{className:"Knob__cursor"})})}),(0,a.jsxs)("svg",{className:"Knob__ring Knob__ringTrackPivot",viewBox:"0 0 100 100",children:[(0,a.jsx)("circle",{className:"Knob__ringTrack",cx:"50",cy:"50",r:"50"}),(0,a.jsx)("title",{children:"track"})]}),(0,a.jsxs)("svg",{className:"Knob__ring Knob__ringFillPivot",viewBox:"0 0 100 100",children:[(0,a.jsx)("title",{children:"fill"}),(0,a.jsx)("circle",{className:"Knob__ringFill",cx:"50",cy:"50",r:"50",style:{strokeDashoffset:Math.max(((m?2.75:2)-1.5*f)*Math.PI*50,0)}})]}),d]},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))})}})}function t0(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function t5(e){var n=e.children,t=e.wrap,r=t2(e,["children","wrap"]);return(0,a.jsx)(tq,t1(t0({align:"stretch",justify:"space-between",mx:-.5,wrap:t},r),{children:n}))}function t3(e){var n=e.children;return(0,a.jsx)("table",{className:"LabeledList",children:(0,a.jsx)("tbody",{children:n})})}function t8(e){var n,t,r=e.children,i=e.className,o=e.disabled,l=e.display,c=e.onClick,u=e.onMouseOver,d=(e.open,e.openWidth),f=(e.onOutsideClick,function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children","className","disabled","display","onClick","onMouseOver","open","openWidth","onOutsideClick"])),h=(0,s.useRef)(null);return(0,a.jsx)(n5,{allowedOutsideClasses:".Menubar_inner",content:(0,a.jsx)("div",{className:"MenuBar__menu",style:{width:d},children:r}),children:(0,a.jsx)("div",{className:"Menubar_inner",ref:h,children:(0,a.jsx)(y,(n=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["className","children","onEnter","onEscape"]);return(0,a.jsx)(tv,{className:"Modal__dimmer",onKeyDown:function(e){e.key===w.Fn.Enter&&(null==o||o(e)),(0,w.VW)(e.key)&&(null==l||l(e))},children:(0,a.jsx)("div",(n=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["className","color","info","success","danger"]);return(0,a.jsx)(y,function(e){for(var n=1;n=o?(t.currentValue=(0,c.uZ)((0,c.NM)(u/o,0)*o,r,i),t.origin=n.screenY):Math.abs(a)>s&&(t.origin=n.screenY)}else Math.abs(a)>4&&(t.dragging=!0);return t})}),t6(e,"handleDragEnd",function(n){var t=e.state,r=t.dragging,i=t.currentValue,o=e.props,l=o.onDrag,a=o.onChange;if(!o.disabled){if(document.body.style["pointer-events"]="auto",clearInterval(e.dragInterval),clearTimeout(e.dragTimeout),e.setState({dragging:!1,editing:!r,previousValue:i}),r)null==a||a(i),null==l||l(i);else if(e.inputRef){var c=e.inputRef.current;c&&(c.value="".concat(i),setTimeout(function(){c.focus(),c.select()},10))}document.removeEventListener("mousemove",e.handleDragMove),document.removeEventListener("mouseup",e.handleDragEnd)}}),t6(e,"handleBlur",function(n){var t=e.state,r=t.editing,i=t.previousValue,o=e.props,l=o.minValue,a=o.maxValue,s=o.onChange,u=o.onDrag;if(!o.disabled&&r){var d=(0,c.uZ)(Number.parseFloat(n.target.value),l,a);if(Number.isNaN(d))return void e.setState({editing:!1});e.setState({currentValue:d,editing:!1,previousValue:d}),i!==d&&(null==s||s(d),null==u||u(d))}}),t6(e,"handleKeyDown",function(n){var t=e.props,r=t.minValue,i=t.maxValue,o=t.onChange,l=t.onDrag;if(!t.disabled){var a=e.state.previousValue;if(n.key===w.Fn.Enter){var s=(0,c.uZ)(Number.parseFloat(n.currentTarget.value),r,i);if(Number.isNaN(s))return void e.setState({editing:!1});e.setState({currentValue:s,editing:!1,previousValue:s}),a!==s&&(null==o||o(s),null==l||l(s))}else(0,w.VW)(n.key)&&e.setState({editing:!1})}}),e}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&rn(t,e),n=[{key:"componentDidMount",value:function(){var e=Number.parseFloat(this.props.value.toString());this.setState({currentValue:e,previousValue:e})}},{key:"render",value:function(){var e=this.state,n=e.dragging,t=e.editing,r=e.currentValue,i=this.props,o=i.className,l=i.fluid,s=i.animated,u=i.unit,d=i.value,f=i.minValue,m=i.maxValue,x=i.height,p=i.width,g=i.lineHeight,b=i.fontSize,v=i.format,w=Number.parseFloat(d.toString());n&&(w=r);var k=(0,a.jsxs)("div",{className:"NumberInput__content",children:[s&&!n?(0,a.jsx)(h,{format:v,value:w}):v?v(w):w,u?" ".concat(u):""]});return(0,a.jsxs)(y,{className:(0,j.Sh)(["NumberInput",l&&"NumberInput--fluid",o]),fontSize:b,lineHeight:g,minHeight:x,minWidth:p,onMouseDown:this.handleDragStart,children:[(0,a.jsx)("div",{className:"NumberInput__barContainer",children:(0,a.jsx)("div",{className:"NumberInput__bar",style:{height:"".concat((0,c.uZ)((w-f)/(m-f)*100,0,100),"%")}})}),k,(0,a.jsx)("input",{className:"NumberInput__input",onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,ref:this.inputRef,style:{display:t?"inline":"none",fontSize:b,height:x,lineHeight:g}})]})}}],function(e,n){for(var t=0;te.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["allowFloats","autoFocus","autoSelect","className","disabled","expensive","fluid","maxValue","minValue","monospace","onBlur","onChange","onEnter","onEscape","onKeyDown","onValidationChange","value"]),I=(0,s.useRef)(null),A=ro((0,s.useState)(null!=C?C:m),2),O=A[0],z=A[1],P=ro((0,s.useState)(!0),2),R=P[0],E=P[1];function H(e){b&&(u?rl(function(){return b(e)}):b(e))}(0,s.useEffect)(function(){var e;return(i||o)&&(e=setTimeout(function(){var e,n;null==(e=I.current)||e.focus(),o&&(null==(n=I.current)||n.select())},1)),function(){return clearTimeout(e)}},[]),(0,s.useEffect)(function(){if(I.current){var e=I.current.validity.valid;R!==e&&(E(e),null==_||_(e))}},[O]),(0,s.useEffect)(function(){I.current&&document.activeElement!==I.current&&C!==O&&z(null!=C?C:m)},[C]);var T=(0,g.i9)(S),N=(0,j.Sh)(["Input","RestrictedInput",c&&"Input--disabled",d&&"Input--fluid",x&&"Input--monospace",(0,g.wI)(S),l,!R&&"RestrictedInput--invalid"]);return(0,a.jsx)("input",(n=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["buttons","children","className","container_id","fill","fitted","flexGrow","noTopPadding","onScroll","ref","scrollable","scrollableHorizontal","stretchContents","title"]),w=(0,j.Gt)(y)||(0,j.Gt)(r),k=(0,s.useRef)(null),_=null!=m?m:k;return(0,s.useEffect)(function(){return _.current&&(x||p)&&(0,rc.o7)(_.current),function(){_.current&&(0,rc.hf)(_.current)}},[]),(0,a.jsxs)("div",(n=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","unit","value","className","fillValue","color","ranges","children"]),w=void 0!==y;return(0,a.jsx)(tO,{dragMatrix:[1,0],animated:n,format:t,maxValue:r,minValue:i,onChange:o,onDrag:l,step:s,stepPixelSize:u,unit:d,value:f,children:function(e){var n,t,o=e.displayElement,l=e.displayValue,s=e.dragging,u=e.editing,d=e.handleDragStart,p=e.inputElement,k=(0,c.V2)((0,c.bA)(null!=m?m:l,i,r)),_=(0,c.V2)((0,c.bA)(l,i,r)),C=x||(0,c.k0)(null!=m?m:f,b)||"default";return(0,a.jsxs)("div",(n=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function rh(e){var n,t,r=e.className,i=e.collapsing,o=e.children,l=rf(e,["className","collapsing","children"]);return(0,a.jsx)("table",(n=rd({className:(0,j.Sh)(["Table",i&&"Table--collapsing",r,(0,g.wI)(l)])},(0,g.i9)(l)),t=t={children:(0,a.jsx)("tbody",{children:o})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function rm(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function rj(e){var n=e.className,t=e.vertical,r=e.fill,i=e.fluid,o=e.children,l=rp(e,["className","vertical","fill","fluid","children"]);return(0,a.jsx)("div",rx(rm({className:(0,j.Sh)(["Tabs",t?"Tabs--vertical":"Tabs--horizontal",r&&"Tabs--fill",i&&"Tabs--fluid",n,(0,g.wI)(l)])},(0,g.i9)(l)),{children:o}))}function rg(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["autoFocus","autoSelect","className","disabled","dontUseTabForIndent","expensive","fluid","maxLength","monospace","onBlur","onChange","onEnter","onEscape","onKeyDown","placeholder","ref","selfClear","userMarkup","value"]),O=(0,s.useRef)(null),z=null!=_?_:O,P=(n=(0,s.useState)(null!=I?I:""),function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(n,2)||function(e,n){if(e){if("string"==typeof e)return rg(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rg(e,n)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),R=P[0],E=P[1];(0,s.useEffect)(function(){(i||o)&&setTimeout(function(){var e,n;null==(e=z.current)||e.focus(),o&&(null==(n=z.current)||n.select())},1)},[]),(0,s.useEffect)(function(){z.current&&document.activeElement!==z.current&&I!==R&&E(null!=I?I:"")},[I]);var H=(0,g.i9)(A),T=(0,j.Sh)(["Input","TextArea",f&&"Input--fluid",m&&"Input--monospace",c&&"Input--disabled",(0,g.wI)(A),l]);return(0,a.jsx)("textarea",(t=function(e){for(var n=1;ne.length)&&(n=e.length);for(var t=0,r=Array(n);t"']/g,F=RegExp($.source),V=RegExp(B.source),U=/<%-([\s\S]+?)%>/g,W=/<%([\s\S]+?)%>/g,G=/<%=([\s\S]+?)%>/g,Q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,J=/^\w*$/,Y=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,X=/[\\^$.*+?()[\]{}|]/g,Z=RegExp(X.source),ee=/^\s+/,en=/\s/,et=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,er=/\{\n\/\* \[wrapped with (.+)\] \*/,ei=/,? & /,eo=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,el=/[()=,{}\[\]\/\s]/,ea=/\\(\\)?/g,ec=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,es=/\w*$/,eu=/^[-+]0x[0-9a-f]+$/i,ed=/^0b[01]+$/i,ef=/^\[object .+?Constructor\]$/,eh=/^0o[0-7]+$/i,em=/^(?:0|[1-9]\d*)$/,ex=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ep=/($^)/,ej=/['\n\r\u2028\u2029\\]/g,eg="\ud800-\udfff",eb="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",ey="\\u2700-\\u27bf",ev="a-z\\xdf-\\xf6\\xf8-\\xff",ew="A-Z\\xc0-\\xd6\\xd8-\\xde",ek="\\ufe0e\\ufe0f",e_="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",eC="['’]",eS="["+e_+"]",eI="["+eb+"]",eA="["+ev+"]",eO="[^"+eg+e_+"\\d+"+ey+ev+ew+"]",ez="\ud83c[\udffb-\udfff]",eP="[^"+eg+"]",eR="(?:\ud83c[\udde6-\uddff]){2}",eE="[\ud800-\udbff][\udc00-\udfff]",eH="["+ew+"]",eT="\\u200d",eN="(?:"+eA+"|"+eO+")",eD="(?:"+eH+"|"+eO+")",eq="(?:"+eC+"(?:d|ll|m|re|s|t|ve))?",eM="(?:"+eC+"(?:D|LL|M|RE|S|T|VE))?",eK="(?:"+eI+"|"+ez+")?",eL="["+ek+"]?",e$="(?:"+eT+"(?:"+[eP,eR,eE].join("|")+")"+eL+eK+")*",eB=eL+eK+e$,eF="(?:"+["["+ey+"]",eR,eE].join("|")+")"+eB,eV="(?:"+[eP+eI+"?",eI,eR,eE,"["+eg+"]"].join("|")+")",eU=RegExp(eC,"g"),eW=RegExp(eI,"g"),eG=RegExp(ez+"(?="+ez+")|"+eV+eB,"g"),eQ=RegExp([eH+"?"+eA+"+"+eq+"(?="+[eS,eH,"$"].join("|")+")",eD+"+"+eM+"(?="+[eS,eH+eN,"$"].join("|")+")",eH+"?"+eN+"+"+eq,eH+"+"+eM,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",eF].join("|"),"g"),eJ=RegExp("["+eT+eg+eb+ek+"]"),eY=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,eX=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],eZ=-1,e0={};e0[z]=e0[P]=e0[R]=e0[E]=e0[H]=e0[T]=e0[N]=e0[D]=e0[q]=!0,e0[f]=e0[h]=e0[A]=e0[m]=e0[O]=e0[x]=e0[p]=e0[j]=e0[b]=e0[y]=e0[v]=e0[k]=e0[_]=e0[C]=e0[I]=!1;var e1={};e1[f]=e1[h]=e1[A]=e1[O]=e1[m]=e1[x]=e1[z]=e1[P]=e1[R]=e1[E]=e1[H]=e1[b]=e1[y]=e1[v]=e1[k]=e1[_]=e1[C]=e1[S]=e1[T]=e1[N]=e1[D]=e1[q]=!0,e1[p]=e1[j]=e1[I]=!1;var e2={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},e5=parseFloat,e3=parseInt,e8=(void 0===t.g?"undefined":i(t.g))=="object"&&t.g&&t.g.Object===Object&&t.g,e7=("undefined"==typeof self?"undefined":i(self))=="object"&&self&&self.Object===Object&&self,e4=e8||e7||Function("return this")(),e9="object"==i(n)&&n&&!n.nodeType&&n,e6=e9&&"object"==i(e)&&e&&!e.nodeType&&e,ne=e6&&e6.exports===e9,nn=ne&&e8.process,nt=function(){try{var e=e6&&e6.require&&e6.require("util").types;if(e)return e;return nn&&nn.binding&&nn.binding("util")}catch(e){}}(),nr=nt&&nt.isArrayBuffer,ni=nt&&nt.isDate,no=nt&&nt.isMap,nl=nt&&nt.isRegExp,na=nt&&nt.isSet,nc=nt&&nt.isTypedArray;function ns(e,n,t){switch(t.length){case 0:return e.call(n);case 1:return e.call(n,t[0]);case 2:return e.call(n,t[0],t[1]);case 3:return e.call(n,t[0],t[1],t[2])}return e.apply(n,t)}function nu(e,n,t,r){for(var i=-1,o=null==e?0:e.length;++i-1}function nx(e,n,t){for(var r=-1,i=null==e?0:e.length;++r-1;);return t}function nq(e,n){for(var t=e.length;t--&&n_(n,e[t],0)>-1;);return t}var nM=nO({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),nK=nO({"&":"&","<":"<",">":">",'"':""","'":"'"});function nL(e){return"\\"+e2[e]}function n$(e){return eJ.test(e)}function nB(e){var n=-1,t=Array(e.size);return e.forEach(function(e,r){t[++n]=[r,e]}),t}function nF(e,n){return function(t){return e(n(t))}}function nV(e,n){for(var t=-1,r=e.length,i=0,o=[];++t",""":'"',"'":"'"}),nY=function e(n){var t,en,eg,eb,ey=(n=null==n?e4:nY.defaults(e4.Object(),n,nY.pick(e4,eX))).Array,ev=n.Date,ew=n.Error,ek=n.Function,e_=n.Math,eC=n.Object,eS=n.RegExp,eI=n.String,eA=n.TypeError,eO=ey.prototype,ez=ek.prototype,eP=eC.prototype,eR=n["__core-js_shared__"],eE=ez.toString,eH=eP.hasOwnProperty,eT=0,eN=(t=/[^.]+$/.exec(eR&&eR.keys&&eR.keys.IE_PROTO||""))?"Symbol(src)_1."+t:"",eD=eP.toString,eq=eE.call(eC),eM=e4._,eK=eS("^"+eE.call(eH).replace(X,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),eL=ne?n.Buffer:o,e$=n.Symbol,eB=n.Uint8Array,eF=eL?eL.allocUnsafe:o,eV=nF(eC.getPrototypeOf,eC),eG=eC.create,eJ=eP.propertyIsEnumerable,e2=eO.splice,e8=e$?e$.isConcatSpreadable:o,e7=e$?e$.iterator:o,e9=e$?e$.toStringTag:o,e6=function(){try{var e=ip(eC,"defineProperty");return e({},"",{}),e}catch(e){}}(),nn=n.clearTimeout!==e4.clearTimeout&&n.clearTimeout,nt=ev&&ev.now!==e4.Date.now&&ev.now,nv=n.setTimeout!==e4.setTimeout&&n.setTimeout,nO=e_.ceil,nX=e_.floor,nZ=eC.getOwnPropertySymbols,n0=eL?eL.isBuffer:o,n1=n.isFinite,n2=eO.join,n5=nF(eC.keys,eC),n3=e_.max,n8=e_.min,n7=ev.now,n4=n.parseInt,n9=e_.random,n6=eO.reverse,te=ip(n,"DataView"),tn=ip(n,"Map"),tt=ip(n,"Promise"),tr=ip(n,"Set"),ti=ip(n,"WeakMap"),to=ip(eC,"create"),tl=ti&&new ti,ta={},tc=iL(te),ts=iL(tn),tu=iL(tt),td=iL(tr),tf=iL(ti),th=e$?e$.prototype:o,tm=th?th.valueOf:o,tx=th?th.toString:o;function tp(e){if(oJ(e)&&!oM(e)&&!r(e,ty)){if(r(e,tb))return e;if(eH.call(e,"__wrapped__"))return i$(e)}return new tb(e)}var tj=function(){function e(){}return function(n){if(!oQ(n))return{};if(eG)return eG(n);e.prototype=n;var t=new e;return e.prototype=o,t}}();function tg(){}function tb(e,n){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=o}function ty(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=0xffffffff,this.__views__=[]}function tv(e){var n=-1,t=null==e?0:e.length;for(this.clear();++n-1},tw.prototype.set=function(e,n){var t=this.__data__,r=tz(t,e);return r<0?(++this.size,t.push([e,n])):t[r][1]=n,this},tk.prototype.clear=function(){this.size=0,this.__data__={hash:new tv,map:new(tn||tw),string:new tv}},tk.prototype.delete=function(e){var n=im(this,e).delete(e);return this.size-=+!!n,n},tk.prototype.get=function(e){return im(this,e).get(e)},tk.prototype.has=function(e){return im(this,e).has(e)},tk.prototype.set=function(e,n){var t=im(this,e),r=t.size;return t.set(e,n),this.size+=+(t.size!=r),this},t_.prototype.add=t_.prototype.push=function(e){return this.__data__.set(e,a),this},t_.prototype.has=function(e){return this.__data__.has(e)};function tA(e,n,t){(o===t||oT(e[n],t))&&(o!==t||n in e)||tE(e,n,t)}function tO(e,n,t){var r=e[n];eH.call(e,n)&&oT(r,t)&&(o!==t||n in e)||tE(e,n,t)}function tz(e,n){for(var t=e.length;t--;)if(oT(e[t][0],n))return t;return -1}function tP(e,n,t,r){return tK(e,function(e,i,o){n(r,e,t(e),o)}),r}function tR(e,n){return e&&rB(n,lp(n),e)}function tE(e,n,t){"__proto__"==n&&e6?e6(e,n,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[n]=t}function tH(e,n){for(var t=-1,r=n.length,i=ey(r),l=null==e;++t=n?e:n)),e}function tN(e,n,t,r,i,l){var a,c=1&n,s=2&n,u=4&n;if(t&&(a=i?t(e,r,i,l):t(e)),o!==a)return a;if(!oQ(e))return e;var d=oM(e);if(d){if(p=(h=e).length,w=new h.constructor(p),p&&"string"==typeof h[0]&&eH.call(h,"index")&&(w.index=h.index,w.input=h.input),a=w,!c)return r$(e,a)}else{var h,p,w,I,M,K,L,$,B=ib(e),F=B==j||B==g;if(oB(e))return rN(e,c);if(B==v||B==f||F&&!i){if(a=s||F?{}:iv(e),!c){return s?(I=e,M=($=a)&&rB(e,lj(e),$),rB(I,ig(I),M)):(K=e,L=tR(a,e),rB(K,ij(K),L))}}else{if(!e1[B])return i?e:{};a=function(e,n,t){var r,i,o=e.constructor;switch(n){case A:return rD(e);case m:case x:return new o(+e);case O:return r=t?rD(e.buffer):e.buffer,new e.constructor(r,e.byteOffset,e.byteLength);case z:case P:case R:case E:case H:case T:case N:case D:case q:return rq(e,t);case b:return new o;case y:case C:return new o(e);case k:return(i=new e.constructor(e.source,es.exec(e))).lastIndex=e.lastIndex,i;case _:return new o;case S:return tm?eC(tm.call(e)):{}}}(e,B,c)}}l||(l=new tC);var V=l.get(e);if(V)return V;l.set(e,a),o1(e)?e.forEach(function(r){a.add(tN(r,n,t,r,e,l))}):oY(e)&&e.forEach(function(r,i){a.set(i,tN(r,n,t,i,e,l))});var U=u?s?ic:ia:s?lj:lp,W=d?o:U(e);return nd(W||e,function(r,i){W&&(r=e[i=r]),tO(a,i,tN(r,n,t,i,e,l))}),a}function tD(e,n,t){var r=t.length;if(null==e)return!r;for(e=eC(e);r--;){var i=t[r],l=n[i],a=e[i];if(o===a&&!(i in e)||!l(a))return!1}return!0}function tq(e,n,t){if("function"!=typeof e)throw new eA(l);return iH(function(){e.apply(o,t)},n)}function tM(e,n,t,r){var i=-1,o=nm,l=!0,a=e.length,c=[],s=n.length;if(!a)return c;t&&(n=np(n,nH(t))),r?(o=nx,l=!1):n.length>=200&&(o=nN,l=!1,n=new t_(n));r:for(;++i0&&t(a)?n>1?tV(a,n-1,t,r,i):nj(i,a):r||(i[i.length]=a)}return i}var tU=rW(),tW=rW(!0);function tG(e,n){return e&&tU(e,n,lp)}function tQ(e,n){return e&&tW(e,n,lp)}function tJ(e,n){return nh(n,function(n){return oU(e[n])})}function tY(e,n){n=rE(n,e);for(var t=0,r=n.length;null!=e&&tn}function t1(e,n){return null!=e&&eH.call(e,n)}function t2(e,n){return null!=e&&n in eC(e)}function t5(e,n,t){for(var r=t?nx:nm,i=e[0].length,l=e.length,a=l,c=ey(l),s=1/0,u=[];a--;){var d=e[a];a&&n&&(d=np(d,nH(n))),s=n8(d.length,s),c[a]=!t&&(n||i>=120&&d.length>=120)?new t_(a&&d):o}d=e[0];var f=-1,h=c[0];r:for(;++f=a)return c;return c*("desc"==t[r]?-1:1)}}return e.index-n.index}(e,n,t)});o--;)i[o]=i[o].value;return i}function rc(e,n,t){for(var r=-1,i=n.length,o={};++r-1;)a!==e&&e2.call(a,c,1),e2.call(e,c,1);return e}function ru(e,n){for(var t=e?n.length:0,r=t-1;t--;){var i=n[t];if(t==r||i!==o){var o=i;ik(i)?e2.call(e,i,1):rC(e,i)}}return e}function rd(e,n){return e+nX(n9()*(n-e+1))}function rf(e,n){var t="";if(!e||n<1||n>0x1fffffffffffff)return t;do n%2&&(t+=e),(n=nX(n/2))&&(e+=e);while(n);return t}function rh(e,n){return iT(iz(e,n,l$),e+"")}function rm(e,n,t,r){if(!oQ(e))return e;n=rE(n,e);for(var i=-1,l=n.length,a=l-1,c=e;null!=c&&++ii?0:i+n),(t=t>i?i:t)<0&&(t+=i),i=n>t?0:t-n>>>0,n>>>=0;for(var o=ey(i);++r>>1,l=e[o];null!==l&&!o5(l)&&(t?l<=n:l=200){var s=n?null:r9(e);if(s)return nU(s);l=!1,i=nN,c=new t_}else c=n?[]:a;r:for(;++r=r?e:rj(e,n,t)}var rT=nn||function(e){return e4.clearTimeout(e)};function rN(e,n){if(n)return e.slice();var t=e.length,r=eF?eF(t):new e.constructor(t);return e.copy(r),r}function rD(e){var n=new e.constructor(e.byteLength);return new eB(n).set(new eB(e)),n}function rq(e,n){var t=n?rD(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.length)}function rM(e,n){if(e!==n){var t=o!==e,r=null===e,i=e==e,l=o5(e),a=o!==n,c=null===n,s=n==n,u=o5(n);if(!c&&!u&&!l&&e>n||l&&a&&s&&!c&&!u||r&&a&&s||!t&&s||!i)return 1;if(!r&&!l&&!u&&e1?t[i-1]:o,a=i>2?t[2]:o;for(l=e.length>3&&"function"==typeof l?(i--,l):o,a&&i_(t[0],t[1],a)&&(l=i<3?o:l,i=1),n=eC(n);++r-1?i[l?n[a]:a]:o}}function rX(e){return il(function(n){var t=n.length,r=t,i=tb.prototype.thru;for(e&&n.reverse();r--;){var a=n[r];if("function"!=typeof a)throw new eA(l);if(i&&!c&&"wrapper"==iu(a))var c=new tb([],!0)}for(r=c?r:t;++r1&&y.reverse(),f&&uc))return!1;var u=l.get(e),d=l.get(n);if(u&&d)return u==n&&d==e;var f=-1,h=!0,m=2&t?new t_:o;for(l.set(e,n),l.set(n,e);++f-1&&e%1==0&&e1?"& ":"")+n[r],n=n.join(t>2?", ":" "),e.replace(et,"{\n/* [wrapped with "+n+"] */\n")}(l,(r=(o=l.match(er))?o[1].split(ei):[],i=t,nd(d,function(e){var n="_."+e[0];i&e[1]&&!nm(r,n)&&r.push(n)}),r.sort())))}function iD(e){var n=0,t=0;return function(){var r=n7(),i=16-(r-t);if(t=r,i>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(o,arguments)}}function iq(e,n){var t=-1,r=e.length,i=r-1;for(n=o===n?r:n;++t1?e[n-1]:o;return t="function"==typeof t?(e.pop(),t):o,i9(e,t)});function oo(e){var n=tp(e);return n.__chain__=!0,n}function ol(e,n){return n(e)}var oa=il(function(e){var n=e.length,t=n?e[0]:0,i=this.__wrapped__,l=function(n){return tH(n,e)};return n>1||this.__actions__.length||!r(i,ty)||!ik(t)?this.thru(l):((i=i.slice(t,+t+ +!!n)).__actions__.push({func:ol,args:[l],thisArg:o}),new tb(i,this.__chain__).thru(function(e){return n&&!e.length&&e.push(o),e}))}),oc=rF(function(e,n,t){eH.call(e,t)?++e[t]:tE(e,t,1)}),os=rY(iU),ou=rY(iW);function od(e,n){return(oM(e)?nd:tK)(e,ih(n,3))}function of(e,n){return(oM(e)?function(e,n){for(var t=null==e?0:e.length;t--&&!1!==n(e[t],t,e););return e}:tL)(e,ih(n,3))}var oh=rF(function(e,n,t){eH.call(e,t)?e[t].push(n):tE(e,t,[n])}),om=rh(function(e,n,t){var r=-1,i="function"==typeof n,o=oL(e)?ey(e.length):[];return tK(e,function(e){o[++r]=i?ns(n,e,t):t3(e,n,t)}),o}),ox=rF(function(e,n,t){tE(e,t,n)});function op(e,n){return(oM(e)?np:rt)(e,ih(n,3))}var oj=rF(function(e,n,t){e[+!t].push(n)},function(){return[[],[]]}),og=rh(function(e,n){if(null==e)return[];var t=n.length;return t>1&&i_(e,n[0],n[1])?n=[]:t>2&&i_(n[0],n[1],n[2])&&(n=[n[0]]),ra(e,tV(n,1),[])}),ob=nt||function(){return e4.Date.now()};function oy(e,n,t){return n=t?o:n,n=e&&null==n?e.length:n,ie(e,128,o,o,o,o,n)}function ov(e,n){var t;if("function"!=typeof n)throw new eA(l);return e=o6(e),function(){return--e>0&&(t=n.apply(this,arguments)),e<=1&&(n=o),t}}var ow=rh(function(e,n,t){var r=1;if(t.length){var i=nV(t,id(ow));r|=32}return ie(e,r,n,t,i)}),ok=rh(function(e,n,t){var r=3;if(t.length){var i=nV(t,id(ok));r|=32}return ie(n,r,e,t,i)});function o_(e,n,t){n=t?o:n;var r=ie(e,8,o,o,o,o,o,n);return r.placeholder=o_.placeholder,r}function oC(e,n,t){n=t?o:n;var r=ie(e,16,o,o,o,o,o,n);return r.placeholder=oC.placeholder,r}function oS(e,n,t){var r,i,a,c,s,u,d=0,f=!1,h=!1,m=!0;if("function"!=typeof e)throw new eA(l);function x(n){var t=r,l=i;return r=i=o,d=n,c=e.apply(l,t)}function p(e){var t=e-u,r=e-d;return o===u||t>=n||t<0||h&&r>=a}function j(){var e,t,r,i=ob();if(p(i))return g(i);s=iH(j,(e=i-u,t=i-d,r=n-e,h?n8(r,a-t):r))}function g(e){return(s=o,m&&r)?x(e):(r=i=o,c)}function b(){var e,t=ob(),l=p(t);if(r=arguments,i=this,u=t,l){if(o===s)return d=e=u,s=iH(j,n),f?x(e):c;if(h)return rT(s),s=iH(j,n),x(u)}return o===s&&(s=iH(j,n)),c}return n=ln(n)||0,oQ(t)&&(f=!!t.leading,a=(h="maxWait"in t)?n3(ln(t.maxWait)||0,n):a,m="trailing"in t?!!t.trailing:m),b.cancel=function(){o!==s&&rT(s),d=0,r=u=i=s=o},b.flush=function(){return o===s?c:g(ob())},b}var oI=rh(function(e,n){return tq(e,1,n)}),oA=rh(function(e,n,t){return tq(e,ln(n)||0,t)});function oO(e,n){if("function"!=typeof e||null!=n&&"function"!=typeof n)throw new eA(l);var t=function(){var r=arguments,i=n?n.apply(this,r):r[0],o=t.cache;if(o.has(i))return o.get(i);var l=e.apply(this,r);return t.cache=o.set(i,l)||o,l};return t.cache=new(oO.Cache||tk),t}function oz(e){if("function"!=typeof e)throw new eA(l);return function(){var n=arguments;switch(n.length){case 0:return!e.call(this);case 1:return!e.call(this,n[0]);case 2:return!e.call(this,n[0],n[1]);case 3:return!e.call(this,n[0],n[1],n[2])}return!e.apply(this,n)}}oO.Cache=tk;var oP=rh(function(e,n){var t=(n=1==n.length&&oM(n[0])?np(n[0],nH(ih())):np(tV(n,1),nH(ih()))).length;return rh(function(r){for(var i=-1,o=n8(r.length,t);++i=n}),oq=t8(function(){return arguments}())?t8:function(e){return oJ(e)&&eH.call(e,"callee")&&!eJ.call(e,"callee")},oM=ey.isArray,oK=nr?nH(nr):function(e){return oJ(e)&&tZ(e)==A};function oL(e){return null!=e&&oG(e.length)&&!oU(e)}function o$(e){return oJ(e)&&oL(e)}var oB=n0||l1,oF=ni?nH(ni):function(e){return oJ(e)&&tZ(e)==x};function oV(e){if(!oJ(e))return!1;var n=tZ(e);return n==p||"[object DOMException]"==n||"string"==typeof e.message&&"string"==typeof e.name&&!oZ(e)}function oU(e){if(!oQ(e))return!1;var n=tZ(e);return n==j||n==g||"[object AsyncFunction]"==n||"[object Proxy]"==n}function oW(e){return"number"==typeof e&&e==o6(e)}function oG(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=0x1fffffffffffff}function oQ(e){var n=void 0===e?"undefined":i(e);return null!=e&&("object"==n||"function"==n)}function oJ(e){return null!=e&&(void 0===e?"undefined":i(e))=="object"}var oY=no?nH(no):function(e){return oJ(e)&&ib(e)==b};function oX(e){return"number"==typeof e||oJ(e)&&tZ(e)==y}function oZ(e){if(!oJ(e)||tZ(e)!=v)return!1;var n=eV(e);if(null===n)return!0;var t=eH.call(n,"constructor")&&n.constructor;return"function"==typeof t&&r(t,t)&&eE.call(t)==eq}var o0=nl?nH(nl):function(e){return oJ(e)&&tZ(e)==k},o1=na?nH(na):function(e){return oJ(e)&&ib(e)==_};function o2(e){return"string"==typeof e||!oM(e)&&oJ(e)&&tZ(e)==C}function o5(e){return(void 0===e?"undefined":i(e))=="symbol"||oJ(e)&&tZ(e)==S}var o3=nc?nH(nc):function(e){return oJ(e)&&oG(e.length)&&!!e0[tZ(e)]},o8=r8(rn),o7=r8(function(e,n){return e<=n});function o4(e){if(!e)return[];if(oL(e))return o2(e)?nG(e):r$(e);if(e7&&e[e7]){for(var n,t=e[e7](),r=[];!(n=t.next()).done;)r.push(n.value);return r}var i=ib(e);return(i==b?nB:i==_?nU:lC)(e)}function o9(e){return e?(e=ln(e))===s||e===-s?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}function o6(e){var n=o9(e),t=n%1;return n==n?t?n-t:n:0}function le(e){return e?tT(o6(e),0,0xffffffff):0}function ln(e){if("number"==typeof e)return e;if(o5(e))return u;if(oQ(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=oQ(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=nE(e);var t=ed.test(e);return t||eh.test(e)?e3(e.slice(2),t?2:8):eu.test(e)?u:+e}function lt(e){return rB(e,lj(e))}function lr(e){return null==e?"":rk(e)}var li=rV(function(e,n){if(iA(n)||oL(n))return void rB(n,lp(n),e);for(var t in n)eH.call(n,t)&&tO(e,t,n[t])}),lo=rV(function(e,n){rB(n,lj(n),e)}),ll=rV(function(e,n,t,r){rB(n,lj(n),e,r)}),la=rV(function(e,n,t,r){rB(n,lp(n),e,r)}),lc=il(tH),ls=rh(function(e,n){e=eC(e);var t=-1,r=n.length,i=r>2?n[2]:o;for(i&&i_(n[0],n[1],i)&&(r=1);++t1),n}),rB(e,ic(e),t),r&&(t=tN(t,7,ii));for(var i=n.length;i--;)rC(t,n[i]);return t}),lv=il(function(e,n){return null==e?{}:rc(e,n,function(n,t){return lf(e,t)})});function lw(e,n){if(null==e)return{};var t=np(ic(e),function(e){return[e]});return n=ih(n),rc(e,t,function(e,t){return n(e,t[0])})}var lk=r6(lp),l_=r6(lj);function lC(e){return null==e?[]:nT(e,lp(e))}var lS=rQ(function(e,n,t){return n=n.toLowerCase(),e+(t?lI(n):n)});function lI(e){return lT(lr(e).toLowerCase())}function lA(e){return(e=lr(e))&&e.replace(ex,nM).replace(eW,"")}var lO=rQ(function(e,n,t){return e+(t?"-":"")+n.toLowerCase()}),lz=rQ(function(e,n,t){return e+(t?" ":"")+n.toLowerCase()}),lP=rG("toLowerCase"),lR=rQ(function(e,n,t){return e+(t?"_":"")+n.toLowerCase()}),lE=rQ(function(e,n,t){return e+(t?" ":"")+lT(n)}),lH=rQ(function(e,n,t){return e+(t?" ":"")+n.toUpperCase()}),lT=rG("toUpperCase");function lN(e,n,t){if(e=lr(e),n=t?o:n,o===n){var r;return(r=e,eY.test(r))?e.match(eQ)||[]:e.match(eo)||[]}return e.match(n)||[]}var lD=rh(function(e,n){try{return ns(e,o,n)}catch(e){return oV(e)?e:new ew(e)}}),lq=il(function(e,n){return nd(n,function(n){tE(e,n=iK(n),ow(e[n],e))}),e});function lM(e){return function(){return e}}var lK=rX(),lL=rX(!0);function l$(e){return e}function lB(e){return t6("function"==typeof e?e:tN(e,1))}var lF=rh(function(e,n){return function(t){return t3(t,e,n)}}),lV=rh(function(e,n){return function(t){return t3(e,t,n)}});function lU(e,n,t){var r=lp(n),i=tJ(n,r);null!=t||oQ(n)&&(i.length||!r.length)||(t=n,n=e,e=this,i=tJ(n,lp(n)));var o=!(oQ(t)&&"chain"in t)||!!t.chain,l=oU(e);return nd(i,function(t){var r=n[t];e[t]=r,l&&(e.prototype[t]=function(){var n=this.__chain__;if(o||n){var t=e(this.__wrapped__);return(t.__actions__=r$(this.__actions__)).push({func:r,args:arguments,thisArg:e}),t.__chain__=n,t}return r.apply(e,nj([this.value()],arguments))})}),e}function lW(){}var lG=r2(np),lQ=r2(nf),lJ=r2(ny);function lY(e){return iC(e)?nA(iK(e)):function(n){return tY(n,e)}}var lX=r3(),lZ=r3(!0);function l0(){return[]}function l1(){return!1}var l2=r1(function(e,n){return e+n},0),l5=r4("ceil"),l3=r1(function(e,n){return e/n},1),l8=r4("floor"),l7=r1(function(e,n){return e*n},1),l4=r4("round"),l9=r1(function(e,n){return e-n},0);return tp.after=function(e,n){if("function"!=typeof n)throw new eA(l);return e=o6(e),function(){if(--e<1)return n.apply(this,arguments)}},tp.ary=oy,tp.assign=li,tp.assignIn=lo,tp.assignInWith=ll,tp.assignWith=la,tp.at=lc,tp.before=ov,tp.bind=ow,tp.bindAll=lq,tp.bindKey=ok,tp.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return oM(e)?e:[e]},tp.chain=oo,tp.chunk=function(e,n,t){n=(t?i_(e,n,t):o===n)?1:n3(o6(n),0);var r=null==e?0:e.length;if(!r||n<1)return[];for(var i=0,l=0,a=ey(nO(r/n));ic?0:c+l),(a=o===a||a>c?c:o6(a))<0&&(a+=c),a=l>a?0:le(a);l>>0)?(e=lr(e))&&("string"==typeof n||null!=n&&!o0(n))&&!(n=rk(n))&&n$(e)?rH(nG(e),0,t):e.split(n,t):[]},tp.spread=function(e,n){if("function"!=typeof e)throw new eA(l);return n=null==n?0:n3(o6(n),0),rh(function(t){var r=t[n],i=rH(t,0,n);return r&&nj(i,r),ns(e,this,i)})},tp.tail=function(e){var n=null==e?0:e.length;return n?rj(e,1,n):[]},tp.take=function(e,n,t){return e&&e.length?rj(e,0,(n=t||o===n?1:o6(n))<0?0:n):[]},tp.takeRight=function(e,n,t){var r=null==e?0:e.length;return r?rj(e,(n=r-(n=t||o===n?1:o6(n)))<0?0:n,r):[]},tp.takeRightWhile=function(e,n){return e&&e.length?rI(e,ih(n,3),!1,!0):[]},tp.takeWhile=function(e,n){return e&&e.length?rI(e,ih(n,3)):[]},tp.tap=function(e,n){return n(e),e},tp.throttle=function(e,n,t){var r=!0,i=!0;if("function"!=typeof e)throw new eA(l);return oQ(t)&&(r="leading"in t?!!t.leading:r,i="trailing"in t?!!t.trailing:i),oS(e,n,{leading:r,maxWait:n,trailing:i})},tp.thru=ol,tp.toArray=o4,tp.toPairs=lk,tp.toPairsIn=l_,tp.toPath=function(e){return oM(e)?np(e,iK):o5(e)?[e]:r$(iM(lr(e)))},tp.toPlainObject=lt,tp.transform=function(e,n,t){var r=oM(e),i=r||oB(e)||o3(e);if(n=ih(n,4),null==t){var o=e&&e.constructor;t=i?r?new o:[]:oQ(e)&&oU(o)?tj(eV(e)):{}}return(i?nd:tG)(e,function(e,r,i){return n(t,e,r,i)}),t},tp.unary=function(e){return oy(e,1)},tp.union=i3,tp.unionBy=i8,tp.unionWith=i7,tp.uniq=function(e){return e&&e.length?r_(e):[]},tp.uniqBy=function(e,n){return e&&e.length?r_(e,ih(n,2)):[]},tp.uniqWith=function(e,n){return n="function"==typeof n?n:o,e&&e.length?r_(e,o,n):[]},tp.unset=function(e,n){return null==e||rC(e,n)},tp.unzip=i4,tp.unzipWith=i9,tp.update=function(e,n,t){return null==e?e:rS(e,n,rR(t))},tp.updateWith=function(e,n,t,r){return r="function"==typeof r?r:o,null==e?e:rS(e,n,rR(t),r)},tp.values=lC,tp.valuesIn=function(e){return null==e?[]:nT(e,lj(e))},tp.without=i6,tp.words=lN,tp.wrap=function(e,n){return oR(rR(n),e)},tp.xor=oe,tp.xorBy=on,tp.xorWith=ot,tp.zip=or,tp.zipObject=function(e,n){return rz(e||[],n||[],tO)},tp.zipObjectDeep=function(e,n){return rz(e||[],n||[],rm)},tp.zipWith=oi,tp.entries=lk,tp.entriesIn=l_,tp.extend=lo,tp.extendWith=ll,lU(tp,tp),tp.add=l2,tp.attempt=lD,tp.camelCase=lS,tp.capitalize=lI,tp.ceil=l5,tp.clamp=function(e,n,t){return o===t&&(t=n,n=o),o!==t&&(t=(t=ln(t))==t?t:0),o!==n&&(n=(n=ln(n))==n?n:0),tT(ln(e),n,t)},tp.clone=function(e){return tN(e,4)},tp.cloneDeep=function(e){return tN(e,5)},tp.cloneDeepWith=function(e,n){return tN(e,5,n="function"==typeof n?n:o)},tp.cloneWith=function(e,n){return tN(e,4,n="function"==typeof n?n:o)},tp.conformsTo=function(e,n){return null==n||tD(e,n,lp(n))},tp.deburr=lA,tp.defaultTo=function(e,n){return null==e||e!=e?n:e},tp.divide=l3,tp.endsWith=function(e,n,t){e=lr(e),n=rk(n);var r=e.length,i=t=o===t?r:tT(o6(t),0,r);return(t-=n.length)>=0&&e.slice(t,i)==n},tp.eq=oT,tp.escape=function(e){return(e=lr(e))&&V.test(e)?e.replace(B,nK):e},tp.escapeRegExp=function(e){return(e=lr(e))&&Z.test(e)?e.replace(X,"\\$&"):e},tp.every=function(e,n,t){var r=oM(e)?nf:t$;return t&&i_(e,n,t)&&(n=o),r(e,ih(n,3))},tp.find=os,tp.findIndex=iU,tp.findKey=function(e,n){return nw(e,ih(n,3),tG)},tp.findLast=ou,tp.findLastIndex=iW,tp.findLastKey=function(e,n){return nw(e,ih(n,3),tQ)},tp.floor=l8,tp.forEach=od,tp.forEachRight=of,tp.forIn=function(e,n){return null==e?e:tU(e,ih(n,3),lj)},tp.forInRight=function(e,n){return null==e?e:tW(e,ih(n,3),lj)},tp.forOwn=function(e,n){return e&&tG(e,ih(n,3))},tp.forOwnRight=function(e,n){return e&&tQ(e,ih(n,3))},tp.get=ld,tp.gt=oN,tp.gte=oD,tp.has=function(e,n){return null!=e&&iy(e,n,t1)},tp.hasIn=lf,tp.head=iQ,tp.identity=l$,tp.includes=function(e,n,t,r){e=oL(e)?e:lC(e),t=t&&!r?o6(t):0;var i=e.length;return t<0&&(t=n3(i+t,0)),o2(e)?t<=i&&e.indexOf(n,t)>-1:!!i&&n_(e,n,t)>-1},tp.indexOf=function(e,n,t){var r=null==e?0:e.length;if(!r)return -1;var i=null==t?0:o6(t);return i<0&&(i=n3(r+i,0)),n_(e,n,i)},tp.inRange=function(e,n,t){var r,i,l;return n=o9(n),o===t?(t=n,n=0):t=o9(t),(r=e=ln(e))>=n8(i=n,l=t)&&r=-0x1fffffffffffff&&e<=0x1fffffffffffff},tp.isSet=o1,tp.isString=o2,tp.isSymbol=o5,tp.isTypedArray=o3,tp.isUndefined=function(e){return o===e},tp.isWeakMap=function(e){return oJ(e)&&ib(e)==I},tp.isWeakSet=function(e){return oJ(e)&&"[object WeakSet]"==tZ(e)},tp.join=function(e,n){return null==e?"":n2.call(e,n)},tp.kebabCase=lO,tp.last=iZ,tp.lastIndexOf=function(e,n,t){var r=null==e?0:e.length;if(!r)return -1;var i=r;return o!==t&&(i=(i=o6(t))<0?n3(r+i,0):n8(i,r-1)),n==n?function(e,n,t){for(var r=t+1;r--&&e[r]!==n;);return r}(e,n,i):nk(e,nS,i,!0)},tp.lowerCase=lz,tp.lowerFirst=lP,tp.lt=o8,tp.lte=o7,tp.max=function(e){return e&&e.length?tB(e,l$,t0):o},tp.maxBy=function(e,n){return e&&e.length?tB(e,ih(n,2),t0):o},tp.mean=function(e){return nI(e,l$)},tp.meanBy=function(e,n){return nI(e,ih(n,2))},tp.min=function(e){return e&&e.length?tB(e,l$,rn):o},tp.minBy=function(e,n){return e&&e.length?tB(e,ih(n,2),rn):o},tp.stubArray=l0,tp.stubFalse=l1,tp.stubObject=function(){return{}},tp.stubString=function(){return""},tp.stubTrue=function(){return!0},tp.multiply=l7,tp.nth=function(e,n){return e&&e.length?rl(e,o6(n)):o},tp.noConflict=function(){return e4._===this&&(e4._=eM),this},tp.noop=lW,tp.now=ob,tp.pad=function(e,n,t){e=lr(e);var r=(n=o6(n))?nW(e):0;if(!n||r>=n)return e;var i=(n-r)/2;return r5(nX(i),t)+e+r5(nO(i),t)},tp.padEnd=function(e,n,t){e=lr(e);var r=(n=o6(n))?nW(e):0;return n&&rn){var r=e;e=n,n=r}if(t||e%1||n%1){var i=n9();return n8(e+i*(n-e+e5("1e-"+((i+"").length-1))),n)}return rd(e,n)},tp.reduce=function(e,n,t){var r=oM(e)?ng:nz,i=arguments.length<3;return r(e,ih(n,4),t,i,tK)},tp.reduceRight=function(e,n,t){var r=oM(e)?nb:nz,i=arguments.length<3;return r(e,ih(n,4),t,i,tL)},tp.repeat=function(e,n,t){return n=(t?i_(e,n,t):o===n)?1:o6(n),rf(lr(e),n)},tp.replace=function(){var e=arguments,n=lr(e[0]);return e.length<3?n:n.replace(e[1],e[2])},tp.result=function(e,n,t){n=rE(n,e);var r=-1,i=n.length;for(i||(i=1,e=o);++r0x1fffffffffffff)return[];var t=0xffffffff,r=n8(e,0xffffffff);n=ih(n),e-=0xffffffff;for(var i=nR(r,n);++t=l)return e;var c=t-nW(r);if(c<1)return r;var s=a?rH(a,0,c).join(""):e.slice(0,c);if(o===i)return s+r;if(a&&(c+=s.length-c),o0(i)){if(e.slice(c).search(i)){var u,d=s;for(i.global||(i=eS(i.source,lr(es.exec(i))+"g")),i.lastIndex=0;u=i.exec(d);)var f=u.index;s=s.slice(0,o===f?c:f)}}else if(e.indexOf(rk(i),c)!=c){var h=s.lastIndexOf(i);h>-1&&(s=s.slice(0,h))}return s+r},tp.unescape=function(e){return(e=lr(e))&&F.test(e)?e.replace($,nJ):e},tp.uniqueId=function(e){var n=++eT;return lr(e)+n},tp.upperCase=lH,tp.upperFirst=lT,tp.each=od,tp.eachRight=of,tp.first=iQ,lU(tp,(eb={},tG(tp,function(e,n){eH.call(tp.prototype,n)||(eb[n]=e)}),eb),{chain:!1}),tp.VERSION="4.17.21",nd(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){tp[e].placeholder=tp}),nd(["drop","take"],function(e,n){ty.prototype[e]=function(t){t=o===t?1:n3(o6(t),0);var r=this.__filtered__&&!n?new ty(this):this.clone();return r.__filtered__?r.__takeCount__=n8(t,r.__takeCount__):r.__views__.push({size:n8(t,0xffffffff),type:e+(r.__dir__<0?"Right":"")}),r},ty.prototype[e+"Right"]=function(n){return this.reverse()[e](n).reverse()}}),nd(["filter","map","takeWhile"],function(e,n){var t=n+1,r=1==t||3==t;ty.prototype[e]=function(e){var n=this.clone();return n.__iteratees__.push({iteratee:ih(e,3),type:t}),n.__filtered__=n.__filtered__||r,n}}),nd(["head","last"],function(e,n){var t="take"+(n?"Right":"");ty.prototype[e]=function(){return this[t](1).value()[0]}}),nd(["initial","tail"],function(e,n){var t="drop"+(n?"":"Right");ty.prototype[e]=function(){return this.__filtered__?new ty(this):this[t](1)}}),ty.prototype.compact=function(){return this.filter(l$)},ty.prototype.find=function(e){return this.filter(e).head()},ty.prototype.findLast=function(e){return this.reverse().find(e)},ty.prototype.invokeMap=rh(function(e,n){return"function"==typeof e?new ty(this):this.map(function(t){return t3(t,e,n)})}),ty.prototype.reject=function(e){return this.filter(oz(ih(e)))},ty.prototype.slice=function(e,n){e=o6(e);var t=this;return t.__filtered__&&(e>0||n<0)?new ty(t):(e<0?t=t.takeRight(-e):e&&(t=t.drop(e)),o!==n&&(t=(n=o6(n))<0?t.dropRight(-n):t.take(n-e)),t)},ty.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},ty.prototype.toArray=function(){return this.take(0xffffffff)},tG(ty.prototype,function(e,n){var t=/^(?:filter|find|map|reject)|While$/.test(n),i=/^(?:head|last)$/.test(n),l=tp[i?"take"+("last"==n?"Right":""):n],a=i||/^find/.test(n);l&&(tp.prototype[n]=function(){var n=this.__wrapped__,c=i?[1]:arguments,s=r(n,ty),u=c[0],d=s||oM(n),f=function(e){var n=l.apply(tp,nj([e],c));return i&&h?n[0]:n};d&&t&&"function"==typeof u&&1!=u.length&&(s=d=!1);var h=this.__chain__,m=!!this.__actions__.length,x=a&&!h,p=s&&!m;if(!a&&d){n=p?n:new ty(this);var j=e.apply(n,c);return j.__actions__.push({func:ol,args:[f],thisArg:o}),new tb(j,h)}return x&&p?e.apply(this,c):(j=this.thru(f),x?i?j.value()[0]:j.value():j)})}),nd(["pop","push","shift","sort","splice","unshift"],function(e){var n=eO[e],t=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);tp.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return n.apply(oM(i)?i:[],e)}return this[t](function(t){return n.apply(oM(t)?t:[],e)})}}),tG(ty.prototype,function(e,n){var t=tp[n];if(t){var r=t.name+"";eH.call(ta,r)||(ta[r]=[]),ta[r].push({name:n,func:t})}}),ta[rZ(o,2).name]=[{name:"wrapper",func:o}],ty.prototype.clone=function(){var e=new ty(this.__wrapped__);return e.__actions__=r$(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=r$(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=r$(this.__views__),e},ty.prototype.reverse=function(){if(this.__filtered__){var e=new ty(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e},ty.prototype.value=function(){var e=this.__wrapped__.value(),n=this.__dir__,t=oM(e),r=n<0,i=t?e.length:0,o=function(e,n,t){for(var r=-1,i=t.length;++r=this.__values__.length,n=e?o:this.__values__[this.__index__++];return{done:e,value:n}},tp.prototype.plant=function(e){for(var n,t=this;r(t,tg);){var i=i$(t);i.__index__=0,i.__values__=o,n?l.__wrapped__=i:n=i;var l=i;t=t.__wrapped__}return l.__wrapped__=e,n},tp.prototype.reverse=function(){var e=this.__wrapped__;if(r(e,ty)){var n=e;return this.__actions__.length&&(n=new ty(this)),(n=n.reverse()).__actions__.push({func:ol,args:[i5],thisArg:o}),new tb(n,this.__chain__)}return this.thru(i5)},tp.prototype.toJSON=tp.prototype.valueOf=tp.prototype.value=function(){return rA(this.__wrapped__,this.__actions__)},tp.prototype.first=tp.prototype.head,e7&&(tp.prototype[e7]=function(){return this}),tp}();"function"==typeof define&&"object"==i(define.amd)&&define.amd?(e4._=nY,define(function(){return nY})):e6?((e6.exports=nY)._=nY,e9._=nY):e4._=nY}).call(this)},5036:function(e,n){"use strict";var t=Symbol.for("react.transitional.element");function r(e,n,r){var i=null;if(void 0!==r&&(i=""+r),void 0!==n.key&&(i=""+n.key),"key"in n)for(var o in r={},n)"key"!==o&&(r[o]=n[o]);else r=n;return{$$typeof:t,type:e,key:i,ref:void 0!==(n=r.ref)?n:null,props:r}}n.Fragment=Symbol.for("react.fragment"),n.jsx=r,n.jsxs=r},867:function(e,n){"use strict";function t(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}var r=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),m=Symbol.iterator,x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},p=Object.assign,j={};function g(e,n,t){this.props=e,this.context=n,this.refs=j,this.updater=t||x}function b(){}function y(e,n,t){this.props=e,this.context=n,this.refs=j,this.updater=t||x}g.prototype.isReactComponent={},g.prototype.setState=function(e,n){if("object"!==(void 0===e?"undefined":t(e))&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var v=y.prototype=new b;v.constructor=y,p(v,g.prototype),v.isPureReactComponent=!0;var w=Array.isArray,k={H:null,A:null,T:null,S:null,V:null},_=Object.prototype.hasOwnProperty;function C(e,n,t,i,o,l){return{$$typeof:r,type:e,key:n,ref:void 0!==(t=l.ref)?t:null,props:l}}function S(e){return"object"===(void 0===e?"undefined":t(e))&&null!==e&&e.$$typeof===r}var I=/\/+/g;function A(e,n){var r,i;return"object"===(void 0===e?"undefined":t(e))&&null!==e&&null!=e.key?(r=""+e.key,i={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return i[e]})):n.toString(36)}function O(){}function z(e,n,o){if(null==e)return e;var l=[],a=0;return!function e(n,o,l,a,c){var s,u,d,f=void 0===n?"undefined":t(n);("undefined"===f||"boolean"===f)&&(n=null);var x=!1;if(null===n)x=!0;else switch(f){case"bigint":case"string":case"number":x=!0;break;case"object":switch(n.$$typeof){case r:case i:x=!0;break;case h:return e((x=n._init)(n._payload),o,l,a,c)}}if(x)return c=c(n),x=""===a?"."+A(n,0):a,w(c)?(l="",null!=x&&(l=x.replace(I,"$&/")+"/"),e(c,o,l,"",function(e){return e})):null!=c&&(S(c)&&(s=c,u=l+(null==c.key||n&&n.key===c.key?"":(""+c.key).replace(I,"$&/")+"/")+x,c=C(s.type,u,void 0,void 0,void 0,s.props)),o.push(c)),1;x=0;var p=""===a?".":a+":";if(w(n))for(var j=0;j>>1,i=e[r];if(0>>1;rl(c,t))sl(u,c)?(e[r]=u,e[s]=t,r=s):(e[r]=c,e[a]=t,r=a);else if(sl(u,t))e[r]=u,e[s]=t,r=s;else break}}return n}function l(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if(n.unstable_now=void 0,"object"===("undefined"==typeof performance?"undefined":t(performance))&&"function"==typeof performance.now){var a,c=performance;n.unstable_now=function(){return c.now()}}else{var s=Date,u=s.now();n.unstable_now=function(){return s.now()-u}}var d=[],f=[],h=1,m=null,x=3,p=!1,j=!1,g=!1,b=!1,y="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function k(e){for(var n=i(f);null!==n;){if(null===n.callback)o(f);else if(n.startTime<=e)o(f),n.sortIndex=n.expirationTime,r(d,n);else break;n=i(f)}}function _(e){if(g=!1,k(e),!j)if(null!==i(d))j=!0,C||(C=!0,a());else{var n=i(f);null!==n&&E(_,n.startTime-e)}}var C=!1,S=-1,I=5,A=-1;function O(){return!!b||!(n.unstable_now()-Ae&&O());){var l=m.callback;if("function"==typeof l){m.callback=null,x=m.priorityLevel;var c=l(m.expirationTime<=e);if(e=n.unstable_now(),"function"==typeof c){m.callback=c,k(e),t=!0;break n}m===i(d)&&o(d),k(e)}else o(d);m=i(d)}if(null!==m)t=!0;else{var s=i(f);null!==s&&E(_,s.startTime-e),t=!1}}break e}finally{m=null,x=r,p=!1}}}finally{t?a():C=!1}}}if("function"==typeof w)a=function(){w(z)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,R=P.port2;P.port1.onmessage=z,a=function(){R.postMessage(null)}}else a=function(){y(z,0)};function E(e,t){S=y(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_forceFrameRate=function(e){0>e||125c?(e.sortIndex=l,r(f,e),null===i(d)&&e===i(f)&&(g?(v(S),S=-1):g=!0,E(_,l-c))):(e.sortIndex=s,r(d,e),j||p||(j=!0,C||(C=!0,a()))),e},n.unstable_shouldYield=O,n.unstable_wrapCallback=function(e){var n=x;return function(){var t=x;x=n;try{return e.apply(this,arguments)}finally{x=t}}}},1171:function(e,n,t){"use strict";e.exports=t(9210)},7662:function(e,n,t){"use strict";function r(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);td,MR:()=>c,UI:()=>l,hX:()=>o,u4:()=>u,w6:()=>s});function i(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}var o=function(e,n){if(null==e)return e;if(Array.isArray(e)){for(var t=[],r=0;ra)return 1}return 0},c=function(e){for(var n=arguments.length,t=Array(n>1?n-1:0),r=1;ri}),null==(r=window.performance)||r.now;var r,i={mark:function(e,n){},measure:function(e,n){}}},2780:function(e,n,t){"use strict";function r(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tl,PH:()=>s,UY:()=>c,md:()=>a});var l=function(e,n){if(n)return n(l)(e);var t,r=[],i=function(n){t=e(t,n);for(var i=0;i1?a-1:0),s=1;s1?n-1:0),r=1;r1?n-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,o=i({},t),l=!1,a=!0,c=!1,s=void 0;try{for(var u,d=n[Symbol.iterator]();!(a=(u=d.next()).done);a=!0){var f=u.value,h=e[f],m=t[f],x=h(m,r);m!==x&&(l=!0,o[f]=x)}}catch(e){c=!0,s=e}finally{try{a||null==d.return||d.return()}finally{if(c)throw s}}return l?o:t}},s=function(e,n){var t=function(){for(var t=arguments.length,r=Array(t),l=0;l0&&i[i.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]m});var u,d=(u=function(){return window.hubStorage&&!!window.hubStorage.getItem},function(){try{return!!u()}catch(e){return!1}}),f=function(){function e(){o(this,e),c(this,"store",void 0),c(this,"impl",void 0),this.impl=0,this.store={}}return a(e,[{key:"get",value:function(e){var n=this;return i(function(){return s(this,function(t){return[2,n.store[e]]})})()}},{key:"set",value:function(e,n){var t=this;return i(function(){return s(this,function(r){return t.store[e]=n,[2]})})()}},{key:"remove",value:function(e){var n=this;return i(function(){return s(this,function(t){return n.store[e]=void 0,[2]})})()}},{key:"clear",value:function(){var e=this;return i(function(){return s(this,function(n){return e.store={},[2]})})()}}]),e}(),h=function(){function e(){o(this,e),c(this,"impl",void 0),this.impl=1}return a(e,[{key:"get",value:function(e){return i(function(){var n;return s(this,function(t){switch(t.label){case 0:return[4,window.hubStorage.getItem("paradise-"+e)];case 1:if("string"==typeof(n=t.sent()))return[2,JSON.parse(n)];return[2,void 0]}})})()}},{key:"set",value:function(e,n){return i(function(){return s(this,function(t){return window.hubStorage.setItem("paradise-"+e,JSON.stringify(n)),[2]})})()}},{key:"remove",value:function(e){return i(function(){return s(this,function(n){return window.hubStorage.removeItem("paradise-"+e),[2]})})()}},{key:"clear",value:function(){return i(function(){return s(this,function(e){return window.hubStorage.clear(),[2]})})()}}]),e}(),m=new(function(){function e(){o(this,e),c(this,"backendPromise",void 0),c(this,"impl",0),this.backendPromise=i(function(){return s(this,function(e){return d()?[2,new h]:(console.warn("No supported storage backend found. Using in-memory storage."),[2,new f])})})()}return a(e,[{key:"get",value:function(e){var n=this;return i(function(){return s(this,function(t){switch(t.label){case 0:return[4,n.backendPromise];case 1:return[2,t.sent().get(e)]}})})()}},{key:"set",value:function(e,n){var t=this;return i(function(){return s(this,function(r){switch(r.label){case 0:return[4,t.backendPromise];case 1:return[2,r.sent().set(e,n)]}})})()}},{key:"remove",value:function(e){var n=this;return i(function(){return s(this,function(t){switch(t.label){case 0:return[4,n.backendPromise];case 1:return[2,t.sent().remove(e)]}})})()}},{key:"clear",value:function(){var e=this;return i(function(){return s(this,function(n){switch(n.label){case 0:return[4,e.backendPromise];case 1:return[2,n.sent().clear()]}})})()}}]),e}())},974:function(e,n,t){"use strict";t.d(n,{KJ:()=>u,ip:()=>f,pW:()=>d,uI:()=>s});var r=t(7662);function i(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tl,R:()=>o});var r=[/v4shim/i],i={},o=function(e){return i[e]||e},l=function(e){return function(e){return function(n){var t=n.type,o=n.payload;if("asset/stylesheet"===t)return void Byond.loadCss(o);if("asset/mappings"===t){var l=!0,a=!1,c=void 0;try{for(var s,u=Object.keys(o)[Symbol.iterator]();!(l=(s=u.next()).done);l=!0)!function(){var e=s.value;if(!r.some(function(n){return n.test(e)})){var n=o[e],t=e.split(".").pop();i[e]=n,"css"===t&&Byond.loadCss(n),"js"===t&&Byond.loadJs(n)}}()}catch(e){a=!0,c=e}finally{try{l||null==u.return||u.return()}finally{if(a)throw c}}return}e(n)}}}},4893:function(e,n,t){"use strict";t.d(n,{DG:()=>P,Oc:()=>D,_3:()=>w,cr:()=>r,gK:()=>z,i2:()=>_,nc:()=>N,v9:()=>q});var r,i=t(2137),o=t(2780),l=t(9117),a=t(4272),c=t(401),s=t(2508),u=t(3051);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function g(e){var n=function(e,n){if("object"!==b(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!==b(r))return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"===b(n)?n:String(n)}function b(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function y(e,n){if(e){if("string"==typeof e)return d(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return d(e,n)}}var v=(0,s.h)("backend"),w=function(e){r=e},k=(0,o.PH)("backend/update");(0,o.PH)("backend/setSharedState");var _=(0,o.PH)("backend/suspendStart"),C=(0,o.PH)("backend/createPayloadQueue"),S=(0,o.PH)("backend/dequeuePayloadQueue"),I=(0,o.PH)("backend/removePayloadQueue"),A=(0,o.PH)("nextPayloadChunk"),O={config:{},data:{},shared:{},outgoingPayloadQueues:{},suspended:Date.now(),suspending:!1},z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O,n=arguments.length>1?arguments[1]:void 0,t=n.type,r=n.payload;if("backend/update"===t){var i=x({},e.config,r.config),o=x({},e.data,r.static_data,r.data),l=x({},e.shared);if(r.shared){var a=!0,c=!1,s=void 0;try{for(var u,d=Object.keys(r.shared)[Symbol.iterator]();!(a=(u=d.next()).done);a=!0){var b=u.value,v=r.shared[b];""===v?l[b]=void 0:l[b]=JSON.parse(v)}}catch(e){c=!0,s=e}finally{try{a||null==d.return||d.return()}finally{if(c)throw s}}}return p(x({},e),{config:i,data:o,shared:l,suspended:!1})}if("backend/setSharedState"===t){var w=r.key,k=r.nextState;return p(x({},e),{shared:p(x({},e.shared),h({},w,k))})}if("backend/suspendStart"===t)return p(x({},e),{suspending:!0});if("backend/suspendSuccess"===t){var _=r.timestamp;return p(x({},e),{data:{},shared:{},config:p(x({},e.config),{title:"",status:1}),suspending:!1,suspended:_})}if("backend/createPayloadQueue"===t){var C=r.id,S=r.chunks,I=e.outgoingPayloadQueues;return p(x({},e),{outgoingPayloadQueues:p(x({},I),h({},C,S))})}if("backend/dequeuePayloadQueue"===t){var A=r.id,z=e.outgoingPayloadQueues,P=z[A],R=j(z,[A].map(g)),E=f(P)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(P)||y(P)||m(),H=(E[0],E.slice(1));return p(x({},e),{outgoingPayloadQueues:H.length?p(x({},R),h({},A,H)):R})}if("backend/removePayloadQueue"===t){var T=r.id,N=e.outgoingPayloadQueues;N[T];var D=j(N,[T].map(g));return p(x({},e),{outgoingPayloadQueues:D})}return e},P=function(e){var n,t;return function(r){return function(o){var s=T(e.getState()),d=s.suspended,f=s.outgoingPayloadQueues,h=o.type,m=o.payload;if("update"===h)return void e.dispatch(k(m));if("suspend"===h)return void e.dispatch({type:"backend/suspendSuccess",payload:{timestamp:Date.now()}});if("ping"===h)return void Byond.sendMessage("ping/reply");if("backend/suspendStart"===h&&!t){v.log("suspending (".concat(Byond.windowId,")"));var x=function(){return Byond.sendMessage("suspend")};x(),t=setInterval(x,2e3)}if("backend/suspendSuccess"===h&&((0,u.Tz)(),clearInterval(t),t=void 0,Byond.winset(Byond.windowId,{"is-visible":!1}),(0,l.Ob)(),(0,l._1)(),setTimeout(function(){return(0,c.W)()})),"backend/update"===h){var p,j,g=null==(j=m.config)||null==(p=j.window)?void 0:p.fancy;void 0===n?n=g:n!==g&&(v.log("changing fancy mode to",g),n=g,Byond.winset(Byond.windowId,{titlebar:!g,"can-resize":!g}))}if("backend/update"===h&&d&&(v.log("backend/update",m),(0,u.Ks)(),(0,l.gp)(),(0,a.kh)(),setTimeout(function(){i.r.mark("resume/start"),T(e.getState()).suspended||(Byond.winset(Byond.windowId,{"is-visible":!0}),Byond.sendMessage("visible"),i.r.mark("resume/finish"))})),"oversizePayloadResponse"===h&&(m.allow?e.dispatch(A(m)):e.dispatch(I(m))),"acknowlegePayloadChunk"===h&&(e.dispatch(S(m)),e.dispatch(A(m))),"nextPayloadChunk"===h){var b=m.id,y=f[b][0];Byond.sendMessage("payloadChunk",{id:b,chunk:y})}return r(o)}}},R=function(e,n){for(var t=e.length-1,r=0,i=0;r1024){var c=i+R(l,1024);r.push(n.slice(i,c1&&void 0!==arguments[1]?arguments[1]:{};if(!((void 0===n?"undefined":b(n))==="object"&&null!==n&&!Array.isArray(n)))return void v.error("Payload for act() must be an object, got this:",n);var t=JSON.stringify(n);if(Object.entries({type:"act/"+e,payload:t,tgui:1,windowId:Byond.windowId}).reduce(function(e,n,t){var r=f(n)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(n,2)||y(n,2)||m(),i=r[0],o=r[1];return e+"".concat(t>0?"&":"?").concat(encodeURIComponent(i),"=").concat(encodeURIComponent(o))},"").length>2048){var i=t.split(E),o="".concat(Date.now());null==r||r.dispatch(C({id:o,chunks:i})),Byond.sendMessage("oversizedPayloadRequest",{type:"act/"+e,id:o,chunkCount:i.length});return}Byond.sendMessage("act/"+e,n)},T=function(e){return e.backend||{}},N=function(){var e;return p(x({},null==r||null==(e=r.getState())?void 0:e.backend),{act:H})},D=function(e,n){var t,i,o=null==r||null==(t=r.getState())?void 0:t.backend,l=null!=(i=null==o?void 0:o.shared)?i:{},a=e in l?l[e]:n;return[a,function(n){Byond.sendMessage({type:"setSharedState",key:e,value:JSON.stringify("function"==typeof n?n(a):n)||""})}]},q=function(e){return e(null==r?void 0:r.getState())}},2926:function(e,n,t){"use strict";t.d(n,{v:()=>u});var r=t(1557),i=t(2778),o=t(8153);function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["onMove","onKey","style"]),m=(0,i.useRef)(null),x=a(u),p=a(d),j=(n=(0,i.useMemo)(function(){var e=function(e){e.preventDefault(),e.buttons>0&&m.current?x(s(m.current,e)):t(!1)},n=function(){return t(!1)},t=function(t){var r=c(m.current),i=t?r.addEventListener:r.removeEventListener;i("mousemove",e),i("mouseup",n)};return[function(e){var n=e.nativeEvent,r=m.current;r&&(n.preventDefault(),r.focus(),x(s(r,n)),t(!0))},function(e){var n=e.which||e.keyCode;n<37||n>40||(e.preventDefault(),p({left:39===n?.05:37===n?-.05:0,top:40===n?.05:38===n?-.05:0}))},t]},[p,x]),function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(n,3)||function(e,n){if(e){if("string"==typeof e)return l(e,3);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}}(n,3)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=j[0],b=j[1],y=j[2];return(0,i.useEffect)(function(){return y},[y]),(0,r.jsx)("div",(t=function(e){for(var n=1;nv,IT:()=>a,rj:()=>u,gb:()=>C});var r=t(1557),i=t(2778),o=t(3987);function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["children","progressBar","timeStart","timeEnd","format"]),m=Math.max((u?d-u:d)*100,0),x=(n=(0,i.useState)(m),function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(n,2)||function(e,n){if(e){if("string"==typeof e)return l(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=x[0],j=x[1],g=(0,i.useRef)(null);function b(){j(function(e){var n=Math.max(e-1e3,0);return n<=0&&clearInterval(g.current),n})}(0,i.useEffect)(function(){return g.current||(g.current=setInterval(b,1e3)),function(){return clearInterval(g.current)}},[]);var y=new Date(p).toISOString().slice(11,19),v=(0,r.jsx)(o.xu,(t=function(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var u=function(e){var n,t,i=e.children,l=s(e,["children"]);return(0,r.jsx)(o.iA,(n=c({},l),t=t={children:(0,r.jsx)(o.iA.Row,{children:i})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))};u.Column=function(e){var n=e.size,t=e.style,i=s(e,["size","style"]);return(0,r.jsx)(o.iA.Cell,c({style:c({width:(void 0===n?1:n)+"%"},t)},i))},t(2926);var d=t(1155),f=t(4893);function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function j(e,n){return(j=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}function g(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(g=function(){return!!e})()}var b=(0,i.createContext)({zoom:1}),y=function(e){return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,e.returnValue=!1,!1},v=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function t(e){var n,r,i,o,l,a;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");return l=t,a=[e],l=h(l),n=function(e,n){var t;if(n&&("object"==((t=n)&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)||"function"==typeof n))return n;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,g()?Reflect.construct(l,a||[],h(this).constructor):l.apply(this,a)),window.innerWidth,window.innerHeight,n.state={offsetX:null!=(r=e.offsetX)?r:0,offsetY:null!=(i=e.offsetY)?i:0,dragging:!1,originX:null,originY:null,zoom:null!=(o=e.zoom)?o:1},n.handleDragStart=function(e){n.ref=e.target,n.setState({dragging:!1,originX:e.screenX,originY:e.screenY}),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd),y(e)},n.handleDragMove=function(e){n.setState(function(n){var t=m({},n),r=e.screenX-t.originX,i=e.screenY-t.originY;return n.dragging?(t.offsetX+=r/t.zoom,t.offsetY+=i/t.zoom,t.originX=e.screenX,t.originY=e.screenY):t.dragging=!0,t}),y(e)},n.handleDragEnd=function(t){var r;n.setState({dragging:!1,originX:null,originY:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),null==(r=e.onOffsetChange)||r.call(e,t,n.state),y(t)},n.handleZoom=function(t,r){n.setState(function(n){return n.zoom=Math.min(Math.max(r,1),8),e.onZoom&&e.onZoom(n.zoom),n})},n.handleReset=function(t){n.setState(function(r){var i;r.offsetX=0,r.offsetY=0,r.zoom=1,n.handleZoom(t,1),null==(i=e.onOffsetChange)||i.call(e,t,r)})},n}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&j(t,e),n=[{key:"render",value:function(){var e=(0,f.nc)().config,n=this.state,t=n.dragging,i=n.offsetX,l=n.offsetY,a=n.zoom,c=void 0===a?1:a,s=this.props.children,u=e.map+"_nanomap_z1.png",h=510*c+"px";return(0,r.jsx)(b.Provider,{value:{zoom:c},children:(0,r.jsxs)(o.xu,{className:"NanoMap__container",children:[(0,r.jsxs)(o.xu,{style:{width:h,height:h,marginTop:l*c+"px",marginLeft:i*c+"px",overflow:"hidden",position:"relative",top:"50%",left:"50%",transform:"translate(-50%, -50%)",backgroundSize:"cover",backgroundRepeat:"no-repeat",textAlign:"center",cursor:t?"move":"auto"},onMouseDown:this.handleDragStart,children:[(0,r.jsx)("img",{src:(0,d.R)(u),style:{width:"100%",height:"100%",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",imageRendering:"pixelated"}}),(0,r.jsx)(o.xu,{children:s})]}),(0,r.jsx)(k,{zoom:c,onZoom:this.handleZoom,onReset:this.handleReset})]})})}}],function(e,n){for(var t=0;tr,Sy:()=>c,UD:()=>l,XY:()=>i,_9:()=>a});var r={department:{command:"#526aff",security:"#CF0000",medical:"#009190",science:"#993399",engineering:"#A66300",supply:"#9F8545",service:"#80A000",centcom:"#78789B",other:"#C38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}},i=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"SyndTeam",freq:1244,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"Response Team",freq:1345,color:"#2681a5"},{name:"Special Ops",freq:1341,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Procedure",freq:1339,color:"#F70285"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Medical(I)",freq:1485,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"Security(I)",freq:1475,color:"#dd3535"},{name:"AI Private",freq:1343,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}],o=[{id:"o2",name:"Oxygen",label:"O₂",color:"blue"},{id:"n2",name:"Nitrogen",label:"N₂",color:"red"},{id:"co2",name:"Carbon Dioxide",label:"CO₂",color:"grey"},{id:"plasma",name:"Plasma",label:"Plasma",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H₂O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N₂O",color:"red"},{id:"no2",name:"Nitryl",label:"NO₂",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"},{id:"hydrogen",name:"Hydrogen",label:"H₂",color:"white"},{id:"ab",name:"Agent B",label:"Agent B",color:"purple"}],l=function(e,n){var t=String(e).toLowerCase(),r=o.find(function(e){return e.id===t||e.name.toLowerCase()===t});return r&&r.label||n||e},a=function(e){var n=String(e).toLowerCase(),t=o.find(function(e){return e.id===n||e.name.toLowerCase()===n});return t&&t.color},c=function(e,n){if(e>n)return"in the future";var t=(n/=10)-(e/=10);if(t>3600){var r=Math.round(t/3600);return r+" hour"+(1===r?"":"s")+" ago"}if(t>60){var i=Math.round(t/60);return i+" minute"+(1===i?"":"s")+" ago"}var o=Math.round(t);return o+" second"+(1===o?"":"s")+" ago"}},6280:function(e,n,t){"use strict";t(1557),t(9505),t(2778),t(3987),t(3817),t(424)},9505:function(e,n,t){"use strict";t.d(n,{N:()=>r});var r=(0,t(2778).createContext)(["",function(e){}])},5109:function(e,n,t){"use strict";var r=t(2780);(0,r.PH)("debug/toggleKitchenSink"),(0,r.PH)("debug/toggleDebugLayout"),(0,r.PH)("debug/openExternalBrowser")},2417:function(e,n,t){"use strict";t.d(n,{q:()=>o});var r=t(4893),i=t(8143);function o(){return(0,r.v9)(i.V)}},9388:function(e,n,t){"use strict";t.d(n,{cL:()=>i.c,qi:()=>r.q});var r=t(2417);t(6280),t(6814);var i=t(3360)},6814:function(e,n,t){"use strict";t(8995),t(9117),t(5109)},3360:function(e,n,t){"use strict";function r(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,t=n.type;return"debug/toggleKitchenSink"===t?i(r({},e),{kitchenSink:!e.kitchenSink}):"debug/toggleDebugLayout"===t?i(r({},e),{debugLayout:!e.debugLayout}):e}t.d(n,{c:()=>o})},8143:function(e,n,t){"use strict";function r(e){return e.debug}t.d(n,{V:()=>r})},4272:function(e,n,t){"use strict";t.d(n,{CD:()=>E,NA:()=>M,Qb:()=>N,kh:()=>H,kv:()=>C});var r,i,o,l,a,c,s,u,d,f=t(8839),h=t(974);function m(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0&&i[i.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]2&&void 0!==arguments[2]?arguments[2]:50,i=[n],o=0;o0&&void 0!==l[0]?l[0]:{}).fancy))return[3,2];return[4,f.tO.get(v)];case 1:t=c.sent(),c.label=2;case 2:return(n=t)&&b.log("recalled geometry:",n),r=(null==n?void 0:n.pos)||e.pos,i=e.size,e.scale&&i&&(i=[i[0]*y,i[1]*y]),e.scale?(document.body.style.zoom="",document.documentElement.style.setProperty("--scaling-amount",null)):(document.body.style.zoom="".concat(100/window.devicePixelRatio,"%"),document.documentElement.style.setProperty("--scaling-amount",window.devicePixelRatio.toString())),[4,a];case 3:return c.sent(),o=z(),i&&O(i=[Math.min(o[0],i[0]),Math.min(o[1],i[1])]),r?(i&&e.locked&&(r=T(r,i)[1]),A(r)):i&&A(r=(0,h.uI)((0,h.ip)(o,.5),(0,h.ip)(i,-.5),(0,h.ip)(_,-1))),[2]}})}),function(){return i.apply(this,arguments)}),H=(o=p(function(){var e;return g(this,function(n){switch(n.label){case 0:return e=S(),[4,a=Byond.winget(Byond.windowId,"pos").then(function(n){return[n.x-e[0],n.y-e[1]]})];case 1:return _=n.sent(),b.debug("screen offset",_),[2]}})}),function(){return o.apply(this,arguments)}),T=function(e,n){for(var t=[0-_[0],0-_[1]],r=z(),i=[e[0],e[1]],o=!1,l=0;l<2;l++){var a=t[l],c=t[l]+r[l];e[l]c&&(i[l]=c-n[l],o=!0)}return[o,i]},N=function(e){var n;b.log("drag start"),w=!0,c=(0,h.KJ)([e.screenX*y,e.screenY*y],S()),null==(n=e.target)||n.focus(),document.addEventListener("mousemove",q),document.addEventListener("mouseup",D),q(e)},D=function(e){b.log("drag end"),q(e),document.removeEventListener("mousemove",q),document.removeEventListener("mouseup",D),w=!1,R()},q=function(e){w&&(e.preventDefault(),A((0,h.KJ)([e.screenX*y,e.screenY*y],c)))},M=function(e,n){return function(t){var r;s=[e,n],b.log("resize start",s),k=!0,c=(0,h.KJ)([t.screenX*y,t.screenY*y],S()),u=I(),null==(r=t.target)||r.focus(),document.addEventListener("mousemove",L),document.addEventListener("mouseup",K),L(t)}},K=function(e){b.log("resize end",d),L(e),document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",K),k=!1,R()},L=function(e){if(k){e.preventDefault();var n=(0,h.KJ)([e.screenX*y,e.screenY*y],S()),t=(0,h.KJ)(n,c);(d=(0,h.uI)(u,(0,h.pW)(s,t),[1,1]))[0]=Math.max(d[0],150*y),d[1]=Math.max(d[1],50*y),O(d)}}},401:function(e,n,t){"use strict";t.d(n,{W:()=>r});var r=function(){Byond.winset("paramapwindow.map",{focus:!0})}},2639:function(e,n,t){"use strict";t.r(n),t.d(n,{AICard:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data;if(0===a.has_ai)return(0,r.jsx)(l.Rz,{width:250,height:120,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{title:"Stored AI",children:(0,r.jsx)(i.xu,{children:(0,r.jsx)("h3",{children:"No AI detected."})})})})});var c=null;return c=a.integrity>=75?"green":a.integrity>=25?"yellow":"red",(0,r.jsx)(l.Rz,{width:600,height:420,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.$0,{title:a.name,children:[(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Integrity",children:(0,r.jsx)(i.ko,{color:c,value:a.integrity/100})})}),(0,r.jsx)(i.xu,{color:"red",children:(0,r.jsx)("h2",{children:1===a.flushing?"Wipe of AI in progress...":""})})]})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Laws",children:!!a.has_laws&&(0,r.jsx)(i.xu,{children:a.laws.map(function(e,n){return(0,r.jsx)(i.xu,{children:e},n)})})||(0,r.jsx)(i.xu,{color:"red",children:(0,r.jsx)("h3",{children:"No laws detected."})})})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Actions",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Wireless Activity",children:(0,r.jsx)(i.zx,{width:10,icon:a.wireless?"check":"times",content:a.wireless?"Enabled":"Disabled",color:a.wireless?"green":"red",onClick:function(){return t("wireless")}})}),(0,r.jsx)(i.H2.Item,{label:"Subspace Transceiver",children:(0,r.jsx)(i.zx,{width:10,icon:a.radio?"check":"times",content:a.radio?"Enabled":"Disabled",color:a.radio?"green":"red",onClick:function(){return t("radio")}})}),(0,r.jsx)(i.H2.Item,{label:"Wipe",children:(0,r.jsx)(i.zx.Confirm,{width:10,icon:"trash-alt",confirmIcon:"trash-alt",disabled:a.flushing||0===a.integrity,confirmColor:"red",content:"Wipe AI",onClick:function(){return t("wipe")}})})]})})})]})})})}},6407:function(e,n,t){"use strict";t.r(n),t.d(n,{AIControllerDebugger:()=>u,CopyableValue:()=>c,ObjectReference:()=>s});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(1841),c=function(e){var n=e.text;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{icon:"clipboard-list",onClick:function(){return navigator.clipboard.writeText(n)}}),(0,r.jsx)("span",{style:{fontFamily:"monospace"},children:n})]})},s=function(e){var n=(0,o.nc)().act,t=e.obj_ref;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{onClick:function(){return n("vv",{uid:t.uid})},children:"VV"}),(0,r.jsx)(i.zx,{onClick:function(){return n("flw",{uid:t.uid})},children:"FLW"}),"\xa0",t.name]})},u=function(e){var n=(0,o.nc)(),t=n.data,u=n.act,d=t.controller;return(0,r.jsx)(l.Rz,{width:675,height:600,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.$0,{title:"Basic Info",children:(0,r.jsxs)(i.iA,{children:[d.pawn&&(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Pawn"}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(s,{obj_ref:d.pawn})})]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Type"}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(c,{text:d.type})})]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Idle Behavior"}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(c,{text:d.idle_behavior})})]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Movement"}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(c,{text:d.movement})})]}),d.movement_target&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Movement Target"}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(s,{obj_ref:d.movement_target})})]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Target Source"}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(c,{text:d.movement_target.source})})]})]})]})}),(0,r.jsx)(i.$0,{title:"Blackboard",children:(0,r.jsx)(i.iA,{className:"AIControllerDebugger__Blackboard",children:d.blackboard.map(function(e){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:e.name.length>30?(0,r.jsx)(i.u,{content:e.name,children:(0,r.jsx)(i.xu,{children:(0,a.truncate)(e.name)})}):e.name}),(0,r.jsxs)(i.iA.Cell,{className:"bb_value",children:[e.uid&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{onClick:function(){return u("vv",{uid:e.uid})},children:"VV"}),(0,r.jsx)(i.zx,{onClick:function(){return u("flw",{uid:e.uid})},children:"FLW"}),"\xa0"]}),e.value||"null"]})]})})})}),(0,r.jsx)(i.$0,{title:"Current Behaviors",children:(0,r.jsx)(i.iA,{children:d.current_behaviors.map(function(e){return(0,r.jsx)(i.iA.Row,{children:(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(c,{text:e})})})})})}),(0,r.jsx)(i.$0,{title:"Planned Behaviors",children:(0,r.jsx)(i.iA,{children:d.planned_behaviors.map(function(e){return(0,r.jsx)(i.iA.Row,{children:(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(c,{text:e})})})})})})]})})})}},2543:function(e,n,t){"use strict";t.r(n),t.d(n,{AIFixer:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data;if(null===a.occupant)return(0,r.jsx)(l.Rz,{width:550,height:500,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{fill:!0,title:"Stored AI",children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,r.jsxs)(i.JO.Stack,{children:[(0,r.jsx)(i.JO,{name:"robot",size:5,color:"silver"}),(0,r.jsx)(i.JO,{name:"slash",size:5,color:"red"})]}),(0,r.jsx)("br",{}),(0,r.jsx)("h3",{children:"No Artificial Intelligence detected."})]})})})})});var c=!0;(2===a.stat||null===a.stat)&&(c=!1);var s=null;s=a.integrity>=75?"green":a.integrity>=25?"yellow":"red";var u=!0;return a.integrity>=100&&2!==a.stat&&(u=!1),(0,r.jsx)(l.Rz,{children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:a.occupant,children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Integrity",children:(0,r.jsx)(i.ko,{color:s,value:a.integrity/100})}),(0,r.jsx)(i.H2.Item,{label:"Status",color:c?"green":"red",children:c?"Functional":"Non-Functional"})]})})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Laws",children:!!a.has_laws&&(0,r.jsx)(i.xu,{children:a.laws.map(function(e,n){return(0,r.jsx)(i.xu,{inline:!0,children:e},n)})})||(0,r.jsx)(i.xu,{color:"red",children:(0,r.jsx)("h3",{children:"No laws detected."})})})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.$0,{title:"Actions",children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Wireless Activity",children:(0,r.jsx)(i.zx,{icon:a.wireless?"times":"check",content:a.wireless?"Disabled":"Enabled",color:a.wireless?"red":"green",onClick:function(){return t("wireless")}})}),(0,r.jsx)(i.H2.Item,{label:"Subspace Transceiver",children:(0,r.jsx)(i.zx,{icon:a.radio?"times":"check",content:a.radio?"Disabled":"Enabled",color:a.radio?"red":"green",onClick:function(){return t("radio")}})}),(0,r.jsx)(i.H2.Item,{label:"Start Repairs",children:(0,r.jsx)(i.zx,{icon:"wrench",disabled:!u||a.active,content:!u||a.active?"Already Repaired":"Repair",onClick:function(){return t("fix")}})})]}),(0,r.jsx)(i.xu,{color:"green",lineHeight:2,children:a.active?"Reconstruction in progress.":""})]})})]})})})}},5817:function(e,n,t){"use strict";t.r(n),t.d(n,{AIProgramPicker:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.program_list,s=a.ai_info;return(0,r.jsx)(l.Rz,{width:450,height:600,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Select Program",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Memory Available",children:s.memory}),(0,r.jsx)(i.H2.Item,{label:"Bandwidth Available",children:s.bandwidth})]})})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:!!c&&c.map(function(e,n){return(0,r.jsx)(i.$0,{title:e.name,mb:1,buttons:(0,r.jsx)(i.zx,{icon:"file",onClick:function(){return t("select",{uid:e.UID})},children:1===e.installed?"Update":"Install"}),children:(0,r.jsx)(i.Kq,{vertical:!0,children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.Kq.Item,{mb:2,children:(0,r.jsx)(i.H2.Item,{label:"Description",children:e.description})}),(0,r.jsxs)(i.Kq,{children:[(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.H2.Item,{label:1===e.installed?"Bandwidth Cost":"Memory Cost",children:e.memory_cost}),(0,r.jsx)(i.H2.Item,{label:"Upgrade Level",children:e.upgrade_level})]}),(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.H2.Item,{label:"Installed",children:1===e.installed?"True":"False"}),(0,r.jsx)(i.H2.Item,{label:"Passive",children:1===e.is_passive?"True":"False"})]})]})]})})},e)})})]})})})}},2706:function(e,n,t){"use strict";t.r(n),t.d(n,{AIResourceManagementConsole:()=>s});var r=t(1557),i=t(3987),o=t(8531),l=t(4893),a=t(3817),c=function(e){var n,t=(0,l.nc)().data.screen;return 0===t?n=(0,r.jsx)(u,{}):1===t&&(n=(0,r.jsx)(d,{})),n},s=function(e){var n=(0,l.nc)(),t=n.act,o=n.data;o.auth,o.ai_list,o.nodes_list;var s=o.screen;return(0,r.jsx)(a.Rz,{width:350,height:425,children:(0,r.jsx)(a.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.mQ,{children:[(0,r.jsx)(i.mQ.Tab,{selected:0===s,icon:"list",onClick:function(){return t("menu",{screen:0})},children:"Allocated Resources"}),(0,r.jsx)(i.mQ.Tab,{selected:1===s,icon:"circle-nodes",onClick:function(){return t("menu",{screen:1})},children:"Online Nodes"})]})}),(0,r.jsx)(i.Kq.Item,{grow:!0,mt:0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,children:(0,r.jsx)(c,{})})})]})})})},u=function(e){var n=(0,l.nc)(),t=(n.act,n.data);t.screen;var o=t.ai_list;return t.nodes_list,(0,r.jsxs)(i.xu,{children:[(!o||0===o.length)&&(0,r.jsx)(i.f7,{children:"No AI detected."}),!!o&&o.map(function(e,n){return(0,r.jsx)(i.$0,{title:e.name,children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Memory",children:e.memory}),(0,r.jsx)(i.H2.Item,{label:"Maximum Memory",children:e.memory_max}),(0,r.jsx)(i.H2.Item,{label:"Bandwidth",children:e.bandwidth}),(0,r.jsx)(i.H2.Item,{label:"Maximum Bandwidth",children:e.bandwidth_max})]})},e)})]})},d=function(e){var n=(0,l.nc)(),t=n.act,a=n.data;a.screen,a.ai_list;var c=a.nodes_list;return(0,r.jsxs)(i.xu,{children:[(!c||0===c.length)&&(0,r.jsx)(i.f7,{children:"No nodes detected."}),!!c&&c.map(function(e,n){return(0,r.jsx)(i.$0,{title:(0,o.kC)(e.name),buttons:(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.zx,{icon:"circle-nodes",onClick:function(){return t("reassign",{uid:e.uid})},children:"Reassign"})}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Assigned AI",children:e.assigned_ai}),(0,r.jsx)(i.H2.Item,{label:"Resource",children:(0,o.kC)(e.resource)}),(0,r.jsx)(i.H2.Item,{label:"Amount",children:e.amount})]})},e)})]})}},663:function(e,n,t){"use strict";t.r(n),t.d(n,{APC:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(4278),c=function(e){return(0,r.jsx)(l.Rz,{width:510,height:435,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(d,{})})})},s={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},u={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},d=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,c=l.locked&&!l.siliconUser;l.normallyLocked;var d=s[l.externalPower]||s[0],f=s[l.chargingStatus]||s[0],h=l.powerChannels||[],m=u[l.malfStatus]||u[0],x=l.powerCellStatus/100;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.InterfaceLockNoticeBox,{}),(0,r.jsx)(i.$0,{title:"Power Status",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Main Breaker",color:d.color,buttons:(0,r.jsx)(i.zx,{icon:l.isOperating?"power-off":"times",content:l.isOperating?"On":"Off",selected:l.isOperating&&!c,color:l.isOperating?"":"bad",disabled:c,onClick:function(){return t("breaker")}}),children:["[ ",d.externalPowerText," ]"]}),(0,r.jsx)(i.H2.Item,{label:"Power Cell",children:(0,r.jsx)(i.ko,{color:"good",value:x})}),(0,r.jsxs)(i.H2.Item,{label:"Charge Mode",color:f.color,buttons:(0,r.jsx)(i.zx,{icon:l.chargeMode?"sync":"times",content:l.chargeMode?"Auto":"Off",selected:l.chargeMode,disabled:c,onClick:function(){return t("charge")}}),children:["[ ",f.chargingText," ]"]})]})}),(0,r.jsx)(i.$0,{title:"Power Channels",children:(0,r.jsxs)(i.H2,{children:[h.map(function(e){var n=e.topicParams;return(0,r.jsxs)(i.H2.Item,{label:e.title,buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.xu,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,r.jsx)(i.zx,{icon:"sync",content:"Auto",selected:!c&&(1===e.status||3===e.status),disabled:c,onClick:function(){return t("channel",n.auto)}}),(0,r.jsx)(i.zx,{icon:"power-off",content:"On",selected:!c&&2===e.status,disabled:c,onClick:function(){return t("channel",n.on)}}),(0,r.jsx)(i.zx,{icon:"times",content:"Off",selected:!c&&0===e.status,disabled:c,onClick:function(){return t("channel",n.off)}})]}),children:[e.powerLoad," W"]},e.title)}),(0,r.jsx)(i.H2.Item,{label:"Total Load",children:(0,r.jsxs)("b",{children:[l.totalLoad," W"]})})]})}),(0,r.jsx)(i.$0,{title:"Misc",buttons:!!l.siliconUser&&(0,r.jsxs)(r.Fragment,{children:[!!l.malfStatus&&(0,r.jsx)(i.zx,{icon:m.icon,content:m.content,color:"bad",onClick:function(){return t(m.action)}}),(0,r.jsx)(i.zx,{icon:"lightbulb-o",content:"Overload",onClick:function(){return t("overload")}})]}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Cover Lock",buttons:(0,r.jsx)(i.zx,{mb:.4,icon:l.coverLocked?"lock":"unlock",content:l.coverLocked?"Engaged":"Disengaged",disabled:c,onClick:function(){return t("cover")}})}),(0,r.jsx)(i.H2.Item,{label:"Emergency Lighting",buttons:(0,r.jsx)(i.zx,{icon:"lightbulb-o",content:l.emergencyLights?"Enabled":"Disabled",disabled:c,onClick:function(){return t("emergency_lighting")}})}),(0,r.jsx)(i.H2.Item,{label:"Night Shift Lighting",buttons:(0,r.jsx)(i.zx,{mt:.4,icon:"lightbulb-o",content:l.nightshiftLights?"Enabled":"Disabled",onClick:function(){return t("toggle_nightshift")}})})]})})]})}},3496:function(e,n,t){"use strict";t.r(n),t.d(n,{ATM:()=>u});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0)n=(0,r.jsxs)(o.xu,{bold:!0,color:"bad",children:[(0,r.jsx)(o.JO,{name:"exclamation-triangle"}),"Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled."]});else if(j)if(s)switch(c){case 1:n=(0,r.jsx)(f,{});break;case 2:n=(0,r.jsx)(h,{});break;case 3:n=(0,r.jsx)(p,{});break;default:n=(0,r.jsx)(m,{})}else n=(0,r.jsx)(x,{});else n=(0,r.jsxs)(o.xu,{bold:!0,color:"bad",children:[(0,r.jsx)(o.JO,{name:"exclamation-triangle"}),"Unable to connect to accounts database, please retry and if the issue persists contact Nanotrasen IT support."]});return(0,r.jsx)(a.Rz,{width:550,height:650,children:(0,r.jsxs)(a.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(d,{}),(0,r.jsx)(o.$0,{children:n})]})})},d=function(e){var n=(0,l.nc)(),t=n.act,i=n.data;i.machine_id;var a=i.held_card_name;return(0,r.jsxs)(o.$0,{title:"Nanotrasen Automatic Teller Machine",children:[(0,r.jsx)(o.xu,{children:"For all your monetary needs!"}),(0,r.jsx)(o.iz,{}),(0,r.jsx)(o.H2,{children:(0,r.jsx)(o.H2.Item,{label:"Card",children:(0,r.jsx)(o.zx,{content:a,icon:"eject",onClick:function(){return t("insert_card")}})})})]})},f=function(e){var n=(0,l.nc)(),t=n.act,i=n.data.security_level;return(0,r.jsxs)(o.$0,{title:"Select a new security level for this account",children:[(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.iz,{}),(0,r.jsx)(o.H2.Item,{label:"Level",children:(0,r.jsx)(o.zx,{content:"Account Number",icon:"unlock",selected:0===i,onClick:function(){return t("change_security_level",{new_security_level:1})}})}),(0,r.jsx)(o.H2.Item,{label:"Description",children:"Either the account number or card is required to access this account. EFTPOS transactions will require a card."}),(0,r.jsx)(o.iz,{}),(0,r.jsx)(o.H2.Item,{label:"Level",children:(0,r.jsx)(o.zx,{content:"Account Pin",icon:"unlock",selected:2===i,onClick:function(){return t("change_security_level",{new_security_level:2})}})}),(0,r.jsx)(o.H2.Item,{label:"Description",children:"An account number and pin must be manually entered to access this account and process transactions."})]}),(0,r.jsx)(o.iz,{}),(0,r.jsx)(j,{})]})},h=function(e){var n=(0,l.nc)(),t=n.act,a=n.data,c=s((0,i.useState)(0),2),u=c[0],d=c[1],f=s((0,i.useState)(0),2),h=f[0],m=f[1],x=s((0,i.useState)(0),2),p=x[0],g=x[1],b=a.money;return(0,r.jsxs)(o.$0,{title:"Transfer Fund",children:[(0,r.jsxs)(o.H2,{children:[(0,r.jsxs)(o.H2.Item,{label:"Account Balance",children:["$",b]}),(0,r.jsx)(o.H2.Item,{label:"Target Account Number",children:(0,r.jsx)(o.II,{placeholder:"7 Digit Number",onChange:function(e){return d(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Funds to Transfer",children:(0,r.jsx)(o.II,{onChange:function(e){return m(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Transaction Purpose",children:(0,r.jsx)(o.II,{fluid:!0,onChange:function(e){return g(e)}})})]}),(0,r.jsx)(o.iz,{}),(0,r.jsx)(o.zx,{content:"Transfer",icon:"sign-out-alt",onClick:function(){return t("transfer",{target_acc_number:u,funds_amount:h,purpose:p})}}),(0,r.jsx)(o.iz,{}),(0,r.jsx)(j,{})]})},m=function(e){var n=(0,l.nc)(),t=n.act,a=n.data,c=s((0,i.useState)(0),2),u=c[0],d=c[1],f=a.owner_name,h=a.money;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.$0,{title:"Welcome, "+f,buttons:(0,r.jsx)(o.zx,{content:"Logout",icon:"sign-out-alt",onClick:function(){return t("logout")}}),children:(0,r.jsxs)(o.H2,{children:[(0,r.jsxs)(o.H2.Item,{label:"Account Balance",children:["$",h]}),(0,r.jsx)(o.H2.Item,{label:"Withdrawal Amount",children:(0,r.jsx)(o.II,{onChange:function(e){return d(e)}})}),(0,r.jsx)(o.H2.Item,{children:(0,r.jsx)(o.zx,{content:"Withdraw Funds",icon:"sign-out-alt",onClick:function(){return t("withdrawal",{funds_amount:u})}})})]})}),(0,r.jsxs)(o.$0,{title:"Menu",children:[(0,r.jsx)(o.xu,{children:(0,r.jsx)(o.zx,{content:"Change account security level",icon:"lock",onClick:function(){return t("view_screen",{view_screen:1})}})}),(0,r.jsx)(o.xu,{children:(0,r.jsx)(o.zx,{content:"Make transfer",icon:"exchange-alt",onClick:function(){return t("view_screen",{view_screen:2})}})}),(0,r.jsx)(o.xu,{children:(0,r.jsx)(o.zx,{content:"View transaction log",icon:"list",onClick:function(){return t("view_screen",{view_screen:3})}})}),(0,r.jsx)(o.xu,{children:(0,r.jsx)(o.zx,{content:"Print balance statement",icon:"print",onClick:function(){return t("balance_statement")}})})]})]})},x=function(e){var n=(0,l.nc)(),t=n.act,a=n.data,c=s((0,i.useState)(null),2),u=c[0],d=c[1],f=s((0,i.useState)(null),2),h=f[0],m=f[1];return a.machine_id,a.held_card_name,(0,r.jsx)(o.$0,{title:"Insert card or enter ID and pin to login",children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Account ID",children:(0,r.jsx)(o.II,{placeholder:"6 Digit Number",onChange:function(e){return d(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Pin",children:(0,r.jsx)(o.II,{placeholder:"6 Digit Number",onChange:function(e){return m(e)}})}),(0,r.jsx)(o.H2.Item,{children:(0,r.jsx)(o.zx,{content:"Login",icon:"sign-in-alt",onClick:function(){return t("attempt_auth",{account_num:u,account_pin:h})}})})]})})},p=function(e){var n=(0,l.nc)(),t=(n.act,n.data).transaction_log;return(0,r.jsxs)(o.$0,{title:"Transactions",children:[(0,r.jsxs)(o.iA,{children:[(0,r.jsxs)(o.iA.Row,{header:!0,children:[(0,r.jsx)(o.iA.Cell,{children:"Timestamp"}),(0,r.jsx)(o.iA.Cell,{children:"Reason"}),(0,r.jsx)(o.iA.Cell,{children:"Value"}),(0,r.jsx)(o.iA.Cell,{children:"Terminal"})]}),t.map(function(e){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:e.time}),(0,r.jsx)(o.iA.Cell,{children:e.purpose}),(0,r.jsxs)(o.iA.Cell,{color:e.is_deposit?"green":"red",children:["$",e.amount]}),(0,r.jsx)(o.iA.Cell,{children:e.target_name})]},e)})]}),(0,r.jsx)(o.iz,{}),(0,r.jsx)(j,{})]})},j=function(e){var n=(0,l.nc)(),t=n.act;return n.data,(0,r.jsx)(o.zx,{content:"Back",icon:"sign-out-alt",onClick:function(){return t("view_screen",{view_screen:0})}})}},8189:function(e,n,t){"use strict";t.r(n),t.d(n,{AccountsUplinkTerminal:()=>p});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817),s=t(8061),u=t(8575),d=t(4220),f=t(7484),h=t(9576);function m(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tm});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817),s=t(4220),u=t(7484),d=t(9576),f=function(e){switch(e){case 0:return"Antagonists";case 1:return"Objectives";case 2:return"Security";case 3:return"All High Value Items";default:return"Something went wrong with this menu, make an issue report please!"}},h=function(e){switch(e){case 0:return(0,r.jsx)(g,{});case 1:return(0,r.jsx)(y,{});case 2:return(0,r.jsx)(w,{});case 3:return(0,r.jsx)(_,{});default:return"Something went wrong with this menu, make an issue report please!"}},m=function(e){return(0,r.jsx)(c.Rz,{width:800,height:600,children:(0,r.jsx)(c.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.f7,{children:"This menu is a Work in Progress. Some antagonists like Nuclear Operatives and Biohazards will not show up."})}),(0,r.jsxs)(d.default.Default,{tabIndex:0,children:[(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(x,{})}),(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(p,{})})]})]})})})},x=function(){var e=(0,i.useContext)(d.default),n=e.tabIndex,t=e.setTabIndex;return(0,r.jsxs)(o.mQ,{children:[(0,r.jsx)(o.mQ.Tab,{selected:0===n,onClick:function(){t(0)},icon:"user",children:"Antagonists"},"Antagonists"),(0,r.jsx)(o.mQ.Tab,{selected:1===n,onClick:function(){t(1)},icon:"people-robbery",children:"Objectives"},"Objectives"),(0,r.jsx)(o.mQ.Tab,{selected:2===n,onClick:function(){t(2)},icon:"handcuffs",children:"Security"},"Security"),(0,r.jsx)(o.mQ.Tab,{selected:3===n,onClick:function(){t(3)},icon:"lock",children:"High Value Items"},"HighValueItems")]})},p=function(){return(0,r.jsx)(s.default.Default,{children:(0,r.jsx)(j,{})})},j=function(){var e=(0,a.nc)().act,n=(0,i.useContext)(d.default).tabIndex,t=(0,i.useContext)(s.default).setSearchText;return(0,r.jsx)(o.$0,{title:f(n),fill:!0,scrollable:!0,buttons:(0,r.jsxs)(o.Kq,{fill:!0,children:[(0,r.jsx)(o.II,{width:"300px",placeholder:"Search...",onChange:function(e){return t(e)}}),(0,r.jsx)(o.zx,{icon:"sync",onClick:function(){return e("refresh")},children:"Refresh"})]}),children:h(n)})},g=function(){return(0,r.jsx)(u.default.Default,{sortId:"antag_name",children:(0,r.jsx)(b,{})})},b=function(e){var n=(0,a.nc)(),t=n.act,c=n.data.antagonists,d=(0,i.useContext)(s.default).searchText,f=(0,i.useContext)(u.default),h=f.sortId,m=f.sortOrder;return c.length?(0,r.jsxs)(o.iA,{className:"AdminAntagMenu__list",children:[(0,r.jsxs)(o.iA.Row,{bold:!0,children:[(0,r.jsx)(S,{id:"name",children:"Mob Name"}),(0,r.jsx)(S,{id:"",children:"Buttons"}),(0,r.jsx)(S,{id:"antag_name",children:"Antagonist Type"}),(0,r.jsx)(S,{id:"status",children:"Status"})]}),c.filter((0,l.mj)(d,function(e){return e.name+"|"+e.status+"|"+e.antag_name})).sort(function(e,n){var t=m?1:-1;return void 0===e[h]||null===e[h]?t:void 0===n[h]||null===n[h]?-1*t:"number"==typeof e[h]?(e[h]-n[h])*t:e[h].localeCompare(n[h])*t}).map(function(e,n){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{collapsing:!0,children:e.body_destroyed?e.name:(0,r.jsx)(o.zx,{color:e.is_hijacker||!e.name?"red":"",tooltip:e.is_hijacker?"Hijacker":"",onClick:function(){return t("show_player_panel",{mind_uid:e.antag_mind_uid})},children:e.name?e.name:"??? (NO NAME)"})}),(0,r.jsxs)(o.iA.Cell,{collapsing:!0,children:[(0,r.jsx)(o.zx,{onClick:function(){t("pm",{ckey:e.ckey})},children:"PM"}),(0,r.jsx)(o.zx,{onClick:function(){t("follow",{datum_uid:e.antag_mind_uid})},children:"FLW"}),(0,r.jsx)(o.zx,{onClick:function(){t("obs",{mind_uid:e.antag_mind_uid})},children:"OBS"}),(0,r.jsx)(o.zx,{onClick:function(){t("tp",{mind_uid:e.antag_mind_uid})},children:"TP"})]}),(0,r.jsx)(o.iA.Cell,{children:e.antag_name}),(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.xu,{color:e.status?"red":"grey",children:e.status?e.status:"Alive"})})]},n)})]}):"No Antagonists!"},y=function(){return(0,r.jsx)(u.default.Default,{sortId:"target_name",children:(0,r.jsx)(v,{})})},v=function(e){var n=(0,a.nc)(),t=n.act,c=n.data.objectives,d=(0,i.useContext)(s.default).searchText,f=(0,i.useContext)(u.default),h=f.sortId,m=f.sortOrder;return c.length?(0,r.jsxs)(o.iA,{className:"AdminAntagMenu__list",children:[(0,r.jsxs)(o.iA.Row,{bold:!0,children:[(0,r.jsx)(S,{sort_group:"sortId2",id:"obj_name",children:"Name"}),(0,r.jsx)(S,{sort_group:"sortId2",id:"target_name",children:"Target"}),(0,r.jsx)(S,{sort_group:"sortId2",id:"status",children:"Status"}),(0,r.jsx)(S,{sort_group:"sortId2",id:"owner_name",children:"Owner"})]}),c.filter((0,l.mj)(d,function(e){return e.obj_name+"|"+e.target_name+"|"+(e.status?"success":"incompleted")+"|"+e.owner_name})).sort(function(e,n){var t=m?1:-1;return void 0===e[h]||null===e[h]||"target_name"===h&&e.no_target?t:void 0===n[h]||null===n[h]||"target_name"===h&&n.no_target?-1*t:"number"==typeof e[h]?(e[h]-n[h])*t:e[h].localeCompare(n[h])*t}).map(function(e,n){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.zx,{tooltip:e.obj_desc,onClick:function(){return t("vv",{uid:e.obj_uid})},children:e.obj_name})}),(0,r.jsx)(o.iA.Cell,{children:e.no_target?"":e.track.length?e.track.map(function(n,i){return(0,r.jsxs)(o.zx,{onClick:function(){return t("follow",{datum_uid:n})},children:[e.target_name," ",e.track.length>1?"("+(parseInt(i,10)+1)+")":""]},i)}):"No "+e.target_name+" Found"}),(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.xu,{color:e.status?"green":"grey",children:e.status?"Success":"Incomplete"})}),(0,r.jsx)(o.iA.Cell,{collapsing:!0,children:(0,r.jsx)(o.zx,{onClick:function(){t("obj_owner",{owner_uid:e.owner_uid})},children:e.owner_name})})]},n)})]}):"No Objectives!"},w=function(){return(0,r.jsx)(u.default.Default,{sortId:"health",children:(0,r.jsx)(k,{})})},k=function(e){var n=(0,a.nc)(),t=n.act,c=n.data.security,d=(0,i.useContext)(s.default).searchText,f=(0,i.useContext)(u.default),h=f.sortId,m=f.sortOrder,x=function(e){return 2===e.status?"Dead":1===e.status?"Unconscious":e.broken_bone&&e.internal_bleeding?"Broken Bone, IB":e.broken_bone?"Broken Bone":e.internal_bleeding?"IB":"Alive"};return c.length?(0,r.jsxs)(o.iA,{className:"AdminAntagMenu__list",children:[(0,r.jsxs)(o.iA.Row,{bold:!0,children:[(0,r.jsx)(S,{sort_group:"sortId3",id:"name",children:"Name"}),(0,r.jsx)(S,{sort_group:"sortId3",id:"role",children:"Role"}),(0,r.jsx)(S,{sort_group:"sortId3",id:"status",children:"Status"}),(0,r.jsx)(S,{sort_group:"sortId3",id:"antag",children:"Antag"}),(0,r.jsx)(S,{sort_group:"sortId3",id:"health",children:"Health"})]}),c.filter((0,l.mj)(d,function(e){return e.name+"|"+e.role+"|"+x(e)+"|"+e.antag})).sort(function(e,n){var t=m?1:-1;return void 0===e[h]||null===e[h]?t:void 0===n[h]||null===n[h]?-1*t:"number"==typeof e[h]?(e[h]-n[h])*t:e[h].localeCompare(n[h])*t}).map(function(e,n){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{collapsing:!0,children:(0,r.jsx)(o.zx,{onClick:function(){return t("show_player_panel",{mind_uid:e.mind_uid})},children:e.name})}),(0,r.jsx)(o.iA.Cell,{collapsing:!0,children:e.role}),(0,r.jsx)(o.iA.Cell,{collapsing:!0,children:(0,r.jsx)(o.xu,{color:2===e.status?"red":1===e.status?"orange":e.broken_bone||e.internal_bleeding?"yellow":"grey",children:x(e)})}),(0,r.jsx)(o.iA.Cell,{collapsing:!0,children:e.antag?(0,r.jsx)(o.zx,{textColor:"red",onClick:function(){t("tp",{mind_uid:e.mind_uid})},children:e.antag}):""}),(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.ko,{my:.5,minValue:0,value:e.health/e.max_health,maxValue:1,ranges:{good:[.6,1/0],average:[0,.6],bad:[-1/0,0]},children:e.health})}),(0,r.jsxs)(o.iA.Cell,{collapsing:!0,children:[(0,r.jsx)(o.zx,{onClick:function(){t("pm",{ckey:e.ckey})},children:"PM"}),(0,r.jsx)(o.zx,{onClick:function(){t("follow",{datum_uid:e.mind_uid})},children:"FLW"}),(0,r.jsx)(o.zx,{onClick:function(){t("obs",{mind_uid:e.mind_uid})},children:"OBS"})]})]},n)})]}):"No Security!"},_=function(){return(0,r.jsx)(u.default.Default,{sortId:"person",children:(0,r.jsx)(C,{})})},C=function(e){var n=(0,a.nc)(),t=n.act,c=n.data.high_value_items,d=(0,i.useContext)(s.default).searchText,f=(0,i.useContext)(u.default),h=f.sortId,m=f.sortOrder;return c.length?(0,r.jsxs)(o.iA,{className:"AdminAntagMenu__list",children:[(0,r.jsxs)(o.iA.Row,{bold:!0,children:[(0,r.jsx)(S,{sort_group:"sortId4",id:"name",children:"Name"}),(0,r.jsx)(S,{sort_group:"sortId4",id:"person",children:"Carrier"}),(0,r.jsx)(S,{sort_group:"sortId4",id:"loc",children:"Location"}),(0,r.jsx)(S,{sort_group:"sortId4",id:"admin_z",children:"On Admin Z-level"})]}),c.filter((0,l.mj)(d,function(e){return e.name+"|"+e.loc})).sort(function(e,n){var t=m?1:-1;return void 0===e[h]||null===e[h]?t:void 0===n[h]||null===n[h]?-1*t:"number"==typeof e[h]?(e[h]-n[h])*t:e[h].localeCompare(n[h])*t}).map(function(e,n){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.zx,{tooltip:e.obj_desc,onClick:function(){return t("vv",{uid:e.uid})},children:e.name})}),(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.xu,{color:e.admin_z?"grey":"",children:e.person})}),(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.xu,{color:e.admin_z?"grey":"",children:e.loc})}),(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.xu,{color:"grey",children:e.admin_z?"On Admin Z-level":""})}),(0,r.jsx)(o.iA.Cell,{collapsing:!0,children:(0,r.jsx)(o.zx,{onClick:function(){t("follow",{datum_uid:e.uid})},children:"FLW"})})]},n)})]}):"No High Value Items!"},S=function(e){var n=e.id,t=(e.sort_group,e.default_sort,e.children),l=(0,i.useContext)(u.default),a=l.sortId,c=l.setSortId,s=l.sortOrder,d=l.setSortOrder;return(0,r.jsx)(o.iA.Cell,{children:(0,r.jsxs)(o.zx,{color:a!==n&&"transparent",width:"100%",onClick:function(){a===n?d(!s):(c(n),d(!0))},children:[t,a===n&&(0,r.jsx)(o.JO,{name:s?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},3561:function(e,n,t){"use strict";t.r(n),t.d(n,{AgentCard:()=>m,AgentCardAppearances:()=>p,AgentCardInfo:()=>x});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tc});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data,s=a[c.power.main]||a[0],u=a[c.power.backup]||a[0],d=a[c.shock]||a[0];return(0,r.jsx)(l.Rz,{width:500,height:400,children:(0,r.jsxs)(l.Rz.Content,{children:[(0,r.jsx)(i.$0,{title:"Power Status",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Main",color:s.color,buttons:(0,r.jsx)(i.zx,{mb:.5,icon:"lightbulb-o",disabled:!c.power.main,content:"Disrupt",onClick:function(){return t("disrupt-main")}}),children:[c.power.main?"Online":"Offline"," ",!c.wires.main_power&&"[Wires have been cut!]"||c.power.main_timeleft>0&&"[".concat(c.power.main_timeleft,"s]")]}),(0,r.jsxs)(i.H2.Item,{label:"Backup",color:u.color,buttons:(0,r.jsx)(i.zx,{mb:.5,icon:"lightbulb-o",disabled:!c.power.backup,content:"Disrupt",onClick:function(){return t("disrupt-backup")}}),children:[c.power.backup?"Online":"Offline"," ",!c.wires.backup_power&&"[Wires have been cut!]"||c.power.backup_timeleft>0&&"[".concat(c.power.backup_timeleft,"s]")]}),(0,r.jsxs)(i.H2.Item,{label:"Electrify",color:d.color,buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{mr:.5,icon:"wrench",disabled:!(c.wires.shock&&2!==c.shock),content:"Restore",onClick:function(){return t("shock-restore")}}),(0,r.jsx)(i.zx,{mr:.5,icon:"bolt",disabled:!c.wires.shock,content:"Temporary",onClick:function(){return t("shock-temp")}}),(0,r.jsx)(i.zx,{icon:"bolt",disabled:!c.wires.shock||0===c.shock,content:"Permanent",onClick:function(){return t("shock-perm")}})]}),children:[2===c.shock?"Safe":"Electrified"," ",!c.wires.shock&&"[Wires have been cut!]"||c.shock_timeleft>0&&"[".concat(c.shock_timeleft,"s]")||-1===c.shock_timeleft&&"[Permanent]"]})]})}),(0,r.jsx)(i.$0,{title:"Access and Door Control",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"ID Scan",color:"bad",buttons:(0,r.jsx)(i.zx,{mb:.5,width:6.5,icon:c.id_scanner?"power-off":"times",content:c.id_scanner?"Enabled":"Disabled",selected:c.id_scanner,disabled:!c.wires.id_scanner,onClick:function(){return t("idscan-toggle")}}),children:!c.wires.id_scanner&&"[Wires have been cut!]"}),(0,r.jsx)(i.H2.Item,{label:"Emergency Access",buttons:(0,r.jsx)(i.zx,{width:6.5,icon:c.emergency?"power-off":"times",content:c.emergency?"Enabled":"Disabled",selected:c.emergency,onClick:function(){return t("emergency-toggle")}})}),(0,r.jsx)(i.H2.Divider,{}),(0,r.jsx)(i.H2.Item,{label:"Door Bolts",color:"bad",buttons:(0,r.jsx)(i.zx,{mb:.5,icon:c.locked?"lock":"unlock",content:c.locked?"Lowered":"Raised",selected:c.locked,disabled:!c.wires.bolts,onClick:function(){return t("bolt-toggle")}}),children:!c.wires.bolts&&"[Wires have been cut!]"}),(0,r.jsx)(i.H2.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,r.jsx)(i.zx,{mb:.5,width:6.5,icon:c.lights?"power-off":"times",content:c.lights?"Enabled":"Disabled",selected:c.lights,disabled:!c.wires.lights,onClick:function(){return t("light-toggle")}}),children:!c.wires.lights&&"[Wires have been cut!]"}),(0,r.jsx)(i.H2.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,r.jsx)(i.zx,{mb:.5,width:6.5,icon:c.safe?"power-off":"times",content:c.safe?"Enabled":"Disabled",selected:c.safe,disabled:!c.wires.safe,onClick:function(){return t("safe-toggle")}}),children:!c.wires.safe&&"[Wires have been cut!]"}),(0,r.jsx)(i.H2.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,r.jsx)(i.zx,{mb:.5,width:6.5,icon:c.speed?"power-off":"times",content:c.speed?"Enabled":"Disabled",selected:c.speed,disabled:!c.wires.timing,onClick:function(){return t("speed-toggle")}}),children:!c.wires.timing&&"[Wires have been cut!]"}),(0,r.jsx)(i.H2.Divider,{}),(0,r.jsx)(i.H2.Item,{label:"Door Control",color:"bad",buttons:(0,r.jsx)(i.zx,{icon:c.opened?"sign-out-alt":"sign-in-alt",content:c.opened?"Open":"Closed",selected:c.opened,disabled:c.locked||c.welded,onClick:function(){return t("open-close")}}),children:!!(c.locked||c.welded)&&(0,r.jsxs)("span",{children:["[Door is ",c.locked?"bolted":"",c.locked&&c.welded?" and ":"",c.welded?"welded":"","!]"]})})]})})]})})}},6273:function(e,n,t){"use strict";t.r(n),t.d(n,{AirAlarm:()=>u});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817),c=t(4278),s=t(9576),u=function(e){var n=(0,l.nc)(),t=(n.act,n.data).locked;return(0,r.jsx)(a.Rz,{width:570,height:t?310:755,children:(0,r.jsxs)(a.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(c.InterfaceLockNoticeBox,{}),(0,r.jsx)(f,{}),!t&&(0,r.jsxs)(s.default.Default,{tabIndex:0,children:[(0,r.jsx)(h,{}),(0,r.jsx)(m,{})]})]})})},d=function(e){return 0===e?"green":1===e?"orange":"red"},f=function(e){var n,t=(0,l.nc)(),i=t.act,a=t.data,c=a.air,s=a.mode,u=a.atmos_alarm,f=a.locked,h=a.alarmActivated,m=a.rcon,x=a.target_temp;return n=0===c.danger.overall?0===u?"Optimal":"Caution: Atmos alert in area":1===c.danger.overall?"Caution":"DANGER: Internals Required",(0,r.jsx)(o.$0,{title:"Air Status",children:c?(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Pressure",children:(0,r.jsxs)(o.xu,{color:d(c.danger.pressure),children:[(0,r.jsx)(o.zt,{value:c.pressure})," kPa",!f&&(0,r.jsxs)(r.Fragment,{children:["\xa0",(0,r.jsx)(o.zx,{content:3===s?"Deactivate Panic Siphon":"Activate Panic Siphon",selected:3===s,icon:"exclamation-triangle",onClick:function(){return i("mode",{mode:3===s?1:3})}})]})]})}),(0,r.jsx)(o.H2.Item,{label:"Oxygen",children:(0,r.jsx)(o.ko,{value:c.contents.oxygen/100,fractionDigits:"1",color:d(c.danger.oxygen)})}),(0,r.jsx)(o.H2.Item,{label:"Nitrogen",children:(0,r.jsx)(o.ko,{value:c.contents.nitrogen/100,fractionDigits:"1",color:d(c.danger.nitrogen)})}),(0,r.jsx)(o.H2.Item,{label:"Carbon Dioxide",children:(0,r.jsx)(o.ko,{value:c.contents.co2/100,fractionDigits:"1",color:d(c.danger.co2)})}),(0,r.jsx)(o.H2.Item,{label:"Toxins",children:(0,r.jsx)(o.ko,{value:c.contents.plasma/100,fractionDigits:"1",color:d(c.danger.plasma)})}),c.contents.n2o>.1&&(0,r.jsx)(o.H2.Item,{label:"Nitrous Oxide",children:(0,r.jsx)(o.ko,{value:c.contents.n2o/100,fractionDigits:"1",color:d(c.danger.n2o)})}),c.contents.other>.1&&(0,r.jsx)(o.H2.Item,{label:"Other",children:(0,r.jsx)(o.ko,{value:c.contents.other/100,fractionDigits:"1",color:d(c.danger.other)})}),(0,r.jsx)(o.H2.Item,{label:"Temperature",children:(0,r.jsxs)(o.xu,{color:d(c.danger.temperature),children:[(0,r.jsx)(o.zt,{value:c.temperature})," K / ",(0,r.jsx)(o.zt,{value:c.temperature_c})," C\xa0",(0,r.jsx)(o.zx,{icon:"thermometer-full",content:x+" C",onClick:function(){return i("temperature")}}),(0,r.jsx)(o.zx,{content:c.thermostat_state?"On":"Off",selected:c.thermostat_state,icon:"power-off",onClick:function(){return i("thermostat_state")}})]})}),(0,r.jsx)(o.H2.Item,{label:"Local Status",children:(0,r.jsxs)(o.xu,{color:d(c.danger.overall),children:[n,!f&&(0,r.jsxs)(r.Fragment,{children:["\xa0",(0,r.jsx)(o.zx,{content:h?"Reset Alarm":"Activate Alarm",selected:h,onClick:function(){return i(h?"atmos_reset":"atmos_alarm")}})]})]})}),(0,r.jsxs)(o.H2.Item,{label:"Remote Control Settings",children:[(0,r.jsx)(o.zx,{content:"Off",selected:1===m,onClick:function(){return i("set_rcon",{rcon:1})}}),(0,r.jsx)(o.zx,{content:"Auto",selected:2===m,onClick:function(){return i("set_rcon",{rcon:2})}}),(0,r.jsx)(o.zx,{content:"On",selected:3===m,onClick:function(){return i("set_rcon",{rcon:3})}})]})]}):(0,r.jsx)(o.xu,{children:"Unable to acquire air sample!"})})},h=function(e){var n=(0,i.useContext)(s.default),t=n.tabIndex,l=n.setTabIndex;return(0,r.jsxs)(o.mQ,{children:[(0,r.jsxs)(o.mQ.Tab,{selected:0===t,onClick:function(){return l(0)},children:[(0,r.jsx)(o.JO,{name:"sign-out-alt"})," Vent Control"]},"Vents"),(0,r.jsxs)(o.mQ.Tab,{selected:1===t,onClick:function(){return l(1)},children:[(0,r.jsx)(o.JO,{name:"sign-in-alt"})," Scrubber Control"]},"Scrubbers"),(0,r.jsxs)(o.mQ.Tab,{selected:2===t,onClick:function(){return l(2)},children:[(0,r.jsx)(o.JO,{name:"cog"})," Mode"]},"Mode"),(0,r.jsxs)(o.mQ.Tab,{selected:3===t,onClick:function(){return l(3)},children:[(0,r.jsx)(o.JO,{name:"tachometer-alt"})," Thresholds"]},"Thresholds")]})},m=function(e){switch((0,i.useContext)(s.default).tabIndex){case 0:return(0,r.jsx)(x,{});case 1:return(0,r.jsx)(p,{});case 2:return(0,r.jsx)(j,{});case 3:return(0,r.jsx)(g,{});default:return"WE SHOULDN'T BE HERE!"}},x=function(e){var n=(0,l.nc)(),t=n.act;return n.data.vents.map(function(e){return(0,r.jsx)(o.$0,{title:e.name,children:(0,r.jsxs)(o.H2,{children:[(0,r.jsxs)(o.H2.Item,{label:"Status",children:[(0,r.jsx)(o.zx,{content:e.power?"On":"Off",selected:e.power,icon:"power-off",onClick:function(){return t("command",{cmd:"power",val:!e.power,id_tag:e.id_tag})}}),(0,r.jsx)(o.zx,{content:e.direction?"Blowing":"Siphoning",icon:e.direction?"sign-out-alt":"sign-in-alt",onClick:function(){return t("command",{cmd:"direction",val:!e.direction,id_tag:e.id_tag})}})]}),(0,r.jsxs)(o.H2.Item,{label:"Pressure Checks",children:[(0,r.jsx)(o.zx,{content:"External",selected:1===e.checks,onClick:function(){return t("command",{cmd:"checks",val:1,id_tag:e.id_tag})}}),(0,r.jsx)(o.zx,{content:"Internal",selected:2===e.checks,onClick:function(){return t("command",{cmd:"checks",val:2,id_tag:e.id_tag})}})]}),(0,r.jsxs)(o.H2.Item,{label:"External Pressure Target",children:[(0,r.jsx)(o.zt,{value:e.external})," kPa\xa0",(0,r.jsx)(o.zx,{content:"Set",icon:"cog",onClick:function(){return t("command",{cmd:"set_external_pressure",id_tag:e.id_tag})}}),(0,r.jsx)(o.zx,{content:"Reset",icon:"redo-alt",onClick:function(){return t("command",{cmd:"set_external_pressure",val:101.325,id_tag:e.id_tag})}})]})]})},e.name)})},p=function(e){var n=(0,l.nc)(),t=n.act;return n.data.scrubbers.map(function(e){return(0,r.jsx)(o.$0,{title:e.name,children:(0,r.jsxs)(o.H2,{children:[(0,r.jsxs)(o.H2.Item,{label:"Status",children:[(0,r.jsx)(o.zx,{content:e.power?"On":"Off",selected:e.power,icon:"power-off",onClick:function(){return t("command",{cmd:"power",val:!e.power,id_tag:e.id_tag})}}),(0,r.jsx)(o.zx,{content:e.scrubbing?"Scrubbing":"Siphoning",icon:e.scrubbing?"filter":"sign-in-alt",onClick:function(){return t("command",{cmd:"scrubbing",val:!e.scrubbing,id_tag:e.id_tag})}})]}),(0,r.jsx)(o.H2.Item,{label:"Range",children:(0,r.jsx)(o.zx,{content:e.widenet?"Extended":"Normal",selected:e.widenet,icon:"expand-arrows-alt",onClick:function(){return t("command",{cmd:"widenet",val:!e.widenet,id_tag:e.id_tag})}})}),(0,r.jsxs)(o.H2.Item,{label:"Filtering",children:[(0,r.jsx)(o.zx,{content:"Carbon Dioxide",selected:e.filter_co2,onClick:function(){return t("command",{cmd:"co2_scrub",val:!e.filter_co2,id_tag:e.id_tag})}}),(0,r.jsx)(o.zx,{content:"Plasma",selected:e.filter_toxins,onClick:function(){return t("command",{cmd:"tox_scrub",val:!e.filter_toxins,id_tag:e.id_tag})}}),(0,r.jsx)(o.zx,{content:"Nitrous Oxide",selected:e.filter_n2o,onClick:function(){return t("command",{cmd:"n2o_scrub",val:!e.filter_n2o,id_tag:e.id_tag})}}),(0,r.jsx)(o.zx,{content:"Oxygen",selected:e.filter_o2,onClick:function(){return t("command",{cmd:"o2_scrub",val:!e.filter_o2,id_tag:e.id_tag})}}),(0,r.jsx)(o.zx,{content:"Nitrogen",selected:e.filter_n2,onClick:function(){return t("command",{cmd:"n2_scrub",val:!e.filter_n2,id_tag:e.id_tag})}})]})]})},e.name)})},j=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=i.modes,c=i.presets,s=i.emagged,u=i.mode,d=i.preset;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.$0,{title:"System Mode",children:Object.keys(a).map(function(e){var n=a[e];if(!n.emagonly||s)return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{textAlign:"right",width:1,children:(0,r.jsx)(o.zx,{content:n.name,icon:"cog",selected:n.id===u,onClick:function(){return t("mode",{mode:n.id})}})}),(0,r.jsx)(o.iA.Cell,{children:n.desc})]},n.name)})}),(0,r.jsxs)(o.$0,{title:"System Presets",children:[(0,r.jsx)(o.xu,{italic:!0,children:"After making a selection, the system will automatically cycle in order to remove contaminants."}),(0,r.jsx)(o.iA,{mt:1,children:c.map(function(e){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{textAlign:"right",width:1,children:(0,r.jsx)(o.zx,{content:e.name,icon:"cog",selected:e.id===d,onClick:function(){return t("preset",{preset:e.id})}})}),(0,r.jsx)(o.iA.Cell,{children:e.desc})]},e.name)})})]})]})},g=function(e){var n=(0,l.nc)(),t=n.act,i=n.data.thresholds;return(0,r.jsx)(o.$0,{title:"Alarm Thresholds",children:(0,r.jsxs)(o.iA,{children:[(0,r.jsxs)(o.iA.Row,{header:!0,children:[(0,r.jsx)(o.iA.Cell,{width:"20%",children:"Value"}),(0,r.jsx)(o.iA.Cell,{color:"red",width:"20%",children:"Danger Min"}),(0,r.jsx)(o.iA.Cell,{color:"orange",width:"20%",children:"Warning Min"}),(0,r.jsx)(o.iA.Cell,{color:"orange",width:"20%",children:"Warning Max"}),(0,r.jsx)(o.iA.Cell,{color:"red",width:"20%",children:"Danger Max"})]}),i.map(function(e){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:e.name}),e.settings.map(function(e){return(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.zx,{content:-1===e.selected?"Off":e.selected,onClick:function(){return t("command",{cmd:"set_threshold",env:e.env,var:e.val})}})},e.val)})]},e.name)})]})})}},1769:function(e,n,t){"use strict";t.r(n),t.d(n,{AirlockAccessController:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n,t,a=(0,o.nc)(),c=a.act,s=a.data,u=s.exterior_status,d=s.interior_status,f=s.processing;return n="open"===u?(0,r.jsx)(i.zx,{width:"50%",content:"Lock Exterior Door",icon:"exclamation-triangle",disabled:f,onClick:function(){return c("force_ext")}}):(0,r.jsx)(i.zx,{width:"50%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:f,onClick:function(){return c("cycle_ext_door")}}),t="open"===d?(0,r.jsx)(i.zx,{width:"49%",content:"Lock Interior Door",icon:"exclamation-triangle",disabled:f,color:"open"===d?"red":f?"yellow":null,onClick:function(){return c("force_int")}}):(0,r.jsx)(i.zx,{width:"49%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:f,onClick:function(){return c("cycle_int_door")}}),(0,r.jsx)(l.Rz,{width:330,height:200,children:(0,r.jsxs)(l.Rz.Content,{children:[(0,r.jsx)(i.$0,{title:"Information",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"External Door Status",children:"closed"===u?"Locked":"Open"}),(0,r.jsx)(i.H2.Item,{label:"Internal Door Status",children:"closed"===d?"Locked":"Open"})]})}),(0,r.jsx)(i.$0,{title:"Actions",children:(0,r.jsxs)(i.xu,{children:[n,t]})})]})})}},6311:function(e,n,t){"use strict";t.r(n),t.d(n,{AirlockElectronics:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(8986),c=function(e){return(0,r.jsx)(l.Rz,{width:500,height:565,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(s,{}),(0,r.jsx)(u,{})]})})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.unrestricted_dir;return(0,r.jsx)(i.$0,{title:"Access Control",children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{bold:!0,mb:1,children:"Unrestricted Access From:"}),(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"arrow-left",content:"East",selected:4&l,onClick:function(){return t("unrestricted_access",{unres_dir:4})}})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"arrow-up",content:"South",selected:2&l,onClick:function(){return t("unrestricted_access",{unres_dir:2})}})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"arrow-right",content:"West",selected:8&l,onClick:function(){return t("unrestricted_access",{unres_dir:8})}})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"arrow-down",content:"North",selected:1&l,onClick:function(){return t("unrestricted_access",{unres_dir:1})}})})]})]})})},u=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,c=l.selected_accesses,s=l.one_access,u=l.regions;return(0,r.jsx)(a.AccessList,{sectionButtons:(0,r.jsx)(r.Fragment,{}),grantableList:[],usedByRcd:1,rcdButtons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx.Checkbox,{checked:s,content:"One",onClick:function(){return t("set_one_access",{access:"one"})}}),(0,r.jsx)(i.zx.Checkbox,{checked:!s,content:"All",onClick:function(){return t("set_one_access",{access:"all"})}})]}),accesses:u,selectedList:c,accessMod:function(e){return t("set",{access:e})},grantAll:function(){return t("grant_all")},denyAll:function(){return t("clear_all")},grantDep:function(e){return t("grant_region",{region:e})},denyDep:function(e){return t("deny_region",{region:e})}})}},6683:function(e,n,t){"use strict";t.r(n),t.d(n,{AlertModal:()=>d});var r=t(1557),i=t(2778),o=t(3987),l=t(196),a=t(4893),c=t(3817),s=t(4799);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t30?Math.ceil(b.length/4):0)+(b.length&&j?5:0),S=325+100*(p.length>2),I=function(e){0===k&&-1===e?_(p.length-1):k===p.length-1&&1===e?_(0):_(k+e)};return(0,r.jsxs)(c.Rz,{title:v,height:C,width:S,children:[!!y&&(0,r.jsx)(s.Loader,{value:y}),(0,r.jsx)(c.Rz.Content,{onKeyDown:function(e){var n=window.event?e.which:e.keyCode;n===l.PC||n===l.tt?d("choose",{choice:p[k]}):n===l.KW?d("cancel"):n===l.ob?(e.preventDefault(),I(-1)):(n===l.HF||n===l.iB)&&(e.preventDefault(),I(1))},children:(0,r.jsx)(o.$0,{fill:!0,children:(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{grow:!0,m:1,children:(0,r.jsx)(o.xu,{color:"label",overflow:"hidden",children:b})}),(0,r.jsxs)(o.Kq.Item,{children:[!!m&&(0,r.jsx)(o.RK,{}),(0,r.jsx)(f,{selected:k})]})]})})})]})},f=function(e){var n=(0,a.nc)().data,t=n.buttons,i=void 0===t?[]:t,l=n.large_buttons,c=n.swapped_buttons,s=e.selected;return(0,r.jsx)(o.kC,{fill:!0,align:"center",direction:c?"row":"row-reverse",justify:"space-around",wrap:!0,children:null==i?void 0:i.map(function(e,n){return l&&i.length<3?(0,r.jsx)(o.kC.Item,{grow:!0,children:(0,r.jsx)(h,{button:e,id:n.toString(),selected:s===n})},n):(0,r.jsx)(o.kC.Item,{grow:+!!l,children:(0,r.jsx)(h,{button:e,id:n.toString(),selected:s===n})},n)})})},h=function(e){var n=(0,a.nc)(),t=n.act,i=n.data.large_buttons,l=e.button,c=e.selected,s=l.length>7?"100%":7;return(0,r.jsx)(o.zx,{mx:+!!i,pt:.33*!!i,content:l,fluid:!!i,onClick:function(){return t("choose",{choice:l})},selected:c,textAlign:"center",height:!!i&&2,width:!i&&s})}},6952:function(e,n,t){"use strict";t.r(n),t.d(n,{AppearanceChanger:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,s=a.change_race,u=a.species,d=a.specimen,f=a.change_gender,h=a.gender,m=a.change_eye_color,x=a.change_skin_tone,p=a.change_skin_color,j=a.change_runechat_color,g=a.change_head_accessory_color,b=a.change_hair_color,y=a.change_secondary_hair_color,v=a.change_facial_hair_color,w=a.change_secondary_facial_hair_color,k=a.change_head_marking_color,_=a.change_body_marking_color,C=a.change_tail_marking_color,S=a.change_head_accessory,I=a.head_accessory_styles,A=a.head_accessory_style,O=a.change_hair,z=a.hair_styles,P=a.hair_style,R=a.change_hair_gradient,E=a.change_facial_hair,H=a.facial_hair_styles,T=a.facial_hair_style,N=a.change_head_markings,D=a.head_marking_styles,q=a.head_marking_style,M=a.change_body_markings,K=a.body_marking_styles,L=a.body_marking_style,$=a.change_tail_markings,B=a.tail_marking_styles,F=a.tail_marking_style,V=a.change_body_accessory,U=a.body_accessory_styles,W=a.body_accessory_style,G=a.change_alt_head,Q=a.alt_head_styles,J=a.alt_head_style,Y=!1;return(m||x||p||g||j||b||y||v||w||k||_||C)&&(Y=!0),(0,r.jsx)(l.Rz,{width:800,height:450,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.H2,{children:[!!s&&(0,r.jsx)(i.H2.Item,{label:"Species",children:u.map(function(e){return(0,r.jsx)(i.zx,{content:e.specimen,selected:e.specimen===d,onClick:function(){return t("race",{race:e.specimen})}},e.specimen)})}),!!f&&(0,r.jsxs)(i.H2.Item,{label:"Gender",children:[(0,r.jsx)(i.zx,{content:"Male",selected:"male"===h,onClick:function(){return t("gender",{gender:"male"})}}),(0,r.jsx)(i.zx,{content:"Female",selected:"female"===h,onClick:function(){return t("gender",{gender:"female"})}}),(0,r.jsx)(i.zx,{content:"Genderless",selected:"plural"===h,onClick:function(){return t("gender",{gender:"plural"})}})]}),!!Y&&(0,r.jsx)(c,{}),!!S&&(0,r.jsx)(i.H2.Item,{label:"Head accessory",children:I.map(function(e){return(0,r.jsx)(i.zx,{content:e.headaccessorystyle,selected:e.headaccessorystyle===A,onClick:function(){return t("head_accessory",{head_accessory:e.headaccessorystyle})}},e.headaccessorystyle)})}),!!O&&(0,r.jsx)(i.H2.Item,{label:"Hair",children:z.map(function(e){return(0,r.jsx)(i.zx,{content:e.hairstyle,selected:e.hairstyle===P,onClick:function(){return t("hair",{hair:e.hairstyle})}},e.hairstyle)})}),!!R&&(0,r.jsxs)(i.H2.Item,{label:"Hair Gradient",children:[(0,r.jsx)(i.zx,{content:"Change Style",onClick:function(){return t("hair_gradient")}}),(0,r.jsx)(i.zx,{content:"Change Offset",onClick:function(){return t("hair_gradient_offset")}}),(0,r.jsx)(i.zx,{content:"Change Color",onClick:function(){return t("hair_gradient_colour")}}),(0,r.jsx)(i.zx,{content:"Change Alpha",onClick:function(){return t("hair_gradient_alpha")}})]}),!!E&&(0,r.jsx)(i.H2.Item,{label:"Facial hair",children:H.map(function(e){return(0,r.jsx)(i.zx,{content:e.facialhairstyle,selected:e.facialhairstyle===T,onClick:function(){return t("facial_hair",{facial_hair:e.facialhairstyle})}},e.facialhairstyle)})}),!!N&&(0,r.jsx)(i.H2.Item,{label:"Head markings",children:D.map(function(e){return(0,r.jsx)(i.zx,{content:e.headmarkingstyle,selected:e.headmarkingstyle===q,onClick:function(){return t("head_marking",{head_marking:e.headmarkingstyle})}},e.headmarkingstyle)})}),!!M&&(0,r.jsx)(i.H2.Item,{label:"Body markings",children:K.map(function(e){return(0,r.jsx)(i.zx,{content:e.bodymarkingstyle,selected:e.bodymarkingstyle===L,onClick:function(){return t("body_marking",{body_marking:e.bodymarkingstyle})}},e.bodymarkingstyle)})}),!!$&&(0,r.jsx)(i.H2.Item,{label:"Tail markings",children:B.map(function(e){return(0,r.jsx)(i.zx,{content:e.tailmarkingstyle,selected:e.tailmarkingstyle===F,onClick:function(){return t("tail_marking",{tail_marking:e.tailmarkingstyle})}},e.tailmarkingstyle)})}),!!V&&(0,r.jsx)(i.H2.Item,{label:"Body accessory",children:U.map(function(e){return(0,r.jsx)(i.zx,{content:e.bodyaccessorystyle,selected:e.bodyaccessorystyle===W,onClick:function(){return t("body_accessory",{body_accessory:e.bodyaccessorystyle})}},e.bodyaccessorystyle)})}),!!G&&(0,r.jsx)(i.H2.Item,{label:"Alternate head",children:Q.map(function(e){return(0,r.jsx)(i.zx,{content:e.altheadstyle,selected:e.altheadstyle===J,onClick:function(){return t("alt_head",{alt_head:e.altheadstyle})}},e.altheadstyle)})})]})})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data;return(0,r.jsx)(i.H2.Item,{label:"Colors",children:[{key:"change_eye_color",text:"Change eye color",action:"eye_color"},{key:"change_skin_tone",text:"Change skin tone",action:"skin_tone"},{key:"change_skin_color",text:"Change skin color",action:"skin_color"},{key:"change_runechat_color",text:"Change runechat color",action:"runechat_color"},{key:"change_head_accessory_color",text:"Change head accessory color",action:"head_accessory_color"},{key:"change_hair_color",text:"Change hair color",action:"hair_color"},{key:"change_secondary_hair_color",text:"Change secondary hair color",action:"secondary_hair_color"},{key:"change_facial_hair_color",text:"Change facial hair color",action:"facial_hair_color"},{key:"change_secondary_facial_hair_color",text:"Change secondary facial hair color",action:"secondary_facial_hair_color"},{key:"change_head_marking_color",text:"Change head marking color",action:"head_marking_color"},{key:"change_body_marking_color",text:"Change body marking color",action:"body_marking_color"},{key:"change_tail_marking_color",text:"Change tail marking color",action:"tail_marking_color"}].map(function(e){return!!l[e.key]&&(0,r.jsx)(i.zx,{content:e.text,onClick:function(){return t(e.action)}},e.key)})})}},8544:function(e,n,t){"use strict";t.r(n),t.d(n,{AtmosAlertConsole:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817);function a(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tu});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(6783),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);ta});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.on,s=a.pressure,u=a.max_pressure,d=a.filter_type,f=a.filter_type_list;return(0,r.jsx)(l.Rz,{width:380,height:140,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Power",children:(0,r.jsx)(i.zx,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){return t("power")}})}),(0,r.jsxs)(i.H2.Item,{label:"Rate",children:[(0,r.jsx)(i.zx,{icon:"fast-backward",textAlign:"center",disabled:0===s,width:2.2,onClick:function(){return t("min_pressure")}}),(0,r.jsx)(i.Y2,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:u,value:s,onDrag:function(e){return t("custom_pressure",{pressure:e})}}),(0,r.jsx)(i.zx,{icon:"fast-forward",textAlign:"center",disabled:s===u,width:2.2,onClick:function(){return t("max_pressure")}})]}),(0,r.jsx)(i.H2.Item,{label:"Filter",children:f.map(function(e){return(0,r.jsx)(i.zx,{selected:e.gas_type===d,content:e.label,onClick:function(){return t("set_filter",{filter:e.gas_type})}},e.label)})})]})})})})}},9894:function(e,n,t){"use strict";t.r(n),t.d(n,{AtmosMixer:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,s=a.on,u=a.pressure,d=a.max_pressure,f=a.node1_concentration,h=a.node2_concentration;return(0,r.jsx)(l.Rz,{width:330,height:165,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Power",children:(0,r.jsx)(i.zx,{icon:"power-off",content:s?"On":"Off",color:s?null:"red",selected:s,onClick:function(){return t("power")}})}),(0,r.jsxs)(i.H2.Item,{label:"Rate",children:[(0,r.jsx)(i.zx,{icon:"fast-backward",textAlign:"center",disabled:0===u,width:2.2,onClick:function(){return t("min_pressure")}}),(0,r.jsx)(i.Y2,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:d,value:u,onChange:function(e){return t("custom_pressure",{pressure:e})}}),(0,r.jsx)(i.zx,{icon:"fast-forward",textAlign:"center",disabled:u===d,width:2.2,onClick:function(){return t("max_pressure")}})]}),(0,r.jsx)(c,{node_name:"Node 1",node_ref:f}),(0,r.jsx)(c,{node_name:"Node 2",node_ref:h})]})})})})},c=function(e){var n=(0,o.nc)(),t=n.act;n.data;var l=e.node_name,a=e.node_ref;return(0,r.jsxs)(i.H2.Item,{label:l,children:[(0,r.jsx)(i.zx,{icon:"fast-backward",textAlign:"center",width:2.2,disabled:0===a,onClick:function(){return t("set_node",{node_name:l,concentration:(a-10)/100})}}),(0,r.jsx)(i.Y2,{animated:!0,unit:"%",width:6.1,lineHeight:1.5,step:1,stepPixelSize:10,minValue:0,maxValue:100,value:a,onChange:function(e){return t("set_node",{node_name:l,concentration:e/100})}}),(0,r.jsx)(i.zx,{icon:"fast-forward",textAlign:"center",width:2.2,disabled:100===a,onClick:function(){return t("set_node",{node_name:l,concentration:(a+10)/100})}})]})}},95:function(e,n,t){"use strict";t.r(n),t.d(n,{AtmosPump:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.on,s=a.rate,u=a.max_rate,d=a.gas_unit,f=a.step;return(0,r.jsx)(l.Rz,{width:330,height:110,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Power",children:(0,r.jsx)(i.zx,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){return t("power")}})}),(0,r.jsxs)(i.H2.Item,{label:"Rate",children:[(0,r.jsx)(i.zx,{icon:"fast-backward",textAlign:"center",disabled:0===s,width:2.2,onClick:function(){return t("min_rate")}}),(0,r.jsx)(i.Y2,{animated:!0,unit:d,width:6.1,lineHeight:1.5,step:f,minValue:0,maxValue:u,value:s,onChange:function(e){return t("custom_rate",{rate:e})}}),(0,r.jsx)(i.zx,{icon:"fast-forward",textAlign:"center",disabled:s===u,width:2.2,onClick:function(){return t("max_rate")}})]})]})})})})}},3025:function(e,n,t){"use strict";t.r(n),t.d(n,{AtmosTankControl:()=>s});var r=t(1557),i=t(3987),o=t(8153),l=t(4893),a=t(9242),c=t(3817),s=function(e){var n=(0,l.nc)(),t=n.act,s=n.data,d=s.sensors||{};return(0,r.jsx)(c.Rz,{width:400,height:435,children:(0,r.jsxs)(c.Rz.Content,{scrollable:!0,children:[Object.keys(d).map(function(e){return(0,r.jsx)(i.$0,{title:e,children:(0,r.jsxs)(i.H2,{children:[Object.keys(d[e]).indexOf("pressure")>-1?(0,r.jsxs)(i.H2.Item,{label:"Pressure",children:[d[e].pressure," kpa"]}):"",Object.keys(d[e]).indexOf("temperature")>-1?(0,r.jsxs)(i.H2.Item,{label:"Temperature",children:[d[e].temperature," K"]}):"",["o2","n2","plasma","co2","n2o"].map(function(n){return Object.keys(d[e]).indexOf(n)>-1?(0,r.jsx)(i.H2.Item,{label:(0,a.UD)(n),children:(0,r.jsx)(i.ko,{color:(0,a._9)(n),value:d[e][n],minValue:0,maxValue:100,children:(0,o.FH)(d[e][n],2)+"%"})},(0,a.UD)(n)):""})]})},e)}),(0,r.jsx)(i.$0,{title:"Inlets",children:s.inlets&&Object.keys(s.inlets).length>0?s.inlets.map(function(e){return(0,r.jsx)(i.$0,{title:e.name,children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Power",children:(0,r.jsx)(i.zx,{icon:(e.on,"power-off"),content:e.on?"On":"Off",color:e.on?null:"red",selected:e.on,onClick:function(){return t("toggle_inlet_active",{dev:e.uid})}})}),(0,r.jsx)(i.H2.Item,{label:"Rate",children:(0,r.jsx)(i.Y2,{animated:!0,unit:"L/s",width:6.1,lineHeight:1.5,step:1,minValue:0,maxValue:50,value:e.rate,onChange:function(n){return t("set_inlet_volume_rate",{dev:e.uid,val:n})}})})]})},e)}):""}),(0,r.jsxs)(i.$0,{title:"Outlets",children:[s.vent_outlets&&Object.keys(s.vent_outlets).length>0?s.vent_outlets.map(function(e){return(0,r.jsx)(i.$0,{title:"Outlet: "+e.name,children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Status",children:(0,r.jsx)(i.zx,{icon:(e.on,"power-off"),content:e.on?"On":"Off",color:e.on?null:"red",selected:e.on,onClick:function(){return t("toggle_outlet_active",{dev:e.uid})}})}),(0,r.jsxs)(i.H2.Item,{label:"Pressure Checks",children:[(0,r.jsx)(i.zx,{content:"External",selected:1===e.checks,onClick:function(){return t("set_outlet_reference",{dev:e.uid,val:1})}}),(0,r.jsx)(i.zx,{content:"Internal",selected:2===e.checks,onClick:function(){return t("set_outlet_reference",{dev:e.uid,val:2})}})]}),(0,r.jsx)(i.H2.Item,{label:"Rate",children:(0,r.jsx)(i.Y2,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:5066,value:e.rate,onChange:function(n){return t("set_outlet_pressure",{dev:e.uid,val:n})}})})]})},e)}):"",s.scrubber_outlets&&Object.keys(s.scrubber_outlets).length>0?(0,r.jsx)(u,{}):""]})]})})},u=function(e){var n=(0,l.nc)(),t=n.act;return n.data.scrubber_outlets.map(function(e){return(0,r.jsx)(i.$0,{title:"Outlet: "+e.name,children:(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Status",children:[(0,r.jsx)(i.zx,{content:e.power?"On":"Off",selected:e.power,icon:"power-off",onClick:function(){return t("command",{cmd:"power",id_tag:e.id_tag})}}),(0,r.jsx)(i.zx,{content:e.scrubbing?"Scrubbing":"Siphoning",icon:e.scrubbing?"filter":"sign-in-alt",onClick:function(){return t("command",{cmd:"scrubbing",id_tag:e.id_tag})}})]}),(0,r.jsx)(i.H2.Item,{label:"Range",children:(0,r.jsx)(i.zx,{content:e.widenet?"Extended":"Normal",selected:e.widenet,icon:"expand-arrows-alt",onClick:function(){return t("command",{cmd:"widenet",id_tag:e.id_tag})}})}),(0,r.jsxs)(i.H2.Item,{label:"Filtering",children:[(0,r.jsx)(i.zx,{content:"Carbon Dioxide",selected:e.filter_co2,onClick:function(){return t("command",{cmd:"co2_scrub",id_tag:e.id_tag})}}),(0,r.jsx)(i.zx,{content:"Plasma",selected:e.filter_toxins,onClick:function(){return t("command",{cmd:"tox_scrub",id_tag:e.id_tag})}}),(0,r.jsx)(i.zx,{content:"Nitrous Oxide",selected:e.filter_n2o,onClick:function(){return t("command",{cmd:"n2o_scrub",id_tag:e.id_tag})}}),(0,r.jsx)(i.zx,{content:"Oxygen",selected:e.filter_o2,onClick:function(){return t("command",{cmd:"o2_scrub",id_tag:e.id_tag})}}),(0,r.jsx)(i.zx,{content:"Nitrogen",selected:e.filter_n2,onClick:function(){return t("command",{cmd:"n2_scrub",id_tag:e.id_tag})}})]})]})},e.name)})}},3383:function(e,n,t){"use strict";t.r(n),t.d(n,{AugmentMenu:()=>d});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0?"".concat(t.current_level," / ").concat(t.max_level):"0 / ".concat(e.max_level);return(0,r.jsxs)(o.Kq.Item,{children:[(0,r.jsxs)(o.Kq,{vertical:!1,children:[(0,r.jsx)(o.zx,{height:"20px",width:"35px",mb:1,textAlign:"center",content:i,disabled:i>c||t&&t.current_level===t.max_level,tooltip:"Purchase this ability?",onClick:function(){n("purchase",{ability_path:e.ability_path}),x(m)}}),(0,r.jsx)(o.Kq.Item,{fontSize:"16px",children:e.name})]}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsxs)(o.Kq,{vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{fontSize:"13px",children:e.desc||"Description not available"}),(0,r.jsxs)(o.Kq.Item,{children:["Level: ",(0,r.jsx)("span",{style:{color:"green"},children:l}),v&&e.stage>0&&(0,r.jsxs)("span",{children:[" (Stage: ",e.stage,")"]})]}),(0,r.jsx)(o.Kq.Divider,{})]})})]},e.name)})})]})},h=function(e){var n=e.act,t=e.abilityTabs,i=e.knownAbilities,l=e.usableSwarms,a=i.filter(function(e){return e.current_levell,tooltip:"Upgrade this ability?",onClick:function(){return n("purchase",{ability_path:e.ability_path})}}),(0,r.jsx)(o.Kq.Item,{fontSize:"16px",children:e.name})]}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsxs)(o.Kq,{vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{fontSize:"13px",children:e.upgrade_text}),(0,r.jsxs)(o.Kq.Item,{children:["Level:"," ",(0,r.jsx)("span",{style:{color:"green"},children:"".concat(e.current_level," / ").concat(e.max_level)}),i&&i.stage>0&&(0,r.jsxs)("span",{children:[" (Stage: ",i.stage,")"]})]}),(0,r.jsx)(o.Kq.Divider,{})]})})]},e.name)})})}},4820:function(e,n,t){"use strict";t.r(n),t.d(n,{Autolathe:()=>f});var r=t(1557),i=t(7662),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tn)&&!(e.requirements.glass*r>t)},f=function(e){var n=(0,a.nc)(),t=n.act,s=n.data,f=s.total_amount,h=(s.max_amount,s.metal_amount),m=s.glass_amount,x=s.busyname,p=s.busyamt,j=s.showhacked,g=s.buildQueue,b=s.buildQueueLen,y=s.recipes,v=s.categories,w=s.fill_percent,k=u((0,a.Oc)("category","Tools"),2),_=k[0],C=k[1],S=h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),I=m.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),A=f.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),O=u((0,a.Oc)("searchText",""),2),z=O[0],P=O[1],R=[];b>0&&(R=g.map(function(e,n){return(0,r.jsx)(o.xu,{children:(0,r.jsx)(o.zx,{fluid:!0,icon:"times",color:"transparent",content:e[0],onClick:function(){return t("remove_from_queue",{remove_from_queue:n+1})}},n)},n)}));var E=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=(0,i.hX)(e,function(e){return(e.category.indexOf(_)>-1||!!n)&&(!!j||!e.hacked)});if(n){var r=(0,l.mj)(n,function(e){return e.name});t=(0,i.hX)(t,r)}return(0,i.MR)(t,function(e){return e.name.toLowerCase()})}(y,z),H="Build";return z?H="Results for: '"+z+"':":_&&(H="Build ("+_+")"),(0,r.jsx)(c.Rz,{width:750,height:525,children:(0,r.jsx)(c.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(o.Kq,{fill:!0,children:[(0,r.jsx)(o.Kq.Item,{width:"70%",children:(0,r.jsxs)(o.$0,{fill:!0,scrollable:!0,title:H,buttons:(0,r.jsx)(o.Lt,{width:"150px",options:v,selected:_,onSelected:function(e){return C(e)}}),children:[(0,r.jsx)(o.II,{fluid:!0,mb:1,placeholder:"Search for...",onChange:function(e){return P(e)},value:z}),E.map(function(e){return(0,r.jsxs)(o.Kq.Item,{grow:!0,children:[(0,r.jsx)("img",{src:"data:image /jpeg;base64,".concat(e.image),style:{verticalAlign:"middle",width:"32px",margin:"0px"}}),(0,r.jsx)(o.zx,{mr:1,icon:"hammer",selected:x===e.name&&1===p,disabled:!d(e,h,m,1),onClick:function(){return t("make",{make:e.uid,multiplier:1})},children:e.name}),e.max_multiplier>=10&&(0,r.jsx)(o.zx,{mr:1,icon:"hammer",selected:x===e.name&&10===p,disabled:!d(e,h,m,10),onClick:function(){return t("make",{make:e.uid,multiplier:10})},children:"10x"}),e.max_multiplier>=25&&(0,r.jsx)(o.zx,{mr:1,icon:"hammer",selected:x===e.name&&25===p,disabled:!d(e,h,m,25),onClick:function(){return t("make",{make:e.uid,multiplier:25})},children:"25x"}),e.max_multiplier>25&&(0,r.jsxs)(o.zx,{mr:1,icon:"hammer",selected:x===e.name&&p===e.max_multiplier,disabled:!d(e,h,m,e.max_multiplier),onClick:function(){return t("make",{make:e.uid,multiplier:e.max_multiplier})},children:[e.max_multiplier,"x"]}),e.requirements&&Object.keys(e.requirements).map(function(n){return(0,l.LF)(n)+": "+e.requirements[n]}).join(", ")||(0,r.jsx)(o.xu,{children:"No resources required."})]},e.uid)})]})}),(0,r.jsxs)(o.Kq.Item,{width:"30%",children:[(0,r.jsx)(o.$0,{title:"Materials",children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Metal",children:S}),(0,r.jsx)(o.H2.Item,{label:"Glass",children:I}),(0,r.jsx)(o.H2.Item,{label:"Total",children:A}),(0,r.jsxs)(o.H2.Item,{label:"Storage",children:[w,"% Full"]})]})}),(0,r.jsx)(o.$0,{title:"Building",children:(0,r.jsx)(o.xu,{color:x?"green":"",children:x||"Nothing"})}),(0,r.jsxs)(o.$0,{title:"Build Queue",height:23.7,children:[R,(0,r.jsx)(o.zx,{mt:.5,fluid:!0,icon:"times",content:"Clear All",color:"red",disabled:!b,onClick:function(){return t("clear_queue")}})]})]})]})})})}},7978:function(e,n,t){"use strict";t.r(n),t.d(n,{BioChipPad:()=>s});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);ts});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(1735);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);ta});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.glow_brightness_base,s=a.glow_brightness_power,u=a.glow_contrast_base,d=a.glow_contrast_power,f=a.exposure_brightness_base,h=a.exposure_brightness_power,m=a.exposure_contrast_base,x=a.exposure_contrast_power;return(0,r.jsx)(l.Rz,{title:"BloomEdit",width:500,height:500,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{title:"Bloom Edit",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Lamp Brightness Base",children:[(0,r.jsx)(i.xu,{inline:!0,children:"Base Lamp Brightness"}),(0,r.jsx)(i.Y2,{fluid:!0,value:c,minValue:-10,maxValue:10,step:.01,width:"20px",onChange:function(e){return t("glow_brightness_base",{value:e})}})]}),(0,r.jsxs)(i.H2.Item,{label:"Lamp Brightness Power",children:[(0,r.jsx)(i.xu,{inline:!0,children:"Lamp Brightness * Light Power"}),(0,r.jsx)(i.Y2,{fluid:!0,value:s,minValue:-10,maxValue:10,step:.01,width:"20px",onChange:function(e){return t("glow_brightness_power",{value:e})}})]}),(0,r.jsxs)(i.H2.Item,{label:"Lamp Contrast Base",children:[(0,r.jsx)(i.xu,{inline:!0,children:"Base Lamp Contrast"}),(0,r.jsx)(i.Y2,{fluid:!0,value:u,minValue:-10,maxValue:10,step:.01,width:"20px",onChange:function(e){return t("glow_contrast_base",{value:e})}})]}),(0,r.jsxs)(i.H2.Item,{label:"Lamp Contrast Power",children:[(0,r.jsx)(i.xu,{inline:!0,children:"Lamp Contrast * Light Power"}),(0,r.jsx)(i.Y2,{fluid:!0,value:d,minValue:-10,maxValue:10,step:.01,width:"20px",onChange:function(e){return t("glow_contrast_power",{value:e})}})]}),(0,r.jsxs)(i.H2.Item,{label:"Exposure Brightness Base",children:[(0,r.jsx)(i.xu,{inline:!0,children:"Base Exposure Brightness"}),(0,r.jsx)(i.Y2,{fluid:!0,value:f,minValue:-10,maxValue:10,step:.01,width:"20px",onChange:function(e){return t("exposure_brightness_base",{value:e})}})]}),(0,r.jsxs)(i.H2.Item,{label:"Exposure Brightness Power",children:[(0,r.jsx)(i.xu,{inline:!0,children:"Exposure Brightness * Light Power"}),(0,r.jsx)(i.Y2,{fluid:!0,value:h,minValue:-10,maxValue:10,step:.01,width:"20px",onChange:function(e){return t("exposure_brightness_power",{value:e})}})]}),(0,r.jsxs)(i.H2.Item,{label:"Exposure Contrast Base",children:[(0,r.jsx)(i.xu,{inline:!0,children:"Base Exposure Contrast"}),(0,r.jsx)(i.Y2,{fluid:!0,value:m,minValue:-10,maxValue:10,step:.01,width:"20px",onChange:function(e){return t("exposure_contrast_base",{value:e})}})]}),(0,r.jsxs)(i.H2.Item,{label:"Exposure Contrast Power",children:[(0,r.jsx)(i.xu,{inline:!0,children:"Exposure Contrast * Light Power"}),(0,r.jsx)(i.Y2,{fluid:!0,value:x,minValue:-10,maxValue:10,step:.01,width:"20px",onChange:function(e){return t("exposure_contrast_power",{value:e})}})]}),(0,r.jsx)(i.H2.Divider,{}),(0,r.jsxs)(i.H2.Item,{children:[(0,r.jsx)(i.zx,{content:"Reload Lamps with New Parameters",onClick:function(){return t("update_lamps")}}),(0,r.jsx)(i.zx,{content:"Reset to Default",onClick:function(){return t("default")}})]})]})})})})}},5854:function(e,n,t){"use strict";t.r(n),t.d(n,{BlueSpaceArtilleryControl:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n,t=(0,o.nc)(),a=t.act,c=t.data;return n=c.ready?(0,r.jsx)(i.H2.Item,{label:"Status",color:"green",children:"Ready"}):c.reloadtime_text?(0,r.jsx)(i.H2.Item,{label:"Reloading In",color:"red",children:c.reloadtime_text}):(0,r.jsx)(i.H2.Item,{label:"Status",color:"red",children:"No cannon connected!"}),(0,r.jsx)(l.Rz,{width:400,height:150,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,children:(0,r.jsxs)(i.H2,{children:[c.notice&&(0,r.jsx)(i.H2.Item,{label:"Alert",color:"red",children:c.notice}),n,(0,r.jsx)(i.H2.Item,{label:"Target",children:(0,r.jsx)(i.zx,{icon:"crosshairs",content:c.target?c.target:"None",onClick:function(){return a("recalibrate")}})}),1===c.ready&&!!c.target&&(0,r.jsx)(i.H2.Item,{label:"Firing",children:(0,r.jsx)(i.zx,{icon:"skull",content:"FIRE!",color:"red",onClick:function(){return a("fire")}})}),!c.connected&&(0,r.jsx)(i.H2.Item,{label:"Maintenance",children:(0,r.jsx)(i.zx,{icon:"wrench",content:"Complete Deployment",onClick:function(){return a("build")}})})]})})})})})})}},4758:function(e,n,t){"use strict";t.r(n),t.d(n,{Alerts:()=>u,BluespaceTap:()=>s,Incursion:()=>c});var r=t(1557),i=t(3987),o=t(9956),l=t(4893),a=t(3817),c=function(e){if((0,l.nc)().data.portaling)return(0,r.jsx)(i.Pz,{fontsize:"256px",backgroundColor:"rgba(35,0,0,0.85)",children:(0,r.jsx)(i.mx,{fontsize:"256px",interval:Math.random()>.25?750+400*Math.random():290+150*Math.random(),time:60+150*Math.random(),children:(0,r.jsx)(i.Kq,{mb:"30px",fontsize:"256px",children:(0,r.jsxs)(i.Kq.Item,{bold:!0,color:"red",fontsize:"256px",textAlign:"center",children:[(0,r.jsx)(i.JO,{name:"skull",size:14,mb:"64px"}),(0,r.jsx)("br",{}),"E$#OR:& U#KN!WN IN%ERF#R_NCE"]})})})})},s=function(e){var n=(0,l.nc)(),t=n.act,s=n.data,d=s.product||[],f=s.desiredMiningPower,h=s.miningPower,m=s.points,x=s.totalPoints,p=s.powerUse,j=s.availablePower,g=s.emagged,b=s.dirty,y=s.autoShutown,v=s.stabilizers,w=s.stabilizerPower,k=s.stabilizerPriority;return(0,r.jsx)(a.Rz,{width:650,height:450,children:(0,r.jsx)(a.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(c,{}),(0,r.jsx)(u,{}),(0,r.jsx)(i.zF,{title:"Input Management",children:(0,r.jsxs)(i.$0,{fill:!0,title:"Input",children:[(0,r.jsx)(i.zx,{icon:y&&!g?"toggle-on":"toggle-off",content:"Auto shutdown",color:y&&!g?"green":"red",disabled:!!g,tooltip:"Turn auto shutdown on or off",tooltipPosition:"top",onClick:function(){return t("auto_shutdown")}}),(0,r.jsx)(i.zx,{icon:v&&!g?"toggle-on":"toggle-off",content:"Stabilizers",color:v&&!g?"green":"red",disabled:!!g,tooltip:"Turn stabilizers on or off",tooltipPosition:"top",onClick:function(){return t("stabilizers")}}),(0,r.jsx)(i.zx,{icon:k&&!g?"toggle-on":"toggle-off",content:"Stabilizer priority",color:k&&!g?"green":"red",disabled:!!g,tooltip:"On: Mining power will not exceed what can be stabilized",tooltipPosition:"top",onClick:function(){return t("stabilizer_priority")}}),(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Desired Mining Power",children:(0,o.bu)(f)}),(0,r.jsx)(i.H2.Item,{verticalAlign:"top",label:"Set Desired Mining Power",children:(0,r.jsxs)(i.Kq,{width:"100%",children:[(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx,{icon:"step-backward",disabled:0===f||g,tooltip:"Set to 0",tooltipPosition:"bottom",onClick:function(){return t("set",{set_power:0})}}),(0,r.jsx)(i.zx,{icon:"fast-backward",tooltip:"Decrease by 10 MW",tooltipPosition:"bottom",disabled:0===f||g,onClick:function(){return t("set",{set_power:f-1e7})}}),(0,r.jsx)(i.zx,{icon:"backward",disabled:0===f||g,tooltip:"Decrease by 1 MW",tooltipPosition:"bottom",onClick:function(){return t("set",{set_power:f-1e6})}})]}),(0,r.jsx)(i.Kq.Item,{mx:1,children:(0,r.jsx)(i.Y2,{disabled:g,minValue:0,value:f,maxValue:1/0,step:1,onChange:function(e){return t("set",{set_power:e})}})}),(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx,{icon:"forward",disabled:g,tooltip:"Increase by one MW",tooltipPosition:"bottom",onClick:function(){return t("set",{set_power:f+1e6})}}),(0,r.jsx)(i.zx,{icon:"fast-forward",disabled:g,tooltip:"Increase by 10MW",tooltipPosition:"bottom",onClick:function(){return t("set",{set_power:f+1e7})}})]})]})}),(0,r.jsx)(i.H2.Item,{label:"Total Power Use",children:(0,o.bu)(p)}),(0,r.jsx)(i.H2.Item,{label:"Mining Power Use",children:(0,o.bu)(h)}),(0,r.jsx)(i.H2.Item,{label:"Stabilizer Power Use",children:(0,o.bu)(w)}),(0,r.jsx)(i.H2.Item,{label:"Surplus Power",children:(0,o.bu)(j)})]})]})}),(0,r.jsxs)(i.$0,{fill:!0,title:"Output",children:[b?(0,r.jsx)(i.Pz,{backgroundColor:"rgba(63, 39, 18, 0.85)",children:(0,r.jsx)(i.Kq,{mb:"30px",fontsize:"256px",children:(0,r.jsxs)(i.Kq.Item,{bold:!0,color:"brown",fontsize:"256px",textAlign:"center",children:["Blockage Detected",(0,r.jsx)("br",{}),"Cleanup Required"]})})}):"",(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.xu,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Available Points",children:m}),(0,r.jsx)(i.H2.Item,{label:"Total Points",children:x})]})})}),(0,r.jsx)(i.Kq.Item,{align:"end",children:(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.H2,{children:d.map(function(e){return(0,r.jsx)(i.H2.Item,{label:e.name,children:(0,r.jsx)(i.zx,{disabled:e.price>=m,onClick:function(){return t("vend",{target:e.key})},content:e.price})},e.key)})})})})]})]})]})})})},u=function(e){var n=(0,l.nc)(),t=(n.act,n.data);t.product;var o=t.miningPower,a=t.stabilizerPower,c=t.emagged,s=(t.safeLevels,t.autoShutown),u=t.stabilizers;return t.overhead,(0,r.jsxs)(r.Fragment,{children:[!s&&!c&&(0,r.jsx)(i.f7,{danger:1,children:"Auto shutdown disabled"}),c?(0,r.jsx)(i.f7,{danger:1,children:"All safeties disabled"}):o<=15e6?"":u?o>a+15e6?(0,r.jsx)(i.f7,{danger:1,children:"Stabilizers overwhelmed, Instability likely"}):(0,r.jsx)(i.f7,{children:"High Power, engaging stabilizers"}):(0,r.jsx)(i.f7,{danger:1,children:"Stabilizers disabled, Instability likely"})]})}},5643:function(e,n,t){"use strict";t.r(n),t.d(n,{BodyScanner:()=>x});var r=t(1557),i=t(3987),o=t(8531),l=t(4893),a=t(3817),c=[["good","Alive"],["average","Critical"],["bad","DEAD"]],s=[["hasVirus","bad","Viral pathogen detected in blood stream."],["blind","average","Cataracts detected."],["colourblind","average","Photoreceptor abnormalities detected."],["nearsighted","average","Retinal misalignment detected."],["paraplegic","bad","Lumbar nerves damaged."]],u=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Cellular","cloneLoss"],["Burn","fireLoss"],["Inebriation","drunkenness"]],d={average:[.25,.5],bad:[.5,1/0]},f=function(e,n){for(var t=[],r=0;r0?e.filter(function(e){return!!e}).reduce(function(e,n){return(0,r.jsxs)(r.Fragment,{children:[e,(0,r.jsx)(i.xu,{children:n},n)]})},null):null},m=function(e){if(e>100){if(e<300)return"mild infection";if(e<400)return"mild infection+";if(e<500)return"mild infection++";if(e<700)return"acute infection";if(e<800)return"acute infection+";if(e<900)return"acute infection++";if(e>=900)return"septic"}return""},x=function(e){var n=(0,l.nc)().data,t=n.occupied,i=n.occupant,o=t?(0,r.jsx)(p,{occupant:void 0===i?{}:i}):(0,r.jsx)(k,{});return(0,r.jsx)(a.Rz,{width:700,height:600,title:"Body Scanner",children:(0,r.jsx)(a.Rz.Content,{scrollable:!0,children:o})})},p=function(e){var n=e.occupant;return(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(j,{occupant:n}),(0,r.jsx)(g,{occupant:n}),(0,r.jsx)(b,{occupant:n}),(0,r.jsx)(v,{organs:n.extOrgan}),(0,r.jsx)(w,{organs:n.intOrgan})]})},j=function(e){var n=(0,l.nc)(),t=n.act,o=n.data.occupant;return(0,r.jsx)(i.$0,{title:"Occupant",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{icon:"print",onClick:function(){return t("print_p")},children:"Print Report"}),(0,r.jsx)(i.zx,{icon:"user-slash",onClick:function(){return t("ejectify")},children:"Eject"})]}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Name",children:o.name}),(0,r.jsx)(i.H2.Item,{label:"Health",children:(0,r.jsx)(i.ko,{min:"0",max:o.maxHealth,value:o.health/o.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,r.jsx)(i.H2.Item,{label:"Status",color:c[o.stat][0],children:c[o.stat][1]}),(0,r.jsxs)(i.H2.Item,{label:"Temperature",children:[(0,r.jsx)(i.zt,{value:Math.round(o.bodyTempC)}),"\xb0C,\xa0",(0,r.jsx)(i.zt,{value:Math.round(o.bodyTempF)}),"\xb0F"]}),(0,r.jsx)(i.H2.Item,{label:"Implants",children:o.implant_len?(0,r.jsx)(i.xu,{children:o.implant.map(function(e){return e.name}).join(", ")}):(0,r.jsx)(i.xu,{color:"label",children:"None"})})]})})},g=function(e){var n=e.occupant;return n.hasBorer||n.blind||n.colourblind||n.nearsighted||n.hasVirus||n.paraplegic?(0,r.jsx)(i.$0,{title:"Abnormalities",children:s.map(function(e,t){if(n[e[0]])return(0,r.jsx)(i.xu,{color:e[1],bold:"bad"===e[1],children:e[2]},e[2])})}):(0,r.jsx)(i.$0,{title:"Abnormalities",children:(0,r.jsx)(i.xu,{color:"label",children:"No abnormalities found."})})},b=function(e){var n=e.occupant;return(0,r.jsx)(i.$0,{title:"Damage",children:(0,r.jsx)(i.iA,{children:f(u,function(e,t,o){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.iA.Row,{color:"label",children:[(0,r.jsxs)(i.iA.Cell,{children:[e[0],":"]}),(0,r.jsx)(i.iA.Cell,{children:!!t&&t[0]+":"})]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(y,{value:n[e[1]],marginBottom:o100)&&"average"||!!e.status.robotic&&"label",width:"33%",children:(0,o.kC)(e.name)}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:(0,r.jsx)(i.ko,{m:-.5,min:"0",max:e.maxHealth,mt:n>0&&"0.5rem",value:e.totalLoss/e.maxHealth,ranges:d,children:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.u,{content:"Total damage",children:(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.JO,{name:"heartbeat",mr:.5}),Math.round(e.totalLoss)]})}),!!e.bruteLoss&&(0,r.jsx)(i.u,{content:"Brute damage",children:(0,r.jsxs)(i.Kq.Item,{grow:!0,children:[(0,r.jsx)(i.JO,{name:"bone",mr:.5}),Math.round(e.bruteLoss)]})}),!!e.fireLoss&&(0,r.jsx)(i.u,{content:"Burn damage",children:(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.JO,{name:"fire",mr:.5}),Math.round(e.fireLoss)]})})]})})}),(0,r.jsxs)(i.iA.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:n>0&&"calc(0.5rem + 2px)",children:[(0,r.jsx)(i.xu,{color:"average",inline:!0,children:h([!!e.internalBleeding&&"Internal bleeding",!!e.burnWound&&"Critical tissue burns",!!e.lungRuptured&&"Ruptured lung",!!e.status.broken&&e.status.broken,m(e.germ_level),!!e.open&&"Open incision"])}),(0,r.jsxs)(i.xu,{inline:!0,children:[h([!!e.status.splinted&&(0,r.jsx)(i.xu,{color:"good",children:"Splinted"}),!!e.status.robotic&&(0,r.jsx)(i.xu,{color:"label",children:"Robotic"}),!!e.status.dead&&(0,r.jsx)(i.xu,{color:"bad",bold:!0,children:"DEAD"})]),h(e.shrapnel.map(function(e){return e.known?e.name:"Unknown object"}))]})]})]},n)})]})})},w=function(e){return 0===e.organs.length?(0,r.jsx)(i.$0,{title:"Internal Organs",children:(0,r.jsx)(i.xu,{color:"label",children:"N/A"})}):(0,r.jsx)(i.$0,{title:"Internal Organs",children:(0,r.jsxs)(i.iA,{children:[(0,r.jsxs)(i.iA.Row,{header:!0,children:[(0,r.jsx)(i.iA.Cell,{children:"Name"}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:"Damage"}),(0,r.jsx)(i.iA.Cell,{textAlign:"right",children:"Injuries"})]}),e.organs.map(function(e,n){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{color:!!e.dead&&"bad"||e.germ_level>100&&"average"||e.robotic>0&&"label",width:"33%",children:(0,o.kC)(e.name)}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:(0,r.jsx)(i.ko,{min:"0",max:e.maxHealth,value:e.damage/e.maxHealth,mt:n>0&&"0.5rem",ranges:d,children:Math.round(e.damage)})}),(0,r.jsxs)(i.iA.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:n>0&&"calc(0.5rem + 2px)",children:[(0,r.jsx)(i.xu,{color:"average",inline:!0,children:h([m(e.germ_level)])}),(0,r.jsx)(i.xu,{inline:!0,children:h([1===e.robotic&&(0,r.jsx)(i.xu,{color:"label",children:"Robotic"}),2===e.robotic&&(0,r.jsx)(i.xu,{color:"label",children:"Assisted"}),!!e.dead&&(0,r.jsx)(i.xu,{color:"bad",bold:!0,children:"DEAD"})])})]})]},n)})]})})},k=function(){return(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(i.Kq,{fill:!0,textAlign:"center",children:(0,r.jsxs)(i.Kq.Item,{grow:!0,align:"center",color:"label",children:[(0,r.jsx)(i.JO,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.jsx)("br",{}),"No occupant detected."]})})})}},3854:function(e,n,t){"use strict";t.r(n),t.d(n,{BookBinder:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(5279),c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data,s=c.selectedbook,u=c.book_categories,d=[];return u.map(function(e){return d[e.description]=e.category_id}),(0,r.jsxs)(l.Rz,{width:600,height:400,children:[(0,r.jsx)(a.ComplexModal,{}),(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsxs)(i.$0,{fill:!0,title:"Book Binder",buttons:(0,r.jsx)(i.zx,{icon:"print",width:"auto",content:"Print Book",onClick:function(){return t("print_book")}}),children:[(0,r.jsxs)(i.xu,{ml:10,fontSize:"1.2rem",bold:!0,children:[(0,r.jsx)(i.JO,{name:"search-plus",verticalAlign:"middle",size:3,mr:"1rem"}),"Book Binder"]}),(0,r.jsx)(i.Kq,{children:(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Title",children:(0,r.jsx)(i.zx,{textAlign:"left",icon:"pen",width:"auto",content:s.title,onClick:function(){return(0,a.modalOpen)("edit_selected_title")}})}),(0,r.jsx)(i.H2.Item,{label:"Author",children:(0,r.jsx)(i.zx,{textAlign:"left",icon:"pen",width:"auto",content:s.author,onClick:function(){return(0,a.modalOpen)("edit_selected_author")}})}),(0,r.jsx)(i.H2.Item,{label:"Select Categories",children:(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.Lt,{width:"190px",options:u.map(function(e){return e.description}),onSelected:function(e){return t("toggle_binder_category",{category_id:d[e]})}})})}),(0,r.jsx)(i.H2.Item,{label:"Summary",children:(0,r.jsx)(i.zx,{icon:"pen",width:"auto",content:"Edit Summary",onClick:function(){return(0,a.modalOpen)("edit_selected_summary")}})}),(0,r.jsx)(i.H2.Item,{children:s.summary})]}),(0,r.jsx)("br",{}),u.filter(function(e){return s.categories.includes(e.category_id)}).map(function(e){return(0,r.jsx)(i.zx,{content:e.description,selected:!0,icon:"unlink",onClick:function(){return t("toggle_binder_category",{category_id:e.category_id})}},e.category_id)})]})})]})})})]})}},6823:function(e,n,t){"use strict";t.r(n),t.d(n,{BotCall:()=>u});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tc});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(4647),c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data;c.locked;var s=c.noaccess,u=(c.maintpanel,c.on,c.autopatrol,c.canhack,c.emagged,c.remote_disabled,c.painame),d=c.cleanblood,f=c.area;return(0,r.jsx)(l.Rz,{width:500,height:400,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(a.BotStatus,{}),(0,r.jsx)(i.$0,{title:"Cleaning Settings",children:(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:d,content:"Clean Blood",disabled:s,onClick:function(){return t("blood")}})}),(0,r.jsxs)(i.$0,{title:"Misc Settings",children:[(0,r.jsx)(i.zx,{fluid:!0,content:f?"Reset Area Selection":"Restrict to Current Area",onClick:function(){return t("area")}}),null!==f&&(0,r.jsx)(i.xu,{mb:1,children:(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Locked Area",children:f})})})]}),u&&(0,r.jsx)(i.$0,{title:"pAI",children:(0,r.jsx)(i.zx,{fluid:!0,icon:"eject",content:u,disabled:s,onClick:function(){return t("ejectpai")}})})]})})}},1340:function(e,n,t){"use strict";t.r(n),t.d(n,{BotFloor:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(4647),c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data,s=c.noaccess,u=c.painame,d=c.hullplating,f=c.replace,h=c.eat,m=c.make,x=c.fixfloor,p=c.nag_empty,j=c.magnet,g=c.tiles_amount;return(0,r.jsx)(l.Rz,{width:500,height:510,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(a.BotStatus,{}),(0,r.jsxs)(i.$0,{title:"Floor Settings",children:[(0,r.jsx)(i.xu,{mb:"5px",children:(0,r.jsx)(i.H2.Item,{label:"Tiles Left",children:g})}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:d,content:"Add tiles to new hull plating",tooltip:"Fixing a plating requires the removal of floor tile. This will place it back after repairing. Same goes for hull breaches",disabled:s,onClick:function(){return t("autotile")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:f,content:"Add floor tiles on exposed hull plating",tooltip:"Example: It will add tiles to maintenance",disabled:s,onClick:function(){return t("replacetiles")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:x,content:"Repair damaged tiles and platings",disabled:s,onClick:function(){return t("fixfloors")}})]}),(0,r.jsxs)(i.$0,{title:"Miscellaneous",children:[(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:h,content:"Finds tiles",disabled:s,onClick:function(){return t("eattiles")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:m,content:"Make pieces of metal into tiles when empty",disabled:s,onClick:function(){return t("maketiles")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:p,content:"Transmit notice when empty",disabled:s,onClick:function(){return t("nagonempty")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:j,content:"Traction Magnets",disabled:s,onClick:function(){return t("anchored")}})]}),u&&(0,r.jsx)(i.$0,{title:"pAI",children:(0,r.jsx)(i.zx.Checkbox,{fluid:!0,icon:"eject",content:u,disabled:s,onClick:function(){return t("ejectpai")}})})]})})}},27:function(e,n,t){"use strict";t.r(n),t.d(n,{BotHonk:()=>a});var r=t(1557),i=t(4893),o=t(3817),l=t(4647),a=function(e){var n=(0,i.nc)();return n.act,n.data,(0,r.jsx)(o.Rz,{width:500,height:220,children:(0,r.jsx)(o.Rz.Content,{scrollable:!0,children:(0,r.jsx)(l.BotStatus,{})})})}},2494:function(e,n,t){"use strict";t.r(n),t.d(n,{BotMed:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(4647),c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data;c.locked;var s=c.noaccess,u=(c.maintpanel,c.on,c.autopatrol,c.canhack,c.emagged,c.remote_disabled,c.painame),d=c.shut_up,f=c.declare_crit,h=c.stationary_mode,m=c.heal_threshold,x=c.injection_amount,p=c.use_beaker,j=c.treat_virus,g=c.reagent_glass;return(0,r.jsx)(l.Rz,{width:500,height:500,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(a.BotStatus,{}),(0,r.jsxs)(i.$0,{title:"Communication Settings",children:[(0,r.jsx)(i.zx.Checkbox,{fluid:!0,content:"Speaker",checked:!d,disabled:s,onClick:function(){return t("toggle_speaker")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,content:"Critical Patient Alerts",checked:f,disabled:s,onClick:function(){return t("toggle_critical_alerts")}})]}),(0,r.jsxs)(i.$0,{fill:!0,title:"Treatment Settings",children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Healing Threshold",children:(0,r.jsx)(i.iR,{value:m.value,minValue:m.min,maxValue:m.max,step:5,disabled:s,onChange:function(e,n){return t("set_heal_threshold",{target:n})}})}),(0,r.jsx)(i.H2.Item,{label:"Injection Level",children:(0,r.jsx)(i.iR,{value:x.value,minValue:x.min,maxValue:x.max,step:5,format:function(e){return"".concat(e,"u")},disabled:s,onChange:function(e,n){return t("set_injection_amount",{target:n})}})}),(0,r.jsx)(i.H2.Item,{label:"Reagent Source",children:(0,r.jsx)(i.zx,{content:p?"Beaker":"Internal Synthesizer",icon:p?"flask":"cogs",disabled:s,onClick:function(){return t("toggle_use_beaker")}})}),g&&(0,r.jsx)(i.H2.Item,{label:"Beaker",children:(0,r.jsxs)(i.Kq,{inline:!0,width:"100%",children:[(0,r.jsx)(i.Kq.Item,{grow:1,children:(0,r.jsxs)(i.ko,{value:g.amount,minValue:0,maxValue:g.max_amount,children:[g.amount," / ",g.max_amount]})}),(0,r.jsx)(i.Kq.Item,{ml:1,children:(0,r.jsx)(i.zx,{content:"Eject",disabled:s,onClick:function(){return t("eject_reagent_glass")}})})]})})]}),(0,r.jsx)(i.zx.Checkbox,{mt:1,fluid:!0,content:"Treat Viral Infections",checked:j,disabled:s,onClick:function(){return t("toggle_treat_viral")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,content:"Stationary Mode",checked:h,disabled:s,onClick:function(){return t("toggle_stationary_mode")}})]}),u&&(0,r.jsx)(i.$0,{title:"pAI",children:(0,r.jsx)(i.zx,{fluid:!0,icon:"eject",content:u,disabled:s,onClick:function(){return t("ejectpai")}})})]})})})}},3165:function(e,n,t){"use strict";t.r(n),t.d(n,{BotSecurity:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(4647),c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data,s=c.noaccess,u=c.painame,d=c.check_id,f=c.check_weapons,h=c.check_warrant,m=c.arrest_mode,x=c.arrest_declare;return(0,r.jsx)(l.Rz,{width:500,height:445,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(a.BotStatus,{}),(0,r.jsxs)(i.$0,{title:"Who To Arrest",children:[(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:d,content:"Unidentifiable Persons",disabled:s,onClick:function(){return t("authid")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:f,content:"Unauthorized Weapons",disabled:s,onClick:function(){return t("authweapon")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:h,content:"Wanted Criminals",disabled:s,onClick:function(){return t("authwarrant")}})]}),(0,r.jsxs)(i.$0,{title:"Arrest Procedure",children:[(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:m,content:"Detain Targets Indefinitely",disabled:s,onClick:function(){return t("arrtype")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:x,content:"Announce Arrests On Radio",disabled:s,onClick:function(){return t("arrdeclare")}})]}),u&&(0,r.jsx)(i.$0,{title:"pAI",children:(0,r.jsx)(i.zx,{fluid:!0,icon:"eject",content:u,disabled:s,onClick:function(){return t("ejectpai")}})})]})})}},4216:function(e,n,t){"use strict";t.r(n),t.d(n,{BrigCells:()=>s});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=e.cell,t=(0,o.nc)().act,l=n.cell_id,a=n.occupant,c=n.crimes,s=n.brigged_by,u=n.time_left_seconds,d=n.time_set_seconds,f=n.ref,h="";return u>0&&(h+=" BrigCells__listRow--active"),(0,r.jsxs)(i.iA.Row,{className:h,children:[(0,r.jsx)(i.iA.Cell,{children:l}),(0,r.jsx)(i.iA.Cell,{children:a}),(0,r.jsx)(i.iA.Cell,{children:c}),(0,r.jsx)(i.iA.Cell,{children:s}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.QG,{totalSeconds:d})}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.QG,{totalSeconds:u})}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.zx,{type:"button",onClick:function(){t("release",{ref:f})},children:"Release"})})]})},c=function(e){var n=e.cells;return(0,r.jsxs)(i.iA,{className:"BrigCells__list",children:[(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{header:!0,children:"Cell"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Occupant"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Crimes"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Brigged By"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Time Brigged For"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Time Left"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Release"})]}),n.map(function(e){return(0,r.jsx)(a,{cell:e},e.ref)})]})},s=function(e){var n=(0,o.nc)(),t=(n.act,n.data).cells;return(0,r.jsx)(l.Rz,{theme:"security",width:800,height:400,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,children:(0,r.jsx)(c,{cells:t})})})})})}},6017:function(e,n,t){"use strict";t.r(n),t.d(n,{BrigTimer:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data;a.nameText=a.occupant,a.timing&&(a.prisoner_hasrec?a.nameText=(0,r.jsx)(i.xu,{color:"green",children:a.occupant}):a.nameText=(0,r.jsx)(i.xu,{color:"red",children:a.occupant}));var c="pencil-alt";a.prisoner_name&&!a.prisoner_hasrec&&(c="exclamation-triangle");var s=[],u=0;for(u=0;ux,CameraConsoleContent:()=>p});var r=t(1557),i=t(7662),o=t(2778),l=t(3987),a=t(3946),c=t(8531),s=t(4893),u=t(3817);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);te?this.substring(0,e)+"...":this};var h=function(e,n){if(!n)return[];var t,r,i=e.findIndex(function(e){return e.name===n.name});return[null==(t=e[i-1])?void 0:t.name,null==(r=e[i+1])?void 0:r.name]},m=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=(0,i.hX)(e,function(e){return!!e.name});if(n){var r=(0,c.mj)(n,function(e){return e.name});t=(0,i.hX)(t,r)}return(0,i.MR)(t,function(e){return e.name})},x=function(e){var n=(0,s.nc)(),t=n.act,i=n.data,o=i.mapRef,c=i.activeCamera,d=f(h(m(i.cameras),c),2),x=d[0],j=d[1];return(0,r.jsxs)(u.Rz,{width:870,height:708,children:[(0,r.jsx)("div",{className:"CameraConsole__left",children:(0,r.jsx)(u.Rz.Content,{children:(0,r.jsx)(l.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(p,{})})})}),(0,r.jsxs)("div",{className:"CameraConsole__right",children:[(0,r.jsxs)("div",{className:"CameraConsole__toolbar",children:[(0,r.jsx)("b",{children:"Camera: "}),c&&c.name||"—"]}),(0,r.jsxs)("div",{className:(0,a.Sh)(["CameraConsole__toolbar","CameraConsole__toolbar--right"]),children:[(0,r.jsx)(l.zx,{icon:"chevron-left",disabled:!x,onClick:function(){return t("switch_camera",{name:x})}}),(0,r.jsx)(l.zx,{icon:"chevron-right",disabled:!j,onClick:function(){return t("switch_camera",{name:j})}})]}),(0,r.jsx)(l.SW,{className:"CameraConsole__map",params:{id:o,type:"map"}})]})]})},p=function(e){var n=(0,s.nc)(),t=n.act,i=n.data,c=f((0,o.useState)(""),2),u=c[0],d=c[1],h=i.activeCamera,x=m(i.cameras,u);return(0,r.jsxs)(l.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(l.Kq.Item,{children:(0,r.jsx)(l.II,{fluid:!0,placeholder:"Search for a camera",onChange:function(e){return d(e)}})}),(0,r.jsx)(l.Kq.Item,{grow:!0,m:0,children:(0,r.jsx)(l.$0,{fill:!0,scrollable:!0,children:x.map(function(e){return(0,r.jsx)("div",{title:e.name,className:(0,a.Sh)(["Button","Button--fluid",h&&e.name===h.name?"Button--selected":"Button--color--transparent"]),onClick:function(){return t("switch_camera",{name:e.name})},children:e.name.trimLongStr(23)},e.name)})})})]})}},8177:function(e,n,t){"use strict";t.r(n),t.d(n,{Canister:()=>s});var r=t(1557),i=t(3987),o=t(9956),l=t(8153),a=t(4893),c=t(3817),s=function(e){var n=(0,a.nc)(),t=n.act,s=n.data,u=s.portConnected,d=s.tankPressure,f=s.releasePressure,h=s.defaultReleasePressure,m=s.minReleasePressure,x=s.maxReleasePressure,p=s.valveOpen,j=s.name,g=s.canLabel,b=s.colorContainer,y=s.color_index,v=s.hasHoldingTank,w=s.holdingTank,k="";y.prim&&(k=b.prim.options[y.prim].name);var _="";y.sec&&(_=b.sec.options[y.sec].name);var C="";y.ter&&(C=b.ter.options[y.ter].name);var S="";y.quart&&(S=b.quart.options[y.quart].name);var I=[],A=[],O=[],z=[],P=0;for(P=0;Ph,CardComputerLoginWarning:()=>u,CardComputerNoCard:()=>d,CardComputerNoRecords:()=>f});var r=t(1557),i=t(3987),o=t(4893),l=t(9242),a=t(3817),c=t(8986),s=l.DM.department,u=function(){return(0,r.jsx)(i.$0,{fill:!0,title:"Warning",children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,r.jsxs)(i.JO.Stack,{children:[(0,r.jsx)(i.JO,{name:"user",size:5,color:"gray"}),(0,r.jsx)(i.JO,{name:"slash",size:5,color:"red"})]}),(0,r.jsx)("br",{}),"Not logged in"]})})})},d=function(){return(0,r.jsx)(i.$0,{fill:!0,title:"Card Missing",children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,r.jsxs)(i.JO.Stack,{children:[(0,r.jsx)(i.JO,{name:"id-card",size:5,color:"gray"}),(0,r.jsx)(i.JO,{name:"slash",size:5,color:"red"})]}),(0,r.jsx)("br",{}),"No card to modify"]})})})},f=function(){return(0,r.jsx)(i.$0,{fill:!0,title:"Records",children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,r.jsxs)(i.JO.Stack,{children:[(0,r.jsx)(i.JO,{name:"scroll",size:5,color:"gray"}),(0,r.jsx)(i.JO,{name:"slash",size:5,color:"red"})]}),(0,r.jsx)("br",{}),"No records"]})})})},h=function(e){var n,t=(0,o.nc)(),l=t.act,h=t.data,m=(0,r.jsxs)(i.mQ,{children:[(0,r.jsx)(i.mQ.Tab,{icon:"id-card",selected:0===h.mode,onClick:function(){return l("mode",{mode:0})},children:"Job Transfers"}),!h.target_dept&&(0,r.jsx)(i.mQ.Tab,{icon:"id-card",selected:2===h.mode,onClick:function(){return l("mode",{mode:2})},children:"Access Modification"}),(0,r.jsx)(i.mQ.Tab,{icon:"folder-open",selected:1===h.mode,onClick:function(){return l("mode",{mode:1})},children:"Job Management"}),(0,r.jsx)(i.mQ.Tab,{icon:"scroll",selected:3===h.mode,onClick:function(){return l("mode",{mode:3})},children:"Records"}),(0,r.jsx)(i.mQ.Tab,{icon:"users",selected:4===h.mode,onClick:function(){return l("mode",{mode:4})},children:"Department"})]}),x=(0,r.jsx)(i.$0,{title:"Authentication",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Login/Logout",children:(0,r.jsx)(i.zx,{icon:h.scan_name?"sign-out-alt":"id-card",selected:h.scan_name,content:h.scan_name?"Log Out: "+h.scan_name:"-----",onClick:function(){return l("scan")}})}),(0,r.jsx)(i.H2.Item,{label:"Card To Modify",children:(0,r.jsx)(i.zx,{icon:h.modify_name?"eject":"id-card",selected:h.modify_name,content:h.modify_name?"Remove Card: "+h.modify_name:"-----",onClick:function(){return l("modify")}})})]})});switch(h.mode){case 0:n=h.authenticated&&h.scan_name?h.modify_name?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.$0,{title:"Card Information",children:[!h.target_dept&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.H2.Item,{label:"Registered Name",children:(0,r.jsx)(i.zx,{icon:h.modify_owner&&"Unknown"!==h.modify_owner?"pencil-alt":"exclamation-triangle",selected:h.modify_name,content:h.modify_owner,onClick:function(){return l("reg")}})}),(0,r.jsx)(i.H2.Item,{label:"Account Number",children:(0,r.jsx)(i.zx,{icon:h.account_number?"pencil-alt":"exclamation-triangle",selected:h.account_number,content:h.account_number?h.account_number:"None",onClick:function(){return l("account")}})})]}),(0,r.jsx)(i.H2.Item,{label:"Latest Transfer",children:h.modify_lastlog||"---"})]}),(0,r.jsx)(i.$0,{title:h.target_dept?"Department Job Transfer":"Job Transfer",children:(0,r.jsxs)(i.H2,{children:[h.target_dept?(0,r.jsx)(i.H2.Item,{label:"Department",children:h.jobs_dept.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.H2.Item,{label:"Special",children:h.jobs_top.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})}),(0,r.jsx)(i.H2.Item,{label:"Engineering",labelColor:s.engineering,children:h.jobs_engineering.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})}),(0,r.jsx)(i.H2.Item,{label:"Medical",labelColor:s.medical,children:h.jobs_medical.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})}),(0,r.jsx)(i.H2.Item,{label:"Science",labelColor:s.science,children:h.jobs_science.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})}),(0,r.jsx)(i.H2.Item,{label:"Security",labelColor:s.security,children:h.jobs_security.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})}),(0,r.jsx)(i.H2.Item,{label:"Service",labelColor:s.service,children:h.jobs_service.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})}),(0,r.jsx)(i.H2.Item,{label:"Supply",labelColor:s.supply,children:h.jobs_supply.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})})]}),(0,r.jsx)(i.H2.Item,{label:"Retirement",children:h.jobs_assistant.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"",onClick:function(){return l("assign",{assign_target:e})}},e)})}),!!h.iscentcom&&(0,r.jsx)(i.H2.Item,{label:"CentCom",labelColor:s.centcom,children:h.jobs_centcom.map(function(e){return(0,r.jsx)(i.zx,{selected:h.modify_rank===e,content:e,color:h.jobFormats[e]?h.jobFormats[e]:"purple",onClick:function(){return l("assign",{assign_target:e})}},e)})}),(0,r.jsx)(i.H2.Item,{label:"Demotion",children:(0,r.jsx)(i.zx,{disabled:"Demoted"===h.modify_assignment||"Terminated"===h.modify_assignment,content:"Demoted",tooltip:"Assistant access, 'demoted' title.",color:"red",icon:"times",onClick:function(){return l("demote")}},"Demoted")}),!!h.canterminate&&(0,r.jsx)(i.H2.Item,{label:"Non-Crew",children:(0,r.jsx)(i.zx,{disabled:"Terminated"===h.modify_assignment,content:"Terminated",tooltip:"Zero access. Not crew.",color:"red",icon:"eraser",onClick:function(){return l("terminate")}},"Terminate")})]})}),!h.target_dept&&(0,r.jsxs)(i.$0,{title:"Card Skins",children:[h.card_skins.map(function(e){return(0,r.jsx)(i.zx,{selected:h.current_skin===e.skin,content:e.display_name,onClick:function(){return l("skin",{skin_target:e.skin})}},e.skin)}),!!h.iscentcom&&(0,r.jsx)(i.xu,{children:h.all_centcom_skins.map(function(e){return(0,r.jsx)(i.zx,{selected:h.current_skin===e.skin,content:e.display_name,color:"purple",onClick:function(){return l("skin",{skin_target:e.skin})}},e.skin)})})]})]}):(0,r.jsx)(d,{}):(0,r.jsx)(u,{});break;case 1:n=h.auth_or_ghost?(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsxs)(i.$0,{color:h.cooldown_time?"red":"",children:["Next Change Available:",h.cooldown_time?h.cooldown_time:"Now"]}),(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Job Slots",children:(0,r.jsxs)(i.iA,{children:[(0,r.jsxs)(i.iA.Row,{height:2,children:[(0,r.jsx)(i.iA.Cell,{bold:!0,textAlign:"center",children:"Title"}),(0,r.jsx)(i.iA.Cell,{bold:!0,textAlign:"center",children:"Used Slots"}),(0,r.jsx)(i.iA.Cell,{bold:!0,textAlign:"center",children:"Total Slots"}),(0,r.jsx)(i.iA.Cell,{bold:!0,textAlign:"center",children:"Free Slots"}),(0,r.jsx)(i.iA.Cell,{bold:!0,textAlign:"center",children:"Close Slot"}),(0,r.jsx)(i.iA.Cell,{bold:!0,textAlign:"center",children:"Open Slot"}),(0,r.jsx)(i.iA.Cell,{bold:!0,textAlign:"center",children:"Priority"})]}),h.job_slots.map(function(e){return(0,r.jsxs)(i.iA.Row,{height:2,className:"candystripe",children:[(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:(0,r.jsx)(i.xu,{color:e.is_priority?"green":"",children:e.title})}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:e.current_positions}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:e.total_positions}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:e.total_positions>e.current_positions&&(0,r.jsx)(i.xu,{color:"green",children:e.total_positions-e.current_positions})||(0,r.jsx)(i.xu,{color:"red",children:"0"})}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:(0,r.jsx)(i.zx,{content:"-",disabled:h.cooldown_time||!e.can_close,onClick:function(){return l("make_job_unavailable",{job:e.title})}})}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:(0,r.jsx)(i.zx,{content:"+",disabled:h.cooldown_time||!e.can_open,onClick:function(){return l("make_job_available",{job:e.title})}})}),(0,r.jsx)(i.iA.Cell,{textAlign:"center",children:h.target_dept&&(0,r.jsx)(i.xu,{color:"green",children:h.priority_jobs.indexOf(e.title)>-1?"Yes":""})||(0,r.jsx)(i.zx,{content:e.is_priority?"Yes":"No",selected:e.is_priority,disabled:h.cooldown_time||!e.can_prioritize,onClick:function(){return l("prioritize_job",{job:e.title})}})})]},e.title)})]})})]}):(0,r.jsx)(u,{});break;case 2:n=h.authenticated&&h.scan_name?h.modify_name?(0,r.jsx)(c.AccessList,{accesses:h.regions,selectedList:h.selectedAccess,accessMod:function(e){return l("set",{access:e})},grantAll:function(){return l("grant_all")},denyAll:function(){return l("clear_all")},grantDep:function(e){return l("grant_region",{region:e})},denyDep:function(e){return l("deny_region",{region:e})}}):(0,r.jsx)(d,{}):(0,r.jsx)(u,{});break;case 3:n=h.authenticated?h.records.length?(0,r.jsxs)(i.$0,{fill:!0,scrollable:!0,title:"Records",buttons:(0,r.jsx)(i.zx,{icon:"times",content:"Delete All Records",disabled:!h.authenticated||0===h.records.length||h.target_dept,onClick:function(){return l("wipe_all_logs")}}),children:[(0,r.jsxs)(i.iA,{children:[(0,r.jsxs)(i.iA.Row,{height:2,children:[(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Crewman"}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Old Rank"}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:"New Rank"}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Authorized By"}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Time"}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Reason"}),!!h.iscentcom&&(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Deleted By"})]}),h.records.map(function(e){return(0,r.jsxs)(i.iA.Row,{height:2,children:[(0,r.jsx)(i.iA.Cell,{children:e.transferee}),(0,r.jsx)(i.iA.Cell,{children:e.oldvalue}),(0,r.jsx)(i.iA.Cell,{children:e.newvalue}),(0,r.jsx)(i.iA.Cell,{children:e.whodidit}),(0,r.jsx)(i.iA.Cell,{children:e.timestamp}),(0,r.jsx)(i.iA.Cell,{children:e.reason}),!!h.iscentcom&&(0,r.jsx)(i.iA.Cell,{children:e.deletedby})]},e.timestamp)})]}),!!h.iscentcom&&(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.zx,{icon:"pencil-alt",content:"Delete MY Records",color:"purple",disabled:!h.authenticated||0===h.records.length,onClick:function(){return l("wipe_my_logs")}})})]}):(0,r.jsx)(f,{}):(0,r.jsx)(u,{});break;case 4:n=h.authenticated&&h.scan_name?(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Your Team",children:(0,r.jsxs)(i.iA,{children:[(0,r.jsxs)(i.iA.Row,{height:2,children:[(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Name"}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Rank"}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Sec Status"}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Actions"})]}),h.people_dept.map(function(e){return(0,r.jsxs)(i.iA.Row,{height:2,children:[(0,r.jsx)(i.iA.Cell,{children:e.name}),(0,r.jsx)(i.iA.Cell,{children:e.title}),(0,r.jsx)(i.iA.Cell,{children:e.crimstat}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.zx,{content:e.buttontext,disabled:!e.demotable,onClick:function(){return l("remote_demote",{remote_demote:e.name})}})})]},e.title)})]})}):(0,r.jsx)(u,{});break;default:n=(0,r.jsx)(i.$0,{title:"Warning",color:"red",children:"ERROR: Unknown Mode."})}return(0,r.jsx)(a.Rz,{width:800,height:800,children:(0,r.jsx)(a.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:x}),(0,r.jsx)(i.Kq.Item,{children:m}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:n})]})})})}},5198:function(e,n,t){"use strict";t.r(n),t.d(n,{CargoConsole:()=>f});var r=t(1557),i=t(7662),o=t(2778),l=t(3987),a=t(8531),c=t(4893),s=t(3817);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tu,ChameleonAppearances:()=>f});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t1&&void 0!==arguments[1]?arguments[1]:"",t=(0,l.mj)(n,function(e){return e.name});return e.filter(t)},f=function(e){var n,t=(0,a.nc)(),l=t.act,c=t.data,u=(n=(0,i.useState)(""),function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(n,2)||function(e,n){if(e){if("string"==typeof e)return s(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,n)}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=u[0],h=u[1],m=d(c.chameleon_skins,f),x=c.selected_appearance;return(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.II,{fluid:!0,placeholder:"Search for an appearance",onChange:function(e){return h(e)}})}),(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,title:"Item Appearance",children:m.map(function(e){var n=e.name+"_"+e.icon_state;return(0,r.jsx)(o.zA,{dmIcon:e.icon,dmIconState:e.icon_state,imageSize:64,m:.5,selected:n===x,tooltip:e.name,style:{opacity:n===x&&"1"||"0.5"},onClick:function(){l("change_appearance",{new_appearance:n})}},n)})})})]})}},2110:function(e,n,t){"use strict";t.r(n),t.d(n,{ChangelogView:()=>s});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tf});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817),c=t(3100),s=t(4799);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tu});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(8124),c=[1,5,10,20,30,50],s=[1,5,10],u=function(e){var n=(0,o.nc)(),t=(n.act,n.data).chemicals;return(0,r.jsx)(l.Rz,{width:400,height:400+24*Math.ceil(t.length/3),children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(d,{}),(0,r.jsx)(f,{}),(0,r.jsx)(h,{})]})})})},d=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.amount,s=l.energy,u=l.maxEnergy;return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Settings",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Energy",children:(0,r.jsxs)(i.ko,{value:s,minValue:0,maxValue:u,ranges:{good:[.5*u,1/0],average:[.25*u,.5*u],bad:[-1/0,.25*u]},children:[s," / ",u," Units"]})}),(0,r.jsx)(i.H2.Item,{label:"Dispense",verticalAlign:"middle",children:(0,r.jsx)(i.Kq,{children:c.map(function(e,n){return(0,r.jsx)(i.Kq.Item,{grow:!0,width:"15%",children:(0,r.jsx)(i.zx,{fluid:!0,icon:"cog",selected:a===e,content:e,onClick:function(){return t("amount",{amount:e})}})},n)})})})]})})})},f=function(e){for(var n=(0,o.nc)(),t=n.act,l=n.data,a=l.chemicals,c=void 0===a?[]:a,s=[],u=0;u<(c.length+1)%3;u++)s.push(!0);return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsxs)(i.$0,{fill:!0,scrollable:!0,title:l.glass?"Drink Dispenser":"Chemical Dispenser",children:[c.map(function(e,n){return(0,r.jsx)(i.zx,{m:.1,width:"32.5%",icon:"arrow-circle-down",overflow:"hidden",content:e.title,style:{marginLeft:"2px",textOverflow:"ellipsis"},onClick:function(){return t("dispense",{reagent:e.id})}},n)}),s.map(function(e,n){return(0,r.jsx)(i.Kq.Item,{grow:!0,basis:"25%"},n)})]})})},h=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,c=l.isBeakerLoaded,u=l.beakerCurrentVolume,d=l.beakerMaxVolume,f=l.beakerContents;return(0,r.jsx)(i.Kq.Item,{height:16,children:(0,r.jsx)(i.$0,{title:l.glass?"Glass":"Beaker",fill:!0,scrollable:!0,buttons:(0,r.jsxs)(i.xu,{children:[!!c&&(0,r.jsxs)(i.xu,{inline:!0,color:"label",mr:2,children:[u," / ",d," units"]}),(0,r.jsx)(i.zx,{icon:"eject",content:"Eject",disabled:!c,onClick:function(){return t("ejectBeaker")}})]}),children:(0,r.jsx)(a.BeakerContents,{beakerLoaded:c,beakerContents:void 0===f?[]:f,buttons:function(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){return t("remove",{reagent:e.id,amount:-1})}}),s.map(function(n,o){return(0,r.jsx)(i.zx,{content:n,onClick:function(){return t("remove",{reagent:e.id,amount:n})}},o)}),(0,r.jsx)(i.zx,{content:"ALL",onClick:function(){return t("remove",{reagent:e.id,amount:e.volume})}})]})}})})})}},3741:function(e,n,t){"use strict";t.r(n),t.d(n,{ChemHeater:()=>s});var r=t(1557),i=t(3987),o=t(8153),l=t(4893),a=t(3817),c=t(8124),s=function(e){return(0,r.jsx)(a.Rz,{width:350,height:275,children:(0,r.jsx)(a.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(u,{}),(0,r.jsx)(d,{})]})})})},u=function(e){var n=(0,l.nc)(),t=n.act,a=n.data,c=a.targetTemp,s=a.targetTempReached,u=a.autoEject,d=a.isActive,f=a.currentTemp,h=a.isBeakerLoaded;return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{fill:!0,title:"Settings",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{content:"Auto-eject",icon:u?"toggle-on":"toggle-off",selected:u,onClick:function(){return t("toggle_autoeject")}}),(0,r.jsx)(i.zx,{content:d?"On":"Off",icon:"power-off",selected:d,disabled:!h,onClick:function(){return t("toggle_on")}})]}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Target",children:(0,r.jsx)(i.Y2,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,o.NM)(c,0),minValue:0,maxValue:1e3,onChange:function(e){return t("adjust_temperature",{target:e})}})}),(0,r.jsx)(i.H2.Item,{label:"Reading",color:s?"good":"average",children:h&&(0,r.jsx)(i.zt,{value:f,format:function(e){return(0,o.FH)(e)+" K"}})||"—"})]})})})},d=function(e){var n=(0,l.nc)(),t=n.act,o=n.data,a=o.isBeakerLoaded,s=o.beakerCurrentVolume,u=o.beakerMaxVolume,d=o.beakerContents;return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{title:"Beaker",fill:!0,scrollable:!0,buttons:!!a&&(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.xu,{inline:!0,color:"label",mr:2,children:[s," / ",u," units"]}),(0,r.jsx)(i.zx,{icon:"eject",content:"Eject",onClick:function(){return t("eject_beaker")}})]}),children:(0,r.jsx)(c.BeakerContents,{beakerLoaded:a,beakerContents:d})})})}},5625:function(e,n,t){"use strict";t.r(n),t.d(n,{ChemMaster:()=>p});var r=t(1557),i=t(3987),o=t(3946),l=t(5177),a=t(4893),c=t(3817),s=t(8124),u=t(5279);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var x=[1,5,10],p=function(e){return(0,r.jsxs)(c.Rz,{width:575,height:650,children:[(0,r.jsx)(u.ComplexModal,{}),(0,r.jsx)(c.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(j,{}),(0,r.jsx)(g,{}),(0,r.jsx)(b,{}),(0,r.jsx)(C,{})]})})]})},j=function(e){var n=(0,a.nc)(),t=n.act,o=n.data,l=o.beaker,c=o.beaker_reagents,d=o.buffer_reagents.length>0;return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{title:"Beaker",fill:!0,scrollable:!0,buttons:d?(0,r.jsx)(i.zx.Confirm,{icon:"eject",disabled:!l,content:"Eject and Clear Buffer",onClick:function(){return t("eject")}}):(0,r.jsx)(i.zx,{icon:"eject",disabled:!l,content:"Eject and Clear Buffer",onClick:function(){return t("eject")}}),children:l?(0,r.jsx)(s.BeakerContents,{beakerLoaded:!0,beakerContents:c,buttons:function(e,n){return(0,r.jsxs)(i.xu,{mb:n0?(0,r.jsx)(s.BeakerContents,{beakerLoaded:!0,beakerContents:c,buttons:function(e,n){return(0,r.jsxs)(i.xu,{mb:n0&&(n=s.map(function(e){var n=e.id,i=e.sprite;return(0,r.jsx)(k,{icon:i,selected:c===n,onClick:function(){return t("set_sprite_style",{production_mode:l,style:n})}},n)})),(0,r.jsx)(w,{productionData:e.productionData,children:n&&(0,r.jsx)(i.H2.Item,{label:"Style",children:n})})},C=function(e){var n=(0,a.nc)(),t=n.act,o=n.data,l=o.loaded_pill_bottle_style,c=o.containerstyles,s=o.loaded_pill_bottle,u={width:"20px",height:"20px"},d=c.map(function(e){var n=e.color,o=e.name,a=l===n;return(0,r.jsxs)(i.zx,{style:{position:"relative",width:u.width,height:u.height},onClick:function(){return t("set_container_style",{style:n})},icon:a?"check":"",tooltip:o,tooltipPosition:"top",children:[!a&&(0,r.jsx)("div",{style:{display:"inline-block"}}),(0,r.jsx)("span",{className:"Button",style:{display:"inline-block",position:"absolute",top:0,left:0,margin:0,padding:0,width:u.width,height:u.height,backgroundColor:n,opacity:.6,filter:"alpha(opacity=60)"}})]},n)});return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{fill:!0,title:"Container Customization",buttons:(0,r.jsx)(i.zx,{icon:"eject",disabled:!s,content:"Eject Container",onClick:function(){return t("ejectp")}}),children:s?(0,r.jsx)(i.H2,{children:(0,r.jsxs)(i.H2.Item,{label:"Style",children:[(0,r.jsx)(i.zx,{style:{width:u.width,height:u.height},icon:"tint-slash",onClick:function(){return t("clear_container_style")},selected:!l,tooltip:"Default",tooltipPosition:"top"}),d]})}):(0,r.jsx)(i.xu,{color:"label",children:"No pill bottle or patch pack loaded."})})})};(0,u.modalRegisterBodyOverride)("analyze",function(e){var n=(0,a.nc)(),t=n.act,o=n.data,l=e.args.analysis;return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:o.condi?"Condiment Analysis":"Reagent Analysis",children:(0,r.jsx)(i.xu,{mx:"0.5rem",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Name",children:l.name}),(0,r.jsx)(i.H2.Item,{label:"Description",children:(l.desc||"").length>0?l.desc:"N/A"}),l.blood_type&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.H2.Item,{label:"Blood type",children:l.blood_type}),(0,r.jsx)(i.H2.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:l.blood_dna})]}),!o.condi&&(0,r.jsx)(i.zx,{icon:o.printing?"spinner":"print",disabled:o.printing,iconSpin:!!o.printing,ml:"0.5rem",content:"Print",onClick:function(){return t("print",{idx:l.idx,beaker:e.args.beaker})}})]})})})})})},6889:function(e,n,t){"use strict";t.r(n),t.d(n,{CloningConsole:()=>c});var r=t(1557),i=t(3987),o=t(1155),l=t(4893),a=t(3817),c=function(e){var n=(0,l.nc)(),t=n.act,o=n.data,c=o.tab,u=o.has_scanner,d=o.pod_amount;return(0,r.jsx)(a.Rz,{width:640,height:520,children:(0,r.jsxs)(a.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(i.$0,{title:"Cloning Console",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Connected scanner",children:u?"Online":"Missing"}),(0,r.jsx)(i.H2.Item,{label:"Connected pods",children:d})]})}),(0,r.jsxs)(i.mQ,{children:[(0,r.jsx)(i.mQ.Tab,{selected:1===c,icon:"home",onClick:function(){return t("menu",{tab:1})},children:"Main Menu"}),(0,r.jsx)(i.mQ.Tab,{selected:2===c,icon:"user",onClick:function(){return t("menu",{tab:2})},children:"Damage Configuration"})]}),(0,r.jsx)(i.$0,{children:(0,r.jsx)(s,{})})]})})},s=function(e){var n,t=(0,l.nc)().data.tab;return 1===t?n=(0,r.jsx)(u,{}):2===t&&(n=(0,r.jsx)(d,{})),n},u=function(e){var n=(0,l.nc)(),t=n.act,a=n.data,c=a.pods,s=a.pod_amount,u=a.selected_pod_UID;return(0,r.jsxs)(i.xu,{children:[!s&&(0,r.jsx)(i.xu,{color:"average",children:"Notice: No pods connected."}),!!s&&c.map(function(e,n){return(0,r.jsx)(i.$0,{layer:2,title:"Pod "+(n+1),children:(0,r.jsxs)(i.Kq,{textAlign:"center",children:[(0,r.jsxs)(i.Kq.Item,{basis:"96px",shrink:0,children:[(0,r.jsx)("img",{src:(0,o.R)("pod_"+(e.cloning?"cloning":"idle")+".gif"),style:{width:"100%",imageRendering:"pixelated"}}),(0,r.jsx)(i.zx,{selected:u===e.uid,onClick:function(){return t("select_pod",{uid:e.uid})},children:"Select"})]}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Progress",children:[!e.cloning&&(0,r.jsx)(i.xu,{color:"average",children:"Pod is inactive."}),!!e.cloning&&(0,r.jsx)(i.ko,{value:e.clone_progress,maxValue:100,color:"good"})]}),(0,r.jsx)(i.H2.Divider,{}),(0,r.jsx)(i.H2.Item,{label:"Biomass",children:(0,r.jsxs)(i.ko,{value:e.biomass,ranges:{good:[2*e.biomass_storage_capacity/3,e.biomass_storage_capacity],average:[e.biomass_storage_capacity/3,2*e.biomass_storage_capacity/3],bad:[0,e.biomass_storage_capacity/3]},minValue:0,maxValue:e.biomass_storage_capacity,children:[e.biomass,"/",e.biomass_storage_capacity+" ("+100*e.biomass/e.biomass_storage_capacity+"%)"]})}),(0,r.jsx)(i.H2.Item,{label:"Sanguine Reagent",children:e.sanguine_reagent}),(0,r.jsx)(i.H2.Item,{label:"Osseous Reagent",children:e.osseous_reagent})]})})]})},e)})]})},d=function(e){var n=(0,l.nc)(),t=n.act,o=n.data,a=o.selected_pod_data,c=o.has_scanned,s=o.scanner_has_patient,u=o.feedback,d=o.scan_successful,m=o.cloning_cost,x=o.has_scanner,p=o.currently_scanning;return(0,r.jsxs)(i.xu,{children:[!x&&(0,r.jsx)(i.xu,{color:"average",children:"Notice: No scanner connected."}),!!x&&(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.$0,{layer:2,title:"Scanner Info",buttons:(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.zx,{icon:"hourglass-half",onClick:function(){return t("scan")},disabled:!s||p,children:"Scan"}),(0,r.jsx)(i.zx,{icon:"eject",onClick:function(){return t("eject")},disabled:!s||p,children:"Eject Patient"})]}),children:[!c&&!p&&(0,r.jsx)(i.xu,{color:"average",children:s?"No scan detected for current patient.":"No patient is in the scanner."}),(!!c||!!p)&&(0,r.jsx)(i.xu,{color:u.color,children:u.text})]}),(0,r.jsx)(i.$0,{layer:2,title:"Damages Breakdown",children:(0,r.jsxs)(i.xu,{children:[(!d||!c)&&(0,r.jsx)(i.xu,{color:"average",children:"No valid scan detected."}),!!d&&!!c&&(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.Kq,{children:[(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx,{onClick:function(){return t("fix_all")},children:"Repair All Damages"}),(0,r.jsx)(i.zx,{onClick:function(){return t("fix_none")},children:"Repair No Damages"})]}),(0,r.jsx)(i.Kq.Item,{grow:1}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{onClick:function(){return t("clone")},children:"Clone"})})]}),(0,r.jsxs)(i.Kq,{height:"25px",children:[(0,r.jsx)(i.Kq.Item,{width:"40%",children:(0,r.jsxs)(i.ko,{value:m[0],maxValue:a.biomass_storage_capacity,ranges:{bad:[2*a.biomass_storage_capacity/3,a.biomass_storage_capacity],average:[a.biomass_storage_capacity/3,2*a.biomass_storage_capacity/3],good:[0,a.biomass_storage_capacity/3]},color:m[0]>a.biomass?"bad":null,children:["Biomass: ",m[0],"/",a.biomass,"/",a.biomass_storage_capacity]})}),(0,r.jsx)(i.Kq.Item,{width:"30%",children:(0,r.jsxs)(i.ko,{value:m[1],maxValue:a.max_reagent_capacity,ranges:{bad:[2*a.max_reagent_capacity/3,a.max_reagent_capacity],average:[a.max_reagent_capacity/3,2*a.max_reagent_capacity/3],good:[0,a.max_reagent_capacity/3]},color:m[1]>a.sanguine_reagent?"bad":"good",children:["Sanguine: ",m[1],"/",a.sanguine_reagent,"/",a.max_reagent_capacity]})}),(0,r.jsx)(i.Kq.Item,{width:"30%",children:(0,r.jsxs)(i.ko,{value:m[2],maxValue:a.max_reagent_capacity,ranges:{bad:[2*a.max_reagent_capacity/3,a.max_reagent_capacity],average:[a.max_reagent_capacity/3,2*a.max_reagent_capacity/3],good:[0,a.max_reagent_capacity/3]},color:m[2]>a.osseous_reagent?"bad":"good",children:["Osseous: ",m[2],"/",a.osseous_reagent,"/",a.max_reagent_capacity]})})]}),(0,r.jsx)(f,{}),(0,r.jsx)(h,{})]})]})})]})]})},f=function(e){var n=(0,l.nc)(),t=n.act,o=n.data,a=o.patient_limb_data,c=o.limb_list,s=o.desired_limb_data;return(0,r.jsx)(i.zF,{title:"Limbs",children:c.map(function(e,n){return(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.Kq,{align:"baseline",children:[(0,r.jsxs)(i.Kq.Item,{color:"label",width:"15%",height:"20px",children:[a[e][4],":"," "]}),(0,r.jsx)(i.Kq.Item,{grow:1}),0===a[e][3]&&(0,r.jsx)(i.Kq.Item,{width:"60%",children:(0,r.jsxs)(i.ko,{value:s[e][0]+s[e][1],maxValue:a[e][5],ranges:{good:[0,a[e][5]/3],average:[a[e][5]/3,2*a[e][5]/3],bad:[2*a[e][5]/3,a[e][5]]},children:["Post-Cloning Damage: ",(0,r.jsx)(i.JO,{name:"bone"})," "+s[e][0]+" / ",(0,r.jsx)(i.JO,{name:"fire"})," "+s[e][1]]})}),0!==a[e][3]&&(0,r.jsx)(i.Kq.Item,{width:"60%",children:(0,r.jsxs)(i.ko,{color:"bad",value:0,children:["The patient's ",a[e][4]," is missing!"]})})]}),(0,r.jsxs)(i.Kq,{children:[!!a[e][3]&&(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx.Checkbox,{checked:!s[e][3],onClick:function(){return t("toggle_limb_repair",{limb:e,type:"replace"})},children:"Replace Limb"})}),!a[e][3]&&(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx.Checkbox,{disabled:!(a[e][0]||a[e][1]),checked:!(s[e][0]||s[e][1]),onClick:function(){return t("toggle_limb_repair",{limb:e,type:"damage"})},children:"Repair Damages"}),(0,r.jsx)(i.zx.Checkbox,{disabled:!(1&a[e][2]),checked:!(1&s[e][2]),onClick:function(){return t("toggle_limb_repair",{limb:e,type:"bone"})},children:"Mend Bone"}),(0,r.jsx)(i.zx.Checkbox,{disabled:!(32&a[e][2]),checked:!(32&s[e][2]),onClick:function(){return t("toggle_limb_repair",{limb:e,type:"ib"})},children:"Mend IB"}),(0,r.jsx)(i.zx.Checkbox,{disabled:!(128&a[e][2]),checked:!(128&s[e][2]),onClick:function(){return t("toggle_limb_repair",{limb:e,type:"critburn"})},children:"Mend Critical Burn"})]})]})]},e)})})},h=function(e){var n=(0,l.nc)(),t=n.act,o=n.data,a=o.patient_organ_data,c=o.organ_list,s=o.desired_organ_data;return(0,r.jsx)(i.zF,{title:"Organs",children:c.map(function(e,n){return(0,r.jsx)(i.xu,{children:(0,r.jsxs)(i.Kq,{align:"baseline",children:[(0,r.jsxs)(i.Kq.Item,{color:"label",width:"20%",height:"20px",children:[a[e][3],":"," "]}),"heart"!==a[e][5]&&(0,r.jsx)(i.xu,{children:(0,r.jsxs)(i.Kq.Item,{children:[!!a[e][2]&&(0,r.jsx)(i.zx.Checkbox,{checked:!s[e][2]&&!s[e][1],onClick:function(){return t("toggle_organ_repair",{organ:e,type:"replace"})},children:"Replace Organ"}),!a[e][2]&&(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.zx.Checkbox,{disabled:!a[e][0],checked:!s[e][0],onClick:function(){return t("toggle_organ_repair",{organ:e,type:"damage"})},children:"Repair Damages"})})]})}),"heart"===a[e][5]&&(0,r.jsx)(i.xu,{color:"average",children:"Heart replacement is required for cloning."}),(0,r.jsx)(i.Kq.Item,{grow:1}),(0,r.jsxs)(i.Kq.Item,{width:"35%",children:[!!a[e][2]&&(0,r.jsxs)(i.ko,{color:"bad",value:0,children:["The patient's ",a[e][3]," is missing!"]}),!a[e][2]&&(0,r.jsx)(i.ko,{value:s[e][0],maxValue:a[e][4],ranges:{good:[0,a[e][4]/3],average:[a[e][4]/3,2*a[e][4]/3],bad:[2*a[e][4]/3,a[e][4]]},children:"Post-Cloning Damage: "+s[e][0]})]})]})},e)})})}},1102:function(e,n,t){"use strict";t.r(n),t.d(n,{CloningPod:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.biomass,s=a.biomass_storage_capacity,u=a.sanguine_reagent,d=a.osseous_reagent,f=a.organs,h=a.currently_cloning;return(0,r.jsx)(l.Rz,{width:500,height:500,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[(0,r.jsxs)(i.$0,{title:"Liquid Storage",children:[(0,r.jsxs)(i.Kq,{height:"25px",align:"center",children:[(0,r.jsxs)(i.Kq.Item,{color:"label",width:"25%",children:["Biomass:"," "]}),(0,r.jsx)(i.Kq.Item,{grow:1,children:(0,r.jsx)(i.ko,{value:c,ranges:{good:[2*s/3,s],average:[s/3,2*s/3],bad:[0,s/3]},minValue:0,maxValue:s})})]}),(0,r.jsxs)(i.Kq,{height:"25px",align:"center",children:[(0,r.jsxs)(i.Kq.Item,{color:"label",width:"25%",children:["Sanguine Reagent:"," "]}),(0,r.jsx)(i.Kq.Item,{children:u+" units"}),(0,r.jsx)(i.Kq.Item,{grow:1}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.Y2,{value:0,minValue:0,maxValue:u,step:1,unit:"units",onChange:function(e){return t("remove_reagent",{reagent:"sanguine_reagent",amount:e})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{content:"Remove All",onClick:function(){return t("purge_reagent",{reagent:"sanguine_reagent"})}})})]}),(0,r.jsxs)(i.Kq,{height:"25px",align:"center",children:[(0,r.jsxs)(i.Kq.Item,{color:"label",width:"25%",children:["Osseous Reagent:"," "]}),(0,r.jsx)(i.Kq.Item,{children:d+" units"}),(0,r.jsx)(i.Kq.Item,{grow:1}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.Y2,{value:0,minValue:0,maxValue:d,step:1,unit:"units",onChange:function(e){return t("remove_reagent",{reagent:"osseous_reagent",amount:e})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{content:"Remove All",onClick:function(){return t("purge_reagent",{reagent:"osseous_reagent"})}})})]})]}),(0,r.jsxs)(i.$0,{title:"Organ Storage",children:[!h&&(0,r.jsxs)(i.xu,{children:[!f&&(0,r.jsx)(i.xu,{color:"average",children:"Notice: No organs loaded."}),!!f&&f.map(function(e){return(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{children:e.name}),(0,r.jsx)(i.Kq.Item,{grow:1}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{content:"Eject",onClick:function(){return t("eject_organ",{organ_ref:e.ref})}})})]},e)})]}),!!h&&(0,r.jsx)(i.Kq,{height:"100%",children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"label",children:[(0,r.jsx)(i.JO,{name:"lock",size:"5",mb:3}),(0,r.jsx)("br",{}),"Unable to access organ storage while cloning."]})})]})]})})}},140:function(e,n,t){"use strict";t.r(n),t.d(n,{CoinMint:()=>c});var r=t(1557),i=t(3987),o=t(3946),l=t(4893),a=t(3817),c=function(e){var n=(0,l.nc)(),t=n.act,c=n.data,s=c.materials,u=c.moneyBag,d=c.moneyBagContent,f=c.moneyBagMaxContent,h=(u?210:138)+64*Math.ceil(s.length/4);return(0,r.jsx)(a.Rz,{width:210,height:h,children:(0,r.jsx)(a.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.f7,{m:0,info:!0,children:["Total coins produced: ",c.totalCoins]})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,title:"Coin Type",buttons:(0,r.jsx)(i.zx,{icon:"power-off",color:c.active&&"bad",tooltip:!u&&"Need a money bag",disabled:!u,onClick:function(){return t("activate")}}),children:(0,r.jsxs)(i.Kq,{vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.ko,{minValue:0,maxValue:c.maxMaterials,value:c.totalMaterials})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"eject",tooltip:"Eject selected material",onClick:function(){return t("ejectMat")}})})]})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:s.map(function(e){return(0,r.jsx)(i.zx,{bold:!0,inline:!0,m:.2,textAlign:"center",selected:e.id===c.chosenMaterial,tooltip:e.name,content:(0,r.jsxs)(i.Kq,{vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{className:(0,o.Sh)(["materials32x32",e.id])}),(0,r.jsx)(i.Kq.Item,{children:e.amount})]}),onClick:function(){return t("selectMaterial",{material:e.id})}},e.id)})})]})})}),!!u&&(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Money Bag",buttons:(0,r.jsx)(i.zx,{icon:"eject",content:"Eject",disabled:c.active,onClick:function(){return t("ejectBag")}}),children:(0,r.jsxs)(i.ko,{width:"100%",minValue:0,maxValue:f,value:d,children:[d," / ",f]})})})]})})})}},7017:function(e,n,t){"use strict";t.r(n),t.d(n,{ColorInput:()=>E,ColorPickerModal:()=>A,ColorSelector:()=>O,HexColorInput:()=>R});var r=t(1557),i=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Math.pow(10,n);return Math.round(t*e)/t},o=function(e){return h(l(e))},l=function(e){return("#"===e[0]&&(e=e.substring(1)),e.length<6)?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?i(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?i(parseInt(e.substring(6,8),16)/255,2):1}},a=function(e){return f(u(e))},c=function(e){var n=e.h,t=e.s,r=e.v,o=e.a,l=(200-t)*r/100;return{h:i(n),s:i(l>0&&l<200?t*r/100/(l<=100?l:200-l)*100:0),l:i(l/2),a:i(o,2)}},s=function(e){var n=c(e),t=n.h,r=n.s,i=n.l;return"hsl(".concat(t,", ").concat(r,"%, ").concat(i,"%)")},u=function(e){var n=e.h,t=e.s,r=e.v,o=e.a,l=Math.floor(n=n/360*6),a=(r/=100)*(1-(t/=100)),c=r*(1-(n-l)*t),s=r*(1-(1-n+l)*t),u=l%6;return{r:255*[r,c,a,a,s,r][u],g:255*[s,r,r,c,a,a][u],b:255*[a,a,s,r,r,c][u],a:i(o,2)}},d=function(e){var n=e.toString(16);return n.length<2?"0"+n:n},f=function(e){var n=e.r,t=e.g,r=e.b,o=e.a,l=o<1?d(i(255*o)):"";return"#"+d(i(n))+d(i(t))+d(i(r))+l},h=function(e){var n=e.r,t=e.g,r=e.b,i=e.a,o=Math.max(n,t,r),l=o-Math.min(n,t,r),a=l?o===n?(t-r)/l:o===t?2+(r-n)/l:4+(n-t)/l:0;return{h:60*(a<0?a+6:a),s:o?l/o*100:0,v:o/255*100,a:i}},m=/^#?([0-9A-F]{3,8})$/i,x=function(e,n){var t=m.exec(e),r=t?t[1].length:0;return 3===r||6===r||!!n&&4===r||!!n&&8===r},p=t(2778),j=t(3987),g=t(8153),b=t(3946),y=t(4893),v=t(6783),w=t(2926),k=t(3817),_=t(3100),C=t(4799);function S(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["prefixed","alpha","color","fluid","onChange"]);return(0,r.jsx)(E,(n=function(e){for(var n=1;na});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data.colour_data;return(0,r.jsx)(l.Rz,{width:360,height:190,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(i.$0,{fill:!0,title:"Modify Matrix",children:[[{name:"RR",idx:0},{name:"RG",idx:1},{name:"RB",idx:2},{name:"RA",idx:3}],[{name:"GR",idx:4},{name:"GG",idx:5},{name:"GB",idx:6},{name:"GA",idx:7}],[{name:"BR",idx:8},{name:"BG",idx:9},{name:"BB",idx:10},{name:"BA",idx:11}],[{name:"AR",idx:12},{name:"AG",idx:13},{name:"AB",idx:14},{name:"AA",idx:15}]].map(function(e){return(0,r.jsx)(i.Kq,{textAlign:"center",textColor:"label",children:e.map(function(e){return(0,r.jsxs)(i.Kq.Item,{grow:!0,mt:1,children:[e.name,":\xa0",(0,r.jsx)(i.Y2,{width:4,value:a[e.idx],step:.05,minValue:-5,maxValue:5,stepPixelSize:5,onChange:function(n){return t("setvalue",{idx:e.idx+1,value:n})}})]},e.name)})},e)})})})})})}},9171:function(e,n,t){"use strict";t.r(n),t.d(n,{CommunicationsComputer:()=>d});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0&&(p+=" ("+a+"s)");var j=c?"Message [UNKNOWN]":"Message CentComm",b="Request Authentication Codes";return s>0&&(j+=" ("+s+"s)",b+=" ("+s+"s)"),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.$0,{fill:!0,title:"Captain-Only Actions",children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Current Alert",color:u,children:d}),(0,r.jsx)(o.H2.Item,{label:"Change Alert",children:(0,r.jsx)(g,{levels:f,required_access:h})}),(0,r.jsx)(o.H2.Item,{label:"Announcement",children:(0,r.jsx)(o.zx,{icon:"bullhorn",content:p,disabled:!h||a>0,onClick:function(){return t("announce")}})}),!!c&&(0,r.jsxs)(o.H2.Item,{label:"Transmit",children:[(0,r.jsx)(o.zx,{icon:"broadcast-tower",color:"red",content:j,disabled:!h||s>0,onClick:function(){return t("MessageSyndicate")}}),(0,r.jsx)(o.zx,{icon:"sync-alt",content:"Reset Relays",disabled:!h,onClick:function(){return t("RestoreBackup")}})]})||(0,r.jsx)(o.H2.Item,{label:"Transmit",children:(0,r.jsx)(o.zx,{icon:"broadcast-tower",content:j,disabled:!h||s>0,onClick:function(){return t("MessageCentcomm")}})}),(0,r.jsx)(o.H2.Item,{label:"Nuclear Device",children:(0,r.jsx)(o.zx,{icon:"bomb",content:b,disabled:!h||s>0,onClick:function(){return t("nukerequest")}})})]})})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.$0,{fill:!0,title:"Command Staff Actions",children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Displays",children:(0,r.jsx)(o.zx,{icon:"tv",content:"Change Status Displays",disabled:!m,onClick:function(){return t("status")}})}),(0,r.jsx)(o.H2.Item,{label:"Incoming Messages",children:(0,r.jsx)(o.zx,{icon:"folder-open",content:"View ("+x.length+")",disabled:!m,onClick:function(){return t("messagelist")}})})]})})})]})},p=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=i.stat_display,c=i.authhead;i.current_message_title;var s=a.presets.map(function(e){return(0,r.jsx)(o.zx,{content:e.label,selected:e.name===a.type,disabled:!c,onClick:function(){return t("setstat",{statdisp:e.name})}},e.name)}),u=a.alerts.map(function(e){return(0,r.jsx)(o.zx,{content:e.label,selected:e.alert===a.icon,disabled:!c,onClick:function(){return t("setstat",{statdisp:3,alert:e.alert})}},e.alert)});return(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.$0,{fill:!0,title:"Modify Status Screens",buttons:(0,r.jsx)(o.zx,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){return t("main")}}),children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Presets",children:s}),(0,r.jsx)(o.H2.Item,{label:"Alerts",children:u}),(0,r.jsx)(o.H2.Item,{label:"Message Line 1",children:(0,r.jsx)(o.zx,{icon:"pencil-alt",content:a.line_1,disabled:!c,onClick:function(){return t("setmsg1")}})}),(0,r.jsx)(o.H2.Item,{label:"Message Line 2",children:(0,r.jsx)(o.zx,{icon:"pencil-alt",content:a.line_2,disabled:!c,onClick:function(){return t("setmsg2")}})})]})})})},j=function(e){var n,t=(0,l.nc)(),i=t.act,a=t.data,c=a.authhead,s=a.current_message_title,u=a.current_message,d=a.messages;if(a.security_level,s)n=(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.$0,{title:s,buttons:(0,r.jsx)(o.zx,{icon:"times",content:"Return To Message List",disabled:!c,onClick:function(){return i("messagelist")}}),children:(0,r.jsx)(o.xu,{children:u})})});else{var f=d.map(function(e){return(0,r.jsxs)(o.H2.Item,{label:e.title,children:[(0,r.jsx)(o.zx,{icon:"eye",content:"View",disabled:!c||s===e.title,onClick:function(){return i("messagelist",{msgid:e.id})}}),(0,r.jsx)(o.zx.Confirm,{icon:"times",content:"Delete",disabled:!c,onClick:function(){return i("delmessage",{msgid:e.id})}})]},e.id)});n=(0,r.jsx)(o.$0,{title:"Messages Received",buttons:(0,r.jsx)(o.zx,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){return i("main")}}),children:(0,r.jsx)(o.H2,{children:f})})}return(0,r.jsx)(o.xu,{children:n})},g=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=e.levels,c=e.required_access,s=e.use_confirm,u=i.security_level;return s?a.map(function(e){return(0,r.jsx)(o.zx.Confirm,{icon:e.icon,content:e.name,disabled:!c||e.id===u,tooltip:e.tooltip,onClick:function(){return t("newalertlevel",{level:e.id})}},e.name)}):a.map(function(e){return(0,r.jsx)(o.zx,{icon:e.icon,content:e.name,disabled:!c||e.id===u,tooltip:e.tooltip,onClick:function(){return t("newalertlevel",{level:e.id})}},e.name)})},b=function(e){var n=(0,l.nc)(),t=n.act,a=n.data,c=a.is_admin,u=a.possible_cc_sounds;if(!c)return t("main");var d=s((0,i.useState)(""),2),f=d[0],h=d[1],m=s((0,i.useState)(""),2),x=m[0],p=m[1],j=s((0,i.useState)(0),2),g=j[0],b=j[1],y=s((0,i.useState)("Beep"),2),v=y[0],w=y[1];return(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.$0,{fill:!0,title:"Central Command Report",buttons:(0,r.jsx)(o.zx,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){return t("main")}}),children:(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(o.II,{fluid:!0,placeholder:"Enter Subtitle here.",value:f,onChange:function(e){return h(e)}}),(0,r.jsx)(o.Kx,{fluid:!0,height:"100%",rows:10,placeholder:"Enter Announcement here. Multiline input is accepted.",value:x,onChange:p}),(0,r.jsx)(o.zx.Confirm,{fluid:!0,icon:"paper-plane",textAlign:"center",onClick:function(){t("make_cc_announcement",{subtitle:f,text:x,classified:g,beepsound:v}),p(""),h("")},children:"Send Announcement"}),(0,r.jsxs)(o.Kq,{align:"center",children:[(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.Lt,{options:u,selected:v,onSelected:function(e){return w(e)},disabled:g})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{icon:"volume-up",disabled:g,tooltip:"Test sound",onClick:function(){return t("test_sound",{sound:v})}})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx.Checkbox,{fluid:!0,checked:g,tooltip:g?"Sent to station communications consoles":"Publically announced",onClick:function(){return b(!g)},children:"Classified"})})]})]})})})}},5544:function(e,n,t){"use strict";t.r(n),t.d(n,{CompostBin:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817);function a(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tg});var r=t(1557),i=t(2778),o=t(3987),l=t(8153),a=t(4893),c=t(6783),s=t(3817);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0,x=e.setViewingPhoto,j=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["setViewingPhoto"]);return(0,r.jsx)(o.$0,h(f({title:"Available Contracts",overflow:"auto",buttons:(0,r.jsxs)(o.zx,{disabled:!u||m,icon:"parachute-box",onClick:function(){return t("extract")},children:["Call Extraction"," ",m&&(0,r.jsx)(c.IT,{timeEnd:d.time_left,format:function(e,n){return n.substr(3)}})]})},j),{children:l.slice().sort(function(e,n){return 1===e.status?-1:1===n.status?1:e.status-n.status}).map(function(e){var n;return(0,r.jsx)(o.$0,{title:(0,r.jsxs)(o.kC,{children:[(0,r.jsx)(o.kC.Item,{grow:"1",color:1===e.status&&"good",children:e.target_name}),(0,r.jsx)(o.kC.Item,{basis:"content",children:e.has_photo&&(0,r.jsx)(o.zx,{icon:"camera",mb:"-0.5rem",ml:"0.5rem",onClick:function(){return x("target_photo_"+e.uid+".png")}})})]}),className:"Contractor__Contract",buttons:(0,r.jsxs)(o.xu,{width:"100%",children:[!!p[e.status]&&(0,r.jsx)(o.xu,{color:p[e.status][1],inline:!0,mt:1!==e.status&&"0.125rem",mr:"0.25rem",lineHeight:"20px",children:p[e.status][0]}),1===e.status&&(0,r.jsx)(o.zx.Confirm,{icon:"ban",color:"bad",content:"Abort",ml:"0.5rem",onClick:function(){return t("abort")}})]}),children:(0,r.jsxs)(o.kC,{children:[(0,r.jsxs)(o.kC.Item,{grow:"2",mr:"0.5rem",children:[e.fluff_message,!!e.completed_time&&(0,r.jsxs)(o.xu,{color:"good",children:[(0,r.jsx)("br",{}),(0,r.jsx)(o.JO,{name:"check",mr:"0.5rem"}),"Contract completed at ",e.completed_time]}),!!e.dead_extraction&&(0,r.jsxs)(o.xu,{color:"bad",mt:"0.5rem",bold:!0,children:[(0,r.jsx)(o.JO,{name:"exclamation-triangle",mr:"0.5rem"}),"Telecrystals reward reduced drastically as the target was dead during extraction."]}),!!e.fail_reason&&(0,r.jsxs)(o.xu,{color:"bad",children:[(0,r.jsx)("br",{}),(0,r.jsx)(o.JO,{name:"times",mr:"0.5rem"}),"Contract failed: ",e.fail_reason]})]}),(0,r.jsxs)(o.kC.Item,{flexBasis:"100%",children:[(0,r.jsxs)(o.kC,{mb:"0.5rem",color:"label",children:["Extraction Zone:\xa0",w(e)]}),null==(n=e.difficulties)?void 0:n.map(function(n,i){return(0,r.jsx)(o.zx.Confirm,{disabled:!!s,content:n.name+" ("+n.reward+" TC)",onClick:function(){return t("activate",{uid:e.uid,difficulty:i+1})}},i)}),!!e.objective&&(0,r.jsxs)(o.xu,{color:"white",bold:!0,children:[e.objective.extraction_name,(0,r.jsx)("br",{}),"(",(e.objective.rewards.tc||0)+" TC",",\xa0",(e.objective.rewards.credits||0)+" Credits",")"]})]})]})},e.uid)})}))},w=function(e){if(e.objective&&!(e.status>1)){var n=e.objective.locs.user_area_id,t=e.objective.locs.user_coords,i=e.objective.locs.target_area_id,a=e.objective.locs.target_coords,c=n===i;return(0,r.jsx)(o.kC.Item,{children:(0,r.jsx)(o.JO,{name:c?"dot-circle-o":"arrow-alt-circle-right-o",color:c?"green":"yellow",rotation:c?null:-(0,l.BV)(Math.atan2(a[1]-t[1],a[0]-t[0])),lineHeight:c?null:"0.85",size:"1.5"})})}},k=function(e){var n=(0,a.nc)(),t=n.act,i=n.data,l=i.rep,c=i.buyables;return(0,r.jsx)(o.$0,h(f({title:"Available Purchases",overflow:"auto"},e),{children:c.map(function(e){return(0,r.jsxs)(o.$0,{title:e.name,children:[e.description,(0,r.jsx)("br",{}),(0,r.jsx)(o.zx.Confirm,{disabled:l-1&&(0,r.jsxs)(o.xu,{as:"span",color:0===e.stock?"bad":"good",ml:"0.5rem",children:[e.stock," in stock"]})]},e.uid)})}))},_=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function t(e){var n,r,i;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");return r=t,i=[e],r=d(r),(n=function(e,n){var t;if(n&&("object"==((t=n)&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)||"function"==typeof n))return n;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,x()?Reflect.construct(r,i||[],d(this).constructor):r.apply(this,i))).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&m(t,e),n=[{key:"tick",value:function(){var e=this.props,n=this.state;n.currentIndex<=e.allMessages.length?(this.setState(function(e){return{currentIndex:e.currentIndex+1}}),n.currentDisplay.push(e.allMessages[n.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))}},{key:"componentDidMount",value:function(){var e=this,n=this.props.linesPerSecond;this.timer=setInterval(function(){return e.tick()},1e3/(void 0===n?2.5:n))}},{key:"componentWillUnmount",value:function(){clearTimeout(this.timer)}},{key:"render",value:function(){return(0,r.jsx)(o.xu,{m:1,children:this.state.currentDisplay.map(function(e){return(0,r.jsxs)(i.Fragment,{children:[e,(0,r.jsx)("br",{})]},e)})})}}],function(e,n){for(var t=0;ta});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.slowFactor,s=a.oneWay,u=a.position;return(0,r.jsx)(l.Rz,{width:350,height:135,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Lever position",children:u>0?"forward":u<0?"reverse":"neutral"}),(0,r.jsx)(i.H2.Item,{label:"Allow reverse",children:(0,r.jsx)(i.zx.Checkbox,{checked:!s,onClick:function(){return t("toggleOneWay")}})}),(0,r.jsx)(i.H2.Item,{label:"Slowdown factor",children:(0,r.jsxs)(i.kC,{children:[(0,r.jsxs)(i.kC.Item,{mx:"1px",children:[" ",(0,r.jsx)(i.zx,{icon:"angle-double-left",onClick:function(){return t("slowFactor",{value:c-5})}})," "]}),(0,r.jsxs)(i.kC.Item,{mx:"1px",children:[" ",(0,r.jsx)(i.zx,{icon:"angle-left",onClick:function(){return t("slowFactor",{value:c-1})}})," "]}),(0,r.jsx)(i.kC.Item,{children:(0,r.jsx)(i.iR,{width:"100px",mx:"1px",value:c,fillValue:c,minValue:1,maxValue:50,step:1,format:function(e){return e+"x"},onChange:function(e,n){return t("slowFactor",{value:n})}})}),(0,r.jsxs)(i.kC.Item,{mx:"1px",children:[" ",(0,r.jsx)(i.zx,{icon:"angle-right",onClick:function(){return t("slowFactor",{value:c+1})}})," "]}),(0,r.jsxs)(i.kC.Item,{mx:"1px",children:[" ",(0,r.jsx)(i.zx,{icon:"angle-double-right",onClick:function(){return t("slowFactor",{value:c+5})}})," "]})]})})]})})})})}},2498:function(e,n,t){"use strict";t.r(n),t.d(n,{CrewMonitor:()=>x});var r=t(1557),i=t(7662),o=t(2778),l=t(3987),a=t(8531),c=t(4893),s=t(6783),u=t(9242),d=t(3817);function f(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=2||s.ignoreSensors?(0,r.jsxs)(l.xu,{inline:!0,ml:1,children:["(",(0,r.jsx)(l.xu,{inline:!0,color:u.DM.damageType.oxy,children:e.oxy}),"|",(0,r.jsx)(l.xu,{inline:!0,color:u.DM.damageType.toxin,children:e.tox}),"|",(0,r.jsx)(l.xu,{inline:!0,color:u.DM.damageType.burn,children:e.fire}),"|",(0,r.jsx)(l.xu,{inline:!0,color:u.DM.damageType.brute,children:e.brute}),")"]}):null]}),(0,r.jsx)(l.iA.Cell,{children:3===e.sensor_type||s.ignoreSensors?s.isAI||s.isObserver?(0,r.jsx)(l.zx,{fluid:!0,icon:"location-arrow",content:e.area+" ("+e.x+", "+e.y+")",onClick:function(){return t("track",{track:e.ref})}}):e.area+" ("+e.x+", "+e.y+")":(0,r.jsx)(l.xu,{inline:!0,color:"grey",children:"Not Available"})})]},n)})]})]})},j=function(e){var n,t,i=e.color,o=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["color"]);return(0,r.jsx)(s.gf.Marker,(n=function(e){for(var n=1;ns});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],c=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],s=function(e){return(0,r.jsx)(l.Rz,{width:520,height:500,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(u,{})})})})},u=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,s=l.isOperating,u=l.hasOccupant,f=l.occupant,h=void 0===f?[]:f,m=l.cellTemperature,x=l.cellTemperatureStatus,p=l.isBeakerLoaded,j=l.cooldownProgress,g=l.auto_eject_healthy,b=l.auto_eject_dead;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{title:"Occupant",fill:!0,scrollable:!0,buttons:(0,r.jsx)(i.zx,{icon:"user-slash",onClick:function(){return t("ejectOccupant")},disabled:!u,children:"Eject"}),children:u?(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Occupant",children:h.name||"Unknown"}),(0,r.jsx)(i.H2.Item,{label:"Health",children:(0,r.jsx)(i.ko,{min:h.health,max:h.maxHealth,value:h.health/h.maxHealth,color:h.health>0?"good":"average",children:(0,r.jsx)(i.zt,{value:Math.round(h.health)})})}),(0,r.jsx)(i.H2.Item,{label:"Status",color:c[h.stat][0],children:c[h.stat][1]}),(0,r.jsxs)(i.H2.Item,{label:"Temperature",children:[(0,r.jsx)(i.zt,{value:Math.round(h.bodyTemperature)})," K"]}),(0,r.jsx)(i.H2.Divider,{}),a.map(function(e){return(0,r.jsx)(i.H2.Item,{label:e.label,children:(0,r.jsx)(i.ko,{value:h[e.type]/100,ranges:{bad:[.01,1/0]},children:(0,r.jsx)(i.zt,{value:Math.round(h[e.type])})})},e.id)})]}):(0,r.jsx)(i.Kq,{fill:!0,textAlign:"center",children:(0,r.jsxs)(i.Kq.Item,{grow:!0,align:"center",color:"label",children:[(0,r.jsx)(i.JO,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.jsx)("br",{}),"No occupant detected."]})})})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Cell",buttons:(0,r.jsx)(i.zx,{icon:"eject",onClick:function(){return t("ejectBeaker")},disabled:!p,children:"Eject Beaker"}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Power",children:(0,r.jsx)(i.zx,{icon:"power-off",onClick:function(){return t(s?"switchOff":"switchOn")},selected:s,children:s?"On":"Off"})}),(0,r.jsxs)(i.H2.Item,{label:"Temperature",color:x,children:[(0,r.jsx)(i.zt,{value:m})," K"]}),(0,r.jsx)(i.H2.Item,{label:"Beaker",children:(0,r.jsx)(d,{})}),(0,r.jsx)(i.H2.Item,{label:"Dosage interval",children:(0,r.jsx)(i.ko,{ranges:{average:[-1/0,99],good:[99,1/0]},color:!p&&"average",value:j,minValue:0,maxValue:100})}),(0,r.jsx)(i.H2.Divider,{}),(0,r.jsx)(i.H2.Item,{label:"Auto-eject healthy occupants",children:(0,r.jsx)(i.zx,{icon:g?"toggle-on":"toggle-off",selected:g,onClick:function(){return t(g?"auto_eject_healthy_off":"auto_eject_healthy_on")},children:g?"On":"Off"})}),(0,r.jsx)(i.H2.Item,{label:"Auto-eject dead occupants",children:(0,r.jsx)(i.zx,{icon:b?"toggle-on":"toggle-off",selected:b,onClick:function(){return t(b?"auto_eject_dead_off":"auto_eject_dead_on")},children:b?"On":"Off"})})]})})})]})},d=function(e){var n=(0,o.nc)(),t=(n.act,n.data),l=t.isBeakerLoaded,a=t.beakerLabel,c=t.beakerVolume;return l?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.xu,{inline:!0,color:!a&&"average",children:[a||"No label",":"]}),(0,r.jsx)(i.xu,{inline:!0,color:!c&&"bad",ml:1,children:c?(0,r.jsx)(i.zt,{value:c,format:function(e){return Math.round(e)+" units remaining"}}):"Beaker is empty"})]}):(0,r.jsx)(i.xu,{inline:!0,color:"bad",children:"No beaker loaded"})}},7828:function(e,n,t){"use strict";t.r(n),t.d(n,{CryopodConsole:()=>c});var r=t(1557),i=t(3987),o=t(8531),l=t(4893),a=t(3817),c=function(e){var n=(0,l.nc)().data,t=n.account_name,o=n.allow_items;return(0,r.jsx)(a.Rz,{title:"Cryopod Console",width:400,height:480,children:(0,r.jsxs)(a.Rz.Content,{children:[(0,r.jsx)(i.$0,{title:"Hello, ".concat(t||"[REDACTED]","!"),children:"This automated cryogenic freezing unit will safely store your corporeal form until your next assignment."}),(0,r.jsx)(s,{}),!!o&&(0,r.jsx)(u,{})]})})},s=function(e){var n=(0,l.nc)().data.frozen_crew;return(0,r.jsx)(i.zF,{title:"Stored Crew",children:n.length?(0,r.jsx)(i.$0,{children:(0,r.jsx)(i.H2,{children:n.map(function(e,n){return(0,r.jsx)(i.H2.Item,{label:e.name,children:e.rank},n)})})}):(0,r.jsx)(i.f7,{children:"No stored crew!"})})},u=function(e){var n=(0,l.nc)(),t=n.act,a=n.data.frozen_items,c=function(e){var n=e.toString();return n.startsWith("the ")&&(n=n.slice(4,n.length)),(0,o.LF)(n)};return(0,r.jsx)(i.zF,{title:"Stored Items",children:a.length?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.$0,{children:(0,r.jsx)(i.H2,{children:a.map(function(e){return(0,r.jsx)(i.H2.Item,{label:c(e.name),buttons:(0,r.jsx)(i.zx,{icon:"arrow-down",content:"Drop",mr:1,onClick:function(){return t("one_item",{item:e.uid})}})},e)})})}),(0,r.jsx)(i.zx,{content:"Drop All Items",color:"red",onClick:function(){return t("all_items")}})]}):(0,r.jsx)(i.f7,{children:"No stored items!"})})}},6525:function(e,n,t){"use strict";t.r(n),t.d(n,{DNAModifier:()=>d});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(5279),c=[["good","Alive"],["average","Critical"],["bad","DEAD"]],s=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],u=[5,10,20,30,50],d=function(){var e,n=(0,o.nc)(),t=(n.act,n.data),c=t.irradiating,s=t.dnaBlockSize,u=t.occupant,d=!u.isViableSubject||!u.uniqueIdentity||!u.structuralEnzymes;return c&&(e=(0,r.jsx)(v,{duration:c})),(0,r.jsxs)(l.Rz,{width:660,height:800,children:[(0,r.jsx)(a.ComplexModal,{}),e,(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(f,{isDNAInvalid:d})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(h,{dnaBlockSize:s,isDNAInvalid:d})})]})})]})},f=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.locked,s=l.hasOccupant,u=l.occupant,d=e.isDNAInvalid;return(0,r.jsx)(i.$0,{title:"Occupant",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.xu,{color:"label",inline:!0,mr:"0.5rem",children:"Door Lock:"}),(0,r.jsx)(i.zx,{disabled:!s,selected:a,icon:a?"toggle-on":"toggle-off",content:a?"Engaged":"Disengaged",onClick:function(){return t("toggleLock")}}),(0,r.jsx)(i.zx,{disabled:!s||a,icon:"user-slash",content:"Eject",onClick:function(){return t("ejectOccupant")}})]}),children:s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.xu,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Name",children:u.name}),(0,r.jsx)(i.H2.Item,{label:"Health",children:(0,r.jsx)(i.ko,{minValue:u.minHealth,maxValue:u.maxHealth,value:u.health/u.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,r.jsx)(i.H2.Item,{label:"Status",color:c[u.stat][0],children:c[u.stat][1]}),(0,r.jsx)(i.H2.Divider,{})]})}),d?(0,r.jsxs)(i.xu,{color:"bad",children:[(0,r.jsx)(i.JO,{name:"exclamation-circle"}),"\xa0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Radiation",children:(0,r.jsx)(i.ko,{minValue:0,maxValue:100,value:u.radiationLevel/100,color:"average"})}),(0,r.jsx)(i.H2.Item,{label:"Unique Enzymes",children:l.occupant.uniqueEnzymes?l.occupant.uniqueEnzymes:(0,r.jsxs)(i.xu,{color:"bad",children:[(0,r.jsx)(i.JO,{name:"exclamation-circle"}),"\xa0 Unknown"]})})]})]}):(0,r.jsx)(i.xu,{color:"label",children:"Cell unoccupied."})})},h=function(e){var n,t=(0,o.nc)(),l=t.act,a=t.data,c=a.selectedMenuKey,u=a.hasOccupant,d=e.dnaBlockSize,f=e.isDNAInvalid;return u?f?(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,r.jsx)(i.JO,{name:"user-slash",mb:"0.5rem",size:5}),(0,r.jsx)("br",{}),"No operation possible on this subject."]})})}):("ui"===c?n=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(m,{dnaBlockSize:d}),(0,r.jsx)(p,{})]}):"se"===c?n=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x,{dnaBlockSize:d}),(0,r.jsx)(p,{})]}):"buffer"===c?n=(0,r.jsx)(j,{}):"rejuvenators"===c&&(n=(0,r.jsx)(y,{})),(0,r.jsxs)(i.$0,{fill:!0,children:[(0,r.jsx)(i.mQ,{children:s.map(function(e,n){return(0,r.jsx)(i.mQ.Tab,{icon:e[2],selected:c===e[0],onClick:function(){return l("selectMenuKey",{key:e[0]})},children:e[1]},n)})}),n]})):(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,r.jsx)(i.JO,{name:"user-slash",mb:"0.5rem",size:5}),(0,r.jsx)("br",{}),"No occupant in DNA modifier."]})})})},m=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.selectedUIBlock,c=l.selectedUISubBlock,s=l.selectedUITarget,u=l.occupant,d=e.dnaBlockSize;return(0,r.jsx)(i.$0,{title:"Modify Unique Identifier",children:(0,r.jsxs)(i.Kq,{vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{children:(0,r.jsx)(w,{dnaString:u.uniqueIdentity,selectedBlock:a,selectedSubblock:c,blockSize:d,action:"selectUIBlock"})})}),(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Target",children:(0,r.jsx)(i.lH,{minValue:1,maxValue:15,stepPixelSize:20,value:s,format:function(e){return e.toString(16).toUpperCase()},ml:"0",onChange:function(e,n){return t("changeUITarget",{value:n})}})})}),(0,r.jsx)(i.zx,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){return t("pulseUIRadiation")}})]})]})})},x=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.selectedSEBlock,c=l.selectedSESubBlock,s=l.occupant,u=e.dnaBlockSize;return(0,r.jsx)(i.$0,{title:"Modify Structural Enzymes",children:(0,r.jsxs)(i.Kq,{vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{children:(0,r.jsx)(w,{dnaString:s.structuralEnzymes,selectedBlock:a,selectedSubblock:c,blockSize:u,action:"selectSEBlock"})})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"radiation",content:"Irradiate Block",onClick:function(){return t("pulseSERadiation")}})})]})})},p=function(){var e=(0,o.nc)(),n=e.act,t=e.data,l=t.radiationIntensity,a=t.radiationDuration;return(0,r.jsxs)(i.$0,{title:"Radiation Emitter",children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Intensity",children:(0,r.jsx)(i.lH,{minValue:1,maxValue:10,stepPixelSize:20,value:l,popupPosition:"right",ml:"0",onChange:function(e,t){return n("radiationIntensity",{value:t})}})}),(0,r.jsx)(i.H2.Item,{label:"Duration",children:(0,r.jsx)(i.lH,{minValue:1,maxValue:20,stepPixelSize:10,unit:"s",value:a,popupPosition:"right",ml:"0",onChange:function(e,t){return n("radiationDuration",{value:t})}})})]}),(0,r.jsx)(i.zx,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-start",mt:"0.5rem",onClick:function(){return n("pulseRadiation")}})]})},j=function(){var e=(0,o.nc)().data.buffers.map(function(e,n){return(0,r.jsx)(g,{id:n+1,name:"Buffer "+(n+1),buffer:e},n)});return(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{height:"75%",mt:1,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Buffers",children:e})}),(0,r.jsx)(i.Kq.Item,{height:"25%",children:(0,r.jsx)(b,{})})]})},g=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=e.id,c=e.name,s=e.buffer,u=l.isInjectorReady,d=c+(s.data?" - "+s.label:"");return(0,r.jsx)(i.xu,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,r.jsxs)(i.$0,{title:d,mx:"0",lineHeight:"18px",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx.Confirm,{disabled:!s.data,icon:"trash",content:"Clear",onClick:function(){return t("bufferOption",{option:"clear",id:a})}}),(0,r.jsx)(i.zx,{disabled:!s.data,icon:"pen",content:"Rename",onClick:function(){return t("bufferOption",{option:"changeLabel",id:a})}}),(0,r.jsx)(i.zx,{disabled:!s.data||!l.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-start",onClick:function(){return t("bufferOption",{option:"saveDisk",id:a})}})]}),children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Write",children:[(0,r.jsx)(i.zx,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){return t("bufferOption",{option:"saveUI",id:a})}}),(0,r.jsx)(i.zx,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){return t("bufferOption",{option:"saveUIAndUE",id:a})}}),(0,r.jsx)(i.zx,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){return t("bufferOption",{option:"saveSE",id:a})}}),(0,r.jsx)(i.zx,{disabled:!l.hasDisk||!l.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){return t("bufferOption",{option:"loadDisk",id:a})}})]}),!!s.data&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.H2.Item,{label:"Subject",children:s.owner||(0,r.jsx)(i.xu,{color:"average",children:"Unknown"})}),(0,r.jsxs)(i.H2.Item,{label:"Data Type",children:["ui"===s.type?"Unique Identifiers":"Structural Enzymes",!!s.ue&&" and Unique Enzymes"]}),(0,r.jsxs)(i.H2.Item,{label:"Transfer to",children:[(0,r.jsx)(i.zx,{disabled:!u,icon:u?"syringe":"spinner",iconSpin:!u,content:"Injector",mb:"0",onClick:function(){return t("bufferOption",{option:"createInjector",id:a})}}),(0,r.jsx)(i.zx,{disabled:!u,icon:u?"syringe":"spinner",iconSpin:!u,content:"Block Injector",mb:"0",onClick:function(){return t("bufferOption",{option:"createInjector",id:a,block:1})}}),(0,r.jsx)(i.zx,{icon:"user",content:"Subject",mb:"0",onClick:function(){return t("bufferOption",{option:"transfer",id:a})}})]})]})]}),!s.data&&(0,r.jsx)(i.xu,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},b=function(){var e=(0,o.nc)(),n=e.act,t=e.data,l=t.hasDisk,a=t.disk;return(0,r.jsx)(i.$0,{title:"Data Disk",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx.Confirm,{disabled:!l||!a.data,icon:"trash",content:"Wipe",onClick:function(){return n("wipeDisk")}}),(0,r.jsx)(i.zx,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return n("ejectDisk")}})]}),children:l?a.data?(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Label",children:a.label?a.label:"No label"}),(0,r.jsx)(i.H2.Item,{label:"Subject",children:a.owner?a.owner:(0,r.jsx)(i.xu,{color:"average",children:"Unknown"})}),(0,r.jsxs)(i.H2.Item,{label:"Data Type",children:["ui"===a.type?"Unique Identifiers":"Structural Enzymes",!!a.ue&&" and Unique Enzymes"]})]}):(0,r.jsx)(i.xu,{color:"label",children:"Disk is blank."}):(0,r.jsxs)(i.xu,{color:"label",textAlign:"center",my:"1rem",children:[(0,r.jsx)(i.JO,{name:"save-o",size:4}),(0,r.jsx)("br",{}),"No disk inserted."]})})},y=function(){var e=(0,o.nc)(),n=e.act,t=e.data,l=t.isBeakerLoaded,a=t.beakerVolume,c=t.beakerLabel;return(0,r.jsx)(i.$0,{fill:!0,title:"Rejuvenators and Beaker",buttons:(0,r.jsx)(i.zx,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return n("ejectBeaker")}}),children:l?(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Inject",children:[u.map(function(e,t){return(0,r.jsx)(i.zx,{disabled:e>a,icon:"syringe",content:e,onClick:function(){return n("injectRejuvenators",{amount:e})}},t)}),(0,r.jsx)(i.zx,{disabled:a<=0,icon:"syringe",content:"All",onClick:function(){return n("injectRejuvenators",{amount:a})}})]}),(0,r.jsxs)(i.H2.Item,{label:"Beaker",children:[(0,r.jsx)(i.xu,{mb:"0.5rem",children:c||"No label"}),a?(0,r.jsxs)(i.xu,{color:"good",children:[a," unit",1===a?"":"s"," remaining"]}):(0,r.jsx)(i.xu,{color:"bad",children:"Empty"})]})]}):(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,align:"center",justify:"center",children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.JO.Stack,{children:[(0,r.jsx)(i.JO,{name:"flask",size:5,color:"silver"}),(0,r.jsx)(i.JO,{name:"slash",size:5,color:"red"})]})}),(0,r.jsx)(i.Kq.Item,{bold:!0,color:"label",mb:"2rem",children:(0,r.jsx)("h3",{children:"No Beaker Loaded"})})]})})},v=function(e){var n=e.duration;return(0,r.jsxs)(i.Pz,{textAlign:"center",children:[(0,r.jsx)(i.JO,{name:"spinner",size:5,spin:!0}),(0,r.jsx)("br",{}),(0,r.jsx)(i.xu,{color:"average",children:(0,r.jsxs)("h1",{children:[(0,r.jsx)(i.JO,{name:"radiation"}),"\xa0Irradiating occupant\xa0",(0,r.jsx)(i.JO,{name:"radiation"})]})}),(0,r.jsx)(i.xu,{color:"label",children:(0,r.jsxs)("h3",{children:["For ",n," second",1===n?"":"s"]})})]})},w=function(e){for(var n=function(e){for(var n=e/s+1,o=[],l=0;lm});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(3946),c=t(2778),s=(0,c.createContext)({categoryStyles:[],removalMode:null}),u=function(e){var n=e.decal_typepath,t=e.direction,o=e.isSelected,l=e.onSelect,c="".concat(n.replace(/\//g,"_"),"_").concat(t);return(0,r.jsx)(i.xu,{m:"2px",className:(0,a.Sh)(["decal_painter32x32",c]),onClick:l,style:{outlineStyle:o&&"solid"||"none",outlineWidth:"2px",outlineColor:"orange"}})},d=function(){var e=(0,o.nc)(),n=e.act,t=e.data,l=t.selectedCategory,a=t.categories;return(0,r.jsx)(i.Kq,{vertical:!0,children:(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.mQ,{children:a.map(function(e){return(0,r.jsx)(i.mQ.Tab,{selected:e==l,onClick:function(){return n("set_category",{category:e})},children:e})})})})})},f=function(){var e=(0,o.nc)(),n=e.act,t=e.data,l=t.selectedDecalType,a=t.removalMode,d=(0,c.useContext)(s).categoryStyles;return(0,r.jsx)(i.$0,{children:(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.kC,{wrap:"wrap",children:d.map(function(e){return(0,r.jsx)(i.kC.Item,{children:(0,r.jsx)(u,{decal_typepath:e.typepath,direction:2,isSelected:l===e.typepath&&!a,onSelect:function(){return n("set_decal_type",{decal_type:e.typepath})}})},e.typepath)})})})})},h=function(){var e=(0,o.nc)(),n=e.act,t=e.data,l=t.selectedDecalType,a=t.selectedDir,c=t.removalMode;return(0,r.jsx)(i.iA,{style:{display:"inline"},children:[1,0,2].map(function(e){return(0,r.jsx)(i.iA.Row,{children:[e+8,e,e+4].map(function(e){return(0,r.jsx)(i.iA.Cell,{style:{verticalAlign:"middle",textAlign:"center"},children:0===e?(0,r.jsx)(i.JO,{name:"arrows-alt",size:3}):(0,r.jsx)(u,{decal_typepath:l,direction:e,isSelected:e===a&&!c,onSelect:function(){return n("set_direction",{direction:e})}})},e)})},e)})})},m=function(){var e=(0,o.nc)(),n=e.act,t=e.data,a=t.availableStyles,c=t.removalMode,u=a[t.selectedCategory];return(0,r.jsx)(l.Rz,{width:600,height:565,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsx)(s.Provider,{value:{categoryStyles:u,removalMode:c},children:(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.$0,{title:"Preview",children:[(0,r.jsx)(h,{}),(0,r.jsx)(i.zx,{icon:"eraser",color:c?"green":"transparent",onClick:function(){return n("toggle_removal_mode")},children:"Remove decals"})]})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.$0,{title:"Decals",children:[(0,r.jsx)(d,{}),(0,r.jsx)(f,{})]})})]})})})})}},8950:function(e,n,t){"use strict";t.r(n),t.d(n,{DestinationTagger:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n,t=(0,o.nc)(),a=t.act,c=t.data,s=c.destinations,u=c.selected_destination_id,d=s[u-1];return(0,r.jsx)(l.Rz,{width:355,height:330,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsxs)(i.$0,{fill:!0,scrollable:!0,textAlign:"center",title:"TagMaster 3.1",children:[(0,r.jsxs)(i.xu,{width:"100%",textAlign:"center",children:[(0,r.jsx)(i.xu,{color:"label",inline:!0,children:"Selected:"})," ",null!=(n=d.name)?n:"None"]}),(0,r.jsx)(i.xu,{mt:1.5,children:(0,r.jsx)(i.Kq,{overflowY:"auto",wrap:"wrap",align:"center",justify:"space-evenly",direction:"row",children:s.map(function(e,n){return(0,r.jsx)(i.Kq.Item,{m:"2px",children:(0,r.jsx)(i.zx,{color:"transparent",width:"105px",textAlign:"center",content:e.name,selected:e.id===u,onClick:function(){return a("select_destination",{destination:e.id})}})},n)})})})]})})})})}},202:function(e,n,t){"use strict";t.r(n),t.d(n,{DisposalBin:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n,t,a=(0,o.nc)(),c=a.act,s=a.data;return 2===s.mode?(n="good",t="Ready"):s.mode<=0?(n="bad",t="N/A"):1===s.mode?(n="average",t="Pressurizing"):(n="average",t="Idle"),(0,r.jsx)(l.Rz,{width:300,height:260,children:(0,r.jsxs)(l.Rz.Content,{children:[(0,r.jsx)(i.$0,{title:"Status",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"State",color:n,children:t}),(0,r.jsx)(i.H2.Item,{label:"Pressure",children:(0,r.jsx)(i.ko,{ranges:{bad:[-1/0,0],average:[0,99],good:[99,1/0]},value:s.pressure,minValue:0,maxValue:100})})]})}),(0,r.jsx)(i.$0,{title:"Controls",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Handle",children:[(0,r.jsx)(i.zx,{icon:"toggle-off",disabled:s.isAI||s.panel_open,content:"Disengaged",selected:!s.flushing,onClick:function(){return c("disengageHandle")}}),(0,r.jsx)(i.zx,{icon:"toggle-on",disabled:s.isAI||s.panel_open,content:"Engaged",selected:s.flushing,onClick:function(){return c("engageHandle")}})]}),(0,r.jsxs)(i.H2.Item,{label:"Power",children:[(0,r.jsx)(i.zx,{icon:"toggle-off",disabled:-1===s.mode,content:"Off",selected:!s.mode,onClick:function(){return c("pumpOff")}}),(0,r.jsx)(i.zx,{icon:"toggle-on",disabled:-1===s.mode,content:"On",selected:s.mode,onClick:function(){return c("pumpOn")}})]}),(0,r.jsx)(i.H2.Item,{label:"Eject",children:(0,r.jsx)(i.zx,{icon:"sign-out-alt",disabled:s.isAI,content:"Eject Contents",onClick:function(){return c("eject")}})})]})})]})})}},9561:function(e,n,t){"use strict";t.r(n),t.d(n,{DnaVault:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(6783),a=t(3817),c=function(e){var n=(0,o.nc)(),t=(n.act,n.data).completed;return(0,r.jsx)(a.Rz,{width:350,height:270,children:(0,r.jsx)(a.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(s,{}),!!t&&(0,r.jsx)(u,{})]})})})},s=function(e){var n=(0,o.nc)(),t=(n.act,n.data),l=t.dna,a=t.dna_max,c=t.plants,s=t.plants_max,u=t.animals,d=t.animals_max;return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,title:"DNA Vault Database",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Human DNA",children:(0,r.jsx)(i.ko,{value:l/a,ranges:{good:[.66,1/0],average:[.33,.66],bad:[-1/0,.33]},children:l+" / "+a+" Samples"})}),(0,r.jsx)(i.H2.Item,{label:"Plant DNA",children:(0,r.jsx)(i.ko,{value:c/s,ranges:{good:[.66,1/0],average:[.33,.66],bad:[-1/0,.33]},children:c+" / "+s+" Samples"})}),(0,r.jsx)(i.H2.Item,{label:"Animal DNA",children:(0,r.jsx)(i.ko,{value:u/d,ranges:{good:[.66,1/0],average:[.33,.66],bad:[-1/0,.33]},children:u+" / "+d+" Samples"})})]})})})},u=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.choiceA,s=a.choiceB,u=a.used;return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.$0,{fill:!0,title:"Personal Gene Therapy",children:[(0,r.jsx)(i.xu,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),!u&&(0,r.jsxs)(l.rj,{children:[(0,r.jsx)(l.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,bold:!0,content:c,textAlign:"center",onClick:function(){return t("gene",{choice:c})}})}),(0,r.jsx)(l.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,bold:!0,content:s,textAlign:"center",onClick:function(){return t("gene",{choice:s})}})})]})||(0,r.jsx)(i.xu,{bold:!0,textAlign:"center",mb:1,children:"Users DNA deemed unstable. Unable to provide more upgrades."})]})})}},6072:function(e,n,t){"use strict";t.r(n),t.d(n,{DroneConsole:()=>c});var r=t(1557),i=t(3987),o=t(8531),l=t(4893),a=t(3817),c=function(e){return(0,r.jsx)(a.Rz,{width:420,height:500,children:(0,r.jsxs)(a.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(s,{}),(0,r.jsx)(u,{})]})})},s=function(e){var n=(0,l.nc)(),t=n.act,o=n.data,a=o.drone_fab,c=o.fab_power,s=o.drone_prod,u=o.drone_progress;return(0,r.jsx)(i.$0,{title:"Drone Fabricator",buttons:(0,r.jsx)(i.zx,{icon:"power-off",content:s?"Online":"Offline",color:s?"green":"red",onClick:function(){return t("toggle_fab")}}),children:a?(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"External Power",children:(0,r.jsxs)(i.xu,{color:c?"good":"bad",children:["[ ",c?"Online":"Offline"," ]"]})}),(0,r.jsx)(i.H2.Item,{label:"Drone Production",children:(0,r.jsx)(i.ko,{value:u/100,ranges:{good:[.7,1/0],average:[.4,.7],bad:[-1/0,.4]}})})]}):(0,r.jsx)(i.f7,{textAlign:"center",danger:1,children:(0,r.jsxs)(i.kC,{inline:1,direction:"column",children:[(0,r.jsx)(i.kC.Item,{children:"FABRICATOR NOT DETECTED."}),(0,r.jsx)(i.kC.Item,{children:(0,r.jsx)(i.zx,{icon:"search",content:"Search",onClick:function(){return t("find_fab")}})})]})})})},u=function(e){var n=(0,l.nc)(),t=n.act,a=n.data,c=a.drones,s=a.area_list,u=a.selected_area,d=a.ping_cd,f=function(e,n){var t,o;return 2===e?(t="bad",o="Disabled"):1!==e&&n?(t="good",o="Active"):(t="average",o="Inactive"),(0,r.jsx)(i.xu,{color:t,children:o})};return(0,r.jsxs)(i.$0,{title:"Maintenance Units",children:[(0,r.jsxs)(i.kC,{children:[(0,r.jsx)(i.kC.Item,{children:"Request Drone presence in area:\xa0"}),(0,r.jsx)(i.kC.Item,{children:(0,r.jsx)(i.Lt,{options:s,selected:u,width:"125px",onSelected:function(e){return t("set_area",{area:e})}})})]}),(0,r.jsx)(i.zx,{content:"Send Ping",icon:"broadcast-tower",disabled:d||!c.length,title:c.length?null:"No active drones!",fluid:!0,textAlign:"center",py:.4,mt:.6,onClick:function(){return t("ping")}}),(0,r.jsx)(function(){if(c.length)return(0,r.jsx)(i.xu,{py:.2,children:(0,r.jsx)(i.iz,{})})},{}),c.map(function(e){return(0,r.jsx)(i.$0,{title:(0,o.LF)(e.name),buttons:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"sync",content:"Resync",disabled:2===e.stat||e.sync_cd,onClick:function(){return t("resync",{uid:e.uid})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx.Confirm,{icon:"power-off",content:"Recall",disabled:2===e.stat||e.pathfinding,tooltip:e.pathfinding?"This drone is currently pathfinding, please wait.":null,tooltipPosition:"left",color:"bad",onClick:function(){return t("recall",{uid:e.uid})}})})]}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Status",children:f(e.stat,e.client)}),(0,r.jsx)(i.H2.Item,{label:"Integrity",children:(0,r.jsx)(i.ko,{value:e.health,ranges:{good:[.7,1/0],average:[.4,.7],bad:[-1/0,.4]}})}),(0,r.jsx)(i.H2.Item,{label:"Charge",children:(0,r.jsx)(i.ko,{value:e.charge,ranges:{good:[.7,1/0],average:[.4,.7],bad:[-1/0,.4]}})}),(0,r.jsx)(i.H2.Item,{label:"Location",children:e.location})]})},e.name)})]})}},2969:function(e,n,t){"use strict";t.r(n),t.d(n,{EFTPOS:()=>u});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tf,ERTOverview:()=>h});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tl.spawnpoints?"red":"green",children:[l.total," total, versus ",l.spawnpoints," spawnpoints"]})}),(0,r.jsx)(o.H2.Item,{label:"Dispatch",children:(0,r.jsx)(o.zx,{width:10.5,textAlign:"center",icon:"ambulance",content:"Send ERT",onClick:function(){return t("dispatch_ert",{silent:d})}})})]})})})},x=function(e){var n=(0,a.nc)(),t=n.act,i=n.data.ert_request_messages;return(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.$0,{fill:!0,children:i&&i.length?i.map(function(e){return(0,r.jsx)(o.$0,{title:e.time,buttons:(0,r.jsx)(o.zx,{content:e.sender_real_name,onClick:function(){return t("view_player_panel",{uid:e.sender_uid})},tooltip:"View player panel"}),children:e.message},(0,l.aV)(e.time))}):(0,r.jsx)(o.Kq,{fill:!0,children:(0,r.jsxs)(o.Kq.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,r.jsxs)(o.JO.Stack,{children:[(0,r.jsx)(o.JO,{name:"broadcast-tower",size:5,color:"gray"}),(0,r.jsx)(o.JO,{name:"slash",size:5,color:"red"})]}),(0,r.jsx)("br",{}),"No ERT requests."]})})})})},p=function(e){var n=(0,a.nc)(),t=n.act;n.data;var l=u((0,i.useState)(""),2),c=l[0],s=l[1];return(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsxs)(o.$0,{fill:!0,children:[(0,r.jsx)(o.Kx,{placeholder:"Enter ERT denial reason here. Shift-Enter to add a new line.",rows:19,fluid:!0,value:c,onChange:function(e){return s(e)}}),(0,r.jsx)(o.zx.Confirm,{content:"Deny ERT",fluid:!0,icon:"times",center:!0,mt:2,textAlign:"center",onClick:function(){return t("deny_ert",{reason:c})}})]})})}},6954:function(e,n,t){"use strict";t.r(n),t.d(n,{EconomyManager:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(5279),c=function(e){return(0,r.jsxs)(l.Rz,{width:600,height:325,children:[(0,r.jsx)(a.ComplexModal,{}),(0,r.jsx)(l.Rz.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,r.jsx)(s,{})})]})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.next_payroll_time;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.$0,{children:[(0,r.jsxs)(i.xu,{fontSize:"1.4rem",bold:!0,children:[(0,r.jsx)(i.JO,{name:"coins",verticalAlign:"middle",size:3,mr:"1rem"}),"Economy Manager"]}),(0,r.jsx)("br",{}),(0,r.jsxs)(i.H2,{label:"Pay Bonuses and Deductions",children:[(0,r.jsx)(i.H2.Item,{label:"Global",children:(0,r.jsx)(i.zx,{icon:"dollar-sign",width:"auto",content:"Global Payroll Modification",onClick:function(){return t("payroll_modification",{mod_type:"global"})}})}),(0,r.jsx)(i.H2.Item,{label:"Department Accounts",children:(0,r.jsx)(i.zx,{icon:"dollar-sign",width:"auto",content:"Department Account Payroll Modification",onClick:function(){return t("payroll_modification",{mod_type:"department"})}})}),(0,r.jsx)(i.H2.Item,{label:"Department Members",children:(0,r.jsx)(i.zx,{icon:"dollar-sign",width:"auto",content:"Department Members Payroll Modification",onClick:function(){return t("payroll_modification",{mod_type:"department_members"})}})}),(0,r.jsx)(i.H2.Item,{label:"Single Accounts",children:(0,r.jsx)(i.zx,{icon:"dollar-sign",width:"auto",content:"Crew Member Payroll Modification",onClick:function(){return t("payroll_modification",{mod_type:"crew_member"})}})})]}),(0,r.jsx)("hr",{}),(0,r.jsxs)(i.xu,{mb:.5,children:["Next Payroll in: ",l," Minutes"]}),(0,r.jsx)(i.zx,{icon:"angle-double-left",width:"auto",color:"bad",content:"Delay Payroll",onClick:function(){return t("delay_payroll")}}),(0,r.jsx)(i.zx,{width:"auto",content:"Set Payroll Time",onClick:function(){return t("set_payroll")}}),(0,r.jsx)(i.zx,{icon:"angle-double-right",width:"auto",color:"good",content:"Accelerate Payroll",onClick:function(){return t("accelerate_payroll")}})]}),(0,r.jsxs)(i.f7,{children:[(0,r.jsx)("b",{children:"WARNING:"})," You take full responsibility for unbalancing the economy with these buttons!"]})]})}},2170:function(e,n,t){"use strict";t.r(n),t.d(n,{Electropack:()=>c});var r=t(1557),i=t(3987),o=t(8153),l=t(4893),a=t(3817),c=function(e){var n=(0,l.nc)(),t=n.act,c=n.data,s=c.power,u=c.code,d=c.frequency,f=c.minFrequency,h=c.maxFrequency;return(0,r.jsx)(a.Rz,{width:360,height:135,children:(0,r.jsx)(a.Rz.Content,{children:(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Power",children:(0,r.jsx)(i.zx,{icon:s?"power-off":"times",content:s?"On":"Off",selected:s,onClick:function(){return t("power")}})}),(0,r.jsx)(i.H2.Item,{label:"Frequency",buttons:(0,r.jsx)(i.zx,{icon:"sync",content:"Reset",onClick:function(){return t("reset",{reset:"freq"})}}),children:(0,r.jsx)(i.Y2,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:f/10,maxValue:h/10,value:d/10,format:function(e){return(0,o.FH)(e,1)},width:"80px",onChange:function(e){return t("freq",{freq:e})}})}),(0,r.jsx)(i.H2.Item,{label:"Code",buttons:(0,r.jsx)(i.zx,{icon:"sync",content:"Reset",onClick:function(){return t("reset",{reset:"code"})}}),children:(0,r.jsx)(i.Y2,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:u,width:"80px",onChange:function(e){return t("code",{code:e})}})})]})})})})}},1285:function(e,n,t){"use strict";t.r(n),t.d(n,{Emojipedia:()=>u});var r=t(1557),i=t(2778),o=t(3987),l=t(3946),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tf});var r=t(1557),i=t(7662),o=t(2778),l=t(3987),a=t(8531),c=t(4893),s=t(3817);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t1&&void 0!==arguments[1]?arguments[1]:"";return e&&0!==e.length?(e=(0,i.hX)(e,function(e){return!!(null==e?void 0:e.name)}),n&&(e=(0,i.hX)(e,(0,a.mj)(n,function(e){return e.name+"|"+e.description}))),(0,i.MR)(e,function(e){return null==e?void 0:e.name})):[]},C=function(e){if(y(e),""===e)return k(p.abilities);k(_(f.map(function(e){return e.abilities}).flat(),e))},S=function(e){j(e),k(e.abilities),y("")};return(0,r.jsx)(l.Kq.Item,{grow:!0,children:(0,r.jsxs)(l.$0,{fill:!0,scrollable:!0,title:"Abilities",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.II,{width:"200px",placeholder:"Search Abilities",onChange:function(e){C(e)},value:b}),(0,r.jsx)(l.zx,{icon:m?"square-o":"check-square-o",selected:!m,content:"Compact",onClick:function(){return t("set_view_mode",{mode:0})}}),(0,r.jsx)(l.zx,{icon:m?"check-square-o":"square-o",selected:m,content:"Expanded",onClick:function(){return t("set_view_mode",{mode:1})}})]}),children:[(0,r.jsx)(l.mQ,{children:f.map(function(e){return(0,r.jsx)(l.mQ.Tab,{selected:""===b&&p===e,onClick:function(){S(e)},children:e.category},e)})}),w.map(function(e,n){return(0,r.jsxs)(l.xu,{p:.5,mx:-1,className:"candystripe",children:[(0,r.jsxs)(l.Kq,{align:"center",children:[(0,r.jsx)(l.Kq.Item,{ml:.5,color:"#dedede",children:e.name}),h.includes(e.power_path)&&(0,r.jsx)(l.Kq.Item,{ml:2,bold:!0,color:"#1b945c",children:"(Purchased)"}),(0,r.jsxs)(l.Kq.Item,{mr:3,textAlign:"right",grow:1,children:[(0,r.jsxs)(l.xu,{as:"span",color:"label",children:["Cost:"," "]}),(0,r.jsx)(l.xu,{as:"span",bold:!0,color:"#1b945c",children:e.cost})]}),(0,r.jsx)(l.Kq.Item,{textAlign:"right",children:(0,r.jsx)(l.zx,{mr:.5,disabled:e.cost>u||h.includes(e.power_path),content:"Evolve",onClick:function(){return t("purchase",{power_path:e.power_path})}})})]}),!!m&&(0,r.jsx)(l.Kq,{color:"#8a8a8a",my:1,ml:1.5,width:"95%",children:e.description+" "+e.helptext})]},n)})]})})}},3413:function(e,n,t){"use strict";t.r(n),t.d(n,{ExosuitFabricator:()=>h});var r=t(1557),i=t(2778),o=t(3987),l=t(3946),a=t(8531),c=t(4893),s=t(6783),u=t(3817);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0&&(0,r.jsx)(o.zx,{icon:"arrow-up",onClick:function(){return t("queueswap",{from:n+1,to:n})}}),n0&&(0,r.jsxs)(o.Kq.Item,{className:"Exofab__queue--time",children:[(0,r.jsx)(o.iz,{}),"Processing time:",(0,r.jsx)(o.JO,{name:"clock",mx:"0.5rem"}),(0,r.jsx)(o.xu,{inline:!0,bold:!0,children:new Date(u/10*1e3).toISOString().substr(14,5)})]}),Object.keys(s).length>0&&(0,r.jsxs)(o.Kq.Item,{className:"Exofab__queue--deficit",shrink:"0",children:[(0,r.jsx)(o.iz,{}),"Lacking materials to complete:",s.map(function(e){return(0,r.jsx)(o.xu,{children:(0,r.jsx)(g,{id:e[0],amount:-e[1],lineDisplay:!0})},e[0])})]})]})})})},g=function(e){var n,t,i=(0,c.nc)(),a=(i.act,i.data),s=e.id,u=e.amount,d=e.lineDisplay,f=e.onClick,h=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["id","amount","lineDisplay","onClick"]),m=a.materials[s]||0,x=u||m;if(!(x<=0)||"metal"===s||"glass"===s)return(0,r.jsx)(o.Kq,(n=function(e){for(var n=1;nm&&"bad",ml:0,mr:1,children:x.toLocaleString("en-US")})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.Kq.Item,{basis:"content",children:(0,r.jsx)(o.zx,{width:"85%",color:"transparent",onClick:f,children:(0,r.jsx)(o.xu,{mt:1,className:(0,l.Sh)(["materials32x32",s])})})}),(0,r.jsxs)(o.Kq.Item,{grow:"1",children:[(0,r.jsx)(o.xu,{className:"Exofab__material--name",children:s}),(0,r.jsxs)(o.xu,{className:"Exofab__material--amount",children:[x.toLocaleString("en-US")," cm\xb3 (",Math.round(x/2e3*10)/10," ","sheets)"]})]})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))},b=function(e){var n=(0,c.nc)(),t=n.act,i=n.data,l=e.design;return(0,r.jsxs)(o.xu,{className:"Exofab__design",children:[(0,r.jsx)(o.zx,{disabled:l.notEnough||i.building,icon:"cog",content:l.name,onClick:function(){return t("build",{id:l.id})}}),(0,r.jsx)(o.zx,{icon:"plus-circle",onClick:function(){return t("queue",{id:l.id})}}),(0,r.jsx)(o.xu,{className:"Exofab__design--cost",children:Object.entries(l.cost).map(function(e){return(0,r.jsx)(o.xu,{children:(0,r.jsx)(g,{id:e[0],amount:e[1],lineDisplay:!0})},e[0])})}),(0,r.jsx)(o.Kq,{className:"Exofab__design--time",children:(0,r.jsxs)(o.Kq.Item,{children:[(0,r.jsx)(o.JO,{name:"clock"}),l.time>0?(0,r.jsxs)(r.Fragment,{children:[l.time/10," seconds"]}):"Instant"]})})]})},y=function(e){var n=(0,c.nc)(),t=n.act,i=n.data.controllers;return(0,r.jsx)(u.Rz,{children:(0,r.jsx)(u.Rz.Content,{children:(0,r.jsx)(o.$0,{title:"Setup Linkage",children:(0,r.jsxs)(o.iA,{m:"0.5rem",children:[(0,r.jsxs)(o.iA.Row,{header:!0,children:[(0,r.jsx)(o.iA.Cell,{children:"Network Address"}),(0,r.jsx)(o.iA.Cell,{children:"Network ID"}),(0,r.jsx)(o.iA.Cell,{children:"Link"})]}),i.map(function(e){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:e.addr}),(0,r.jsx)(o.iA.Cell,{children:e.net_id}),(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.zx,{content:"Link",icon:"link",onClick:function(){return t("linktonetworkcontroller",{target_controller:e.addr})}})})]},e.addr)})]})})})})},v=function(e){var n=(0,c.nc)(),t=(n.act,n.data).tech_levels,i=e.showLevelsModal,l=e.setShowLevelsModal;return i?(0,r.jsx)(o.u_,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:.75*window.innerHeight+"px",mx:"auto",children:(0,r.jsx)(o.$0,{title:"Current tech levels",buttons:(0,r.jsx)(o.zx,{content:"Close",onClick:function(){l(!1)}}),children:(0,r.jsx)(o.H2,{children:t.map(function(e){var n=e.name,t=e.level;return(0,r.jsx)(o.H2.Item,{label:n,children:t},n)})})})}):null}},1727:function(e,n,t){"use strict";t.r(n),t.d(n,{ExperimentConsole:()=>s});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=new Map([[0,{text:"Conscious",color:"good"}],[1,{text:"Unconscious",color:"average"}],[2,{text:"Deceased",color:"bad"}]]),c=new Map([[0,{label:"Probe",icon:"thermometer"}],[1,{label:"Dissect",icon:"brain"}],[2,{label:"Analyze",icon:"search"}]]),s=function(e){var n=(0,o.nc)(),t=n.act,s=n.data,u=s.open,d=s.feedback,f=s.occupant,h=s.occupant_name,m=s.occupant_status,x=function(){if(!f)return(0,r.jsx)(i.f7,{children:"No specimen detected."});var e=a.get(m);return(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Name",children:h}),(0,r.jsx)(i.H2.Item,{label:"Status",color:e.color,children:e.text}),(0,r.jsx)(i.H2.Item,{label:"Experiments",children:[0,1,2].map(function(e){return(0,r.jsx)(i.zx,{icon:c.get(e).icon,content:c.get(e).label,onClick:function(){return t("experiment",{experiment_type:e})}},e)})})]})}();return(0,r.jsx)(l.Rz,{theme:"abductor",width:350,height:200,children:(0,r.jsxs)(l.Rz.Content,{children:[(0,r.jsx)(i.$0,{children:(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Status",children:d})})}),(0,r.jsx)(i.$0,{title:"Scanner",buttons:(0,r.jsx)(i.zx,{icon:"eject",content:"Eject",disabled:!u,onClick:function(){return t("door")}}),children:x})]})})}},7317:function(e,n,t){"use strict";t.r(n),t.d(n,{ExternalAirlockController:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n="good";return e<80?n="bad":e<95||e>110?n="average":e>120&&(n="bad"),n},c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data,s=c.chamber_pressure,u=(c.exterior_status,c.interior_status),d=c.processing;return(0,r.jsx)(l.Rz,{width:330,height:205,children:(0,r.jsxs)(l.Rz.Content,{children:[(0,r.jsx)(i.$0,{title:"Information",children:(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Chamber Pressure",children:(0,r.jsxs)(i.ko,{color:a(s),value:s,minValue:0,maxValue:1013,children:[s," kPa"]})})})}),(0,r.jsxs)(i.$0,{title:"Actions",buttons:(0,r.jsx)(i.zx,{content:"Abort",icon:"ban",color:"red",disabled:!d,onClick:function(){return t("abort")}}),children:[(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.zx,{width:"49%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:d,onClick:function(){return t("cycle_ext")}}),(0,r.jsx)(i.zx,{width:"50%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:d,onClick:function(){return t("cycle_int")}})]}),(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.zx,{width:"49%",content:"Force Exterior Door",icon:"exclamation-triangle",color:"open"===u?"red":d?"yellow":null,onClick:function(){return t("force_ext")}}),(0,r.jsx)(i.zx,{width:"50%",content:"Force Interior Door",icon:"exclamation-triangle",color:"open"===u?"red":d?"yellow":null,onClick:function(){return t("force_int")}})]})]})]})})}},7290:function(e,n,t){"use strict";t.r(n),t.d(n,{FaxMachine:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data;return(0,r.jsx)(l.Rz,{width:540,height:295,children:(0,r.jsxs)(l.Rz.Content,{children:[(0,r.jsx)(i.$0,{title:"Authorization",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"ID Card",children:(0,r.jsx)(i.zx,{icon:a.scan_name?"eject":"id-card",selected:a.scan_name,content:a.scan_name?a.scan_name:"-----",tooltip:a.scan_name?"Eject ID":"Insert ID",onClick:function(){return t("scan")}})}),(0,r.jsx)(i.H2.Item,{label:"Authorize",children:(0,r.jsx)(i.zx,{icon:a.authenticated?"sign-out-alt":"id-card",selected:a.authenticated,disabled:a.nologin,content:a.realauth?"Log Out":"Log In",onClick:function(){return t("auth")}})})]})}),(0,r.jsx)(i.$0,{title:"Fax Menu",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Network",children:a.network}),(0,r.jsxs)(i.H2.Item,{label:"Document",children:[(0,r.jsx)(i.zx,{icon:a.paper?"eject":"paperclip",disabled:!a.authenticated&&!a.paper,content:a.paper?a.paper:"-----",onClick:function(){return t("paper")}}),!!a.paper&&(0,r.jsx)(i.zx,{icon:"pencil-alt",content:"Rename",onClick:function(){return t("rename")}})]}),(0,r.jsx)(i.H2.Item,{label:"Sending To",children:(0,r.jsx)(i.zx,{icon:"print",content:a.destination?a.destination:"-----",disabled:!a.authenticated,onClick:function(){return t("dept")}})}),(0,r.jsx)(i.H2.Item,{label:"Action",children:(0,r.jsx)(i.zx,{icon:"envelope",content:a.sendError?a.sendError:"Send",disabled:!a.paper||!a.destination||!a.authenticated||a.sendError,onClick:function(){return t("send")}})})]})})]})})}},4363:function(e,n,t){"use strict";t.r(n),t.d(n,{FilingCabinet:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=n.config,s=a.contents,u=c.title;return(0,r.jsx)(l.Rz,{width:400,height:300,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsxs)(i.$0,{fill:!0,scrollable:!0,title:"Contents",children:[!s&&(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,r.jsxs)(i.JO.Stack,{children:[(0,r.jsx)(i.JO,{name:"folder-open",size:5,color:"gray"}),(0,r.jsx)(i.JO,{name:"slash",size:5,color:"red"})]}),(0,r.jsx)("br",{}),"The ",u," is empty."]})}),!!s&&s.slice().map(function(e){return(0,r.jsxs)(i.Kq,{mt:.5,className:"candystripe",children:[(0,r.jsx)(i.Kq.Item,{width:"80%",children:e.display_name}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"arrow-down",content:"Retrieve",onClick:function(){return t("retrieve",{index:e.index})}})})]},e)})]})})})})}},5870:function(e,n,t){"use strict";t.r(n),t.d(n,{FloorPainter:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=(n.act,n.data),l=e.icon_state,a=e.direction,c=e.isSelected,s=e.onSelect;return(0,r.jsx)(i.DA,{icon:t.icon,icon_state:l,direction:a,onClick:s,style:{borderStyle:c&&"solid"||"none",borderWidth:"2px",borderColor:"orange",padding:c&&"0px"||"2px"}})},c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data,s=c.availableStyles,u=c.selectedStyle,d=c.selectedDir,f=c.wideMode;return(0,r.jsx)(l.Rz,{width:405,height:475,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.$0,{title:"Floor setup",children:[(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"chevron-left",onClick:function(){return t("cycle_style",{offset:-1})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.Lt,{options:s,selected:u,width:"150px",height:"20px",ml:"2px",mr:"2px",nochevron:!0,onSelected:function(e){return t("select_style",{style:e})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"chevron-right",onClick:function(){return t("cycle_style",{offset:1})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"eraser",color:f?"green":"transparent",onClick:function(){return t("wide_mode")},children:"Wide mode"})})]}),(0,r.jsx)(i.xu,{mt:"5px",mb:"5px",children:(0,r.jsx)(i.kC,{overflowY:"auto",maxHeight:"239px",wrap:"wrap",children:s.map(function(e){return(0,r.jsx)(i.kC.Item,{children:(0,r.jsx)(a,{icon_state:e,isSelected:u===e,onSelect:function(){return t("select_style",{style:e})}})},e)})})}),(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Direction",children:(0,r.jsx)(i.iA,{style:{display:"inline"},children:[1,null,2].map(function(e){return(0,r.jsx)(i.iA.Row,{children:[e+8,e,e+4].map(function(e){return(0,r.jsx)(i.iA.Cell,{style:{verticalAlign:"middle",textAlign:"center"},children:null===e?(0,r.jsx)(i.JO,{name:"arrows-alt",size:3}):(0,r.jsx)(a,{icon_state:u,direction:e,isSelected:e===d,onSelect:function(){return t("select_direction",{direction:e})}})},e)})},e)})})})})]})})})}},1541:function(e,n,t){"use strict";t.r(n),t.d(n,{GPS:()=>h});var r=t(1557),i=t(2778),o=t(3987),l=t(8153),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0?"arrow-right":"circle",rotation:-e.angle}),"\xa0",Math.floor(e.distance)+"m"]}),void 0!==e.due&&(0,r.jsxs)(o.xu,{children:[(0,r.jsx)(o.JO,{name:"arrow-up",rotation:e.due}),"\xa0--"]})]}),(0,r.jsx)(o.iA.Cell,{verticalAlign:"middle",pr:"0.25rem",collapsing:!0,children:d(e.position)})]},n)})})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}},3310:function(e,n,t){"use strict";t.r(n),t.d(n,{GeneModder:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(5279),c=function(e){var n=(0,o.nc)().data.has_seed;return(0,r.jsxs)(l.Rz,{width:950,height:650,children:[(0,r.jsx)("div",{className:"GeneModder__left",children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(p,{scrollable:!0})})}),(0,r.jsx)("div",{className:"GeneModder__right",children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,scrollable:!0,children:[(0,r.jsx)(d,{}),(0,r.jsx)(a.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),0===n?(0,r.jsx)(u,{}):(0,r.jsx)(s,{})]})})})]})},s=function(e){var n=(0,o.nc)();return(n.act,n.data).disk,(0,r.jsxs)(i.$0,{title:"Genes",fill:!0,scrollable:!0,children:[(0,r.jsx)(f,{}),(0,r.jsx)(h,{}),(0,r.jsx)(m,{})]})},u=function(e){return(0,r.jsx)(i.$0,{fill:!0,height:"85%",children:(0,r.jsx)(i.Kq,{height:"100%",children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"green",children:[(0,r.jsx)(i.JO,{name:"leaf",size:5,mb:"10px"}),(0,r.jsx)("br",{}),"The plant DNA manipulator is missing a seed."]})})})},d=function(e){var n,t,l=(0,o.nc)(),a=l.act,c=l.data,s=c.has_seed,u=c.seed,d=c.has_disk,f=c.disk;return n=s?(0,r.jsxs)(i.Kq.Item,{mb:"-6px",mt:"-4px",children:[(0,r.jsx)("img",{src:"data:image/jpeg;base64,".concat(u.image),style:{verticalAlign:"middle",width:"32px",margin:"-1px",marginLeft:"-11px"}}),(0,r.jsx)(i.zx,{content:u.name,onClick:function(){return a("eject_seed")}}),(0,r.jsx)(i.zx,{ml:"3px",icon:"pen",tooltip:"Name Variant",onClick:function(){return a("variant_name")}})]}):(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{ml:3.3,content:"None",onClick:function(){return a("eject_seed")}})}),t=d?f.name:"None",(0,r.jsx)(i.$0,{title:"Storage",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Plant Sample",children:n}),(0,r.jsx)(i.H2.Item,{label:"Data Disk",children:(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{ml:3.3,content:t,tooltip:"Select Empty Disk",onClick:function(){return a("select_empty_disk")}})})})]})})},f=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.disk,c=l.core_genes;return(0,r.jsxs)(i.zF,{title:"Core Genes",open:!0,children:[c.map(function(e){return(0,r.jsxs)(i.Kq,{py:"2px",className:"candystripe",children:[(0,r.jsx)(i.Kq.Item,{width:"100%",ml:"2px",children:e.name}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{content:"Extract",disabled:!(null==a?void 0:a.can_extract),icon:"save",onClick:function(){return t("extract",{id:e.id})}})})]},e)})," ",(0,r.jsx)(i.Kq,{children:(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{content:"Extract All",disabled:!(null==a?void 0:a.can_extract),icon:"save",onClick:function(){return t("bulk_extract_core")}})})})]},"Core Genes")},h=function(e){var n=(0,o.nc)().data,t=n.reagent_genes,i=n.has_reagent;return(0,r.jsx)(x,{title:"Reagent Genes",gene_set:t,do_we_show:i})},m=function(e){var n=(0,o.nc)().data,t=n.trait_genes,i=n.has_trait;return(0,r.jsx)(x,{title:"Trait Genes",gene_set:t,do_we_show:i})},x=function(e){var n=e.title,t=e.gene_set,l=e.do_we_show,a=(0,o.nc)(),c=a.act,s=a.data.disk;return(0,r.jsx)(i.zF,{title:n,open:!0,children:l?t.map(function(e){return(0,r.jsxs)(i.Kq,{py:"2px",className:"candystripe",children:[(0,r.jsx)(i.Kq.Item,{width:"100%",ml:"2px",children:e.name}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{content:"Extract",disabled:!(null==s?void 0:s.can_extract),icon:"save",onClick:function(){return c("extract",{id:e.id})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{content:"Remove",icon:"times",onClick:function(){return c("remove",{id:e.id})}})})]},e)}):(0,r.jsx)(i.Kq.Item,{children:"No Genes Detected"})},n)},p=function(e){e.title,e.gene_set,e.do_we_show;var n=(0,o.nc)(),t=n.act,l=n.data,a=l.has_seed,c=l.empty_disks,s=l.stat_disks,u=l.trait_disks,d=l.reagent_disks;return(0,r.jsxs)(i.$0,{title:"Disks",children:[(0,r.jsx)("br",{}),"Empty Disks: ",c,(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),(0,r.jsx)(i.zx,{width:12,icon:"arrow-down",tooltip:"Eject an Empty disk",content:"Eject Empty Disk",onClick:function(){return t("eject_empty_disk")}}),(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.$0,{title:"Stats",children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,scrollable:!0,children:[s.slice().sort(function(e,n){return e.display_name.localeCompare(n.display_name)}).map(function(e){return(0,r.jsxs)(i.Kq,{mr:2,children:[(0,r.jsx)(i.Kq.Item,{width:"49%",children:e.display_name}),(0,r.jsxs)(i.Kq.Item,{width:25,children:["All"===e.stat?(0,r.jsx)(i.zx,{content:"Replace All",tooltip:"Write disk stats to seed",disabled:!(null==e?void 0:e.ready)||!a,icon:"arrow-circle-down",onClick:function(){return t("bulk_replace_core",{index:e.index})}}):(0,r.jsx)(i.zx,{width:6,icon:"arrow-circle-down",tooltip:"Write disk stat to seed",disabled:!e||!a,content:"Replace",onClick:function(){return t("replace",{index:e.index,stat:e.stat})}}),(0,r.jsx)(i.zx,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){return t("select",{index:e.index})}}),(0,r.jsx)(i.zx,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){return t("eject_disk",{index:e.index})}}),(0,r.jsx)(i.zx,{width:2,icon:e.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){return t("set_read_only",{index:e.index,read_only:e.read_only})}})]})]},e)}),(0,r.jsx)(i.zx,{})]})}),(0,r.jsx)(i.$0,{title:"Traits",children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,scrollable:!0,children:[u.slice().sort(function(e,n){return e.display_name.localeCompare(n.display_name)}).map(function(e){return(0,r.jsxs)(i.Kq,{mr:2,children:[(0,r.jsx)(i.Kq.Item,{width:"49%",children:e.display_name}),(0,r.jsxs)(i.Kq.Item,{width:25,children:[(0,r.jsx)(i.zx,{width:6,icon:"arrow-circle-down",disabled:!e||!e.can_insert,tooltip:"Add disk trait to seed",content:"Insert",onClick:function(){return t("insert",{index:e.index})}}),(0,r.jsx)(i.zx,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){return t("select",{index:e.index})}}),(0,r.jsx)(i.zx,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){return t("eject_disk",{index:e.index})}}),(0,r.jsx)(i.zx,{width:2,icon:e.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){return t("set_read_only",{index:e.index,read_only:e.read_only})}})]})]},e)}),(0,r.jsx)(i.zx,{})]})}),(0,r.jsx)(i.$0,{title:"Reagents",children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,scrollable:!0,children:[d.slice().sort(function(e,n){return e.display_name.localeCompare(n.display_name)}).map(function(e){return(0,r.jsxs)(i.Kq,{mr:2,children:[(0,r.jsx)(i.Kq.Item,{width:"49%",children:e.display_name}),(0,r.jsxs)(i.Kq.Item,{width:25,children:[(0,r.jsx)(i.zx,{width:6,icon:"arrow-circle-down",disabled:!e||!e.can_insert,tooltip:"Add disk reagent to seed",content:"Insert",onClick:function(){return t("insert",{index:e.index})}}),(0,r.jsx)(i.zx,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){return t("select",{index:e.index})}}),(0,r.jsx)(i.zx,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){return t("eject_disk",{index:e.index})}}),(0,r.jsx)(i.zx,{width:2,icon:e.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){return t("set_read_only",{index:e.index,read_only:e.read_only})}})]})]},e)}),(0,r.jsx)(i.zx,{})]})})]})]})}},6696:function(e,n,t){"use strict";t.r(n),t.d(n,{GenericCrewManifest:()=>a});var r=t(1557),i=t(3987),o=t(3817),l=t(2997),a=function(e){return(0,r.jsx)(o.Rz,{theme:"nologo",width:588,height:510,children:(0,r.jsx)(o.Rz.Content,{scrollable:!0,children:(0,r.jsx)(i.$0,{noTopPadding:!0,children:(0,r.jsx)(l.CrewManifest,{})})})})}},6013:function(e,n,t){"use strict";t.r(n),t.d(n,{GhostHudPanel:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)().data,t=n.security,a=n.medical,s=n.diagnostic,u=n.pressure,d=n.radioactivity,f=n.ahud;return(0,r.jsx)(l.Rz,{width:250,height:217,theme:"nologo",children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.$0,{children:[(0,r.jsx)(c,{label:"Medical",type:"medical",is_active:a}),(0,r.jsx)(c,{label:"Security",type:"security",is_active:t}),(0,r.jsx)(c,{label:"Diagnostic",type:"diagnostic",is_active:s}),(0,r.jsx)(c,{label:"Pressure",type:"pressure",is_active:u}),(0,r.jsx)(i.iz,{}),(0,r.jsx)(c,{label:"Radioactivity",type:"radioactivity",is_active:d,act_on:"rads_on",act_off:"rads_off"}),(0,r.jsx)(i.iz,{}),(0,r.jsx)(c,{label:"Antag HUD",is_active:f,act_on:"ahud_on",act_off:"ahud_off"})]})})})},c=function(e){var n=(0,o.nc)().act,t=e.label,l=e.type,a=void 0===l?null:l,c=e.is_active,s=e.act_on,u=void 0===s?"hud_on":s,d=e.act_off,f=void 0===d?"hud_off":d;return(0,r.jsxs)(i.kC,{pt:.3,color:"label",children:[(0,r.jsx)(i.kC.Item,{pl:.5,align:"center",width:"80%",children:t}),(0,r.jsx)(i.kC.Item,{children:(0,r.jsx)(i.zx,{mr:.6,content:c?"On":"Off",icon:c?"toggle-on":"toggle-off",selected:c,onClick:function(){return n(c?f:u,{hud_type:a})}})})]})}},6726:function(e,n,t){"use strict";t.r(n),t.d(n,{GlandDispenser:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data.glands;return(0,r.jsx)(l.Rz,{width:300,height:338,theme:"abductor",children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{children:(void 0===a?[]:a).map(function(e){return(0,r.jsx)(i.zx,{width:"60px",height:"60px",m:.75,textAlign:"center",fontSize:"17px",lineHeight:"55px",icon:"eject",backgroundColor:e.color,content:e.amount||"0",disabled:!e.amount,onClick:function(){return t("dispense",{gland_id:e.id})}},e.id)})})})})}},5490:function(e,n,t){"use strict";t.r(n),t.d(n,{GravityGen:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.charging_state,s=a.charge_count,u=a.breaker,d=a.ext_power;return(0,r.jsx)(l.Rz,{width:350,height:170,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[function(e){if(e>0)return(0,r.jsxs)(i.f7,{danger:!0,p:1.5,children:[(0,r.jsx)("b",{children:"WARNING:"})," Radiation Detected!"]})}(c),(0,r.jsx)(i.$0,{fill:!0,title:"Generator Status",buttons:(0,r.jsx)(i.zx,{icon:u?"power-off":"times",content:u?"Online":"Offline",color:u?"green":"red",px:1.5,onClick:function(){return t("breaker")}}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Power Status",color:d?"good":"bad",children:c>0?(0,r.jsxs)(i.xu,{inline:!0,color:"average",children:["[ ",1===c?"Charging":"Discharging"," ]"]}):(0,r.jsxs)(i.xu,{inline:!0,color:d?"good":"bad",children:["[ ",d?"Powered":"Unpowered"," ]"]})}),(0,r.jsx)(i.H2.Item,{label:"Gravity Charge",children:(0,r.jsx)(i.ko,{value:s/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})})]})})]})})})}},3172:function(e,n,t){"use strict";t.r(n),t.d(n,{GuestPass:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(8986),c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data;return(0,r.jsx)(l.Rz,{width:500,height:690,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.mQ,{children:[(0,r.jsx)(i.mQ.Tab,{icon:"id-card",selected:!c.showlogs,onClick:function(){return t("mode",{mode:0})},children:"Issue Pass"}),(0,r.jsxs)(i.mQ.Tab,{icon:"scroll",selected:c.showlogs,onClick:function(){return t("mode",{mode:1})},children:["Records (",c.issue_log.length,")"]})]})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Authorization",children:(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"ID Card",children:(0,r.jsx)(i.zx,{icon:c.scan_name?"eject":"id-card",selected:c.scan_name,content:c.scan_name?c.scan_name:"-----",tooltip:c.scan_name?"Eject ID":"Insert ID",onClick:function(){return t("scan")}})})})})}),(0,r.jsx)(i.Kq.Item,{children:!c.showlogs&&(0,r.jsx)(i.$0,{title:"Issue Guest Pass",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Issue To",children:(0,r.jsx)(i.zx,{icon:"pencil-alt",content:c.giv_name?c.giv_name:"-----",disabled:!c.scan_name,onClick:function(){return t("giv_name")}})}),(0,r.jsx)(i.H2.Item,{label:"Reason",children:(0,r.jsx)(i.zx,{icon:"pencil-alt",content:c.reason?c.reason:"-----",disabled:!c.scan_name,onClick:function(){return t("reason")}})}),(0,r.jsx)(i.H2.Item,{label:"Duration",children:(0,r.jsx)(i.zx,{icon:"pencil-alt",content:c.duration?c.duration:"-----",disabled:!c.scan_name,onClick:function(){return t("duration")}})})]})})}),!c.showlogs&&(c.scan_name?(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(a.AccessList,{sectionButtons:(0,r.jsx)(i.zx,{icon:"id-card",content:c.printmsg,disabled:!c.canprint,onClick:function(){return t("issue")}}),grantableList:c.grantableList,accesses:c.regions,selectedList:c.selectedAccess,accessMod:function(e){return t("access",{access:e})},grantAll:function(){return t("grant_all")},denyAll:function(){return t("clear_all")},grantDep:function(e){return t("grant_region",{region:e})},denyDep:function(e){return t("deny_region",{region:e})}})}):(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,r.jsx)(i.JO,{name:"id-card",size:5,color:"gray",mb:5}),(0,r.jsx)("br",{}),"Please, insert ID Card"]})})})})),!!c.showlogs&&(0,r.jsx)(i.Kq.Item,{grow:!0,m:0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Issuance Log",buttons:(0,r.jsx)(i.zx,{icon:"print",content:"Print",disabled:!c.scan_name,onClick:function(){return t("print")}}),children:!!c.issue_log.length&&(0,r.jsx)(i.H2,{children:c.issue_log.map(function(e,n){return(0,r.jsx)(i.H2.Item,{children:e},n)})})||(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,r.jsxs)(i.JO.Stack,{children:[(0,r.jsx)(i.JO,{name:"scroll",size:5,color:"gray"}),(0,r.jsx)(i.JO,{name:"slash",size:5,color:"red"})]}),(0,r.jsx)("br",{}),"No logs"]})})})})]})})})}},6898:function(e,n,t){"use strict";t.r(n),t.d(n,{HandheldChemDispenser:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=[1,5,10,20,30,50],c=function(e){return(0,r.jsx)(l.Rz,{width:390,height:430,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(s,{}),(0,r.jsx)(u,{})]})})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,c=l.amount,s=l.energy,u=l.maxEnergy,d=l.mode;return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Settings",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Energy",children:(0,r.jsxs)(i.ko,{value:s,minValue:0,maxValue:u,ranges:{good:[.5*u,1/0],average:[.25*u,.5*u],bad:[-1/0,.25*u]},children:[s," / ",u," Units"]})}),(0,r.jsx)(i.H2.Item,{label:"Amount",verticalAlign:"middle",children:(0,r.jsx)(i.Kq,{children:a.map(function(e,n){return(0,r.jsx)(i.Kq.Item,{grow:!0,width:"15%",children:(0,r.jsx)(i.zx,{fluid:!0,icon:"cog",selected:c===e,content:e,onClick:function(){return t("amount",{amount:e})}})},n)})})}),(0,r.jsx)(i.H2.Item,{label:"Mode",verticalAlign:"middle",children:(0,r.jsxs)(i.Kq,{justify:"space-between",children:[(0,r.jsx)(i.zx,{icon:"cog",selected:"dispense"===d,content:"Dispense",m:"0",width:"32%",onClick:function(){return t("mode",{mode:"dispense"})}}),(0,r.jsx)(i.zx,{icon:"cog",selected:"remove"===d,content:"Remove",m:"0",width:"32%",onClick:function(){return t("mode",{mode:"remove"})}}),(0,r.jsx)(i.zx,{icon:"cog",selected:"isolate"===d,content:"Isolate",m:"0",width:"32%",onClick:function(){return t("mode",{mode:"isolate"})}})]})})]})})})},u=function(e){for(var n=(0,o.nc)(),t=n.act,l=n.data,a=l.chemicals,c=void 0===a?[]:a,s=l.current_reagent,u=[],d=0;d<(c.length+1)%3;d++)u.push(!0);return(0,r.jsx)(i.Kq.Item,{grow:!0,height:"18%",children:(0,r.jsxs)(i.$0,{fill:!0,title:l.glass?"Drink Selector":"Chemical Selector",children:[c.map(function(e,n){return(0,r.jsx)(i.zx,{width:"32%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",selected:s===e.id,content:e.title,style:{marginLeft:"2px"},onClick:function(){return t("dispense",{reagent:e.id})}},n)}),u.map(function(e,n){return(0,r.jsx)(i.Kq.Item,{grow:"1",basis:"25%"},n)})]})})}},2036:function(e,n,t){"use strict";t.r(n),t.d(n,{HealthSensor:()=>c});var r=t(1557),i=t(3987),o=t(8153),l=t(4893),a=t(3817),c=function(e){var n=(0,l.nc)(),t=n.act,c=n.data,u=c.on,d=c.user_health,f=c.minHealth,h=c.maxHealth,m=c.alarm_health;return(0,r.jsx)(a.Rz,{width:300,height:125,children:(0,r.jsx)(a.Rz.Content,{children:(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Scanning",children:(0,r.jsx)(i.zx,{icon:"power-off",content:u?"On":"Off",color:u?null:"red",selected:u,onClick:function(){return t("scan_toggle")}})}),(0,r.jsx)(i.H2.Item,{label:"Health activation",children:(0,r.jsx)(i.Y2,{animate:!0,step:2,stepPixelSize:6,minValue:f,maxValue:h,value:m,format:function(e){return(0,o.FH)(e,1)},width:"80px",onChange:function(e){return t("alarm_health",{alarm_health:e})}})}),null!==d&&(0,r.jsx)(i.H2.Item,{label:"User health",children:(0,r.jsx)(i.xu,{color:s(d),bold:d>=100,children:(0,r.jsx)(i.zt,{value:d})})})]})})})})},s=function(e){return e>50?"green":e>0?"orange":"red"}},3288:function(e,n,t){"use strict";t.r(n),t.d(n,{Holodeck:()=>u});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);ta});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)();return n.act,n.data,(0,r.jsxs)(l.Rz,{width:600,height:505,children:[(0,r.jsx)(c,{}),(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(s,{}),(0,r.jsx)(d,{})]})})]})},c=function(e){var n=(0,o.nc)(),t=n.act;if(n.data.help)return(0,r.jsx)(i.u_,{maxWidth:"75%",height:.75*window.innerHeight+"px",mx:"auto",py:"0",px:"0.5rem",children:(0,r.jsx)(i.$0,{height:"100%",title:"Help",level:"2",overflow:"auto",children:(0,r.jsxs)(i.xu,{px:"0.5rem",mt:"-0.5rem",children:[(0,r.jsx)("h1",{children:"Making a Song"}),(0,r.jsxs)("p",{children:["Lines are a series of chords, separated by commas\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"(,)"}),", each with notes separated by hyphens\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"(-)"}),".",(0,r.jsx)("br",{}),"Every note in a chord will play together, with the chord timed by the\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"tempo"})," ","as defined above."]}),(0,r.jsxs)("p",{children:["Notes are played by the\xa0",(0,r.jsx)(i.xu,{as:"span",color:"good",children:"names of the note"}),", and optionally, the\xa0",(0,r.jsx)(i.xu,{as:"span",color:"average",children:"accidental"}),", and/or the"," ",(0,r.jsx)(i.xu,{as:"span",color:"bad",children:"octave number"}),".",(0,r.jsx)("br",{}),"By default, every note is\xa0",(0,r.jsx)(i.xu,{as:"span",color:"average",children:"natural"})," ","and in\xa0",(0,r.jsx)(i.xu,{as:"span",color:"bad",children:"octave 3"}),". Defining a different state for either is remembered for each"," ",(0,r.jsx)(i.xu,{as:"span",color:"good",children:"note"}),".",(0,r.jsxs)("ul",{children:[(0,r.jsxs)("li",{children:[(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"Example:"}),"\xa0",(0,r.jsx)("i",{children:"C,D,E,F,G,A,B"})," will play a\xa0",(0,r.jsx)(i.xu,{as:"span",color:"good",children:"C"}),"\xa0",(0,r.jsx)(i.xu,{as:"span",color:"average",children:"major"})," ","scale."]}),(0,r.jsxs)("li",{children:["After a note has an\xa0",(0,r.jsx)(i.xu,{as:"span",color:"average",children:"accidental"})," ","or\xa0",(0,r.jsx)(i.xu,{as:"span",color:"bad",children:"octave"})," ","placed, it will be remembered:\xa0",(0,r.jsx)("i",{children:"C,C4,C#,C3"})," is ",(0,r.jsx)("i",{children:"C3,C4,C4#,C3#"})]})]})]}),(0,r.jsxs)("p",{children:[(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"Chords"}),"\xa0can be played simply by seperating each note with a hyphen: ",(0,r.jsx)("i",{children:"A-C#,Cn-E,E-G#,Gn-B"}),".",(0,r.jsx)("br",{}),"A"," ",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"pause"}),"\xa0may be denoted by an empty chord: ",(0,r.jsx)("i",{children:"C,E,,C,G"}),".",(0,r.jsx)("br",{}),"To make a chord be a different time, end it with /x, where the chord length will be length defined by\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"tempo / x"}),",\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"eg:"})," ",(0,r.jsx)("i",{children:"C,G/2,E/4"}),"."]}),(0,r.jsxs)("p",{children:["Combined, an example line is: ",(0,r.jsx)("i",{children:"E-E4/4,F#/2,G#/8,B/8,E3-E4/4"}),".",(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{children:"Lines may be up to 300 characters."}),(0,r.jsx)("li",{children:"A song may only contain up to 1,000 lines."})]})]}),(0,r.jsxs)("p",{children:["Lines are a series of chords, separated by commas\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"(,)"}),", each with notes separated by hyphens\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"(-)"}),".",(0,r.jsx)("br",{}),"Every note in a chord will play together, with the chord timed by the\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"tempo"})," ","as defined above."]}),(0,r.jsxs)("p",{children:["Notes are played by the\xa0",(0,r.jsx)(i.xu,{as:"span",color:"good",children:"names of the note"}),", and optionally, the\xa0",(0,r.jsx)(i.xu,{as:"span",color:"average",children:"accidental"}),", and/or the"," ",(0,r.jsx)(i.xu,{as:"span",color:"bad",children:"octave number"}),".",(0,r.jsx)("br",{}),"By default, every note is\xa0",(0,r.jsx)(i.xu,{as:"span",color:"average",children:"natural"})," ","and in\xa0",(0,r.jsx)(i.xu,{as:"span",color:"bad",children:"octave 3"}),". Defining a different state for either is remembered for each"," ",(0,r.jsx)(i.xu,{as:"span",color:"good",children:"note"}),".",(0,r.jsxs)("ul",{children:[(0,r.jsxs)("li",{children:[(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"Example:"}),"\xa0",(0,r.jsx)("i",{children:"C,D,E,F,G,A,B"})," will play a\xa0",(0,r.jsx)(i.xu,{as:"span",color:"good",children:"C"}),"\xa0",(0,r.jsx)(i.xu,{as:"span",color:"average",children:"major"})," ","scale."]}),(0,r.jsxs)("li",{children:["After a note has an\xa0",(0,r.jsx)(i.xu,{as:"span",color:"average",children:"accidental"})," ","or\xa0",(0,r.jsx)(i.xu,{as:"span",color:"bad",children:"octave"})," ","placed, it will be remembered:\xa0",(0,r.jsx)("i",{children:"C,C4,C#,C3"})," is ",(0,r.jsx)("i",{children:"C3,C4,C4#,C3#"})]})]})]}),(0,r.jsxs)("p",{children:[(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"Chords"}),"\xa0can be played simply by seperating each note with a hyphen: ",(0,r.jsx)("i",{children:"A-C#,Cn-E,E-G#,Gn-B"}),".",(0,r.jsx)("br",{}),"A"," ",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"pause"}),"\xa0may be denoted by an empty chord: ",(0,r.jsx)("i",{children:"C,E,,C,G"}),".",(0,r.jsx)("br",{}),"To make a chord be a different time, end it with /x, where the chord length will be length defined by\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"tempo / x"}),",\xa0",(0,r.jsx)(i.xu,{as:"span",color:"highlight",children:"eg:"})," ",(0,r.jsx)("i",{children:"C,G/2,E/4"}),"."]}),(0,r.jsxs)("p",{children:["Combined, an example line is: ",(0,r.jsx)("i",{children:"E-E4/4,F#/2,G#/8,B/8,E3-E4/4"}),".",(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{children:"Lines may be up to 300 characters."}),(0,r.jsx)("li",{children:"A song may only contain up to 1,000 lines."})]})]}),(0,r.jsx)("h1",{children:"Instrument Advanced Settings"}),(0,r.jsxs)("ul",{children:[(0,r.jsxs)("li",{children:[(0,r.jsx)(i.xu,{as:"span",color:"label",children:"Type:"}),"\xa0Whether the instrument is legacy or synthesized.",(0,r.jsx)("br",{}),"Legacy instruments have a collection of sounds that are selectively used depending on the note to play.",(0,r.jsx)("br",{}),"Synthesized instruments use a base sound and change its pitch to match the note to play."]}),(0,r.jsxs)("li",{children:[(0,r.jsx)(i.xu,{as:"span",color:"label",children:"Current:"}),"\xa0Which instrument sample to play. Some instruments can be tuned to play different samples. Experiment!"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)(i.xu,{as:"span",color:"label",children:"Note Shift/Note Transpose:"}),"\xa0The pitch to apply to all notes of the song."]}),(0,r.jsxs)("li",{children:[(0,r.jsx)(i.xu,{as:"span",color:"label",children:"Sustain Mode:"}),"\xa0How a played note fades out.",(0,r.jsx)("br",{}),"Linear sustain means a note will fade out at a constant rate.",(0,r.jsx)("br",{}),"Exponential sustain means a note will fade out at an exponential rate, sounding smoother."]}),(0,r.jsxs)("li",{children:[(0,r.jsx)(i.xu,{as:"span",color:"label",children:"Volume Dropoff Threshold:"}),"\xa0The volume threshold at which a note is fully stopped."]}),(0,r.jsxs)("li",{children:[(0,r.jsx)(i.xu,{as:"span",color:"label",children:"Sustain indefinitely last held note:"}),"\xa0Whether the last note should be sustained indefinitely."]})]}),(0,r.jsx)(i.zx,{color:"grey",content:"Close",onClick:function(){return t("help")}})]})})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.lines,c=l.playing,s=l.repeat,d=l.maxRepeats,f=l.tempo,h=l.minTempo,m=l.maxTempo,x=l.tickLag,p=l.volume,j=l.minVolume,g=l.maxVolume,b=l.ready;return(0,r.jsxs)(i.$0,{m:0,title:"Instrument",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{icon:"info",content:"Help",onClick:function(){return t("help")}}),(0,r.jsx)(i.zx,{icon:"file",content:"New",onClick:function(){return t("newsong")}}),(0,r.jsx)(i.zx,{icon:"upload",content:"Import",onClick:function(){return t("import")}})]}),children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Playback",children:[(0,r.jsx)(i.zx,{selected:c,disabled:0===a.length||s<0,icon:"play",content:"Play",onClick:function(){return t("play")}}),(0,r.jsx)(i.zx,{disabled:!c,icon:"stop",content:"Stop",onClick:function(){return t("stop")}})]}),(0,r.jsx)(i.H2.Item,{label:"Repeat",children:(0,r.jsx)(i.iR,{animated:!0,minValue:0,maxValue:d,value:s,stepPixelSize:59,onChange:function(e,n){return t("repeat",{new:n})}})}),(0,r.jsx)(i.H2.Item,{label:"Tempo",children:(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.zx,{disabled:f>=m,content:"-",as:"span",mr:"0.5rem",onClick:function(){return t("tempo",{new:f+x})}}),Math.round(600/f)," BPM",(0,r.jsx)(i.zx,{disabled:f<=h,content:"+",as:"span",ml:"0.5rem",onClick:function(){return t("tempo",{new:f-x})}})]})}),(0,r.jsx)(i.H2.Item,{label:"Volume",children:(0,r.jsx)(i.iR,{animated:!0,minValue:j,maxValue:g,value:p,stepPixelSize:6,onDrag:function(e,n){return t("setvolume",{new:n})}})}),(0,r.jsx)(i.H2.Item,{label:"Status",children:b?(0,r.jsx)(i.xu,{color:"good",children:"Ready"}):(0,r.jsx)(i.xu,{color:"bad",children:"Instrument Definition Error!"})})]}),(0,r.jsx)(u,{})]})},u=function(e){var n,t,l=(0,o.nc)(),a=l.act,c=l.data,s=c.allowedInstrumentNames,u=c.instrumentLoaded,d=c.instrument,f=c.canNoteShift,h=c.noteShift,m=c.noteShiftMin,x=c.noteShiftMax,p=c.sustainMode,j=c.sustainLinearDuration,g=c.sustainExponentialDropoff,b=c.legacy,y=c.sustainDropoffVolume,v=c.sustainHeldNote;return 1===p?(n="Linear",t=(0,r.jsx)(i.iR,{minValue:.1,maxValue:5,value:j,step:.5,stepPixelSize:85,format:function(e){return Math.round(100*e)/100+" seconds"},onChange:function(e,n){return a("setlinearfalloff",{new:n/10})}})):2===p&&(n="Exponential",t=(0,r.jsx)(i.iR,{minValue:1.025,maxValue:10,value:g,step:.01,format:function(e){return Math.round(1e3*e)/1e3+"% per decisecond"},onChange:function(e,n){return a("setexpfalloff",{new:n})}})),s.sort(),(0,r.jsx)(i.xu,{my:-1,children:(0,r.jsx)(i.zF,{mt:"1rem",mb:"0",title:"Advanced",children:(0,r.jsxs)(i.$0,{mt:-1,children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Type",children:b?"Legacy":"Synthesized"}),(0,r.jsx)(i.H2.Item,{label:"Current",children:u?(0,r.jsx)(i.Lt,{options:s,selected:d,width:"50%",onSelected:function(e){return a("switchinstrument",{name:e})}}):(0,r.jsx)(i.xu,{color:"bad",children:"None!"})}),!!(!b&&f)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.H2.Item,{label:"Note Shift/Note Transpose",children:(0,r.jsx)(i.iR,{minValue:m,maxValue:x,value:h,stepPixelSize:2,format:function(e){return e+" keys / "+Math.round(e/12*100)/100+" octaves"},onChange:function(e,n){return a("setnoteshift",{new:n})}})}),(0,r.jsxs)(i.H2.Item,{label:"Sustain Mode",children:[(0,r.jsx)(i.Lt,{options:["Linear","Exponential"],selected:n,mb:"0.4rem",onSelected:function(e){return a("setsustainmode",{new:e})}}),t]}),(0,r.jsx)(i.H2.Item,{label:"Volume Dropoff Threshold",children:(0,r.jsx)(i.iR,{animated:!0,minValue:.01,maxValue:100,value:y,stepPixelSize:6,onChange:function(e,n){return a("setdropoffvolume",{new:n})}})}),(0,r.jsx)(i.H2.Item,{label:"Sustain indefinitely last held note",children:(0,r.jsx)(i.zx,{selected:v,icon:v?"toggle-on":"toggle-off",content:v?"Yes":"No",onClick:function(){return a("togglesustainhold")}})})]})]}),(0,r.jsx)(i.zx,{icon:"redo",content:"Reset to Default",mt:"0.5rem",onClick:function(){return a("reset")}})]})})})},d=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.playing,c=l.lines,s=l.editing;return(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Editor",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{disabled:!s||a,icon:"plus",content:"Add Line",onClick:function(){return t("newline",{line:c.length+1})}}),(0,r.jsx)(i.zx,{selected:!s,icon:s?"chevron-up":"chevron-down",onClick:function(){return t("edit")}})]}),children:!!s&&(c.length>0?(0,r.jsx)(i.H2,{children:c.map(function(e,n){return(0,r.jsx)(i.H2.Item,{label:n+1,buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{disabled:a,icon:"pen",onClick:function(){return t("modifyline",{line:n+1})}}),(0,r.jsx)(i.zx,{disabled:a,icon:"trash",onClick:function(){return t("deleteline",{line:n+1})}})]}),children:e},n)})}):(0,r.jsx)(i.xu,{color:"label",children:"Song is empty."}))})}},772:function(e,n,t){"use strict";t.r(n),t.d(n,{KeyComboModal:()=>p});var r=t(1557),i=t(2778),o=t(3987),l=t(9347),a=t(4893),c=t(3817),s=t(3100),u=t(4799);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=48&&e.keyCode<=57)&&(n+="Shift"),3===e.location&&(n+="Numpad"),h(e))if(e.shiftKey&&e.keyCode>=48&&e.keyCode<=57)n+="Shift"+(e.keyCode-48);else{var t=e.key.toUpperCase();n+=m[t]||t}return n},p=function(e){var n=(0,a.nc)(),t=n.act,d=n.data,m=d.init_value,p=d.large_buttons,j=d.message,g=void 0===j?"":j,b=d.title,y=d.timeout,v=f((0,i.useState)(m),2),w=v[0],k=v[1],_=f((0,i.useState)(!0),2),C=_[0],S=_[1],I=function(e){if(!C){e.key===l.Fn.Enter&&t("submit",{entry:w}),(0,l.VW)(e.key)&&t("cancel");return}if(e.preventDefault(),h(e)){A(x(e)),S(!1);return}if(e.key===l.Fn.Escape){A(m),S(!1);return}},A=function(e){e!==w&&k(e)},O=130+(g.length>30?Math.ceil(g.length/3):0)+(g.length&&p?5:0);return(0,r.jsxs)(c.Rz,{title:b,width:240,height:O,children:[y&&(0,r.jsx)(u.Loader,{value:y}),(0,r.jsx)(c.Rz.Content,{onKeyDown:function(e){I(e)},children:(0,r.jsxs)(o.$0,{fill:!0,children:[(0,r.jsx)(o.RK,{}),(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.xu,{color:"label",children:g})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{disabled:C,content:C&&null!==C?"Awaiting input...":""+w,width:"100%",textAlign:"center",onClick:function(){A(m),S(!0)}})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(s.InputButtons,{input:w})})]})]})})]})}},1888:function(e,n,t){"use strict";t.r(n),t.d(n,{KeycardAuth:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=(0,r.jsx)(i.$0,{title:"Keycard Authentication Device",children:(0,r.jsx)(i.xu,{children:"This device is used to trigger certain high security events. It requires the simultaneous swipe of two high-level ID cards."})});if(!a.swiping&&!a.busy)return(0,r.jsx)(l.Rz,{width:540,height:280,children:(0,r.jsxs)(l.Rz.Content,{children:[c,(0,r.jsx)(i.$0,{title:"Choose Action",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Red Alert",children:(0,r.jsx)(i.zx,{icon:"exclamation-triangle",disabled:!a.redAvailable,onClick:function(){return t("triggerevent",{triggerevent:"Red Alert"})},content:"Red Alert"})}),(0,r.jsx)(i.H2.Item,{label:"ERT",children:(0,r.jsx)(i.zx,{icon:"broadcast-tower",onClick:function(){return t("triggerevent",{triggerevent:"Emergency Response Team"})},content:"Call ERT"})}),(0,r.jsxs)(i.H2.Item,{label:"Emergency Maint Access",children:[(0,r.jsx)(i.zx,{icon:"door-open",onClick:function(){return t("triggerevent",{triggerevent:"Grant Emergency Maintenance Access"})},content:"Grant"}),(0,r.jsx)(i.zx,{icon:"door-closed",onClick:function(){return t("triggerevent",{triggerevent:"Revoke Emergency Maintenance Access"})},content:"Revoke"})]}),(0,r.jsxs)(i.H2.Item,{label:"Emergency Station-Wide Access",children:[(0,r.jsx)(i.zx,{icon:"door-open",onClick:function(){return t("triggerevent",{triggerevent:"Activate Station-Wide Emergency Access"})},content:"Grant"}),(0,r.jsx)(i.zx,{icon:"door-closed",onClick:function(){return t("triggerevent",{triggerevent:"Deactivate Station-Wide Emergency Access"})},content:"Revoke"})]})]})})]})});var s=(0,r.jsx)(i.xu,{color:"red",children:"Waiting for YOU to swipe your ID..."});return a.hasSwiped||a.ertreason||"Emergency Response Team"!==a.event?a.hasConfirm?s=(0,r.jsx)(i.xu,{color:"green",children:"Request Confirmed!"}):a.isRemote?s=(0,r.jsx)(i.xu,{color:"orange",children:"Swipe your card to CONFIRM the remote request."}):a.hasSwiped&&(s=(0,r.jsx)(i.xu,{color:"orange",children:"Waiting for second person to confirm..."})):s=(0,r.jsx)(i.xu,{color:"red",children:"Fill out the reason for your ERT request."}),(0,r.jsx)(l.Rz,{width:540,height:265,children:(0,r.jsxs)(l.Rz.Content,{children:[c,"Emergency Response Team"===a.event&&(0,r.jsx)(i.$0,{title:"Reason for ERT Call",children:(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.zx,{color:a.ertreason?"":"red",icon:a.ertreason?"check":"pencil-alt",content:a.ertreason?a.ertreason:"-----",disabled:a.busy,onClick:function(){return t("ert")}})})}),(0,r.jsx)(i.$0,{title:a.event,buttons:(0,r.jsx)(i.zx,{icon:"arrow-circle-left",content:"Back",disabled:a.busy||a.hasConfirm,onClick:function(){return t("reset")}}),children:s})]})})}},2248:function(e,n,t){"use strict";t.r(n),t.d(n,{KitchenMachine:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(1735),c=function(e){var n=(0,o.nc)(),t=n.data,c=n.config,u=t.ingredients,d=t.operating,f=c.title;return(0,r.jsx)(l.Rz,{width:400,height:320,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(a.Operating,{operating:d,name:f}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(s,{})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Ingredients",children:(0,r.jsx)(i.iA,{className:"Ingredient__Table",children:u.map(function(e){return(0,r.jsxs)(i.iA.Row,{tr:5,children:[(0,r.jsx)("td",{children:(0,r.jsx)(i.iA.Cell,{bold:!0,children:e.name})}),(0,r.jsx)("td",{children:(0,r.jsxs)(i.iA.Cell,{collapsing:!0,textAlign:"center",children:[e.amount," ",e.units]})})]},e.name)})})})})]})})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.inactive,c=l.tooltip;return(0,r.jsx)(i.$0,{title:"Controls",children:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"power-off",disabled:a,tooltip:a?c:"",tooltipPosition:"bottom",content:"Activate",onClick:function(){return t("cook")}})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"eject",disabled:a,tooltip:a?c:"",tooltipPosition:"bottom",content:"Eject Contents",onClick:function(){return t("eject")}})})]})})}},4055:function(e,n,t){"use strict";t.r(n),t.d(n,{LawManager:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,u=a.isAdmin,d=a.isSlaved,f=a.isMalf,h=a.isAIMalf,m=a.view;return(0,r.jsx)(l.Rz,{width:800,height:f?620:365,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[!!(u&&d)&&(0,r.jsxs)(i.f7,{children:["This unit is slaved to ",d,"."]}),!!(f||h)&&(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.zx,{content:"Law Management",selected:0===m,onClick:function(){return t("set_view",{set_view:0})}}),(0,r.jsx)(i.zx,{content:"Lawsets",selected:1===m,onClick:function(){return t("set_view",{set_view:1})}})]}),0===m&&(0,r.jsx)(c,{}),1===m&&(0,r.jsx)(s,{})]})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.has_zeroth_laws,c=l.zeroth_laws,s=l.has_ion_laws,d=l.ion_laws,f=l.ion_law_nr,h=l.has_inherent_laws,m=l.inherent_laws,x=l.has_supplied_laws,p=l.supplied_laws,j=l.channels,g=l.channel,b=l.isMalf,y=l.isAdmin,v=l.zeroth_law,w=l.ion_law,k=l.inherent_law,_=l.supplied_law,C=l.supplied_law_position;return(0,r.jsxs)(r.Fragment,{children:[!!a&&(0,r.jsx)(u,{title:"ERR_NULL_VALUE",laws:c,isMalf:b}),!!s&&(0,r.jsx)(u,{title:"".concat(f),laws:d,isMalf:b}),!!h&&(0,r.jsx)(u,{title:"Inherent",laws:m,isMalf:b}),!!x&&(0,r.jsx)(u,{title:"Supplied",laws:p,isMalf:b}),(0,r.jsx)(i.$0,{title:"Statement Settings",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Statement Channel",children:j.map(function(e){return(0,r.jsx)(i.zx,{content:e.channel,selected:e.channel===g,onClick:function(){return t("law_channel",{law_channel:e.channel})}},e.channel)})}),(0,r.jsx)(i.H2.Item,{label:"State Laws",children:(0,r.jsx)(i.zx,{content:"State Laws",onClick:function(){return t("state_laws")}})}),(0,r.jsx)(i.H2.Item,{label:"Law Notification",children:(0,r.jsx)(i.zx,{content:"Notify",onClick:function(){return t("notify_laws")}})})]})}),!!b&&(0,r.jsx)(i.$0,{title:"Add Laws",children:(0,r.jsxs)(i.iA,{children:[(0,r.jsxs)(i.iA.Row,{header:!0,children:[(0,r.jsx)(i.iA.Cell,{width:"10%",children:"Type"}),(0,r.jsx)(i.iA.Cell,{width:"60%",children:"Law"}),(0,r.jsx)(i.iA.Cell,{width:"10%",children:"Index"}),(0,r.jsx)(i.iA.Cell,{width:"20%",children:"Actions"})]}),!!(y&&!a)&&(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Zero"}),(0,r.jsx)(i.iA.Cell,{children:v}),(0,r.jsx)(i.iA.Cell,{children:"N/A"}),(0,r.jsxs)(i.iA.Cell,{children:[(0,r.jsx)(i.zx,{content:"Edit",icon:"pencil-alt",onClick:function(){return t("change_zeroth_law")}}),(0,r.jsx)(i.zx,{content:"Add",icon:"plus",onClick:function(){return t("add_zeroth_law")}})]})]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Ion"}),(0,r.jsx)(i.iA.Cell,{children:w}),(0,r.jsx)(i.iA.Cell,{children:"N/A"}),(0,r.jsxs)(i.iA.Cell,{children:[(0,r.jsx)(i.zx,{content:"Edit",icon:"pencil-alt",onClick:function(){return t("change_ion_law")}}),(0,r.jsx)(i.zx,{content:"Add",icon:"plus",onClick:function(){return t("add_ion_law")}})]})]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Inherent"}),(0,r.jsx)(i.iA.Cell,{children:k}),(0,r.jsx)(i.iA.Cell,{children:"N/A"}),(0,r.jsxs)(i.iA.Cell,{children:[(0,r.jsx)(i.zx,{content:"Edit",icon:"pencil-alt",onClick:function(){return t("change_inherent_law")}}),(0,r.jsx)(i.zx,{content:"Add",icon:"plus",onClick:function(){return t("add_inherent_law")}})]})]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Supplied"}),(0,r.jsx)(i.iA.Cell,{children:_}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.zx,{content:C,onClick:function(){return t("change_supplied_law_position")}})}),(0,r.jsxs)(i.iA.Cell,{children:[(0,r.jsx)(i.zx,{content:"Edit",icon:"pencil-alt",onClick:function(){return t("change_supplied_law")}}),(0,r.jsx)(i.zx,{content:"Add",icon:"plus",onClick:function(){return t("add_supplied_law")}})]})]})]})})]})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.law_sets;return(0,r.jsx)(i.xu,{children:l.map(function(e){return(0,r.jsx)(i.$0,{title:e.name+" - "+e.header,buttons:(0,r.jsx)(i.zx,{content:"Load Laws",icon:"download",onClick:function(){return t("transfer_laws",{transfer_laws:e.ref})}}),children:(0,r.jsxs)(i.H2,{children:[e.laws.has_ion_laws>0&&e.laws.ion_laws.map(function(e){return(0,r.jsx)(i.H2.Item,{label:e.index,children:e.law},e.index)}),e.laws.has_zeroth_laws>0&&e.laws.zeroth_laws.map(function(e){return(0,r.jsx)(i.H2.Item,{label:e.index,children:e.law},e.index)}),e.laws.has_inherent_laws>0&&e.laws.inherent_laws.map(function(e){return(0,r.jsx)(i.H2.Item,{label:e.index,children:e.law},e.index)}),e.laws.has_supplied_laws>0&&e.laws.inherent_laws.map(function(e){return(0,r.jsx)(i.H2.Item,{label:e.index,children:e.law},e.index)})]})},e.name)})})},u=function(e){var n=(0,o.nc)(),t=n.act;n.data;var l=e.isMalf,a=e.laws,c=e.title;return(0,r.jsx)(i.$0,{title:c+" Laws",children:(0,r.jsxs)(i.iA,{children:[(0,r.jsxs)(i.iA.Row,{header:!0,children:[(0,r.jsx)(i.iA.Cell,{width:"10%",children:"Index"}),(0,r.jsx)(i.iA.Cell,{width:"69%",children:"Law"}),(0,r.jsx)(i.iA.Cell,{width:"21%",children:"State?"})]}),a.map(function(e){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:e.index}),(0,r.jsx)(i.iA.Cell,{children:e.law}),(0,r.jsxs)(i.iA.Cell,{children:[(0,r.jsx)(i.zx,{content:e.state?"Yes":"No",selected:e.state,onClick:function(){return t("state_law",{ref:e.ref,state_law:+!e.state})}}),!!l&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{content:"Edit",icon:"pencil-alt",onClick:function(){return t("edit_law",{edit_law:e.ref})}}),(0,r.jsx)(i.zx,{content:"Delete",icon:"trash",color:"red",onClick:function(){return t("delete_law",{delete_law:e.ref})}})]})]})]},e.law)})]})})}},2038:function(e,n,t){"use strict";t.r(n),t.d(n,{LibraryComputer:()=>d});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817),c=t(5279);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=e?"caution":"default",onClick:function(){return i("set_rating",{rating_value:e})}})},n)}),(0,r.jsxs)(o.Kq.Item,{bold:!0,ml:2,fontSize:"150%",children:[a+"/10",(0,r.jsx)(o.JO,{name:"star",color:"yellow",ml:.5,verticalAlign:"top"})]})]})},h=function(e){var n=(0,l.nc)().data,t=e.tabIndex,i=e.setTabIndex,a=n.login_state;return(0,r.jsx)(o.Kq.Item,{mb:1,children:(0,r.jsxs)(o.mQ,{fluid:!0,textAlign:"center",children:[(0,r.jsx)(o.mQ.Tab,{selected:0===t,onClick:function(){return i(0)},children:"Book Archives"}),(0,r.jsx)(o.mQ.Tab,{selected:1===t,onClick:function(){return i(1)},children:"Corporate Literature"}),(0,r.jsx)(o.mQ.Tab,{selected:2===t,onClick:function(){return i(2)},children:"Upload Book"}),1===a&&(0,r.jsx)(o.mQ.Tab,{selected:3===t,onClick:function(){return i(3)},children:"Patron Manager"}),(0,r.jsx)(o.mQ.Tab,{selected:4===t,onClick:function(){return i(4)},children:"Inventory"})]})})},m=function(e){switch(e.tabIndex){case 0:return(0,r.jsx)(p,{});case 1:return(0,r.jsx)(j,{});case 2:return(0,r.jsx)(g,{});case 3:return(0,r.jsx)(b,{});case 4:return(0,r.jsx)(y,{});default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},x=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=i.searchcontent,s=i.book_categories,u=i.user_ckey,d=[];return s.map(function(e){return d[e.description]=e.category_id}),(0,r.jsxs)(o.Kq,{children:[(0,r.jsxs)(o.Kq.Item,{width:"35%",children:[(0,r.jsxs)(o.xu,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,r.jsx)(o.JO,{name:"edit",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Inputs"]}),(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Title",children:(0,r.jsx)(o.zx,{textAlign:"left",icon:"pen",width:20,content:a.title||"Input Title",onClick:function(){return(0,c.modalOpen)("edit_search_title")}})}),(0,r.jsx)(o.H2.Item,{label:"Author",children:(0,r.jsx)(o.zx,{textAlign:"left",icon:"pen",width:20,content:a.author||"Input Author",onClick:function(){return(0,c.modalOpen)("edit_search_author")}})}),(0,r.jsx)(o.H2.Item,{label:"Ratings",children:(0,r.jsxs)(o.Kq,{children:[(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{mr:1,width:"min-content",content:a.ratingmin,onClick:function(){return(0,c.modalOpen)("edit_search_ratingmin")}})}),(0,r.jsx)(o.Kq.Item,{children:"To"}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{ml:1,width:"min-content",content:a.ratingmax,onClick:function(){return(0,c.modalOpen)("edit_search_ratingmax")}})})]})})]})]}),(0,r.jsxs)(o.Kq.Item,{width:"40%",children:[(0,r.jsxs)(o.xu,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,r.jsx)(o.JO,{name:"clipboard-list",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Book Categories"]}),(0,r.jsx)(o.H2,{children:(0,r.jsx)(o.H2.Item,{label:"Select Categories",children:(0,r.jsx)(o.xu,{mt:2,children:(0,r.jsx)(o.Lt,{mt:.6,width:"190px",options:s.map(function(e){return e.description}),onSelected:function(e){return t("toggle_search_category",{category_id:d[e]})}})})})}),(0,r.jsx)("br",{}),s.filter(function(e){return a.categories.includes(e.category_id)}).map(function(e){return(0,r.jsx)(o.zx,{content:e.description,selected:!0,icon:"unlink",onClick:function(){return t("toggle_search_category",{category_id:e.category_id})}},e.category_id)})]}),(0,r.jsxs)(o.Kq.Item,{children:[(0,r.jsxs)(o.xu,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,r.jsx)(o.JO,{name:"search-plus",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Actions"]}),(0,r.jsx)(o.zx,{content:"Clear Search",icon:"eraser",onClick:function(){return t("clear_search")}}),a.ckey?(0,r.jsx)(o.zx,{mb:.5,content:"Stop Showing My Books",color:"bad",icon:"search",onClick:function(){return t("clear_ckey_search")}}):(0,r.jsx)(o.zx,{content:"Find My Books",icon:"search",onClick:function(){return t("find_users_books",{user_ckey:u})}})]})]})},p=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=i.external_booklist,s=i.archive_pagenumber,u=i.num_pages,d=i.login_state;return(0,r.jsxs)(o.$0,{fill:!0,scrollable:!0,title:"Book System Access",buttons:(0,r.jsxs)("div",{children:[(0,r.jsx)(o.zx,{icon:"angle-double-left",disabled:1===s,onClick:function(){return t("deincrementpagemax")}}),(0,r.jsx)(o.zx,{icon:"chevron-left",disabled:1===s,onClick:function(){return t("deincrementpage")}}),(0,r.jsx)(o.zx,{bold:!0,content:s,onClick:function(){return(0,c.modalOpen)("setpagenumber")}}),(0,r.jsx)(o.zx,{icon:"chevron-right",disabled:s===u,onClick:function(){return t("incrementpage")}}),(0,r.jsx)(o.zx,{icon:"angle-double-right",disabled:s===u,onClick:function(){return t("incrementpagemax")}})]}),children:[(0,r.jsx)(x,{}),(0,r.jsx)("hr",{}),(0,r.jsxs)(o.iA,{className:"Library__Booklist",children:[(0,r.jsxs)(o.iA.Row,{bold:!0,children:[(0,r.jsx)(o.iA.Cell,{children:"SSID"}),(0,r.jsx)(o.iA.Cell,{children:"Title"}),(0,r.jsx)(o.iA.Cell,{children:"Author"}),(0,r.jsx)(o.iA.Cell,{children:"Ratings"}),(0,r.jsx)(o.iA.Cell,{children:"Category"}),(0,r.jsx)(o.iA.Cell,{textAlign:"middle",children:"Actions"})]}),a.map(function(e){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:e.id}),(0,r.jsxs)(o.iA.Cell,{textAlign:"left",children:[(0,r.jsx)(o.JO,{name:"book",mr:.5}),e.title.length>45?e.title.substr(0,45)+"...":e.title]}),(0,r.jsx)(o.iA.Cell,{textAlign:"left",children:e.author.length>30?e.author.substr(0,30)+"...":e.author}),(0,r.jsxs)(o.iA.Cell,{children:[e.rating,(0,r.jsx)(o.JO,{name:"star",ml:.5,color:"yellow",verticalAlign:"middle"})]}),(0,r.jsx)(o.iA.Cell,{children:e.categories.join(", ").substr(0,45)}),(0,r.jsxs)(o.iA.Cell,{textAlign:"right",children:[1===d&&(0,r.jsx)(o.zx,{content:"Order",icon:"print",onClick:function(){return t("order_external_book",{bookid:e.id})}}),(0,r.jsx)(o.zx,{content:"More...",onClick:function(){return(0,c.modalOpen)("expand_info",{bookid:e.id})}})]})]},e.id)})]})]})},j=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=i.programmatic_booklist,s=i.login_state;return(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,title:"Corporate Book Catalog",children:(0,r.jsxs)(o.iA,{className:"Library__Booklist",children:[(0,r.jsxs)(o.iA.Row,{bold:!0,children:[(0,r.jsx)(o.iA.Cell,{children:"SSID"}),(0,r.jsx)(o.iA.Cell,{children:"Title"}),(0,r.jsx)(o.iA.Cell,{children:"Author"}),(0,r.jsx)(o.iA.Cell,{textAlign:"middle",children:"Actions"})]}),a.map(function(e,n){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:e.id}),(0,r.jsxs)(o.iA.Cell,{textAlign:"left",children:[(0,r.jsx)(o.JO,{name:"book",mr:2}),e.title]}),(0,r.jsx)(o.iA.Cell,{textAlign:"left",children:e.author}),(0,r.jsxs)(o.iA.Cell,{textAlign:"right",children:[1===s&&(0,r.jsx)(o.zx,{content:"Order",icon:"print",onClick:function(){return t("order_programmatic_book",{bookid:e.id})}}),(0,r.jsx)(o.zx,{content:"More...",onClick:function(){return(0,c.modalOpen)("expand_info",{bookid:e.id})}})]})]},n)})]})})},g=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=i.selectedbook,s=i.book_categories,u=i.user_ckey,d=[];return s.map(function(e){return d[e.description]=e.category_id}),(0,r.jsxs)(o.$0,{fill:!0,scrollable:!0,title:"Book System Upload",buttons:(0,r.jsx)(o.zx.Confirm,{bold:!0,width:9.5,icon:"upload",disabled:a.copyright,content:"Upload Book",onClick:function(){return t("uploadbook",{user_ckey:u})}}),children:[a.copyright?(0,r.jsx)(o.f7,{color:"red",children:"WARNING: You cannot upload or modify the attributes of a copyrighted book"}):(0,r.jsx)("br",{}),(0,r.jsxs)(o.xu,{ml:15,mb:3,fontSize:"1.2rem",bold:!0,children:[(0,r.jsx)(o.JO,{name:"search-plus",verticalAlign:"middle",size:3,mr:2}),"Book Uploader"]}),(0,r.jsxs)(o.Kq,{children:[(0,r.jsxs)(o.Kq.Item,{children:[(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Title",children:(0,r.jsx)(o.zx,{width:20,textAlign:"left",icon:"pen",disabled:a.copyright,content:a.title,onClick:function(){return(0,c.modalOpen)("edit_selected_title")}})}),(0,r.jsx)(o.H2.Item,{label:"Author",children:(0,r.jsx)(o.zx,{width:20,textAlign:"left",icon:"pen",disabled:a.copyright,content:a.author,onClick:function(){return(0,c.modalOpen)("edit_selected_author")}})}),(0,r.jsx)(o.H2.Item,{label:"Select Categories",children:(0,r.jsx)(o.xu,{children:(0,r.jsx)(o.Lt,{width:"240px",options:s.map(function(e){return e.description}),onSelected:function(e){return t("toggle_upload_category",{category_id:d[e]})}})})})]}),(0,r.jsx)("br",{}),s.filter(function(e){return a.categories.includes(e.category_id)}).map(function(e){return(0,r.jsx)(o.zx,{content:e.description,disabled:a.copyright,selected:!0,icon:"unlink",onClick:function(){return t("toggle_upload_category",{category_id:e.category_id})}},e.category_id)})]}),(0,r.jsx)(o.Kq.Item,{mr:75,children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Summary",children:(0,r.jsx)(o.zx,{icon:"pen",width:"auto",disabled:a.copyright,content:"Edit Summary",onClick:function(){return(0,c.modalOpen)("edit_selected_summary")}})}),(0,r.jsx)(o.H2.Item,{children:a.summary})]})})]})]})},b=function(e){var n=(0,l.nc)(),t=n.act,i=n.data.checkout_data;return(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,title:"Checked Out Books",children:(0,r.jsxs)(o.iA,{className:"Library__Booklist",children:[(0,r.jsxs)(o.iA.Row,{bold:!0,children:[(0,r.jsx)(o.iA.Cell,{children:"Patron"}),(0,r.jsx)(o.iA.Cell,{children:"Title"}),(0,r.jsx)(o.iA.Cell,{children:"Time Left"}),(0,r.jsx)(o.iA.Cell,{children:"Actions"})]}),i.map(function(e,n){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsxs)(o.iA.Cell,{children:[(0,r.jsx)(o.JO,{name:"user-tag"}),e.patron_name]}),(0,r.jsx)(o.iA.Cell,{textAlign:"left",children:e.title}),(0,r.jsx)(o.iA.Cell,{children:e.timeleft>=0?e.timeleft:"LATE"}),(0,r.jsx)(o.iA.Cell,{textAlign:"left",children:(0,r.jsx)(o.zx,{content:"Mark Lost",icon:"flag",color:"bad",disabled:e.timeleft>=0,onClick:function(){return t("reportlost",{libraryid:e.libraryid})}})})]},n)})]})})},y=function(e){var n=(0,l.nc)(),t=(n.act,n.data).inventory_list;return(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,title:"Library Inventory",children:(0,r.jsxs)(o.iA,{className:"Library__Booklist",children:[(0,r.jsxs)(o.iA.Row,{bold:!0,children:[(0,r.jsx)(o.iA.Cell,{children:"LIB ID"}),(0,r.jsx)(o.iA.Cell,{children:"Title"}),(0,r.jsx)(o.iA.Cell,{children:"Author"}),(0,r.jsx)(o.iA.Cell,{children:"Status"})]}),t.map(function(e,n){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:e.libraryid}),(0,r.jsxs)(o.iA.Cell,{textAlign:"left",children:[(0,r.jsx)(o.JO,{name:"book"})," ",e.title]}),(0,r.jsx)(o.iA.Cell,{textAlign:"left",children:e.author}),(0,r.jsx)(o.iA.Cell,{textAlign:"left",children:e.checked_out?"Checked Out":"Available"})]},n)})]})})};(0,c.modalRegisterBodyOverride)("expand_info",function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=e.args,s=i.user_ckey;return(0,r.jsxs)(o.$0,{children:[(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Title",children:a.title}),(0,r.jsx)(o.H2.Item,{label:"Author",children:a.author}),(0,r.jsx)(o.H2.Item,{label:"Summary",children:a.summary}),(0,r.jsxs)(o.H2.Item,{label:"Rating",children:[a.rating,(0,r.jsx)(o.JO,{name:"star",color:"yellow",verticalAlign:"top"})]}),!a.isProgrammatic&&(0,r.jsx)(o.H2.Item,{label:"Categories",children:a.categories.join(", ")})]}),(0,r.jsx)("br",{}),s===a.ckey&&(0,r.jsx)(o.zx,{content:"Delete Book",icon:"trash",color:"red",disabled:a.isProgrammatic,onClick:function(){return t("delete_book",{bookid:a.id,user_ckey:s})}}),(0,r.jsx)(o.zx,{content:"Report Book",icon:"flag",color:"red",disabled:a.isProgrammatic,onClick:function(){return(0,c.modalOpen)("report_book",{bookid:a.id})}}),(0,r.jsx)(o.zx,{content:"Rate Book",icon:"star",color:"caution",disabled:a.isProgrammatic,onClick:function(){return(0,c.modalOpen)("rate_info",{bookid:a.id})}})]})}),(0,c.modalRegisterBodyOverride)("report_book",function(e){var n=(0,l.nc)(),t=n.act,a=n.data,c=e.args,s=a.selected_report,u=a.report_categories,d=a.user_ckey;return(0,r.jsxs)(o.$0,{level:2,m:"-1rem",pb:"1.5rem",title:"Report this book for Rule Violations",children:[(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Title",children:c.title}),(0,r.jsx)(o.H2.Item,{label:"Reasons",children:(0,r.jsx)(o.xu,{children:u.map(function(e,n){return(0,r.jsxs)(i.Fragment,{children:[(0,r.jsx)(o.zx,{content:e.description,selected:e.category_id===s,onClick:function(){return t("set_report",{report_type:e.category_id})}}),(0,r.jsx)("br",{})]},n)})})})]}),(0,r.jsx)(o.zx.Confirm,{bold:!0,icon:"paper-plane",content:"Submit Report",onClick:function(){return t("submit_report",{bookid:c.id,user_ckey:d})}})]})}),(0,c.modalRegisterBodyOverride)("rate_info",function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=e.args,c=i.user_ckey;return(0,r.jsxs)(o.$0,{level:2,m:"-1rem",pb:"1.5rem",children:[(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Title",children:a.title}),(0,r.jsx)(o.H2.Item,{label:"Author",children:a.author}),(0,r.jsxs)(o.H2.Item,{label:"Rating",children:[a.current_rating?a.current_rating:0,(0,r.jsx)(o.JO,{name:"star",color:"yellow",ml:.5,verticalAlign:"middle"})]}),(0,r.jsx)(o.H2.Item,{label:"Total Ratings",children:a.total_ratings?a.total_ratings:0})]}),(0,r.jsx)(f,{}),(0,r.jsx)(o.zx.Confirm,{mt:2,content:"Submit",icon:"paper-plane",onClick:function(){return t("rate_book",{bookid:a.id,user_ckey:c})}})]})})},4713:function(e,n,t){"use strict";t.r(n),t.d(n,{LibraryManager:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(5279),c=function(e){return(0,r.jsxs)(l.Rz,{width:600,height:600,children:[(0,r.jsx)(a.ComplexModal,{}),(0,r.jsx)(l.Rz.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,r.jsx)(s,{})})]})},s=function(e){var n=(0,o.nc)();switch((n.act,n.data).pagestate){case 1:return(0,r.jsx)(u,{});case 2:return(0,r.jsx)(f,{});case 3:return(0,r.jsx)(d,{});default:return"WE SHOULDN'T BE HERE!"}},u=function(e){var n=(0,o.nc)(),t=n.act;return n.data,(0,r.jsxs)(i.$0,{children:[(0,r.jsxs)(i.xu,{fontSize:"1.4rem",bold:!0,children:[(0,r.jsx)(i.JO,{name:"user-shield",verticalAlign:"middle",size:3,mr:"1rem"}),"Library Manager"]}),(0,r.jsx)("br",{}),(0,r.jsx)(i.zx,{icon:"trash",width:"auto",color:"danger",content:"Delete Book by SSID",onClick:function(){return(0,a.modalOpen)("specify_ssid_delete")}}),(0,r.jsx)(i.zx,{icon:"user-slash",width:"auto",color:"danger",content:"Delete All Books By CKEY",onClick:function(){return(0,a.modalOpen)("specify_ckey_delete")}}),(0,r.jsx)("br",{}),(0,r.jsx)(i.zx,{icon:"search",width:"auto",content:"View All Books By CKEY",onClick:function(){return(0,a.modalOpen)("specify_ckey_search")}}),(0,r.jsx)(i.zx,{icon:"search",width:"auto",content:"View All Reported Books",onClick:function(){return t("view_reported_books")}})]})},d=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.reports;return(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.iA,{className:"Library__Booklist",children:[(0,r.jsxs)(i.xu,{fontSize:"1.2rem",bold:!0,children:[(0,r.jsx)(i.JO,{name:"user-secret",verticalAlign:"middle",size:2,mr:"1rem"}),(0,r.jsx)("br",{}),"All Reported Books",(0,r.jsx)("br",{})]}),(0,r.jsx)(i.zx,{content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){return t("return")}}),(0,r.jsxs)(i.iA.Row,{bold:!0,children:[(0,r.jsx)(i.iA.Cell,{children:"Uploader CKEY"}),(0,r.jsx)(i.iA.Cell,{children:"SSID"}),(0,r.jsx)(i.iA.Cell,{children:"Title"}),(0,r.jsx)(i.iA.Cell,{children:"Author"}),(0,r.jsx)(i.iA.Cell,{children:"Report Type"}),(0,r.jsx)(i.iA.Cell,{children:"Reporter Ckey"}),(0,r.jsx)(i.iA.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),l.map(function(e){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{bold:!0,children:e.uploader_ckey}),(0,r.jsx)(i.iA.Cell,{children:e.id}),(0,r.jsxs)(i.iA.Cell,{textAlign:"left",children:[(0,r.jsx)(i.JO,{name:"book"}),e.title]}),(0,r.jsx)(i.iA.Cell,{textAlign:"left",children:e.author}),(0,r.jsx)(i.iA.Cell,{textAlign:"left",children:e.report_description}),(0,r.jsx)(i.iA.Cell,{bold:!0,children:e.reporter_ckey}),(0,r.jsxs)(i.iA.Cell,{children:[(0,r.jsx)(i.zx.Confirm,{content:"Delete",icon:"trash",onClick:function(){return t("delete_book",{bookid:e.id})}}),(0,r.jsx)(i.zx,{content:"Unflag",icon:"flag",color:"caution",onClick:function(){return t("unflag_book",{bookid:e.id})}}),(0,r.jsx)(i.zx,{content:"View",onClick:function(){return t("view_book",{bookid:e.id})}})]})]},e.id)})]})})},f=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.ckey,c=l.booklist;return(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.iA,{className:"Library__Booklist",children:[(0,r.jsxs)(i.xu,{fontSize:"1.2rem",bold:!0,children:[(0,r.jsx)(i.JO,{name:"user",verticalAlign:"middle",size:2,mr:"1rem"}),(0,r.jsx)("br",{}),"Books uploaded by ",a,(0,r.jsx)("br",{})]}),(0,r.jsx)(i.zx,{mt:1,content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){return t("return")}}),(0,r.jsxs)(i.iA.Row,{bold:!0,children:[(0,r.jsx)(i.iA.Cell,{children:"SSID"}),(0,r.jsx)(i.iA.Cell,{children:"Title"}),(0,r.jsx)(i.iA.Cell,{children:"Author"}),(0,r.jsx)(i.iA.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),c.map(function(e){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:e.id}),(0,r.jsxs)(i.iA.Cell,{textAlign:"left",children:[(0,r.jsx)(i.JO,{name:"book"}),e.title]}),(0,r.jsx)(i.iA.Cell,{textAlign:"left",children:e.author}),(0,r.jsxs)(i.iA.Cell,{textAlign:"right",children:[(0,r.jsx)(i.zx.Confirm,{content:"Delete",icon:"trash",color:"bad",onClick:function(){return t("delete_book",{bookid:e.id})}}),(0,r.jsx)(i.zx,{content:"View",onClick:function(){return t("view_book",{bookid:e.id})}})]})]},e.id)})]})})}},3868:function(e,n,t){"use strict";t.r(n),t.d(n,{ListInputModal:()=>h});var r=t(1557),i=t(2778),o=t(3987),l=t(196),a=t(4893),c=t(3817),s=t(3100),u=t(4799);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t10),2),S=C[0],I=C[1],A=f((0,i.useState)(""),2),O=A[0],z=A[1],P=function(e){var n,t,r,i,o=H.length-1;e===l.Hb?null===k||k===o?(_(0),null==(n=document.getElementById("0"))||n.scrollIntoView()):(_(k+1),null==(t=document.getElementById((k+1).toString()))||t.scrollIntoView()):e===l.R4&&(null===k||0===k?(_(o),null==(r=document.getElementById(o.toString()))||r.scrollIntoView()):(_(k-1),null==(i=document.getElementById((k-1).toString()))||i.scrollIntoView()))},R=function(e){var n=String.fromCharCode(e),t=p.find(function(e){return null==e?void 0:e.toLowerCase().startsWith(null==n?void 0:n.toLowerCase())});if(t){var r,i=p.indexOf(t);_(i),null==(r=document.getElementById(i.toString()))||r.scrollIntoView()}},E=function(){I(!S),z("")},H=p.filter(function(e){return null==e?void 0:e.toLowerCase().includes(O.toLowerCase())}),T=350+Math.ceil(g.length/3);return S||setTimeout(function(){var e;return null==(e=document.getElementById(k.toString()))?void 0:e.focus()},1),(0,r.jsxs)(c.Rz,{title:v,width:325,height:T,children:[y&&(0,r.jsx)(u.Loader,{value:y}),(0,r.jsx)(c.Rz.Content,{onKeyDown:function(e){var n=window.event?e.which:e.keyCode;(n===l.Hb||n===l.R4)&&(e.preventDefault(),P(n)),n===l.tt&&(e.preventDefault(),t("submit",{entry:H[k]})),!S&&n>=l.Kx&&n<=l.au&&(e.preventDefault(),R(n)),n===l.KW&&(e.preventDefault(),t("cancel"))},children:(0,r.jsx)(o.$0,{buttons:(0,r.jsx)(o.zx,{compact:!0,icon:S?"search":"font",selected:!0,tooltip:S?"Search Mode. Type to search or use arrow keys to select manually.":"Hotkey Mode. Type a letter to jump to the first match. Enter to select.",tooltipPosition:"left",onClick:function(){return E()}}),className:"ListInput__Section",fill:!0,title:g,children:(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(m,{filteredItems:H,onClick:function(e){e!==k&&_(e)},onFocusSearch:function(){I(!1),I(!0)},searchBarVisible:S,selected:k})}),(0,r.jsx)(o.Kq.Item,{m:0,children:S&&(0,r.jsx)(x,{filteredItems:H,onSearch:function(e){var n;e!==O&&(z(e),_(0),null==(n=document.getElementById("0"))||n.scrollIntoView())},searchQuery:O,selected:k})}),(0,r.jsx)(o.Kq.Item,{mt:.5,children:(0,r.jsx)(s.InputButtons,{input:H[k]})})]})})})]})},m=function(e){var n=(0,a.nc)().act,t=e.filteredItems,i=e.onClick,c=e.onFocusSearch,s=e.searchBarVisible,u=e.selected;return(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,children:t.map(function(e,a){return(0,r.jsx)(o.zx,{fluid:!0,color:"transparent",id:a,onClick:function(){return i(a)},onMouseDown:function(e){2===e.detail&&(e.preventDefault(),n("submit",{entry:t[u]}))},onKeyDown:function(e){var n=window.event?e.which:e.keyCode;s&&n>=l.Kx&&n<=l.au&&(e.preventDefault(),c())},selected:a===u,style:{animation:"none",transition:"none"},children:e.replace(/^\w/,function(e){return e.toUpperCase()})},a)})})},x=function(e){var n=(0,a.nc)().act,t=e.filteredItems,i=e.onSearch,l=e.searchQuery,c=e.selected;return(0,r.jsx)(o.II,{width:"100%",autoFocus:!0,autoSelect:!0,placeholder:"Search...",value:l,onChange:function(e){return i(e)},onEnter:function(){n("submit",{entry:t[c]})}})}},2684:function(e,n,t){"use strict";t.r(n),t.d(n,{Loadout:()=>f});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t2?Object.entries(s.gears).reduce(function(e,n){var t=u(n,2),r=(t[0],t[1]);return e.concat(Object.entries(r).map(function(e){var n=u(e,2);return{key:n[0],gear:n[1]}}))},[]).filter(function(e){return S(e.gear)}):Object.entries(s.gears[x]).map(function(e){var n=u(e,2);return{key:n[0],gear:n[1]}})).sort(d[v]),_&&(n=n.reverse()),(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,title:x,buttons:(0,r.jsxs)(o.Kq,{children:[(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.Lt,{height:1.66,selected:v,options:Object.keys(d),onSelected:function(e){return w(e)}})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{icon:_?"arrow-down-wide-short":"arrow-down-short-wide",tooltip:_?"Ascending order":"Descending order",tooltipPosition:"bottom-end",onClick:function(){return C(!_)}})}),p&&(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.II,{width:20,placeholder:"Search...",value:g,onChange:function(e){return b(e)}})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{icon:"magnifying-glass",selected:p,tooltip:"Toggle search field",tooltipPosition:"bottom-end",onClick:function(){j(!p),b("")}})})]}),children:n.map(function(e){var n=e.key,t=e.gear,i=Object.keys(s.selected_gears).includes(n),l=1===t.cost?"".concat(t.cost," Point"):"".concat(t.cost," Points"),a=(0,r.jsxs)(o.xu,{children:[t.name.length>12&&(0,r.jsx)(o.xu,{children:t.name}),t.gear_tier>f&&(0,r.jsx)(o.xu,{mt:t.name.length>12&&1.5,textColor:"red",children:"That gear is only available at a higher donation tier than you are on."})]}),d=(0,r.jsxs)(r.Fragment,{children:[t.allowed_roles&&(0,r.jsx)(o.zx,{width:"22px",color:"transparent",icon:"user",tooltip:(0,r.jsx)(o.$0,{m:-1,title:"Allowed Roles",children:t.allowed_roles.map(function(e){return(0,r.jsx)(o.xu,{children:e},e)})}),tooltipPosition:"left"}),Object.entries(t.tweaks).map(function(e){var n=u(e,2),t=n[0];return n[1].map(function(e){return(0,r.jsx)(o.zx,{width:"22px",color:"transparent",icon:e.icon,tooltip:e.tooltip,tooltipPosition:"top"},t)})}),(0,r.jsx)(o.zx,{width:"22px",color:"transparent",icon:"info",tooltip:t.desc,tooltipPosition:"top"})]}),x=(0,r.jsxs)(o.xu,{className:"Loadout-InfoBox",children:[(0,r.jsx)(o.xu,{style:{flexGrow:1},fontSize:1,color:"gold",opacity:.75,children:t.gear_tier>0&&"Tier ".concat(t.gear_tier)}),(0,r.jsx)(o.xu,{fontSize:.75,opacity:.66,children:l})]});return(0,r.jsx)(o.zA,{m:.5,imageSize:84,dmIcon:t.icon,dmIconState:t.icon_state,tooltip:(t.name.length>12||t.gear_tier>0)&&a,tooltipPosition:"bottom",selected:i,disabled:t.gear_tier>f||h+t.cost>m&&!i,buttons:d,buttonsAlt:x,onClick:function(){return c("toggle_gear",{gear:n})},children:t.name},n)})})},x=function(e){var n=(0,a.nc)(),t=n.act,i=n.data,l=e.setTweakedGear,c=Object.entries(i.gears).reduce(function(e,n){var t=u(n,2),r=Object.entries((t[0],t[1])).filter(function(e){var n=u(e,1)[0];return Object.keys(i.selected_gears).includes(n)}).map(function(e){var n=u(e,2);return function(e){for(var n=1;n0&&(0,r.jsx)(o.zx,{icon:"gears",iconColor:"gray",width:"33px",onClick:function(){return l(e)}}),(0,r.jsx)(o.zx,{icon:"times",iconColor:"red",width:"32px",onClick:function(){return t("toggle_gear",{gear:e.key})}})]}),children:e.name},e.key)})})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.$0,{children:(0,r.jsx)(o.ko,{value:i.gear_slots,maxValue:i.max_gear_slots,ranges:{bad:[i.max_gear_slots,1/0],average:[.66*i.max_gear_slots,i.max_gear_slots],good:[0,.66*i.max_gear_slots]},children:(0,r.jsxs)(o.xu,{textAlign:"center",children:["Used points ",i.gear_slots,"/",i.max_gear_slots]})})})})]})},p=function(e){var n=(0,a.nc)(),t=n.act,i=n.data,l=e.tweakedGear,c=e.setTweakedGear;return(0,r.jsx)(o.Pz,{children:(0,r.jsx)(o.xu,{className:"Loadout-Modal__background",children:(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,width:20,height:20,title:l.name,buttons:(0,r.jsx)(o.zx,{color:"red",icon:"times",tooltip:"Close",tooltipPosition:"top",onClick:function(){return c("")}}),children:(0,r.jsx)(o.H2,{children:Object.entries(l.tweaks).map(function(e){var n=u(e,2),a=n[0];return n[1].map(function(e){var n=i.selected_gears[l.key][a];return(0,r.jsxs)(o.H2.Item,{label:e.name,color:n?"":"gray",buttons:(0,r.jsx)(o.zx,{color:"transparent",icon:"pen",onClick:function(){return t("set_tweak",{gear:l.key,tweak:a})}}),children:[n||"Default",(0,r.jsx)(o.xu,{inline:!0,ml:1,width:1,height:1,verticalAlign:"middle",style:{backgroundColor:"".concat(n)}})]},a)})})})})})})}},6027:function(e,n,t){"use strict";t.r(n),t.d(n,{MODsuit:()=>_,MODsuitContent:()=>k});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0&&e.cooldown/10||"0","/",e.cooldown_time/10,"s"]}),(0,r.jsxs)(o.iA.Cell,{textAlign:"center",children:[(0,r.jsx)(o.zx,{onClick:function(){return t("select",{ref:e.ref})},icon:"bullseye",selected:e.module_active,tooltip:g(e.module_type),tooltipPosition:"left",disabled:!e.module_type}),(0,r.jsx)(o.zx,{onClick:function(){return h(e.ref)},icon:"cog",selected:f===e.ref,tooltip:"Configure",tooltipPosition:"left",disabled:0===Object.keys(e.configuration_data).length}),(0,r.jsx)(o.zx,{onClick:function(){return t("pin",{ref:e.ref})},icon:"thumbtack",selected:e.pinned,tooltip:"Pin",tooltipPosition:"left",disabled:!e.module_type})]})]})]}),(0,r.jsx)(o.xu,{children:e.description})]})})},e.ref)})||(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.xu,{textAlign:"center",children:"No Modules Detected"})})})})},k=function(){var e=(0,l.nc)().data.interface_break;return(0,r.jsx)(o.$0,{fill:!0,scrollable:!e,children:!!e&&(0,r.jsx)(x,{})||(0,r.jsxs)(o.Kq,{vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(b,{})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(y,{})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(v,{})}),(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(w,{})})]})})},_=function(){var e=(0,l.nc)().data.ui_theme;return(0,r.jsx)(a.Rz,{theme:e,width:400,height:620,children:(0,r.jsx)(a.Rz.Content,{children:(0,r.jsx)(o.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(k,{})})})})}},3330:function(e,n,t){"use strict";t.r(n),t.d(n,{MagnetController:()=>d});var r=t(1557),i=t(3987),o=t(8153),l=t(4893),a=t(3817),c=t(5279);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);ta});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data.recharge_port,c=a&&a.mech,s=c&&c.cell,u=c&&c.name;return(0,r.jsx)(l.Rz,{width:400,height:155,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{fill:!0,title:u?"Mech status: "+u:"Mech status",textAlign:"center",buttons:(0,r.jsx)(i.zx,{icon:"sync",content:"Sync",onClick:function(){return t("reconnect")}}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Integrity",children:!a&&(0,r.jsx)(i.f7,{children:"No power port detected. Please re-sync."})||!c&&(0,r.jsx)(i.f7,{children:"No mech detected."})||(0,r.jsx)(i.ko,{value:c.health/c.maxhealth,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]}})}),(0,r.jsx)(i.H2.Item,{label:"Power",children:!a&&(0,r.jsx)(i.f7,{children:"No power port detected. Please re-sync."})||!c&&(0,r.jsx)(i.f7,{children:"No mech detected."})||!s&&(0,r.jsx)(i.f7,{children:"No cell is installed."})||(0,r.jsxs)(i.ko,{value:s.charge/s.maxcharge,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]},children:[(0,r.jsx)(i.zt,{value:s.charge})," / "+s.maxcharge]})})]})})})})}},8721:function(e,n,t){"use strict";t.r(n),t.d(n,{MechaControlConsole:()=>c});var r=t(1557),i=t(3987),o=t(8531),l=t(4893),a=t(3817),c=function(e){var n=(0,l.nc)(),t=n.act,c=n.data,s=c.beacons,u=c.stored_data;return u.length?(0,r.jsx)(a.Rz,{width:420,height:500,children:(0,r.jsx)(a.Rz.Content,{scrollable:!0,children:(0,r.jsx)(i.$0,{title:"Log",buttons:(0,r.jsx)(i.zx,{icon:"window-close",onClick:function(){return t("clear_log")}}),children:u.map(function(e){return(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.xu,{color:"label",children:["(",e.time,")"]}),(0,r.jsx)(i.xu,{children:(0,o.aV)(e.message)})]},e.time)})})})}):(0,r.jsx)(a.Rz,{width:420,height:500,children:(0,r.jsx)(a.Rz.Content,{scrollable:!0,children:s.length&&s.map(function(e){return(0,r.jsx)(i.$0,{title:e.name,buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{icon:"comment",onClick:function(){return t("send_message",{mt:e.uid})},children:"Message"}),(0,r.jsx)(i.zx,{icon:"eye",onClick:function(){return t("get_log",{mt:e.uid})},children:"View Log"}),(0,r.jsx)(i.zx.Confirm,{color:"red",content:"Sabotage",icon:"bomb",onClick:function(){return t("shock",{mt:e.uid})}})]}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Health",children:(0,r.jsx)(i.ko,{ranges:{good:[.75*e.maxHealth,1/0],average:[.5*e.maxHealth,.75*e.maxHealth],bad:[-1/0,.5*e.maxHealth]},value:e.health,maxValue:e.maxHealth})}),(0,r.jsx)(i.H2.Item,{label:"Cell Charge",children:e.cell&&(0,r.jsx)(i.ko,{ranges:{good:[.75*e.cellMaxCharge,1/0],average:[.5*e.cellMaxCharge,.75*e.cellMaxCharge],bad:[-1/0,.5*e.cellMaxCharge]},value:e.cellCharge,maxValue:e.cellMaxCharge})||(0,r.jsx)(i.f7,{children:"No Cell Installed"})}),(0,r.jsxs)(i.H2.Item,{label:"Air Tank",children:[e.airtank,"kPa"]}),(0,r.jsx)(i.H2.Item,{label:"Pilot",children:e.pilot||"Unoccupied"}),(0,r.jsx)(i.H2.Item,{label:"Location",children:(0,o.LF)(e.location)||"Unknown"}),(0,r.jsx)(i.H2.Item,{label:"Active Equipment",children:e.active||"None"}),e.cargoMax&&(0,r.jsx)(i.H2.Item,{label:"Cargo Space",children:(0,r.jsx)(i.ko,{ranges:{bad:[.75*e.cargoMax,1/0],average:[.5*e.cargoMax,.75*e.cargoMax],good:[-1/0,.5*e.cargoMax]},value:e.cargoUsed,maxValue:e.cargoMax})})||null]})},e.name)})||(0,r.jsx)(i.f7,{children:"No mecha beacons found."})})})}},6984:function(e,n,t){"use strict";t.r(n),t.d(n,{MedicalRecords:()=>b});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817),s=t(5279),u=t(8061),d=t(8575),f=t(7484),h=t(7389);function m(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);td});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817),c=t(9576),s=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=e.product,c=e.productImage,s=e.productCategory,u=i.user_money;return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{collapsing:!0,children:(0,r.jsx)("img",{src:"data:image/jpeg;base64,".concat(c),style:{verticalAlign:"middle",width:"32px",margin:"0px"}})}),(0,r.jsx)(o.iA.Cell,{bold:!0,children:a.name}),(0,r.jsx)(o.iA.Cell,{collapsing:!0,textAlign:"center",children:(0,r.jsx)(o.zx,{disabled:a.price>u,icon:"shopping-cart",content:a.price,textAlign:"left",onClick:function(){return t("purchase",{name:a.name,category:s})}})})]})},u=function(e){var n=(0,l.nc)().data,t=(0,i.useContext)(c.default).tabIndex,a=n.products,u=n.imagelist,d=["apparel","toy","decoration"];return(0,r.jsx)(o.iA,{children:a[d[t]].map(function(e){return(0,r.jsx)(s,{product:e,productImage:u[e.path],productCategory:d[t]},e.name)})})},d=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,s=i.user_cash,d=i.inserted_cash;return(0,r.jsx)(a.Rz,{title:"Merch Computer",width:450,height:600,children:(0,r.jsx)(a.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.$0,{title:"User",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(o.xu,{color:"light-grey",inline:!0,mr:"0.5rem",children:["There is ",(0,r.jsx)("b",{children:d})," credits inserted."]}),(0,r.jsx)(o.zx,{disabled:!d,icon:"money-bill-wave-alt",content:"Dispense Change",textAlign:"left",onClick:function(){return t("change")}})]}),children:(0,r.jsxs)(o.Kq.Item,{children:["Doing your job and not getting any recognition at work? Well, welcome to the merch shop! Here, you can buy cool things in exchange for money you earn when you have completed your Job Objectives.",null!==s&&(0,r.jsxs)(o.xu,{mt:"0.5rem",children:["Your balance is ",(0,r.jsxs)("b",{children:[s||0," credits"]}),"."]})]})})}),(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,title:"Products",children:(0,r.jsxs)(c.default.Default,{tabIndex:1,children:[(0,r.jsx)(f,{}),(0,r.jsx)(u,{})]})})})]})})})},f=function(e){var n=(0,l.nc)().data,t=(0,i.useContext)(c.default),a=t.tabIndex,s=t.setTabIndex;return n.login_state,(0,r.jsxs)(o.mQ,{children:[(0,r.jsx)(o.mQ.Tab,{icon:"dice",selected:1===a,onClick:function(){return s(1)},children:"Toys"}),(0,r.jsx)(o.mQ.Tab,{icon:"flag",selected:2===a,onClick:function(){return s(2)},children:"Decorations"})]})}},6992:function(e,n,t){"use strict";t.r(n),t.d(n,{MiningVendor:()=>f});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=e[1].price,e[1]}).sort(d[h]);if(0!==t.length)return m&&(t=t.reverse()),j=!0,(0,r.jsx)(p,{title:e[0],items:t,gridLayout:u},e[0])});return(0,r.jsx)(o.Kq.Item,{grow:!0,mt:.5,children:(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,children:j?g:(0,r.jsx)(o.xu,{color:"label",children:"No items matching your criteria was found!"})})})},x=function(e){var n=e.gridLayout,t=e.setGridLayout,i=e.setSearchText,l=e.sortOrder,a=e.setSortOrder,c=e.descending,s=e.setDescending;return(0,r.jsx)(o.xu,{children:(0,r.jsxs)(o.Kq,{fill:!0,children:[(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.II,{fluid:!0,mt:.2,placeholder:"Search by item name..",onChange:function(e){return i(e)}})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{icon:n?"list":"table-cells-large",height:1.75,tooltip:n?"Toggle List Layout":"Toggle Grid Layout",tooltipPosition:"bottom-start",onClick:function(){return t(!n)}})}),(0,r.jsx)(o.Kq.Item,{basis:"30%",children:(0,r.jsx)(o.Lt,{selected:l,options:Object.keys(d),width:"100%",onSelected:function(e){return a(e)}})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{icon:c?"arrow-down":"arrow-up",height:1.75,tooltip:c?"Descending order":"Ascending order",tooltipPosition:"bottom-start",onClick:function(){return s(!c)}})})]})})},p=function(e){var n,t,i=(0,a.nc)(),l=i.act,c=i.data,s=e.title,u=e.items,d=e.gridLayout,f=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["title","items","gridLayout"]);return(0,r.jsx)(o.zF,(n=function(e){for(var n=1;na});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.gamestatus,s=a.cand_name,u=a.cand_birth,d=a.cand_age,f=a.cand_species,h=a.cand_planet,m=a.cand_job,x=a.cand_records,p=a.cand_curriculum,j=a.total_curriculums,g=a.reason;return 0===c?(0,r.jsx)(l.Rz,{width:400,height:550,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsxs)(i.$0,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{pt:"45%",fontSize:"31px",color:"white",textAlign:"center",bold:!0,children:"Nanotrasen Recruiter Simulator"}),(0,r.jsx)(i.Kq.Item,{pt:"1%",fontSize:"16px",textAlign:"center",color:"label",children:"Work as the Nanotrasen recruiter and avoid hiring incompetent employees!"})]})}),(0,r.jsxs)(i.$0,{children:[(0,r.jsx)(i.zx,{textAlign:"center",lineHeight:2,fluid:!0,icon:"play",color:"green",content:"Begin Shift",onClick:function(){return t("start_game")}}),(0,r.jsx)(i.zx,{textAlign:"center",lineHeight:2,fluid:!0,icon:"info",color:"blue",content:"Guide",onClick:function(){return t("instructions")}})]})]})})}):1===c?(0,r.jsx)(l.Rz,{width:400,height:550,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(i.$0,{fill:!0,color:"grey",title:"Guide",buttons:(0,r.jsx)(i.zx,{icon:"arrow-left",content:"Main Menu",onClick:function(){return t("back_to_menu")}}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"1#",color:"silver",children:["To win this game you must hire/dismiss ",(0,r.jsx)("b",{children:j})," candidates, one wrongly made choice leads to a game over."]}),(0,r.jsx)(i.H2.Item,{label:"2#",color:"silver",children:"Make the right choice by truly putting yourself into the skin of a recruiter working for Nanotrasen!"}),(0,r.jsxs)(i.H2.Item,{label:"3#",color:"silver",children:[(0,r.jsx)("b",{children:"Unique"})," characters may appear, pay attention to them!"]}),(0,r.jsx)(i.H2.Item,{label:"4#",color:"silver",children:"Make sure to pay attention to details like age, planet names, the requested job and even the species of the candidate!"}),(0,r.jsxs)(i.H2.Item,{label:"5#",color:"silver",children:["Not every employment record is good, remember to make your choice based on the ",(0,r.jsx)("b",{children:"company morals"}),"!"]}),(0,r.jsx)(i.H2.Item,{label:"6#",color:"silver",children:"The planet of origin has no restriction on the species of the candidate, don't think too much when you see humans that came from Boron!"}),(0,r.jsxs)(i.H2.Item,{label:"7#",color:"silver",children:["Pay attention to ",(0,r.jsx)("b",{children:"typos"})," and ",(0,r.jsx)("b",{children:"missing words"}),", these do make for bad applications!"]}),(0,r.jsxs)(i.H2.Item,{label:"8#",color:"silver",children:["Remember, you are recruiting people to work at one of the many NT stations, so no hiring for"," ",(0,r.jsx)("b",{children:"jobs"})," that they ",(0,r.jsx)("b",{children:"don't offer"}),"!"]}),(0,r.jsxs)(i.H2.Item,{label:"9#",color:"silver",children:["Keep your eyes open for incompatible ",(0,r.jsx)("b",{children:"naming schemes"}),", no company wants a Vox named Joe!"]}),(0,r.jsxs)(i.H2.Item,{label:"10#",color:"silver",children:["For some unknown reason ",(0,r.jsx)("b",{children:"clowns"})," are never denied by the company, no matter what."]})]})})})})}):2===c?(0,r.jsx)(l.Rz,{width:400,height:550,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsxs)(i.$0,{fill:!0,scrollable:!0,color:"label",fontSize:"14px",title:"Employment Applications",children:[(0,r.jsxs)(i.xu,{fontSize:"24px",textAlign:"center",color:"silver",bold:!0,children:["Candidate Number #",p]}),(0,r.jsx)("br",{}),(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Name",color:"silver",children:(0,r.jsx)("b",{children:s})}),(0,r.jsx)(i.H2.Item,{label:"Species",color:"silver",children:(0,r.jsx)("b",{children:f})}),(0,r.jsx)(i.H2.Item,{label:"Age",color:"silver",children:(0,r.jsx)("b",{children:d})}),(0,r.jsx)(i.H2.Item,{label:"Date of Birth",color:"silver",children:(0,r.jsx)("b",{children:u})}),(0,r.jsx)(i.H2.Item,{label:"Planet of Origin",color:"silver",children:(0,r.jsx)("b",{children:h})}),(0,r.jsx)(i.H2.Item,{label:"Requested Job",color:"silver",children:(0,r.jsx)("b",{children:m})}),(0,r.jsx)(i.H2.Item,{label:"Employment Records",color:"silver",children:(0,r.jsx)("b",{children:x})})]})]})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{fill:!0,title:"Stamp the application!",color:"grey",textAlign:"center",children:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,basis:0,children:(0,r.jsx)(i.zx,{fluid:!0,color:"red",content:"Dismiss",fontSize:"150%",icon:"ban",lineHeight:4.5,onClick:function(){return t("dismiss")}})}),(0,r.jsx)(i.Kq.Item,{grow:!0,basis:0,children:(0,r.jsx)(i.zx,{fluid:!0,color:"green",content:"Hire",fontSize:"150%",icon:"arrow-circle-up",lineHeight:4.5,onClick:function(){return t("hire")}})})]})})})]})})}):3===c?(0,r.jsx)(l.Rz,{width:400,height:550,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsxs)(i.$0,{pt:"40%",fill:!0,children:[(0,r.jsx)(i.Kq.Item,{bold:!0,color:"red",fontSize:"50px",textAlign:"center",children:"Game Over"}),(0,r.jsx)(i.Kq.Item,{fontSize:"15px",color:"label",textAlign:"center",children:g}),(0,r.jsxs)(i.Kq.Item,{color:"blue",fontSize:"20px",textAlign:"center",pt:"10px",children:["FINAL SCORE: ",p-1,"/",j]})]})}),(0,r.jsx)(i.$0,{children:(0,r.jsx)(i.zx,{lineHeight:4,fluid:!0,icon:"arrow-left",content:"Main Menu",onClick:function(){return t("back_to_menu")}})})]})})}):void 0}},6654:function(e,n,t){"use strict";t.r(n),t.d(n,{Newscaster:()=>v});var r=t(1557),i=t(2778),o=t(3987),l=t(3946),a=t(4893),c=t(9242),s=t(3817),u=t(5279),d=t(7389);function f(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function p(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(e);!(l=(t=i.next()).done)&&(o.push(t.value),!n||o.length!==n);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw r}}return o}}(e,n)||j(e,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,n){if(e){if("string"==typeof e)return f(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return f(e,n)}}var g=["security","engineering","medical","science","service","supply"],b={security:{title:"Security",fluff_text:"Help keep the crew safe"},engineering:{title:"Engineering",fluff_text:"Ensure the station runs smoothly"},medical:{title:"Medical",fluff_text:"Practice medicine and save lives"},science:{title:"Science",fluff_text:"Develop new technologies"},service:{title:"Service",fluff_text:"Provide amenities to the crew"},supply:{title:"Supply",fluff_text:"Keep the station supplied"}},y=(0,i.createContext)(null),v=function(e){var n,t=(0,a.nc)(),c=t.act,f=t.data,h=f.is_security,m=f.is_admin,x=f.is_silent,j=f.is_printing,g=f.screen,b=f.channels,v=f.channel_idx,C=void 0===v?-1:v,S=p((0,i.useState)(!1),2),A=S[0],O=S[1],z=p((0,i.useState)(""),2),P=z[0],R=z[1],E=p((0,i.useState)(!1),2),H=E[0],T=E[1],N=p((0,i.useState)([]),2),D=N[0],q=N[1];0===g||2===g?n=(0,r.jsx)(k,{}):1===g&&(n=(0,r.jsx)(_,{}));var M=b.reduce(function(e,n){return e+n.unread},0);return(0,r.jsxs)(s.Rz,{theme:h&&"security",width:800,height:600,children:[(0,r.jsx)(y.Provider,{value:{viewingPhoto:P,setViewingPhoto:R},children:P?(0,r.jsx)(I,{}):(0,r.jsx)(u.ComplexModal,{maxWidth:window.innerWidth/1.5+"px",maxHeight:window.innerHeight/1.5+"px"})}),(0,r.jsx)(s.Rz.Content,{children:(0,r.jsxs)(o.Kq,{fill:!0,children:[(0,r.jsx)(o.$0,{fill:!0,className:(0,l.Sh)(["Newscaster__menu",A&&"Newscaster__menu--open"]),children:(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsxs)(o.Kq.Item,{children:[(0,r.jsx)(w,{icon:"bars",title:"Toggle Menu",onClick:function(){return O(!A)}}),(0,r.jsx)(w,{icon:"newspaper",title:"Headlines",selected:0===g,onClick:function(){return c("headlines")},children:M>0&&(0,r.jsx)(o.xu,{className:"Newscaster__menuButton--unread",children:M>=10?"9+":M})}),(0,r.jsx)(w,{icon:"briefcase",title:"Job Openings",selected:1===g,onClick:function(){return c("jobs")}}),(0,r.jsx)(o.iz,{})]}),(0,r.jsx)(o.Kq.Item,{grow:!0,children:b.map(function(e){return(0,r.jsx)(w,{icon:e.icon,title:e.name,selected:2===g&&b[C-1]===e,onClick:function(){return c("channel",{uid:e.uid})},children:e.unread>0&&(0,r.jsx)(o.xu,{className:"Newscaster__menuButton--unread",children:e.unread>=10?"9+":e.unread})},e)})}),(0,r.jsxs)(o.Kq.Item,{children:[(0,r.jsx)(o.iz,{}),(!!h||!!m)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w,{security:!0,icon:"exclamation-circle",title:"Edit Wanted Notice",mb:"0.5rem",onClick:function(){return(0,u.modalOpen)("wanted_notice")}}),(0,r.jsx)(w,{security:!0,icon:H?"minus-square":"minus-square-o",title:"Censor Mode: "+(H?"On":"Off"),mb:"0.5rem",onClick:function(){return T(!H)}}),(0,r.jsx)(o.iz,{})]}),(0,r.jsx)(w,{icon:"pen-alt",title:"New Story",mb:"0.5rem",onClick:function(){return(0,u.modalOpen)("create_story")}}),(0,r.jsx)(w,{icon:"plus-circle",title:"New Channel",onClick:function(){return(0,u.modalOpen)("create_channel")}}),(0,r.jsx)(o.iz,{}),(0,r.jsx)(w,{icon:j?"spinner":"print",iconSpin:j,title:j?"Printing...":"Print Newspaper",onClick:function(){return c("print_newspaper")}}),(0,r.jsx)(w,{icon:x?"volume-mute":"volume-up",title:"Mute: "+(x?"On":"Off"),onClick:function(){return c("toggle_mute")}})]})]})}),(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,width:"100%",children:[(0,r.jsx)(d.TemporaryNotice,{}),(0,r.jsx)(y.Provider,{value:{viewingPhoto:P,setViewingPhoto:R,censorMode:H,fullStories:D,setFullStories:q},children:n})]})]})})]})},w=function(e){(0,a.nc)().act;var n=e.icon,t=e.iconSpin,i=e.selected,c=void 0!==i&&i,s=e.security,u=e.onClick,d=e.title,f=e.children,p=x(e,["icon","iconSpin","selected","security","onClick","title","children"]);return(0,r.jsxs)(o.Kq,m(h({align:"center",className:(0,l.Sh)(["Newscaster__menuButton",c&&"Newscaster__menuButton--selected",void 0!==s&&s&&"Newscaster__menuButton--security"]),onClick:u},p),{children:[(0,r.jsxs)(o.Kq.Item,{children:[c&&(0,r.jsx)(o.xu,{className:"Newscaster__menuButton--selectedBar"}),(0,r.jsx)(o.JO,{name:void 0===n?"":n,spin:t,size:"2"})]}),(0,r.jsx)(o.Kq.Item,{className:"Newscaster__menuButton--title",children:d}),f]}))},k=function(e){var n=(0,a.nc)(),t=n.act,l=n.data,c=l.screen,s=l.is_admin,d=l.channel_idx,f=l.channel_can_manage,x=l.channels,p=l.stories,j=l.wanted,g=(0,i.useContext)(y),b=g.fullStories,v=g.censorMode,w=2===c&&d>-1?x[d-1]:null;return(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[!!j&&(0,r.jsx)(C,{story:j,wanted:!0}),(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,title:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.JO,{name:w?w.icon:"newspaper",mr:"0.5rem"}),w?w.name:"Headlines"]}),children:p.length>0?p.slice().reverse().map(function(e){return!b.includes(e.uid)&&e.body.length+3>128?m(h({},e),{body_short:e.body.substr(0,124)+"..."}):e}).map(function(e,n){return(0,r.jsx)(C,{story:e},n)}):(0,r.jsxs)(o.xu,{className:"Newscaster__emptyNotice",children:[(0,r.jsx)(o.JO,{name:"times",size:"3"}),(0,r.jsx)("br",{}),"There are no stories at this time."]})}),!!w&&(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,height:"40%",title:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.JO,{name:"info-circle",mr:"0.5rem"}),"About"]}),buttons:(0,r.jsxs)(r.Fragment,{children:[v&&(0,r.jsx)(o.zx,{disabled:!!w.admin&&!s,selected:w.censored,icon:w.censored?"comment-slash":"comment",content:w.censored?"Uncensor Channel":"Censor Channel",mr:"0.5rem",onClick:function(){return t("censor_channel",{uid:w.uid})}}),(0,r.jsx)(o.zx,{disabled:!f,icon:"cog",content:"Manage",onClick:function(){return(0,u.modalOpen)("manage_channel",{uid:w.uid})}})]}),children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Description",children:w.description||"N/A"}),(0,r.jsx)(o.H2.Item,{label:"Owner",children:w.author||"N/A"}),!!s&&(0,r.jsx)(o.H2.Item,{label:"Ckey",children:w.author_ckey}),(0,r.jsx)(o.H2.Item,{label:"Public",children:w.public?"Yes":"No"}),(0,r.jsxs)(o.H2.Item,{label:"Total Views",children:[(0,r.jsx)(o.JO,{name:"eye",mr:"0.5rem"}),p.reduce(function(e,n){return e+n.view_count},0).toLocaleString()]})]})})]})},_=function(e){var n=(0,a.nc)(),t=(n.act,n.data),i=t.jobs,c=t.wanted,s=Object.entries(i).reduce(function(e,n){var t=p(n,2);return e+(t[0],t[1]).length},0);return(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[!!c&&(0,r.jsx)(C,{story:c,wanted:!0}),(0,r.jsx)(o.$0,{fill:!0,scrollable:!0,m:0,title:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.JO,{name:"briefcase",mr:"0.5rem"}),"Job Openings"]}),buttons:(0,r.jsx)(o.xu,{mt:"0.25rem",color:"label",children:"Work for a better future at Nanotrasen"}),children:s>0?g.map(function(e){return Object.assign({},b[e],{id:e,jobs:i[e]})}).filter(function(e){return!!e&&e.jobs.length>0}).map(function(e){return(0,r.jsx)(o.$0,{className:(0,l.Sh)(["Newscaster__jobCategory","Newscaster__jobCategory--"+e.id]),title:e.title,buttons:(0,r.jsx)(o.xu,{mt:"0.25rem",color:"label",children:e.fluff_text}),children:e.jobs.map(function(e){return(0,r.jsxs)(o.xu,{class:(0,l.Sh)(["Newscaster__jobOpening",!!e.is_command&&"Newscaster__jobOpening--command"]),children:["• ",e.title]},e.title)})},e.id)}):(0,r.jsxs)(o.xu,{className:"Newscaster__emptyNotice",children:[(0,r.jsx)(o.JO,{name:"times",size:"3"}),(0,r.jsx)("br",{}),"There are no openings at this time."]})}),(0,r.jsxs)(o.$0,{height:"17%",children:["Interested in serving Nanotrasen?",(0,r.jsx)("br",{}),"Sign up for any of the above position now at the ",(0,r.jsx)("b",{children:"Head of Personnel's Office!"}),(0,r.jsx)("br",{}),(0,r.jsx)(o.xu,{as:"small",color:"label",children:"By signing up for a job at Nanotrasen, you agree to transfer your soul to the loyalty department of the omnipresent and helpful watcher of humanity."})]})]})},C=function(e){var n=(0,a.nc)(),t=n.act,s=n.data,u=e.story,d=e.wanted,h=void 0!==d&&d,m=s.is_admin,x=(0,i.useContext)(y),p=x.fullStories,g=x.setFullStories,b=x.censorMode;return(0,r.jsx)(o.$0,{className:(0,l.Sh)(["Newscaster__story",h&&"Newscaster__story--wanted"]),title:(0,r.jsxs)(r.Fragment,{children:[h&&(0,r.jsx)(o.JO,{name:"exclamation-circle",mr:"0.5rem"}),2&u.censor_flags&&"[REDACTED]"||u.title||"News from "+u.author]}),buttons:(0,r.jsx)(o.xu,{mt:"0.25rem",children:(0,r.jsxs)(o.xu,{color:"label",children:[!h&&b&&(0,r.jsx)(o.xu,{inline:!0,children:(0,r.jsx)(o.zx,{enabled:2&u.censor_flags,icon:2&u.censor_flags?"comment-slash":"comment",content:2&u.censor_flags?"Uncensor":"Censor",mr:"0.5rem",mt:"-0.25rem",onClick:function(){return t("censor_story",{uid:u.uid})}})}),(0,r.jsxs)(o.xu,{inline:!0,children:[(0,r.jsx)(o.JO,{name:"user"})," ",u.author," |\xa0",!!m&&(0,r.jsxs)(r.Fragment,{children:["ckey: ",u.author_ckey," |\xa0"]}),!h&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.JO,{name:"eye"})," ",u.view_count.toLocaleString()," |\xa0"]}),(0,r.jsx)(o.JO,{name:"clock"})," ",(0,c.Sy)(u.publish_time,s.world_time)]})]})}),children:(0,r.jsx)(o.xu,{children:2&u.censor_flags?"[REDACTED]":(0,r.jsxs)(r.Fragment,{children:[!!u.has_photo&&(0,r.jsx)(S,{name:"story_photo_"+u.uid+".png",style:{float:"right"},ml:"0.5rem"}),(u.body_short||u.body).split("\n").map(function(e,n){return(0,r.jsx)(o.xu,{children:e||(0,r.jsx)("br",{})},n)}),u.body_short&&(0,r.jsx)(o.zx,{content:"Read more..",mt:"0.5rem",onClick:function(){return g(((function(e){if(Array.isArray(e))return f(e)})(p)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(p)||j(p)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([u.uid]))}}),(0,r.jsx)(o.xu,{clear:"right"})]})})})},S=function(e){var n=e.name,t=x(e,["name"]),l=(0,i.useContext)(y).setViewingPhoto;return(0,r.jsx)(o.xu,h({as:"img",className:"Newscaster__photo",src:n,onClick:function(){return l(n)}},t))},I=function(e){var n=(0,i.useContext)(y),t=n.viewingPhoto,l=n.setViewingPhoto;return(0,r.jsxs)(o.u_,{className:"Newscaster__photoZoom",children:[(0,r.jsx)(o.xu,{as:"img",src:t}),(0,r.jsx)(o.zx,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){return l("")}})]})},A=function(e){var n=(0,a.nc)(),t=(n.act,n.data),l=!!e.args.uid&&t.channels.filter(function(n){return n.uid===e.args.uid}).pop();if("manage_channel"===e.id&&!l)return void(0,u.modalClose)();var c="manage_channel"===e.id,s=!!e.args.is_admin,d=e.args.scanned_user,f=p((0,i.useState)((null==l?void 0:l.author)||d||"Unknown"),2),h=f[0],m=f[1],x=p((0,i.useState)((null==l?void 0:l.name)||""),2),j=x[0],g=x[1],b=p((0,i.useState)((null==l?void 0:l.description)||""),2),y=b[0],v=b[1],w=p((0,i.useState)((null==l?void 0:l.icon)||"newspaper"),2),k=w[0],_=w[1],C=p((0,i.useState)(!!c&&!!(null==l?void 0:l.public)),2),S=C[0],I=C[1],A=p((0,i.useState)((null==l?void 0:l.admin)===1),2),O=A[0],z=A[1];return(0,r.jsxs)(o.$0,{m:"-1rem",pb:"1.5rem",title:c?"Manage "+l.name:"Create New Channel",children:[(0,r.jsx)(o.xu,{mx:"0.5rem",children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Owner",children:(0,r.jsx)(o.II,{disabled:!s,width:"100%",value:h,onChange:function(e){return m(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Name",children:(0,r.jsx)(o.II,{width:"100%",placeholder:"50 characters max.",maxLength:"50",value:j,onChange:function(e){return g(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Description (optional)",verticalAlign:"top",children:(0,r.jsx)(o.II,{multiline:!0,width:"100%",placeholder:"128 characters max.",maxLength:"128",value:y,onChange:function(e){return v(e)}})}),(0,r.jsxs)(o.H2.Item,{label:"Icon",children:[(0,r.jsx)(o.II,{disabled:!s,value:k,width:"35%",mr:"0.5rem",onChange:function(e){return _(e)}}),(0,r.jsx)(o.JO,{name:k,size:"2",verticalAlign:"middle",mr:"0.5rem"})]}),(0,r.jsx)(o.H2.Item,{label:"Accept Public Stories?",children:(0,r.jsx)(o.zx,{selected:S,icon:S?"toggle-on":"toggle-off",content:S?"Yes":"No",onClick:function(){return I(!S)}})}),s&&(0,r.jsx)(o.H2.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,r.jsx)(o.zx,{selected:O,icon:O?"lock":"lock-open",content:O?"On":"Off",tooltip:"Locking this channel will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return z(!O)}})})]})}),(0,r.jsx)(o.zx.Confirm,{disabled:0===h.trim().length||0===j.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,u.modalAnswer)(e.id,"",{author:h,name:j.substr(0,49),description:y.substr(0,128),icon:k,public:+!!S,admin_locked:+!!O})}})]})};(0,u.modalRegisterBodyOverride)("create_channel",A),(0,u.modalRegisterBodyOverride)("manage_channel",A),(0,u.modalRegisterBodyOverride)("create_story",function(e){var n=(0,a.nc)(),t=n.act,l=n.data,c=l.photo,s=l.channels,d=l.channel_idx,f=void 0===d?-1:d,h=!!e.args.is_admin,m=e.args.scanned_user,x=s.slice().sort(function(e,n){if(f<0)return 0;var t=s[f-1];return t.uid===e.uid?-1:t.uid===n.uid?1:void 0}).filter(function(e){return h||!e.frozen&&(e.author===m||!!e.public)}),j=p((0,i.useState)(m||"Unknown"),2),g=j[0],b=j[1],y=p((0,i.useState)(x.length>0?x[0].name:""),2),v=y[0],w=y[1],k=p((0,i.useState)(""),2),_=k[0],C=k[1],I=p((0,i.useState)(""),2),A=I[0],O=I[1],z=p((0,i.useState)(!1),2),P=z[0],R=z[1];return(0,r.jsxs)(o.$0,{m:"-1rem",pb:"1.5rem",title:"Create New Story",children:[(0,r.jsx)(o.xu,{mx:"0.5rem",children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Author",children:(0,r.jsx)(o.II,{disabled:!h,width:"100%",value:g,onChange:function(e){return b(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Channel",verticalAlign:"top",children:(0,r.jsx)(o.Lt,{selected:v,options:x.map(function(e){return e.name}),mb:"0",width:"100%",onSelected:function(e){return w(e)}})}),(0,r.jsx)(o.H2.Divider,{}),(0,r.jsx)(o.H2.Item,{label:"Title",children:(0,r.jsx)(o.II,{width:"100%",placeholder:"128 characters max.",maxLength:"128",value:_,onChange:function(e){return C(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Story Text",verticalAlign:"top",children:(0,r.jsx)(o.II,{fluid:!0,multiline:!0,placeholder:"1024 characters max.",maxLength:"1024",rows:"8",width:"100%",value:A,onChange:function(e){return O(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Photo (optional)",verticalAlign:"top",children:(0,r.jsx)(o.zx,{icon:"image",selected:c,content:c?"Eject: "+c.name:"Insert Photo",tooltip:!c&&"Attach a photo to this story by holding the photograph in your hand.",onClick:function(){return t(c?"eject_photo":"attach_photo")}})}),(0,r.jsx)(o.H2.Item,{label:"Preview",verticalAlign:"top",children:(0,r.jsx)(o.$0,{noTopPadding:!0,title:_,maxHeight:"13.5rem",overflow:"auto",children:(0,r.jsxs)(o.xu,{mt:"0.5rem",children:[!!c&&(0,r.jsx)(S,{name:"inserted_photo_"+c.uid+".png",style:{float:"right"}}),A.split("\n").map(function(e,n){return(0,r.jsx)(o.xu,{children:e||(0,r.jsx)("br",{})},n)}),(0,r.jsx)(o.xu,{clear:"right"})]})})}),h&&(0,r.jsx)(o.H2.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,r.jsx)(o.zx,{selected:P,icon:P?"lock":"lock-open",content:P?"On":"Off",tooltip:"Locking this story will make it censorable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return R(!P)}})})]})}),(0,r.jsx)(o.zx.Confirm,{disabled:0===g.trim().length||0===v.trim().length||0===_.trim().length||0===A.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,u.modalAnswer)("create_story","",{author:g,channel:v,title:_.substr(0,127),body:A.substr(0,1023),admin_locked:+!!P})}})]})}),(0,u.modalRegisterBodyOverride)("wanted_notice",function(e){var n=(0,a.nc)(),t=n.act,l=n.data,c=l.photo,s=l.wanted,d=!!e.args.is_admin,f=e.args.scanned_user,h=p((0,i.useState)((null==s?void 0:s.author)||f||"Unknown"),2),m=h[0],x=h[1],j=p((0,i.useState)((null==s?void 0:s.title.substr(8))||""),2),g=j[0],b=j[1],y=p((0,i.useState)((null==s?void 0:s.body)||""),2),v=y[0],w=y[1],k=p((0,i.useState)((null==s?void 0:s.admin_locked)===1),2),_=k[0],C=k[1];return(0,r.jsxs)(o.$0,{m:"-1rem",pb:"1.5rem",title:"Manage Wanted Notice",children:[(0,r.jsx)(o.xu,{mx:"0.5rem",children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Authority",children:(0,r.jsx)(o.II,{disabled:!d,width:"100%",value:m,onChange:function(e){return x(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Name",children:(0,r.jsx)(o.II,{width:"100%",value:g,maxLength:"128",onChange:function(e){return b(e)}})}),(0,r.jsx)(o.H2.Item,{label:"Description",verticalAlign:"top",children:(0,r.jsx)(o.II,{multiline:!0,width:"100%",value:v,maxLength:"512",rows:"4",onChange:function(e){return w(e)}})}),(0,r.jsxs)(o.H2.Item,{label:"Photo (optional)",verticalAlign:"top",children:[(0,r.jsx)(o.zx,{icon:"image",selected:c,content:c?"Eject: "+c.name:"Insert Photo",tooltip:!c&&"Attach a photo to this wanted notice by holding the photograph in your hand.",tooltipPosition:"top",onClick:function(){return t(c?"eject_photo":"attach_photo")}}),!!c&&(0,r.jsx)(S,{name:"inserted_photo_"+c.uid+".png",style:{float:"right"}})]}),d&&(0,r.jsx)(o.H2.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,r.jsx)(o.zx,{selected:_,icon:_?"lock":"lock-open",content:_?"On":"Off",tooltip:"Locking this wanted notice will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return C(!_)}})})]})}),(0,r.jsx)(o.zx.Confirm,{disabled:!s,icon:"eraser",color:"danger",content:"Clear",position:"absolute",right:"7.25rem",bottom:"-0.75rem",onClick:function(){t("clear_wanted_notice"),(0,u.modalClose)()}}),(0,r.jsx)(o.zx.Confirm,{disabled:0===m.trim().length||0===g.trim().length||0===v.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,u.modalAnswer)(e.id,"",{author:m,name:g.substr(0,127),description:v.substr(0,511),admin_locked:+!!_})}})]})})},7728:function(e,n,t){"use strict";t.r(n),t.d(n,{Noticeboard:()=>c});var r=t(1557),i=t(3987),o=t(8531),l=t(4893),a=t(3817),c=function(e){var n=(0,l.nc)(),t=n.act,c=n.data.papers;return(0,r.jsx)(a.Rz,{width:600,height:300,theme:"noticeboard",children:(0,r.jsx)(a.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,children:c.map(function(e){return(0,r.jsx)(i.Kq.Item,{align:"center",width:"22.45%",height:"85%",onClick:function(){return t("interact",{paper:e.ref})},onContextMenu:function(n){n.preventDefault(),t("showFull",{paper:e.ref})},children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,fontSize:.75,title:e.name,children:(0,o.aV)(e.contents)})},e.ref)})})})})}},1423:function(e,n,t){"use strict";t.r(n),t.d(n,{NuclearBomb:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data;return a.extended?(0,r.jsx)(l.Rz,{width:350,height:290,children:(0,r.jsxs)(l.Rz.Content,{children:[(0,r.jsx)(i.$0,{title:"Authorization",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Auth Disk",children:(0,r.jsx)(i.zx,{icon:a.authdisk?"eject":"id-card",selected:a.authdisk,content:a.diskname?a.diskname:"-----",tooltip:a.authdisk?"Eject Disk":"Insert Disk",onClick:function(){return t("auth")}})}),(0,r.jsx)(i.H2.Item,{label:"Auth Code",children:(0,r.jsx)(i.zx,{icon:"key",disabled:!a.authdisk,selected:a.authcode,content:a.codemsg,onClick:function(){return t("code")}})})]})}),(0,r.jsx)(i.$0,{title:"Arming & Disarming",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Bolted to floor",children:(0,r.jsx)(i.zx,{icon:a.anchored?"check":"times",selected:a.anchored,disabled:!a.authdisk,content:a.anchored?"YES":"NO",onClick:function(){return t("toggle_anchor")}})}),(0,r.jsx)(i.H2.Item,{label:"Time Left",children:(0,r.jsx)(i.zx,{icon:"stopwatch",content:a.time,disabled:!a.authfull,tooltip:"Set Timer",onClick:function(){return t("set_time")}})}),(0,r.jsx)(i.H2.Item,{label:"Safety",children:(0,r.jsx)(i.zx,{icon:a.safety?"check":"times",selected:a.safety,disabled:!a.authfull,content:a.safety?"ON":"OFF",tooltip:a.safety?"Disable Safety":"Enable Safety",onClick:function(){return t("toggle_safety")}})}),(0,r.jsx)(i.H2.Item,{label:"Arm/Disarm",children:(0,r.jsx)(i.zx,{icon:(a.timer,"bomb"),disabled:a.safety||!a.authfull,color:"red",content:a.timer?"DISARM THE NUKE":"ARM THE NUKE",onClick:function(){return t("toggle_armed")}})})]})})]})}):(0,r.jsx)(l.Rz,{width:350,height:115,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{title:"Deployment",children:(0,r.jsx)(i.zx,{fluid:!0,icon:"exclamation-triangle",content:"Deploy Nuclear Device (will bolt device to floor)",onClick:function(){return t("deploy")}})})})})}},3775:function(e,n,t){"use strict";t.r(n),t.d(n,{NumberInputModal:()=>f});var r=t(1557),i=t(2778),o=t(3987),l=t(196),a=t(4893),c=t(3817),s=t(3100),u=t(4799);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t0&&p?5:0);return(0,r.jsxs)(c.Rz,{title:y,width:270,height:_,children:[b&&(0,r.jsx)(u.Loader,{value:b}),(0,r.jsx)(c.Rz.Content,{onKeyDown:function(e){var n=window.event?e.which:e.keyCode;n===l.tt&&f("submit",{entry:w}),n===l.KW&&f("cancel")},children:(0,r.jsx)(o.$0,{fill:!0,children:(0,r.jsxs)(o.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.xu,{color:"label",children:g})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(h,{input:w,onClick:function(e){e!==w&&k(e)},onChange:function(e){e!==w&&k(e)}})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(s.InputButtons,{input:w})})]})})})]})},h=function(e){var n=(0,a.nc)(),t=n.act,i=n.data,l=i.min_value,c=i.max_value,s=i.init_value,u=i.round_value,d=e.input,f=e.onClick,h=e.onChange,m=Math.round(d!==l?Math.max(d/2,l):c/2),x=d===l&&l>0||1===d;return(0,r.jsxs)(o.Kq,{fill:!0,children:[(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{disabled:d===l,icon:"angle-double-left",onClick:function(){return f(l)},tooltip:d===l?"Min":"Min (".concat(l,")")})}),(0,r.jsx)(o.Kq.Item,{grow:!0,children:(0,r.jsx)(o.N1,{autoFocus:!0,autoSelect:!0,fluid:!0,allowFloats:!u,minValue:l,maxValue:c,value:d,onChange:h,onEnter:function(e){return t("submit",{entry:e})}})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{disabled:d===c,icon:"angle-double-right",onClick:function(){return f(c)},tooltip:d===c?"Max":"Max (".concat(c,")")})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{disabled:x,icon:"divide",onClick:function(){return f(m)},tooltip:x?"Split":"Split (".concat(m,")")})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{disabled:d===s,icon:"redo",onClick:function(){return f(s)},tooltip:s?"Reset (".concat(s,")"):"Reset"})})]})}},6891:function(e,n,t){"use strict";t.r(n),t.d(n,{OperatingComputer:()=>d});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],c=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],s={average:[.25,.5],bad:[.5,1/0]},u=["bad","average","average","good","average","average","bad"],d=function(e){var n,t=(0,o.nc)(),a=t.act,c=t.data,s=c.hasOccupant,u=c.choice;return n=u?(0,r.jsx)(m,{}):s?(0,r.jsx)(f,{}):(0,r.jsx)(h,{}),(0,r.jsx)(l.Rz,{width:650,height:455,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.mQ,{children:[(0,r.jsx)(i.mQ.Tab,{selected:!u,icon:"user",onClick:function(){return a("choiceOff")},children:"Patient"}),(0,r.jsx)(i.mQ.Tab,{selected:!!u,icon:"cog",onClick:function(){return a("choiceOn")},children:"Options"})]})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,children:n})})]})})})},f=function(e){var n=(0,o.nc)().data.occupant,t=n.activeSurgeries;return(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,title:"Patient",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Name",children:n.name}),(0,r.jsx)(i.H2.Item,{label:"Status",color:a[n.stat][0],children:a[n.stat][1]}),(0,r.jsx)(i.H2.Item,{label:"Health",children:(0,r.jsx)(i.ko,{min:"0",max:n.maxHealth,value:n.health/n.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),c.map(function(e,t){return(0,r.jsx)(i.H2.Item,{label:e[0]+" Damage",children:(0,r.jsx)(i.ko,{min:"0",max:"100",value:n[e[1]]/100,ranges:s,children:Math.round(n[e[1]])},t)},t)}),(0,r.jsx)(i.H2.Item,{label:"Temperature",children:(0,r.jsxs)(i.ko,{min:"0",max:n.maxTemp,value:n.bodyTemperature/n.maxTemp,color:u[n.temperatureSuitability+3],children:[Math.round(n.btCelsius),"\xb0C, ",Math.round(n.btFaren),"\xb0F"]})}),!!n.hasBlood&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.H2.Item,{label:"Blood Level",children:(0,r.jsxs)(i.ko,{min:"0",max:n.bloodMax,value:n.bloodLevel/n.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[n.bloodPercent,"%, ",n.bloodLevel,"cl"]})}),(0,r.jsxs)(i.H2.Item,{label:"Pulse",children:[n.pulse," BPM"]})]})]})})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Active surgeries",level:"2",children:n.inSurgery&&t?t.map(function(e,n){return(0,r.jsx)(i.$0,{style:{textTransform:"capitalize"},title:e.name+" ("+e.location+")",children:(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Next Step",children:e.step},n)},n)},n)}):(0,r.jsx)(i.xu,{color:"label",children:"No procedure ongoing."})})})]})},h=function(){return(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,r.jsx)(i.JO,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.jsx)("br",{}),"No patient detected."]})})},m=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.verbose,c=l.health,s=l.healthAlarm,u=l.oxy,d=l.oxyAlarm,f=l.crit;return(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Loudspeaker",children:(0,r.jsx)(i.zx,{selected:a,icon:a?"toggle-on":"toggle-off",content:a?"On":"Off",onClick:function(){return t(a?"verboseOff":"verboseOn")}})}),(0,r.jsx)(i.H2.Item,{label:"Health Announcer",children:(0,r.jsx)(i.zx,{selected:c,icon:c?"toggle-on":"toggle-off",content:c?"On":"Off",onClick:function(){return t(c?"healthOff":"healthOn")}})}),(0,r.jsx)(i.H2.Item,{label:"Health Announcer Threshold",children:(0,r.jsx)(i.lH,{bipolar:!0,minValue:-100,maxValue:100,value:s,stepPixelSize:5,ml:"0",onChange:function(e,n){return t("health_adj",{new:n})}})}),(0,r.jsx)(i.H2.Item,{label:"Oxygen Alarm",children:(0,r.jsx)(i.zx,{selected:u,icon:u?"toggle-on":"toggle-off",content:u?"On":"Off",onClick:function(){return t(u?"oxyOff":"oxyOn")}})}),(0,r.jsx)(i.H2.Item,{label:"Oxygen Alarm Threshold",children:(0,r.jsx)(i.lH,{bipolar:!0,minValue:-100,maxValue:100,value:d,stepPixelSize:5,ml:"0",onChange:function(e,n){return t("oxy_adj",{new:n})}})}),(0,r.jsx)(i.H2.Item,{label:"Critical Alert",children:(0,r.jsx)(i.zx,{selected:f,icon:f?"toggle-on":"toggle-off",content:f?"On":"Off",onClick:function(){return t(f?"critOff":"critOn")}})})]})}},8904:function(e,n,t){"use strict";t.r(n),t.d(n,{Orbit:()=>g});var r=t(1557),i=t(2778),o=t(3987),l=t(3946),a=t(8531),c=t(4893),s=t(3817);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tn},x=function(e,n){var t=e.name,r=n.name;if(!t||!r)return 0;var i=t.match(f),o=r.match(f);return i&&o&&t.replace(f,"")===r.replace(f,"")?parseInt(i[1],10)-parseInt(o[1],10):m(t,r)},p=function(e){var n=e.searchText,t=e.source,i=e.title,l=e.color,a=e.sorted,c=t.filter(h(n));return a&&c.sort(x),t.length>0&&(0,r.jsx)(o.$0,{title:"".concat(i," - (").concat(t.length,")"),children:c.map(function(e){return(0,r.jsx)(j,{thing:e,color:l},e.name)})})},j=function(e){var n=(0,c.nc)().act,t=e.color,i=e.thing;return(0,r.jsxs)(o.zx,{color:t,tooltip:i.assigned_role?(0,r.jsxs)(o.Kq,{children:[(0,r.jsx)(o.xu,{as:"img",mr:"0.5em",className:(0,l.Sh)(["job_icons16x16",i.assigned_role_sprite])})," ",i.assigned_role]}):"",tooltipPosition:"bottom",onClick:function(){return n("orbit",{ref:i.ref})},children:[i.name,i.orbiters&&(0,r.jsxs)(o.xu,{inline:!0,ml:1,children:["(",i.orbiters," ",(0,r.jsx)(o.JO,{name:"eye"}),")"]})]})},g=function(e){var n=(0,c.nc)(),t=n.act,l=n.data,a=l.alive,u=l.antagonists,f=l.highlights,g=l.response_teams,b=l.tourist,y=(l.auto_observe,l.dead),v=l.ssd,w=l.ghosts,k=l.misc,_=l.npcs,C=d((0,i.useState)(""),2),S=C[0],I=C[1],A={},O=!0,z=!1,P=void 0;try{for(var R,E=u[Symbol.iterator]();!(O=(R=E.next()).done);O=!0){var H=R.value;void 0===A[H.antag]&&(A[H.antag]=[]),A[H.antag].push(H)}}catch(e){z=!0,P=e}finally{try{O||null==E.return||E.return()}finally{if(z)throw P}}var T=Object.entries(A);T.sort(function(e,n){return m(e[0],n[0])});var N=function(e){for(var n=0,r=[T.map(function(e){var n=d(e,2);return n[0],n[1]}),b,f,a,w,v,y,_,k];n0&&(0,r.jsx)(o.$0,{title:"Antagonists",children:T.map(function(e){var n=d(e,2),t=n[0],i=n[1];return(0,r.jsx)(o.$0,{title:"".concat(t," - (").concat(i.length,")"),level:2,children:i.filter(h(S)).sort(x).map(function(e){return(0,r.jsx)(j,{color:"bad",thing:e},e.name)})},t)})}),f.length>0&&(0,r.jsx)(p,{title:"Highlights",source:f,searchText:S,color:"teal"}),(0,r.jsx)(p,{title:"Response Teams",source:g,searchText:S,color:"purple"}),(0,r.jsx)(p,{title:"Tourists",source:b,searchText:S,color:"violet"}),(0,r.jsx)(p,{title:"Alive",source:a,searchText:S,color:"good"}),(0,r.jsx)(p,{title:"Ghosts",source:w,searchText:S,color:"grey"}),(0,r.jsx)(p,{title:"SSD",source:v,searchText:S,color:"grey"}),(0,r.jsx)(p,{title:"Dead",source:y,searchText:S,sorted:!1}),(0,r.jsx)(p,{title:"NPCs",source:_,searchText:S,sorted:!1}),(0,r.jsx)(p,{title:"Misc",source:k,searchText:S,sorted:!1})]})})}},6669:function(e,n,t){"use strict";t.r(n),t.d(n,{OreRedemption:()=>f});var r=t(1557),i=t(3987),o=t(3946),l=t(4893),a=t(3817);function c(){return(c=Object.assign||function(e){for(var n=1;n0?"good":"grey",bold:a>0&&"good",children:a.toLocaleString("en-US")+" pts"})}),(0,r.jsx)(i.iz,{}),f?(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Design disk",children:[(0,r.jsx)(i.zx,{selected:!0,bold:!0,icon:"eject",content:f.name,tooltip:"Ejects the design disk.",onClick:function(){return t("eject_disk")}}),(0,r.jsx)(i.zx,{disabled:!f.design||!f.compatible,icon:"upload",content:"Download",tooltip:"Downloads the design on the disk into the machine.",onClick:function(){return t("download")}})]}),(0,r.jsx)(i.H2.Item,{label:"Stored design",children:(0,r.jsx)(i.xu,{color:f.design&&(f.compatible?"good":"bad"),children:f.design||"N/A"})})]}):(0,r.jsx)(i.xu,{color:"label",children:"No design disk inserted."})]}))},m=function(e){var n=(0,l.nc)(),t=(n.act,n.data).sheets,o=c({},s(e));return(0,r.jsx)(i.Kq.Item,{grow:!0,height:"20%",children:(0,r.jsxs)(i.$0,d(u({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},o),{children:[(0,r.jsx)(p,{title:"Sheets",columns:[["Available","25%"],["Ore Value","15%"],["Smelt","20%"]]}),t.map(function(e){return(0,r.jsx)(j,{ore:e},e.id)})]}))})},x=function(e){var n=(0,l.nc)(),t=(n.act,n.data).alloys,o=c({},s(e));return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsxs)(i.$0,d(u({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},o),{children:[(0,r.jsx)(p,{title:"Alloys",columns:[["Recipe","50%"],["Available","11%"],["Smelt","20%"]]}),t.map(function(e){return(0,r.jsx)(g,{ore:e},e.id)})]}))})},p=function(e){var n;return(0,r.jsx)(i.xu,{className:"OreHeader",children:(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:e.title}),null==(n=e.columns)?void 0:n.map(function(e){return(0,r.jsx)(i.Kq.Item,{basis:e[1],textAlign:"center",color:"label",bold:!0,children:e[0]},e)})]})})},j=function(e){var n=(0,l.nc)().act,t=e.ore;if(!t.value||!(t.amount<=0)||["metal","glass"].indexOf(t.id)>-1)return(0,r.jsx)(i.xu,{className:"SheetLine",children:(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{basis:"45%",align:"middle",children:(0,r.jsxs)(i.Kq,{align:"center",children:[(0,r.jsx)(i.Kq.Item,{className:(0,o.Sh)(["materials32x32",t.id])}),(0,r.jsx)(i.Kq.Item,{children:t.name})]})}),(0,r.jsx)(i.Kq.Item,{basis:"20%",textAlign:"center",color:t.amount>=1?"good":"gray",bold:t.amount>=1,align:"center",children:t.amount.toLocaleString("en-US")}),(0,r.jsx)(i.Kq.Item,{basis:"20%",textAlign:"center",align:"center",children:t.value}),(0,r.jsx)(i.Kq.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,r.jsx)(i.Y2,{width:"40%",value:0,minValue:0,maxValue:Math.min(t.amount,50),step:1,stepPixelSize:6,onChange:function(e){return n(t.value?"sheet":"alloy",{id:t.id,amount:e})}})})]})})},g=function(e){var n=(0,l.nc)().act,t=e.ore;return(0,r.jsx)(i.xu,{className:"SheetLine",children:(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{basis:"7%",align:"middle",children:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["alloys32x32",t.id])})}),(0,r.jsx)(i.Kq.Item,{basis:"30%",textAlign:"middle",align:"center",children:t.name}),(0,r.jsx)(i.Kq.Item,{basis:"35%",textAlign:"middle",color:t.amount>=1?"good":"gray",align:"center",children:t.description}),(0,r.jsx)(i.Kq.Item,{basis:"10%",textAlign:"center",color:t.amount>=1?"good":"gray",bold:t.amount>=1,align:"center",children:t.amount.toLocaleString("en-US")}),(0,r.jsx)(i.Kq.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,r.jsx)(i.Y2,{width:"40%",value:0,minValue:0,maxValue:Math.min(t.amount,50),stepPixelSize:6,step:1,onChange:function(e){return n(t.value?"sheet":"alloy",{id:t.id,amount:e})}})})]})})}},1405:function(e,n,t){"use strict";t.r(n),t.d(n,{PAI:()=>u});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(750),c=t(4427),s=function(e){try{n=c("./".concat(e,".jsx"))}catch(n){if("MODULE_NOT_FOUND"===n.code)return(0,a.I)("notFound",e);throw n}var n,t=n[e];return t||(0,a.I)("missingExport",e)},u=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.app_template,u=a.app_icon,d=a.app_title,f=s(c);return(0,r.jsx)(l.Rz,{width:600,height:650,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{p:1,fill:!0,scrollable:!0,title:(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.JO,{name:u,mr:1}),d,"pai_main_menu"!==c&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{ml:2,mb:0,content:"Back",icon:"arrow-left",onClick:function(){return t("Back")}}),(0,r.jsx)(i.zx,{content:"Home",icon:"arrow-up",onClick:function(){return t("MASTER_back")}})]})]}),children:(0,r.jsx)(f,{})})})})})})}},2699:function(e,n,t){"use strict";t.r(n),t.d(n,{PDA:()=>u});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(750),c=t(1552),s=function(e){try{n=c("./".concat(e,".jsx"))}catch(n){if("MODULE_NOT_FOUND"===n.code)return(0,a.I)("notFound",e);throw n}var n,t=n[e];return t||(0,a.I)("missingExport",e)},u=function(e){var n=(0,o.nc)(),t=(n.act,n.data),a=t.app;if(!t.owner)return(0,r.jsx)(l.Rz,{width:350,height:105,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsx)(i.$0,{title:"Error",children:"No user data found. Please swipe an ID card."})})});var c=s(a.template);return(0,r.jsx)(l.Rz,{width:600,height:650,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(d,{})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,p:1,pb:0,title:(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.JO,{name:a.icon,mr:1}),a.name]}),children:(0,r.jsx)(c,{})})}),(0,r.jsx)(i.Kq.Item,{mt:7.5,children:(0,r.jsx)(f,{})})]})})})},d=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.idInserted,c=l.idLink,s=l.stationTime,u=l.cartridge_name;return(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{ml:.5,children:(0,r.jsx)(i.zx,{icon:"id-card",color:"transparent",onClick:function(){return t("Authenticate")},content:a?c:"No ID Inserted"})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"sd-card",color:"transparent",onClick:function(){return t("Eject")},content:u?["Eject "+u]:"No Cartridge Inserted"})}),(0,r.jsx)(i.Kq.Item,{grow:!0,textAlign:"right",bold:!0,mr:1,mt:.5,children:s})]})},f=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.app;return(0,r.jsx)(i.xu,{height:"45px",className:"PDA__footer",backgroundColor:"#1b1b1b",children:(0,r.jsxs)(i.Kq,{fill:!0,children:[!!l.has_back&&(0,r.jsx)(i.Kq.Item,{basis:"33%",mr:-.5,children:(0,r.jsx)(i.zx,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:l.has_back?"white":"disabled",icon:"arrow-alt-circle-left-o",onClick:function(){return t("Back")}})}),(0,r.jsx)(i.Kq.Item,{basis:l.has_back?"33%":"100%",children:(0,r.jsx)(i.zx,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:l.is_home?"disabled":"white",icon:"home",onClick:function(){t("Home")}})})]})})}},2031:function(e,n,t){"use strict";t.r(n),t.d(n,{Pacman:()=>s});var r=t(1557),i=t(3987),o=t(9956),l=t(4893),a=t(6783),c=t(3817),s=function(e){var n=(0,l.nc)(),t=n.act,s=n.data,u=s.active,d=s.anchored,f=s.broken,h=s.emagged,m=s.fuel_type,x=s.fuel_usage,p=s.fuel_stored,j=s.fuel_cap,g=s.is_ai,b=s.tmp_current,y=s.tmp_max,v=s.tmp_overheat,w=s.output_max,k=s.power_gen,_=s.output_set,C=s.has_fuel,S=Math.round(p/x*2),I=Math.round(S/60);return(0,r.jsx)(c.Rz,{width:500,height:225,children:(0,r.jsxs)(c.Rz.Content,{children:[(f||!d)&&(0,r.jsxs)(i.$0,{title:"Status",children:[!!f&&(0,r.jsx)(i.xu,{color:"orange",children:"The generator is malfunctioning!"}),!f&&!d&&(0,r.jsx)(i.xu,{color:"orange",children:"The generator needs to be anchored to the floor with a wrench."})]}),!f&&!!d&&(0,r.jsxs)("div",{children:[(0,r.jsx)(i.$0,{title:"Status",buttons:(0,r.jsx)(i.zx,{icon:u?"power-off":"times",content:u?"On":"Off",tooltip:"Toggles the generator on/off. Requires fuel.",tooltipPosition:"left",disabled:!C,selected:u,onClick:function(){return t("toggle_power")}}),children:(0,r.jsxs)(i.kC,{direction:"row",children:[(0,r.jsx)(i.kC.Item,{width:"50%",className:"ml-1",children:(0,r.jsx)(i.H2,{children:(0,r.jsxs)(i.H2.Item,{label:"Power setting",children:[(0,r.jsx)(i.Y2,{value:_,minValue:1,maxValue:w*(h?2.5:1),step:1,className:"mt-1",onChange:function(e){return t("change_power",{change_power:e})}}),"(",(0,o.bu)(_*k),")"]})})}),(0,r.jsx)(i.kC.Item,{width:"50%",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Temperature",children:(0,r.jsxs)(i.ko,{value:b/y,ranges:{green:[-1/0,.33],orange:[.33,.66],red:[.66,1/0]},children:[b," ℃"]})}),(0,r.jsxs)(i.H2.Item,{label:"Status",children:[v>50&&(0,r.jsx)(i.xu,{color:"red",children:"CRITICAL OVERHEAT!"}),v>20&&v<=50&&(0,r.jsx)(i.xu,{color:"orange",children:"WARNING: Overheating!"}),v>1&&v<=20&&(0,r.jsx)(i.xu,{color:"orange",children:"Temperature High"}),0===v&&(0,r.jsx)(i.xu,{color:"green",children:"Optimal"})]})]})})]})}),(0,r.jsx)(i.$0,{title:"Fuel",buttons:(0,r.jsx)(i.zx,{icon:"eject",content:"Eject Fuel",tooltip:"Ejects fuel. Generator needs to be offline.",tooltipPosition:"left",disabled:u||g||!C,onClick:function(){return t("eject_fuel")}}),children:(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Type",children:m}),(0,r.jsx)(i.H2.Item,{label:"Fuel level",children:(0,r.jsxs)(i.ko,{value:p/j,ranges:{red:[-1/0,.33],orange:[.33,.66],green:[.66,1/0]},children:[Math.round(p/1e3)," dm\xb3"]})})]})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsxs)(i.H2.Item,{label:"Fuel usage",children:[x/1e3," dm\xb3/s"]}),(0,r.jsxs)(i.H2.Item,{label:"Fuel depletion",children:[!!C&&(x?S>120?"".concat(I," minutes"):"".concat(S," seconds"):"N/A"),!C&&(0,r.jsx)(i.xu,{color:"red",children:"Out of fuel"})]})]})})]})})]})]})})}},4174:function(e,n,t){"use strict";t.r(n),t.d(n,{PanDEMIC:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n,t=(0,o.nc)().data,a=t.beakerLoaded,s=t.beakerContainsBlood,u=t.beakerContainsVirus,f=t.resistances,h=void 0===f?[]:f;return a?s?s&&!u&&(n=(0,r.jsx)(r.Fragment,{children:"No disease detected in provided blood sample."})):n=(0,r.jsx)(r.Fragment,{children:"No blood sample found in the loaded container."}):n=(0,r.jsx)(r.Fragment,{children:"No container loaded."}),(0,r.jsx)(l.Rz,{width:575,height:510,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[n&&!u?(0,r.jsx)(i.$0,{title:"Container Information",buttons:(0,r.jsx)(c,{fill:!0,vertical:!0}),children:(0,r.jsx)(i.f7,{children:n})}):(0,r.jsx)(d,{}),(null==h?void 0:h.length)>0&&(0,r.jsx)(x,{align:"bottom"})]})})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.beakerLoaded;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return t("eject_beaker")}}),(0,r.jsx)(i.zx.Confirm,{icon:"trash-alt",confirmIcon:"eraser",content:"Destroy",confirmContent:"Destroy",disabled:!l,onClick:function(){return t("destroy_eject_beaker")}})]})},s=function(e){var n,t=(0,o.nc)(),l=t.act,a=t.data.beakerContainsVirus,c=e.strain,s=c.commonName,u=c.description,d=c.diseaseAgent,f=c.bloodDNA,h=c.bloodType,m=c.possibleTreatments,x=c.transmissionRoute,p=c.isAdvanced,j=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.H2.Item,{label:"Blood DNA",children:f?(0,r.jsx)("span",{style:{fontFamily:"'Courier New', monospace"},children:f}):"Undetectable"}),(0,r.jsx)(i.H2.Item,{label:"Blood Type",children:(0,r.jsx)("div",{dangerouslySetInnerHTML:{__html:null!=h?h:"Undetectable"}})})]});return a?(p&&(n=null!=s&&"Unknown"!==s?(0,r.jsx)(i.zx,{icon:"print",content:"Print Release Forms",onClick:function(){return l("print_release_forms",{strain_index:e.strainIndex})},style:{marginLeft:"auto"}}):(0,r.jsx)(i.zx,{icon:"pen",content:"Name Disease",onClick:function(){return l("name_strain",{strain_index:e.strainIndex})},style:{marginLeft:"auto"}})),(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Common Name",className:"common-name-label",children:(0,r.jsxs)(i.Kq,{align:"center",children:[null!=s?s:"Unknown",n]})}),u&&(0,r.jsx)(i.H2.Item,{label:"Description",children:u}),(0,r.jsx)(i.H2.Item,{label:"Disease Agent",children:d}),j,(0,r.jsx)(i.H2.Item,{label:"Spread Vector",children:null!=x?x:"None"}),(0,r.jsx)(i.H2.Item,{label:"Possible Cures",children:null!=m?m:"None"})]})):(0,r.jsx)(i.H2,{children:j})},u=function(e){var n,t=(0,o.nc)(),l=t.act,a=!!t.data.synthesisCooldown,c=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{icon:a?"spinner":"clone",iconSpin:a,content:"Clone",disabled:a,onClick:function(){return l("clone_strain",{strain_index:e.strainIndex})}}),e.sectionButtons]});return(0,r.jsx)(i.kC.Item,{children:(0,r.jsx)(i.$0,{title:null!=(n=e.sectionTitle)?n:"Strain Information",buttons:c,children:(0,r.jsx)(s,{strain:e.strain,strainIndex:e.strainIndex})})})},d=function(e){var n,t,l=(0,o.nc)(),a=l.act,s=l.data,d=s.selectedStrainIndex,f=s.strains,m=f[d-1];if(0===f.length)return(0,r.jsx)(i.$0,{title:"Container Information",buttons:(0,r.jsx)(c,{}),children:(0,r.jsx)(i.f7,{children:"No disease detected in provided blood sample."})});if(1===f.length)return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u,{strain:f[0],strainIndex:1,sectionButtons:(0,r.jsx)(c,{})}),(null==(t=f[0].symptoms)?void 0:t.length)>0&&(0,r.jsx)(h,{strain:f[0]})]});var x=(0,r.jsx)(c,{});return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{title:"Culture Information",fill:!0,buttons:x,children:(0,r.jsxs)(i.kC,{direction:"column",style:{height:"100%"},children:[(0,r.jsx)(i.kC.Item,{children:(0,r.jsx)(i.mQ,{children:f.map(function(e,n){var t;return(0,r.jsx)(i.mQ.Tab,{icon:"virus",selected:d-1===n,onClick:function(){return a("switch_strain",{strain_index:n+1})},children:null!=(t=e.commonName)?t:"Unknown"},n)})})}),(0,r.jsx)(u,{strain:m,strainIndex:d}),(null==(n=m.symptoms)?void 0:n.length)>0&&(0,r.jsx)(h,{className:"remove-section-bottom-padding",strain:m})]})})})},f=function(e){return e.reduce(function(e,n){return e+n},0)},h=function(e){var n=e.strain.symptoms;return(0,r.jsx)(i.kC.Item,{grow:!0,children:(0,r.jsx)(i.$0,{title:"Infection Symptoms",fill:!0,className:e.className,children:(0,r.jsxs)(i.iA,{className:"symptoms-table",children:[(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:"Name"}),(0,r.jsx)(i.iA.Cell,{children:"Stealth"}),(0,r.jsx)(i.iA.Cell,{children:"Resistance"}),(0,r.jsx)(i.iA.Cell,{children:"Stage Speed"}),(0,r.jsx)(i.iA.Cell,{children:"Transmissibility"})]}),n.map(function(e,n){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:e.name}),(0,r.jsx)(i.iA.Cell,{children:e.stealth}),(0,r.jsx)(i.iA.Cell,{children:e.resistance}),(0,r.jsx)(i.iA.Cell,{children:e.stageSpeed}),(0,r.jsx)(i.iA.Cell,{children:e.transmissibility})]},n)}),(0,r.jsx)(i.iA.Row,{className:"table-spacer"}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{style:{fontWeight:"bold"},children:"Total"}),(0,r.jsx)(i.iA.Cell,{children:f(n.map(function(e){return e.stealth}))}),(0,r.jsx)(i.iA.Cell,{children:f(n.map(function(e){return e.resistance}))}),(0,r.jsx)(i.iA.Cell,{children:f(n.map(function(e){return e.stageSpeed}))}),(0,r.jsx)(i.iA.Cell,{children:f(n.map(function(e){return e.transmissibility}))})]})]})})})},m=["flask","vial","eye-dropper"],x=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.synthesisCooldown,c=(l.beakerContainsVirus,l.resistances);return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Antibodies",fill:!0,children:(0,r.jsx)(i.Kq,{wrap:!0,children:c.map(function(e,n){return(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx,{icon:m[n%m.length],disabled:!!a,onClick:function(){return t("clone_vaccine",{resistance_index:n+1})},mr:"0.5em"}),e]},n)})})})})}},5639:function(e,n,t){"use strict";t.r(n),t.d(n,{ParticleAccelerator:()=>u});var r=t(1557),i=t(3987),o=t(8531),l=t(4893),a=t(6783),c=t(3817),s=function(e){switch(e){case 1:return"north";case 2:return"south";case 4:return"east";case 8:return"west";case 5:return"northeast";case 6:return"southeast";case 9:return"northwest";case 10:return"southwest"}return""},u=function(e){var n=(0,l.nc)(),t=n.act,a=n.data,s=a.assembled,u=a.power,h=a.strength,m=a.max_strength,x=(a.icon,a.layout_1,a.layout_2,a.layout_3,a.orientation);return(0,r.jsx)(c.Rz,{width:395,height:s?160:"north"===x||"south"===x?540:465,children:(0,r.jsxs)(c.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(i.$0,{title:"Control Panel",buttons:(0,r.jsx)(i.zx,{dmIcon:"sync",content:"Connect",onClick:function(){return t("scan")}}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Status",mb:"5px",children:(0,r.jsx)(i.xu,{color:s?"good":"bad",children:s?"Operational":"Error: Verify Configuration"})}),(0,r.jsx)(i.H2.Item,{label:"Power",children:(0,r.jsx)(i.zx,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,disabled:!s,onClick:function(){return t("power")}})}),(0,r.jsxs)(i.H2.Item,{label:"Strength",children:[(0,r.jsx)(i.zx,{icon:"backward",disabled:!s||0===h,onClick:function(){return t("remove_strength")},mr:"4px"}),h,(0,r.jsx)(i.zx,{icon:"forward",disabled:!s||h===m,onClick:function(){return t("add_strength")},ml:"4px"})]})]})}),s?"":(0,r.jsx)(i.$0,{title:x?"EM Acceleration Chamber Orientation: "+(0,o.kC)(x):"Place EM Acceleration Chamber Next To Console",children:0===x?"":"north"===x||"south"===x?(0,r.jsx)(f,{}):(0,r.jsx)(d,{})})]})})},d=function(e){var n=(0,l.nc)(),t=(n.act,n.data);t.assembled,t.power,t.strength,t.max_strength;var o=t.icon,a=t.layout_1,c=t.layout_2,u=t.layout_3,d=t.orientation;return(0,r.jsxs)(i.iA,{children:[(0,r.jsx)(i.iA.Row,{width:"40px",children:("east"===d?a:u).slice().map(function(e){return(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.u,{content:(0,r.jsxs)("span",{style:{wordWrap:"break-word"},children:[e.name," ",(0,r.jsx)("br",{})," ","Status: ".concat(e.status),(0,r.jsx)("br",{}),"Direction: ".concat(s(e.dir))]}),children:(0,r.jsx)(i.zA,{dmIcon:o,dmIconState:e.icon_state,dmDirection:e.dir,style:{borderStyle:"solid",borderWidth:"2px",borderColor:"good"===e.status?"green":"Incomplete"===e.status?"orange":"red",padding:"2px"}})})},e.name)})}),(0,r.jsx)(i.iA.Row,{width:"40px",children:c.slice().map(function(e){return(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.u,{content:(0,r.jsxs)("span",{style:{wordWrap:"break-word"},children:[e.name," ",(0,r.jsx)("br",{})," ","Status: ".concat(e.status),(0,r.jsx)("br",{}),"Direction: ".concat(s(e.dir))]}),children:(0,r.jsx)(i.zA,{dmIcon:o,dmIconState:e.icon_state,dmDirection:e.dir,style:{borderStyle:"solid",borderWidth:"2px",borderColor:"good"===e.status?"green":"Incomplete"===e.status?"orange":"red",padding:"2px"}})})},e.name)})}),(0,r.jsx)(i.iA.Row,{width:"40px",children:("east"===d?u:a).slice().map(function(e){return(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.u,{content:(0,r.jsxs)("span",{style:{wordWrap:"break-word"},children:[e.name," ",(0,r.jsx)("br",{})," ","Status: ".concat(e.status),(0,r.jsx)("br",{}),"Direction: ".concat(s(e.dir))]}),children:(0,r.jsx)(i.zA,{dmIcon:o,dmIconState:e.icon_state,dmDirection:e.dir,style:{borderStyle:"solid",borderWidth:"2px",borderColor:"good"===e.status?"green":"Incomplete"===e.status?"orange":"red",padding:"2px"}})})},e.name)})})]})},f=function(e){var n=(0,l.nc)(),t=(n.act,n.data);t.assembled,t.power,t.strength,t.max_strength;var o=t.icon,c=t.layout_1,u=t.layout_2,d=t.layout_3,f=t.orientation;return(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{width:"40px",children:("north"===f?c:d).slice().map(function(e){return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.u,{content:(0,r.jsxs)("span",{style:{wordWrap:"break-word"},children:[e.name," ",(0,r.jsx)("br",{})," ","Status: ".concat(e.status),(0,r.jsx)("br",{}),"Direction: ".concat(s(e.dir))]}),children:(0,r.jsx)(i.zA,{dmIcon:o,dmIconState:e.icon_state,dmDirection:e.dir,style:{borderStyle:"solid",borderWidth:"2px",borderColor:"good"===e.status?"green":"Incomplete"===e.status?"orange":"red",padding:"2px"}})})},e.name)})}),(0,r.jsx)(a.rj.Column,{children:u.slice().map(function(e){return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.u,{content:(0,r.jsxs)("span",{style:{wordWrap:"break-word"},children:[e.name," ",(0,r.jsx)("br",{})," ","Status: ".concat(e.status),(0,r.jsx)("br",{}),"Direction: ".concat(s(e.dir))]}),children:(0,r.jsx)(i.zA,{dmIcon:o,dmIconState:e.icon_state,dmDirection:e.dir,style:{borderStyle:"solid",borderWidth:"2px",borderColor:"good"===e.status?"green":"Incomplete"===e.status?"orange":"red",padding:"2px"}})})},e.name)})}),(0,r.jsx)(a.rj.Column,{width:"40px",children:("north"===f?d:c).slice().map(function(e){return(0,r.jsx)(i.Kq.Item,{grow:!0,tooltip:e.status,children:(0,r.jsx)(i.u,{content:(0,r.jsxs)("span",{style:{wordWrap:"break-word"},children:[e.name," ",(0,r.jsx)("br",{})," ","Status: ".concat(e.status),(0,r.jsx)("br",{}),"Direction: ".concat(s(e.dir))]}),children:(0,r.jsx)(i.zA,{dmIcon:o,dmIconState:e.icon_state,dmDirection:e.dir,style:{borderStyle:"solid",borderWidth:"2px",borderColor:"good"===e.status?"green":"Incomplete"===e.status?"orange":"red",padding:"2px"}})})},e.name)})})]})}},975:function(e,n,t){"use strict";t.r(n),t.d(n,{PdaPainter:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)().data.has_pda;return(0,r.jsx)(l.Rz,{width:510,height:505,children:(0,r.jsx)(l.Rz.Content,{children:n?(0,r.jsx)(s,{}):(0,r.jsx)(c,{})})})},c=function(e){var n=(0,o.nc)().act;return(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,r.jsx)(i.JO,{name:"download",size:5,mb:"10px"}),(0,r.jsx)("br",{}),(0,r.jsx)(i.zx,{width:"160px",textAlign:"center",content:"Insert PDA",onClick:function(){return n("insert_pda")}})]})})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.pda_colors;return(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(u,{})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,children:(0,r.jsx)(i.iA,{className:"PdaPainter__list",children:Object.keys(l).map(function(e){return(0,r.jsxs)(i.iA.Row,{onClick:function(){return t("choose_pda",{selectedPda:e})},children:[(0,r.jsx)(i.iA.Cell,{collapsing:!0,children:(0,r.jsx)("img",{src:"data:image/png;base64,".concat(l[e][0]),style:{verticalAlign:"middle",width:"32px",margin:"0px",imageRendering:"pixelated"}})}),(0,r.jsx)(i.iA.Cell,{children:e})]},e)})})})})]})},u=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.current_appearance,c=l.preview_appearance;return(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsxs)(i.$0,{title:"Current PDA",children:[(0,r.jsx)("img",{src:"data:image/jpeg;base64,".concat(a),style:{verticalAlign:"middle",width:"160px",margin:"0px",imageRendering:"pixelated"}}),(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"eject",content:"Eject",color:"green",onClick:function(){return t("eject_pda")}}),(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"paint-roller",content:"Paint PDA",onClick:function(){return t("paint_pda")}})]}),(0,r.jsx)(i.$0,{title:"Preview",children:(0,r.jsx)("img",{src:"data:image/jpeg;base64,".concat(c),style:{verticalAlign:"middle",width:"160px",margin:"0px",imageRendering:"pixelated"}})})]})}},6272:function(e,n,t){"use strict";t.r(n),t.d(n,{PersonalCrafting:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,u=a.busy,d=a.category,f=a.display_craftable_only,h=a.display_compact,m=a.prev_cat,x=a.next_cat,p=a.subcategory,j=a.prev_subcat,g=a.next_subcat;return(0,r.jsx)(l.Rz,{width:700,height:800,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[!!u&&(0,r.jsxs)(i.Pz,{fontSize:"32px",children:[(0,r.jsx)(i.JO,{name:"cog",spin:1})," Crafting..."]}),(0,r.jsxs)(i.$0,{title:d,buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{content:"Show Craftable Only",icon:f?"check-square-o":"square-o",selected:f,onClick:function(){return t("toggle_recipes")}}),(0,r.jsx)(i.zx,{content:"Compact Mode",icon:h?"check-square-o":"square-o",selected:h,onClick:function(){return t("toggle_compact")}})]}),children:[(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.zx,{content:m,icon:"arrow-left",onClick:function(){return t("backwardCat")}}),(0,r.jsx)(i.zx,{content:x,icon:"arrow-right",onClick:function(){return t("forwardCat")}})]}),p&&(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.zx,{content:j,icon:"arrow-left",onClick:function(){return t("backwardSubCat")}}),(0,r.jsx)(i.zx,{content:g,icon:"arrow-right",onClick:function(){return t("forwardSubCat")}})]}),h?(0,r.jsx)(c,{}):(0,r.jsx)(s,{})]})]})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.display_craftable_only,c=l.can_craft,s=l.cant_craft;return(0,r.jsx)(i.xu,{mt:1,children:(0,r.jsxs)(i.H2,{children:[c.map(function(e){return(0,r.jsxs)(i.H2.Item,{label:e.name,children:[(0,r.jsx)(i.zx,{icon:"hammer",content:"Craft",onClick:function(){return t("make",{make:e.ref})}}),e.catalyst_text&&(0,r.jsx)(i.zx,{tooltip:e.catalyst_text,content:"Catalysts",color:"transparent"}),(0,r.jsx)(i.zx,{tooltip:e.req_text,content:"Requirements",color:"transparent"}),e.tool_text&&(0,r.jsx)(i.zx,{tooltip:e.tool_text,content:"Tools",color:"transparent"})]},e.name)}),!a&&s.map(function(e){return(0,r.jsxs)(i.H2.Item,{label:e.name,children:[(0,r.jsx)(i.zx,{icon:"hammer",content:"Craft",disabled:!0}),e.catalyst_text&&(0,r.jsx)(i.zx,{tooltip:e.catalyst_text,content:"Catalysts",color:"transparent"}),(0,r.jsx)(i.zx,{tooltip:e.req_text,content:"Requirements",color:"transparent"}),e.tool_text&&(0,r.jsx)(i.zx,{tooltip:e.tool_text,content:"Tools",color:"transparent"})]},e.name)})]})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.display_craftable_only,c=l.can_craft,s=l.cant_craft;return(0,r.jsxs)(i.xu,{mt:1,children:[c.map(function(e){return(0,r.jsx)(i.$0,{title:e.name,buttons:(0,r.jsx)(i.zx,{icon:"hammer",content:"Craft",onClick:function(){return t("make",{make:e.ref})}}),children:(0,r.jsxs)(i.H2,{children:[e.catalyst_text&&(0,r.jsx)(i.H2.Item,{label:"Catalysts",children:e.catalyst_text}),(0,r.jsx)(i.H2.Item,{label:"Requirements",children:e.req_text}),e.tool_text&&(0,r.jsx)(i.H2.Item,{label:"Tools",children:e.tool_text})]})},e.name)}),!a&&s.map(function(e){return(0,r.jsx)(i.$0,{title:e.name,buttons:(0,r.jsx)(i.zx,{icon:"hammer",content:"Craft",disabled:!0}),children:(0,r.jsxs)(i.H2,{children:[e.catalyst_text&&(0,r.jsx)(i.H2.Item,{label:"Catalysts",children:e.catalyst_text}),(0,r.jsx)(i.H2.Item,{label:"Requirements",children:e.req_text}),e.tool_text&&(0,r.jsx)(i.H2.Item,{label:"Tools",children:e.tool_text})]})},e.name)})]})}},4319:function(e,n,t){"use strict";t.r(n),t.d(n,{Photocopier:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data;return(0,r.jsx)(l.Rz,{width:400,height:440,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsxs)(i.$0,{title:"Photocopier",color:"silver",children:[(0,r.jsxs)(i.Kq,{mb:1,children:[(0,r.jsx)(i.Kq.Item,{width:12,children:"Copies:"}),(0,r.jsx)(i.Kq.Item,{width:"2em",bold:!0,children:a.copynumber}),(0,r.jsxs)(i.Kq.Item,{style:{float:"right"},children:[(0,r.jsx)(i.zx,{icon:"minus",textAlign:"center",content:"",onClick:function(){return t("minus")}}),(0,r.jsx)(i.zx,{icon:"plus",textAlign:"center",content:"",onClick:function(){return t("add")}})]})]}),(0,r.jsxs)(i.Kq,{mb:2,children:[(0,r.jsx)(i.Kq.Item,{width:12,children:"Toner:"}),(0,r.jsx)(i.Kq.Item,{bold:!0,children:a.toner})]}),(0,r.jsxs)(i.Kq,{mb:1,children:[(0,r.jsx)(i.Kq.Item,{width:12,children:"Inserted Document:"}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",disabled:!a.copyitem&&!a.mob,content:a.copyitem?a.copyitem:a.mob?a.mob+"'s ass!":"document",onClick:function(){return t("removedocument")}})})]}),(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{width:12,children:"Inserted Folder:"}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",disabled:!a.folder,content:a.folder?a.folder:"folder",onClick:function(){return t("removefolder")}})})]})]}),(0,r.jsx)(i.$0,{children:(0,r.jsx)(c,{})}),(0,r.jsx)(s,{})]})})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.issilicon;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{fluid:!0,icon:"copy",textAlign:"center",content:"Copy",onClick:function(){return t("copy")}}),(0,r.jsx)(i.zx,{fluid:!0,icon:"file-import",textAlign:"center",content:"Scan",onClick:function(){return t("scandocument")}}),!!l&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{fluid:!0,icon:"file",color:"green",textAlign:"center",content:"Print Text",onClick:function(){return t("ai_text")}}),(0,r.jsx)(i.zx,{fluid:!0,icon:"image",color:"green",textAlign:"center",content:"Print Image",onClick:function(){return t("ai_pic")}})]})]})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data;return(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Scanned Files",children:l.files.map(function(e){return(0,r.jsx)(i.$0,{title:e.name,buttons:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.zx,{icon:"print",content:"Print",disabled:l.toner<=0,onClick:function(){return t("filecopy",{uid:e.uid})}}),(0,r.jsx)(i.zx.Confirm,{icon:"trash-alt",content:"Delete",color:"bad",onClick:function(){return t("deletefile",{uid:e.uid})}})]})},e.name)})})}},174:function(e,n,t){"use strict";t.r(n),t.d(n,{PoolController:()=>u});var r=t(1557),i=t(3987),o=t(4893),l=t(3817);function a(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["tempKey"]),s=c[l];if(!s)return null;var u=(0,o.nc)(),d=u.data,f=u.act,h=d.currentTemp,m=s.label,x=s.icon;return(0,r.jsxs)(i.zx,(n=function(e){for(var n=1;na});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=(n.act,n.data).has_holding_tank;return(0,r.jsx)(l.Rz,{width:435,height:330,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(c,{}),(0,r.jsx)(s,{}),t?(0,r.jsx)(u,{}):(0,r.jsx)(i.$0,{fill:!0,title:"Holding Tank",children:(0,r.jsx)(i.xu,{color:"average",bold:1,textAlign:"center",mt:2.5,children:"No Holding Tank Inserted."})})]})})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.on,c=l.direction,s=l.port_connected;return(0,r.jsx)(i.$0,{title:"Pump Settings",buttons:(0,r.jsx)(i.zx,{width:4,icon:"power-off",content:a?"On":"Off",color:a?null:"red",selected:a,onClick:function(){return t("power")}}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Pump Direction",children:(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(i.zx,{width:4,icon:"sign-in-alt",content:"In",selected:!c,onClick:function(){return t("set_direction",{direction:0})}}),(0,r.jsx)(i.zx,{width:4,icon:"sign-out-alt",content:"Out",selected:c,onClick:function(){return t("set_direction",{direction:1})}})]})}),(0,r.jsx)(i.H2.Item,{label:"Port status",children:(0,r.jsx)(i.xu,{color:s?"green":"average",bold:1,ml:.5,children:s?"Connected":"Disconnected"})})]})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.tank_pressure,c=l.target_pressure,s=l.max_target_pressure,u=.7*s,d=.25*s;return(0,r.jsxs)(i.$0,{title:"Pressure Settings",children:[(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Stored pressure",children:(0,r.jsxs)(i.ko,{value:a,minValue:0,maxValue:s,ranges:{good:[u,1/0],average:[d,u],bad:[-1/0,d]},children:[a," kPa"]})})}),(0,r.jsxs)(i.Kq,{mt:1,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,color:"label",mt:.3,children:"Target pressure:"}),(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx,{icon:"undo",mr:.5,width:2.2,textAlign:"center",onClick:function(){return t("set_pressure",{pressure:101.325})}}),(0,r.jsx)(i.zx,{icon:"fast-backward",mr:.5,width:2.2,textAlign:"center",onClick:function(){return t("set_pressure",{pressure:0})}})]}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.iR,{animated:!0,unit:"kPa",width:16.5,stepPixelSize:.22,minValue:0,maxValue:s,value:c,onChange:function(e,n){return t("set_pressure",{pressure:n})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"fast-forward",ml:.5,width:2.2,textAlign:"center",onClick:function(){return t("set_pressure",{pressure:s})}})})]})]})},u=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.holding_tank,c=l.max_target_pressure,s=.7*c,u=.25*c;return(0,r.jsxs)(i.$0,{fill:!0,title:"Holding Tank",buttons:(0,r.jsx)(i.zx,{onClick:function(){return t("remove_tank")},icon:"eject",children:"Eject"}),children:[(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{color:"label",children:"Tank Label:"}),(0,r.jsx)(i.Kq.Item,{color:"silver",ml:4.5,children:a.name})]}),(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{color:"label",mt:2,children:"Tank Pressure:"}),(0,r.jsx)(i.Kq.Item,{grow:!0,mt:1.5,children:(0,r.jsxs)(i.ko,{value:a.tank_pressure,minValue:0,maxValue:c,ranges:{good:[s,1/0],average:[u,s],bad:[-1/0,u]},children:[a.tank_pressure," kPa"]})})]})]})}},9845:function(e,n,t){"use strict";t.r(n),t.d(n,{PortableScrubber:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=(n.act,n.data).has_holding_tank;return(0,r.jsx)(l.Rz,{width:435,height:300,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(c,{}),(0,r.jsx)(s,{}),t?(0,r.jsx)(u,{}):(0,r.jsx)(i.$0,{fill:!0,title:"Holding Tank",children:(0,r.jsx)(i.xu,{color:"average",bold:1,textAlign:"center",mt:2.5,children:"No Holding Tank Inserted."})})]})})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.on,c=l.port_connected;return(0,r.jsx)(i.$0,{title:"Pump Settings",buttons:(0,r.jsx)(i.zx,{width:4,icon:"power-off",content:a?"On":"Off",color:a?null:"red",selected:a,onClick:function(){return t("power")}}),children:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{color:"label",children:"Port Status:"}),(0,r.jsx)(i.Kq.Item,{color:c?"green":"average",bold:1,ml:6,children:c?"Connected":"Disconnected"})]})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.tank_pressure,c=l.rate,s=l.max_rate,u=.7*s,d=.25*s;return(0,r.jsxs)(i.$0,{title:"Pressure Settings",children:[(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Stored pressure",children:(0,r.jsxs)(i.ko,{value:a,minValue:0,maxValue:s,ranges:{good:[u,1/0],average:[d,u],bad:[-1/0,d]},children:[a," kPa"]})})}),(0,r.jsxs)(i.Kq,{mt:1,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,color:"label",mt:.3,children:"Target pressure:"}),(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx,{icon:"undo",mr:.5,width:2.2,textAlign:"center",onClick:function(){return t("set_rate",{rate:101.325})}}),(0,r.jsx)(i.zx,{icon:"fast-backward",mr:.5,width:2.2,textAlign:"center",onClick:function(){return t("set_rate",{rate:0})}})]}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.iR,{animated:!0,unit:"kPa",width:16.5,stepPixelSize:.22,minValue:0,maxValue:s,value:c,onChange:function(e,n){return t("set_rate",{rate:n})}})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{icon:"fast-forward",ml:.5,width:2.2,textAlign:"center",onClick:function(){return t("set_rate",{rate:s})}})})]})]})},u=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.holding_tank,c=l.max_rate,s=.7*c,u=.25*c;return(0,r.jsxs)(i.$0,{fill:!0,title:"Holding Tank",buttons:(0,r.jsx)(i.zx,{onClick:function(){return t("remove_tank")},icon:"eject",children:"Eject"}),children:[(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{color:"label",children:"Tank Label:"}),(0,r.jsx)(i.Kq.Item,{color:"silver",ml:4.5,children:a.name})]}),(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{color:"label",mt:2,children:"Tank Pressure:"}),(0,r.jsx)(i.Kq.Item,{grow:!0,mt:1.5,children:(0,r.jsxs)(i.ko,{value:a.tank_pressure,minValue:0,maxValue:c,ranges:{good:[s,1/0],average:[u,s],bad:[-1/0,u]},children:[a.tank_pressure," kPa"]})})]})]})}},1908:function(e,n,t){"use strict";t.r(n),t.d(n,{PortableTurret:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(8986),c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data,s=c.locked,u=c.on,d=c.lethal,f=c.lethal_is_configurable,h=c.targetting_is_configurable,m=c.check_weapons,x=c.neutralize_noaccess,p=c.access_is_configurable,j=c.regions,g=c.selectedAccess,b=c.one_access,y=c.neutralize_norecord,v=c.neutralize_criminals,w=c.neutralize_all,k=c.neutralize_unidentified,_=c.neutralize_cyborgs;return(0,r.jsx)(l.Rz,{width:475,height:750,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsxs)(i.f7,{children:["Swipe an ID card to ",s?"unlock":"lock"," this interface."]}),(0,r.jsx)(i.Kq.Item,{m:0,children:(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Status",children:(0,r.jsx)(i.zx,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,disabled:s,onClick:function(){return t("power")}})}),!!f&&(0,r.jsx)(i.H2.Item,{label:"Lethals",children:(0,r.jsx)(i.zx,{icon:d?"exclamation-triangle":"times",content:d?"On":"Off",color:d?"bad":"",disabled:s,onClick:function(){return t("lethal")}})}),!!p&&(0,r.jsx)(i.H2.Item,{label:"One Access Mode",children:(0,r.jsx)(i.zx,{icon:b?"address-card":"exclamation-triangle",content:b?"On":"Off",selected:b,disabled:s,onClick:function(){return t("one_access")}})})]})})}),!!h&&(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsxs)(i.$0,{title:"Humanoid Targets",children:[(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:v,content:"Wanted Criminals",disabled:s,onClick:function(){return t("autharrest")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:y,content:"No Sec Record",disabled:s,onClick:function(){return t("authnorecord")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:m,content:"Unauthorized Weapons",disabled:s,onClick:function(){return t("authweapon")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:x,content:"Unauthorized Access",disabled:s,onClick:function(){return t("authaccess")}})]}),(0,r.jsxs)(i.$0,{title:"Other Targets",children:[(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:k,content:"Unidentified Lifesigns (Xenos, Animals, Etc)",disabled:s,onClick:function(){return t("authxeno")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:_,content:"Cyborgs",disabled:s,onClick:function(){return t("authborgs")}}),(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:w,content:"All Non-Synthetics",disabled:s,onClick:function(){return t("authsynth")}})]})]}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:!!p&&(0,r.jsx)(a.AccessList,{accesses:j,selectedList:g,accessMod:function(e){return t("set",{access:e})},grantAll:function(){return t("grant_all")},denyAll:function(){return t("clear_all")},grantDep:function(e){return t("grant_region",{region:e})},denyDep:function(e){return t("deny_region",{region:e})}})})]})})})}},5686:function(e,n,t){"use strict";t.r(n),t.d(n,{PowerMonitor:()=>m,PowerMonitorMainContent:()=>x});var r=t(1557),i=t(7662),o=t(2778),l=t(3987),a=t(8153),c=t(8531),s=t(4893),u=t(3817);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t50?"battery-half":"battery-quarter";break;case"C":i="bolt";break;case"F":i="battery-full";break;case"M":i="slash"}return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.JO,{width:"18px",textAlign:"center",name:i,color:"N"===n&&(t>50?"yellow":"red")||"C"===n&&"yellow"||"F"===n&&"green"||"M"===n&&"orange"}),(0,r.jsx)(l.xu,{inline:!0,width:"36px",textAlign:"right",children:(0,a.FH)(t)+"%"})]})},b=function(e){switch(e.status){case"AOn":n=!0,t=!0;break;case"AOff":n=!0,t=!1;break;case"On":n=!1,t=!0;break;case"Off":n=!1,t=!1}var n,t,i=(t?"On":"Off")+" [".concat(n?"auto":"manual","]");return(0,r.jsx)(l.u,{content:i,children:(0,r.jsx)(l.k4,{color:t?"good":"bad",content:n?void 0:"M"})})}},8598:function(e,n,t){"use strict";t.r(n),t.d(n,{PrisonerImplantManager:()=>u});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(5279),c=t(8061),s=t(8575),u=function(e){var n=(0,o.nc)(),t=n.act,u=n.data,d=u.loginState,f=u.prisonerInfo,h=u.chemicalInfo,m=u.trackingInfo;if(!d.logged_in)return(0,r.jsx)(l.Rz,{theme:"security",width:500,height:850,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(s.LoginScreen,{})})});var x=[1,5,10];return(0,r.jsxs)(l.Rz,{theme:"security",width:500,height:850,children:[(0,r.jsx)(a.ComplexModal,{}),(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(c.LoginInfo,{}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Prisoner Points Manager System",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Prisoner",children:(0,r.jsx)(i.zx,{icon:f.name?"eject":"id-card",selected:f.name,content:f.name?f.name:"-----",tooltip:f.name?"Eject ID":"Insert ID",onClick:function(){return t("id_card")}})}),(0,r.jsxs)(i.H2.Item,{label:"Points",children:[null!==f.points?f.points:"-/-",(0,r.jsx)(i.zx,{ml:2,icon:"minus-square",disabled:null===f.points,content:"Reset",onClick:function(){return t("reset_points")}})]}),(0,r.jsxs)(i.H2.Item,{label:"Point Goal",children:[null!==f.goal?f.goal:"-/-",(0,r.jsx)(i.zx,{ml:2,icon:"pen",disabled:null===f.goal,content:"Edit",onClick:function(){return(0,a.modalOpen)("set_points")}})]}),(0,r.jsx)(i.H2.Item,{children:(0,r.jsxs)("box",{hidden:null===f.goal,children:["1 minute of prison time should roughly equate to 150 points.",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Sentences should not exceed 5000 points.",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Permanent prisoners should not be given a point goal.",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),"Prisoners who meet their point goal will be able to automatically access their locker and return to the station using the shuttle."]})})]})})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Tracking Implants",children:m.map(function(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.xu,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,r.jsxs)(i.xu,{bold:!0,children:["Subject: ",e.subject]}),(0,r.jsxs)(i.xu,{children:[" ",(0,r.jsx)("br",{}),(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Location",children:e.location}),(0,r.jsx)(i.H2.Item,{label:"Health",children:e.health}),(0,r.jsx)(i.H2.Item,{label:"Prisoner",children:(0,r.jsx)(i.zx,{icon:"exclamation-triangle",content:"Warn",tooltip:"Broadcast a message to this poor sod",onClick:function(){return(0,a.modalOpen)("warn",{uid:e.uid})}})})]})]},e.subject)]}),(0,r.jsx)("br",{})]})})})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Chemical Implants",children:h.map(function(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.xu,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,r.jsxs)(i.xu,{bold:!0,children:["Subject: ",e.name]}),(0,r.jsxs)(i.xu,{children:[" ",(0,r.jsx)("br",{}),(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Remaining Reagents",children:e.volume})}),x.map(function(n){return(0,r.jsx)(i.zx,{mt:2,disabled:e.volumea});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,c=a.can_go_home,s=a.emagged,u=a.id_inserted,d=a.id_name,f=a.id_points,h=a.id_goal,m=+!s,x=c?"Completed!":"Insufficient";s&&(x="ERR0R");var p="No ID inserted";return u?p=(0,r.jsx)(i.ko,{value:f/h,ranges:{good:[m,1/0],bad:[-1/0,m]},children:f+" / "+h+" "+x}):s&&(p="ERR0R COMPLETED?!@"),(0,r.jsx)(l.Rz,{width:315,height:150,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Status",children:p}),(0,r.jsx)(i.H2.Item,{label:"Shuttle controls",children:(0,r.jsx)(i.zx,{fluid:!0,content:"Move shuttle",disabled:!c,onClick:function(){return t("move_shuttle")}})}),(0,r.jsx)(i.H2.Item,{label:"Inserted ID",children:(0,r.jsx)(i.zx,{fluid:!0,content:u?d:"-------------",onClick:function(){return t("handle_id")}})})]})})})}},1434:function(e,n,t){"use strict";t.r(n),t.d(n,{PrizeCounter:()=>u});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817);function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tu;return(0,r.jsx)(o.zA,{fluid:!0,title:e.name,dmIcon:e.icon,dmIconState:e.icon_state,buttonsAlt:(0,r.jsxs)(o.zx,{bold:!0,fontSize:1.5,tooltip:n&&"Not enough tickets",disabled:n,onClick:function(){return t("purchase",{purchase:e.itemID})},children:[e.cost,(0,r.jsx)(o.JO,{m:0,mt:.25,name:"ticket",color:n?"bad":"good",size:1.6})]}),children:e.desc},e.name)})})})})})})}},8386:function(e,n,t){"use strict";t.r(n),t.d(n,{RCD:()=>s});var r=t(1557);t(2778);var i=t(3987),o=t(4893),l=t(3817),a=t(8986),c=t(5279),s=function(){return(0,r.jsxs)(l.Rz,{width:480,height:670,children:[(0,r.jsx)(c.ComplexModal,{}),(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(u,{}),(0,r.jsx)(d,{}),(0,r.jsx)(h,{}),(0,r.jsx)(m,{})]})})]})},u=function(){var e=(0,o.nc)().data,n=e.matter,t=e.max_matter,l=.7*t,a=.25*t;return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Matter Storage",children:(0,r.jsx)(i.ko,{ranges:{good:[l,1/0],average:[a,l],bad:[-1/0,a]},value:n,maxValue:t,children:(0,r.jsx)(i.Kq.Item,{textAlign:"center",children:"".concat(n," / ").concat(t," units")})})})})},d=function(){return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Construction Type",children:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(f,{mode_type:"Floors and Walls"}),(0,r.jsx)(f,{mode_type:"Airlocks"}),(0,r.jsx)(f,{mode_type:"Windows"}),(0,r.jsx)(f,{mode_type:"Deconstruction"})]})})})},f=function(e){var n=e.mode_type,t=(0,o.nc)(),l=t.act,a=t.data.mode;return(0,r.jsx)(i.Kq.Item,{grow:!0,textAlign:"center",children:(0,r.jsx)(i.zx,{fluid:!0,color:"transparent",content:n,selected:+(a===n),onClick:function(){return l("mode",{mode:n})}})})},h=function(){var e=(0,o.nc)(),n=e.act,t=e.data,l=t.door_name,a=t.electrochromic,s=t.airlock_glass;return(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{title:"Airlock Settings",children:(0,r.jsxs)(i.Kq,{textAlign:"center",children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,color:"transparent",icon:"pen-alt",content:(0,r.jsxs)(r.Fragment,{children:["Rename: ",(0,r.jsx)("b",{children:l})]}),onClick:function(){return(0,c.modalOpen)("renameAirlock")}})}),(0,r.jsx)(i.Kq.Item,{children:1===s&&(0,r.jsx)(i.zx,{fluid:!0,icon:a?"toggle-on":"toggle-off",content:"Electrochromic",selected:a,onClick:function(){return n("electrochromic")}})})]})})})},m=function(){var e=(0,o.nc)(),n=e.act,t=e.data,l=t.tab,c=t.locked,s=t.one_access,u=t.selected_accesses,d=t.regions;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Kq.Item,{textAlign:"center",children:(0,r.jsxs)(i.mQ,{fluid:!0,children:[(0,r.jsx)(i.mQ.Tab,{icon:"cog",selected:1===l,onClick:function(){return n("set_tab",{tab:1})},children:"Airlock Types"}),(0,r.jsx)(i.mQ.Tab,{selected:2===l,icon:"list",onClick:function(){return n("set_tab",{tab:2})},children:"Airlock Access"})]})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:1===l?(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Types",children:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(x,{check_number:0})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(x,{check_number:1})})]})}):2===l&&c?(0,r.jsx)(i.$0,{fill:!0,title:"Access",buttons:(0,r.jsx)(i.zx,{icon:"lock-open",content:"Unlock",onClick:function(){return n("set_lock",{new_lock:"unlock"})}}),children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,r.jsx)(i.JO,{name:"lock",size:5,mb:3}),(0,r.jsx)("br",{}),"Airlock access selection is currently locked."]})})}):(0,r.jsx)(a.AccessList,{sectionButtons:(0,r.jsx)(i.zx,{icon:"lock",content:"Lock",onClick:function(){return n("set_lock",{new_lock:"lock"})}}),usedByRcd:1,rcdButtons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx.Checkbox,{checked:s,content:"One",onClick:function(){return n("set_one_access",{access:"one"})}}),(0,r.jsx)(i.zx.Checkbox,{checked:!s,width:4,content:"All",onClick:function(){return n("set_one_access",{access:"all"})}})]}),accesses:d,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})},grantableList:[]})})]})},x=function(e){var n=e.check_number,t=(0,o.nc)(),l=t.act,a=t.data,c=a.door_types_ui_list,s=a.door_type,u=c.filter(function(e,t){return t%2===n});return(0,r.jsx)(i.Kq.Item,{children:u.map(function(e,n){return(0,r.jsx)(i.Kq,{mb:.5,children:(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,selected:s===e.type,content:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{src:"data:image/jpeg;base64,".concat(e.image),style:{verticalAlign:"middle",width:"32px",margin:"3px",marginRight:"6px",marginLeft:"-3px"}}),e.name]}),onClick:function(){return l("door_type",{door_type:e.type})}})})},n)})})}},9:function(e,n,t){"use strict";t.r(n),t.d(n,{RPD:()=>s});var r=t(1557),i=t(3987),o=t(3946),l=t(4893),a=t(6783),c=t(3817),s=function(e){var n=(0,l.nc)(),t=n.act,o=n.data,a=o.mainmenu,s=o.mode;return(0,r.jsx)(c.Rz,{width:550,height:440,children:(0,r.jsx)(c.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.mQ,{fluid:!0,children:a.map(function(e){return(0,r.jsx)(i.mQ.Tab,{icon:e.icon,selected:e.mode===s,onClick:function(){return t("mode",{mode:e.mode})},children:e.category},e.category)})})}),function(e){switch(e){case 1:return(0,r.jsx)(u,{});case 2:return(0,r.jsx)(d,{});case 3:return(0,r.jsx)(h,{});case 4:return(0,r.jsx)(m,{});case 5:return(0,r.jsx)(x,{});case 6:return(0,r.jsx)(p,{});default:return"WE SHOULDN'T BE HERE!"}}(s)]})})})},u=function(e){var n=(0,l.nc)(),t=n.act,c=n.data,s=c.pipemenu,u=c.pipe_category,d=c.pipelist,h=c.whatpipe,m=c.iconrotation;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.mQ,{fluid:!0,children:s.map(function(e){return(0,r.jsx)(i.mQ.Tab,{textAlign:"center",selected:e.pipemode===u,onClick:function(){return t("pipe_category",{pipe_category:e.pipemode})},children:e.category},e.category)})})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.II,{fluid:!0,placeholder:"Enter pipe label",onChange:function(e){return t("set_label",{set_label:e})}})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,basis:"50%",children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,children:(0,r.jsx)(a.rj,{children:(0,r.jsx)(a.rj.Column,{children:d.filter(function(e){return 1===e.pipe_type}).filter(function(e){return e.pipe_category===u}).map(function(e){return(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.zx,{fluid:!0,content:e.pipe_name,icon:"cog",selected:e.pipe_id===h,onClick:function(){return t("whatpipe",{whatpipe:e.pipe_id})},style:{marginBottom:"2px"}})},e.pipe_name)})})})})}),(0,r.jsx)(i.Kq.Item,{grow:!0,basis:"50%",children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(a.rj,{children:(0,r.jsxs)(a.rj.Column,{children:[(0,r.jsx)(f,{}),d.filter(function(e){return 1===e.pipe_type&&e.pipe_id===h&&1!==e.orientations}).map(function(e){return(0,r.jsx)(i.xu,{children:e.bendy?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:4===m,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","southeast-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:4})},style:{marginBottom:"5px"}})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:2===m,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","southwest-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:2})},style:{marginBottom:"5px"}})})]}),(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:1===m,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","northeast-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:1})},style:{marginBottom:"5px"}})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:8===m,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","northwest-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:8})},style:{marginBottom:"5px"}})})]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:1===m,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","north-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:1})},style:{marginBottom:"5px"}})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:4===m,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","east-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:4})},style:{marginBottom:"5px"}})})]}),4===e.orientations&&(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:2===m,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","south-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:2})},style:{marginBottom:"5px"}})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:8===m,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","west-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:8})},style:{marginBottom:"5px"}})})]})]})},e.pipe_id)})]})})})})]})})]})},d=function(e){var n=(0,l.nc)(),t=n.act,c=n.data;c.pipe_category;var s=c.pipelist,u=c.whatdpipe,d=c.iconrotation;return c.auto_wrench_toggle,(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,basis:"50%",children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(a.rj,{children:(0,r.jsx)(a.rj.Column,{children:s.filter(function(e){return 2===e.pipe_type}).map(function(e){return(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.zx,{fluid:!0,content:e.pipe_name,icon:"cog",selected:e.pipe_id===u,onClick:function(){return t("whatdpipe",{whatdpipe:e.pipe_id})},style:{marginBottom:"2px"}})},e.pipe_name)})})})})}),(0,r.jsx)(i.Kq.Item,{grow:!0,basis:"50%",children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(a.rj,{children:(0,r.jsxs)(a.rj.Column,{children:[(0,r.jsx)(f,{}),s.filter(function(e){return 2===e.pipe_type&&e.pipe_id===u&&1!==e.orientations}).map(function(e){return(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:1===d,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","north-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:1})},style:{marginBottom:"5px"}})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:4===d,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","east-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:4})},style:{marginBottom:"5px"}})})]}),4===e.orientations&&(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:2===d,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","south-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:2})},style:{marginBottom:"5px"}})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:8===d,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","west-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:8})},style:{marginBottom:"5px"}})})]})]},e.pipe_id)})]})})})})]})})},f=function(e){var n=(0,l.nc)(),t=n.act,o=n.data,a=o.iconrotation,c=o.auto_wrench_toggle;return(0,r.jsxs)(i.Kq,{mb:1,textAlign:"center",children:[(0,r.jsx)(i.Kq.Item,{basis:"50%",children:(0,r.jsx)(i.zx,{fluid:!0,content:"Auto-orientation",selected:0===a,onClick:function(){return t("iconrotation",{iconrotation:0})}})}),(0,r.jsx)(i.Kq.Item,{basis:"50%",children:(0,r.jsx)(i.zx.Checkbox,{fluid:!0,checked:c,content:"Auto-anchor",onClick:function(){return t("auto_wrench_toggle")}})})]})},h=function(e){return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",children:[(0,r.jsx)(i.JO,{name:"sync-alt",size:5,color:"gray",mb:5}),(0,r.jsx)("br",{}),"Device ready to rotate loose pipes..."]})})})})},m=function(e){return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",children:[(0,r.jsx)(i.JO,{name:"arrows-alt-h",size:5,color:"gray",mb:5}),(0,r.jsx)("br",{}),"Device ready to flip loose pipes..."]})})})})},x=function(e){return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(i.Kq,{fill:!0,children:(0,r.jsxs)(i.Kq.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",children:[(0,r.jsx)(i.JO,{name:"recycle",size:5,color:"gray",mb:5}),(0,r.jsx)("br",{}),"Device ready to eat loose pipes..."]})})})})},p=function(e){var n=(0,l.nc)(),t=n.act,c=n.data;c.pipe_category;var s=c.pipelist,u=c.whatttube,d=c.iconrotation;return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsxs)(i.Kq,{fill:!0,children:[(0,r.jsx)(i.Kq.Item,{grow:!0,basis:"50%",children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(a.rj,{children:(0,r.jsx)(a.rj.Column,{children:s.filter(function(e){return 3===e.pipe_type}).map(function(e){return(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.zx,{fluid:!0,content:e.pipe_name,icon:"cog",selected:e.pipe_id===u,onClick:function(){return t("whatttube",{whatttube:e.pipe_id})},style:{marginBottom:"2px"}})},e.pipe_name)})})})})}),(0,r.jsx)(i.Kq.Item,{grow:!0,basis:"50%",children:(0,r.jsx)(i.$0,{fill:!0,children:(0,r.jsx)(a.rj,{children:(0,r.jsxs)(a.rj.Column,{children:[(0,r.jsx)(f,{}),s.filter(function(e){return 3===e.pipe_type&&e.pipe_id===u&&1!==e.orientations}).map(function(e){return(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:1===d,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","north-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:1})},style:{marginBottom:"5px"}})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:4===d,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","east-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:4})},style:{marginBottom:"5px"}})})]}),4===e.orientations&&(0,r.jsxs)(a.rj,{children:[(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:2===d,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","south-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:2})},style:{marginBottom:"5px"}})}),(0,r.jsx)(a.rj.Column,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",selected:8===d,content:(0,r.jsx)(i.xu,{className:(0,o.Sh)(["rpd32x32","west-".concat(e.pipe_icon)])}),onClick:function(){return t("iconrotation",{iconrotation:8})},style:{marginBottom:"5px"}})})]})]},e.pipe_id)})]})})})})]})})}},5307:function(e,n,t){"use strict";t.r(n),t.d(n,{Radio:()=>u});var r=t(1557),i=t(7662),o=t(3987),l=t(8153),a=t(4893),c=t(9242),s=t(3817),u=function(e){var n=(0,a.nc)(),t=n.act,u=n.data,d=u.freqlock,f=u.frequency,h=u.minFrequency,m=u.maxFrequency,x=u.canReset,p=u.listening,j=u.broadcasting,g=u.loudspeaker,b=u.has_loudspeaker,y=u.ichannels,v=u.schannels,w=c.XY.find(function(e){return e.freq===f}),k=!!w&&!!w.name,_=[];c.XY.forEach(function(e){_[e.name]=e.color});var C=(0,i.UI)(v,function(e,n){return{name:n,status:!!e}}),S=(0,i.UI)(y,function(e,n){return{name:n,freq:e}});return(0,r.jsx)(s.Rz,{width:375,height:130+21.2*C.length+11*S.length,children:(0,r.jsx)(s.Rz.Content,{scrollable:!0,children:(0,r.jsx)(o.$0,{fill:!0,children:(0,r.jsxs)(o.H2,{children:[(0,r.jsxs)(o.H2.Item,{label:"Frequency",children:[d&&(0,r.jsx)(o.xu,{inline:!0,color:"light-gray",children:(0,l.FH)(f/10,1)+" kHz"})||(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.Y2,{animated:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:h/10,maxValue:m/10,value:f/10,format:function(e){return(0,l.FH)(e,1)},onChange:function(e){return t("frequency",{adjust:e-f/10})}}),(0,r.jsx)(o.zx,{icon:"undo",content:"",disabled:!x,tooltip:"Reset",onClick:function(){return t("frequency",{tune:"reset"})}})]}),k&&w&&(0,r.jsxs)(o.xu,{inline:!0,color:w.color,ml:2,children:["[",w.name,"]"]})]}),(0,r.jsxs)(o.H2.Item,{label:"Audio",children:[(0,r.jsx)(o.zx,{textAlign:"center",width:"37px",icon:p?"volume-up":"volume-mute",selected:p,color:p?"":"bad",tooltip:p?"Disable Incoming":"Enable Incoming",onClick:function(){return t("listen")}}),(0,r.jsx)(o.zx,{textAlign:"center",width:"37px",icon:j?"microphone":"microphone-slash",selected:j,tooltip:j?"Disable Hotmic":"Enable Hotmic",onClick:function(){return t("broadcast")}}),!!b&&(0,r.jsx)(o.zx,{ml:1,icon:"bullhorn",selected:g,content:"Loudspeaker",tooltip:g?"Disable Loudspeaker":"Enable Loudspeaker",onClick:function(){return t("loudspeaker")}})]}),0!==v.length&&(0,r.jsx)(o.H2.Item,{label:"Keyed Channels",children:C.map(function(e){return(0,r.jsxs)(o.xu,{children:[(0,r.jsx)(o.zx,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:"",onClick:function(){return t("channel",{channel:e.name})}}),(0,r.jsx)(o.xu,{inline:!0,color:_[e.name],children:e.name})]},e.name)})}),0!==S.length&&(0,r.jsx)(o.H2.Item,{label:"Standard Channel",children:S.map(function(e){return(0,r.jsx)(o.zx,{icon:"arrow-right",content:e.name,selected:k&&w&&w.name===e.name,onClick:function(){return t("ichannel",{ichannel:e.freq})}},"i_"+e.name)})})]})})})})}},2905:function(e,n,t){"use strict";t.r(n),t.d(n,{RankedListInputModal:()=>d});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817),c=t(3100),s=t(4799);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);ts});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(8124),c=t(1735),s=function(e){var n=(0,o.nc)(),t=(n.act,n.data),a=n.config,s=t.operating,h=a.title;return(0,r.jsx)(l.Rz,{width:400,height:565,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(c.Operating,{operating:s,name:h}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(u,{})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(d,{})}),(0,r.jsx)(i.Kq.Item,{height:"30%",children:(0,r.jsx)(f,{})})]})})})},u=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.inactive;return(0,r.jsx)(i.$0,{title:"Controls",children:(0,r.jsxs)(i.Kq,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"mortar-pestle",disabled:l,tooltip:l?"There are no contents":"Grind the contents",tooltipPosition:"bottom",content:"Grind",onClick:function(){return t("grind")}})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",icon:"blender",disabled:l,tooltip:l?"There are no contents":"Juice the contents",tooltipPosition:"bottom",content:"Juice",onClick:function(){return t("juice")}})})]})})},d=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.contents,c=l.limit,s=l.count,u=l.inactive;return(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Contents",buttons:(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.xu,{inline:!0,color:"label",mr:2,children:[s," / ",c," items"]}),(0,r.jsx)(i.zx,{icon:"eject",content:"Eject Contents",onClick:function(){return t("eject")},disabled:u,tooltip:u?"There are no contents":""})]}),children:(0,r.jsx)(i.iA,{className:"Ingredient__Table",children:a.map(function(e){return(0,r.jsxs)(i.iA.Row,{tr:5,children:[(0,r.jsx)("td",{children:(0,r.jsx)(i.iA.Cell,{bold:!0,children:e.name})}),(0,r.jsx)("td",{children:(0,r.jsxs)(i.iA.Cell,{collapsing:!0,textAlign:"center",children:[e.amount," ",e.units]})})]},e.name)})})})},f=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,c=l.beaker_loaded,s=l.beaker_current_volume,u=l.beaker_max_volume,d=l.beaker_contents;return(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Beaker",buttons:!!c&&(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.xu,{inline:!0,color:"label",mr:2,children:[s," / ",u," units"]}),(0,r.jsx)(i.zx,{icon:"eject",content:"Detach Beaker",onClick:function(){return t("detach")}})]}),children:(0,r.jsx)(a.BeakerContents,{beakerLoaded:c,beakerContents:d})})}},8992:function(e,n,t){"use strict";t.r(n),t.d(n,{ReagentsEditor:()=>j});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);tc});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(1675),c=function(e){var n=(0,o.nc)(),t=n.act,c=n.data,s=c.on;return(0,r.jsx)(l.Rz,{width:300,height:165,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsxs)(i.$0,{children:[(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Receiver",children:(0,r.jsx)(i.zx,{icon:"power-off",content:s?"On":"Off",color:s?null:"red",selected:s,onClick:function(){return t("recv_power")}})})}),(0,r.jsx)(a.Signaler,{data:c})]})})})}},3737:function(e,n,t){"use strict";t.r(n),t.d(n,{RequestConsole:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=(n.act,n.data),a=t.screen,p=t.announcementConsole;return(0,r.jsx)(l.Rz,{width:450,height:p?425:385,children:(0,r.jsx)(l.Rz.Content,{scrollable:!0,children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:function(e){switch(e){case 0:return(0,r.jsx)(c,{});case 1:return(0,r.jsx)(s,{purpose:"ASSISTANCE"});case 2:return(0,r.jsx)(s,{purpose:"SUPPLIES"});case 3:return(0,r.jsx)(s,{purpose:"INFO"});case 4:return(0,r.jsx)(u,{type:"SUCCESS"});case 5:return(0,r.jsx)(u,{type:"FAIL"});case 6:return(0,r.jsx)(d,{type:"MESSAGES"});case 7:return(0,r.jsx)(f,{});case 8:return(0,r.jsx)(h,{});case 9:return(0,r.jsx)(m,{});case 10:return(0,r.jsx)(d,{type:"SHIPPING"});case 11:return(0,r.jsx)(x,{});default:return"WE SHOULDN'T BE HERE!"}}(a)})})})},c=function(e){var n,t=(0,o.nc)(),l=t.act,a=t.data,c=a.newmessagepriority,s=a.announcementConsole,u=a.silent;return n=3===c?(0,r.jsx)(i.mx,{children:(0,r.jsx)(i.xu,{color:"red",bold:!0,mb:1,children:"NEW PRIORITY MESSAGES"})}):c>0?(0,r.jsx)(i.xu,{color:"red",bold:!0,mb:1,children:"There are new messages"}):(0,r.jsx)(i.xu,{color:"label",mb:1,children:"There are no new messages"}),(0,r.jsx)(i.Kq.Item,{grow:!0,textAlign:"center",children:(0,r.jsxs)(i.$0,{fill:!0,scrollable:!0,title:"Main Menu",buttons:(0,r.jsx)(i.zx,{width:9,content:u?"Speaker Off":"Speaker On",selected:!u,icon:u?"volume-mute":"volume-up",onClick:function(){return l("toggleSilent")}}),children:[n,(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.zx,{fluid:!0,lineHeight:3,content:"View Messages",icon:c>0?"envelope-open-text":"envelope",onClick:function(){return l("setScreen",{setScreen:6})}})}),(0,r.jsxs)(i.Kq.Item,{mt:1,children:[(0,r.jsx)(i.zx,{fluid:!0,lineHeight:3,content:"Request Assistance",icon:"hand-paper",onClick:function(){return l("setScreen",{setScreen:1})}}),(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx,{fluid:!0,lineHeight:3,content:"Request Supplies",icon:"box",onClick:function(){return l("setScreen",{setScreen:2})}}),(0,r.jsx)(i.zx,{fluid:!0,lineHeight:3,content:"Request Secondary Goal",icon:"clipboard-list",onClick:function(){return l("setScreen",{setScreen:11})}}),(0,r.jsx)(i.zx,{fluid:!0,lineHeight:3,content:"Relay Anonymous Information",icon:"comment",onClick:function(){return l("setScreen",{setScreen:3})}})]})]}),(0,r.jsx)(i.Kq.Item,{mt:1,children:(0,r.jsxs)(i.Kq.Item,{children:[(0,r.jsx)(i.zx,{fluid:!0,lineHeight:3,content:"Print Shipping Label",icon:"tag",onClick:function(){return l("setScreen",{setScreen:9})}}),(0,r.jsx)(i.zx,{fluid:!0,lineHeight:3,content:"View Shipping Logs",icon:"clipboard-list",onClick:function(){return l("setScreen",{setScreen:10})}})]})}),!!s&&(0,r.jsx)(i.Kq.Item,{mt:1,children:(0,r.jsx)(i.zx,{fluid:!0,lineHeight:3,content:"Send Station-Wide Announcement",icon:"bullhorn",onClick:function(){return l("setScreen",{setScreen:8})}})})]})})},s=function(e){var n,t=(0,o.nc)(),l=t.act,a=t.data,c=a.department,s=[];switch(e.purpose){case"ASSISTANCE":s=a.assist_dept,n="Request assistance from another department";break;case"SUPPLIES":s=a.supply_dept,n="Request supplies from another department";break;case"INFO":s=a.info_dept,n="Relay information to another department"}return(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:n,buttons:(0,r.jsx)(i.zx,{content:"Back",icon:"arrow-left",onClick:function(){return l("setScreen",{setScreen:0})}}),children:(0,r.jsx)(i.H2,{children:s.filter(function(e){return e!==c}).map(function(e){return(0,r.jsxs)(i.H2.Item,{label:e,textAlign:"right",className:"candystripe",children:[(0,r.jsx)(i.zx,{content:"Message",icon:"envelope",onClick:function(){return l("writeInput",{write:e,priority:2})}}),(0,r.jsx)(i.zx,{content:"High Priority",icon:"exclamation-circle",onClick:function(){return l("writeInput",{write:e,priority:3})}})]},e)})})})})},u=function(e){var n,t=(0,o.nc)(),l=t.act;switch(t.data,e.type){case"SUCCESS":n="Message sent successfully";break;case"FAIL":n="Unable to contact messaging server"}return(0,r.jsx)(i.$0,{fill:!0,title:n,buttons:(0,r.jsx)(i.zx,{content:"Back",icon:"arrow-left",onClick:function(){return l("setScreen",{setScreen:0})}})})},d=function(e){var n,t,l=(0,o.nc)(),a=l.act,c=l.data;switch(e.type){case"MESSAGES":n=c.message_log,t="Message Log";break;case"SHIPPING":n=c.shipping_log,t="Shipping label print log"}return n.reverse(),(0,r.jsx)(i.Kq.Item,{grow:!0,textAlign:"center",children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:t,buttons:(0,r.jsx)(i.zx,{content:"Back",icon:"arrow-left",onClick:function(){return a("setScreen",{setScreen:0})}}),children:n.map(function(e){return(0,r.jsxs)(i.xu,{textAlign:"left",children:[e.map(function(e,n){return(0,r.jsx)("div",{children:e},n)}),(0,r.jsx)("hr",{})]},e)})})})},f=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.recipient,c=l.message,s=l.msgVerified,u=l.msgStamped;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,textAlign:"center",children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Message Authentication",buttons:(0,r.jsx)(i.zx,{content:"Back",icon:"arrow-left",onClick:function(){return t("setScreen",{setScreen:0})}}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Recipient",children:a}),(0,r.jsx)(i.H2.Item,{label:"Message",children:c}),(0,r.jsx)(i.H2.Item,{label:"Validated by",color:"green",children:s}),(0,r.jsx)(i.H2.Item,{label:"Stamped by",color:"blue",children:u})]})})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsx)(i.$0,{children:(0,r.jsx)(i.zx,{fluid:!0,textAlign:"center",content:"Send Message",icon:"envelope",onClick:function(){return t("department",{department:a})}})})})]})},h=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.message,c=l.announceAuth;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Station-Wide Announcement",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{content:"Back",icon:"arrow-left",onClick:function(){return t("setScreen",{setScreen:0})}}),(0,r.jsx)(i.zx,{content:"Edit Message",icon:"edit",onClick:function(){return t("writeAnnouncement")}})]}),children:a})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.$0,{children:[c?(0,r.jsx)(i.xu,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,r.jsx)(i.xu,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}),(0,r.jsx)(i.zx,{fluid:!0,mt:2,textAlign:"center",content:"Send Announcement",icon:"bullhorn",disabled:!(c&&a),onClick:function(){return t("sendAnnouncement")}})]})})]})},m=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.shipDest,c=l.msgVerified,s=l.ship_dept;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Kq.Item,{textAlign:"center",children:(0,r.jsxs)(i.$0,{title:"Print Shipping Label",buttons:(0,r.jsx)(i.zx,{content:"Back",icon:"arrow-left",onClick:function(){return t("setScreen",{setScreen:0})}}),children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Destination",children:a}),(0,r.jsx)(i.H2.Item,{label:"Validated by",children:c})]}),(0,r.jsx)(i.zx,{fluid:!0,mt:1,textAlign:"center",content:"Print Label",icon:"print",disabled:!(a&&c),onClick:function(){return t("printLabel")}})]})}),(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Destinations",children:(0,r.jsx)(i.H2,{children:s.map(function(e){return(0,r.jsx)(i.H2.Item,{label:e,textAlign:"right",className:"candystripe",children:(0,r.jsx)(i.zx,{content:a===e?"Selected":"Select",selected:a===e,onClick:function(){return t("shipSelect",{shipSelect:e})}})},e)})})})})]})},x=function(e){var n=(0,o.nc)(),t=n.act,l=n.data,a=l.secondaryGoalAuth,c=l.secondaryGoalEnabled;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(i.$0,{fill:!0,scrollable:!0,title:"Request Secondary Goal",buttons:(0,r.jsx)(i.zx,{content:"Back",icon:"arrow-left",onClick:function(){return t("setScreen",{setScreen:0})}})})}),(0,r.jsx)(i.Kq.Item,{children:(0,r.jsxs)(i.$0,{children:[c?a?(0,r.jsx)(i.xu,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,r.jsx)(i.xu,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}):(0,r.jsx)(i.xu,{textAlign:"center",color:"label",children:"Complete your current goal first!"}),(0,r.jsx)(i.zx,{fluid:!0,mt:2,textAlign:"center",content:"Request Secondary Goal",icon:"clipboard-list",disabled:!(a&&c),onClick:function(){return t("requestSecondaryGoal")}})]})})]})}},5473:function(e,n,t){"use strict";t.r(n),t.d(n,{LinkMenu:()=>c,RndBackupConsole:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,s=a.network_name,u=a.has_disk,d=a.disk_name,f=a.linked,h=a.techs,m=a.last_timestamp;return(0,r.jsx)(l.Rz,{width:900,height:600,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[(0,r.jsxs)(i.$0,{title:"Device Info",children:[(0,r.jsx)(i.xu,{mb:2,children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Current Network",children:f?(0,r.jsx)(i.zx,{content:s,icon:"unlink",selected:1,onClick:function(){return t("unlink")}}):"None"}),(0,r.jsx)(i.H2.Item,{label:"Loaded Disk",children:u?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{content:d+" (Last backup: "+m+")",icon:"save",selected:1,onClick:function(){return t("eject_disk")}}),(0,r.jsx)(i.zx,{icon:"sign-in-alt",content:"Save all",onClick:function(){return t("saveall2disk")}}),(0,r.jsx)(i.zx,{icon:"sign-out-alt",content:"Load all",onClick:function(){return t("saveall2network")}})]}):"None"})]})}),!!f||(0,r.jsx)(c,{})]}),(0,r.jsx)(i.xu,{mt:2,children:(0,r.jsx)(i.$0,{title:"Tech Info",children:(0,r.jsxs)(i.iA,{m:"0.5rem",children:[(0,r.jsxs)(i.iA.Row,{header:!0,children:[(0,r.jsx)(i.iA.Cell,{children:"Tech Name"}),(0,r.jsx)(i.iA.Cell,{children:"Network Level"}),(0,r.jsx)(i.iA.Cell,{children:"Disk Level"}),(0,r.jsx)(i.iA.Cell,{children:"Actions"})]}),Object.keys(h).map(function(e){return!(h[e].network_level>0||h[e].disk_level>0)||(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:h[e].name}),(0,r.jsx)(i.iA.Cell,{children:h[e].network_level||"None"}),(0,r.jsx)(i.iA.Cell,{children:h[e].disk_level||"None"}),(0,r.jsxs)(i.iA.Cell,{children:[(0,r.jsx)(i.zx,{icon:"sign-in-alt",content:"Load to network",disabled:!u||!f,onClick:function(){return t("savetech2network",{tech:e})}}),(0,r.jsx)(i.zx,{icon:"sign-out-alt",content:"Load to disk",disabled:!u||!f,onClick:function(){return t("savetech2disk",{tech:e})}})]})]},e)})]})})})]})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.controllers;return(0,r.jsx)(i.$0,{title:"Setup Linkage",children:(0,r.jsxs)(i.iA,{m:"0.5rem",children:[(0,r.jsxs)(i.iA.Row,{header:!0,children:[(0,r.jsx)(i.iA.Cell,{children:"Network Address"}),(0,r.jsx)(i.iA.Cell,{children:"Network ID"}),(0,r.jsx)(i.iA.Cell,{children:"Link"})]}),l.map(function(e){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:e.addr}),(0,r.jsx)(i.iA.Cell,{children:e.net_id}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.zx,{content:"Link",icon:"link",onClick:function(){return t("linktonetworkcontroller",{target_controller:e.addr})}})})]},e.addr)})]})})}},8847:function(e,n,t){"use strict";t.r(n),t.d(n,{AnalyzerMenu:()=>a});var r=t(1557),i=t(3987),o=t(3946),l=t(4893),a=function(e){var n=(0,l.nc)(),t=n.data,o=n.act,a=t.tech_levels,s=t.loaded_item,u=t.linked_analyzer,d=t.can_discover;return u?s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.$0,{title:"Object Analysis",buttons:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{content:"Deconstruct",icon:"microscope",onClick:function(){o("deconstruct")}}),(0,r.jsx)(i.zx,{content:"Eject",icon:"eject",onClick:function(){o("eject_item")}}),!d||(0,r.jsx)(i.zx,{content:"Discover",icon:"atom",onClick:function(){o("discover")}})]}),children:(0,r.jsx)(i.H2,{children:(0,r.jsx)(i.H2.Item,{label:"Name",children:s.name})})}),(0,r.jsx)(i.$0,{children:(0,r.jsxs)(i.iA,{id:"research-levels",children:[(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Research Field"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Current Level"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"Object Level"}),(0,r.jsx)(i.iA.Cell,{header:!0,children:"New Level"})]}),a.map(function(e){return(0,r.jsx)(c,{techLevel:e},e.id)})]})})]}):(0,r.jsx)(i.$0,{title:"Analysis Menu",children:"No item loaded. Standing by..."}):(0,r.jsx)(i.$0,{title:"Analysis Menu",children:"NO SCIENTIFIC ANALYZER LINKED TO CONSOLE"})},c=function(e){var n=e.techLevel,t=n.name,l=n.desc,a=n.level,c=n.object_level,s=n.ui_icon,u=null!=c,d=u&&c>=a?Math.max(c,a+1):a;return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.zx,{icon:"circle-info",tooltip:l})}),(0,r.jsxs)(i.iA.Cell,{children:[(0,r.jsx)(i.JO,{name:s})," ",t]}),(0,r.jsx)(i.iA.Cell,{children:a}),u?(0,r.jsx)(i.iA.Cell,{children:c}):(0,r.jsx)(i.iA.Cell,{className:"research-level-no-effect",children:"-"}),(0,r.jsx)(i.iA.Cell,{className:(0,o.Sh)([d!==a&&"upgraded-level"]),children:d})]})}},4761:function(e,n,t){"use strict";t.r(n),t.d(n,{DataDiskMenu:()=>d});var r=t(1557),i=t(3987),o=t(4893),l="tech",a=function(e){var n=(0,o.nc)(),t=n.data,l=n.act,a=t.disk_data;return a?(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Name",children:a.name}),(0,r.jsx)(i.H2.Item,{label:"Level",children:a.level}),(0,r.jsx)(i.H2.Item,{label:"Description",children:a.desc})]}),(0,r.jsx)(i.xu,{mt:"10px",children:(0,r.jsx)(i.zx,{content:"Upload to Database",icon:"arrow-up",onClick:function(){return l("updt_tech")}})})]}):null},c=function(e){var n=(0,o.nc)(),t=n.data,l=n.act,a=t.disk_data;if(!a)return null;var c=a.name,s=a.lathe_types,u=a.materials,d=s.join(", ");return(0,r.jsxs)(i.xu,{children:[(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Name",children:c}),d?(0,r.jsx)(i.H2.Item,{label:"Lathe Types",children:d}):null,(0,r.jsx)(i.H2.Item,{label:"Required Materials"})]}),u.map(function(e){return(0,r.jsxs)(i.xu,{children:["- ",(0,r.jsx)("span",{style:{textTransform:"capitalize"},children:e.name})," x ",e.amount]},e.name)}),(0,r.jsx)(i.xu,{mt:"10px",children:(0,r.jsx)(i.zx,{content:"Upload to Database",icon:"arrow-up",onClick:function(){return l("updt_design")}})})]})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.disk_data;return(0,r.jsx)(i.$0,function(e){for(var n=1;na});var r=t(1557),i=t(3987),o=t(4893),l=t(8642),a=function(e){var n=(0,o.nc)(),t=n.data,a=n.act,c=t.category,s=t.matching_designs,u=4===t.menu?"build":"imprint";return(0,r.jsxs)(i.$0,{fill:!0,scrollable:!0,height:36,title:c,children:[(0,r.jsx)(l.LatheMaterials,{}),(0,r.jsx)(i.iA,{className:"RndConsole__LatheCategory__MatchingDesigns",children:s.map(function(e){var n=e.id,t=e.name,o=e.can_build,l=e.materials;return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.zx,{icon:"print",content:t,disabled:o<1,onClick:function(){return a(u,{id:n,amount:1})}})}),(0,r.jsx)(i.iA.Cell,{children:o>=5?(0,r.jsx)(i.zx,{content:"x5",onClick:function(){return a(u,{id:n,amount:5})}}):null}),(0,r.jsx)(i.iA.Cell,{children:o>=10?(0,r.jsx)(i.zx,{content:"x10",onClick:function(){return a(u,{id:n,amount:10})}}):null}),(0,r.jsx)(i.iA.Cell,{children:l.map(function(e){return(0,r.jsxs)(r.Fragment,{children:[" | ",(0,r.jsxs)("span",{className:e.is_red?"color-red":null,children:[e.amount," ",e.name]})]})})})]},n)})})]})}},4579:function(e,n,t){"use strict";t.r(n),t.d(n,{LatheChemicalStorage:()=>l});var r=t(1557),i=t(3987),o=t(4893),l=function(e){var n=(0,o.nc)(),t=n.data,l=n.act,a=t.loaded_chemicals,c=4===t.menu;return(0,r.jsxs)(i.$0,{title:"Chemical Storage",children:[(0,r.jsx)(i.zx,{content:"Purge All",icon:"trash",onClick:function(){l(c?"disposeallP":"disposeallI")}}),(0,r.jsx)(i.H2,{children:a.map(function(e){var n=e.volume,t=e.name,o=e.id;return(0,r.jsx)(i.H2.Item,{label:"* ".concat(n," of ").concat(t),children:(0,r.jsx)(i.zx,{content:"Purge",icon:"trash",onClick:function(){l(c?"disposeP":"disposeI",{id:o})}})},o)})})]})}},9970:function(e,n,t){"use strict";t.r(n),t.d(n,{LatheMainMenu:()=>c});var r=t(1557),i=t(3987),o=t(4893),l=t(8642),a=t(9986),c=function(e){var n=(0,o.nc)(),t=n.data,c=n.act,s=t.menu,u=t.categories;return(0,r.jsxs)(i.$0,{title:(4===s?"Protolathe":"Circuit Imprinter")+" Menu",children:[(0,r.jsx)(l.LatheMaterials,{}),(0,r.jsx)(a.LatheSearch,{}),(0,r.jsx)(i.iz,{}),(0,r.jsx)(i.kC,{wrap:"wrap",children:u.map(function(e){return(0,r.jsx)(i.kC,{style:{flexBasis:"50%",marginBottom:"6px"},children:(0,r.jsx)(i.zx,{icon:"arrow-right",content:e,onClick:function(){c("setCategory",{category:e})}})},e)})})]})}},3780:function(e,n,t){"use strict";t.r(n),t.d(n,{LatheMaterialStorage:()=>l});var r=t(1557),i=t(3987),o=t(4893),l=function(e){var n=(0,o.nc)(),t=n.data,l=n.act,a=t.loaded_materials;return(0,r.jsx)(i.$0,{className:"RndConsole__LatheMaterialStorage",title:"Material Storage",children:(0,r.jsx)(i.iA,{children:a.map(function(e){var n=e.id,o=e.amount,a=e.name,c=function(e){l(4===t.menu?"lathe_ejectsheet":"imprinter_ejectsheet",{id:n,amount:e})},s=Math.floor(o/2e3),u=o<1;return(0,r.jsxs)(i.iA.Row,{className:u?"color-grey":"color-yellow",children:[(0,r.jsxs)(i.iA.Cell,{minWidth:"210px",children:["* ",o," of ",a]}),(0,r.jsxs)(i.iA.Cell,{minWidth:"110px",children:["(",s," sheet",1===s?"":"s",")"]}),(0,r.jsx)(i.iA.Cell,{children:o>=2e3?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.zx,{content:"1x",icon:"eject",onClick:function(){return c(1)}}),(0,r.jsx)(i.zx,{content:"C",icon:"eject",onClick:function(){return c("custom")}}),o>=1e4?(0,r.jsx)(i.zx,{content:"5x",icon:"eject",onClick:function(){return c(5)}}):null,(0,r.jsx)(i.zx,{content:"All",icon:"eject",onClick:function(){return c(50)}})]}):null})]},n)})})})}},8642:function(e,n,t){"use strict";t.r(n),t.d(n,{LatheMaterials:()=>l});var r=t(1557),i=t(3987),o=t(4893),l=function(e){var n=(0,o.nc)().data,t=n.total_materials,l=n.max_materials,a=n.max_chemicals,c=n.total_chemicals;return(0,r.jsx)(i.xu,{className:"RndConsole__LatheMaterials",mb:"10px",children:(0,r.jsxs)(i.iA,{width:"auto",children:[(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Material Amount:"}),(0,r.jsx)(i.iA.Cell,{children:t}),l?(0,r.jsx)(i.iA.Cell,{children:" / "+l}):null]}),(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{bold:!0,children:"Chemical Amount:"}),(0,r.jsx)(i.iA.Cell,{children:c}),a?(0,r.jsx)(i.iA.Cell,{children:" / "+a}):null]})]})})}},1465:function(e,n,t){"use strict";t.r(n),t.d(n,{LatheMenu:()=>x});var r=t(1557),i=t(3987),o=t(4893),l=t(9244),a=t(4765),c=t(4579),s=t(9970),u=t(3780);function d(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["menu"]);return(0,r.jsx)(f,function(e){for(var n=1;nl});var r=t(1557),i=t(3987),o=t(4893),l=function(e){var n=(0,o.nc)().act;return(0,r.jsx)(i.xu,{children:(0,r.jsx)(i.II,{placeholder:"Search...",onEnter:function(e){return n("search",{to_search:e})}})})}},7946:function(e,n,t){"use strict";t.r(n),t.d(n,{LinkMenu:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data.controllers;return(0,r.jsx)(l.Rz,{width:800,height:550,children:(0,r.jsx)(l.Rz.Content,{children:(0,r.jsx)(i.$0,{title:"Setup Linkage",children:(0,r.jsxs)(i.iA,{m:"0.5rem",children:[(0,r.jsxs)(i.iA.Row,{header:!0,children:[(0,r.jsx)(i.iA.Cell,{children:"Network Address"}),(0,r.jsx)(i.iA.Cell,{children:"Network ID"}),(0,r.jsx)(i.iA.Cell,{children:"Link"})]}),a.map(function(e){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:e.addr}),(0,r.jsx)(i.iA.Cell,{children:e.net_id}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.zx,{content:"Link",icon:"link",onClick:function(){return t("linktonetworkcontroller",{target_controller:e.addr})}})})]},e.addr)})]})})})})}},9769:function(e,n,t){"use strict";t.r(n),t.d(n,{SettingsMenu:()=>l});var r=t(1557),i=t(3987),o=t(4893),l=function(e){return(0,r.jsxs)(i.xu,{children:[(0,r.jsx)(a,{}),(0,r.jsx)(c,{})]})},a=function(e){var n=(0,o.nc)(),t=n.act,l=n.data;l.sync;var a=l.admin;return(0,r.jsx)(i.$0,{title:"Settings",children:(0,r.jsxs)(i.kC,{direction:"column",align:"flex-start",children:[(0,r.jsx)(i.zx,{color:"red",icon:"unlink",content:"Disconnect from Research Network",onClick:function(){t("unlink")}}),1===a?(0,r.jsx)(i.zx,{icon:"gears",color:"red",content:"[ADMIN] Maximize research levels",onClick:function(){return t("maxresearch")}}):null]})})},c=function(e){var n=(0,o.nc)(),t=n.data,l=n.act,a=t.linked_analyzer,c=t.linked_lathe,s=t.linked_imprinter;return(0,r.jsx)(i.$0,{title:"Linked Devices",buttons:(0,r.jsx)(i.zx,{icon:"link",content:"Re-sync with Nearby Devices",onClick:function(){return l("find_device")}}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Scientific Analyzer",children:(0,r.jsx)(i.zx,{icon:"unlink",disabled:!a,content:a?"Unlink":"Undetected",onClick:function(){return l("disconnect",{item:"analyze"})}})}),(0,r.jsx)(i.H2.Item,{label:"Protolathe",children:(0,r.jsx)(i.zx,{icon:"unlink",disabled:!c,content:c?"Unlink":"Undetected",onClick:function(){l("disconnect",{item:"lathe"})}})}),(0,r.jsx)(i.H2.Item,{label:"Circuit Imprinter",children:(0,r.jsx)(i.zx,{icon:"unlink",disabled:!s,content:s?"Unlink":"Undetected",onClick:function(){return l("disconnect",{item:"imprinter"})}})})]})})}},9244:function(e,n,t){"use strict";t.r(n),t.d(n,{MENU:()=>h,PRINTER_MENU:()=>m,RndConsole:()=>j});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=t(8847),c=t(4761),s=t(1465),u=t(7946),d=t(9769),f=i.mQ.Tab,h={MAIN:0,DISK:2,ANALYZE:3,LATHE:4,IMPRINTER:5,SETTINGS:6},m={MAIN:0,SEARCH:1,MATERIALS:2,CHEMICALS:3},x=function(e){switch(e){case h.MAIN:return(0,r.jsx)(b,{});case h.DISK:return(0,r.jsx)(c.DataDiskMenu,{});case h.ANALYZE:return(0,r.jsx)(a.AnalyzerMenu,{});case h.LATHE:case h.IMPRINTER:return(0,r.jsx)(s.LatheMenu,{});case h.SETTINGS:return(0,r.jsx)(d.SettingsMenu,{});default:return"UNKNOWN MENU"}},p=function(e){var n=(0,o.nc)(),t=n.act,i=n.data.menu,l=e.menu,a=function(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}(e,["menu"]);return(0,r.jsx)(f,function(e){for(var n=1;nd});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t-1});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.$0,{title:"Network Configuration",children:(0,r.jsxs)(o.H2,{children:[(0,r.jsx)(o.H2.Item,{label:"Network Name",children:(0,r.jsx)(o.zx,{content:h||"Unset",selected:h,icon:"edit",onClick:function(){return t("network_name")}})}),(0,r.jsx)(o.H2.Item,{label:"Network Password",children:(0,r.jsx)(o.zx,{content:f||"Unset",selected:f,icon:"lock",onClick:function(){return t("network_password")}})})]})}),(0,r.jsxs)(o.$0,{title:"Connected Devices",children:[(0,r.jsxs)(o.mQ,{children:[(0,r.jsx)(o.mQ.Tab,{selected:"ALL"===s,onClick:function(){return d("ALL")},icon:"network-wired",children:"All Devices"},"AllDevices"),(0,r.jsx)(o.mQ.Tab,{selected:"SRV"===s,onClick:function(){return d("SRV")},icon:"server",children:"R&D Servers"},"RNDServers"),(0,r.jsx)(o.mQ.Tab,{selected:"RDC"===s,onClick:function(){return d("RDC")},icon:"desktop",children:"R&D Consoles"},"RDConsoles"),(0,r.jsx)(o.mQ.Tab,{selected:"MFB"===s,onClick:function(){return d("MFB")},icon:"industry",children:"Exosuit Fabricators"},"Mechfabs"),(0,r.jsx)(o.mQ.Tab,{selected:"MSC"===s,onClick:function(){return d("MSC")},icon:"microchip",children:"Miscellaneous Devices"},"Misc")]}),(0,r.jsxs)(o.iA,{m:"0.5rem",children:[(0,r.jsxs)(o.iA.Row,{header:!0,children:[(0,r.jsx)(o.iA.Cell,{children:"Device Name"}),(0,r.jsx)(o.iA.Cell,{children:"Device ID"}),(0,r.jsx)(o.iA.Cell,{children:"Unlink"})]}),p.map(function(e){return(0,r.jsxs)(o.iA.Row,{children:[(0,r.jsx)(o.iA.Cell,{children:e.name}),(0,r.jsx)(o.iA.Cell,{children:e.id}),(0,r.jsx)(o.iA.Cell,{children:(0,r.jsx)(o.zx,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){return t("unlink_device",{dclass:e.dclass,uid:e.id})}})})]},e.id)})]})]})]})},h=function(e){var n=(0,a.nc)(),t=n.act,c=n.data.designs,s=u((0,i.useState)(""),2),d=s[0],f=s[1];return(0,r.jsxs)(o.$0,{title:"Design Management",children:[(0,r.jsx)(o.II,{fluid:!0,placeholder:"Search for designs",mb:2,onChange:function(e){return f(e)}}),c.filter((0,l.mj)(d,function(e){return e.name})).map(function(e){return(0,r.jsx)(o.zx.Checkbox,{fluid:!0,content:e.name,checked:!e.blacklisted,onClick:function(){return t(e.blacklisted?"unblacklist_design":"blacklist_design",{d_uid:e.uid})}},e.name)})]})}},1830:function(e,n,t){"use strict";t.r(n),t.d(n,{RndServer:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,u=a.active,d=a.network_name;return(0,r.jsx)(l.Rz,{width:600,height:500,resizable:!0,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[(0,r.jsx)(i.$0,{title:"Server Configuration",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Machine power",children:(0,r.jsx)(i.zx,{content:u?"On":"Off",selected:u,icon:"power-off",onClick:function(){return t("toggle_active")}})}),(0,r.jsx)(i.H2.Item,{label:"Link status",children:null===d?(0,r.jsx)(i.xu,{color:"red",children:"Unlinked"}):(0,r.jsx)(i.xu,{color:"green",children:"Linked"})})]})}),null===d?(0,r.jsx)(s,{}):(0,r.jsx)(c,{})]})})},c=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.network_name;return(0,r.jsx)(i.$0,{title:"Network Info",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Connected network ID",children:l}),(0,r.jsx)(i.H2.Item,{label:"Unlink",children:(0,r.jsx)(i.zx,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){return t("unlink")}})})]})})},s=function(e){var n=(0,o.nc)(),t=n.act,l=n.data.controllers;return(0,r.jsx)(i.$0,{title:"Detected Cores",children:(0,r.jsxs)(i.iA,{m:"0.5rem",children:[(0,r.jsxs)(i.iA.Row,{header:!0,children:[(0,r.jsx)(i.iA.Cell,{children:"Network ID"}),(0,r.jsx)(i.iA.Cell,{children:"Link"})]}),l.map(function(e){return(0,r.jsxs)(i.iA.Row,{children:[(0,r.jsx)(i.iA.Cell,{children:e.netname}),(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(i.zx,{content:"Link",icon:"link",onClick:function(){return t("link",{addr:e.addr})}})})]},e.addr)})]})})}},3166:function(e,n,t){"use strict";t.r(n),t.d(n,{RobotSelfDiagnosis:()=>s});var r=t(1557),i=t(3987),o=t(8531),l=t(4893),a=t(3817),c=function(e,n){var t=e/n;return t<=.2?"good":t<=.5?"average":"bad"},s=function(e){var n=(0,l.nc)().data.component_data;return(0,r.jsx)(a.Rz,{width:280,height:480,children:(0,r.jsx)(a.Rz.Content,{scrollable:!0,children:n.map(function(e,n){return(0,r.jsx)(i.$0,{title:(0,o.kC)(e.name),children:e.installed<=0?(0,r.jsx)(i.f7,{m:-.5,height:3.5,color:"red",style:{fontStyle:"normal"},children:(0,r.jsx)(i.kC,{height:"100%",children:(0,r.jsx)(i.kC.Item,{grow:1,textAlign:"center",align:"center",color:"#e8e8e8",children:-1===e.installed?"Destroyed":"Missing"})})}):(0,r.jsxs)(i.kC,{children:[(0,r.jsx)(i.kC.Item,{width:"72%",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Brute Damage",color:c(e.brute_damage,e.max_damage),children:e.brute_damage}),(0,r.jsx)(i.H2.Item,{label:"Burn Damage",color:c(e.electronic_damage,e.max_damage),children:e.electronic_damage})]})}),(0,r.jsx)(i.kC.Item,{width:"50%",children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Powered",color:e.powered?"good":"bad",children:e.powered?"Yes":"No"}),(0,r.jsx)(i.H2.Item,{label:"Enabled",color:e.status?"good":"bad",children:e.status?"Yes":"No"})]})})]})},n)})})})}},7558:function(e,n,t){"use strict";t.r(n),t.d(n,{RoboticsControlConsole:()=>a});var r=t(1557),i=t(3987),o=t(4893),l=t(3817),a=function(e){var n=(0,o.nc)(),t=n.act,a=n.data,s=a.can_hack,u=a.safety,d=a.show_lock_all,f=a.cyborgs;return(0,r.jsx)(l.Rz,{width:500,height:460,children:(0,r.jsxs)(l.Rz.Content,{scrollable:!0,children:[!!d&&(0,r.jsxs)(i.$0,{title:"Emergency Lock Down",children:[(0,r.jsx)(i.zx,{icon:u?"lock":"unlock",content:u?"Disable Safety":"Enable Safety",selected:u,onClick:function(){return t("arm",{})}}),(0,r.jsx)(i.zx,{icon:"lock",disabled:u,content:"Lock ALL Cyborgs",color:"bad",onClick:function(){return t("masslock",{})}})]}),(0,r.jsx)(c,{cyborgs:void 0===f?[]:f,can_hack:s})]})})},c=function(e){var n=e.cyborgs;e.can_hack;var t=(0,o.nc)(),l=t.act,a=t.data,c="Detonate";return(a.detonate_cooldown>0&&(c+=" ("+a.detonate_cooldown+"s)"),n.length)?n.map(function(e){return(0,r.jsx)(i.$0,{title:e.name,buttons:(0,r.jsxs)(r.Fragment,{children:[!!e.hackable&&!e.emagged&&(0,r.jsx)(i.zx,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return l("hackbot",{uid:e.uid})}}),(0,r.jsx)(i.zx.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",disabled:!a.auth,onClick:function(){return l("stopbot",{uid:e.uid})}}),(0,r.jsx)(i.zx.Confirm,{icon:"bomb",content:c,disabled:!a.auth||a.detonate_cooldown>0,color:"bad",onClick:function(){return l("killbot",{uid:e.uid})}})]}),children:(0,r.jsxs)(i.H2,{children:[(0,r.jsx)(i.H2.Item,{label:"Status",children:(0,r.jsx)(i.xu,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,r.jsx)(i.H2.Item,{label:"Location",children:(0,r.jsx)(i.xu,{children:e.locstring})}),(0,r.jsx)(i.H2.Item,{label:"Integrity",children:(0,r.jsx)(i.ko,{color:e.health>50?"good":"bad",value:e.health/100})}),"number"==typeof e.charge&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.H2.Item,{label:"Cell Charge",children:(0,r.jsx)(i.ko,{color:e.charge>30?"good":"bad",value:e.charge/100})}),(0,r.jsx)(i.H2.Item,{label:"Cell Capacity",children:(0,r.jsx)(i.xu,{color:e.cell_capacity<3e4?"average":"good",children:e.cell_capacity})})]})||(0,r.jsx)(i.H2.Item,{label:"Cell",children:(0,r.jsx)(i.xu,{color:"bad",children:"No Power Cell"})}),!!e.is_hacked&&(0,r.jsx)(i.H2.Item,{label:"Safeties",children:(0,r.jsx)(i.xu,{color:"bad",children:"DISABLED"})}),(0,r.jsx)(i.H2.Item,{label:"Module",children:e.module}),(0,r.jsx)(i.H2.Item,{label:"Master AI",children:(0,r.jsx)(i.xu,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.uid)}):(0,r.jsx)(i.f7,{children:"No cyborg units detected within access parameters."})}},6024:function(e,n,t){"use strict";t.r(n),t.d(n,{Safe:()=>c});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(3817),c=function(e){var n=(0,l.nc)(),t=(n.act,n.data),i=t.dial,c=t.open;return t.locked,t.contents,(0,r.jsx)(a.Rz,{theme:"safe",width:600,height:800,children:(0,r.jsxs)(a.Rz.Content,{children:[(0,r.jsxs)(o.xu,{className:"Safe--engraving",children:[(0,r.jsx)(s,{}),(0,r.jsxs)(o.xu,{children:[(0,r.jsx)(o.xu,{className:"Safe--engraving--hinge",top:"25%"}),(0,r.jsx)(o.xu,{className:"Safe--engraving--hinge",top:"75%"})]}),(0,r.jsx)(o.JO,{className:"Safe--engraving--arrow",name:"long-arrow-alt-down",size:"3"}),(0,r.jsx)("br",{}),c?(0,r.jsx)(u,{}):(0,r.jsx)(o.xu,{as:"img",className:"Safe--dial",src:"safe_dial.png",style:{transform:"rotate(-"+3.6*i+"deg)",zIndex:0}})]}),!c&&(0,r.jsx)(d,{})]})})},s=function(e){var n=(0,l.nc)(),t=n.act,i=n.data,a=i.dial,c=i.open,s=i.locked,u=function(e,n){return(0,r.jsx)(o.zx,{disabled:c||n&&!s,icon:"arrow-"+(n?"right":"left"),content:(n?"Right":"Left")+" "+e,iconRight:n,onClick:function(){return t(n?"turnleft":"turnright",{num:e})},style:{zIndex:10}})};return(0,r.jsxs)(o.xu,{className:"Safe--dialer",children:[(0,r.jsx)(o.zx,{disabled:s,icon:c?"lock":"lock-open",content:c?"Close":"Open",mb:"0.5rem",onClick:function(){return t("open")}}),(0,r.jsx)("br",{}),(0,r.jsx)(o.xu,{position:"absolute",children:[u(50),u(10),u(1)]}),(0,r.jsx)(o.xu,{className:"Safe--dialer--right",position:"absolute",right:"5px",children:[u(1,!0),u(10,!0),u(50,!0)]}),(0,r.jsx)(o.xu,{className:"Safe--dialer--number",children:a})]})},u=function(e){var n=(0,l.nc)(),t=n.act,a=n.data.contents;return(0,r.jsx)(o.xu,{className:"Safe--contents",overflow:"auto",children:a.map(function(e,n){return(0,r.jsxs)(i.Fragment,{children:[(0,r.jsxs)(o.zx,{mb:"0.5rem",onClick:function(){return t("retrieve",{index:n+1})},children:[(0,r.jsx)(o.xu,{as:"img",src:e.sprite+".png",verticalAlign:"middle",ml:"-6px",mr:"0.5rem"}),e.name]}),(0,r.jsx)("br",{})]},e)})})},d=function(e){return(0,r.jsxs)(o.$0,{className:"Safe--help",title:"Safe opening instructions (because you all keep forgetting)",children:[(0,r.jsxs)(o.xu,{children:["1. Turn the dial left to the first number.",(0,r.jsx)("br",{}),"2. Turn the dial right to the second number.",(0,r.jsx)("br",{}),"3. Continue repeating this process for each number, switching between left and right each time.",(0,r.jsx)("br",{}),"4. Open the safe."]}),(0,r.jsx)(o.xu,{bold:!0,children:"To lock fully, turn the dial to the left after closing the safe."})]})}},288:function(e,n,t){"use strict";t.r(n),t.d(n,{SatelliteControl:()=>u,SatelliteControlFooter:()=>h,SatelliteControlMapView:()=>f,SatelliteControlSatellitesList:()=>d});var r=t(1557),i=t(2778),o=t(3987),l=t(4893),a=t(6783),c=t(3817);function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t=d?"good":"average",value:u,maxValue:100,children:[u,"%"]})}),(0,r.jsx)(o.Kq.Item,{children:(0,r.jsx)(o.zx,{content:"Check coverage",disabled:f,onClick:function(){return t("begin_test")}})})]})})}),(0,r.jsx)(o.Kq.Item,{color:c,children:a})]})}},8610:function(e,n,t){"use strict";t.r(n),t.d(n,{SecureStorage:()=>s});var r=t(1557),i=t(3987),o=t(196),l=t(3946),a=t(4893),c=t(3817),s=function(e){return(0,r.jsx)(c.Rz,{theme:"securestorage",height:500,width:280,children:(0,r.jsx)(c.Rz.Content,{children:(0,r.jsx)(i.Kq,{fill:!0,vertical:!0,children:(0,r.jsx)(i.Kq.Item,{grow:!0,children:(0,r.jsx)(d,{})})})})})},u=function(e){var n=(0,a.nc)().act,t=window.event?e.which:e.keyCode;if(t===o.tt){e.preventDefault(),n("keypad",{digit:"E"});return}if(t===o.KW){e.preventDefault(),n("keypad",{digit:"C"});return}if(t===o.j){e.preventDefault(),n("backspace");return}if(t>=o.Fi&&t<=o.II){e.preventDefault(),n("keypad",{digit:t-o.Fi});return}if(t>=o.iH&&t<=o.bC){e.preventDefault(),n("keypad",{digit:t-o.iH});return}},d=function(e){var n=(0,a.nc)(),t=(n.act,n.data),o=t.locked,c=t.no_passcode,s=t.emagged,d=t.user_entered_code;return(0,r.jsx)(i.$0,{fill:!0,className:"SecureStorage",onKeyDown:function(e){return u(e)},children:(0,r.jsxs)(i.Kq,{fill:!0,vertical:!0,children:[(0,r.jsx)(i.Kq.Item,{height:7.3,children:(0,r.jsx)(i.xu,{className:(0,l.Sh)(["SecureStorage__displayBox","SecureStorage__displayBox--"+(c?"":o?"bad":"good")]),height:"100%",children:s?"ERROR":d})}),(0,r.jsx)(i.Kq.Item,{align:"center",children:(0,r.jsx)(i.iA,{collapsing:!0,children:[["1","2","3"],["4","5","6"],["7","8","9"],["C","0","E"]].map(function(e){return(0,r.jsx)(i.iA.Row,{children:e.map(function(e){return(0,r.jsx)(i.iA.Cell,{children:(0,r.jsx)(f,{number:e})},e)})},e[0])})})})]})})},f=function(e){var n=(0,a.nc)(),t=n.act;n.data;var o=e.number;return(0,r.jsx)(i.zx,{bold:!0,fluid:!0,textAlign:"center",fontSize:"55px",lineHeight:1.25,width:"80px",className:(0,l.Sh)(["SecureStorage__Button","SecureStorage__Button--keypad","SecureStorage__Button--"+o]),onClick:function(){return t("keypad",{digit:o})},children:o})}},1955:function(e,n,t){"use strict";t.r(n),t.d(n,{SecurityRecords:()=>j});var r=t(1557),i=t(2778),o=t(3987),l=t(8531),a=t(4893),c=t(3817),s=t(5279),u=t(8061),d=t(8575),f=t(7484),h=t(7389);function m(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t