From 0f57f647e56c5f76adc96cef76fcdf8b3fd57526 Mon Sep 17 00:00:00 2001 From: 4dplanner <3combined@gmail.com> Date: Thu, 15 Nov 2018 20:55:33 +0000 Subject: [PATCH 01/93] Removes error message while shunting --- code/modules/mob/living/silicon/ai/freelook/eye.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 66ae3ce917d..140dcf3455f 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -160,9 +160,10 @@ cameraFollow = null unset_machine() - if(!eyeobj || !eyeobj.loc || QDELETED(eyeobj)) - to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") - create_eye() + if(isturf(loc)) + if(!eyeobj || !eyeobj.loc || QDELETED(eyeobj)) + to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") + create_eye() eyeobj.setLoc(loc) From b676b8c25b3d84be8593f7a9204f79507966ba9d Mon Sep 17 00:00:00 2001 From: 4dplanner <3combined@gmail.com> Date: Fri, 16 Nov 2018 17:57:32 +0000 Subject: [PATCH 02/93] Don't set null eyeobj loc --- code/modules/mob/living/silicon/ai/freelook/eye.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 140dcf3455f..82985bbde4c 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -165,7 +165,8 @@ to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") create_eye() - eyeobj.setLoc(loc) + if(eyeobj) + eyeobj.setLoc(loc) /mob/living/silicon/ai/proc/create_eye() if(eyeobj) From e942868628e1890687670fd4af410b05eb47a9ac Mon Sep 17 00:00:00 2001 From: 4dplanner <3combined@gmail.com> Date: Fri, 16 Nov 2018 18:02:34 +0000 Subject: [PATCH 03/93] Stops repeatedly viewing core And comments! --- code/modules/mob/living/silicon/ai/freelook/eye.dm | 2 +- code/modules/mob/living/silicon/ai/life.dm | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 82985bbde4c..6fd896c9fce 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -160,7 +160,7 @@ cameraFollow = null unset_machine() - if(isturf(loc)) + if(isturf(loc)) //not shunted if(!eyeobj || !eyeobj.loc || QDELETED(eyeobj)) to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") create_eye() diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 0fd33110b60..56db46c2a37 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -19,8 +19,9 @@ // messenging the client malfhacked(malfhack) - if(!eyeobj || QDELETED(eyeobj) || !eyeobj.loc) - view_core() + if(isturf(loc)) //not shunted + if(!eyeobj || QDELETED(eyeobj) || !eyeobj.loc) + view_core() if(machine) machine.check_eye(src) From d60b0161f9ec38605d9042de481f65b51921b022 Mon Sep 17 00:00:00 2001 From: tralezab <40974010+tralezab@users.noreply.github.com> Date: Fri, 16 Nov 2018 16:24:18 -0800 Subject: [PATCH 04/93] src, cast, and STARTED implementing a soul check for lichdom. need to test both --- code/modules/spells/spell_types/lichdom.dm | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 58aef8556ae..3511067b881 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -57,6 +57,7 @@ new /obj/item/phylactery(marked_item, M.mind) to_chat(M, "With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!") + M.mind.hasSoul = FALSE M.set_species(/datum/species/skeleton) if(ishuman(M)) var/mob/living/carbon/human/H = M @@ -154,3 +155,25 @@ return "Respawn of [mind] successful." + +/obj/effect/proc_holder/spell/self/tap + name = "Soul Tap" + desc = "Fuel your spells using your own soul! Nope, nothing can go wrong with this." + school = "necromancy" //i could see why this wouldn't be necromancy but messing with souls or whatever + charge_max = 10 + invocation = "AT ANY COST" + invocation_type = "shout" + level_max = 0 //cannot be improved either, mostly because there isn't much to improve beyond how much health you lose and that is already generous for what it does + cooldown_min = 10 + + action_icon = 'icons/mob/actions/actions_spells.dmi' + action_icon_state = "skeleton" + +/obj/effect/proc_holder/spell/self/tap/cast(mob/living/user = usr) + if(!user.mind.hasSoul) //lol + to_chat(user, "You do not possess a soul to tap into!") + to_chat(user, "A gripping, cold emptiness flows through your body for a moment.") + user.maxHealth -= 10 + user.health = min(M.health - 10, M.maxHealth) + for(var/obj/effect/proc_holder/spell/spell in user.mind.spell_list) + spell.charge_counter = spell.charge_max From c9c9c29ec18e2844ce63d3098be249a20b5e3db1 Mon Sep 17 00:00:00 2001 From: tralezab Date: Fri, 16 Nov 2018 20:19:49 -0800 Subject: [PATCH 05/93] compiles --- code/modules/spells/spell_types/lichdom.dm | 5 ++++- code/modules/spells/spell_types/soultap.dm | 25 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 code/modules/spells/spell_types/soultap.dm diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 3511067b881..d37f1b0775f 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -28,6 +28,9 @@ if(!hand_items.len) to_chat(M, "You must hold an item you wish to make your phylactery...") return + if(!M.mind.hasSoul) + to_chat(user, "You do not possess a soul.") + return var/obj/item/marked_item @@ -174,6 +177,6 @@ to_chat(user, "You do not possess a soul to tap into!") to_chat(user, "A gripping, cold emptiness flows through your body for a moment.") user.maxHealth -= 10 - user.health = min(M.health - 10, M.maxHealth) + user.health = min(user.health - 10, user.maxHealth) for(var/obj/effect/proc_holder/spell/spell in user.mind.spell_list) spell.charge_counter = spell.charge_max diff --git a/code/modules/spells/spell_types/soultap.dm b/code/modules/spells/spell_types/soultap.dm new file mode 100644 index 00000000000..0dae9fc42f5 --- /dev/null +++ b/code/modules/spells/spell_types/soultap.dm @@ -0,0 +1,25 @@ + +/obj/effect/proc_holder/spell/self/tap + name = "Soul Tap" + desc = "Fuel your spells using your own soul! Nope, nothing can go wrong with this." + school = "necromancy" //i could see why this wouldn't be necromancy but messing with souls or whatever + charge_max = 10 + invocation = "AT ANY COST" + invocation_type = "shout" + level_max = 0 //cannot be improved either, mostly because there isn't much to improve beyond how much health you lose and that is already generous for what it does + cooldown_min = 10 + + action_icon = 'icons/mob/actions/actions_spells.dmi' + action_icon_state = "skeleton" + +/obj/effect/proc_holder/spell/self/tap/cast(mob/living/user = usr) + if(!user.mind.hasSoul) //lol + to_chat(user, "You do not possess a soul to tap into!") + to_chat(user, "A gripping, cold emptiness flows through your body for a moment.") + user.maxHealth -= 10 + user.health = min(user.health - 10, user.maxHealth) + if(user.maxHealth <= 0) + to_chat(user, "You feel empty and cold as your weakened soul is completely consumed by the tap!") + user.mind.hasSoul = FALSE + for(var/obj/effect/proc_holder/spell/spell in user.mind.spell_list) + spell.charge_counter = spell.charge_max From fdde96304d2642356a185d256287f682d638b944 Mon Sep 17 00:00:00 2001 From: tralezab Date: Sat, 17 Nov 2018 12:36:49 -0800 Subject: [PATCH 06/93] final changes, spellbook entry --- .../antagonists/wizard/equipment/spellbook.dm | 6 +++++ code/modules/spells/spell_types/soultap.dm | 26 ++++++++++++------- tgstation.dme | 1 + 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 90b81ce1478..1d0d911e3e8 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -247,6 +247,12 @@ category = "Assistance" cost = 1 +/datum/spellbook_entry/tap + name = "Soul Tap" + spell_type = /obj/effect/proc_holder/spell/self/tap + category = "Assistance" + cost = 3 + /datum/spellbook_entry/spacetime_dist name = "Spacetime Distortion" spell_type = /obj/effect/proc_holder/spell/spacetime_dist diff --git a/code/modules/spells/spell_types/soultap.dm b/code/modules/spells/spell_types/soultap.dm index 0dae9fc42f5..99d684df5f1 100644 --- a/code/modules/spells/spell_types/soultap.dm +++ b/code/modules/spells/spell_types/soultap.dm @@ -1,25 +1,31 @@ +//SOUL TAP!// +//Trades 15 max health for a refresh on all of your spells. I was considering making it depend on the cooldowns of your spells, but I want to support "Big spell wizard" with this loadout. +//the two spells that sound most problematic with this is mindswap and lichdom, but soul tap requires clothes for mindswap and lichdom takes your soul, so you wouldn't be able to tap at all. + /obj/effect/proc_holder/spell/self/tap name = "Soul Tap" - desc = "Fuel your spells using your own soul! Nope, nothing can go wrong with this." - school = "necromancy" //i could see why this wouldn't be necromancy but messing with souls or whatever + desc = "Fuel your spells using your own soul!" + school = "necromancy" //i could see why this wouldn't be necromancy but messing with souls or whatever. ectomancy? charge_max = 10 invocation = "AT ANY COST" - invocation_type = "shout" - level_max = 0 //cannot be improved either, mostly because there isn't much to improve beyond how much health you lose and that is already generous for what it does + invocation_type = "none" + level_max = 0 cooldown_min = 10 action_icon = 'icons/mob/actions/actions_spells.dmi' action_icon_state = "skeleton" /obj/effect/proc_holder/spell/self/tap/cast(mob/living/user = usr) - if(!user.mind.hasSoul) //lol - to_chat(user, "You do not possess a soul to tap into!") - to_chat(user, "A gripping, cold emptiness flows through your body for a moment.") - user.maxHealth -= 10 - user.health = min(user.health - 10, user.maxHealth) + if(!user.mind.hasSoul) + to_chat(user, "You do not possess a soul to tap into!") + return + to_chat(user, "Your body feels drained and you feel a burning pain in your chest.") + user.maxHealth -= 20 + user.health = min(user.health - 20, user.maxHealth) if(user.maxHealth <= 0) - to_chat(user, "You feel empty and cold as your weakened soul is completely consumed by the tap!") + to_chat(user, "Your weakened soul is completely consumed by the tap!") user.mind.hasSoul = FALSE for(var/obj/effect/proc_holder/spell/spell in user.mind.spell_list) spell.charge_counter = spell.charge_max + spell.update_icon() diff --git a/tgstation.dme b/tgstation.dme index 6c23cac5bb9..aca9a53e25d 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2572,6 +2572,7 @@ #include "code\modules\spells\spell_types\santa.dm" #include "code\modules\spells\spell_types\shadow_walk.dm" #include "code\modules\spells\spell_types\shapeshift.dm" +#include "code\modules\spells\spell_types\soultap.dm" #include "code\modules\spells\spell_types\spacetime_distortion.dm" #include "code\modules\spells\spell_types\summonitem.dm" #include "code\modules\spells\spell_types\the_traps.dm" From b725e6809fb8f49d21655ecb2f61078160b86946 Mon Sep 17 00:00:00 2001 From: tralezab Date: Sun, 18 Nov 2018 17:41:28 -0800 Subject: [PATCH 07/93] sadness --- code/modules/spells/spell_types/lichdom.dm | 22 ---------------------- code/modules/spells/spell_types/soultap.dm | 2 +- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index d37f1b0775f..254aead9057 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -158,25 +158,3 @@ return "Respawn of [mind] successful." - -/obj/effect/proc_holder/spell/self/tap - name = "Soul Tap" - desc = "Fuel your spells using your own soul! Nope, nothing can go wrong with this." - school = "necromancy" //i could see why this wouldn't be necromancy but messing with souls or whatever - charge_max = 10 - invocation = "AT ANY COST" - invocation_type = "shout" - level_max = 0 //cannot be improved either, mostly because there isn't much to improve beyond how much health you lose and that is already generous for what it does - cooldown_min = 10 - - action_icon = 'icons/mob/actions/actions_spells.dmi' - action_icon_state = "skeleton" - -/obj/effect/proc_holder/spell/self/tap/cast(mob/living/user = usr) - if(!user.mind.hasSoul) //lol - to_chat(user, "You do not possess a soul to tap into!") - to_chat(user, "A gripping, cold emptiness flows through your body for a moment.") - user.maxHealth -= 10 - user.health = min(user.health - 10, user.maxHealth) - for(var/obj/effect/proc_holder/spell/spell in user.mind.spell_list) - spell.charge_counter = spell.charge_max diff --git a/code/modules/spells/spell_types/soultap.dm b/code/modules/spells/spell_types/soultap.dm index 99d684df5f1..b3eb728712f 100644 --- a/code/modules/spells/spell_types/soultap.dm +++ b/code/modules/spells/spell_types/soultap.dm @@ -20,7 +20,7 @@ if(!user.mind.hasSoul) to_chat(user, "You do not possess a soul to tap into!") return - to_chat(user, "Your body feels drained and you feel a burning pain in your chest.") + to_chat(user, "Your body feels drained and there is a burning pain in your chest.") user.maxHealth -= 20 user.health = min(user.health - 20, user.maxHealth) if(user.maxHealth <= 0) From e0754817e15e40d5460e856660cf08c3760a7534 Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Wed, 28 Nov 2018 02:19:20 +0000 Subject: [PATCH 08/93] Added TRAIT_DISK_VERIFIER, refactors how fake disk checks work slightly Old system: Fake disk checks on examine() can be done by ghosts, nuke ops and Captains. However, this is done through isobserver(), assigned_role, and has_antagonist datum. New system: Check the mob or the mind for the TRAIT_DISK_VERIFIER trait, and allow them to check the fake that way. Gets rid of stuff being hard coded to "assigned_role". I think this is a good idea, and was good practice for me doing trait related stuff. --- code/__DEFINES/traits.dm | 5 ++++- code/datums/outfit.dm | 4 ++++ code/modules/antagonists/nukeop/equipment/nuclearbomb.dm | 9 +++++---- code/modules/antagonists/nukeop/nukeop.dm | 1 + code/modules/jobs/job_types/captain.dm | 1 + code/modules/mob/dead/observer/observer.dm | 4 ++++ 6 files changed, 19 insertions(+), 5 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 157d9bdfe9e..ec0752b226c 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -55,6 +55,7 @@ #define TRAIT_PARALYSIS_R_ARM "para-r-arm" #define TRAIT_PARALYSIS_L_LEG "para-l-leg" #define TRAIT_PARALYSIS_R_LEG "para-r-leg" +#define TRAIT_DISK_VERIFIER "disk-verifier" //non-mob traits #define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it @@ -86,6 +87,7 @@ #define TRAUMA_TRAIT "trauma" #define SPECIES_TRAIT "species" #define ORGAN_TRAIT "organ" +#define OUTFIT_TRAIT "outfit" #define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention // unique trait sources, still defines @@ -98,4 +100,5 @@ #define STASIS_MUTE "stasis" #define GENETICS_SPELL "genetics_spell" #define EYES_COVERED "eyes_covered" -#define CULT_EYES "cult_eyes" \ No newline at end of file +#define CULT_EYES "cult_eyes" +#define OBSERVER_TRAIT "observer-trait" diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 1f5c28d3c2a..698996ddede 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -22,6 +22,7 @@ var/internals_slot = null //ID of slot containing a gas tank var/list/backpack_contents = null // In the list(path=count,otherpath=count) format var/list/implants = null + var/list/mind_traits = null var/accessory = null var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters @@ -106,6 +107,9 @@ for(var/implant_type in implants) var/obj/item/implant/I = new implant_type(H) I.implant(H, null, TRUE) + if(mind_traits && H.mind) + for(var/mt in mind_traits) + H.mind.add_trait(mt, OUTFIT_TRAIT) H.update_body() return TRUE diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index dd9114a0664..cc35b8f5d84 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -600,10 +600,7 @@ This is here to make the tiles around the station mininuke change when it's arme if(!fake) return - var/ghost = isobserver(user) - var/captain = user.mind && user.mind.assigned_role == "Captain" - var/nukie = user.mind && user.mind.has_antag_datum(/datum/antagonist/nukeop) - if(ghost || captain || nukie) + if(user.has_trait(TRAIT_DISK_VERIFIER) || (user.mind && user.mind.has_trait(TRAIT_DISK_VERIFIER))) to_chat(user, "The serial numbers on [src] are incorrect.") /obj/item/disk/nuclear/attackby(obj/item/I, mob/living/user, params) @@ -642,3 +639,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/fake fake = TRUE + +/obj/item/disk/nuclear/fake/obvious + name = "cheap plastic imitation of the nuclear authentication disk" + desc = "How anyone could mistake this for the real thing is beyond you." diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 942af1bb47f..5ed70c6ef7d 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -50,6 +50,7 @@ . = ..() equip_op() memorize_code() + owner.add_trait(TRAIT_DISK_VERIFIER, "nuke-op") if(send_to_spawnpoint) move_to_spawnpoint() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 88d43cb0a3a..621681293e8 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -50,6 +50,7 @@ Captain duffelbag = /obj/item/storage/backpack/duffelbag/captain implants = list(/obj/item/implant/mindshield) + mind_traits = list(TRAIT_DISK_VERIFIER) accessory = /obj/item/clothing/accessory/medal/gold/captain chameleon_extras = list(/obj/item/gun/energy/e_gun, /obj/item/stamp/captain) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index fe109ee0e71..66dd3712fec 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -133,6 +133,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) . = ..() grant_all_languages() + grant_observer_traits() /mob/dead/observer/get_photo_description(obj/item/camera/camera) if(!invisibility || camera.see_ghosts) @@ -841,3 +842,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp spawners_menu = new(src) spawners_menu.ui_interact(src) + +/mob/dead/observer/proc/grant_observer_traits() + add_trait(TRAIT_DISK_VERIFIER, OBSERVER_TRAIT) From e8efe46f43d8509b86183f48cd2b50aaf7f8a5ea Mon Sep 17 00:00:00 2001 From: tralezab Date: Wed, 28 Nov 2018 20:29:00 -0800 Subject: [PATCH 09/93] new icon, sanity, fixed invocation, and updated comments --- code/modules/spells/spell_types/soultap.dm | 9 +++++---- icons/mob/actions/actions_spells.dmi | Bin 21434 -> 22789 bytes 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/spells/spell_types/soultap.dm b/code/modules/spells/spell_types/soultap.dm index b3eb728712f..4405e1d0e94 100644 --- a/code/modules/spells/spell_types/soultap.dm +++ b/code/modules/spells/spell_types/soultap.dm @@ -1,6 +1,6 @@ //SOUL TAP!// -//Trades 15 max health for a refresh on all of your spells. I was considering making it depend on the cooldowns of your spells, but I want to support "Big spell wizard" with this loadout. +//Trades 20 max health for a refresh on all of your spells. I was considering making it depend on the cooldowns of your spells, but I want to support "Big spell wizard" with this loadout. //the two spells that sound most problematic with this is mindswap and lichdom, but soul tap requires clothes for mindswap and lichdom takes your soul, so you wouldn't be able to tap at all. /obj/effect/proc_holder/spell/self/tap @@ -8,13 +8,13 @@ desc = "Fuel your spells using your own soul!" school = "necromancy" //i could see why this wouldn't be necromancy but messing with souls or whatever. ectomancy? charge_max = 10 - invocation = "AT ANY COST" - invocation_type = "none" + invocation = "AT ANY COST!" + invocation_type = "shout" level_max = 0 cooldown_min = 10 action_icon = 'icons/mob/actions/actions_spells.dmi' - action_icon_state = "skeleton" + action_icon_state = "soultap" /obj/effect/proc_holder/spell/self/tap/cast(mob/living/user = usr) if(!user.mind.hasSoul) @@ -28,4 +28,5 @@ user.mind.hasSoul = FALSE for(var/obj/effect/proc_holder/spell/spell in user.mind.spell_list) spell.charge_counter = spell.charge_max + spell.recharging = FALSE spell.update_icon() diff --git a/icons/mob/actions/actions_spells.dmi b/icons/mob/actions/actions_spells.dmi index dd8a6fb869041345db39e53d6e17c77bb69fe1b6..92a085a1cb2139f1dfd5f58320fcc9fa877dbfb3 100644 GIT binary patch literal 22789 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 Ef;RkrTL1t6 From 0f2ac26c9ac604e0b736808d23f308566cc6caff Mon Sep 17 00:00:00 2001 From: Nich Date: Sun, 2 Dec 2018 18:14:25 +0100 Subject: [PATCH 10/93] adds tooltips to radials --- code/_onclick/hud/radial.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index 134949bf878..688360a8aaf 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -17,10 +17,12 @@ GLOBAL_LIST_EMPTY(radial_menus) /obj/screen/radial/slice/MouseEntered(location, control, params) . = ..() icon_state = "radial_slice_focus" + openToolTip(usr, src, params, title = name) /obj/screen/radial/slice/MouseExited(location, control, params) . = ..() icon_state = "radial_slice" + closeToolTip(usr) /obj/screen/radial/slice/Click(location, control, params) if(usr.client == parent.current_user) From 45b5bc20fbc0bdeb04e169f7aaa7ea8e14b4990b Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 2 Dec 2018 10:01:27 -0800 Subject: [PATCH 11/93] Adds sofas --- .../objects/items/stacks/sheets/sheet_types.dm | 6 ++++++ code/game/objects/structures/beds_chairs/sofa.dm | 14 ++++++++++++++ icons/obj/sofa.dmi | Bin 0 -> 2488 bytes tgstation.dme | 1 + 4 files changed, 21 insertions(+) create mode 100644 code/game/objects/structures/beds_chairs/sofa.dm create mode 100644 icons/obj/sofa.dmi diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index fbfa3f50fe0..9a1db8a599e 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -32,6 +32,12 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("lime comfy chair", /obj/structure/chair/comfy/lime, 2, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("teal comfy chair", /obj/structure/chair/comfy/teal, 2, one_per_turf = TRUE, on_floor = TRUE), \ )), \ + new/datum/stack_recipe_list("sofas", list( + new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa, 1, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("sofa (left)", /obj/structure/chair/sofa/left, 1, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/right, 1, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, 1, one_per_turf = TRUE, on_floor = TRUE) + )), null, \ new/datum/stack_recipe("rack parts", /obj/item/rack_parts), \ new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm new file mode 100644 index 00000000000..473374f86ff --- /dev/null +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -0,0 +1,14 @@ +/obj/structure/chair/sofa + name = "old ratty sofa" + icon_state = "sofamiddle" + icon = 'icons/obj/sofa.dmi' + buildstackamount = 1 + +/obj/structure/chair/sofa/left + icon_state = "sofaend_left" + +/obj/structure/chair/sofa/right + icon_state = "sofaend_right" + +/obj/structure/chair/sofa/corner + icon_state = "sofacorner" \ No newline at end of file diff --git a/icons/obj/sofa.dmi b/icons/obj/sofa.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9e250506e1bc2395bd37d13e1e1bbbed2eb7c321 GIT binary patch literal 2488 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 Date: Mon, 3 Dec 2018 04:22:44 +0000 Subject: [PATCH 12/93] Fixes curse of madness :cl: coiax fix: Fixes bug where Curse of Madness was not giving proper brain traumas. /:cl: Also adds some messages so magic immune and foil hatted people on the station plus observers will know when a curse of madness is cast/badminned. --- .../antagonists/wizard/equipment/spellbook.dm | 4 ++-- code/modules/spells/spell_types/curse.dm | 24 ++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 7940d5a24ff..0c190100364 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -532,12 +532,12 @@ if(times>0) . += "You cast it [times] times.
" return . - + /datum/spellbook_entry/summon/curse_of_madness name = "Curse of Madness" desc = "Curses the station, warping the minds of everyone inside, causing lasting traumas. Warning: this spell can affect you if not cast from a safe distance." cost = 4 - + /datum/spellbook_entry/summon/curse_of_madness/Buy(mob/living/carbon/human/user, obj/item/spellbook/book) SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name) active = TRUE diff --git a/code/modules/spells/spell_types/curse.dm b/code/modules/spells/spell_types/curse.dm index 31ef5c6f53d..fdb6c42fc5a 100644 --- a/code/modules/spells/spell_types/curse.dm +++ b/code/modules/spells/spell_types/curse.dm @@ -4,26 +4,34 @@ message_admins("[ADMIN_LOOKUPFLW(user)] sent a curse of madness with the message \"[message]\"!") log_game("[key_name(user)] sent a curse of madness with the message \"[message]\"!") - for(var/mob/living/carbon/human/H in GLOB.player_list) + for(var/M in GLOB.player_list) var/turf/T = get_turf(H) + if(M.stat == DEAD || isobserver(M)) + to_chat(H, "A dark breeze whispers, \"[message]\" into every ear...") + continue + + if(!ishuman(M)) + continue + + var/mob/living/carbon/human/H = M if(T && !is_station_level(T.z)) continue - if(H.stat == DEAD) - continue if(H.anti_magic_check(TRUE, FALSE)) + to_chat(H, "You have a strange feeling for a moment, but then it passes.") continue if(istype(H.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat)) + to_chat(H, "Your protective headgear successfully deflects mind controlling brainwaves!") continue H.playsound_local(H,'sound/hallucinations/veryfar_noise.ogg',40,1) to_chat(H, "[message]") to_chat(H, "Your mind shatters!") switch(rand(1,10)) if(1 to 3) - H.gain_trauma(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) - H.gain_trauma(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) + H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) + H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) if(4 to 6) - H.gain_trauma(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY) + H.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY) if(7 to 8) - H.gain_trauma(BRAIN_TRAUMA_MAGIC, TRAUMA_RESILIENCE_LOBOTOMY) + H.gain_trauma_type(BRAIN_TRAUMA_MAGIC, TRAUMA_RESILIENCE_LOBOTOMY) if(9 to 10) - H.gain_trauma(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_LOBOTOMY) \ No newline at end of file + H.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_LOBOTOMY) From ab50f2762a5c62d90db353e88b584e4115113f21 Mon Sep 17 00:00:00 2001 From: MMMiracles Date: Mon, 3 Dec 2018 02:14:20 -0500 Subject: [PATCH 13/93] fixes runtime with paystand --- code/modules/economy/pay_stand.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/economy/pay_stand.dm b/code/modules/economy/pay_stand.dm index 550dce39232..342e421ce12 100644 --- a/code/modules/economy/pay_stand.dm +++ b/code/modules/economy/pay_stand.dm @@ -61,7 +61,8 @@ to_chat(user, "What is this, the 1800s? We only take card here.") return if(istype(W, /obj/item/assembly/signaler)) - if(signaler.secured) + var/obj/item/assembly/signaler/S = W + if(S.secured) to_chat(user, "The signaler needs to be in attachable mode to add it to the paystand!") return if(!my_card) @@ -73,8 +74,8 @@ to_chat(user, "ERROR: Invalid amount designated.") return if(cash_limit) - W.forceMove(src) - signaler = W + S.forceMove(src) + signaler = S signaler_threshold = cash_limit to_chat(user, "You attach the signaler to the paystand.") desc += " A signaler appears to be attached to the scanner." From bcecb676a52bd4e530d5d2f1a8e2407ea0d68859 Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Mon, 3 Dec 2018 14:34:13 +0000 Subject: [PATCH 14/93] Compilation --- code/modules/spells/spell_types/curse.dm | 14 +++++--------- strings/phobia.json | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/code/modules/spells/spell_types/curse.dm b/code/modules/spells/spell_types/curse.dm index fdb6c42fc5a..51d4c84c9af 100644 --- a/code/modules/spells/spell_types/curse.dm +++ b/code/modules/spells/spell_types/curse.dm @@ -4,16 +4,12 @@ message_admins("[ADMIN_LOOKUPFLW(user)] sent a curse of madness with the message \"[message]\"!") log_game("[key_name(user)] sent a curse of madness with the message \"[message]\"!") - for(var/M in GLOB.player_list) + deadchat_broadcast("A Curse of Madness has stricken the station, shattering their minds with the awful secret: \"[message]\"") + + for(var/mob/living/carbon/human/H in GLOB.player_list) var/turf/T = get_turf(H) - if(M.stat == DEAD || isobserver(M)) - to_chat(H, "A dark breeze whispers, \"[message]\" into every ear...") + if(H.stat == DEAD) continue - - if(!ishuman(M)) - continue - - var/mob/living/carbon/human/H = M if(T && !is_station_level(T.z)) continue if(H.anti_magic_check(TRUE, FALSE)) @@ -23,7 +19,7 @@ to_chat(H, "Your protective headgear successfully deflects mind controlling brainwaves!") continue H.playsound_local(H,'sound/hallucinations/veryfar_noise.ogg',40,1) - to_chat(H, "[message]") + to_chat(H, "[message]") to_chat(H, "Your mind shatters!") switch(rand(1,10)) if(1 to 3) diff --git a/strings/phobia.json b/strings/phobia.json index 950ab0b7694..601228eb14c 100644 --- a/strings/phobia.json +++ b/strings/phobia.json @@ -25,7 +25,7 @@ "brig", "gulag" ], - + "conspiracies": [ "central command", "command", From ef4b2d32bce934cf1f91a4294469e91a72db2e20 Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Tue, 4 Dec 2018 19:44:05 +0000 Subject: [PATCH 15/93] Deathsquad now has TRAIT_DISK_VERIFIER, and code review --- code/__DEFINES/traits.dm | 5 +++-- code/datums/outfit.dm | 4 ---- code/datums/traits.dm | 16 ++++++++-------- code/modules/antagonists/ert/ert.dm | 6 ++++++ .../antagonists/nukeop/equipment/nuclearbomb.dm | 2 +- code/modules/antagonists/nukeop/nukeop.dm | 4 ++-- code/modules/jobs/job_types/captain.dm | 4 +++- code/modules/mob/dead/observer/observer.dm | 4 ---- 8 files changed, 23 insertions(+), 22 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 2c6de96739a..ee69cf03333 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -88,8 +88,8 @@ #define TRAUMA_TRAIT "trauma" #define SPECIES_TRAIT "species" #define ORGAN_TRAIT "organ" -#define OUTFIT_TRAIT "outfit" #define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention +#define JOB_TRAIT "job" // unique trait sources, still defines #define STATUE_MUTE "statue" @@ -102,5 +102,6 @@ #define GENETICS_SPELL "genetics_spell" #define EYES_COVERED "eyes_covered" #define CULT_EYES "cult_eyes" -#define OBSERVER_TRAIT "observer-trait" #define SCRYING_ORB "scrying-orb" +#define NUKEOP_TRAIT "nuke-op" +#define DEATHSQUAD_TRAIT "deathsquad" diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 698996ddede..1f5c28d3c2a 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -22,7 +22,6 @@ var/internals_slot = null //ID of slot containing a gas tank var/list/backpack_contents = null // In the list(path=count,otherpath=count) format var/list/implants = null - var/list/mind_traits = null var/accessory = null var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters @@ -107,9 +106,6 @@ for(var/implant_type in implants) var/obj/item/implant/I = new implant_type(H) I.implant(H, null, TRUE) - if(mind_traits && H.mind) - for(var/mt in mind_traits) - H.mind.add_trait(mt, OUTFIT_TRAIT) H.update_body() return TRUE diff --git a/code/datums/traits.dm b/code/datums/traits.dm index c105865b11e..15715c3c888 100644 --- a/code/datums/traits.dm +++ b/code/datums/traits.dm @@ -1,16 +1,16 @@ /datum/proc/add_trait(trait, source) LAZYINITLIST(status_traits) - + if(!status_traits[trait]) status_traits[trait] = list(source) else status_traits[trait] |= list(source) - + /datum/proc/remove_trait(trait, list/sources, force) if(!status_traits) return //nothing to remove - + if(!status_traits[trait]) return @@ -33,11 +33,11 @@ if(!LAZYLEN(status_traits[trait])) status_traits -= trait - + /datum/proc/has_trait(trait, list/sources) if(!status_traits) return FALSE //well of course it doesn't have the trait - + if(!status_traits[trait]) return FALSE @@ -51,11 +51,11 @@ return TRUE else if(LAZYLEN(status_traits[trait])) return TRUE - + /datum/proc/remove_all_traits(remove_species_traits = FALSE, remove_organ_traits = FALSE, remove_quirks = FALSE) if(!status_traits) return //nothing to remove - + var/list/blacklisted_sources = list() if(!remove_species_traits) blacklisted_sources += SPECIES_TRAIT @@ -72,4 +72,4 @@ break if(!skip) remove_trait(kebab, null, TRUE) - CHECK_TICK \ No newline at end of file + CHECK_TICK diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 76dc6983471..5f069b99066 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -34,6 +34,12 @@ . = ..() name_source = GLOB.commando_names +/datum/antagonist/ert/deathsquad/apply_innate_effects(mob/living/mob_override) + owner.add_trait(TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) + +/datum/antagonist/ert/deathsquad/remove_innate_effects(mob/living/mob_override) + owner.remove_trait(TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT) + /datum/antagonist/ert/security // kinda handled by the base template but here for completion /datum/antagonist/ert/security/red diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index cc35b8f5d84..fe136774b4a 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -600,7 +600,7 @@ This is here to make the tiles around the station mininuke change when it's arme if(!fake) return - if(user.has_trait(TRAIT_DISK_VERIFIER) || (user.mind && user.mind.has_trait(TRAIT_DISK_VERIFIER))) + if(isobserver(user) || user.has_trait(TRAIT_DISK_VERIFIER) || (user.mind && user.mind.has_trait(TRAIT_DISK_VERIFIER))) to_chat(user, "The serial numbers on [src] are incorrect.") /obj/item/disk/nuclear/attackby(obj/item/I, mob/living/user, params) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 5ed70c6ef7d..b391a1c7a10 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -23,10 +23,12 @@ /datum/antagonist/nukeop/apply_innate_effects(mob/living/mob_override) var/mob/living/M = mob_override || owner.current update_synd_icons_added(M) + owner.add_trait(TRAIT_DISK_VERIFIER, NUKEOP_TRAIT) /datum/antagonist/nukeop/remove_innate_effects(mob/living/mob_override) var/mob/living/M = mob_override || owner.current update_synd_icons_removed(M) + owner.remove_trait(TRAIT_DISK_VERIFIER, NUKEOP_TRAIT) /datum/antagonist/nukeop/proc/equip_op() if(!ishuman(owner.current)) @@ -42,7 +44,6 @@ owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ops.ogg',100,0) to_chat(owner, "You are a [nuke_team ? nuke_team.syndicate_name : "syndicate"] agent!") owner.announce_objectives() - return /datum/antagonist/nukeop/on_gain() give_alias() @@ -50,7 +51,6 @@ . = ..() equip_op() memorize_code() - owner.add_trait(TRAIT_DISK_VERIFIER, "nuke-op") if(send_to_spawnpoint) move_to_spawnpoint() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 621681293e8..091f3e70f28 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -26,6 +26,9 @@ Captain /datum/job/captain/get_access() return get_all_accesses() +/datum/job/captain/after_spawn(mob/living/H, mob/M, latejoin = FALSE) + H.mind.add_trait(TRAIT_DISK_VERIFIER, JOB_TRAIT) + /datum/job/captain/announce(mob/living/carbon/human/H) ..() SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/minor_announce, "Captain [H.real_name] on deck!")) @@ -50,7 +53,6 @@ Captain duffelbag = /obj/item/storage/backpack/duffelbag/captain implants = list(/obj/item/implant/mindshield) - mind_traits = list(TRAIT_DISK_VERIFIER) accessory = /obj/item/clothing/accessory/medal/gold/captain chameleon_extras = list(/obj/item/gun/energy/e_gun, /obj/item/stamp/captain) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 66dd3712fec..fe109ee0e71 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -133,7 +133,6 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) . = ..() grant_all_languages() - grant_observer_traits() /mob/dead/observer/get_photo_description(obj/item/camera/camera) if(!invisibility || camera.see_ghosts) @@ -842,6 +841,3 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp spawners_menu = new(src) spawners_menu.ui_interact(src) - -/mob/dead/observer/proc/grant_observer_traits() - add_trait(TRAIT_DISK_VERIFIER, OBSERVER_TRAIT) From 7646b21362e4244249a7e78ed786ab4cd00d3d50 Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Tue, 4 Dec 2018 22:35:24 +0000 Subject: [PATCH 16/93] During the Christmas season, you can find Santa hats and presents in maint :cl: coiax add: During the Christmas season, you can find Santa hats and presents in maintenance. /:cl: Presents are 'anything' presents, same as you'd find under the tree. --- code/modules/holiday/holidays.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 7d1e25235d7..7bf4cc3c620 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -460,6 +460,10 @@ Since Ramadan is an entire month that lasts 29.5 days on average, the start and /datum/holiday/xmas/celebrate() SSticker.OnRoundstart(CALLBACK(src, .proc/roundstart_celebrate)) + GLOB.maintenance_loot += list( + /obj/item/clothing/head/santa = 1, + /obj/item/a_gift/anything = 1 + ) /datum/holiday/xmas/proc/roundstart_celebrate() for(var/obj/machinery/computer/security/telescreen/entertainment/Monitor in GLOB.machines) From b99b0876911e868b6017aec03172524edc5d8a83 Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Tue, 4 Dec 2018 22:39:44 +0000 Subject: [PATCH 17/93] And also christmas crackers --- code/modules/holiday/holidays.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 7bf4cc3c620..a84e0712ee2 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -461,6 +461,7 @@ Since Ramadan is an entire month that lasts 29.5 days on average, the start and /datum/holiday/xmas/celebrate() SSticker.OnRoundstart(CALLBACK(src, .proc/roundstart_celebrate)) GLOB.maintenance_loot += list( + /obj/item/toy/xmas_cracker = 3, /obj/item/clothing/head/santa = 1, /obj/item/a_gift/anything = 1 ) From aafdf97dcf92e927b3ee146c9fdc881d0d726d99 Mon Sep 17 00:00:00 2001 From: 4dplanner <3combined@gmail.com> Date: Tue, 4 Dec 2018 23:30:01 +0000 Subject: [PATCH 18/93] Requested changes --- code/modules/mob/living/silicon/ai/freelook/eye.dm | 10 ++++------ code/modules/mob/living/silicon/ai/life.dm | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 6fd896c9fce..dcddd4f0ae3 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -160,13 +160,11 @@ cameraFollow = null unset_machine() - if(isturf(loc)) //not shunted - if(!eyeobj || !eyeobj.loc || QDELETED(eyeobj)) - to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") - create_eye() + if(isturf(loc) && (QDELETED(eyeobj) || !eyeobj.loc)) + to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") + create_eye() - if(eyeobj) - eyeobj.setLoc(loc) + eyeobj?.setLoc(loc) /mob/living/silicon/ai/proc/create_eye() if(eyeobj) diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 56db46c2a37..ecbac3189eb 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -20,7 +20,7 @@ malfhacked(malfhack) if(isturf(loc)) //not shunted - if(!eyeobj || QDELETED(eyeobj) || !eyeobj.loc) + if(isturf(loc) && (QDELETED(eyeobj) || !eyeobj.loc)) view_core() if(machine) From 8ada6a7a650637031333319c698150ebf96af6c8 Mon Sep 17 00:00:00 2001 From: 4dplanner <3combined@gmail.com> Date: Tue, 4 Dec 2018 23:31:08 +0000 Subject: [PATCH 19/93] Redundant check removed --- code/modules/mob/living/silicon/ai/life.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index ecbac3189eb..15a04235cc0 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -19,9 +19,8 @@ // messenging the client malfhacked(malfhack) - if(isturf(loc)) //not shunted - if(isturf(loc) && (QDELETED(eyeobj) || !eyeobj.loc)) - view_core() + if(isturf(loc) && (QDELETED(eyeobj) || !eyeobj.loc)) + view_core() if(machine) machine.check_eye(src) From e0df9bc7241d13be59470b9be6b4db2abb0cc5d6 Mon Sep 17 00:00:00 2001 From: XDTM Date: Wed, 5 Dec 2018 11:19:20 +0100 Subject: [PATCH 20/93] Fixes curse of normality alerts on hypnosis --- code/datums/status_effects/debuffs.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 863993d8895..eb8e1044497 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -88,6 +88,7 @@ status_type = STATUS_EFFECT_REPLACE tick_interval = 1 duration = 100 + alert_type = null /datum/status_effect/pacify/on_creation(mob/living/new_owner, set_duration) if(isnum(set_duration)) @@ -553,6 +554,12 @@ tick_interval = 10 examine_text = "SUBJECTPRONOUN seems slow and unfocused." var/stun = TRUE + alert_type = /obj/screen/alert/status_effect/trance + +/obj/screen/alert/status_effect/trance + name = "Trance" + desc = "Everything feels so distant, and you can feel your thoughts forming loops inside your head..." + icon_state = "high" /datum/status_effect/trance/tick() if(stun) From 70c62fe3553393f4114c1673fa1bddaaa9fea5d0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Dec 2018 23:14:32 -0800 Subject: [PATCH 21/93] T/F pill.dm this time with no merge conflicts --- .../reagents/reagent_containers/pill.dm | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 481b06c665f..9f5558354a6 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -11,7 +11,7 @@ grind_results = list() var/apply_type = INGEST var/apply_method = "swallow" - var/roundstart = 0 + var/roundstart = FALSE var/self_delay = 0 //pills are instant, this is because patches inheret their aplication from pills var/dissolvable = TRUE @@ -29,20 +29,20 @@ /obj/item/reagent_containers/pill/attack(mob/M, mob/user, def_zone) if(!canconsume(M, user)) - return 0 + return FALSE if(M == user) M.visible_message("[user] attempts to [apply_method] [src].") if(self_delay) if(!do_mob(user, M, self_delay)) - return 0 + return FALSE to_chat(M, "You [apply_method] [src].") else M.visible_message("[user] attempts to force [M] to [apply_method] [src].", \ "[user] attempts to force [M] to [apply_method] [src].") if(!do_mob(user, M)) - return 0 + return FALSE M.visible_message("[user] forces [M] to [apply_method] [src].", \ "[user] forces [M] to [apply_method] [src].") @@ -51,7 +51,7 @@ reagents.reaction(M, apply_type) reagents.trans_to(M, reagents.total_volume, transfered_by = user) qdel(src) - return 1 + return TRUE /obj/item/reagent_containers/pill/afterattack(obj/target, mob/user , proximity) @@ -79,93 +79,93 @@ desc = "Highly toxic." icon_state = "pill5" list_reagents = list("toxin" = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/cyanide name = "cyanide pill" desc = "Don't swallow this." icon_state = "pill5" list_reagents = list("cyanide" = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/adminordrazine name = "adminordrazine pill" desc = "It's magic. We don't have to explain it." icon_state = "pill16" list_reagents = list("adminordrazine" = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/morphine name = "morphine pill" desc = "Commonly used to treat insomnia." icon_state = "pill8" list_reagents = list("morphine" = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/stimulant name = "stimulant pill" desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!" icon_state = "pill19" list_reagents = list("ephedrine" = 10, "antihol" = 10, "coffee" = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/salbutamol name = "salbutamol pill" desc = "Used to treat oxygen deprivation." icon_state = "pill16" list_reagents = list("salbutamol" = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/charcoal name = "charcoal pill" desc = "Neutralizes many common toxins." icon_state = "pill17" list_reagents = list("charcoal" = 10) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/epinephrine name = "epinephrine pill" desc = "Used to stabilize patients." icon_state = "pill5" list_reagents = list("epinephrine" = 15) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/mannitol name = "mannitol pill" desc = "Used to treat brain damage." icon_state = "pill17" list_reagents = list("mannitol" = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/mutadone name = "mutadone pill" desc = "Used to treat genetic damage." icon_state = "pill20" list_reagents = list("mutadone" = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/salicyclic name = "salicylic acid pill" desc = "Used to dull pain." icon_state = "pill9" list_reagents = list("sal_acid" = 24) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/oxandrolone name = "oxandrolone pill" desc = "Used to stimulate burn healing." icon_state = "pill11" list_reagents = list("oxandrolone" = 24) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/insulin name = "insulin pill" desc = "Handles hyperglycaemic coma." icon_state = "pill18" list_reagents = list("insulin" = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/psicodine name = "psicodine pill" desc = "Used to treat mental instability and traumas." list_reagents = list("psicodine" = 10) icon_state = "pill22" - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/penacid name = "pentetic acid pill" desc = "Used to expunge radioation and toxins." list_reagents = list("pen_acid" = 10) icon_state = "pill22" - roundstart = 1 + roundstart = TRUE ///////////////////////////////////////// this pill is used only in a legion mob drop /obj/item/reagent_containers/pill/shadowtoxin name = "black pill" From 6bc49cdd1bb5557bcc8edfc63508e31f89ce920c Mon Sep 17 00:00:00 2001 From: swindly Date: Thu, 6 Dec 2018 13:27:00 -0500 Subject: [PATCH 22/93] adds radial menu to arm-mounted implants --- code/modules/surgery/organs/augments_arms.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index ad07ce72388..f09258f19f0 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -129,11 +129,14 @@ holder = null if(contents.len == 1) Extend(contents[1]) - else // TODO: make it similar to borg's storage-like module selection - var/obj/item/choise = input("Activate which item?", "Arm Implant", null, null) as null|anything in items_list - if(owner && owner == usr && owner.stat != DEAD && (src in owner.internal_organs) && !holder && istype(choise) && (choise in contents)) - // This monster sanity check is a nice example of how bad input() is. - Extend(choise) + else + var/list/choice_list = list() + for(var/obj/item/I in items_list) + choice_list[I] = getFlatIcon(I) + var/obj/item/choice = show_radial_menu(owner, owner, choice_list) + if(owner && owner == usr && owner.stat != DEAD && (src in owner.internal_organs) && !holder && (choice in contents)) + // This monster sanity check is a nice example of how bad input is. + Extend(choice) else Retract() From b20d4fb7b70609114421e1c95d8581faf3d23f1f Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Thu, 6 Dec 2018 19:09:06 +0000 Subject: [PATCH 23/93] Code review --- code/modules/spells/spell_types/curse.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/spells/spell_types/curse.dm b/code/modules/spells/spell_types/curse.dm index 51d4c84c9af..699c19911cb 100644 --- a/code/modules/spells/spell_types/curse.dm +++ b/code/modules/spells/spell_types/curse.dm @@ -7,9 +7,9 @@ deadchat_broadcast("A Curse of Madness has stricken the station, shattering their minds with the awful secret: \"[message]\"") for(var/mob/living/carbon/human/H in GLOB.player_list) - var/turf/T = get_turf(H) if(H.stat == DEAD) continue + var/turf/T = get_turf(H) if(T && !is_station_level(T.z)) continue if(H.anti_magic_check(TRUE, FALSE)) From e6ccb3df61935a574a55dab53e6793b0e4060cd8 Mon Sep 17 00:00:00 2001 From: XDTM Date: Fri, 7 Dec 2018 08:53:57 +0100 Subject: [PATCH 24/93] Prevents stacking projected forcefields --- code/game/objects/items/devices/forcefieldprojector.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index 3e395dfc145..18796aedf31 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -27,6 +27,10 @@ qdel(F) return var/turf/T = get_turf(target) + var/obj/structure/projected_forcefield/found_field = locate() in T + if(found_field) + to_chat(user, "There is already a forcefield in that location!") + return if(T.density) return if(get_dist(T,src) > field_distance_limit) From b3568c943ade36626650a2635435b577735fd89c Mon Sep 17 00:00:00 2001 From: swindly Date: Fri, 7 Dec 2018 11:40:30 -0500 Subject: [PATCH 25/93] fixes repair droids with short circuit --- code/game/mecha/equipment/tools/other_tools.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index f941f2e1029..715ddb234d5 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -251,8 +251,8 @@ chassis.clearInternalDamage(int_dam_flag) repaired = 1 break - if(health_boost<0 || chassis.obj_integrity < chassis.max_integrity) - chassis.obj_integrity += min(health_boost, chassis.max_integrity-chassis.obj_integrity) + if(h_boost<0 || chassis.obj_integrity < chassis.max_integrity) + chassis.obj_integrity += min(h_boost, chassis.max_integrity-chassis.obj_integrity) repaired = 1 if(repaired) if(!chassis.use_power(energy_drain)) From da239b43da8df4b7d23bf8b4d361c554f4c87e79 Mon Sep 17 00:00:00 2001 From: nicbn Date: Fri, 7 Dec 2018 19:52:22 -0200 Subject: [PATCH 26/93] Fixes reaper's scythe sprite --- .../mob/inhands/weapons/polearms_lefthand.dmi | Bin 6634 -> 6607 bytes .../inhands/weapons/polearms_righthand.dmi | Bin 6522 -> 6525 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/inhands/weapons/polearms_lefthand.dmi b/icons/mob/inhands/weapons/polearms_lefthand.dmi index 5e04b3daa34c085c9760566aae25c6e3b593dc44..3d8ac84a1269a59b053124ff5711faf5bbeb488f 100644 GIT binary patch delta 5512 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 LrBwFZEa<-gUvUNi delta 5520 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 L##*)aoMQh2-{$Q{ diff --git a/icons/mob/inhands/weapons/polearms_righthand.dmi b/icons/mob/inhands/weapons/polearms_righthand.dmi index e902dcdc3bd09d41791abd85cd863aee0545e3d0..535b8402f2046b4f75f364abce39422e3cf2d11a 100644 GIT binary patch delta 6021 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 delta 6008 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 MQrA-}Q?ZWtKQ5%GF#rGn From 1e3ed4f922da9355496eba2b0a0f9e40d6a20830 Mon Sep 17 00:00:00 2001 From: skoglol Date: Sat, 8 Dec 2018 01:07:34 +0100 Subject: [PATCH 27/93] resets vars before parts are calculated. --- code/modules/food_and_drinks/kitchen_machinery/gibber.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 08f20212c84..3e8b9ae5309 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -21,12 +21,12 @@ add_overlay("grjam") /obj/machinery/gibber/RefreshParts() - var/gib_time = 40 + gibtime = 40 + meat_produced = 0 for(var/obj/item/stock_parts/matter_bin/B in component_parts) meat_produced += B.rating for(var/obj/item/stock_parts/manipulator/M in component_parts) - gib_time -= 5 * M.rating - gibtime = gib_time + gibtime -= 5 * M.rating if(M.rating >= 2) ignore_clothing = TRUE From 3d6c5637b8fd613860d61b70a074c2d787ae6766 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 7 Dec 2018 17:51:04 -0800 Subject: [PATCH 28/93] T/F plasticflaps.dm when you're too bad at coding to make actual fixes but you want good boy points --- code/game/objects/structures/plasticflaps.dm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index d4dbe82acda..d344fd98cb1 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -55,15 +55,15 @@ /obj/structure/plasticflaps/CanAStarPass(ID, to_dir, caller) if(isliving(caller)) if(isbot(caller)) - return 1 + return TRUE var/mob/living/M = caller if(!M.ventcrawler && M.mob_size != MOB_SIZE_TINY) - return 0 + return FALSE var/atom/movable/M = caller if(M && M.pulling) return CanAStarPass(ID, to_dir, M.pulling) - return 1 //diseases, stings, etc can pass + return TRUE //diseases, stings, etc can pass /obj/structure/plasticflaps/CanPass(atom/movable/A, turf/T) if(istype(A) && (A.pass_flags & PASSGLASS)) @@ -71,24 +71,24 @@ var/obj/structure/bed/B = A if(istype(A, /obj/structure/bed) && (B.has_buckled_mobs() || B.density))//if it's a bed/chair and is dense or someone is buckled, it will not pass - return 0 + return FALSE if(istype(A, /obj/structure/closet/cardboard)) var/obj/structure/closet/cardboard/C = A if(C.move_delay) - return 0 + return FALSE if(ismecha(A)) - return 0 + return FALSE else if(isliving(A)) // You Shall Not Pass! var/mob/living/M = A if(isbot(A)) //Bots understand the secrets - return 1 + return TRUE if(M.buckled && istype(M.buckled, /mob/living/simple_animal/bot/mulebot)) // mulebot passenger gets a free pass. - return 1 + return TRUE if((M.mobility_flags & MOBILITY_STAND) && !M.ventcrawler && M.mob_size != MOB_SIZE_TINY) //If your not laying down, or a ventcrawler or a small creature, no pass. - return 0 + return FALSE return ..() /obj/structure/plasticflaps/deconstruct(disassembled = TRUE) From ca7ee3fa037a7e20284b70dd529f5383793046a5 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Fri, 7 Dec 2018 17:54:07 -0800 Subject: [PATCH 29/93] Automatic changelog generation for PR #41818 [ci skip] --- html/changelogs/AutoChangeLog-pr-41818.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41818.yml diff --git a/html/changelogs/AutoChangeLog-pr-41818.yml b/html/changelogs/AutoChangeLog-pr-41818.yml new file mode 100644 index 00000000000..0585f8b10e5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41818.yml @@ -0,0 +1,4 @@ +author: "XDTM" +delete-after: True +changes: + - bugfix: "Hypnosis now shows the proper alert instead of Curse of Normality." From 3adc39f98d482abab2a6316a8c997ad9a2737e92 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Fri, 7 Dec 2018 17:57:09 -0800 Subject: [PATCH 30/93] Automatic changelog generation for PR #41813 [ci skip] --- html/changelogs/AutoChangeLog-pr-41813.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41813.yml diff --git a/html/changelogs/AutoChangeLog-pr-41813.yml b/html/changelogs/AutoChangeLog-pr-41813.yml new file mode 100644 index 00000000000..06afa97f661 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41813.yml @@ -0,0 +1,5 @@ +author: "coiax" +delete-after: True +changes: + - rscadd: "During the Christmas season, you can find Santa hats, christmas crackers and +presents in maintenance." From ab0f1fac192192509803b57393dd66ea67b4303d Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sat, 8 Dec 2018 02:02:38 +0000 Subject: [PATCH 31/93] Automatic changelog compile, [ci skip] --- html/changelog.html | 43 +++++++--------------- html/changelogs/.all_changelog.yml | 8 ++++ html/changelogs/AutoChangeLog-pr-41797.yml | 4 -- html/changelogs/AutoChangeLog-pr-41813.yml | 5 --- html/changelogs/AutoChangeLog-pr-41818.yml | 4 -- 5 files changed, 22 insertions(+), 42 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-41797.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41813.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41818.yml diff --git a/html/changelog.html b/html/changelog.html index e3e292a8809..295c7ddc80d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,20 @@ -->
+

08 December 2018

+

Steelpoint updated:

+
    +
  • The Bartender of NTSS Boxstation was approved to receive a Hoochmaster.
  • +
+

XDTM updated:

+
    +
  • Hypnosis now shows the proper alert instead of Curse of Normality.
  • +
+

coiax updated:

+
    +
  • During the Christmas season, you can find Santa hats, christmas crackers and presents in maintenance.
  • +
+

07 December 2018

Blobby and Crossbowby updated:

    @@ -1474,35 +1488,6 @@
    • The Syndicate Infiltrator's nuke storage windoor is no longer called "Theatre Stage".
    - -

    06 October 2018

    -

    Floyd / Qustinnus updated:

    -
      -
    • Fat people explode again when fed mint toxin
    • -
    -

    Naksu updated:

    -
      -
    • default radiation insulation is now handled by atom vars rather than a component, components can still be used.
    • -
    -

    Qustinnus / Floyd updated:

    -
      -
    • your belly is now flat and empty
    • -
    -

    ShizCalev updated:

    -
      -
    • Pirates can no longer ransom themselves to CentCom
    • -
    • Ghosts can now see active AI cameras.
    • -
    • Microwaves now produce light when running.
    • -
    • The slime fireproofing potion is now fireproof.
    • -
    -

    XDTM updated:

    -
      -
    • Credits now change size every 1000x. The 1000+ credit color has been moved to 1-4 credits instead.
    • -
    -

    tigercat2000@Paradise updated:

    -
      -
    • fixed invalid characters breaking chat output for that message
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index c12304c7fe6..5d2fcc0bada 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -21784,3 +21784,11 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. subject217: - bugfix: Plasma cutters will no longer accept infinite plasma, and will stop you when they are full. +2018-12-08: + Steelpoint: + - rscadd: The Bartender of NTSS Boxstation was approved to receive a Hoochmaster. + XDTM: + - bugfix: Hypnosis now shows the proper alert instead of Curse of Normality. + coiax: + - rscadd: During the Christmas season, you can find Santa hats, christmas crackers + and presents in maintenance. diff --git a/html/changelogs/AutoChangeLog-pr-41797.yml b/html/changelogs/AutoChangeLog-pr-41797.yml deleted file mode 100644 index 9ca19b3007b..00000000000 --- a/html/changelogs/AutoChangeLog-pr-41797.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Steelpoint" -delete-after: True -changes: - - rscadd: "The Bartender of NTSS Boxstation was approved to receive a Hoochmaster." diff --git a/html/changelogs/AutoChangeLog-pr-41813.yml b/html/changelogs/AutoChangeLog-pr-41813.yml deleted file mode 100644 index 06afa97f661..00000000000 --- a/html/changelogs/AutoChangeLog-pr-41813.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "coiax" -delete-after: True -changes: - - rscadd: "During the Christmas season, you can find Santa hats, christmas crackers and -presents in maintenance." diff --git a/html/changelogs/AutoChangeLog-pr-41818.yml b/html/changelogs/AutoChangeLog-pr-41818.yml deleted file mode 100644 index 0585f8b10e5..00000000000 --- a/html/changelogs/AutoChangeLog-pr-41818.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "XDTM" -delete-after: True -changes: - - bugfix: "Hypnosis now shows the proper alert instead of Curse of Normality." From 7ff32c1b8cf6b0643bbfc3ef1339b07a418d3c3e Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 7 Dec 2018 20:09:29 -0800 Subject: [PATCH 32/93] as text to as message it really is that easy --- code/modules/admin/verbs/adminpm.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index aaf314660d4..80aee157b6c 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -55,7 +55,7 @@ if(AH) message_admins("[key_name_admin(src)] has started replying to [key_name_admin(C, 0, 0)]'s admin help.") - var/msg = input(src,"Message:", "Private message to [key_name(C, 0, 0)]") as text|null + var/msg = input(src,"Message:", "Private message to [key_name(C, 0, 0)]") as message|null if (!msg) message_admins("[key_name_admin(src)] has cancelled their reply to [key_name_admin(C, 0, 0)]'s admin help.") return @@ -90,7 +90,7 @@ if(!ircreplyamount) //to prevent people from spamming irc return if(!msg) - msg = input(src,"Message:", "Private message to Administrator") as text|null + msg = input(src,"Message:", "Private message to Administrator") as message|null if(!msg) return @@ -112,7 +112,7 @@ //get message text, limit it's length.and clean/escape html if(!msg) - msg = input(src,"Message:", "Private message to [key_name(recipient, 0, 0)]") as text|null + msg = input(src,"Message:", "Private message to [key_name(recipient, 0, 0)]") as message|null msg = trim(msg) if(!msg) return @@ -191,7 +191,7 @@ spawn() //so we don't hold the caller proc up var/sender = src var/sendername = key - var/reply = input(recipient, msg,"Admin PM from-[sendername]", "") as text|null //show message and await a reply + var/reply = input(recipient, msg,"Admin PM from-[sendername]", "") as message|null //show message and await a reply if(recipient && reply) if(sender) recipient.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them From 856e573ff9f5db45cbbb50117c517cda4dfb8e8f Mon Sep 17 00:00:00 2001 From: Denton <32391752+81Denton@users.noreply.github.com> Date: Sat, 8 Dec 2018 10:59:49 +0100 Subject: [PATCH 33/93] Adds comments to landmarks --- code/_globalvars/lists/mapping.dm | 14 +++++++------- code/game/objects/effects/landmarks.dm | 16 +++++++++++----- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index 0cb61949a0f..d785683fc4a 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -5,23 +5,23 @@ GLOBAL_LIST_INIT(diagonals, list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) GLOBAL_LIST_EMPTY(landmarks_list) //list of all landmarks created GLOBAL_LIST_EMPTY(start_landmarks_list) //list of all spawn points created GLOBAL_LIST_EMPTY(department_security_spawns) //list of all department security spawns -GLOBAL_LIST_EMPTY(generic_event_spawns) //list of all spawns for events -GLOBAL_LIST_EMPTY(jobspawn_overrides) //These will take precedence over normal spawnpoints if created. +GLOBAL_LIST_EMPTY(generic_event_spawns) //handles clockwork portal+eminence teleport destinations +GLOBAL_LIST_EMPTY(jobspawn_overrides) //These will take precedence over normal spawnpoints if created. GLOBAL_LIST_EMPTY(wizardstart) GLOBAL_LIST_EMPTY(nukeop_start) GLOBAL_LIST_EMPTY(nukeop_leader_start) GLOBAL_LIST_EMPTY(newplayer_start) -GLOBAL_LIST_EMPTY(prisonwarp) //prisoners go to these -GLOBAL_LIST_EMPTY(holdingfacility) //captured people go here -GLOBAL_LIST_EMPTY(xeno_spawn)//Aliens spawn at these. +GLOBAL_LIST_EMPTY(prisonwarp) //admin prisoners go to these +GLOBAL_LIST_EMPTY(holdingfacility) //captured people go here (ninja energy net) +GLOBAL_LIST_EMPTY(xeno_spawn)//aliens, morphs and nightmares spawn at these GLOBAL_LIST_EMPTY(tdome1) GLOBAL_LIST_EMPTY(tdome2) GLOBAL_LIST_EMPTY(tdomeobserve) GLOBAL_LIST_EMPTY(tdomeadmin) GLOBAL_LIST_EMPTY(prisonwarped) //list of players already warped -GLOBAL_LIST_EMPTY(blobstart) -GLOBAL_LIST_EMPTY(secequipment) +GLOBAL_LIST_EMPTY(blobstart) //stationloving objects, blobs, santa, respawning devils +GLOBAL_LIST_EMPTY(secequipment) //sec equipment lockers that scale with the number of sec players GLOBAL_LIST_EMPTY(deathsquadspawn) GLOBAL_LIST_EMPTY(emergencyresponseteamspawn) GLOBAL_LIST_EMPTY(servant_spawns) //Servants of Ratvar spawn here diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index ed88d51c2da..37a87d1f11b 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -231,6 +231,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) /obj/effect/landmark/start/depsec/science name = "science_sec" +//Antagonist spawns + /obj/effect/landmark/start/wizard name = "wizard" icon = 'icons/effects/landmarks_static.dmi' @@ -281,17 +283,17 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) SSjob.latejoin_trackers += loc return INITIALIZE_HINT_QDEL -// carp. +//space carps, magicarps, lone ops, slaughter demons, possibly revenants spawn here /obj/effect/landmark/carpspawn name = "carpspawn" icon_state = "carp_spawn" -// observer-start. +//observer start /obj/effect/landmark/observer_start name = "Observer-Start" icon_state = "observer_start" -// xenos. +//xenos, morphs and nightmares spawn here /obj/effect/landmark/xeno_spawn name = "xeno_spawn" icon_state = "xeno_spawn" @@ -301,7 +303,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) GLOB.xeno_spawn += loc return INITIALIZE_HINT_QDEL -// blobs. +//objects with the stationloving component (nuke disk) respawn here. +//also blobs that have their spawn forcemoved (running out of time when picking their spawn spot), santa and respawning devils /obj/effect/landmark/blobstart name = "blobstart" icon_state = "blob_start" @@ -311,6 +314,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) GLOB.blobstart += loc return INITIALIZE_HINT_QDEL +//spawns sec equipment lockers depending on the number of sec officers /obj/effect/landmark/secequipment name = "secequipment" icon_state = "secequipment" @@ -320,6 +324,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) GLOB.secequipment += loc return INITIALIZE_HINT_QDEL +//players that get put in admin jail show up here /obj/effect/landmark/prisonwarp name = "prisonwarp" icon_state = "prisonwarp" @@ -338,6 +343,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) GLOB.emergencyresponseteamspawn += loc return INITIALIZE_HINT_QDEL +//ninja energy nets teleport victims here /obj/effect/landmark/holding_facility name = "Holding Facility" icon_state = "holding_facility" @@ -404,7 +410,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) GLOB.city_of_cogs_spawns += loc return INITIALIZE_HINT_QDEL -//generic event spawns +//handles clockwork portal+eminence teleport destinations /obj/effect/landmark/event_spawn name = "generic event spawn" icon_state = "generic_event" From 360ebb3e33015f11511df14a2a2bf13b22f09dab Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Sat, 8 Dec 2018 23:52:44 +1100 Subject: [PATCH 34/93] adds roles and duration of ban to note created by ban --- code/modules/admin/sql_ban_system.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm index 179bfddfccb..2a3df8df7f4 100644 --- a/code/modules/admin/sql_ban_system.dm +++ b/code/modules/admin/sql_ban_system.dm @@ -462,7 +462,8 @@ message_admins("[kna] [msg][roles_to_ban[1] == "Server" ? "" : " Roles: [roles_to_ban.Join("\n")]"]") if(applies_to_admins) send2irc("BAN ALERT","[kn] [msg]") - create_message("note", player_ckey, null, reason, null, null, 0, 0, null, 0, severity) + var/note_reason = "Banned from [roles_to_ban[1] == "Server" ? "the server" : " Roles: [roles_to_ban.Join(", ")]"] [isnull(duration) ? "permanently" : "for [time_message]"] - [reason]" + create_message("note", player_ckey, admin_ckey, note_reason, null, null, 0, 0, null, 0, severity) var/client/C = GLOB.directory[player_ckey] var/datum/admin_help/AH = admin_ticket_log(player_ckey, msg) var/appeal_url = "No ban appeal url set!" From e68ad1829cd270ce7ba2f30fb73dbc612cfa51e9 Mon Sep 17 00:00:00 2001 From: tralezab <40974010+tralezab@users.noreply.github.com> Date: Sat, 8 Dec 2018 14:57:40 -0800 Subject: [PATCH 35/93] Fix "severe severe monophobia" (#41850) He's got more finesse than most goblins. He smashes windows with his fist rather than his forehead. --- code/datums/brain_damage/severe.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index 63d58bcc488..93b694ae9a8 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -143,7 +143,7 @@ /datum/brain_trauma/severe/monophobia name = "Monophobia" desc = "Patient feels sick and distressed when not around other people, leading to potentially lethal levels of stress." - scan_desc = "severe monophobia" + scan_desc = "monophobia" gain_text = "" lose_text = "You feel like you could be safe on your own." var/stress = 0 From 2f8f4590293f3c4b0719d4559ed4e9c4fbd864d8 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 01:53:50 -0800 Subject: [PATCH 36/93] Automatic changelog generation for PR #41856 [ci skip] --- html/changelogs/AutoChangeLog-pr-41856.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41856.yml diff --git a/html/changelogs/AutoChangeLog-pr-41856.yml b/html/changelogs/AutoChangeLog-pr-41856.yml new file mode 100644 index 00000000000..2f6835b46fa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41856.yml @@ -0,0 +1,4 @@ +author: "Skoglol" +delete-after: True +changes: + - bugfix: "Fixed gibber exploit." From 6fa001758667a7e4d00ac35bc06be146013fe179 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 01:55:17 -0800 Subject: [PATCH 37/93] Automatic changelog generation for PR #41833 [ci skip] --- html/changelogs/AutoChangeLog-pr-41833.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41833.yml diff --git a/html/changelogs/AutoChangeLog-pr-41833.yml b/html/changelogs/AutoChangeLog-pr-41833.yml new file mode 100644 index 00000000000..dabb23971e6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41833.yml @@ -0,0 +1,4 @@ +author: "Swindly" +delete-after: True +changes: + - rscadd: "Arm-mounted implants that contain more than one item use a radial menu instead of a list menu." From b6d45650b84783b61e13e088fd3957904879993b Mon Sep 17 00:00:00 2001 From: nicbn Date: Sun, 9 Dec 2018 07:56:02 -0200 Subject: [PATCH 38/93] Cleans up and improves microwave code (#41832) * Cleans up and improves microwave code * /the to /The * Update microwave.dm --- .../kitchen_machinery/microwave.dm | 403 +++++++++--------- 1 file changed, 192 insertions(+), 211 deletions(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index a148207c420..2d200a09a11 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -1,3 +1,9 @@ +#define MICROWAVE_NORMAL 0 +#define MICROWAVE_MUCK 1 +#define MICROWAVE_PRE 2 + +//Microwaving doesn't use recipes, instead it calls the microwave_act of the objects. For food, this creates something based on the food's cooked_type + /obj/machinery/microwave name = "microwave oven" desc = "Cooks and boils stuff." @@ -12,176 +18,150 @@ pass_flags = PASSTABLE light_color = LIGHT_COLOR_YELLOW light_power = 3 - var/operating = FALSE // Is it on? - var/dirty = 0 // = {0..100} Does it need cleaning? - var/broken = 0 // ={0,1,2} How broken is it??? - var/max_n_of_items = 10 // whatever fat fuck made this a global var needs to look at themselves in the mirror sometime + var/operating = FALSE + var/dirty = 0 // 0 to 100 // Does it need cleaning? + var/dirty_anim_playing = FALSE + var/broken = 0 // 0, 1 or 2 // How broken is it??? + var/max_n_of_items = 10 var/efficiency = 0 var/datum/looping_sound/microwave/soundloop -//Microwaving doesn't use recipes, instead it calls the microwave_act of the objects. For food, this creates something based on the food's cooked_type - -/******************* -* Initialising -********************/ - /obj/machinery/microwave/Initialize() . = ..() create_reagents(100) soundloop = new(list(src), FALSE) /obj/machinery/microwave/RefreshParts() - var/E - var/max_items = 10 + efficiency = 0 for(var/obj/item/stock_parts/micro_laser/M in component_parts) - E += M.rating + efficiency += M.rating for(var/obj/item/stock_parts/matter_bin/M in component_parts) - max_items = 10 * M.rating - efficiency = E - max_n_of_items = max_items + max_n_of_items = 10 * M.rating + break /obj/machinery/microwave/examine(mob/user) ..() if(!operating) to_chat(user, "Alt-click [src] to turn it on.") if(in_range(user, src) || isobserver(user)) - to_chat(user, "The status display reads: Capacity: [max_n_of_items] items.
Cook time reduced by [(efficiency*25)-25]%.") + to_chat(user, "The status display reads: Capacity: [max_n_of_items] items.
Cook time reduced by [(efficiency - 1) * 25]%.") -/******************* -* Item Adding -********************/ +/obj/machinery/microwave/update_icon() + if(broken) + icon_state = "mwb" + else if(dirty_anim_playing) + icon_state = "mwbloody1" + else if(dirty == 100) + icon_state = "mwbloody" + else if(operating) + icon_state = "mw1" + else if(panel_open) + icon_state = "mw-o" + else + icon_state = "mw" /obj/machinery/microwave/attackby(obj/item/O, mob/user, params) if(operating) return - if(!broken && dirty<100) - if(default_deconstruction_screwdriver(user, "mw-o", "mw", O)) - return - if(default_unfasten_wrench(user, O)) - return - if(default_deconstruction_crowbar(O)) return if(broken > 0) if(broken == 2 && O.tool_behaviour == TOOL_WIRECUTTER) // If it's broken and they're using a screwdriver - user.visible_message( \ - "[user] starts to fix part of the microwave.", \ - "You start to fix part of the microwave..." \ - ) - if (O.use_tool(src, user, 20)) - user.visible_message( \ - "[user] fixes part of the microwave.", \ - "You fix part of the microwave." \ - ) + user.visible_message("[user] starts to fix part of \the [src].", "You start to fix part of \the [src]...") + if(O.use_tool(src, user, 20)) + user.visible_message("[user] fixes part of \the [src].", "You fix part of \the [src].") broken = 1 // Fix it a bit else if(broken == 1 && O.tool_behaviour == TOOL_WELDER) // If it's broken and they're doing the wrench - user.visible_message( \ - "[user] starts to fix part of the microwave.", \ - "You start to fix part of the microwave..." \ - ) - if (O.use_tool(src, user, 20)) - user.visible_message( \ - "[user] fixes the microwave.", \ - "You fix the microwave." \ - ) - icon_state = "mw" - broken = 0 // Fix it! - dirty = 0 // just to be sure + user.visible_message("[user] starts to fix part of \the [src].", "You start to fix part of \the [src]...") + if(O.use_tool(src, user, 20)) + user.visible_message("[user] fixes \the [src].", "You fix \the [src].") + broken = 0 container_type = OPENCONTAINER - return 0 //to use some fuel + update_icon() + return FALSE //to use some fuel else to_chat(user, "It's broken!") - return 1 - else if(istype(O, /obj/item/reagent_containers/spray/)) + return TRUE + updateUsrDialog() + return + + if(istype(O, /obj/item/reagent_containers/spray)) var/obj/item/reagent_containers/spray/clean_spray = O - if(clean_spray.reagents.has_reagent("cleaner",clean_spray.amount_per_transfer_from_this)) - clean_spray.reagents.remove_reagent("cleaner",clean_spray.amount_per_transfer_from_this,1) + if(clean_spray.reagents.has_reagent("cleaner", clean_spray.amount_per_transfer_from_this)) + clean_spray.reagents.remove_reagent("cleaner", clean_spray.amount_per_transfer_from_this,1) playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) - user.visible_message( \ - "[user] has cleaned the microwave.", \ - "You clean the microwave." \ - ) - dirty = 0 // It's clean! - broken = 0 // just to be sure - icon_state = "mw" + user.visible_message("[user] has cleaned \the [src].", "You clean \the [src].") + dirty = 0 container_type = OPENCONTAINER + update_icon() updateUsrDialog() - return 1 // Disables the after-attack so we don't spray the floor/user. else to_chat(user, "You need more space cleaner!") - return 1 + return TRUE - else if(istype(O, /obj/item/soap/)) // If they're trying to clean it then let them + if(istype(O, /obj/item/soap)) var/obj/item/soap/P = O - user.visible_message( \ - "[user] starts to clean the microwave.", \ - "You start to clean the microwave..." \ - ) - if (do_after(user, P.cleanspeed, target = src)) - user.visible_message( \ - "[user] has cleaned the microwave.", \ - "You clean the microwave." \ - ) - dirty = 0 // It's clean! - broken = 0 // just to be sure - icon_state = "mw" + user.visible_message("[user] starts to clean \the [src].", "You start to clean \the [src]...") + if(do_after(user, P.cleanspeed, target = src)) + user.visible_message("[user] has cleaned \the [src].", "You clean \the [src].") + dirty = 0 container_type = OPENCONTAINER + update_icon() + return TRUE - else if(dirty==100) // The microwave is all dirty so can't be used! - to_chat(user, "It's dirty!") - return 1 + if(dirty == 100) // The microwave is all dirty so can't be used! + to_chat(user, "\The [src] is dirty!") + return TRUE - else if(istype(O, /obj/item/storage/bag/tray)) + if(istype(O, /obj/item/storage/bag/tray)) var/obj/item/storage/T = O var/loaded = 0 for(var/obj/item/reagent_containers/food/snacks/S in T.contents) - if (contents.len>=max_n_of_items) - to_chat(user, "[src] is full, you can't put anything in!") - return 1 + if(contents.len >= max_n_of_items) + to_chat(user, "\The [src] is full, you can't put anything in!") + return TRUE if(SEND_SIGNAL(T, COMSIG_TRY_STORAGE_TAKE, S, src)) loaded++ - if(loaded) - to_chat(user, "You insert [loaded] items into [src].") + to_chat(user, "You insert [loaded] items into \the [src].") + updateUsrDialog() + return + if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O, /obj/item/storage) && user.a_intent == INTENT_HELP) + if(contents.len >= max_n_of_items) + to_chat(user, "\The [src] is full, you can't put anything in!") + return TRUE + if(!user.transferItemToLoc(O, src)) + to_chat(user, "\The [O] is stuck to your hand, you cannot put it in \the [src]!") + return FALSE + user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") + updateUsrDialog() + return - else if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O, /obj/item/storage) && user.a_intent == INTENT_HELP) - if (contents.len>=max_n_of_items) - to_chat(user, "[src] is full, you can't put anything in!") - return 1 - else - if(!user.transferItemToLoc(O, src)) - to_chat(user, "\the [O] is stuck to your hand, you cannot put it in \the [src]!") - return 0 + if(dirty < 100) + if(default_deconstruction_screwdriver(user, "", "", O) || default_unfasten_wrench(user, O)) + update_icon() + return - user.visible_message( \ - "[user] has added \the [O] to \the [src].", \ - "You add \the [O] to \the [src].") - - else - ..() + ..() updateUsrDialog() /obj/machinery/microwave/AltClick(mob/user) if(user.canUseTopic(src, BE_CLOSE) && !(operating || broken > 0 || panel_open || !anchored || dirty == 100)) cook() -/******************* -* Microwave Menu -********************/ - -/obj/machinery/microwave/ui_interact(mob/user) // The microwave Menu +/obj/machinery/microwave/ui_interact(mob/user) . = ..() if(panel_open || !anchored) return var/dat = "
" if(broken > 0) - dat += "ERROR: 09734014-A2379-D18746 --Bad memory
Contact your operator or use command line to rebase memory ///git checkout {HEAD} -a commit pull --rebase push {*NEW HEAD*}
" //Thats how all the git fiddling looks to me + dat += "ERROR: 09734014-A2379-D18746 --Bad memory
Contact your operator or use command line to rebase memory ///git checkout {HEAD} -a commit pull --rebase push {*NEW HEAD*}" // Thats how all the git fiddling looks to me else if(operating) dat += "Microwaving in progress!
Please wait...!" - else if(dirty==100) - dat += "ERROR: >> 0 --Response input zero
Contact your operator of the device manifactor support." + else if(dirty == 100) + dat += "ERROR: >> 0 --Response input zero
Contact your operator of the device manufacturer support." else var/list/items_counts = new for (var/obj/O in contents) @@ -206,132 +186,133 @@ popup.set_content(dat) popup.open() -/*********************************** -* Microwave Menu Handling/Cooking -************************************/ +/obj/machinery/microwave/Topic(href, href_list) + if(..()) + return + if(panel_open) + return + usr.set_machine(src) + if(!operating) + switch(href_list["action"]) + if("cook") + cook() + if("dispose") + dispose() + updateUsrDialog() + +/obj/machinery/microwave/proc/dispose() + for(var/obj/O in contents) + O.forceMove(drop_location()) + to_chat(usr, "You dispose of \the [src] contents.") + updateUsrDialog() /obj/machinery/microwave/proc/cook() if(stat & (NOPOWER|BROKEN)) return + if(prob(max((5 / efficiency) - 5, dirty * 5))) //a clean unupgraded microwave has no risk of failure + muck() + return + for(var/obj/O in contents) + if(istype(O, /obj/item/reagent_containers/food) || istype(O, /obj/item/grown)) + continue + if(prob(min(dirty * 5, 100))) + start_can_fail() + return + break start() - if (prob(max(5/efficiency-5,dirty*5))) //a clean unupgraded microwave has no risk of failure - muck_start() - if (!microwaving(4)) - muck_finish() - return - muck_finish() - return +/obj/machinery/microwave/proc/turn_on() + visible_message("\The [src] turns on.", "You hear a microwave humming.") + operating = TRUE - else - if(has_extra_item() && prob(min(dirty*5,100)) && !microwaving(4)) - broke() - return + set_light(1.5) + soundloop.start() + update_icon() + updateUsrDialog() - if(!microwaving(10)) - abort() - return - stop() - - var/metal = 0 - for(var/obj/item/O in contents) - O.microwave_act(src) - if(O.materials[MAT_METAL]) - metal += O.materials[MAT_METAL] - - if(metal) - visible_message("Sparks fly around [src]!") - if(prob(max(metal/2, 33))) - explosion(loc,0,1,2) - broke() - return - - dropContents() - return - -/obj/machinery/microwave/proc/microwaving(seconds as num) - for (var/i=1 to seconds) - if (stat & (NOPOWER|BROKEN)) - return 0 - use_power(500) - sleep(max(12-2*efficiency,2)) // standard microwave means sleep(10). The better the efficiency, the faster the cooking - return 1 - -/obj/machinery/microwave/proc/has_extra_item() - for (var/obj/O in contents) - if ( \ - !istype(O, /obj/item/reagent_containers/food) && \ - !istype(O, /obj/item/grown) \ - ) - return 1 - return 0 +/obj/machinery/microwave/proc/spark() + visible_message("Sparks fly around [src]!") + var/datum/effect_system/spark_spread/s = new + s.set_up(2, 1, src) + s.start() /obj/machinery/microwave/proc/start() - visible_message("The microwave turns on.", "You hear a microwave humming.") - soundloop.start() - operating = TRUE - icon_state = "mw1" - updateUsrDialog() - set_light(1.5) + turn_on() + loop(MICROWAVE_NORMAL, 10) -/obj/machinery/microwave/proc/abort() - operating = FALSE // Turn it off again aferwards - icon_state = "mw" - updateUsrDialog() - set_light(0) - soundloop.stop() +/obj/machinery/microwave/proc/start_can_fail() + turn_on() + loop(MICROWAVE_PRE, 4) -/obj/machinery/microwave/proc/stop() - abort() +/obj/machinery/microwave/proc/muck() + turn_on() + playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) + dirty_anim_playing = TRUE + update_icon() + loop(MICROWAVE_MUCK, 4) -/obj/machinery/microwave/proc/dispose() - for (var/obj/O in contents) - O.forceMove(drop_location()) - to_chat(usr, "You dispose of the microwave contents.") - updateUsrDialog() +/obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * efficiency, 2)) // standard wait is 10 + if(stat & (NOPOWER|BROKEN)) + if(MICROWAVE_PRE) + pre_fail() + return + if(!time) + switch(type) + if(MICROWAVE_NORMAL) + loop_finish() + if(MICROWAVE_MUCK) + muck_finish() + if(MICROWAVE_PRE) + pre_success() + return + time-- + use_power(500) + addtimer(CALLBACK(src, .proc/loop, type, time, wait), wait) -/obj/machinery/microwave/proc/muck_start() - playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) // Play a splat sound - icon_state = "mwbloody1" // Make it look dirty!! +/obj/machinery/microwave/proc/loop_finish() + operating = FALSE + + var/metal = 0 + for(var/obj/item/O in contents) + O.microwave_act(src) + if(O.materials[MAT_METAL]) + metal += O.materials[MAT_METAL] + + if(metal) + spark() + broken = 2 + if(prob(max(metal / 2, 33))) + explosion(loc, 0, 1, 2) + else + dropContents() + + after_finish_loop() + +/obj/machinery/microwave/proc/pre_fail() + broken = 2 + operating = FALSE + spark() + after_finish_loop() + +/obj/machinery/microwave/proc/pre_success() + loop(MICROWAVE_NORMAL, 10) /obj/machinery/microwave/proc/muck_finish() - visible_message("The microwave gets covered in muck!") - dirty = 100 // Make it dirty so it can't be used util cleaned - icon_state = "mwbloody" // Make it look dirty too - operating = FALSE // Turn it off again aferwards - updateUsrDialog() + visible_message("\The [src] gets covered in muck!") + + dirty = 100 + dirty_anim_playing = FALSE + operating = FALSE + for(var/obj/item/reagent_containers/food/snacks/S in src) if(prob(50)) new /obj/item/reagent_containers/food/snacks/badrecipe(src) qdel(S) + + after_finish_loop() + +/obj/machinery/microwave/proc/after_finish_loop() set_light(0) soundloop.stop() - -/obj/machinery/microwave/proc/broke() - var/datum/effect_system/spark_spread/s = new - s.set_up(2, 1, src) - s.start() - icon_state = "mwb" // Make it look all busted up and shit - visible_message("The microwave breaks!") //Let them know they're stupid - broken = 2 // Make it broken so it can't be used util fixed - operating = FALSE // Turn it off again aferwards - updateUsrDialog() - set_light(0) - soundloop.stop() - -/obj/machinery/microwave/Topic(href, href_list) - if(..() || panel_open) - return - - usr.set_machine(src) - if(operating) - updateUsrDialog() - return - - switch(href_list["action"]) - if ("cook") - cook() - - if ("dispose") - dispose() + update_icon() updateUsrDialog() From 7fd313f813ddd3da2ce65a3751e72310eabd76ef Mon Sep 17 00:00:00 2001 From: JJRcop Date: Sun, 9 Dec 2018 04:59:02 -0500 Subject: [PATCH 39/93] Chronosuit fixes extracted from #41350 (#41449) cl JJRcop fix: The chronosuit's teleport animation has been fixed, as has the gun. /cl Since #41350 was closed, I extracted the suit fixes without any balance changes, it works again. Fixes #41443 Closes #41446 Known issue: sometimes newly created icons/appearances stop showing up after some use, but return when reconnecting. --- code/game/objects/items/chrono_eraser.dm | 52 ++++++++-------- .../modules/clothing/spacesuits/chronosuit.dm | 60 ++++++++++--------- 2 files changed, 57 insertions(+), 55 deletions(-) diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm index d476827e512..5b212a5b7cf 100644 --- a/code/game/objects/items/chrono_eraser.dm +++ b/code/game/objects/items/chrono_eraser.dm @@ -53,7 +53,7 @@ can_charge = 0 fire_delay = 50 var/obj/item/chrono_eraser/TED = null - var/obj/effect/chrono_field/field = null + var/obj/structure/chrono_field/field = null var/turf/startpos = null /obj/item/gun/energy/chrono_gun/Initialize() @@ -80,12 +80,12 @@ field_disconnect(field) return ..() -/obj/item/gun/energy/chrono_gun/proc/field_connect(obj/effect/chrono_field/F) - var/mob/living/user = src.loc +/obj/item/gun/energy/chrono_gun/proc/field_connect(obj/structure/chrono_field/F) + var/mob/living/user = loc if(F.gun) if(isliving(user) && F.captured) to_chat(user, "FAIL: [F.captured] already has an existing connection.") - src.field_disconnect(F) + field_disconnect(F) else startpos = get_turf(src) field = F @@ -94,9 +94,9 @@ to_chat(user, "Connection established with target: [F.captured]") -/obj/item/gun/energy/chrono_gun/proc/field_disconnect(obj/effect/chrono_field/F) +/obj/item/gun/energy/chrono_gun/proc/field_disconnect(obj/structure/chrono_field/F) if(F && field == F) - var/mob/living/user = src.loc + var/mob/living/user = loc if(F.gun == src) F.gun = null if(isliving(user) && F.captured) @@ -104,7 +104,7 @@ field = null startpos = null -/obj/item/gun/energy/chrono_gun/proc/field_check(obj/effect/chrono_field/F) +/obj/item/gun/energy/chrono_gun/proc/field_check(obj/structure/chrono_field/F) if(F) if(field == F) var/turf/currentpos = get_turf(src) @@ -134,7 +134,7 @@ /obj/item/projectile/energy/chrono_beam/on_hit(atom/target) if(target && gun && isliving(target)) - var/obj/effect/chrono_field/F = new(target.loc, target, gun) + var/obj/structure/chrono_field/F = new(target.loc, target, gun) gun.field_connect(F) @@ -154,14 +154,16 @@ -/obj/effect/chrono_field +/obj/structure/chrono_field name = "eradication field" desc = "An aura of time-bluespace energy." icon = 'icons/effects/effects.dmi' icon_state = "chronofield" density = FALSE anchored = TRUE - blend_mode = BLEND_MULTIPLY + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF + move_resist = INFINITY + interaction_flags_atom = NONE var/mob/living/captured = null var/obj/item/gun/energy/chrono_gun/gun = null var/tickstokill = 15 @@ -169,10 +171,10 @@ var/preloaded = 0 var/RPpos = null -/obj/effect/chrono_field/New(loc, var/mob/living/target, var/obj/item/gun/energy/chrono_gun/G) +/obj/structure/chrono_field/Initialize(mapload, mob/living/target, obj/item/gun/energy/chrono_gun/G) if(target && isliving(target) && G) target.forceMove(src) - src.captured = target + captured = target var/icon/mob_snapshot = getFlatIcon(target) var/icon/cached_icon = new() @@ -187,13 +189,14 @@ desc = initial(desc) + "
It appears to contain [target.name]." START_PROCESSING(SSobj, src) + return ..() -/obj/effect/chrono_field/Destroy() +/obj/structure/chrono_field/Destroy() if(gun && gun.field_check(src)) gun.field_disconnect(src) return ..() -/obj/effect/chrono_field/update_icon() +/obj/structure/chrono_field/update_icon() var/ttk_frame = 1 - (tickstokill / initial(tickstokill)) ttk_frame = CLAMP(CEILING(ttk_frame * CHRONO_FRAME_COUNT, 1), 1, CHRONO_FRAME_COUNT) if(ttk_frame != RPpos) @@ -202,14 +205,14 @@ underlays = list() //hack: BYOND refuses to update the underlay to match the icon_state otherwise underlays += mob_underlay -/obj/effect/chrono_field/process() +/obj/structure/chrono_field/process() if(captured) if(tickstokill > initial(tickstokill)) for(var/atom/movable/AM in contents) AM.forceMove(drop_location()) qdel(src) else if(tickstokill <= 0) - to_chat(captured, "As the last essence of your being is erased from time, you begin to re-experience your most enjoyable memory. You feel happy...") + to_chat(captured, "As the last essence of your being is erased from time, you are taken back to your most enjoyable memory. You feel happy...") var/mob/dead/observer/ghost = captured.ghostize(1) if(captured.mind) if(ghost) @@ -234,7 +237,7 @@ else qdel(src) -/obj/effect/chrono_field/bullet_act(obj/item/projectile/P) +/obj/structure/chrono_field/bullet_act(obj/item/projectile/P) if(istype(P, /obj/item/projectile/energy/chrono_beam)) var/obj/item/projectile/energy/chrono_beam/beam = P var/obj/item/gun/energy/chrono_gun/Pgun = beam.gun @@ -243,10 +246,10 @@ else return 0 -/obj/effect/chrono_field/assume_air() +/obj/structure/chrono_field/assume_air() return 0 -/obj/effect/chrono_field/return_air() //we always have nominal air and temperature +/obj/structure/chrono_field/return_air() //we always have nominal air and temperature var/datum/gas_mixture/GM = new GM.add_gases(/datum/gas/oxygen, /datum/gas/nitrogen) GM.gases[/datum/gas/oxygen][MOLES] = MOLES_O2STANDARD @@ -254,19 +257,16 @@ GM.temperature = T20C return GM -/obj/effect/chrono_field/Move() +/obj/structure/chrono_field/singularity_act() return -/obj/effect/chrono_field/singularity_act() +/obj/structure/chrono_field/singularity_pull() return -/obj/effect/chrono_field/singularity_pull() +/obj/structure/chrono_field/ex_act() return -/obj/effect/chrono_field/ex_act() - return - -/obj/effect/chrono_field/blob_act(obj/structure/blob/B) +/obj/structure/chrono_field/blob_act(obj/structure/blob/B) return diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 2298b01f003..b6863ddba46 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -6,7 +6,7 @@ slowdown = 1 armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 60, "bomb" = 30, "bio" = 90, "rad" = 90, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF - var/obj/item/clothing/suit/space/chronos/suit = null + var/obj/item/clothing/suit/space/chronos/suit /obj/item/clothing/head/helmet/space/chronos/dropped() if(suit) @@ -28,8 +28,8 @@ resistance_flags = FIRE_PROOF | ACID_PROOF var/list/chronosafe_items = list(/obj/item/chrono_eraser, /obj/item/gun/energy/chrono_gun) var/list/hands_nodrop = list() - var/obj/item/clothing/head/helmet/space/chronos/helmet = null - var/obj/effect/chronos_cam/camera = null + var/obj/item/clothing/head/helmet/space/chronos/helmet + var/obj/effect/chronos_cam/camera var/datum/action/innate/chrono_teleport/teleport_now = new var/activating = 0 var/activated = 0 @@ -37,10 +37,10 @@ var/teleporting = 0 var/phase_timer_id -/obj/item/clothing/suit/space/chronos/New() - ..() +/obj/item/clothing/suit/space/chronos/Initialize() teleport_now.chronosuit = src teleport_now.target = src + return ..() /obj/item/clothing/suit/space/chronos/proc/new_camera(mob/user) if(camera) @@ -48,6 +48,8 @@ camera = new /obj/effect/chronos_cam(user) camera.holder = user camera.chronosuit = src + user.reset_perspective(camera) + user.set_machine(camera) user.remote_control = camera /obj/item/clothing/suit/space/chronos/ui_action_click() @@ -99,9 +101,11 @@ for(var/obj/item/I in user.held_items) if(I in hands_nodrop) I.item_flags &= ~NODROP + hands_nodrop = null if(camera) camera.remove_target_ui() camera.forceMove(user) + user.reset_perspective(camera) teleport_now.UpdateButtonIcon() /obj/item/clothing/suit/space/chronos/proc/chronowalk(atom/location) @@ -147,7 +151,7 @@ /obj/item/clothing/suit/space/chronos/proc/phase_2(mob/living/carbon/human/user, turf/to_turf, phase_in_ds) if(teleporting && activated && user) - animate(user, alpha = 0, time = 2) + animate(user, color = list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 1,1,1,0), time = 2) phase_timer_id = addtimer(CALLBACK(src, .proc/phase_3, user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE) else finish_chronowalk(user, to_turf) @@ -155,7 +159,7 @@ /obj/item/clothing/suit/space/chronos/proc/phase_3(mob/living/carbon/human/user, turf/to_turf, phase_in_ds) if(teleporting && activated && user) user.forceMove(to_turf) - animate(user, alpha = 255, time = phase_in_ds) + animate(user, color = "#00ccee", time = phase_in_ds) phase_timer_id = addtimer(CALLBACK(src, .proc/phase_4, user, to_turf), phase_in_ds, TIMER_STOPPABLE) else finish_chronowalk(user, to_turf) @@ -240,7 +244,7 @@ helmet.suit = null helmet = null if(camera) - qdel(camera) + QDEL_NULL(camera) /obj/effect/chronos_cam name = "Chronosuit View" @@ -249,10 +253,10 @@ invisibility = INVISIBILITY_ABSTRACT opacity = 0 mouse_opacity = MOUSE_OPACITY_TRANSPARENT - var/mob/holder = null + var/mob/holder var/phase_time = 0 var/phase_time_length = 3 - var/obj/screen/chronos_target/target_ui = null + var/obj/screen/chronos_target/target_ui var/obj/item/clothing/suit/space/chronos/chronosuit /obj/effect/chronos_cam/singularity_act() @@ -265,35 +269,33 @@ if(holder && holder.client && chronosuit) if(target_ui) remove_target_ui() - target_ui = new(null, holder) + target_ui = new(src, holder) holder.client.screen += target_ui /obj/effect/chronos_cam/proc/remove_target_ui() if(target_ui) - qdel(target_ui) - target_ui = null + QDEL_NULL(target_ui) /obj/effect/chronos_cam/relaymove(var/mob/user, direction) if(!holder) qdel(src) return if(user == holder) - if(loc == user) - forceMove(get_turf(user)) - if(user.client && user.client.eye != src) - src.forceMove(user.drop_location()) - user.reset_perspective(src) + if(loc == user || (user.client && user.client.eye != src)) + forceMove(user.drop_location()) user.set_machine(src) + user.reset_perspective(src) var/atom/step = get_step(src, direction) if(step) if((step.x <= TRANSITIONEDGE) || (step.x >= (world.maxx - TRANSITIONEDGE - 1)) || (step.y <= TRANSITIONEDGE) || (step.y >= (world.maxy - TRANSITIONEDGE - 1))) - if(!src.Move(step)) - src.forceMove(step) + if(!Move(step)) + forceMove(step) else - src.forceMove(step) + forceMove(step) if((x == holder.x) && (y == holder.y) && (z == holder.z)) - remove_target_ui() forceMove(user) + user.reset_perspective(user) + remove_target_ui() else if(!target_ui) create_target_ui() phase_time = world.time + phase_time_length @@ -301,6 +303,7 @@ /obj/effect/chronos_cam/check_eye(mob/user) if(user != holder) user.unset_machine() + qdel(src) /obj/effect/chronos_cam/on_unset_machine(mob/user) user.reset_perspective(null) @@ -309,23 +312,22 @@ if(holder) if(holder.remote_control == src) holder.remote_control = null - if(holder.client && (holder.client.eye == src)) + if(holder.client && (holder.machine == src)) holder.unset_machine() return ..() /obj/screen/chronos_target name = "target display" screen_loc = "CENTER,CENTER" - color = "#ff3311" - blend_mode = BLEND_SUBTRACT + color = list(1,0,0,0, 0,1,0,0.8, 0,0,1,0.933, 0,0,0,0, 0,0,0,0) + appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE -/obj/screen/chronos_target/New(loc, var/mob/living/carbon/human/user) +/obj/screen/chronos_target/Initialize(mapload, mob/living/carbon/human/user) if(user) - var/icon/user_icon = getFlatIcon(user) - icon = user_icon - transform = user.transform + vis_contents += user else qdel(src) + return ..() /datum/action/innate/chrono_teleport name = "Teleport Now" From 6820ffad7e8bc2d54f993deb63250bc1a77692c9 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 01:59:06 -0800 Subject: [PATCH 40/93] Automatic changelog generation for PR #41449 [ci skip] --- html/changelogs/AutoChangeLog-pr-41449.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41449.yml diff --git a/html/changelogs/AutoChangeLog-pr-41449.yml b/html/changelogs/AutoChangeLog-pr-41449.yml new file mode 100644 index 00000000000..f30564792e4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41449.yml @@ -0,0 +1,4 @@ +author: "JJRcop" +delete-after: True +changes: + - bugfix: "The chronosuit's teleport animation has been fixed, as has the gun." From 5b34ab3a01e8d14f72e72b41aa2cfcdea9106526 Mon Sep 17 00:00:00 2001 From: imsxz Date: Sun, 9 Dec 2018 04:59:26 -0500 Subject: [PATCH 41/93] makes glitter use new atmos overlays (#41644) cl imsxz fix: glitter now uses the updated atmos overlays /cl Fixes #41564 --- code/game/objects/effects/decals/cleanable/misc.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 832f7549b1f..42388e49e7b 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -174,15 +174,15 @@ /obj/effect/decal/cleanable/glitter/pink name = "pink glitter" - icon_state = "plasma_old" + icon_state = "plasma" /obj/effect/decal/cleanable/glitter/white name = "white glitter" - icon_state = "nitrous_oxide_old" + icon_state = "nitrous_oxide" /obj/effect/decal/cleanable/glitter/blue name = "blue glitter" - icon_state = "freon_old" + icon_state = "freon" /obj/effect/decal/cleanable/plasma name = "stabilized plasma" From 3ee4a836e707d20948a5e5bafa7547f94ba9035c Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 01:59:29 -0800 Subject: [PATCH 42/93] Automatic changelog generation for PR #41644 [ci skip] --- html/changelogs/AutoChangeLog-pr-41644.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41644.yml diff --git a/html/changelogs/AutoChangeLog-pr-41644.yml b/html/changelogs/AutoChangeLog-pr-41644.yml new file mode 100644 index 00000000000..a728d3bfa0e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41644.yml @@ -0,0 +1,4 @@ +author: "imsxz" +delete-after: True +changes: + - bugfix: "glitter now uses the updated atmos overlays" From 40344ab093f0615a32276d3a0e072c9948dbeadc Mon Sep 17 00:00:00 2001 From: coiax Date: Sun, 9 Dec 2018 10:03:34 +0000 Subject: [PATCH 43/93] Heirlooms have additional examine text, rather than being renamed (#41676) cl coiax add: Heirlooms are no longer named "Cherry family bag of dice", but rather their heirloom status can be determined by the owner on examine. /cl Because names are inherent to an object when anyone looks at it, I feel it can be somewhat confusing that you can tell that this screwdriver is a precious family heirloom just because of its name, rather than because of the significance that someone holds it. Only the owner of the heirloom receives the special examine text; so I'm sure this could probably be used to bluff ownership of something non-standard, if and when heirlooms become more exotic. Heirlooms still work in the same way though, mood bonus from holding, mood penalty if you don't have it. --- code/datums/components/heirloom.dm | 16 ++++++++++++++++ code/datums/traits/negative.dm | 7 +++++-- tgstation.dme | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 code/datums/components/heirloom.dm diff --git a/code/datums/components/heirloom.dm b/code/datums/components/heirloom.dm new file mode 100644 index 00000000000..e7e62187d06 --- /dev/null +++ b/code/datums/components/heirloom.dm @@ -0,0 +1,16 @@ +/datum/component/heirloom + var/datum/mind/owner + var/family_name + +/datum/component/heirloom/Initialize(new_owner, new_family_name) + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + owner = new_owner + family_name = new_family_name + + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + +/datum/component/heirloom/proc/examine(datum/source, mob/user) + if(user.mind == owner) + to_chat(user, "It is your precious [family_name] family heirloom. Keep it safe!") diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 2f8b425d259..ba9a69fb64c 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -159,8 +159,11 @@ SEND_SIGNAL(H.back, COMSIG_TRY_STORAGE_SHOW, H) to_chat(quirk_holder, "There is a precious family [heirloom.name] [where], passed down from generation to generation. Keep it safe!") - var/list/family_name = splittext(quirk_holder.real_name, " ") - heirloom.name = "\improper [family_name[family_name.len]] family [heirloom.name]" + + var/list/names = splittext(quirk_holder.real_name, " ") + var/family_name = names[names.len] + + heirloom.AddComponent(/datum/component/heirloom, quirk_holder.mind, family_name) /datum/quirk/family_heirloom/on_process() if(heirloom in quirk_holder.GetAllContents()) diff --git a/tgstation.dme b/tgstation.dme index 23efe4fa672..903e18e4af3 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -340,6 +340,7 @@ #include "code\datums\components\footstep.dm" #include "code\datums\components\forced_gravity.dm" #include "code\datums\components\forensics.dm" +#include "code\datums\components\heirloom.dm" #include "code\datums\components\infective.dm" #include "code\datums\components\jousting.dm" #include "code\datums\components\knockoff.dm" From d6307d0506e4ac1fba729e75cd0eb27a5d17a8f9 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:03:36 -0800 Subject: [PATCH 44/93] Automatic changelog generation for PR #41676 [ci skip] --- html/changelogs/AutoChangeLog-pr-41676.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41676.yml diff --git a/html/changelogs/AutoChangeLog-pr-41676.yml b/html/changelogs/AutoChangeLog-pr-41676.yml new file mode 100644 index 00000000000..22bb1e8e0c0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41676.yml @@ -0,0 +1,5 @@ +author: "coiax" +delete-after: True +changes: + - rscadd: "Heirlooms are no longer named \"Cherry family bag of dice\", but +rather their heirloom status can be determined by the owner on examine." From c02a4e3319ce7408d9ae0bee40d041bdc6e36299 Mon Sep 17 00:00:00 2001 From: tralezab <40974010+tralezab@users.noreply.github.com> Date: Sun, 9 Dec 2018 02:05:23 -0800 Subject: [PATCH 45/93] Fixes duplicate batforms in a lot of cases (#41726) fixes #32177 or at least it should maybe i should test this? --- .../living/carbon/human/species_types/vampire.dm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index ec2ed577af0..10710096231 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -14,6 +14,7 @@ limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human var/info_text = "You are a Vampire. You will slowly but constantly lose blood if outside of a coffin. If inside a coffin, you will slowly heal. You may gain more blood by grabbing a live victim and using your drain ability." + var/obj/effect/proc_holder/spell/targeted/shapeshift/bat/batform //attached to the datum itself to avoid cloning memes, and other duplicates /datum/species/vampire/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) @@ -25,17 +26,15 @@ to_chat(C, "[info_text]") C.skin_tone = "albino" C.update_body(0) - var/obj/effect/proc_holder/spell/targeted/shapeshift/bat/B = new - C.AddSpell(B) + if(isnull(batform)) + batform = new + C.AddSpell(batform) /datum/species/vampire/on_species_loss(mob/living/carbon/C) . = ..() - if(C.mind) - for(var/S in C.mind.spell_list) - var/obj/effect/proc_holder/spell/S2 = S - if(S2.type == /obj/effect/proc_holder/spell/targeted/shapeshift/bat) - C.mind.spell_list.Remove(S2) - qdel(S2) + if(!isnull(batform)) + C.RemoveSpell(batform) + QDEL_NULL(batform) /datum/species/vampire/spec_life(mob/living/carbon/human/C) . = ..() From 84b64328b9db21386ace315949db0246b53f31d7 Mon Sep 17 00:00:00 2001 From: coiax Date: Sun, 9 Dec 2018 10:08:03 +0000 Subject: [PATCH 46/93] Improves code implementation of the Musician trait (#41742) cl coiax add: Any talented Musician can now use any instrument to lift spirits, and ease burdens. They can now also use the space piano and minimog to grant people the Good Music buffs, just like a handheld instrument. /cl A living mob with TRAIT_MUSICIAN will now apply the Good Music status effect to everyone who can hear the music. The buff will now apply even to players who have disabled instrument sounds. The Good Music status effect lasts for 6 seconds after the musician stops playing. Added STATUS_EFFECT_REFRESH that just refreshes the duration of a status effect, rather than instancing a new one. --- code/__DEFINES/status_effects.dm | 4 ++ code/datums/status_effects/buffs.dm | 13 +++++ code/datums/status_effects/status_effect.dm | 9 ++++ code/datums/traits/good.dm | 3 -- .../game/objects/items/devices/instruments.dm | 47 +------------------ code/game/objects/structures/musician.dm | 11 +++-- 6 files changed, 35 insertions(+), 52 deletions(-) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 9e54d273a06..26c419dbe97 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -7,6 +7,8 @@ #define STATUS_EFFECT_REPLACE 2 //if it allows only one, but new instances replace +#define STATUS_EFFECT_REFRESH 3 // if it only allows one, and new instances just instead refresh the timer + /////////// // BUFFS // /////////// @@ -32,6 +34,8 @@ #define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost +#define STATUS_EFFECT_GOOD_MUSIC /datum/status_effect/good_music + ///////////// // DEBUFFS // ///////////// diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 44bac60165e..8d60f062ca4 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -541,3 +541,16 @@ else if(isanimal(L)) var/mob/living/simple_animal/SM = L SM.adjustHealth(-3.5, forced = TRUE) + +/datum/status_effect/good_music + id = "Good Music" + alert_type = null + duration = 6 SECONDS + tick_interval = 1 SECONDS + status_type = STATUS_EFFECT_REFRESH + +/datum/status_effect/good_music/tick() + owner.dizziness = max(0, owner.dizziness - 2) + owner.jitteriness = max(0, owner.jitteriness - 2) + owner.confused = max(0, owner.confused - 1) + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "goodmusic", /datum/mood_event/goodmusic) diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index c8bcd831e21..6684065cc8d 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -63,6 +63,12 @@ owner = null qdel(src) +/datum/status_effect/proc/refresh() + var/original_duration = initial(duration) + if(original_duration == -1) + return + duration = world.time + original_duration + //clickdelay/nextmove modifiers! /datum/status_effect/proc/nextmove_modifier() return 1 @@ -91,6 +97,9 @@ if(S.id == initial(S1.id) && S.status_type) if(S.status_type == STATUS_EFFECT_REPLACE) S.be_replaced() + else if(S.status_type == STATUS_EFFECT_REFRESH) + S.refresh() + return else return var/list/arguments = args.Copy() diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 2e2c21d26e8..da55eabbdc5 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -71,9 +71,6 @@ var/obj/item/choice_beacon/music/B = new(get_turf(H)) H.put_in_hands(B) H.equip_to_slot(B, SLOT_IN_BACKPACK) - var/obj/item/musicaltuner/musicaltuner = new(get_turf(H)) - H.put_in_hands(musicaltuner) - H.equip_to_slot(musicaltuner, SLOT_IN_BACKPACK) H.regenerate_icons() /datum/quirk/night_vision diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index d42f5881b58..ea942d053ca 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -10,18 +10,14 @@ var/datum/song/handheld/song var/instrumentId = "generic" var/instrumentExt = "mid" - var/tune_time = 0 /obj/item/instrument/Initialize() . = ..() song = new(instrumentId, src, instrumentExt) /obj/item/instrument/Destroy() - if (tune_time) - STOP_PROCESSING(SSobj, src) - qdel(song) - song = null - return ..() + QDEL_NULL(song) + . = ..() /obj/item/instrument/suicide_act(mob/user) user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like [user.p_theyre()] trying to commit suicide!") @@ -48,34 +44,6 @@ user.set_machine(src) song.interact(user) -/obj/item/instrument/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/musicaltuner)) - var/mob/living/carbon/human/H = user - if (H.has_trait(TRAIT_MUSICIAN)) - if (!tune_time) - H.visible_message("[H] tunes [src] to perfection!", "You tune [src] to perfection!") - tune_time = 300 - START_PROCESSING(SSobj, src) - else - to_chat(H, "[src] is already well tuned!") - else - to_chat(H, "You have no idea how to use this.") - -/obj/item/instrument/process() - if (tune_time) - if (song.playing) - for (var/mob/living/M in song.hearing_mobs) - M.dizziness = max(0,M.dizziness-2) - M.jitteriness = max(0,M.jitteriness-2) - M.confused = max(M.confused-1) - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "goodmusic", /datum/mood_event/goodmusic) - tune_time-- - else - if (!tune_time) - if (song.playing) - loc.visible_message("[src] starts sounding a little off...") - STOP_PROCESSING(SSobj, src) - /obj/item/instrument/violin name = "space violin" desc = "A wooden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" @@ -255,17 +223,6 @@ /// -/obj/item/musicaltuner - name = "musical tuner" - desc = "A device for tuning musical instruments both manual and electronic alike." - icon = 'icons/obj/device.dmi' - icon_state = "musicaltuner" - slot_flags = ITEM_SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - item_state = "electronic" - lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - /obj/item/choice_beacon/music name = "instrument delivery beacon" desc = "Summon your tool of art." diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index c99d627a64b..592d11f8043 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -33,7 +33,7 @@ // note is a number from 1-7 for A-G // acc is either "b", "n", or "#" // oct is 1-8 (or 9 for C) -/datum/song/proc/playnote(note, acc as text, oct) +/datum/song/proc/playnote(mob/user, note, acc as text, oct) // handle accidental -> B<>C of E<>F if(acc == "b" && (note == 3 || note == 6)) // C or F if(note == 3) @@ -67,14 +67,17 @@ if((world.time - MUSICIAN_HEARCHECK_MINDELAY) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) for(var/mob/M in get_hearers_in_view(15, source)) - if(!M.client || !(M.client.prefs.toggles & SOUND_INSTRUMENTS)) - continue LAZYADD(hearing_mobs, M) last_hearcheck = world.time var/sound/music_played = sound(soundfile) for(var/i in hearing_mobs) var/mob/M = i + if(user.has_trait(TRAIT_MUSICIAN) && isliving(M)) + var/mob/living/L = M + L.apply_status_effect(STATUS_EFFECT_GOOD_MUSIC) + if(!M.client || !(M.client.prefs.toggles & SOUND_INSTRUMENTS)) + continue M.playsound_local(source, null, 100, falloff = 5, S = music_played) /datum/song/proc/updateDialog(mob/user) @@ -127,7 +130,7 @@ cur_acc[cur_note] = "b" else if(prob(75)) cur_acc[cur_note] = "n" - playnote(cur_note, cur_acc[cur_note], cur_oct[cur_note]) + playnote(user, cur_note, cur_acc[cur_note], cur_oct[cur_note]) if(notes.len >= 2 && text2num(notes[2])) sleep(sanitize_tempo(tempo / text2num(notes[2]))) else From 445bcf110be3b3b263da84a25a4d83b39f978650 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:08:06 -0800 Subject: [PATCH 47/93] Automatic changelog generation for PR #41742 [ci skip] --- html/changelogs/AutoChangeLog-pr-41742.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41742.yml diff --git a/html/changelogs/AutoChangeLog-pr-41742.yml b/html/changelogs/AutoChangeLog-pr-41742.yml new file mode 100644 index 00000000000..7aa2b09f057 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41742.yml @@ -0,0 +1,6 @@ +author: "coiax" +delete-after: True +changes: + - rscadd: "Any talented Musician can now use any instrument to lift +spirits, and ease burdens. They can now also use the space piano and minimog +to grant people the Good Music buffs, just like a handheld instrument." From 9d28bd7244844dba26ca213aca64f1295fc2eeeb Mon Sep 17 00:00:00 2001 From: Qustinnus Date: Sun, 9 Dec 2018 11:09:24 +0100 Subject: [PATCH 48/93] Crushes some Ethereal bugs and adds bloodbags for them (#41745) cl Floyd / Qustinnus add: Bloodbags for ethereal filled with liquid electricity fix: Ethereals cant clone lightbulbs anymore fix: Fixes runtime in Ethereal charge handling /cl --- code/game/objects/structures/crates_lockers/crates.dm | 1 + code/modules/cargo/packs.dm | 3 ++- .../modules/mob/living/carbon/human/species_types/ethereal.dm | 2 +- code/modules/power/lighting.dm | 1 + code/modules/reagents/reagent_containers/blood_pack.dm | 4 +++- 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index df3df8ad145..efee51a3de3 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -107,6 +107,7 @@ new /obj/item/reagent_containers/blood/OMinus(src) new /obj/item/reagent_containers/blood/OPlus(src) new /obj/item/reagent_containers/blood/lizard(src) + new /obj/item/reagent_containers/blood/ethereal(src) for(var/i in 1 to 3) new /obj/item/reagent_containers/blood/random(src) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 279bdde625c..bb920aece09 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1098,7 +1098,8 @@ /obj/item/reagent_containers/blood/BMinus, /obj/item/reagent_containers/blood/OPlus, /obj/item/reagent_containers/blood/OMinus, - /obj/item/reagent_containers/blood/lizard) + /obj/item/reagent_containers/blood/lizard, + /obj/item/reagent_containers/blood/ethereal) crate_name = "blood freezer" crate_type = /obj/structure/closet/crate/freezer diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 11fa0af37af..685561ad49a 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -7,7 +7,7 @@ attack_sound = 'sound/weapons/etherealhit.ogg' miss_sound = 'sound/weapons/etherealmiss.ogg' meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ethereal - exotic_bloodtype = "LE" //Liquid Electricity. fuck you think of something better gamer + exotic_blood = "liquidelectricity" //Liquid Electricity. fuck you think of something better gamer siemens_coeff = 0.5 //They thrive on energy brutemod = 1.25 //They're weak to punches attack_type = BURN //burn bish diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 00819694625..da878f07b5e 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -617,6 +617,7 @@ to_chat(H, "You receive some charge from the [fitting].") H.dna?.species.adjust_charge(5) return + return if(H.gloves) var/obj/item/clothing/gloves/G = H.gloves diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index a643391c627..27765be9c54 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -5,12 +5,13 @@ icon_state = "bloodpack" volume = 200 var/blood_type = null + var/unique_blood = null var/labelled = 0 /obj/item/reagent_containers/blood/Initialize() . = ..() if(blood_type != null) - reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) + reagents.add_reagent(unique_blood ? unique_blood : "blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) update_icon() /obj/item/reagent_containers/blood/on_reagent_change(changetype) @@ -71,6 +72,7 @@ /obj/item/reagent_containers/blood/ethereal blood_type = "LE" + unique_blood = "liquidelectricity" /obj/item/reagent_containers/blood/universal blood_type = "U" From a050b093524a8ff278d04aafa3617425e8ab5e4e Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:09:27 -0800 Subject: [PATCH 49/93] Automatic changelog generation for PR #41745 [ci skip] --- html/changelogs/AutoChangeLog-pr-41745.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41745.yml diff --git a/html/changelogs/AutoChangeLog-pr-41745.yml b/html/changelogs/AutoChangeLog-pr-41745.yml new file mode 100644 index 00000000000..10964a3b0e2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41745.yml @@ -0,0 +1,6 @@ +author: "Floyd / Qustinnus" +delete-after: True +changes: + - rscadd: "Bloodbags for ethereal filled with liquid electricity" + - bugfix: "Ethereals cant clone lightbulbs anymore" + - bugfix: "Fixes runtime in Ethereal charge handling" From 4b42116eb8eb86d6d9ad8165262df5a8b8f93744 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:12:23 -0800 Subject: [PATCH 50/93] Automatic changelog generation for PR #41767 [ci skip] --- html/changelogs/AutoChangeLog-pr-41767.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41767.yml diff --git a/html/changelogs/AutoChangeLog-pr-41767.yml b/html/changelogs/AutoChangeLog-pr-41767.yml new file mode 100644 index 00000000000..a7bcaffbcd5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41767.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "Sofas have been added. Make 'em with metal, 1 sheet each." From 4a0518994c4a6dfe0e6b949ddf259f7322e13101 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:13:12 -0800 Subject: [PATCH 51/93] Automatic changelog generation for PR #41765 [ci skip] --- html/changelogs/AutoChangeLog-pr-41765.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41765.yml diff --git a/html/changelogs/AutoChangeLog-pr-41765.yml b/html/changelogs/AutoChangeLog-pr-41765.yml new file mode 100644 index 00000000000..4f09aa97d59 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41765.yml @@ -0,0 +1,4 @@ +author: "Nich" +delete-after: True +changes: + - rscadd: "Radials now have tooltips on hover" From fb7b60546462381f915dd92de4f831eec2dade89 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:15:13 -0800 Subject: [PATCH 52/93] Automatic changelog generation for PR #41779 [ci skip] --- html/changelogs/AutoChangeLog-pr-41779.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41779.yml diff --git a/html/changelogs/AutoChangeLog-pr-41779.yml b/html/changelogs/AutoChangeLog-pr-41779.yml new file mode 100644 index 00000000000..837e1740e30 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41779.yml @@ -0,0 +1,4 @@ +author: "MMMiracles" +delete-after: True +changes: + - bugfix: "Fixes signalers not working properly on paystands" From d026e886b129469c9b44671798365956a2058edb Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:15:45 -0800 Subject: [PATCH 53/93] Automatic changelog generation for PR #41777 [ci skip] --- html/changelogs/AutoChangeLog-pr-41777.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41777.yml diff --git a/html/changelogs/AutoChangeLog-pr-41777.yml b/html/changelogs/AutoChangeLog-pr-41777.yml new file mode 100644 index 00000000000..bf5a802921f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41777.yml @@ -0,0 +1,4 @@ +author: "coiax" +delete-after: True +changes: + - bugfix: "Fixes bug where Curse of Madness was not giving proper brain traumas." From fe4c77b4cbdd91fa17500ebeb7e5b01c3d1c690c Mon Sep 17 00:00:00 2001 From: XDTM Date: Sun, 9 Dec 2018 11:19:59 +0100 Subject: [PATCH 54/93] Vegetarian Quirk (#41800) cl XDTM add: Added the Vegetarian quirk, which costs 0 points and makes you dislike meat. /cl Because why not? Also, it could give a reason for the chef to prepare vegetarian dishes instead of the usual stuff. --- .../subsystem/processing/quirks.dm | 2 +- code/datums/traits/neutral.dm | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 631a2921123..0dfe24d9cef 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -16,7 +16,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks) /datum/controller/subsystem/processing/quirks/Initialize(timeofday) if(!quirks.len) SetupQuirks() - quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion")) + quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia","Vegetarian","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion")) return ..() /datum/controller/subsystem/processing/quirks/proc/SetupQuirks() diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 4fc30de473f..43c346dbd39 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -10,6 +10,28 @@ lose_text = "You can taste again!" medical_record_text = "Patient suffers from ageusia and is incapable of tasting food or reagents." +/datum/quirk/vegetarian + name = "Vegetarian" + desc = "You find the idea of eating meat morally and physically repulsive." + value = 0 + gain_text = "You feel repulsion at the idea of eating meat." + lose_text = "You feel like eating meat isn't that bad." + +/datum/quirk/vegetarian/add() + var/mob/living/carbon/human/H = quirk_holder + var/datum/species/species = H.dna.species + species.liked_food &= ~MEAT + species.disliked_food |= MEAT + +/datum/quirk/vegetarian/remove() + var/mob/living/carbon/human/H = quirk_holder + if(H) + var/datum/species/species = H.dna.species + if(initial(species.liked_food) & MEAT) + species.liked_food |= MEAT + if(!initial(species.disliked_food) & MEAT) + species.disliked_food &= ~MEAT + /datum/quirk/pineapple_liker name = "Ananas Affinity" desc = "You find yourself greatly enjoying fruits of the ananas genus. You can't seem to ever get enough of their sweet goodness!" From b19493d5d454c49655a523e73159fa026263e092 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:20:02 -0800 Subject: [PATCH 55/93] Automatic changelog generation for PR #41800 [ci skip] --- html/changelogs/AutoChangeLog-pr-41800.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41800.yml diff --git a/html/changelogs/AutoChangeLog-pr-41800.yml b/html/changelogs/AutoChangeLog-pr-41800.yml new file mode 100644 index 00000000000..a2a0e08c652 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41800.yml @@ -0,0 +1,4 @@ +author: "XDTM" +delete-after: True +changes: + - rscadd: "Added the Vegetarian quirk, which costs 0 points and makes you dislike meat." From b1fc4027dbb10475eb19c06c717a8d7892c71529 Mon Sep 17 00:00:00 2001 From: MetroidLover <31149809+Metroidlover@users.noreply.github.com> Date: Sun, 9 Dec 2018 02:21:13 -0800 Subject: [PATCH 56/93] Abductor Uniforms (#41793) cl MetroidLover add: New Abductor uniforms /cl Try 2 due to horrendous incompetence on my part. Saw these over on Oracle before it's plug got pulled, and I thought they looked nice and would be better than grey jumpsuits --- .../abductor/equipment/abduction_gear.dm | 8 ++++++++ .../abductor/equipment/abduction_outfits.dm | 2 +- icons/mob/uniform.dmi | Bin 243650 -> 244693 bytes icons/obj/clothing/uniforms.dmi | Bin 66916 -> 67244 bytes 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 5249bc04db3..126a8146dad 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -787,3 +787,11 @@ Congratulations! You are now trained for invasive xenobiology research!"} airlock_type = /obj/machinery/door/airlock/abductor material_type = /obj/item/stack/sheet/mineral/abductor noglass = TRUE + +/obj/item/clothing/under/abductor + desc = "The most advanced form of jumpsuit known to reality, looks uncomfortable." + name = "alien jumpsuit" + icon_state = "abductor-suit" + item_state = "bl_suit" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0) + can_adjust = 0 diff --git a/code/modules/antagonists/abductor/equipment/abduction_outfits.dm b/code/modules/antagonists/abductor/equipment/abduction_outfits.dm index 1349569ccb9..009598d508a 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_outfits.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_outfits.dm @@ -1,6 +1,6 @@ /datum/outfit/abductor name = "Abductor Basic" - uniform = /obj/item/clothing/under/color/grey //they're greys gettit + uniform = /obj/item/clothing/under/abductor shoes = /obj/item/clothing/shoes/combat back = /obj/item/storage/backpack ears = /obj/item/radio/headset/abductor diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 1faed145a2777b4fbe63c58c9d58b7a40544852a..936f968f38ade4e5b73148e41ffae44ad2664fef 100644 GIT binary patch delta 22993 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 delta 21941 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 delta 13293 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 Date: Sun, 9 Dec 2018 02:21:16 -0800 Subject: [PATCH 57/93] Automatic changelog generation for PR #41793 [ci skip] --- html/changelogs/AutoChangeLog-pr-41793.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41793.yml diff --git a/html/changelogs/AutoChangeLog-pr-41793.yml b/html/changelogs/AutoChangeLog-pr-41793.yml new file mode 100644 index 00000000000..0392a454545 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41793.yml @@ -0,0 +1,4 @@ +author: "MetroidLover" +delete-after: True +changes: + - rscadd: "New Abductor uniforms" From 29ecfa47bf3c67d2ff3f04f0d6c0ed4402600f88 Mon Sep 17 00:00:00 2001 From: Time-Green Date: Sun, 9 Dec 2018 11:26:04 +0100 Subject: [PATCH 58/93] [READY] Goon Genetics (#41258) GENETICS The random hexadecimal rng game has been replaced with gene sequencing from goon. Adds mutation activators and mutators You can now store mutations Everyone now has their own set of unique mutations Limited mutations per person to 8 (including one always being monkey) Adds race specific mutations (See fire breathing for lizads) You can inspect discovered mutations, undiscovered mutations use an alias to recognize them by Adds a sequence analyzer. Can be used to scan someones genes sequence. Useful for determing what mutations they can safely have and or collecting data for very difficult sequences Adds mutation combining. It's currently only RADIOACTIVE + STRONG = HULK (So yes you will now need 2 mutations for to get hulk) Adds several other mutations. Telepathy, firebreath, glowy, radioactive and strength cl Time-Green add: Goon genetics! add: More mutations! Fire breath for lizards! Radioactive! Telepathy! Glowy! Strength, though its cosmetic and should be combined with radioactivity instead! Fiery sweat! add: Adds void magnet mutation by @tralezab ! /cl --- code/__DEFINES/DNA.dm | 71 ++- code/__HELPERS/dna.dm | 8 + code/_globalvars/genetics.dm | 8 +- code/_onclick/other_mobs.dm | 4 +- code/controllers/subsystem/atoms.dm | 23 +- code/datums/brain_damage/mild.dm | 2 +- code/datums/components/spill.dm | 112 ++-- code/datums/datacore.dm | 1 - .../diseases/advance/symptoms/genetics.dm | 6 +- code/datums/dna.dm | 270 +++++++-- code/datums/footstep.dm | 196 +++---- code/datums/mutations.dm | 115 ++-- code/datums/mutations/actions.dm | 116 ++++ code/datums/mutations/body.dm | 83 ++- code/datums/mutations/chameleon.dm | 11 +- code/datums/mutations/cold_resistance.dm | 34 +- code/datums/mutations/combined.dm | 16 + code/datums/mutations/hulk.dm | 11 +- code/datums/mutations/radioactive.dm | 19 + code/datums/mutations/sight.dm | 15 +- code/datums/mutations/speech.dm | 21 +- code/datums/mutations/telekinesis.dm | 14 +- .../weather/weather_types/radiation_storm.dm | 4 +- code/game/machinery/cloning.dm | 10 +- code/game/machinery/computer/cloning.dm | 8 +- code/game/machinery/computer/dna_console.dm | 532 ++++++++++++++---- code/game/machinery/exp_cloner.dm | 6 +- .../circuitboards/machine_circuitboards.dm | 6 +- code/game/objects/items/devices/scanners.dm | 60 ++ code/game/objects/items/dna_injector.dm | 161 +++--- .../changeling/powers/chameleon_skin.dm | 13 +- code/modules/antagonists/revenant/revenant.dm | 2 +- .../revenant/revenant_abilities.dm | 30 +- .../antagonists/wishgranter/wishgranter.dm | 2 +- .../awaymissions/mission_code/wildwest.dm | 2 +- code/modules/client/asset_cache.dm | 7 + code/modules/events/disease_outbreak.dm | 2 +- code/modules/jobs/job_types/medical.dm | 1 + code/modules/mob/living/carbon/carbon.dm | 2 +- .../mob/living/carbon/human/human_movement.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 2 +- .../mob/living/carbon/human/species.dm | 7 +- .../human/species_types/lizardpeople.dm | 1 + .../carbon/human/species_types/podpeople.dm | 4 +- code/modules/mob/living/carbon/life.dm | 7 +- code/modules/mob/living/carbon/monkey/life.dm | 2 +- code/modules/mob/transform_procs.dm | 10 +- .../chemistry/reagents/toxin_reagents.dm | 4 +- .../research/designs/medical_designs.dm | 10 + code/modules/research/techweb/_techweb.dm | 1 + code/modules/research/techweb/all_nodes.dm | 2 +- code/modules/spells/spell_types/genetic.dm | 2 +- code/modules/spells/spell_types/telepathy.dm | 30 + .../surgery/bodyparts/dismemberment.dm | 2 +- code/modules/tgs/core/tgs_version.dm | 44 +- code/modules/tgs/v4/commands.dm | 138 ++--- code/modules/unit_tests/component_tests.dm | 22 +- html/browser/common.css | 1 - html/browser/scannernew.css | 23 +- html/dna_discovered.png | Bin 0 -> 1715 bytes html/dna_extra.png | Bin 0 -> 1726 bytes html/dna_undiscovered.png | Bin 0 -> 1758 bytes icons/effects/genetics.dmi | Bin 20768 -> 22607 bytes icons/mob/actions/actions_genetic.dmi | Bin 0 -> 413 bytes icons/mob/actions/actions_spells.dmi | Bin 21434 -> 22440 bytes icons/obj/device.dmi | Bin 47436 -> 47768 bytes tgstation.dme | 5 + 67 files changed, 1574 insertions(+), 749 deletions(-) create mode 100644 code/__HELPERS/dna.dm create mode 100644 code/datums/mutations/actions.dm create mode 100644 code/datums/mutations/combined.dm create mode 100644 code/datums/mutations/radioactive.dm create mode 100644 code/modules/spells/spell_types/telepathy.dm create mode 100644 html/dna_discovered.png create mode 100644 html/dna_extra.png create mode 100644 html/dna_undiscovered.png create mode 100644 icons/mob/actions/actions_genetic.dmi diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index a093142f02f..97a1654a424 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -2,32 +2,39 @@ #define CHECK_DNA_AND_SPECIES(C) if((!(C.dna)) || (!(C.dna.species))) return -//Defines copying names of mutations in all cases, make sure to change this if you change mutation's name -#define HULK "Hulk" -#define XRAY "X Ray Vision" -#define COLDRES "Cold Resistance" -#define TK "Telekinesis" -#define NERVOUS "Nervousness" -#define EPILEPSY "Epilepsy" -#define MUTATE "Unstable DNA" -#define COUGH "Cough" -#define DWARFISM "Dwarfism" -#define CLOWNMUT "Clumsiness" -#define TOURETTES "Tourettes Syndrome" -#define DEAFMUT "Deafness" -#define BLINDMUT "Blindness" -#define RACEMUT "Monkified" -#define BADSIGHT "Near Sightness" -#define LASEREYES "Laser Eyes" -#define CHAMELEON "Chameleon" -#define WACKY "Wacky" -#define MUT_MUTE "Mute" -#define SMILE "Smile" -#define STONER "Stoner" -#define UNINTELLIGIBLE "Unintelligible" -#define SWEDISH "Swedish" -#define CHAV "Chav" -#define ELVIS "Elvis" +//Defines copying names of mutations in all cases, make sure to change this if you change mutation's type +#define HULK /datum/mutation/human/hulk +#define XRAY /datum/mutation/human/x_ray +#define SPACEMUT /datum/mutation/human/space_adaptation +#define TK /datum/mutation/human/telekinesis +#define NERVOUS /datum/mutation/human/nervousness +#define EPILEPSY /datum/mutation/human/epilepsy +#define MUTATE /datum/mutation/human/bad_dna +#define COUGH /datum/mutation/human/cough +#define DWARFISM /datum/mutation/human/dwarfism +#define CLOWNMUT /datum/mutation/human/clumsy +#define TOURETTES /datum/mutation/human/tourettes +#define DEAFMUT /datum/mutation/human/deaf +#define BLINDMUT /datum/mutation/human/blind +#define RACEMUT /datum/mutation/human/race +#define BADSIGHT /datum/mutation/human/nearsight +#define LASEREYES /datum/mutation/human/laser_eyes +#define CHAMELEON /datum/mutation/human/chameleon +#define WACKY /datum/mutation/human/wacky +#define MUT_MUTE /datum/mutation/human/mute +#define SMILE /datum/mutation/human/smile +#define STONER /datum/mutation/human/stoner +#define UNINTELLIGIBLE /datum/mutation/human/unintelligible +#define SWEDISH /datum/mutation/human/swedish +#define CHAV /datum/mutation/human/chav +#define ELVIS /datum/mutation/human/elvis +#define RADIOACTIVE /datum/mutation/human/radioactive +#define GLOWY /datum/mutation/human/glow +#define TELEPATHY /datum/mutation/human/telepath +#define FIREBREATH /datum/mutation/human/firebreath +#define VOID /datum/mutation/human/void +#define STRONG /datum/mutation/human/strong +#define FIRESWEAT /datum/mutation/human/fire #define UI_CHANGED "ui changed" #define UE_CHANGED "ue changed" @@ -39,10 +46,13 @@ //Types of usual mutations #define POSITIVE 1 #define NEGATIVE 2 -#define MINOR_NEGATIVE 3 +#define MINOR_NEGATIVE 4 -//Mutations that cant be taken from genetics and are not in SE -#define NON_SCANNABLE -1 + +//Mutation classes. Normal being on them, extra being additional mutations with instability and other being stuff you dont want people to fuck with like wizard mutate +#define MUT_NORMAL 1 +#define MUT_EXTRA 2 +#define MUT_OTHER 3 //DNA - Because fuck you and your magic numbers being all over the codebase. #define DNA_BLOCK_SIZE 3 @@ -56,7 +66,8 @@ #define DNA_FACIAL_HAIR_STYLE_BLOCK 6 #define DNA_HAIR_STYLE_BLOCK 7 -#define DNA_STRUC_ENZYMES_BLOCKS 18 +#define DNA_SEQUENCE_LENGTH 4 +#define DNA_MUTATION_BLOCKS 8 #define DNA_UNIQUE_ENZYMES_LEN 32 //Transformation proc stuff diff --git a/code/__HELPERS/dna.dm b/code/__HELPERS/dna.dm new file mode 100644 index 00000000000..47681f65e65 --- /dev/null +++ b/code/__HELPERS/dna.dm @@ -0,0 +1,8 @@ +////////////////////////////////////////////////////////// +//A bunch of helpers to make genetics less of a headache// +////////////////////////////////////////////////////////// + +#define get_initialized_mutation(A) GLOB.all_mutations[A] +#define mutation_in_sequence(A, B) ((A) in B.mutation_index) +#define get_gene_string(A, B) (B.mutation_index[A]) +#define get_sequence(A) (GLOB.full_sequences[A]) \ No newline at end of file diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm index a0557e8e1bc..c95743e9dab 100644 --- a/code/_globalvars/genetics.dm +++ b/code/_globalvars/genetics.dm @@ -21,8 +21,10 @@ GLOBAL_LIST(op_se_blocks) GLOBAL_VAR(NULLED_SE) GLOBAL_VAR(NULLED_UI) -GLOBAL_LIST_EMPTY(global_mutations) // list of hidden mutation things - +GLOBAL_LIST_EMPTY(all_mutations) +GLOBAL_LIST_EMPTY(full_sequences) GLOBAL_LIST_EMPTY(bad_mutations) GLOBAL_LIST_EMPTY(good_mutations) -GLOBAL_LIST_EMPTY(not_good_mutations) \ No newline at end of file +GLOBAL_LIST_EMPTY(not_good_mutations) + +GLOBAL_LIST_EMPTY(mutation_recipes) \ No newline at end of file diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 30e6883d249..62fbb66e05d 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -20,7 +20,7 @@ var/override = 0 for(var/datum/mutation/human/HM in dna.mutations) - override += HM.on_attack_hand(src, A, proximity) + override += HM.on_attack_hand(A, proximity) if(override) return @@ -93,7 +93,7 @@ return for(var/datum/mutation/human/HM in dna.mutations) - HM.on_ranged_attack(src, A, mouseparams) + HM.on_ranged_attack(A, mouseparams) if(isturf(A) && get_dist(src,A) <= 1) src.Move_Pulled(A) diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 58b67d22641..38a18112508 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -16,7 +16,7 @@ SUBSYSTEM_DEF(atoms) /datum/controller/subsystem/atoms/Initialize(timeofday) GLOB.fire_overlay.appearance_flags = RESET_COLOR - setupGenetics() //to set the mutations' place in structural enzymes, so monkey.initialize() knows where to put the monkey mutation. + setupGenetics() //to set the mutations' sequence initialized = INITIALIZATION_INNEW_MAPLOAD InitializeAtoms() return ..() @@ -106,16 +106,19 @@ SUBSYSTEM_DEF(atoms) BadInitializeCalls = SSatoms.BadInitializeCalls /datum/controller/subsystem/atoms/proc/setupGenetics() - var/list/avnums = new /list(DNA_STRUC_ENZYMES_BLOCKS) - for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++) - avnums[i] = i - CHECK_TICK - - for(var/A in subtypesof(/datum/mutation/human)) - var/datum/mutation/human/B = new A() - if(B.dna_block == NON_SCANNABLE) + var/list/mutations = subtypesof(/datum/mutation/human) + shuffle_inplace(mutations) + for(var/A in subtypesof(/datum/generecipe)) + var/datum/generecipe/GR = A + GLOB.mutation_recipes[initial(GR.required)] = initial(GR.result) + for(var/i in 1 to LAZYLEN(mutations)) + var/path = mutations[i] //byond gets pissy when we do it in one line + var/datum/mutation/human/B = new path () + B.alias = "Mutation #[i]" + GLOB.all_mutations[B.type] = B + GLOB.full_sequences[B.type] = generate_gene_sequence(B.blocks) + if(B.locked) continue - B.dna_block = pick_n_take(avnums) if(B.quality == POSITIVE) GLOB.good_mutations |= B else if(B.quality == NEGATIVE) diff --git a/code/datums/brain_damage/mild.dm b/code/datums/brain_damage/mild.dm index 72d7adab8d6..9e7ca54122e 100644 --- a/code/datums/brain_damage/mild.dm +++ b/code/datums/brain_damage/mild.dm @@ -73,7 +73,7 @@ //no fiddling with genetics to get out of this one /datum/brain_trauma/mild/speech_impediment/on_life() - if(!(GLOB.mutations_list[UNINTELLIGIBLE] in owner.dna.mutations)) + if(!(owner.dna.check_mutation(UNINTELLIGIBLE))) on_gain() ..() diff --git a/code/datums/components/spill.dm b/code/datums/components/spill.dm index ee189e4d9de..c9a750e069e 100644 --- a/code/datums/components/spill.dm +++ b/code/datums/components/spill.dm @@ -1,56 +1,56 @@ -// This component is for forcing strange things into your pocket that fall out if you fall down -// Yes this exists purely for the spaghetti meme - -/datum/component/spill - var/preexisting_item_flags - - var/list/droptext - var/list/dropsound - -// droptext is an arglist for visible_message -// dropsound is a list of potential sounds that gets picked from -/datum/component/spill/Initialize(list/_droptext, list/_dropsound) - if(!isitem(parent)) - return COMPONENT_INCOMPATIBLE - - if(_droptext && !islist(_droptext)) - _droptext = list(_droptext) - droptext = _droptext - - if(_dropsound && !islist(_dropsound)) - _dropsound = list(_dropsound) - dropsound = _dropsound - -/datum/component/spill/PostTransfer() - if(!isitem(parent)) - return COMPONENT_INCOMPATIBLE - -/datum/component/spill/RegisterWithParent() - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip_react) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/drop_react) - var/obj/item/master = parent - preexisting_item_flags = master.item_flags - master.item_flags |= ITEM_SLOT_POCKET - -/datum/component/spill/UnregisterFromParent() - UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) - var/obj/item/master = parent - if(!(preexisting_item_flags & ITEM_SLOT_POCKET)) - master.item_flags &= ~ITEM_SLOT_POCKET - -/datum/component/spill/proc/equip_react(obj/item/source, mob/equipper, slot) - if(slot == SLOT_L_STORE || slot == SLOT_R_STORE) - RegisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN, .proc/knockdown_react, TRUE) - else - UnregisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN) - -/datum/component/spill/proc/drop_react(obj/item/source, mob/dropper) - UnregisterSignal(dropper, COMSIG_LIVING_STATUS_KNOCKDOWN) - -/datum/component/spill/proc/knockdown_react(mob/living/fool) - var/obj/item/master = parent - fool.dropItemToGround(master) - if(droptext) - fool.visible_message(arglist(droptext)) - if(dropsound) - playsound(master, pick(dropsound), 30) +// This component is for forcing strange things into your pocket that fall out if you fall down +// Yes this exists purely for the spaghetti meme + +/datum/component/spill + var/preexisting_item_flags + + var/list/droptext + var/list/dropsound + +// droptext is an arglist for visible_message +// dropsound is a list of potential sounds that gets picked from +/datum/component/spill/Initialize(list/_droptext, list/_dropsound) + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + if(_droptext && !islist(_droptext)) + _droptext = list(_droptext) + droptext = _droptext + + if(_dropsound && !islist(_dropsound)) + _dropsound = list(_dropsound) + dropsound = _dropsound + +/datum/component/spill/PostTransfer() + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/spill/RegisterWithParent() + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip_react) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/drop_react) + var/obj/item/master = parent + preexisting_item_flags = master.item_flags + master.item_flags |= ITEM_SLOT_POCKET + +/datum/component/spill/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) + var/obj/item/master = parent + if(!(preexisting_item_flags & ITEM_SLOT_POCKET)) + master.item_flags &= ~ITEM_SLOT_POCKET + +/datum/component/spill/proc/equip_react(obj/item/source, mob/equipper, slot) + if(slot == SLOT_L_STORE || slot == SLOT_R_STORE) + RegisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN, .proc/knockdown_react, TRUE) + else + UnregisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN) + +/datum/component/spill/proc/drop_react(obj/item/source, mob/dropper) + UnregisterSignal(dropper, COMSIG_LIVING_STATUS_KNOCKDOWN) + +/datum/component/spill/proc/knockdown_react(mob/living/fool) + var/obj/item/master = parent + fool.dropItemToGround(master) + if(droptext) + fool.visible_message(arglist(droptext)) + if(dropsound) + playsound(master, pick(dropsound), 30) \ No newline at end of file diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 60bb24c8c2a..4fde3987c7b 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -277,7 +277,6 @@ L.fields["sex"] = H.gender L.fields["blood_type"] = H.dna.blood_type L.fields["b_dna"] = H.dna.unique_enzymes - L.fields["enzymes"] = H.dna.struc_enzymes L.fields["identity"] = H.dna.uni_identity L.fields["species"] = H.dna.species.type L.fields["features"] = H.dna.features diff --git a/code/datums/diseases/advance/symptoms/genetics.dm b/code/datums/diseases/advance/symptoms/genetics.dm index c01fccee134..527fb522cd4 100644 --- a/code/datums/diseases/advance/symptoms/genetics.dm +++ b/code/datums/diseases/advance/symptoms/genetics.dm @@ -58,12 +58,12 @@ Bonus symptom_delay_max = 60 if(A.properties["resistance"] >= 8) //mutate twice power = 2 - possible_mutations = (GLOB.bad_mutations | GLOB.not_good_mutations) - GLOB.mutations_list[RACEMUT] + possible_mutations = (GLOB.bad_mutations | GLOB.not_good_mutations) - GLOB.all_mutations[RACEMUT] var/mob/living/carbon/M = A.affected_mob if(M) if(!M.has_dna()) return - archived_dna = M.dna.struc_enzymes + archived_dna = M.dna.mutation_index // Give them back their old DNA when cured. /datum/symptom/genetic_mutation/End(datum/disease/advance/A) @@ -74,5 +74,5 @@ Bonus if(M && archived_dna) if(!M.has_dna()) return - M.dna.struc_enzymes = archived_dna + M.dna.mutation_index = archived_dna M.domutcheck() diff --git a/code/datums/dna.dm b/code/datums/dna.dm index be18f08ce3e..0fbf22613fc 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -2,17 +2,19 @@ /////////////////////////// DNA DATUM /datum/dna var/unique_enzymes - var/struc_enzymes var/uni_identity var/blood_type var/datum/species/species = new /datum/species/human //The type of mutant race the player is if applicable (i.e. potato-man) var/list/features = list("FFF") //first value is mutant color var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings, var/list/mutations = list() //All mutations are from now on here - var/list/temporary_mutations = list() //Timers for temporary mutations + var/list/temporary_mutations = list() //Temporary changes to the UE var/list/previous = list() //For temporary name/ui/ue/blood_type modifications var/mob/living/holder var/delete_species = TRUE //Set to FALSE when a body is scanned by a cloner to fix #38875 + var/mutation_index[DNA_MUTATION_BLOCKS] //List of which mutations this carbon has and its assigned block + var/stability = 100 + var/scrambled = FALSE //Did we take something like mutagen? In that case we cant get our genes scanned to instantly cheese all the powers. /datum/dna/New(mob/living/new_holder) if(istype(new_holder)) @@ -45,11 +47,11 @@ destination.dna.real_name = real_name destination.dna.temporary_mutations = temporary_mutations.Copy() if(transfer_SE) - destination.dna.struc_enzymes = struc_enzymes + destination.dna.mutation_index = mutation_index /datum/dna/proc/copy_dna(datum/dna/new_dna) new_dna.unique_enzymes = unique_enzymes - new_dna.struc_enzymes = struc_enzymes + new_dna.mutation_index = mutation_index new_dna.uni_identity = uni_identity new_dna.blood_type = blood_type new_dna.features = features.Copy() @@ -57,26 +59,28 @@ new_dna.real_name = real_name new_dna.mutations = mutations.Copy() -/datum/dna/proc/add_mutation(mutation_name) - var/datum/mutation/human/HM = GLOB.mutations_list[mutation_name] - HM.on_acquiring(holder) +//See mutation.dm for what 'class' does. 'time' is time till it removes itself in decimals. 0 for no timer +/datum/dna/proc/add_mutation(mutation_type, class = MUT_OTHER, time) + if(get_mutation(mutation_type)) + return + force_give(new mutation_type (class, time)) -/datum/dna/proc/remove_mutation(mutation_name) - var/datum/mutation/human/HM = GLOB.mutations_list[mutation_name] - HM.on_losing(holder) +/datum/dna/proc/remove_mutation(mutation_type) + force_lose(get_mutation(mutation_type)) -/datum/dna/proc/check_mutation(mutation_name) - var/datum/mutation/human/HM = GLOB.mutations_list[mutation_name] - return mutations.Find(HM) +/datum/dna/proc/check_mutation(mutation_type) + return get_mutation(mutation_type) -/datum/dna/proc/remove_all_mutations() - remove_mutation_group(mutations) +/datum/dna/proc/remove_all_mutations(list/classes = list(MUT_NORMAL, MUT_EXTRA, MUT_OTHER)) + remove_mutation_group(mutations, classes) + scrambled = FALSE -/datum/dna/proc/remove_mutation_group(list/group) +/datum/dna/proc/remove_mutation_group(list/group, list/classes = list(MUT_NORMAL, MUT_EXTRA, MUT_OTHER)) if(!group) return for(var/datum/mutation/human/HM in group) - HM.force_lose(holder) + if(HM.class in classes) + force_lose(HM) /datum/dna/proc/generate_uni_identity() . = "" @@ -103,19 +107,49 @@ . += random_string(DNA_BLOCK_SIZE,GLOB.hex_characters) return . -/datum/dna/proc/generate_struc_enzymes() - var/list/sorting = new /list(DNA_STRUC_ENZYMES_BLOCKS) - var/result = "" - for(var/datum/mutation/human/A in GLOB.good_mutations + GLOB.bad_mutations + GLOB.not_good_mutations) - if(A.name == RACEMUT && ismonkey(holder)) - sorting[A.dna_block] = num2hex(A.lowest_value + rand(0, 256 * 6), DNA_BLOCK_SIZE) - mutations |= A - else - sorting[A.dna_block] = random_string(DNA_BLOCK_SIZE, list("0","1","2","3","4","5","6")) +/datum/dna/proc/generate_dna_blocks() + var/bonus + if(species && species.inert_mutation) + bonus = get_initialized_mutation(species.inert_mutation) + var/list/mutations_temp = GLOB.good_mutations + GLOB.bad_mutations + GLOB.not_good_mutations + bonus + if(!LAZYLEN(mutations_temp)) + return + mutation_index.Cut() + shuffle_inplace(mutations_temp) + if(ismonkey(holder)) + mutations |= new RACEMUT(MUT_NORMAL) + mutation_index[RACEMUT] = get_sequence(RACEMUT) + else + mutation_index[RACEMUT] = create_sequence(RACEMUT, FALSE) + for(var/i in 2 to DNA_MUTATION_BLOCKS) + var/datum/mutation/human/M = mutations_temp[i] + mutation_index[M.type] = create_sequence(M.type, FALSE,M.difficulty) + shuffle_inplace(mutation_index) - for(var/B in sorting) - result += B - return result +//Used to generate original gene sequences for every mutation +/proc/generate_gene_sequence(length=4) + var/static/list/active_sequences = list("AT","TA","GC","CG") + var/sequence + for(var/i in 1 to length*DNA_SEQUENCE_LENGTH) + sequence += pick(active_sequences) + return sequence + +//Used to create a chipped gene sequence +/proc/create_sequence(mutation, active, difficulty) + if(!difficulty) + var/datum/mutation/human/A = get_initialized_mutation(mutation) //leaves the possibility to change difficulty mid-round + if(A) + return + difficulty = A.difficulty + difficulty += rand(-2,4) + var/sequence = get_sequence(mutation) + if(active) + return sequence + while(difficulty) + var/randnum = rand(1, length(sequence)) + sequence = copytext(sequence, 1, randnum) + "X" + copytext(sequence, randnum+1, length(sequence)+1) + difficulty-- + return sequence /datum/dna/proc/generate_unique_enzymes() . = "" @@ -146,6 +180,21 @@ if(DNA_HAIR_STYLE_BLOCK) setblock(uni_identity, blocknumber, construct_block(GLOB.hair_styles_list.Find(H.hair_style), GLOB.hair_styles_list.len)) +//Please use add_mutation or activate_mutation instead +/datum/dna/proc/force_give(datum/mutation/human/HM) + if(holder && HM) + if(HM.class == MUT_NORMAL) + set_se(1, HM) + . = HM.on_acquiring(holder) + if(.) + qdel(HM) + +//Use remove_mutation instead +/datum/dna/proc/force_lose(datum/mutation/human/HM) + if(holder && (HM in mutations)) + set_se(0, HM) + return HM.on_losing(holder) + /datum/dna/proc/mutations_say_mods(message) if(message) for(var/datum/mutation/human/M in mutations) @@ -166,11 +215,76 @@ /datum/dna/proc/is_same_as(datum/dna/D) - if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name) + if(uni_identity == D.uni_identity && mutation_index == D.mutation_index && real_name == D.real_name) if(species.type == D.species.type && features == D.features && blood_type == D.blood_type) return 1 return 0 +/datum/dna/proc/update_instability(alert=FALSE) + stability = 100 + for(var/datum/mutation/human/M in mutations) + if(M.class == MUT_EXTRA) + stability -= M.instability + if(holder && alert) + var/message + switch(stability) + if(90 to 70) + message = "You shiver." + if(69 to 60) + message = "You feel cold." + if(59 to 40) + message = "You feel sick." + if(39 to 20) + message = "It feels like your skin is moving." + if(19 to 1) + message = "You can feel your cells burning." + if(0 to -INFINITY) + message = "You can feel your DNA exploding, we need to do something fast!" + addtimer(CALLBACK(src, .proc/something_horrible), 600) //you've got 60 seconds to get your shit togheter + + if(message) + to_chat(holder,message) + +/datum/dna/proc/something_horrible() + if(!holder || (stability > 0)) + return + var/instability = -stability + remove_all_mutations() + stability = 100 + if(!ishuman(holder)) + holder.gib() + return + var/mob/living/carbon/human/H = holder + if(prob(max(70-instability,0))) + switch(rand(0,3)) //not complete and utter death + if(0) + H.monkeyize() + if(1) + H.gain_trauma(/datum/brain_trauma/severe/paralysis) + if(2) + H.corgize() + if(3) + to_chat(H, "Oh, we actually feel quite alright!") + else + switch(rand(0,3)) + if(0) + H.gib() + if(1) + H.dust() + + if(2) + H.death() + H.petrify(INFINITY) + if(3) + if(prob(90)) + var/obj/item/bodypart/BP = H.get_bodypart(pick(BODY_ZONE_CHEST,BODY_ZONE_HEAD)) + if(BP) + BP.dismember() + else + H.gib() + else + H.set_species(/datum/species/dullahan) + //used to update dna UI, UE, and dna.real_name. /datum/dna/proc/update_dna_identity() uni_identity = generate_uni_identity() @@ -181,7 +295,7 @@ blood_type = newblood_type unique_enzymes = generate_unique_enzymes() uni_identity = generate_uni_identity() - struc_enzymes = generate_struc_enzymes() + generate_dna_blocks() features = random_features() @@ -246,7 +360,7 @@ return dna -/mob/living/carbon/human/proc/hardset_dna(ui, se, newreal_name, newblood_type, datum/species/mrace, newfeatures) +/mob/living/carbon/human/proc/hardset_dna(ui, list/mutation_index, newreal_name, newblood_type, datum/species/mrace, newfeatures) if(newfeatures) dna.features = newfeatures @@ -267,8 +381,8 @@ dna.uni_identity = ui updateappearance(icon_update=0) - if(se) - dna.struc_enzymes = se + if(LAZYLEN(mutation_index)) + dna.mutation_index = mutation_index domutcheck() if(mrace || newfeatures || ui) @@ -311,19 +425,56 @@ /mob/proc/domutcheck() return -/mob/living/carbon/domutcheck(force_powers=0) //Set force_powers to 1 to bypass the power chance +/mob/living/carbon/domutcheck() if(!has_dna()) return - for(var/datum/mutation/human/A in GLOB.good_mutations | GLOB.bad_mutations | GLOB.not_good_mutations) - if(ismob(A.check_block(src, force_powers))) + for(var/mutation in dna.mutation_index) + if(ismob(dna.check_block(mutation))) return //we got monkeyized/humanized, this mob will be deleted, no need to continue. update_mutations_overlay() +/datum/dna/proc/check_block(mutation) + var/datum/mutation/human/HM = get_mutation(mutation) + if(check_block_string(mutation)) + if(!HM) + . = add_mutation(mutation, MUT_NORMAL) + return + return force_lose(HM) +//Return the active mutation of a type if there is one +/datum/dna/proc/get_mutation(A) + for(var/datum/mutation/human/HM in mutations) + if(HM.type == A) + return HM + +/datum/dna/proc/check_block_string(mutation) + if((LAZYLEN(mutation_index) > DNA_MUTATION_BLOCKS) || !(mutation in mutation_index)) + return 0 + return is_gene_active(mutation) + +/datum/dna/proc/is_gene_active(mutation) + return (mutation_index[mutation] == get_sequence(mutation)) + +/datum/dna/proc/set_se(on=TRUE, datum/mutation/human/HM) + if(!HM || !(HM.type in mutation_index) || (LAZYLEN(mutation_index) < DNA_MUTATION_BLOCKS)) + return + . = TRUE + if(on) + mutation_index[HM.type] = get_sequence(HM.type) + else if(get_sequence(HM.type) == mutation_index[HM.type]) + mutation_index[HM.type] = create_sequence(HM.type, FALSE, HM.difficulty) + +/datum/dna/proc/activate_mutation(mutation) + if(!mutation) + return + if(!mutation_in_sequence(mutation, src)) //cant activate what we dont have, use add_mutation + return FALSE + return add_mutation(mutation, MUT_NORMAL) /////////////////////////// DNA HELPER-PROCS ////////////////////////////// + /proc/getleftblocks(input,blocknumber,blocksize) if(blocknumber > 1) return copytext(input,1,((blocksize*blocknumber)-(blocksize-1))) @@ -343,26 +494,33 @@ /mob/living/carbon/proc/randmut(list/candidates, difficulty = 2) if(!has_dna()) return - var/datum/mutation/human/num = pick(candidates) - . = num.force_give(src) + var/mutation = pick(candidates) + . = dna.add_mutation(mutation) -/mob/living/carbon/proc/randmutb() +/mob/living/carbon/proc/easy_randmut(quality = POSITIVE + NEGATIVE + MINOR_NEGATIVE, scrambled = TRUE, sequence = TRUE, exclude_monkey = TRUE) if(!has_dna()) return - var/datum/mutation/human/HM = pick((GLOB.bad_mutations | GLOB.not_good_mutations) - GLOB.mutations_list[RACEMUT]) - . = HM.force_give(src) - -/mob/living/carbon/proc/randmutg() - if(!has_dna()) - return - var/datum/mutation/human/HM = pick(GLOB.good_mutations) - . = HM.force_give(src) - -/mob/living/carbon/proc/randmutvg() - if(!has_dna()) - return - var/datum/mutation/human/HM = pick((GLOB.good_mutations) - GLOB.mutations_list[HULK] - GLOB.mutations_list[DWARFISM]) - . = HM.force_give(src) + var/list/mutations = list() + if(quality & POSITIVE) + mutations += GLOB.good_mutations + if(quality & NEGATIVE) + mutations += GLOB.bad_mutations + if(quality & MINOR_NEGATIVE) + mutations += GLOB.not_good_mutations + var/list/possible = list() + for(var/datum/mutation/human/A in mutations) + if((!sequence || mutation_in_sequence(A.type, dna)) && !dna.get_mutation(A.type)) + possible += A.type + if(exclude_monkey) + possible.Remove(RACEMUT) + if(LAZYLEN(possible)) + var/mutation = pick(possible) + . = dna.activate_mutation(mutation) + if(scrambled) + var/datum/mutation/human/HM = dna.get_mutation(mutation) + if(HM) + HM.scrambled = TRUE + return TRUE /mob/living/carbon/proc/randmuti() if(!has_dna()) @@ -385,9 +543,9 @@ if(!M.has_dna()) return 0 if(se) - for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++) + for(var/i=1, i<=DNA_MUTATION_BLOCKS, i++) if(prob(probability)) - M.dna.struc_enzymes = setblock(M.dna.struc_enzymes, i, random_string(DNA_BLOCK_SIZE, GLOB.hex_characters)) + M.dna.generate_dna_blocks() M.domutcheck() if(ui) for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) diff --git a/code/datums/footstep.dm b/code/datums/footstep.dm index 1197a3b9dd5..f0e38ed1133 100644 --- a/code/datums/footstep.dm +++ b/code/datums/footstep.dm @@ -1,99 +1,99 @@ -/datum/component/footstep - var/steps = 0 - var/volume - var/e_range - -/datum/component/footstep/Initialize(volume_ = 0.5, e_range_ = -1) - if(!isliving(parent)) - return COMPONENT_INCOMPATIBLE - volume = volume_ - e_range = e_range_ - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/play_footstep) - -/datum/component/footstep/proc/play_footstep() - var/turf/open/T = get_turf(parent) - if(!istype(T)) - return - - var/mob/living/LM = parent - var/v = volume - var/e = e_range - if(!T.footstep || LM.buckled || !CHECK_MULTIPLE_BITFIELDS(LM.mobility_flags, MOBILITY_STAND | MOBILITY_MOVE) || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING) || (LM.stat != CONSCIOUS) || LM.incapacitated() || LM.IsStun() || LM.IsParalyzed()) - return - - if(iscarbon(LM)) - var/mob/living/carbon/C = LM - if(!C.get_bodypart(BODY_ZONE_L_LEG) && !C.get_bodypart(BODY_ZONE_R_LEG)) - return - if(ishuman(C) && C.m_intent == MOVE_INTENT_WALK) - v /= 2 - e -= 5 - steps++ - - if(steps >= 6) - steps = 0 - - if(steps % 2) - return - - if(!LM.has_gravity(T) && steps != 0) // don't need to step as often when you hop around - return - - //begin playsound shenanigans// - - //for barefooted non-clawed mobs like monkeys - if(isbarefoot(LM)) - playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), - GLOB.barefootstep[T.barefootstep][2] * v, - TRUE, - GLOB.barefootstep[T.barefootstep][3] + e) - return - - //for xenomorphs, dogs, and other clawed mobs - if(isclawfoot(LM)) - if(isalienadult(LM)) //xenos are stealthy and get quieter footsteps - v /= 3 - e -= 3 - - playsound(T, pick(GLOB.clawfootstep[T.clawfootstep][1]), - GLOB.clawfootstep[T.clawfootstep][2] * v, - TRUE, - GLOB.clawfootstep[T.clawfootstep][3] + e) - return - - //for megafauna and other large and imtimidating mobs such as the bloodminer - if(isheavyfoot(LM)) - playsound(T, pick(GLOB.heavyfootstep[T.heavyfootstep][1]), - GLOB.heavyfootstep[T.heavyfootstep][2] * v, - TRUE, - GLOB.heavyfootstep[T.heavyfootstep][3] + e) - return - - //for slimes - if(isslime(LM)) - playsound(T, 'sound/effects/footstep/slime1.ogg', 15 * v) - return - - //for (simple) humanoid mobs (clowns, russians, pirates, etc.) - if(isshoefoot(LM)) - if(!ishuman(LM)) - playsound(T, pick(GLOB.footstep[T.footstep][1]), - GLOB.footstep[T.footstep][2] * v, - TRUE, - GLOB.footstep[T.footstep][3] + e) - return - if(ishuman(LM)) //for proper humans, they're special - var/mob/living/carbon/human/H = LM - var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET)) - - if(H.shoes || feetCover) //are we wearing shoes - playsound(T, pick(GLOB.footstep[T.footstep][1]), - GLOB.footstep[T.footstep][2] * v, - TRUE, - GLOB.footstep[T.footstep][3] + e) - - if((!H.shoes && !feetCover) || !(H.mobility_flags & MOBILITY_STAND)) //are we NOT wearing shoes or are we lying/crawling (using hands to move around)? - playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), - GLOB.barefootstep[T.barefootstep][2] * v, - TRUE, +/datum/component/footstep + var/steps = 0 + var/volume + var/e_range + +/datum/component/footstep/Initialize(volume_ = 0.5, e_range_ = -1) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + volume = volume_ + e_range = e_range_ + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/play_footstep) + +/datum/component/footstep/proc/play_footstep() + var/turf/open/T = get_turf(parent) + if(!istype(T)) + return + + var/mob/living/LM = parent + var/v = volume + var/e = e_range + if(!T.footstep || LM.buckled || !CHECK_MULTIPLE_BITFIELDS(LM.mobility_flags, MOBILITY_STAND | MOBILITY_MOVE) || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING) || (LM.stat != CONSCIOUS) || LM.incapacitated() || LM.IsStun() || LM.IsParalyzed()) + return + + if(iscarbon(LM)) + var/mob/living/carbon/C = LM + if(!C.get_bodypart(BODY_ZONE_L_LEG) && !C.get_bodypart(BODY_ZONE_R_LEG)) + return + if(ishuman(C) && C.m_intent == MOVE_INTENT_WALK) + v /= 2 + e -= 5 + steps++ + + if(steps >= 6) + steps = 0 + + if(steps % 2) + return + + if(!LM.has_gravity(T) && steps != 0) // don't need to step as often when you hop around + return + + //begin playsound shenanigans// + + //for barefooted non-clawed mobs like monkeys + if(isbarefoot(LM)) + playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), + GLOB.barefootstep[T.barefootstep][2] * v, + TRUE, + GLOB.barefootstep[T.barefootstep][3] + e) + return + + //for xenomorphs, dogs, and other clawed mobs + if(isclawfoot(LM)) + if(isalienadult(LM)) //xenos are stealthy and get quieter footsteps + v /= 3 + e -= 3 + + playsound(T, pick(GLOB.clawfootstep[T.clawfootstep][1]), + GLOB.clawfootstep[T.clawfootstep][2] * v, + TRUE, + GLOB.clawfootstep[T.clawfootstep][3] + e) + return + + //for megafauna and other large and imtimidating mobs such as the bloodminer + if(isheavyfoot(LM)) + playsound(T, pick(GLOB.heavyfootstep[T.heavyfootstep][1]), + GLOB.heavyfootstep[T.heavyfootstep][2] * v, + TRUE, + GLOB.heavyfootstep[T.heavyfootstep][3] + e) + return + + //for slimes + if(isslime(LM)) + playsound(T, 'sound/effects/footstep/slime1.ogg', 15 * v) + return + + //for (simple) humanoid mobs (clowns, russians, pirates, etc.) + if(isshoefoot(LM)) + if(!ishuman(LM)) + playsound(T, pick(GLOB.footstep[T.footstep][1]), + GLOB.footstep[T.footstep][2] * v, + TRUE, + GLOB.footstep[T.footstep][3] + e) + return + if(ishuman(LM)) //for proper humans, they're special + var/mob/living/carbon/human/H = LM + var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET)) + + if(H.shoes || feetCover) //are we wearing shoes + playsound(T, pick(GLOB.footstep[T.footstep][1]), + GLOB.footstep[T.footstep][2] * v, + TRUE, + GLOB.footstep[T.footstep][3] + e) + + if((!H.shoes && !feetCover) || !(H.mobility_flags & MOBILITY_STAND)) //are we NOT wearing shoes or are we lying/crawling (using hands to move around)? + playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), + GLOB.barefootstep[T.barefootstep][2] * v, + TRUE, GLOB.barefootstep[T.barefootstep][3] + e) \ No newline at end of file diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index 7de9ca8b4a0..2c60ce69bda 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -1,93 +1,84 @@ -GLOBAL_LIST_EMPTY(mutations_list) - /datum/mutation var/name -/datum/mutation/New() - GLOB.mutations_list[name] = src - /datum/mutation/human - var/dna_block + name = "mutation" + var/desc = "A mutation." + var/locked var/quality var/get_chance = 100 var/lowest_value = 256 * 8 var/text_gain_indication = "" var/text_lose_indication = "" - var/list/mutable_appearance/visual_indicators = list() + var/static/list/mutable_appearance/visual_indicators = list() + var/obj/effect/proc_holder/spell/power var/layer_used = MUTATIONS_LAYER //which mutation layer to use var/list/species_allowed = list() //to restrict mutation to only certain species var/health_req //minimum health required to acquire the mutation var/limb_req //required limbs to acquire this mutation var/time_coeff = 1 //coefficient for timed mutations + var/datum/dna/dna + var/mob/living/carbon/human/owner + var/instability = 0 //instability the holder gets when the mutation is not native + var/blocks = 4 //Amount of those big blocks with gene sequences + var/difficulty = 8 //Amount of missing sequences. Sometimes it removes an entire pair for 2 points + var/timed = FALSE //Boolean to easily check if we're going to self destruct + var/alias //'Mutation #49', decided every round to get some form of distinction between undiscovered mutations + var/scrambled = FALSE //Wheter we can read it if it's active. To avoid cheesing with mutagen + var/class //Decides player accesibility, sorta + //MUT_NORMAL - A mutation that can be activated and deactived by completing a sequence + //MUT_EXTRA - A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before it's name in the mutation section of the dna console + //MUT_OTHER Cannot be interacted with by players through normal means. I.E. wizards mutate -/datum/mutation/human/proc/force_give(mob/living/carbon/human/owner) - set_block(owner) - . = on_acquiring(owner) +/datum/mutation/human/New(class_ = MUT_OTHER, timer) + . = ..() + class = class_ + if(timer) + addtimer(CALLBACK(src, .proc/remove), timer) + timed = TRUE -/datum/mutation/human/proc/force_lose(mob/living/carbon/human/owner) - set_block(owner, 0) - . = on_losing(owner) - -/datum/mutation/human/proc/set_se(se_string, on = 1) - if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) - return - var/before = copytext(se_string, 1, ((dna_block - 1) * DNA_BLOCK_SIZE) + 1) - var/injection = num2hex(on ? rand(lowest_value, (256 * 16) - 1) : rand(0, lowest_value - 1), DNA_BLOCK_SIZE) - var/after = copytext(se_string, (dna_block * DNA_BLOCK_SIZE) + 1, 0) - return before + injection + after - -/datum/mutation/human/proc/set_block(mob/living/carbon/owner, on = 1) - if(owner && owner.has_dna()) - owner.dna.struc_enzymes = set_se(owner.dna.struc_enzymes, on) - -/datum/mutation/human/proc/check_block_string(se_string) - if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) - return 0 - if(hex2num(getblock(se_string, dna_block)) >= lowest_value) - return 1 - -/datum/mutation/human/proc/check_block(mob/living/carbon/human/owner, force_powers=0) - if(check_block_string(owner.dna.struc_enzymes)) - if(prob(get_chance)||force_powers) - . = on_acquiring(owner) - else - . = on_losing(owner) - -/datum/mutation/human/proc/on_acquiring(mob/living/carbon/human/owner) - if(!owner || !istype(owner) || owner.stat == DEAD || (src in owner.dna.mutations)) +/datum/mutation/human/proc/on_acquiring(mob/living/carbon/human/H) + if(!H || !istype(H) || H.stat == DEAD || (src in H.dna.mutations)) return TRUE - if(species_allowed.len && !species_allowed.Find(owner.dna.species.id)) + if(species_allowed.len && !species_allowed.Find(H.dna.species.id)) return TRUE - if(health_req && owner.health < health_req) + if(health_req && H.health < health_req) return TRUE - if(limb_req && !owner.get_bodypart(limb_req)) + if(limb_req && !H.get_bodypart(limb_req)) return TRUE - owner.dna.mutations.Add(src) + owner = H + dna = H.dna + dna.mutations += src if(text_gain_indication) to_chat(owner, text_gain_indication) if(visual_indicators.len) - var/list/mut_overlay = list(get_visual_indicator(owner)) + var/list/mut_overlay = list(get_visual_indicator()) if(owner.overlays_standing[layer_used]) mut_overlay = owner.overlays_standing[layer_used] - mut_overlay |= get_visual_indicator(owner) + mut_overlay |= get_visual_indicator() owner.remove_overlay(layer_used) owner.overlays_standing[layer_used] = mut_overlay owner.apply_overlay(layer_used) + if(power) + power = new power() + power.action_background_icon_state = "bg_tech_blue_on" + power.panel = "Genetic" + owner.AddSpell(power) -/datum/mutation/human/proc/get_visual_indicator(mob/living/carbon/human/owner) +/datum/mutation/human/proc/get_visual_indicator() return -/datum/mutation/human/proc/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity) +/datum/mutation/human/proc/on_attack_hand( atom/target, proximity) return -/datum/mutation/human/proc/on_ranged_attack(mob/living/carbon/human/owner, atom/target) +/datum/mutation/human/proc/on_ranged_attack(atom/target) return -/datum/mutation/human/proc/on_move(mob/living/carbon/human/owner, new_loc) +/datum/mutation/human/proc/on_move(new_loc) return -/datum/mutation/human/proc/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/proc/on_life() return /datum/mutation/human/proc/on_losing(mob/living/carbon/human/owner) @@ -99,9 +90,12 @@ GLOBAL_LIST_EMPTY(mutations_list) if(owner.overlays_standing[layer_used]) mut_overlay = owner.overlays_standing[layer_used] owner.remove_overlay(layer_used) - mut_overlay.Remove(get_visual_indicator(owner)) + mut_overlay.Remove(get_visual_indicator()) owner.overlays_standing[layer_used] = mut_overlay owner.apply_overlay(layer_used) + if(power) + owner.RemoveSpell(power) + qdel(src) return 0 return 1 @@ -118,17 +112,26 @@ GLOBAL_LIST_EMPTY(mutations_list) /mob/living/carbon/human/update_mutations_overlay() for(var/datum/mutation/human/CM in dna.mutations) if(CM.species_allowed.len && !CM.species_allowed.Find(dna.species.id)) - CM.force_lose(src) //shouldn't have that mutation at all + dna.force_lose(CM) //shouldn't have that mutation at all continue if(CM.visual_indicators.len) var/list/mut_overlay = list() if(overlays_standing[CM.layer_used]) mut_overlay = overlays_standing[CM.layer_used] - var/mutable_appearance/V = CM.get_visual_indicator(src) + var/mutable_appearance/V = CM.get_visual_indicator() if(!mut_overlay.Find(V)) //either we lack the visual indicator or we have the wrong one remove_overlay(CM.layer_used) - for(var/mutable_appearance/MA in CM.visual_indicators) + for(var/mutable_appearance/MA in CM.visual_indicators[CM.type]) mut_overlay.Remove(MA) mut_overlay |= V overlays_standing[CM.layer_used] = mut_overlay apply_overlay(CM.layer_used) + +/datum/mutation/human/proc/copy_mutation(datum/mutation/human/HM) //Not yet implemented, useful for when assigning specific stats. + +/datum/mutation/human/proc/remove() + if(dna) + dna.force_lose(src) + else + qdel(src) + diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm new file mode 100644 index 00000000000..a24db4666d3 --- /dev/null +++ b/code/datums/mutations/actions.dm @@ -0,0 +1,116 @@ +/datum/mutation/human/telepathy + name = "Telepathy" + desc = "A rare mutation that allows the user to telepathically communicate to others." + quality = POSITIVE + text_gain_indication = "You can hear your own voice echoing in your mind!" + text_lose_indication = "You don't hear your mind echo anymore." + difficulty = 12 + power = /obj/effect/proc_holder/spell/targeted/telepathy/genetic + instability = 10 + +/datum/mutation/human/telepathy/on_acquiring(mob/living/carbon/human/owner) + . = ..() + +/datum/mutation/human/telepathy/on_losing(mob/living/carbon/human/owner) + . = ..() + +/obj/effect/proc_holder/spell/targeted/telepathy/genetic + magic_check = FALSE + +/datum/mutation/human/firebreath + name = "Fire Breath" + desc = "An ancient mutation that gives lizards breath of fire." + quality = POSITIVE + difficulty = 12 + locked = TRUE + text_gain_indication = "Your throat is burning!" + text_lose_indication = "Your throat is cooling down." + power = /obj/effect/proc_holder/spell/aimed/firebreath + instability = 30 + +/obj/effect/proc_holder/spell/aimed/firebreath + name = "Fire Breath" + desc = "You can breathe fire at a target." + school = "evocation" + charge_max = 600 + clothes_req = FALSE + range = 20 + projectile_type = /obj/item/projectile/magic/aoe/fireball/firebreath + base_icon_state = "fireball" + action_icon_state = "fireball0" + sound = 'sound/magic/demon_dies.ogg' //horrifying lizard noises + active_msg = "You built up heat in your mouth." + deactive_msg = "You swallow the flame." + +/obj/effect/proc_holder/spell/aimed/firebreath/before_cast(list/targets) + . = ..() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + if(C.is_mouth_covered()) + C.adjust_fire_stacks(2) + C.IgniteMob() + to_chat(C,"Something in front of your mouth caught fire!") + return FALSE + +/obj/item/projectile/magic/aoe/fireball/firebreath + name = "fire breath" + exp_heavy = 0 + exp_light = 0 + exp_flash = 0 + exp_fire= 4 + +/datum/mutation/human/void + name = "Void Magnet" + desc = "A rare genome that attracts odd forces not usually observed." + quality = MINOR_NEGATIVE //upsides and downsides + text_gain_indication = "You feel a heavy, dull force just beyond the walls watching you." + instability = 30 + power = /obj/effect/proc_holder/spell/self/void + +/datum/mutation/human/void/on_life() + var/obj/effect/proc_holder/spell/self/void/voidpower = power + if(voidpower.in_use) //i don't know how rare this is but coughs are 10% on life so in theory this should be okay + return + if(prob(0.5+((100-dna.stability)/20))) //very rare, but enough to annoy you hopefully. +0.5 probability for every 10 points lost in stability + if(voidpower.action) + voidpower.action.UpdateButtonIcon() + voidpower.invocation_type = "none" + voidpower.cast(user=owner) + +/obj/effect/proc_holder/spell/self/void + name = "Convoke Void" //magic the gathering joke here + desc = "A rare genome that attracts odd forces not usually observed. May sometimes pull you in randomly." + school = "evocation" + clothes_req = FALSE + charge_max = 600 + invocation = "DOOOOOOOOOOOOOOOOOOOOM!!!" + invocation_type = "shout" + action_icon_state = "void_magnet" + var/in_use = FALSE //so it doesnt cast while you are already deep innit + +/obj/effect/proc_holder/spell/self/void/can_cast(mob/user = usr) + . = ..() + if(in_use) + return FALSE + +/obj/effect/proc_holder/spell/self/void/cast(mob/user = usr) + in_use = TRUE + user.visible_message("[user] is dragged into the void, leaving a hole in [user.p_their()] place!") + var/obj/effect/immortality_talisman/Z = new(get_turf(user)) + Z.name = "hole in reality" + Z.desc = "It's shaped an awful lot like [user.name]." + Z.setDir(user.dir) + user.forceMove(Z) + user.notransform = 1 + user.status_flags |= GODMODE + addtimer(CALLBACK(src, .proc/return_to_reality, user, Z), 100) + +/obj/effect/proc_holder/spell/self/void/proc/return_to_reality(mob/user, obj/effect/immortality_talisman/Z) + in_use = FALSE + invocation_type = initial(invocation_type) + user.status_flags &= ~GODMODE + user.notransform = 0 + user.forceMove(get_turf(Z)) + user.visible_message("[user] pops back into reality!") + Z.can_destroy = TRUE + qdel(Z) \ No newline at end of file diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index e114a437360..37477f9fe5c 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -3,18 +3,19 @@ //Epilepsy gives a very small chance to have a seizure every life tick, knocking you unconscious. /datum/mutation/human/epilepsy name = "Epilepsy" + desc = "A genetic defect that sporadically causes seizures." quality = NEGATIVE text_gain_indication = "You get a headache." -/datum/mutation/human/epilepsy/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/epilepsy/on_life() if(prob(1) && owner.stat == CONSCIOUS) owner.visible_message("[owner] starts having a seizure!", "You have a seizure!") owner.Unconscious(200) owner.Jitter(1000) SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "epilepsy", /datum/mood_event/epilepsy) - addtimer(CALLBACK(src, .proc/jitter_less, owner), 90) + addtimer(CALLBACK(src, .proc/jitter_less), 90) -/datum/mutation/human/epilepsy/proc/jitter_less(mob/living/carbon/human/owner) +/datum/mutation/human/epilepsy/proc/jitter_less() if(owner) owner.jitteriness = 10 @@ -22,19 +23,23 @@ //Unstable DNA induces random mutations! /datum/mutation/human/bad_dna name = "Unstable DNA" + desc = "Strange mutation that causes the holder to randomly mutate." quality = NEGATIVE text_gain_indication = "You feel strange." + locked = TRUE /datum/mutation/human/bad_dna/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return to_chat(owner, text_gain_indication) var/mob/new_mob if(prob(95)) if(prob(50)) - new_mob = owner.randmutb() + new_mob = owner.easy_randmut(NEGATIVE + MINOR_NEGATIVE) else new_mob = owner.randmuti() else - new_mob = owner.randmutg() + new_mob = owner.easy_randmut(POSITIVE) if(new_mob && ismob(new_mob)) owner = new_mob . = owner @@ -44,10 +49,11 @@ //Cough gives you a chronic cough that causes you to drop items. /datum/mutation/human/cough name = "Cough" + desc = "A chronic cough." quality = MINOR_NEGATIVE text_gain_indication = "You start coughing." -/datum/mutation/human/cough/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/cough/on_life() if(prob(5) && owner.stat == CONSCIOUS) owner.drop_all_held_items() owner.emote("cough") @@ -56,9 +62,11 @@ //Dwarfism shrinks your body and lets you pass tables. /datum/mutation/human/dwarfism name = "Dwarfism" + desc = "A mutation believed to be the cause of dwarfism." quality = POSITIVE - get_chance = 15 - lowest_value = 256 * 12 + difficulty = 16 + instability = 5 + locked = TRUE // Default intert species for now, so locked from regular pool. /datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -80,6 +88,7 @@ //Clumsiness has a very large amount of small drawbacks depending on item. /datum/mutation/human/clumsy name = "Clumsiness" + desc = "A genome that inhibits certain brain functions, causing the holder to appear clumsy. Honk" quality = MINOR_NEGATIVE text_gain_indication = "You feel lightheaded." @@ -97,6 +106,7 @@ //Tourettes causes you to randomly stand in place and shout. /datum/mutation/human/tourettes name = "Tourette's Syndrome" + desc = "A chronic twitch that forces the user to scream bad words." //definitely needs rewriting quality = NEGATIVE text_gain_indication = "You twitch." @@ -119,6 +129,7 @@ //Deafness makes you deaf. /datum/mutation/human/deaf name = "Deafness" + desc = "The holder of this genome is completely deaf." quality = NEGATIVE text_gain_indication = "You can't seem to hear anything." @@ -136,8 +147,10 @@ //Monified turns you into a monkey. /datum/mutation/human/race name = "Monkified" + desc = "A strange genome, believing to be what differentiates monkeys from humans." quality = NEGATIVE time_coeff = 2 + locked = TRUE //Species specific, keep out of actual gene pool /datum/mutation/human/race/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -147,3 +160,57 @@ /datum/mutation/human/race/on_losing(mob/living/carbon/monkey/owner) if(owner && istype(owner) && owner.stat != DEAD && (owner.dna.mutations.Remove(src))) . = owner.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) + +/datum/mutation/human/glow + name = "Glowy" + desc = "You permanently emit a light with a random color and intensity." + quality = POSITIVE + text_gain_indication = "Your skin begins to glow softly." + instability = 5 + var/obj/effect/dummy/luminescent_glow/glowth //shamelessly copied from luminescents + var/glow = 1.5 + +/datum/mutation/human/glow/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + glowth = new(owner) + glowth.set_light(glow, glow, dna.features["mcolor"]) + +/datum/mutation/human/glow/on_losing(mob/living/carbon/human/owner) + if(..()) + return + qdel(glowth) + +/datum/mutation/human/strong + name = "Strength" + desc = "The user's muscles slightly expand." + quality = POSITIVE + text_gain_indication = "You feel strong." + difficulty = 16 + +/datum/mutation/human/fire + name = "Fiery Sweat" + desc = "The user's skin will randomly combust, but is generally alot more resilient to burning." + quality = NEGATIVE + text_gain_indication = "You feel hot." + text_lose_indication = "You feel a lot cooler." + difficulty = 14 + +/datum/mutation/human/fire/on_life() + if(prob(1+(100-dna.stability)/10)) + owner.adjust_fire_stacks(2) + owner.IgniteMob() + +/datum/mutation/human/fire/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.physiology.burn_mod *= 0.5 + +/datum/mutation/human/fire/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.physiology.burn_mod *= 2 + + + + diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm index da10510970c..d8ee7728a78 100644 --- a/code/datums/mutations/chameleon.dm +++ b/code/datums/mutations/chameleon.dm @@ -1,25 +1,26 @@ //Chameleon causes the owner to slowly become transparent when not moving. /datum/mutation/human/chameleon name = "Chameleon" + desc = "A genome that causes the holder's skin to become transparent over time." quality = POSITIVE - get_chance = 20 - lowest_value = 256 * 12 + difficulty = 16 text_gain_indication = "You feel one with your surroundings." text_lose_indication = "You feel oddly exposed." time_coeff = 5 + instability = 25 /datum/mutation/human/chameleon/on_acquiring(mob/living/carbon/human/owner) if(..()) return owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY -/datum/mutation/human/chameleon/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/chameleon/on_life() owner.alpha = max(0, owner.alpha - 25) -/datum/mutation/human/chameleon/on_move(mob/living/carbon/human/owner) +/datum/mutation/human/chameleon/on_move() owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY -/datum/mutation/human/chameleon/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity) +/datum/mutation/human/chameleon/on_attack_hand(atom/target, proximity) if(proximity) //stops tk from breaking chameleon owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY return diff --git a/code/datums/mutations/cold_resistance.dm b/code/datums/mutations/cold_resistance.dm index b221ac95cac..58525cecaa8 100644 --- a/code/datums/mutations/cold_resistance.dm +++ b/code/datums/mutations/cold_resistance.dm @@ -1,32 +1,30 @@ //Cold Resistance gives your entire body an orange halo, and makes you immune to the effects of vacuum and cold. -/datum/mutation/human/cold_resistance - name = "Cold Resistance" +/datum/mutation/human/space_adaptation + name = "Space Adaptation" + desc = "A strange mutation that renders the host immune to the vacuum if space. Will still need an oxygen supply." quality = POSITIVE - get_chance = 25 - lowest_value = 256 * 12 + difficulty = 16 text_gain_indication = "Your body feels warm!" time_coeff = 5 + instability = 30 -/datum/mutation/human/cold_resistance/New() +/datum/mutation/human/space_adaptation/New() ..() - visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "fire", -MUTATIONS_LAYER) + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "fire", -MUTATIONS_LAYER)) -/datum/mutation/human/cold_resistance/get_visual_indicator(mob/living/carbon/human/owner) - return visual_indicators[1] +/datum/mutation/human/space_adaptation/get_visual_indicator() + return visual_indicators[type][1] -/datum/mutation/human/cold_resistance/on_acquiring(mob/living/carbon/human/owner) +/datum/mutation/human/space_adaptation/on_acquiring(mob/living/carbon/human/owner) if(..()) return - owner.add_trait(TRAIT_RESISTCOLD, "cold_resistance") - owner.add_trait(TRAIT_RESISTLOWPRESSURE, "cold_resistance") + owner.add_trait(TRAIT_RESISTCOLD, "space_adaptation") + owner.add_trait(TRAIT_RESISTLOWPRESSURE, "space_adaptation") -/datum/mutation/human/cold_resistance/on_losing(mob/living/carbon/human/owner) +/datum/mutation/human/space_adaptation/on_losing(mob/living/carbon/human/owner) if(..()) return - owner.remove_trait(TRAIT_RESISTCOLD, "cold_resistance") - owner.remove_trait(TRAIT_RESISTLOWPRESSURE, "cold_resistance") + owner.remove_trait(TRAIT_RESISTCOLD, "space_adaptation") + owner.remove_trait(TRAIT_RESISTLOWPRESSURE, "space_adaptation") -/datum/mutation/human/cold_resistance/on_life(mob/living/carbon/human/owner) - if(owner.getFireLoss()) - if(prob(1)) - owner.heal_bodypart_damage(0,1) //Is this really needed? diff --git a/code/datums/mutations/combined.dm b/code/datums/mutations/combined.dm new file mode 100644 index 00000000000..fef0a56dc03 --- /dev/null +++ b/code/datums/mutations/combined.dm @@ -0,0 +1,16 @@ +/datum/generecipe + var/required = "" //it hurts so bad but initial is not compatible with lists + var/result = null + +/proc/get_mixed_mutation(mutation1, mutation2) + if(!mutation1 || !mutation2) + return FALSE + if(mutation1 == mutation2) //this could otherwise be bad + return FALSE + for(var/A in GLOB.mutation_recipes) + if(findtext(A, "[mutation1]") && findtext(A, "[mutation2]")) + return GLOB.mutation_recipes[A] + +/datum/generecipe/hulk + required = "/datum/mutation/human/strong; /datum/mutation/human/radioactive" + result = HULK \ No newline at end of file diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 7bcd056fab2..683f5b72593 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -1,12 +1,15 @@ //Hulk turns your skin green, and allows you to punch through walls. /datum/mutation/human/hulk name = "Hulk" + desc = "A poorly understood genome that causes the holder's muscles to expand, inhibit speech and gives the person a bad skin condition." quality = POSITIVE - get_chance = 15 - lowest_value = 256 * 12 + locked = TRUE + difficulty = 16 text_gain_indication = "Your muscles hurt!" species_allowed = list("human") //no skeleton/lizard hulk health_req = 25 + instability = 40 + locked = TRUE /datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -16,11 +19,11 @@ owner.update_body_parts() SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "hulk", /datum/mood_event/hulk) -/datum/mutation/human/hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity) +/datum/mutation/human/hulk/on_attack_hand(atom/target, proximity) if(proximity) //no telekinetic hulk attack return target.attack_hulk(owner) -/datum/mutation/human/hulk/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/hulk/on_life() if(owner.health < 0) on_losing(owner) to_chat(owner, "You suddenly feel very weak.") diff --git a/code/datums/mutations/radioactive.dm b/code/datums/mutations/radioactive.dm new file mode 100644 index 00000000000..e772fbbe31b --- /dev/null +++ b/code/datums/mutations/radioactive.dm @@ -0,0 +1,19 @@ +/datum/mutation/human/radioactive + name = "Radioactivity" + desc = "A volatile mutation that causes the host to sent out deadly beta radiation. This affects both the hosts and their surroundings." + quality = NEGATIVE + text_gain_indication = "You can feel it in your bones!" + time_coeff = 5 + instability = 5 + difficulty = 8 + +/datum/mutation/human/radioactive/on_life() + radiation_pulse(owner, 20) + +/datum/mutation/human/radioactive/New() + ..() + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "radiation", -MUTATIONS_LAYER)) + +/datum/mutation/human/radioactive/get_visual_indicator() + return visual_indicators[type][1] \ No newline at end of file diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index f16dad20ddd..fba82b1074d 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -1,6 +1,7 @@ //Nearsightedness restricts your vision by several tiles. /datum/mutation/human/nearsight name = "Near Sightness" + desc = "The holder of this mutation has poor eyesight." quality = MINOR_NEGATIVE text_gain_indication = "You can't see very well." @@ -18,6 +19,7 @@ //Blind makes you blind. Who knew? /datum/mutation/human/blind name = "Blindness" + desc = "Renders the subject completely blind." quality = NEGATIVE text_gain_indication = "You can't seem to see anything." @@ -35,11 +37,12 @@ //X-ray Vision lets you see through walls. /datum/mutation/human/x_ray name = "X Ray Vision" + desc = "A strange genome that allows the user to see between the spaces of walls." //actual x-ray would mean you'd constantly be blasting rads, wich might be fun for later //hmb quality = POSITIVE - get_chance = 25 - lowest_value = 256 * 12 + difficulty = 18 text_gain_indication = "The walls suddenly disappear!" time_coeff = 2 + instability = 25 /datum/mutation/human/x_ray/on_acquiring(mob/living/carbon/human/owner) if(..()) @@ -58,8 +61,10 @@ //Laser Eyes lets you shoot lasers from your eyes! /datum/mutation/human/laser_eyes name = "Laser Eyes" + desc = "Reflects concentrated light back from the eyes." quality = POSITIVE - dna_block = NON_SCANNABLE + locked = TRUE + difficulty = 16 text_gain_indication = "You feel pressure building up behind your eyes." layer_used = FRONT_MUTATIONS_LAYER limb_req = BODY_ZONE_HEAD @@ -68,9 +73,9 @@ ..() visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "lasereyes", -FRONT_MUTATIONS_LAYER) -/datum/mutation/human/laser_eyes/get_visual_indicator(mob/living/carbon/human/owner) +/datum/mutation/human/laser_eyes/get_visual_indicator() return visual_indicators[1] -/datum/mutation/human/laser_eyes/on_ranged_attack(mob/living/carbon/human/owner, atom/target, mouseparams) +/datum/mutation/human/laser_eyes/on_ranged_attack(atom/target, mouseparams) if(owner.a_intent == INTENT_HARM) owner.LaserEyes(target, mouseparams) diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index f91fc9fd4ea..1239854ccdd 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -3,16 +3,18 @@ /datum/mutation/human/nervousness name = "Nervousness" + desc = "Causes the holder to stutter." quality = MINOR_NEGATIVE text_gain_indication = "You feel nervous." -/datum/mutation/human/nervousness/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/nervousness/on_life() if(prob(10)) owner.stuttering = max(10, owner.stuttering) /datum/mutation/human/wacky name = "Wacky" + desc = "Unknown." quality = MINOR_NEGATIVE text_gain_indication = "You feel an off sensation in your voicebox." text_lose_indication = "The off sensation passes." @@ -23,6 +25,7 @@ /datum/mutation/human/mute name = "Mute" + desc = "Completely inhibits the vocal section of the brain." quality = NEGATIVE text_gain_indication = "You feel unable to express yourself at all." text_lose_indication = "You feel able to speak freely again." @@ -40,8 +43,8 @@ /datum/mutation/human/smile name = "Smile" + desc = "Causes the user to be in constant mania." quality = MINOR_NEGATIVE - dna_block = NON_SCANNABLE text_gain_indication = "You feel so happy. Nothing can be wrong with anything. :)" text_lose_indication = "Everything is terrible again. :(" @@ -97,8 +100,8 @@ /datum/mutation/human/unintelligible name = "Unintelligible" + desc = "Partially inhibits the vocal center of the brain, severely distorting speech." quality = NEGATIVE - dna_block = NON_SCANNABLE text_gain_indication = "You can't seem to form any coherent thoughts!" text_lose_indication = "Your mind feels more clear." @@ -130,8 +133,8 @@ /datum/mutation/human/swedish name = "Swedish" + desc = "A horrible mutation originating from the distant past. Thought to be eradicated after the incident in 2037." quality = MINOR_NEGATIVE - dna_block = NON_SCANNABLE text_gain_indication = "You feel Swedish, however that works." text_lose_indication = "The feeling of Swedishness passes." @@ -149,8 +152,8 @@ /datum/mutation/human/chav name = "Chav" + desc = "Unknown" quality = MINOR_NEGATIVE - dna_block = NON_SCANNABLE text_gain_indication = "Ye feel like a reet prat like, innit?" text_lose_indication = "You no longer feel like being rude and sassy." @@ -183,12 +186,13 @@ /datum/mutation/human/elvis name = "Elvis" + desc = "A terrifying mutation named after its 'patient-zero'." quality = MINOR_NEGATIVE - dna_block = NON_SCANNABLE + locked = TRUE text_gain_indication = "You feel pretty good, honeydoll." text_lose_indication = "You feel a little less conversation would be great." -/datum/mutation/human/elvis/on_life(mob/living/carbon/human/owner) +/datum/mutation/human/elvis/on_life() switch(pick(1,2)) if(1) if(prob(15)) @@ -216,8 +220,9 @@ /datum/mutation/human/stoner name = "Stoner" + desc = "A common mutation that severely decreases intelligence." quality = NEGATIVE - dna_block = NON_SCANNABLE + locked = TRUE text_gain_indication = "You feel...totally chill, man!" text_lose_indication = "You feel like you have a better sense of time." diff --git a/code/datums/mutations/telekinesis.dm b/code/datums/mutations/telekinesis.dm index a5b15eacb80..49c39d59f54 100644 --- a/code/datums/mutations/telekinesis.dm +++ b/code/datums/mutations/telekinesis.dm @@ -1,18 +1,20 @@ //Telekinesis lets you interact with objects from range, and gives you a light blue halo around your head. /datum/mutation/human/telekinesis name = "Telekinesis" + desc = "A strange mutation that allows the holder to interact with objects through thought." quality = POSITIVE - get_chance = 20 - lowest_value = 256 * 12 + difficulty = 18 text_gain_indication = "You feel smarter!" limb_req = BODY_ZONE_HEAD + instability = 30 /datum/mutation/human/telekinesis/New() ..() - visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "telekinesishead", -MUTATIONS_LAYER) + if(!(type in visual_indicators)) + visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "telekinesishead", -MUTATIONS_LAYER)) -/datum/mutation/human/telekinesis/get_visual_indicator(mob/living/carbon/human/owner) - return visual_indicators[1] +/datum/mutation/human/telekinesis/get_visual_indicator() + return visual_indicators[type][1] -/datum/mutation/human/telekinesis/on_ranged_attack(mob/living/carbon/human/owner, atom/target) +/datum/mutation/human/telekinesis/on_ranged_attack(atom/target) target.attack_tk(owner) diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index 0906a7e053a..070c19331e0 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -38,9 +38,9 @@ H.randmuti() if(prob(50)) if(prob(90)) - H.randmutb() + H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) else - H.randmutg() + H.easy_randmut(POSITIVE) H.domutcheck() L.rad_act(20) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index a6770c3a29c..caee9c27249 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -88,6 +88,8 @@ name = "cloning data disk" icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk. var/list/fields = list() + var/list/mutations = list() + var/max_mutations = 6 var/read_only = 0 //Well,it's still a floppy disk //Disk stuff. @@ -135,7 +137,7 @@ return examine(user) //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, se, mindref, datum/species/mrace, list/features, factions, list/quirks, datum/bank_account/insurance) +/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, mutation_index, mindref, datum/species/mrace, list/features, factions, list/quirks, datum/bank_account/insurance) if(panel_open) return FALSE if(mess || attempting) @@ -170,18 +172,18 @@ var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) - H.hardset_dna(ui, se, H.real_name, null, mrace, features) + H.hardset_dna(ui, mutation_index, H.real_name, null, mrace, features) if(efficiency > 2) var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) H.dna.remove_mutation_group(unclean_mutations) if(efficiency > 5 && prob(20)) - H.randmutvg() + H.easy_randmut(POSITIVE) if(efficiency < 3) if(prob(50)) H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_BASIC) if(prob(50)) - var/mob/M = H.randmutb() + var/mob/M = H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) if(ismob(M)) H = M diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index c51b69bc9f9..afbe25a269b 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -52,7 +52,6 @@ else if(!. && pod.is_operational() && !(pod.occupant || pod.mess) && pod.efficiency > 5) . = pod - /obj/machinery/computer/cloning/proc/updatemodules(findfirstcloner) src.scanner = findscanner() if(findfirstcloner && !LAZYLEN(pods)) @@ -125,7 +124,6 @@ dat += "

Cloning Pod Status

" dat += "
[temp] 
" - // Modules if (isnull(src.scanner) || !LAZYLEN(pods)) dat += "

Modules

" @@ -159,7 +157,6 @@ else dat += "Start Scan" - var/datum/browser/popup = new(user, "cloning", "Cloning System Control") popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) @@ -201,7 +198,6 @@ src.updateUsrDialog() playsound(src, "terminal_type", 25, 0) - src.add_fingerprint(usr) src.updateUsrDialog() return @@ -254,7 +250,7 @@ var/mind if(mob_occupant.mind) - mind = "[REF(mob_occupant.mind)]" + mind = "[REF(mob_occupant.mind)]" var/quirks = list() for(var/V in mob_occupant.roundstart_quirks) @@ -275,7 +271,7 @@ else if(pod.occupant) temp = "Cloning cycle already in progress." playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else if(pod.growclone(mob_occupant.ckey, mob_occupant.real_name, dna.uni_identity, dna.struc_enzymes, mind, mrace, dna.features, mob_occupant.faction, quirks, has_bank_account)) + else if(pod.growclone(mob_occupant.ckey, mob_occupant.real_name, dna.uni_identity, dna.mutation_index, mind, mrace, dna.features, mob_occupant.faction, quirks, has_bank_account)) temp = "[mob_occupant.real_name] => Cloning cycle in progress..." playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) else diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 2902c463093..a86e989b113 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -1,14 +1,16 @@ #define INJECTOR_TIMEOUT 100 -#define REJUVENATORS_INJECT 15 -#define REJUVENATORS_MAX 90 #define NUMBER_OF_BUFFERS 3 +#define SCRAMBLE_TIMEOUT 600 +#define JOKER_TIMEOUT 12000 //20 minutes +#define JOKER_UPGRADE 1800 #define RADIATION_STRENGTH_MAX 15 -#define RADIATION_STRENGTH_MULTIPLIER 1 //larger has a more range +#define RADIATION_STRENGTH_MULTIPLIER 1 //larger has more range #define RADIATION_DURATION_MAX 30 #define RADIATION_ACCURACY_MULTIPLIER 3 //larger is less accurate + #define RADIATION_IRRADIATION_MULTIPLIER 1 //multiplier for how much radiation a test subject receives #define SCANNER_ACTION_SE 1 @@ -23,21 +25,30 @@ icon_keyboard = "med_key" density = TRUE circuit = /obj/item/circuitboard/computer/scan_consolenew + + use_power = IDLE_POWER_USE + idle_power_usage = 10 + active_power_usage = 400 + light_color = LIGHT_COLOR_BLUE + + var/datum/techweb/stored_research + var/max_storage = 6 + var/combine var/radduration = 2 var/radstrength = 1 var/list/buffer[NUMBER_OF_BUFFERS] + var/list/stored_mutations = list() var/injectorready = 0 //world timer cooldown var + var/jokerready = 0 + var/scrambleready = 0 var/current_screen = "mainmenu" + var/current_mutation //what block are we inspecting? only used when screen = "info" + var/current_storage //what storage block are we looking at? var/obj/machinery/dna_scannernew/connected = null var/obj/item/disk/data/diskette = null var/list/delayed_action = null - use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 400 - - light_color = LIGHT_COLOR_BLUE /obj/machinery/computer/scan_consolenew/attackby(obj/item/I, mob/user, params) if (istype(I, /obj/item/disk/data)) //INSERT SOME DISKETTES @@ -58,12 +69,26 @@ if(!isnull(connected)) break injectorready = world.time + INJECTOR_TIMEOUT + scrambleready = world.time + SCRAMBLE_TIMEOUT + jokerready = world.time + JOKER_TIMEOUT + + stored_research = SSresearch.science_tech + +/obj/machinery/computer/scan_consolenew/examine(mob/user) + ..() + if(jokerready < world.time) + to_chat(user, "JOKER algorithm available.") + else + to_chat(user, "JOKER algorithm available in about [round(0.00166666667 * (jokerready - world.time))] minutes.") /obj/machinery/computer/scan_consolenew/ui_interact(mob/user, last_change) . = ..() if(!user) return var/datum/browser/popup = new(user, "scannernew", "DNA Modifier Console", 800, 630) // Set up the popup browser window + if(user.client) + var/datum/asset/simple/assets = get_asset_datum(/datum/asset/simple/genetics) + assets.send(user.client) if(!(in_range(src, user) || issilicon(user))) popup.close() return @@ -88,8 +113,6 @@ occupant_status += "" occupant_status += "
Health:
[viable_occupant.health] %
" occupant_status += "
Radiation Level:
[viable_occupant.radiation/(RAD_MOB_SAFE/100)] %
" - var/rejuvenators = viable_occupant.reagents.get_reagent_amount("potass_iodide") - occupant_status += "
Rejuvenators:
[rejuvenators] units
" occupant_status += "
Unique Enzymes :
[viable_occupant.dna.unique_enzymes]
" occupant_status += "
Last Operation:
[last_change ? last_change : "----"]
" else @@ -147,28 +170,53 @@ buttons += "
[connected.locked ? "Unlock" : "Lock"] Scanner" else buttons += "Open Scanner Lock Scanner" - if(viable_occupant) - buttons += "Inject Rejuvenators" + if(viable_occupant && (scrambleready < world.time)) + buttons += "Scramble DNA" else - buttons += "Inject Rejuvenators" + buttons += "Scramble DNA" if(diskette) - buttons += "Eject Disk" + buttons += "Disk" else - buttons += "Eject Disk" - if(current_screen == "buffer") - buttons += "Radiation Emitter Menu" + buttons += "Disk" + if(current_screen == "mutations") + buttons += "Mutations" else - buttons += "Buffer Menu" + buttons += "Mutations" + if((current_screen == "mainmenu") || !current_screen) + buttons += "Genetic Sequencer" + else + buttons += "Genetic Sequencer" + if(current_screen == "ui") + buttons += "Unique Identifiers" + else + buttons += "Unique Identifiers" switch(current_screen) if("working") temp_html += status temp_html += "

System Busy

" temp_html += "Working ... Please wait ([DisplayTimeText(radduration*10)])" - if("buffer") + if("ui") temp_html += status temp_html += buttons - temp_html += "

Buffer Menu

" + temp_html += "

Unique Identifiers

" + temp_html += "-- Output Level ++" + temp_html += "
-- Pulse Duration ++" + temp_html += "

Irradiate Subject

" + temp_html += "
Unique Identifier:
" + var/max_line_len = 7*DNA_BLOCK_SIZE + if(viable_occupant) + temp_html += "
1
" + var/len = length(viable_occupant.dna.uni_identity) + for(var/i=1, i<=len, i++) + temp_html += "[copytext(viable_occupant.dna.uni_identity,i,i+1)]" + if ((i % max_line_len) == 0) + temp_html += "
" + if((i % DNA_BLOCK_SIZE) == 0 && i < len) + temp_html += "
[(i / DNA_BLOCK_SIZE) + 1]
" + else + temp_html += "---------" + temp_html += "

Buffer Menu

" if(istype(buffer)) for(var/i=1, i<=buffer.len, i++) @@ -188,7 +236,6 @@ temp_html += "Save to Disk" else var/ui = buffer_slot["UI"] - var/se = buffer_slot["SE"] var/ue = buffer_slot["UE"] var/name = buffer_slot["name"] var/label = buffer_slot["label"] @@ -234,19 +281,6 @@ temp_html += "UI+UE Injector" else temp_html += "UI+UE Injector" - if(se) - temp_html += "
\tSE: [se] " - if(viable_occupant) - temp_html += "Occupant" - else - temp_html += "Occupant" - temp_html += "Occupant:Delayed" - if(injectorready < world.time ) - temp_html += "Injector" - else - temp_html += "Injector" - else - temp_html += "
\tSE: No Data" if(viable_occupant) temp_html += "
Save to Buffer" else @@ -260,48 +294,180 @@ temp_html += "Save to Disk" else temp_html += "Save to Disk" + if("disk") + temp_html += status + temp_html += buttons + if(diskette) + temp_html += "

[diskette.name]


" + temp_html += "Eject Disk
" + if(LAZYLEN(diskette.mutations)) + temp_html += "" + for(var/datum/mutation/human/A in diskette.mutations) + temp_html += "" + temp_html += "" + if(LAZYLEN(stored_mutations) < max_storage) + temp_html += "" + else + temp_html += "" + temp_html += "" + temp_html += "
[A.name]DeleteImportImport
" + else + temp_html += "
Load diskette to start ----------" + if("info") + if(LAZYLEN(stored_mutations)) + if(LAZYLEN(stored_mutations) >= current_storage) + var/datum/mutation/human/HM = stored_mutations[current_storage] + if(HM) + temp_html += display_sequence(HM.type, current_storage) + else + current_screen = "mainmenu" + if("mutations") + temp_html += status + temp_html += buttons + temp_html += "

Mutation Storage:

" + temp_html += "" + for(var/datum/mutation/human/HM in stored_mutations) + var/i = stored_mutations.Find(HM) + temp_html += "" + temp_html += "" + temp_html += "" + if(combine == HM.type) + temp_html += "" + else + temp_html += "" + temp_html += "
[HM.name]ExportDeleteCombine
Combine
" else temp_html += status temp_html += buttons - temp_html += "

Radiation Emitter Menu

" - - temp_html += "-- Output Level ++" - temp_html += "
-- Pulse Duration ++" - - temp_html += "

Irradiate Subject

" - temp_html += "
Unique Identifier:
" - - var/max_line_len = 7*DNA_BLOCK_SIZE + temp_html += "
Genetic Sequence:

" if(viable_occupant) - temp_html += "
1
" - var/len = length(viable_occupant.dna.uni_identity) - for(var/i=1, i<=len, i++) - temp_html += "[copytext(viable_occupant.dna.uni_identity,i,i+1)]" - if ((i % max_line_len) == 0) - temp_html += "
" - if((i % DNA_BLOCK_SIZE) == 0 && i < len) - temp_html += "
[(i / DNA_BLOCK_SIZE) + 1]
" + if(viable_occupant) + for(var/A in get_mutation_list()) + temp_html += display_inactive_sequence(A) + temp_html += "
" + else + temp_html += "----" + if(viable_occupant && (current_mutation in get_mutation_list(viable_occupant))) + temp_html += display_sequence(current_mutation) + temp_html += "

" else - temp_html += "----" - temp_html += "

" - - temp_html += "
Structural Enzymes:
" - if(viable_occupant) - temp_html += "
1
" - var/len = length(viable_occupant.dna.struc_enzymes) - for(var/i=1, i<=len, i++) - temp_html += "[copytext(viable_occupant.dna.struc_enzymes,i,i+1)]" - if ((i % max_line_len) == 0) - temp_html += "
" - if((i % DNA_BLOCK_SIZE) == 0 && i < len) - temp_html += "
[(i / DNA_BLOCK_SIZE) + 1]
" - else - temp_html += "----" - temp_html += "
" + temp_html += "----------" popup.set_content(temp_html.Join()) popup.open() +/obj/machinery/computer/scan_consolenew/proc/display_inactive_sequence(mutation) + var/temp_html = "" + var/class = "unselected" + var/mob/living/carbon/viable_occupant = get_viable_occupant() + if(!viable_occupant) + return + + var/location = viable_occupant.dna.mutation_index.Find(mutation) //We do this because we dont want people using sysexp or similair tools to just read the mutations. + + if(!location) //Do this only when needed, dont make a list with mutations for every iteration if you dont need to + var/list/mutations = get_mutation_list(TRUE) + if(mutation in mutations) + location = mutations.Find(mutation) + if(mutation == current_mutation) + class = "selected" + if(location > DNA_MUTATION_BLOCKS) + temp_html += "Extra Mutation" + else if(mutation in stored_research.discovered_mutations) + temp_html += "Discovered Mutation" + else + temp_html += "Undiscovered" + return temp_html + +/obj/machinery/computer/scan_consolenew/proc/display_sequence(mutation, storage_slot) //Storage slot is for when viewing from the stored mutations + var/temp_html = "" + if(!mutation) + temp_html += "ERR-" + return + var/mut_name = "Unknown gene" + var/mut_desc = "No information available." + var/alias + var/discovered = FALSE + var/active = FALSE + var/scrambled = FALSE + var/mob/living/carbon/viable_occupant = get_viable_occupant() + + if(viable_occupant) + var/datum/mutation/human/HM = viable_occupant.dna.get_mutation(mutation) + if(HM) + if(HM.scrambled) + scrambled = TRUE + active = TRUE + var/datum/mutation/human/A = get_initialized_mutation(mutation) + alias = A.alias + if(active && !scrambled) + discover(mutation) + if(stored_research && (mutation in stored_research.discovered_mutations)) + mut_name = A.name + mut_desc = A.desc + discovered = TRUE + var/extra + if(viable_occupant && !(storage_slot || mutation_in_sequence(mutation, viable_occupant.dna))) + extra = TRUE + var/datum/mutation/human/HM = get_initialized_mutation(mutation) + + if(discovered && !scrambled) + var/mutcolor + switch(A.quality) + if(POSITIVE) + mutcolor = "good" + if(MINOR_NEGATIVE) + mutcolor = "average" + if(NEGATIVE) + mutcolor = "bad" + temp_html += "
[mut_name] ([alias])
" + else + temp_html += "
[alias]
" + temp_html += "
[mut_desc]
" + temp_html += "
Sequence:

" + if(!scrambled) + for(var/block in 1 to HM.blocks) + var/whole_sequence = get_valid_gene_string(mutation) + var/sequence = copytext(whole_sequence, 1+(block-1)*(DNA_SEQUENCE_LENGTH*2),(DNA_SEQUENCE_LENGTH*2*block+1)) + temp_html += "
" + for(var/i in 1 to DNA_SEQUENCE_LENGTH) + var/num = 1+(i-1)*2 + var/genenum = num+(DNA_SEQUENCE_LENGTH*2*(block-1)) + temp_html += "" + temp_html += "" + for(var/i in 1 to DNA_SEQUENCE_LENGTH) + temp_html += "" + temp_html += "" + for(var/i in 1 to DNA_SEQUENCE_LENGTH) + var/num = i*2 + var/genenum = num+(DNA_SEQUENCE_LENGTH*2*(block-1)) + temp_html += "" + temp_html += "
|
" + temp_html += "




" + else + temp_html = "
Sequence unreadable due to unpredictable mutation.
" + if((active || storage_slot) && (injectorready < world.time) && !scrambled) + temp_html += "Print Activator" + temp_html += "Print Mutator" + else + temp_html += "Print Activator" + temp_html += "Print Mutator" + temp_html += "
" + if(storage_slot) + temp_html += "Delete" + if((LAZYLEN(stored_mutations) < max_storage) && diskette && !diskette.read_only) + temp_html += "Export" + else + temp_html += "Export" + temp_html += "Back" + else if(active && !scrambled) + temp_html += "Store" + if(extra || scrambled) + temp_html += "Nullify" + else + temp_html += "Nullify" + temp_html += "
" + return temp_html /obj/machinery/computer/scan_consolenew/Topic(href, href_list) if(..()) @@ -340,11 +506,14 @@ radstrength = WRAP(num, 1, RADIATION_STRENGTH_MAX+1) if("screen") current_screen = href_list["text"] - if("rejuv") - if(viable_occupant && viable_occupant.reagents) - var/potassiodide_amount = viable_occupant.reagents.get_reagent_amount("potass_iodide") - var/can_add = max(min(REJUVENATORS_MAX - potassiodide_amount, REJUVENATORS_INJECT), 0) - viable_occupant.reagents.add_reagent("potass_iodide", can_add) + if("scramble") + if(viable_occupant && (scrambleready < world.time)) + viable_occupant.dna.remove_all_mutations(list(MUT_NORMAL, MUT_EXTRA)) + viable_occupant.dna.generate_dna_blocks() + scrambleready = world.time + SCRAMBLE_TIMEOUT + to_chat(usr,"DNA scrambled.") + viable_occupant.radiation += RADIATION_STRENGTH_MULTIPLIER*50/(connected.damage_coeff ** 2) + if("setbufferlabel") var/text = sanitize(input(usr, "Input a new label:", "Input a Text", null) as text|null) if(num && text) @@ -358,7 +527,6 @@ buffer[num] = list( "label"="Buffer[num]:[viable_occupant.real_name]", "UI"=viable_occupant.dna.uni_identity, - "SE"=viable_occupant.dna.struc_enzymes, "UE"=viable_occupant.dna.unique_enzymes, "name"=viable_occupant.real_name, "blood_type"=viable_occupant.dna.blood_type @@ -372,8 +540,6 @@ if("transferbuffer") if(num && viable_occupant) switch(href_list["text"]) //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove - if("se") - apply_buffer(SCANNER_ACTION_SE,num) if("ui") apply_buffer(SCANNER_ACTION_UI,num) if("ue") @@ -387,28 +553,6 @@ if(istype(buffer_slot)) var/obj/item/dnainjector/timed/I switch(href_list["text"]) - if("se") - if(buffer_slot["SE"]) - I = new /obj/item/dnainjector/timed(loc) - var/powers = 0 - for(var/datum/mutation/human/HM in GLOB.good_mutations + GLOB.bad_mutations + GLOB.not_good_mutations) - if(HM.check_block_string(buffer_slot["SE"])) - I.add_mutations.Add(HM) - if(HM in GLOB.good_mutations) - powers += 1 - if(HM in GLOB.bad_mutations + GLOB.not_good_mutations) - powers -= 1 //To prevent just unlocking everything to get all powers to a syringe for max tech - else - I.remove_mutations.Add(HM) - var/time_coeff - for(var/datum/mutation/human/HM in I.add_mutations) - if(!time_coeff) - time_coeff = HM.time_coeff - continue - time_coeff = min(time_coeff,HM.time_coeff) - if(connected) - I.duration = I.duration * time_coeff * connected.damage_coeff - I.damage_coeff = connected.damage_coeff if("ui") if(buffer_slot["UI"]) I = new /obj/item/dnainjector/timed(loc) @@ -447,7 +591,7 @@ if("setdelayed") if(num) delayed_action = list("action"=text2num(href_list["delayaction"]),"buffer"=num) - if("pulseui","pulsese") + if("pulseui") if(num && viable_occupant && connected) radduration = WRAP(radduration, 1, RADIATION_DURATION_MAX+1) radstrength = WRAP(radstrength, 1, RADIATION_STRENGTH_MAX+1) @@ -459,7 +603,7 @@ ui_interact(usr) sleep(radduration*10) - current_screen = "mainmenu" + current_screen = "ui" if(viable_occupant && connected && connected.occupant==viable_occupant) viable_occupant.radiation += (RADIATION_IRRADIATION_MULTIPLIER*radduration*radstrength)/(connected.damage_coeff ** 2) //Read comment in "transferbuffer" section above for explanation @@ -480,35 +624,146 @@ viable_occupant.dna.uni_identity = copytext(viable_occupant.dna.uni_identity, 1, num) + hex + copytext(viable_occupant.dna.uni_identity, num+1, 0) viable_occupant.updateappearance(mutations_overlay_update=1) - if("pulsese") - var/len = length(viable_occupant.dna.struc_enzymes) - num = WRAP(num, 1, len+1) - num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) - - var/block = round((num-1)/DNA_BLOCK_SIZE)+1 - var/subblock = num - block*DNA_BLOCK_SIZE - last_change = "SE #[block]-[subblock]; " - - var/hex = copytext(viable_occupant.dna.struc_enzymes, num, num+1) - last_change += "[hex]" - hex = scramble(hex, radstrength, radduration) - last_change += "->[hex]" - - viable_occupant.dna.struc_enzymes = copytext(viable_occupant.dna.struc_enzymes, 1, num) + hex + copytext(viable_occupant.dna.struc_enzymes, num+1, 0) - viable_occupant.domutcheck() else current_screen = "mainmenu" if(connected) connected.locked = locked_state + if("inspect") + if(viable_occupant) + var/list/mutations = get_mutation_list(TRUE) + if(current_mutation == mutations[num]) + current_mutation = null + else + current_mutation = mutations[num] + if("inspectstorage") + current_storage = num + current_screen = "info" + if("savemut") + if(viable_occupant) + var/succes + if(LAZYLEN(stored_mutations) < max_storage) + var/mutation = text2path(href_list["path"]) + if(ispath(mutation, /datum/mutation/human)) //sanity checks + var/datum/mutation/human/HM = viable_occupant.dna.get_mutation(mutation) + if(HM) + var/datum/mutation/human/A = new HM.type() + A.copy_mutation(HM) + succes = TRUE + stored_mutations[A] = get_sequence(mutation) //We only store active mutations and all active mutations have the full sequence. + to_chat(usr,"Mutation succesfully stored.") + if(!succes) //we can exactly return here + to_chat(usr,"Mutation storage is full.") + if("deletemut") + var/datum/mutation/human/HM = stored_mutations[num] + if(HM) + stored_mutations.Remove(HM) + qdel(HM) + current_screen = "mutations" + if("activator") + if(injectorready < world.time) + var/mutation = text2path(href_list["path"]) + if(ispath(mutation, /datum/mutation/human)) + var/datum/mutation/human/HM = get_valid_mutation(mutation) + if(HM) + var/obj/item/dnainjector/activator/I = new /obj/item/dnainjector/activator(loc) + I.add_mutations += HM.type + I.name = "[HM.name] activator" + I.damage_coeff = connected.damage_coeff*4 + injectorready = world.time + INJECTOR_TIMEOUT + if("mutator") + if(injectorready < world.time) + var/mutation = text2path(href_list["path"]) + if(ispath(mutation, /datum/mutation/human)) + var/datum/mutation/human/HM = get_valid_mutation(mutation) + if(HM) + var/obj/item/dnainjector/activator/I = new /obj/item/dnainjector/activator(loc) + I.add_mutations += HM.type + I.doitanyway = TRUE + I.name = "[HM.name] injector" + I.damage_coeff = connected.damage_coeff + injectorready = world.time + INJECTOR_TIMEOUT*5 + if("nullify") + if(viable_occupant) + var/datum/mutation/human/A = viable_occupant.dna.get_mutation(current_mutation) + if(A && (!mutation_in_sequence(current_mutation, viable_occupant.dna) || A.scrambled)) + viable_occupant.dna.remove_mutation(current_mutation) + viable_occupant.dna.update_instability(TRUE) + current_screen = "mainmenu" + current_mutation = null + if("pulsegene") + if(current_screen != "info") + var/path = text2path(href_list["path"]) + if(viable_occupant && num && (path in viable_occupant.dna.mutation_index)) + var/list/genes = list("A","T","G","C","X") + if(jokerready < world.time) + genes += "JOKER" + var/sequence = get_gene_string(path, viable_occupant.dna) + var/original = sequence[num] + var/new_gene = input("From [original] to-", "New block", original) as null|anything in genes + if(!new_gene) + new_gene = original + if(viable_occupant == get_viable_occupant()) //No cheesing + if((new_gene == "JOKER") && (jokerready < world.time)) + var/true_genes = get_sequence(current_mutation) + new_gene = true_genes[num] + jokerready = world.time + JOKER_TIMEOUT - (JOKER_UPGRADE * (connected.precision_coeff-1)) + sequence = copytext(sequence, 1, num) + new_gene + copytext(sequence, num+1, length(sequence)+1) + viable_occupant.dna.mutation_index[path] = sequence + viable_occupant.radiation += RADIATION_STRENGTH_MULTIPLIER/connected.damage_coeff + viable_occupant.domutcheck() + if("exportdiskmut") + if(diskette && !diskette.read_only) + var/path = text2path(href_list["path"]) + if(ispath(path, /datum/mutation/human)) + var/datum/mutation/human/A = get_valid_mutation(path) + if(A && diskette && (LAZYLEN(diskette.mutations) < diskette.max_mutations)) + var/datum/mutation/human/HM = new A.type() + diskette.mutations += HM + HM.copy_mutation(A) + to_chat(usr, "Succesfully written [A.name] to [diskette.name].") + if("deletediskmut") + if(diskette && !diskette.read_only) + if(num && (LAZYLEN(diskette.mutations) >= num)) + var/datum/mutation/human/A = diskette.mutations[num] + diskette.mutations.Remove(A) + qdel(A) + if("importdiskmut") + if(diskette && (LAZYLEN(diskette.mutations) >= num)) + if(LAZYLEN(stored_mutations) < max_storage) + var/datum/mutation/human/A = diskette.mutations[num] + var/datum/mutation/human/HM = new A.type() + HM.copy_mutation(A) + stored_mutations[HM] = get_sequence(HM.type) + to_chat(usr,"Succesfully written [A.name] to storage.") + if("combine") + if(num && (LAZYLEN(stored_mutations) >= num)) + if(LAZYLEN(stored_mutations) < max_storage) + var/datum/mutation/human/A = stored_mutations[num] + var/path = A.type + if(combine) + var/result_path = get_mixed_mutation(combine, path) + if(result_path) + stored_mutations[new result_path()] = get_sequence(result_path) + to_chat(usr, "Succes! New mutation has been added to storage") + discover(result_path) + combine = null + else + to_chat(usr, "Failed. No mutation could be created.") + combine = null + else + combine = path + to_chat(usr,"Selected [A.name] for combining") + else + to_chat(usr, "Not enough space to store potential mutation.") ui_interact(usr,last_change) /obj/machinery/computer/scan_consolenew/proc/scramble(input,rs,rd) var/length = length(input) var/ran = gaussian(0, rs*RADIATION_STRENGTH_MULTIPLIER) if(ran == 0) - ran = pick(-1,1) //hacky, statistically should almost never happen. 0-change makes people mad though + ran = pick(-1,1) //hacky, statistically should almost never happen. 0-chance makes people mad though else if(ran < 0) ran = round(ran) //negative, so floor it else @@ -537,10 +792,6 @@ //Each laser level reduces damage by lvl^2, so no effect on 1 lvl, 4 times less damage on 2 and 9 times less damage on 3 //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove switch(action) - if(SCANNER_ACTION_SE) - if(buffer_slot["SE"]) - viable_occupant.dna.struc_enzymes = buffer_slot["SE"] - viable_occupant.domutcheck() if(SCANNER_ACTION_UI) if(buffer_slot["UI"]) viable_occupant.dna.uni_identity = buffer_slot["UI"] @@ -567,10 +818,47 @@ apply_buffer(delayed_action["action"],delayed_action["buffer"]) delayed_action = null //or make it stick + reset button ? +/obj/machinery/computer/scan_consolenew/proc/get_valid_mutation(mutation) + for(var/datum/mutation/human/A in stored_mutations) + if(A.type == mutation) + return A + var/mob/living/carbon/C = get_viable_occupant() + if(C) + return C.dna.get_mutation(mutation) + + +/obj/machinery/computer/scan_consolenew/proc/get_mutation_list(include_storage) //Returns a list of the mutation index types and any extra mutations + var/mob/living/carbon/viable_occupant = get_viable_occupant() + var/list/paths = list() + if(viable_occupant) + for(var/A in viable_occupant.dna.mutation_index) + paths += A + for(var/datum/mutation/human/A in viable_occupant.dna.mutations) + if(A.class == MUT_EXTRA) + paths += A.type + if(include_storage) + for(var/datum/mutation/human/A in stored_mutations) + paths += A.type + return paths + +/obj/machinery/computer/scan_consolenew/proc/get_valid_gene_string(mutation) + var/mob/living/carbon/C = get_viable_occupant() + if(C && (mutation in C.dna.mutation_index)) + return get_gene_string(mutation, C.dna) + else if(C && (LAZYLEN(C.dna.mutations))) + for(var/datum/mutation/human/A in C.dna.mutations) + if(A.type == mutation) + return get_sequence(mutation) + for(var/datum/mutation/human/A in stored_mutations) + if(A.type == mutation) + return stored_mutations[A] + +/obj/machinery/computer/scan_consolenew/proc/discover(mutation) + if(stored_research && !(mutation in stored_research.discovered_mutations)) + stored_research.discovered_mutations += mutation + return TRUE /////////////////////////// DNA MACHINES #undef INJECTOR_TIMEOUT -#undef REJUVENATORS_INJECT -#undef REJUVENATORS_MAX #undef NUMBER_OF_BUFFERS #undef RADIATION_STRENGTH_MAX diff --git a/code/game/machinery/exp_cloner.dm b/code/game/machinery/exp_cloner.dm index 683451945b0..9598717c9f8 100644 --- a/code/game/machinery/exp_cloner.dm +++ b/code/game/machinery/exp_cloner.dm @@ -26,9 +26,9 @@ var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) H.dna.remove_mutation_group(unclean_mutations) if(efficiency > 5 && prob(20)) - H.randmutvg() + H.easy_randmut(POSITIVE) if(efficiency < 3 && prob(50)) - var/mob/M = H.randmutb() + var/mob/M = H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) if(ismob(M)) H = M @@ -294,6 +294,6 @@ temp = "Cloning cycle already in progress." playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else - pod.growclone(null, mob_occupant.real_name, dna.uni_identity, dna.struc_enzymes, clone_species, dna.features, mob_occupant.faction) + pod.growclone(null, mob_occupant.real_name, dna.uni_identity, dna.mutation_index, clone_species, dna.features, mob_occupant.faction) temp = "[mob_occupant.real_name] => Cloning data sent to pod." playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index c914a35aee4..148f029a699 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -57,7 +57,7 @@ build_path = /obj/machinery/dna_scannernew req_components = list( /obj/item/stock_parts/scanning_module = 1, - /obj/item/stock_parts/manipulator = 1, + /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/glass = 1, /obj/item/stack/cable_coil = 2) @@ -500,8 +500,8 @@ name = "Scanner Gate (Machine Board)" build_path = /obj/machinery/scanner_gate req_components = list( - /obj/item/stock_parts/scanning_module = 3) - + /obj/item/stock_parts/scanning_module = 3) + /obj/item/circuitboard/machine/pacman name = "PACMAN-type Generator (Machine Board)" build_path = /obj/machinery/power/port_gen/pacman diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 2ef1e3e01ae..b5c5cd88491 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -6,6 +6,7 @@ T-RAY HEALTH ANALYZER GAS ANALYZER SLIME SCANNER +NANITE SCANNER */ /obj/item/t_scanner @@ -652,3 +653,62 @@ SLIME SCANNER var/response = SEND_SIGNAL(M, COMSIG_NANITE_SCAN, user, TRUE) if(!response) to_chat(user, "No nanites detected in the subject.") + +/obj/item/sequence_scanner + name = "genetic sequence scanner" + icon = 'icons/obj/device.dmi' + icon_state = "gene" + item_state = "healthanalyzer" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + desc = "A hand-held scanner able to swiftly scan someone for potential mutations. Hold near a DNA console to update from their database." + flags_1 = CONDUCT_1 + item_flags = NOBLUDGEON + slot_flags = ITEM_SLOT_BELT + throwforce = 3 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=200) + var/list/discovered = list() //hit a dna console to update the scanners database + +/obj/item/sequence_scanner/attack(mob/living/M, mob/living/carbon/human/user) + user.visible_message("[user] has analyzed [M]'s genetic sequence.") + + add_fingerprint(user) + + gene_scan(M, user, src) + +/obj/item/sequence_scanner/afterattack(obj/O, mob/user, proximity) + . = ..() + if(!istype(O) || !proximity) + return + + if(istype(O, /obj/machinery/computer/scan_consolenew)) + var/obj/machinery/computer/scan_consolenew/C = O + if(C.stored_research) + to_chat(user, "[name] database updated.") + discovered = C.stored_research.discovered_mutations + else + to_chat(user,"No database to update from.") + +/proc/gene_scan(mob/living/carbon/C, mob/living/user, obj/item/sequence_scanner/G) + if(!iscarbon(C) || !C.has_dna()) + return + to_chat(user, "[C.name]'s potential mutations.") + for(var/A in C.dna.mutation_index) + var/datum/mutation/human/HM = get_initialized_mutation(A) + var/mut_name + if(G && (A in G.discovered)) + mut_name = "[HM.name] ([HM.alias])" + else + mut_name = HM.alias + var/temp = get_gene_string(HM.type, C.dna) + var/display + for(var/i in 0 to length(temp) / DNA_MUTATION_BLOCKS-1) + if(i) + display += "-" + display += copytext(temp, 1 + i*DNA_MUTATION_BLOCKS, DNA_MUTATION_BLOCKS*(1+i) + 1) + + + to_chat(user, "- [mut_name] > [display]") diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index d5ac5d9c523..a2390c6e758 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -14,33 +14,25 @@ var/list/add_mutations = list() var/list/remove_mutations = list() - var/list/add_mutations_static = list() - var/list/remove_mutations_static = list() - var/used = 0 /obj/item/dnainjector/attack_paw(mob/user) return attack_hand(user) -/obj/item/dnainjector/proc/prepare() - for(var/mut_key in add_mutations_static) - add_mutations.Add(GLOB.mutations_list[mut_key]) - for(var/mut_key in remove_mutations_static) - remove_mutations.Add(GLOB.mutations_list[mut_key]) - /obj/item/dnainjector/proc/inject(mob/living/carbon/M, mob/user) - prepare() - if(M.has_dna() && !M.has_trait(TRAIT_RADIMMUNE) && !M.has_trait(TRAIT_NOCLONE)) M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" - for(var/datum/mutation/human/HM in remove_mutations) - HM.force_lose(M) - for(var/datum/mutation/human/HM in add_mutations) - if(HM.name == RACEMUT) + for(var/HM in remove_mutations) + M.dna.remove_mutation(HM) + for(var/HM in add_mutations) + if(HM == RACEMUT) message_admins("[ADMIN_LOOKUPFLW(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") log_msg += " (MONKEY)" - HM.force_give(M) + if(mutation_in_sequence(HM, M.dna)) + M.dna.activate_mutation(HM) + else + M.dna.add_mutation(HM, MUT_EXTRA) if(fields) if(fields["name"] && fields["UE"] && fields["blood_type"]) M.real_name = fields["name"] @@ -90,123 +82,123 @@ /obj/item/dnainjector/antihulk name = "\improper DNA injector (Anti-Hulk)" desc = "Cures green skin." - remove_mutations_static = list(HULK) + remove_mutations = list(HULK) /obj/item/dnainjector/hulkmut name = "\improper DNA injector (Hulk)" desc = "This will make you big and strong, but give you a bad skin condition." - add_mutations_static = list(HULK) + add_mutations = list(HULK) /obj/item/dnainjector/xraymut name = "\improper DNA injector (X-ray)" desc = "Finally you can see what the Captain does." - add_mutations_static = list(XRAY) + add_mutations = list(XRAY) /obj/item/dnainjector/antixray name = "\improper DNA injector (Anti-X-ray)" desc = "It will make you see harder." - remove_mutations_static = list(XRAY) + remove_mutations = list(XRAY) ///////////////////////////////////// /obj/item/dnainjector/antiglasses name = "\improper DNA injector (Anti-Glasses)" desc = "Toss away those glasses!" - remove_mutations_static = list(BADSIGHT) + remove_mutations = list(BADSIGHT) /obj/item/dnainjector/glassesmut name = "\improper DNA injector (Glasses)" desc = "Will make you need dorkish glasses." - add_mutations_static = list(BADSIGHT) + add_mutations = list(BADSIGHT) /obj/item/dnainjector/epimut name = "\improper DNA injector (Epi.)" desc = "Shake shake shake the room!" - add_mutations_static = list(EPILEPSY) + add_mutations = list(EPILEPSY) /obj/item/dnainjector/antiepi name = "\improper DNA injector (Anti-Epi.)" desc = "Will fix you up from shaking the room." - remove_mutations_static = list(EPILEPSY) + remove_mutations = list(EPILEPSY) //////////////////////////////////// /obj/item/dnainjector/anticough name = "\improper DNA injector (Anti-Cough)" desc = "Will stop that awful noise." - remove_mutations_static = list(COUGH) + remove_mutations = list(COUGH) /obj/item/dnainjector/coughmut name = "\improper DNA injector (Cough)" desc = "Will bring forth a sound of horror from your throat." - add_mutations_static = list(COUGH) + add_mutations = list(COUGH) /obj/item/dnainjector/antidwarf name = "\improper DNA injector (Anti-Dwarfism)" desc = "Helps you grow big and strong." - remove_mutations_static = list(DWARFISM) + remove_mutations = list(DWARFISM) /obj/item/dnainjector/dwarf name = "\improper DNA injector (Dwarfism)" desc = "It's a small world after all." - add_mutations_static = list(DWARFISM) + add_mutations = list(DWARFISM) /obj/item/dnainjector/clumsymut name = "\improper DNA injector (Clumsy)" desc = "Makes clown minions." - add_mutations_static = list(CLOWNMUT) + add_mutations = list(CLOWNMUT) /obj/item/dnainjector/anticlumsy name = "\improper DNA injector (Anti-Clumsy)" desc = "Apply this for Security Clown." - remove_mutations_static = list(CLOWNMUT) + remove_mutations = list(CLOWNMUT) /obj/item/dnainjector/antitour name = "\improper DNA injector (Anti-Tour.)" desc = "Will cure Tourette's." - remove_mutations_static = list(TOURETTES) + remove_mutations = list(TOURETTES) /obj/item/dnainjector/tourmut name = "\improper DNA injector (Tour.)" desc = "Gives you a nasty case of Tourette's." - add_mutations_static = list(TOURETTES) + add_mutations = list(TOURETTES) /obj/item/dnainjector/stuttmut name = "\improper DNA injector (Stutt.)" desc = "Makes you s-s-stuttterrr." - add_mutations_static = list(NERVOUS) + add_mutations = list(NERVOUS) /obj/item/dnainjector/antistutt name = "\improper DNA injector (Anti-Stutt.)" desc = "Fixes that speaking impairment." - remove_mutations_static = list(NERVOUS) + remove_mutations = list(NERVOUS) /obj/item/dnainjector/antifire name = "\improper DNA injector (Anti-Fire)" desc = "Cures fire." - remove_mutations_static = list(COLDRES) + remove_mutations = list(SPACEMUT) /obj/item/dnainjector/firemut name = "\improper DNA injector (Fire)" desc = "Gives you fire." - add_mutations_static = list(COLDRES) + add_mutations = list(SPACEMUT) /obj/item/dnainjector/blindmut name = "\improper DNA injector (Blind)" desc = "Makes you not see anything." - add_mutations_static = list(BLINDMUT) + add_mutations = list(BLINDMUT) /obj/item/dnainjector/antiblind name = "\improper DNA injector (Anti-Blind)" desc = "IT'S A MIRACLE!!!" - remove_mutations_static = list(BLINDMUT) + remove_mutations = list(BLINDMUT) /obj/item/dnainjector/antitele name = "\improper DNA injector (Anti-Tele.)" desc = "Will make you not able to control your mind." - remove_mutations_static = list(TK) + remove_mutations = list(TK) /obj/item/dnainjector/telemut name = "\improper DNA injector (Tele.)" desc = "Super brain man!" - add_mutations_static = list(TK) + add_mutations = list(TK) /obj/item/dnainjector/telemut/darkbundle name = "\improper DNA injector" @@ -215,100 +207,99 @@ /obj/item/dnainjector/deafmut name = "\improper DNA injector (Deaf)" desc = "Sorry, what did you say?" - add_mutations_static = list(DEAFMUT) + add_mutations = list(DEAFMUT) /obj/item/dnainjector/antideaf name = "\improper DNA injector (Anti-Deaf)" desc = "Will make you hear once more." - remove_mutations_static = list(DEAFMUT) + remove_mutations = list(DEAFMUT) /obj/item/dnainjector/h2m name = "\improper DNA injector (Human > Monkey)" desc = "Will make you a flea bag." - add_mutations_static = list(RACEMUT) + add_mutations = list(RACEMUT) /obj/item/dnainjector/m2h name = "\improper DNA injector (Monkey > Human)" desc = "Will make you...less hairy." - remove_mutations_static = list(RACEMUT) + remove_mutations = list(RACEMUT) /obj/item/dnainjector/antichameleon name = "\improper DNA injector (Anti-Chameleon)" - remove_mutations_static = list(CHAMELEON) + remove_mutations = list(CHAMELEON) /obj/item/dnainjector/chameleonmut name = "\improper DNA injector (Chameleon)" - add_mutations_static = list(CHAMELEON) + add_mutations = list(CHAMELEON) /obj/item/dnainjector/antiwacky name = "\improper DNA injector (Anti-Wacky)" - remove_mutations_static = list(WACKY) + remove_mutations = list(WACKY) /obj/item/dnainjector/wackymut name = "\improper DNA injector (Wacky)" - add_mutations_static = list(WACKY) + add_mutations = list(WACKY) /obj/item/dnainjector/antimute name = "\improper DNA injector (Anti-Mute)" - remove_mutations_static = list(MUT_MUTE) + remove_mutations = list(MUT_MUTE) /obj/item/dnainjector/mutemut name = "\improper DNA injector (Mute)" - add_mutations_static = list(MUT_MUTE) + add_mutations = list(MUT_MUTE) /obj/item/dnainjector/antismile name = "\improper DNA injector (Anti-Smile)" - remove_mutations_static = list(SMILE) + remove_mutations = list(SMILE) /obj/item/dnainjector/smilemut name = "\improper DNA injector (Smile)" - add_mutations_static = list(SMILE) + add_mutations = list(SMILE) /obj/item/dnainjector/unintelligiblemut name = "\improper DNA injector (Unintelligible)" - add_mutations_static = list(UNINTELLIGIBLE) + add_mutations = list(UNINTELLIGIBLE) /obj/item/dnainjector/antiunintelligible name = "\improper DNA injector (Anti-Unintelligible)" - remove_mutations_static = list(UNINTELLIGIBLE) + remove_mutations = list(UNINTELLIGIBLE) /obj/item/dnainjector/swedishmut name = "\improper DNA injector (Swedish)" - add_mutations_static = list(SWEDISH) + add_mutations = list(SWEDISH) /obj/item/dnainjector/antiswedish name = "\improper DNA injector (Anti-Swedish)" - remove_mutations_static = list(SWEDISH) + remove_mutations = list(SWEDISH) /obj/item/dnainjector/chavmut name = "\improper DNA injector (Chav)" - add_mutations_static = list(CHAV) + add_mutations = list(CHAV) /obj/item/dnainjector/antichav name = "\improper DNA injector (Anti-Chav)" - remove_mutations_static = list(CHAV) + remove_mutations = list(CHAV) /obj/item/dnainjector/elvismut name = "\improper DNA injector (Elvis)" - add_mutations_static = list(ELVIS) + add_mutations = list(ELVIS) /obj/item/dnainjector/antielvis name = "\improper DNA injector (Anti-Elvis)" - remove_mutations_static = list(ELVIS) + remove_mutations = list(ELVIS) /obj/item/dnainjector/lasereyesmut name = "\improper DNA injector (Laser Eyes)" - add_mutations_static = list(LASEREYES) + add_mutations = list(LASEREYES) /obj/item/dnainjector/antilasereyes name = "\improper DNA injector (Anti-Laser Eyes)" - remove_mutations_static = list(LASEREYES) + remove_mutations = list(LASEREYES) /obj/item/dnainjector/timed var/duration = 600 /obj/item/dnainjector/timed/inject(mob/living/carbon/M, mob/user) - prepare() if(M.stat == DEAD) //prevents dead people from having their DNA changed to_chat(user, "You can't modify [M]'s DNA while [M.p_theyre()] dead.") return FALSE @@ -317,23 +308,22 @@ M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" var/endtime = world.time+duration - for(var/datum/mutation/human/HM in remove_mutations) - if(HM.name == RACEMUT) + for(var/mutation in remove_mutations) + if(mutation == RACEMUT) if(ishuman(M)) continue - M = HM.force_lose(M) + M = M.dna.remove_mutation(mutation) else - HM.force_lose(M) - for(var/datum/mutation/human/HM in add_mutations) - if((HM in M.dna.mutations) && !(M.dna.temporary_mutations[HM.name])) + M.dna.remove_mutation(mutation) + for(var/mutation in add_mutations) + if(M.dna.get_mutation(mutation)) continue //Skip permanent mutations we already have. - if(HM.name == RACEMUT && ishuman(M)) + if(mutation == RACEMUT && ishuman(M)) message_admins("[ADMIN_LOOKUPFLW(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") log_msg += " (MONKEY)" - M = HM.force_give(M) + M = M.dna.add_mutation(mutation, MUT_OTHER, endtime) else - HM.force_give(M) - M.dna.temporary_mutations[HM.name] = endtime + M.dna.add_mutation(mutation, MUT_OTHER, endtime) if(fields) if(fields["name"] && fields["UE"] && fields["blood_type"]) if(!M.dna.previous["name"]) @@ -361,9 +351,30 @@ /obj/item/dnainjector/timed/hulk name = "\improper DNA injector (Hulk)" desc = "This will make you big and strong, but give you a bad skin condition." - add_mutations_static = list(HULK) + add_mutations = list(HULK) /obj/item/dnainjector/timed/h2m name = "\improper DNA injector (Human > Monkey)" desc = "Will make you a flea bag." - add_mutations_static = list(RACEMUT) + add_mutations = list(RACEMUT) + +/obj/item/dnainjector/activator + name = "\improper DNA activator" + desc = "Activates the current mutation on injection, if the subject has it." + var/doitanyway = FALSE + +/obj/item/dnainjector/activator/inject(mob/living/carbon/M, mob/user) + if(M.has_dna() && !M.has_trait(TRAIT_RADIMMUNE) && !M.has_trait(TRAIT_NOCLONE)) + M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) + var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" + for(var/mutation in add_mutations) + if(!M.dna.activate_mutation(mutation) && !doitanyway) + log_msg += "(FAILED)" + else if(doitanyway) + M.dna.add_mutation(mutation, MUT_EXTRA) + log_msg += "([mutation])" + log_attack("[log_msg] [loc_name(user)]") + M.dna.update_instability(TRUE) + return TRUE + return FALSE + diff --git a/code/modules/antagonists/changeling/powers/chameleon_skin.dm b/code/modules/antagonists/changeling/powers/chameleon_skin.dm index 9cb63ce675c..0888711b67d 100644 --- a/code/modules/antagonists/changeling/powers/chameleon_skin.dm +++ b/code/modules/antagonists/changeling/powers/chameleon_skin.dm @@ -11,16 +11,15 @@ if(!istype(H)) // req_human could be done in can_sting stuff. return ..() - var/datum/mutation/human/HM = GLOB.mutations_list[CHAMELEON] - if(HM in H.dna.mutations) - HM.force_lose(H) + if(H.dna.get_mutation(CHAMELEON)) + H.dna.remove_mutation(CHAMELEON) + + else - HM.force_give(H) + H.dna.add_mutation(CHAMELEON) return TRUE /obj/effect/proc_holder/changeling/chameleon_skin/on_refund(mob/user) if(user.has_dna()) var/mob/living/carbon/C = user - var/datum/mutation/human/HM = GLOB.mutations_list[CHAMELEON] - if(HM in C.dna.mutations) - HM.force_lose(C) + C.dna.remove_mutation(CHAMELEON) \ No newline at end of file diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 9e81c1d8027..8f8f2a309f4 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -70,7 +70,7 @@ /mob/living/simple_animal/revenant/Initialize(mapload) . = ..() AddSpell(new /obj/effect/proc_holder/spell/targeted/night_vision/revenant(null)) - AddSpell(new /obj/effect/proc_holder/spell/targeted/revenant_transmit(null)) + AddSpell(new /obj/effect/proc_holder/spell/targeted/telepathy/revenant(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/defile(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/overload(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/blight(null)) diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index 4e73c83ccef..51d48697276 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -106,36 +106,14 @@ action_background_icon_state = "bg_revenant" //Transmit: the revemant's only direct way to communicate. Sends a single message silently to a single mob -/obj/effect/proc_holder/spell/targeted/revenant_transmit - name = "Transmit" - desc = "Telepathically transmits a message to the target." +/obj/effect/proc_holder/spell/targeted/telepathy/revenant + name = "Revenant Transmit" panel = "Revenant Abilities" - charge_max = 0 - clothes_req = 0 - range = 7 - include_user = 0 action_icon = 'icons/mob/actions/actions_revenant.dmi' action_icon_state = "r_transmit" action_background_icon_state = "bg_revenant" - -/obj/effect/proc_holder/spell/targeted/revenant_transmit/cast(list/targets, mob/living/simple_animal/revenant/user = usr) - for(var/mob/living/M in targets) - var/msg = stripped_input(usr, "What do you wish to tell [M]?", null, "") - if(!msg) - charge_counter = charge_max - return - log_directed_talk(user, M, msg, LOG_SAY, "revenant whisper") - to_chat(user, "You transmit to [M]: [msg]") - if(!M.anti_magic_check(FALSE, TRUE)) //hear no evil - to_chat(M, "You hear something behind you talking... [msg]") - for(var/ded in GLOB.dead_mob_list) - if(!isobserver(ded)) - continue - var/follow_rev = FOLLOW_LINK(ded, user) - var/follow_whispee = FOLLOW_LINK(ded, M) - to_chat(ded, "[follow_rev] [user] Revenant Transmit: \"[msg]\" to [follow_whispee] [M]") - - + notice = "revennotice" + boldnotice = "revenboldnotice" /obj/effect/proc_holder/spell/aoe_turf/revenant clothes_req = 0 diff --git a/code/modules/antagonists/wishgranter/wishgranter.dm b/code/modules/antagonists/wishgranter/wishgranter.dm index 21cab26d1e0..67359b28d3c 100644 --- a/code/modules/antagonists/wishgranter/wishgranter.dm +++ b/code/modules/antagonists/wishgranter/wishgranter.dm @@ -25,5 +25,5 @@ return H.dna.add_mutation(HULK) H.dna.add_mutation(XRAY) - H.dna.add_mutation(COLDRES) + H.dna.add_mutation(SPACEMUT) H.dna.add_mutation(TK) \ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index beb6804b6e6..964d546be67 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -94,7 +94,7 @@ to_chat(user, "Your wish is granted, but at a terrible cost...") to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart.") user.dna.add_mutation(LASEREYES) - user.dna.add_mutation(COLDRES) + user.dna.add_mutation(SPACEMUT) user.dna.add_mutation(XRAY) user.set_species(/datum/species/shadow) if("Wealth") diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 7c08a3332ce..efa0ee02019 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -632,3 +632,10 @@ GLOBAL_LIST_EMPTY(asset_datums) Insert(initial(D.id), I) return ..() + +/datum/asset/simple/genetics + assets = list( + "dna_discovered.png" = 'html/dna_discovered.png', + "dna_undiscovered.png" = 'html/dna_undiscovered.png', + "dna_extra.png" = 'html/dna_extra.png' +) diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index f09c0481f61..c03b81c031f 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -57,7 +57,7 @@ var/datum/disease/dnaspread/DS = D DS.strain_data["name"] = H.real_name DS.strain_data["UI"] = H.dna.uni_identity - DS.strain_data["SE"] = H.dna.struc_enzymes + DS.strain_data["SE"] = H.dna.mutation_index else D = new virus_type() else diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index e9b39bbc8a5..14140941729 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -168,6 +168,7 @@ Geneticist shoes = /obj/item/clothing/shoes/sneakers/white suit = /obj/item/clothing/suit/toggle/labcoat/genetics suit_store = /obj/item/flashlight/pen + l_pocket = /obj/item/sequence_scanner backpack = /obj/item/storage/backpack/genetics satchel = /obj/item/storage/backpack/satchel/gen diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 7a11cb7e5f6..251b3b1878d 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -921,7 +921,7 @@ /mob/living/carbon/can_resist() return bodyparts.len > 2 && ..() - + /mob/living/carbon/proc/hypnosis_vulnerable() if(has_trait(TRAIT_MINDSHIELD)) return FALSE diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 89949132ca1..eb64b162ab8 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -44,7 +44,7 @@ /mob/living/carbon/human/Move(NewLoc, direct) . = ..() for(var/datum/mutation/human/HM in dna.mutations) - HM.on_move(src, NewLoc) + HM.on_move(NewLoc) if(shoes) if(mobility_flags & MOBILITY_STAND) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 94e8121ad58..b1e6136f808 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -308,7 +308,7 @@ /mob/living/carbon/human/proc/handle_active_genes() for(var/datum/mutation/human/HM in dna.mutations) - HM.on_life(src) + HM.on_life() /mob/living/carbon/human/proc/handle_heart() var/we_breath = !has_trait(TRAIT_NOBREATH, SPECIES_TRAIT) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index c381c4f3770..8c192d36f98 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -45,6 +45,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/siemens_coeff = 1 //base electrocution coefficient var/damage_overlay_type = "human" //what kind of damage overlays (if any) appear on our species when wounded? var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"] + var/inert_mutation = DWARFISM //special mutation that can be found in the genepool. Dont leave empty or changing species will be a headache var/deathsound //used to set the mobs deathsound on species change // species-only traits. Can be found in DNA.dm @@ -301,6 +302,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) C.Digitigrade_Leg_Swap(TRUE) for(var/X in inherent_traits) C.remove_trait(X, SPECIES_TRAIT) + if((inert_mutation != new_species.inert_mutation) && LAZYLEN(C.dna.mutation_index)) + C.dna.remove_mutation(inert_mutation) + C.dna.mutation_index[C.dna.mutation_index.Find(inert_mutation)] = new_species.inert_mutation + C.dna.mutation_index[new_species.inert_mutation] = create_sequence(new_species.inert_mutation) C.remove_movespeed_modifier(MOVESPEED_ID_SPECIES) SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) @@ -1045,7 +1050,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(radiation > RAD_MOB_MUTATE) if(prob(1)) to_chat(H, "You mutate!") - H.randmutb() + H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) H.emote("gasp") H.domutcheck() diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 4911b79a09b..9c7482c1020 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -20,6 +20,7 @@ exotic_bloodtype = "L" disliked_food = GRAIN | DAIRY liked_food = GROSS | MEAT + inert_mutation = FIREBREATH deathsound = 'sound/voice/lizard/deathsound.ogg' /datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index d140f761dc7..33f3e2c604c 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -55,9 +55,9 @@ H.Paralyze(100) H.visible_message("[H] writhes in pain as [H.p_their()] vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.") if(prob(80)) - H.randmutb() + H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) else - H.randmutg() + H.easy_randmut(POSITIVE) H.domutcheck() else H.adjustFireLoss(rand(5,15)) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 13a9693d45d..c5046329189 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -372,7 +372,6 @@ /mob/living/carbon/handle_mutations_and_radiation() if(dna && dna.temporary_mutations.len) - var/datum/mutation/human/HM for(var/mut in dna.temporary_mutations) if(dna.temporary_mutations[mut] < world.time) if(mut == UI_CHANGED) @@ -395,9 +394,9 @@ dna.previous.Remove("blood_type") dna.temporary_mutations.Remove(mut) continue - HM = GLOB.mutations_list[mut] - HM.force_lose(src) - dna.temporary_mutations.Remove(mut) + for(var/datum/mutation/human/HM in dna.mutations) + if(HM && HM.timed) + dna.remove_mutation(HM.type) radiation -= min(radiation, RAD_LOSS_PER_TICK) if(radiation > RAD_MOB_SAFE) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 2641ed064f0..358144a7df1 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -38,7 +38,7 @@ if(radiation > RAD_MOB_MUTATE) if(prob(1)) to_chat(src, "You mutate!") - randmutb() + easy_randmut(NEGATIVE+MINOR_NEGATIVE) emote("gasp") domutcheck() diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index b346048561f..6609c8f3ac3 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -49,9 +49,8 @@ O.updateappearance(icon_update=0) if(tr_flags & TR_KEEPSE) - O.dna.struc_enzymes = dna.struc_enzymes - var/datum/mutation/human/race/R = GLOB.mutations_list[RACEMUT] - O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=1)//we don't want to keep the race block inactive + O.dna.mutation_index = dna.mutation_index + O.dna.set_se(1, get_initialized_mutation(RACEMUT)) if(suiciding) O.set_suicide(suiciding) @@ -205,9 +204,8 @@ O.name = O.real_name if(tr_flags & TR_KEEPSE) - O.dna.struc_enzymes = dna.struc_enzymes - var/datum/mutation/human/race/R = GLOB.mutations_list[RACEMUT] - O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=0)//we don't want to keep the race block active + O.dna.mutation_index = dna.mutation_index + O.dna.set_se(0, get_initialized_mutation(RACEMUT)) O.domutcheck() if(suiciding) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 80fda51b48f..94918db936d 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -42,9 +42,9 @@ if((method==VAPOR && prob(min(33, reac_volume))) || method==INGEST || method==PATCH || method==INJECT) M.randmuti() if(prob(98)) - M.randmutb() + M.easy_randmut(NEGATIVE+MINOR_NEGATIVE) else - M.randmutg() + M.easy_randmut(POSITIVE) M.updateappearance() M.domutcheck() ..() diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 8263c0ba05c..97b0cf245ce 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -162,6 +162,16 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/genescanner + name = "Genetic Sequence Analyzer" + desc = "A handy hand-held analyzers for quickly determining mutations and collecting the full sequence." + id = "genescanner" + build_path = /obj/item/sequence_scanner + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 500) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + /datum/design/healthanalyzer_advanced name = "Advanced Health Analyzer" desc = "A hand-held body scanner able to distinguish vital signs of the subject with high accuracy." diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index 1603038eada..79d79e1d2a5 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -20,6 +20,7 @@ var/largest_bomb_value = 0 var/organization = "Third-Party" //Organization name, used for display. var/list/last_bitcoins = list() //Current per-second production, used for display only. + var/list/discovered_mutations = list() //Mutations discovered by genetics, this way they are shared and cant be destroyed by destroying a single console var/list/tiers = list() //Assoc list, id = number, 1 is available, 2 is all reqs are 1, so on /datum/techweb/New() diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 491237781ce..71050353425 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -56,7 +56,7 @@ display_name = "Biological Technology" description = "What makes us tick." //the MC, silly! prereq_ids = list("base") - design_ids = list("chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "medspray") + design_ids = list("chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "medspray","genescanner") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/spells/spell_types/genetic.dm b/code/modules/spells/spell_types/genetic.dm index 37fca86f46b..ae92995a9d0 100644 --- a/code/modules/spells/spell_types/genetic.dm +++ b/code/modules/spells/spell_types/genetic.dm @@ -4,7 +4,7 @@ var/list/active_on = list() var/list/traits = list() //disabilities - var/list/mutations = list() //mutation strings + var/list/mutations = list() //mutation defines var/duration = 100 //deciseconds /* Disabilities diff --git a/code/modules/spells/spell_types/telepathy.dm b/code/modules/spells/spell_types/telepathy.dm new file mode 100644 index 00000000000..db7e284ea29 --- /dev/null +++ b/code/modules/spells/spell_types/telepathy.dm @@ -0,0 +1,30 @@ +/obj/effect/proc_holder/spell/targeted/telepathy + name = "Telepathy" + desc = "Telepathically transmits a message to the target." + charge_max = 0 + clothes_req = 0 + range = 7 + include_user = 0 + action_icon = 'icons/mob/actions/actions_revenant.dmi' + action_icon_state = "r_transmit" + action_background_icon_state = "bg_spell" + var/notice = "notice" + var/boldnotice = "boldnotice" + var/magic_check = TRUE + +/obj/effect/proc_holder/spell/targeted/telepathy/cast(list/targets, mob/living/simple_animal/revenant/user = usr) + for(var/mob/living/M in targets) + var/msg = stripped_input(usr, "What do you wish to tell [M]?", null, "") + if(!msg) + charge_counter = charge_max + return + log_directed_talk(user, M, msg, LOG_SAY, "[name]") + to_chat(user, "You transmit to [M]: [msg]") + if(!magic_check || !M.anti_magic_check(FALSE, TRUE)) //hear no evil + to_chat(M, "You hear something behind you talking... [msg]") + for(var/ded in GLOB.dead_mob_list) + if(!isobserver(ded)) + continue + var/follow_rev = FOLLOW_LINK(ded, user) + var/follow_whispee = FOLLOW_LINK(ded, M) + to_chat(ded, "[follow_rev] [user] [name]: \"[msg]\" to [follow_whispee] [M]") \ No newline at end of file diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 893c7e17435..23be73e7158 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -110,7 +110,7 @@ for(var/X in C.dna.mutations) //some mutations require having specific limbs to be kept. var/datum/mutation/human/MT = X if(MT.limb_req && MT.limb_req == body_zone) - MT.force_lose(C) + C.dna.force_lose(MT) for(var/X in C.internal_organs) //internal organs inside the dismembered limb are dropped. var/obj/item/organ/O = X diff --git a/code/modules/tgs/core/tgs_version.dm b/code/modules/tgs/core/tgs_version.dm index 6b3aff677d5..b97745611fc 100644 --- a/code/modules/tgs/core/tgs_version.dm +++ b/code/modules/tgs/core/tgs_version.dm @@ -1,22 +1,22 @@ -/datum/tgs_version/New(raw_parameter) - src.raw_parameter = raw_parameter - deprefixed_parameter = replacetext(raw_parameter, "/tg/station 13 Server v", "") - var/list/version_bits = splittext(deprefixed_parameter, ".") - - suite = text2num(version_bits[1]) - if(version_bits.len > 1) - major = text2num(version_bits[2]) - if(version_bits.len > 2) - minor = text2num(version_bits[3]) - if(version_bits.len == 4) - patch = text2num(version_bits[4]) - -/datum/tgs_version/proc/Valid(allow_wildcards = FALSE) - if(suite == null) - return FALSE - if(allow_wildcards) - return TRUE - return !Wildcard() - -/datum/tgs_version/Wildcard() - return major == null || minor == null || patch == null +/datum/tgs_version/New(raw_parameter) + src.raw_parameter = raw_parameter + deprefixed_parameter = replacetext(raw_parameter, "/tg/station 13 Server v", "") + var/list/version_bits = splittext(deprefixed_parameter, ".") + + suite = text2num(version_bits[1]) + if(version_bits.len > 1) + major = text2num(version_bits[2]) + if(version_bits.len > 2) + minor = text2num(version_bits[3]) + if(version_bits.len == 4) + patch = text2num(version_bits[4]) + +/datum/tgs_version/proc/Valid(allow_wildcards = FALSE) + if(suite == null) + return FALSE + if(allow_wildcards) + return TRUE + return !Wildcard() + +/datum/tgs_version/Wildcard() + return major == null || minor == null || patch == null diff --git a/code/modules/tgs/v4/commands.dm b/code/modules/tgs/v4/commands.dm index 1e19119ecc5..1d9951bc041 100644 --- a/code/modules/tgs/v4/commands.dm +++ b/code/modules/tgs/v4/commands.dm @@ -1,69 +1,69 @@ -/datum/tgs_api/v4/proc/ListCustomCommands() - var/results = list() - custom_commands = list() - for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) - var/datum/tgs_chat_command/stc = new I - var/command_name = stc.name - if(!command_name || findtext(command_name, " ") || findtext(command_name, "'") || findtext(command_name, "\"")) - TGS_ERROR_LOG("Custom command [command_name] ([I]) can't be used as it is empty or contains illegal characters!") - continue - - if(results[command_name]) - var/datum/other = custom_commands[command_name] - TGS_ERROR_LOG("Custom commands [other.type] and [I] have the same name (\"[command_name]\"), only [other.type] will be available!") - continue - results += list(list("name" = command_name, "help_text" = stc.help_text, "admin_only" = stc.admin_only)) - custom_commands[command_name] = stc - - var/commands_file = chat_commands_json_path - if(!commands_file) - return - text2file(json_encode(results), commands_file) - -/datum/tgs_api/v4/proc/HandleCustomCommand(command_json) - var/list/data = json_decode(command_json) - var/command = data["command"] - var/user = data["user"] - var/params = data["params"] - - var/datum/tgs_chat_user/u = new - u.id = user["id"] - u.friendly_name = user["friendlyName"] - u.mention = user["mention"] - u.channel = DecodeChannel(user["channel"]) - - var/datum/tgs_chat_command/sc = custom_commands[command] - if(sc) - var/result = sc.Run(u, params) - if(result == null) - result = "" - return result - return "Unknown command: [command]!" - -/* - -The MIT License - -Copyright (c) 2017 Jordan Brown - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ +/datum/tgs_api/v4/proc/ListCustomCommands() + var/results = list() + custom_commands = list() + for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) + var/datum/tgs_chat_command/stc = new I + var/command_name = stc.name + if(!command_name || findtext(command_name, " ") || findtext(command_name, "'") || findtext(command_name, "\"")) + TGS_ERROR_LOG("Custom command [command_name] ([I]) can't be used as it is empty or contains illegal characters!") + continue + + if(results[command_name]) + var/datum/other = custom_commands[command_name] + TGS_ERROR_LOG("Custom commands [other.type] and [I] have the same name (\"[command_name]\"), only [other.type] will be available!") + continue + results += list(list("name" = command_name, "help_text" = stc.help_text, "admin_only" = stc.admin_only)) + custom_commands[command_name] = stc + + var/commands_file = chat_commands_json_path + if(!commands_file) + return + text2file(json_encode(results), commands_file) + +/datum/tgs_api/v4/proc/HandleCustomCommand(command_json) + var/list/data = json_decode(command_json) + var/command = data["command"] + var/user = data["user"] + var/params = data["params"] + + var/datum/tgs_chat_user/u = new + u.id = user["id"] + u.friendly_name = user["friendlyName"] + u.mention = user["mention"] + u.channel = DecodeChannel(user["channel"]) + + var/datum/tgs_chat_command/sc = custom_commands[command] + if(sc) + var/result = sc.Run(u, params) + if(result == null) + result = "" + return result + return "Unknown command: [command]!" + +/* + +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/unit_tests/component_tests.dm b/code/modules/unit_tests/component_tests.dm index 7cf465a3314..409d7f43222 100644 --- a/code/modules/unit_tests/component_tests.dm +++ b/code/modules/unit_tests/component_tests.dm @@ -1,12 +1,12 @@ -/datum/unit_test/component_duping/Run() - var/list/bad_dms = list() - var/list/bad_dts = list() - for(var/t in typesof(/datum/component)) - var/datum/component/comp = t - if(!isnum(initial(comp.dupe_mode))) - bad_dms += t - var/dupe_type = initial(comp.dupe_type) - if(dupe_type && !ispath(dupe_type)) - bad_dts += t - if(length(bad_dms) || length(bad_dts)) +/datum/unit_test/component_duping/Run() + var/list/bad_dms = list() + var/list/bad_dts = list() + for(var/t in typesof(/datum/component)) + var/datum/component/comp = t + if(!isnum(initial(comp.dupe_mode))) + bad_dms += t + var/dupe_type = initial(comp.dupe_type) + if(dupe_type && !ispath(dupe_type)) + bad_dts += t + if(length(bad_dms) || length(bad_dts)) Fail("Components with invalid dupe modes: ([bad_dms.Join(",")]) ||| Components with invalid dupe types: ([bad_dts.Join(",")])") \ No newline at end of file diff --git a/html/browser/common.css b/html/browser/common.css index 0883a2df92f..2e84e022f02 100644 --- a/html/browser/common.css +++ b/html/browser/common.css @@ -76,7 +76,6 @@ a.icon img, .linkOn.icon img width: 18px; height: 18px; } - ul { padding: 4px 0 0 10px; diff --git a/html/browser/scannernew.css b/html/browser/scannernew.css index c540ab8f3ce..9e9f8ce1f48 100644 --- a/html/browser/scannernew.css +++ b/html/browser/scannernew.css @@ -9,10 +9,29 @@ margin: 2px 2px 0 10px; text-align: center; } - .dnaBlock { font-family: Fixed, monospace; float: left; } - +img.selected +{ + border: 1px solid blue; +} +img.unselected +{ + border: 2px solid black; +} +div>table { + float: left; +} +td +{ + text-align: center; +} +a.clean +{ + background: none; + border: none; + marging: none; +} \ No newline at end of file diff --git a/html/dna_discovered.png b/html/dna_discovered.png new file mode 100644 index 0000000000000000000000000000000000000000..86e569fc34c8efc197d048e193d78e4e49008efc GIT binary patch literal 1715 zcmV;k22A;hP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf21rRnK~!i%?U`>( zl~o+af0qp}e{34FNF#H_J9TANTW|cgNc%HMG*ItwND4aBg!RW1B*_$-qZblGMIja_ zq7g4#maH~jG+tc+D>XIMOA*GEDE>RbI1(}SJ`geWKH%zkVS#t#`VBUSdMt@z^EOjPT`e0&aE9xT zq~x$0Rm5z2Xr(_QdEkSc)ZkgeXCfHUxHX?@I&afxOLa8mWx89kk9}x{%k8GMvy%D9 zoGTIL=#(Z8Dv$=#vEFCvVqV1Gr-Wk zO?l+Kb0=V`8LHXYb7%6WP&RBjOf_}C(r+C@d?rB7+DGYl{RTdA288!-FA6cz44txN zr1_CVx2-@x1`mArF*6isHUCG>UF1(haeInKqrl2Ul?fA~DF3bLRQcJPd`2ILzWeEZ zZ8K%$?6RX5z}zg)R7=fA=PhE|WVB4JZof?4p@5J}*~L_Tb+)BAA*ihU8r{1$!scLX zoNE_**2PFPFp9#ah6Wn&Me@+`lYGX{rOZMqzx9l^nKEXXd`S~YSqGHx%u{oyq z+zd-Yh33ibkJ#@eDO30-e$5CBmHzx~L54;zm`4v@Zl~3kF6c!nKoorUw1>*3Z=wFE zcs}bFv@QQ}N>5MYGokbj74j$Y{p}2`5>RuklSaC__{cAMVpRn*P6z01U9*=y>0M-7 zFGycqNe8QM@)0q^1#0%Vm%c`EWhJB9v`yV!@Hy?;alt1rj?WM+ef1$~ZP~&{<_vg? zY?T1i(Ej}Q`6yJhE>W?&sJr)1KGN4KkadfV_So_aUy0et<^Z&LZeHOdKibFClCrBo zhAzJSy|zHL1YpB315qFw3Lx69p+Gitad!)CN<7O)dSDR*h+20{0iD|a1E29{4;EWR z%Tz>Zch4{%`32@)Kfp)f!3rZn1x7Ur7;Q?ZpH6^gncQ1d>;PkjoUCaHn1XVMTI~W~McV*pR*cDCRB)rHL+bnx5O~q=* zOx_(FrM|Qm*jah2#vePqe88}~DXC% zZMhY}&big|03X?3c^M%_KHdq&Vkkg^FMwu|S-|Q2MMg&>e+mF^P|8$eElrhITeKpp z&V0>IDFPg0by4f8k)c*;rNfcx#vt9$EbFyfR|RQZ&D3x)lNR>2@)K<0301S0nLk0DX9sG$X`N=q@Sw6gsCA*@%!?gKE z1uF+=u>|-oudk@!BMVcF3cVn9+dKTpFH$$9P@h&TOXMRzozYWRjY^w!jMXU|6yzVX zx@80c;q;l``6#f6$SxVXB>)+vqJ9^Y9HG_FRJDbY`!#^{bed9VQ(l_=7axTOb*rT8 z7fXXNhtJ+Cyi9$4fq#2nssE@7#!>=sBsBux<@skP@ll}08k(v`sZo>fG^M=FU(v=> z8|lmTm4-FS3fW-!2Xpd<3e-SQ_1f7B0%dE_@>7t{}wJa8W97vSFbY#c4@w zOsG-sF6?17%IHU~TXrxyjzX`vWC6N+ftvbi&4;mVt#1cu4LbY7(Bjf7K`DeUXGZ;; z=hzLr!0J-iY^T@VnA8gn6`hL`T(a~e&*CGZ__ETl@7>gk9ji-vL6E6Yam67~YIVMc z$ljTAgVG<-8(Xv^=ye7*2Kimg*8dI_x)rGV8`r2WB~Kx!eCbZ?+gtMH%6ZI%`PrlCOH3lNF83`f0} zQ7@r!#ixsF{*tpH_o=x3wyI5Ln7z&bPVYqT2kKrB4!hbzOw~>M|1wsKZ-j2z3xZmz z|AV0b5hvbdVZ(H%FXx|xBKM`bXunR0ppW5+D#F-^m^$td{SDRYZq?~E$lU+{002ov JPDHLkV1oU7JevRj literal 0 HcmV?d00001 diff --git a/html/dna_extra.png b/html/dna_extra.png new file mode 100644 index 0000000000000000000000000000000000000000..2fda1339e15cc96c895c34302cb7f49b0a367e13 GIT binary patch literal 1726 zcmV;v20{6WP)Y00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf22)8yK~!i%?U{W{ zR#hCwf3UF!h*r6k)1kG-f6^+g)>>J!TD2O4FT6d&5xxMTCe#uMvY06}qcw<72_I2F zKt{H?D6uxJ#wu+qWx45`uMKHN76@~b_@3t+IL~?Rz0bK9o?PpGwrAXPc>CV({k@!X zZbWi&@+i54g-HI@B@DRch7s4?FyfjUMwq$n>x#&C`A=#%dV+m$-RfP+e!#^!Y_$M0 zZ=Aotr_70*6;CmRYbdR$kuJ_T%zRsY`LzYG7ucY*j zRzCCZ0Av3yD5TM=SA)$pLp42T-W+}vOkTk!WSKCw>v!F1`qUfv)d+Xfj zv6~S56n8&u>4`TLT2t^P#hpG$!vm#E5DXRwlXVcy!N^$LK=xg?1*LmRS{ivz|H?{N z^zv*r$Mhb($I@7#8NY|G+Y7t-cl??WAS#1J#R0}fJvE>1ICY#ddw;eUxd2h|)dOCt zn!T2G_f9-T2rDkSn^IF3@|j@dvhsaHk5*~$ox4mo`uq9FFFvlmmKmr6^d4Tih29%j zU|TOp&8(y6UweX&0(*^`O`fEeD7LC%T$}A3+7G`Bj~V-FfKcE1Lv*aCFr-kVmcS?q zR8V7OVe2&VPuLUy#UQu)(x}4-bHCa#(FQF3D9QS+={BRV?uNIh-llaTsqvn zmXEAaO9L8<8HkF(qV;^_M-{J2{WpvG)tKIy%c)@ck9?#@(u;TUD`HXXi7urB)!*?M ze>NdvRcx7CQo4)kk1XONztG(C+xRFnY8047uTk?teRTpf%j90FXB#0qtjwMnp!?%* zGpKHwmygIan{1hjsFi_GU}wh`szI{_*)Q*({ft^UO+CX4sAa7LcHZPT&6+415%_-20W|o$?htCi_ccq(#cegNa zj7prAxp?~W5(b@io%dEgvL6XDLX^C16imigfQ^Cxnnk7or{^PSeeL{e0(gTGry8tf zuKe`H5+>u|=WN#_!1h=dweA`jYn5&~H0*2-&<)M9Ub}Tyu&{qWU5|*O>iAWB#*fiD zIHb91Ly(s+9;wL;8!Yn8Q0wkrS<5JQ#%5N-0E~57V+GCaef)~(jpWamW_c4dnQV(1 zy-sT`)Uq;xvl0RB<>ke-e57HnQ9}^K6u-`|{9<)e4fU(J>}x*qQ+IMTt6>0jOdQ;c zk6B$a0s+x=@OM6%c$mmG8M~zc8K$D%OVWlX$F*9Tt1i8;_?AK1I!!e!Z|X9d_$V}} zYmekSYH2j)@V$hThp4e<37;j}TIt^cgUOTzY;}#my;NjRJUCH@q( zK!es5fQWT&4AY|Xdv=QJ;3g3GD|L}$l0b7y(l{Z-CzhZ7rUCr^B&`)(8daM z-o2?z#gfY@y05K}Y3gCPPSk>chK6#m-FK0X{3)hmEI^&bKb4nfR@_Wufw~DoWa3aB z{Xj-N49C%;E-Z4fd{MhBz-hcy?J~pcH49J=ly4?#uLy-*?aW-co(Ocy!G9U6ATUC= z90&~8x&H@a0U}VmYeQr8q)s$(6_hc%7_JsvriPGb3og!a%?%^2xnaaLH*6671AlvQ U8@Rt~`Tzg`07*qoM6N<$g56&~(EtDd literal 0 HcmV?d00001 diff --git a/html/dna_undiscovered.png b/html/dna_undiscovered.png new file mode 100644 index 0000000000000000000000000000000000000000..7184f097ac3b9ba1ccedf4660ed4498f8c15cd12 GIT binary patch literal 1758 zcmV<41|j*0P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf26IV7K~!i%?U`F_ zR8JR5oqcc}3}mq{Bp4pdgCXeHuFv?8 zGry%iLdp3rk-xrgmpslWs26xudrIxm+4n(*4RxGCltwBEW z&j4{R=H}D5p2HN3@`x-2I?Ays>4lCmD%$SQ^CqfRP**yKB5n9VBoE4 zZDD2Pt~1FOKjt}prs%+|V6;|Yozr)Xpt-tW!I2T4=L9ykb|MA=s_JA{c zjPW= z&h1P@9gy##tO|Ogcb0L!AS1Je0{%#GKzxB}3m0F^qm-&jOK!#jmz3_I@-;_8$0=pZ~At||>+V)Q6k$%1cId3sZ?@jkJ zn-n0o!0F>WieS7|uB?wA-OZM~k+YnysSgX5 z9ob61-h3C8JzT{{!Z@vyJq1=LiNoFbLu<#8ix#qDzI9;b{mRV+wOAv2ee|}3U+PhX>Q13%OAT#9JMIad`;#KdCM-Z z%V9qo*4`F%b^#o>%BWscg1~Kix%=CnhQ#gPRuk2VD(W^9xcRPn9-xa;&JEM1)2Omi zc8!YGd3gYPz+54a&m?5zT=5-Sfg$et&BrZm=JXE&Ibq;-!0ohR(4Ex0#MU{)!2wW` z&&Q+C1l`o?`JPcdbaK-}##Z2@l=V^G>vrCNgnK7HV6g~PM)JBfmRB~IROAzXfL+>f zmSeFZcb!fZ!-51R1ra4Mc0XxPj^~lLxB{Jbc`8?8ITkCrufWi8>gy@p>IIfb4%YB) z?P(r`+f7GY0N=%b3=h`f-xL?98zodI4)!rW$fyVEIF>YlRWOz|>g)?}s_*7yPQWty zLr;Bl)n+~tA=We9c%aT5Uc{0+6Ik{afvz?DmvJiuJ4~!WV7m_fKZpxZiQ?Uz-HTEg zSXwODt|Ag#IXurI5)6-oz;PxaaGXg999M|`1{~pay6K{Sm;e9(07*qoM6N<$f|4Cb AfB*mh literal 0 HcmV?d00001 diff --git a/icons/effects/genetics.dmi b/icons/effects/genetics.dmi index a9f5f433d5b5c85fa4c9a31ae97fe869700e2527..7cb002d909ed2b1f09d3fe97eed1510e2dc7b259 100644 GIT binary patch literal 22607 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 diff --git a/icons/mob/actions/actions_genetic.dmi b/icons/mob/actions/actions_genetic.dmi new file mode 100644 index 0000000000000000000000000000000000000000..72bd87f97ebb5494980bd7cd46d0337223ff2a5b GIT binary patch literal 413 zcmV;O0b>4%P)OhBM-Bu2;Ctd zd=9|k4C#|C$adh^cmO^@!qWsIq&ODfIAtmm9E0Q`3!o5;PM)8{(xbA8VorcU=F%fv zEEk*hSg-lBrYYd9YFfv*FWD~}gr<0C=bYAR*n5Rl5AmD6M~pFCg|xs800000NkvXX Hu0mjf#PYOQ literal 0 HcmV?d00001 diff --git a/icons/mob/actions/actions_spells.dmi b/icons/mob/actions/actions_spells.dmi index dd8a6fb869041345db39e53d6e17c77bb69fe1b6..44b47f5fa00651fc09d17342036bdab5413291e7 100644 GIT binary patch literal 22440 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 literal 21434 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 Ef;RkrTL1t6 diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 71695f770bc36a6dfac83f8543cc621dd70a460e..41f326111b44cddff1e9c5cb9f564a5441aefce5 100644 GIT binary patch delta 7733 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%0Aq4>asKQsU z&^IF-qLZU8?#|LfsA@^Xy53`B}sZoWpjKYnBgf6mDz zg8%D@KbarsZ!R4sfTg9SXl}o$&{NfRW(D8P)Umc{PW)YIh4BH`n!LPA%gf83k?gom z*yY9)!wdRU{1Suu#V0h6y1IIJPD&bEL_p`!4y~a`e_-w6Yk@m=g3R(GNjNB?kx#eW z9vN2VsAjCzD|w-p-N#JaHzG)I!}~#;Q38hG)n0{~*W2M}P%(7Djq94sIbu~_<;B@F z8uGBk*2YG3DhP{mJ>H&%kLu~`YXk-=T3A>RYXgl*F<`AGMYqspyHiam-{P4|ONwF8 znM3Q3n+%No++|-_`G`-scswz=s%dGFr^~u=5c6l5e2-K4!#N*My{9U5pT*Qn+iej_HB*>AGYfR6Sme5kt3|udkm%7 z+Fc{XmXZIoXAO8TMC9%}cAr-Lm_MZh5K&-#aK|&&Io)^sPqu$n-{IusYzz2YPyVC; z4&Qyt`5iWFO9L7iy(LCU>0GpVO8}WOy(6(4#>R}T+ow;Lbfmtgrx#N4$jU1I^=tAe zpHXW*Bw1WsTw3Q-Y7G6D`|n!)ZjWQVf7oQJ`;YEgqeCfRa?{@Lb~cuvCw14sx?9DX zK;ulnDmTA2Bbj{r-M2Pmb<+?5e*T4yx7RTn8>E2w1Hymsr&Qyg28~7?QeMDJp}jl> z9r%p&NIB?8T%lZLZEY>QMDE3qAeVxt#*tRae}PGDgO>3hKhjbi^LB80lEX3<78Vc_ zyn;S^MC5K6FLfvTN0ky^`fn3!dkbA^8$k5LzaKYjK3PWp!TxE#&uxm_z%Rq@83tj* zx5Fe+O+=nli~JwdEJzq(=e>9tF7O`=ts?pSzlFiY3kZa^{k{Ds*C2rS>1rBil&IN- F{U1|-6+i$0 delta 7399 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

Xa^1@S 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 Zpc-}pj$Hwzl>qK}q^$YytD<@E{{w8LHY5N5 diff --git a/tgstation.dme b/tgstation.dme index 485135fd207..e35878932c9 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -111,6 +111,7 @@ #include "code\__HELPERS\AStar.dm" #include "code\__HELPERS\cmp.dm" #include "code\__HELPERS\dates.dm" +#include "code\__HELPERS\dna.dm" #include "code\__HELPERS\files.dm" #include "code\__HELPERS\game.dm" #include "code\__HELPERS\global_lists.dm" @@ -458,10 +459,13 @@ #include "code\datums\mood_events\generic_positive_events.dm" #include "code\datums\mood_events\mood_event.dm" #include "code\datums\mood_events\needs_events.dm" +#include "code\datums\mutations\actions.dm" #include "code\datums\mutations\body.dm" #include "code\datums\mutations\chameleon.dm" #include "code\datums\mutations\cold_resistance.dm" +#include "code\datums\mutations\combined.dm" #include "code\datums\mutations\hulk.dm" +#include "code\datums\mutations\radioactive.dm" #include "code\datums\mutations\sight.dm" #include "code\datums\mutations\speech.dm" #include "code\datums\mutations\telekinesis.dm" @@ -2585,6 +2589,7 @@ #include "code\modules\spells\spell_types\shapeshift.dm" #include "code\modules\spells\spell_types\spacetime_distortion.dm" #include "code\modules\spells\spell_types\summonitem.dm" +#include "code\modules\spells\spell_types\telepathy.dm" #include "code\modules\spells\spell_types\the_traps.dm" #include "code\modules\spells\spell_types\touch_attacks.dm" #include "code\modules\spells\spell_types\trigger.dm" From c2148f63a678f7b57a0d9d1e5fd116451d12f18a Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:26:07 -0800 Subject: [PATCH 59/93] Automatic changelog generation for PR #41258 [ci skip] --- html/changelogs/AutoChangeLog-pr-41258.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41258.yml diff --git a/html/changelogs/AutoChangeLog-pr-41258.yml b/html/changelogs/AutoChangeLog-pr-41258.yml new file mode 100644 index 00000000000..819e432dbad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41258.yml @@ -0,0 +1,6 @@ +author: "Time-Green" +delete-after: True +changes: + - rscadd: "Goon genetics!" + - rscadd: "More mutations! Fire breath for lizards! Radioactive! Telepathy! Glowy! Strength, though its cosmetic and should be combined with radioactivity instead! Fiery sweat!" + - rscadd: "Adds void magnet mutation by @tralezab !" From 6f03bba6c6256ab057bb9860cdad4582500f332b Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:27:52 -0800 Subject: [PATCH 60/93] Automatic changelog generation for PR #41841 [ci skip] --- html/changelogs/AutoChangeLog-pr-41841.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41841.yml diff --git a/html/changelogs/AutoChangeLog-pr-41841.yml b/html/changelogs/AutoChangeLog-pr-41841.yml new file mode 100644 index 00000000000..4b1010f1de7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41841.yml @@ -0,0 +1,4 @@ +author: "XDTM" +delete-after: True +changes: + - bugfix: "Projected forcefields can no longer be stacked onto the same tile." From f95270404e0d748e4bf8a25e144f2a1656c9fec1 Mon Sep 17 00:00:00 2001 From: skoglol <33292112+kriskog@users.noreply.github.com> Date: Sun, 9 Dec 2018 11:30:19 +0100 Subject: [PATCH 61/93] Reorganizes the uplink, adds grenades and explosives category. (#41834) cl Skoglol tweak: Reorganized the syndicate uplinks. Items are now mostly alphabetical, some misplaced items moved to more fitting categories. tweak: Added a new category to the uplink: Grenades and Explosives. /cl This hopefully makes finding the items you are after a bit less difficult. There were some category inconsistencies, and bombs/grenades were all over the place. This alphabetizes most of the uplink, except in cases where not doing so makes more sense. The full list: https://pastebin.com/DdnN7npu Things I weren't quite sure about: Holoparasite category - kept it in dangerous weapons. Energy shield category - Moved it to dangerous, next to energy swords. --- code/modules/uplink/uplink_items.dm | 1860 ++++++++++++++------------- 1 file changed, 932 insertions(+), 928 deletions(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index bdea099bf19..2c9aaff8519 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -118,11 +118,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) include_modes = list(/datum/game_mode/nuclear) cant_discount = TRUE -/datum/uplink_item/nukeoffer/c20r - name = "C-20r bundle" - desc = "Old Faithful: The classic C-20r, bundled with two magazines and a (surplus) suppressor at discount price." - item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle - cost = 14 // normally 16 +/datum/uplink_item/nukeoffer/chemical + name = "Bioterror bundle" + desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ + box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." + item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle + cost = 30 // normally 42 /datum/uplink_item/nukeoffer/bulldog name = "Bulldog bundle" @@ -131,6 +132,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle cost = 13 // normally 16 +/datum/uplink_item/nukeoffer/c20r + name = "C-20r bundle" + desc = "Old Faithful: The classic C-20r, bundled with two magazines and a (surplus) suppressor at discount price." + item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle + cost = 14 // normally 16 + /datum/uplink_item/nukeoffer/medical name = "Medical bundle" desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ @@ -146,13 +153,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/briefcase/sniperbundle cost = 20 // normally 26 -/datum/uplink_item/nukeoffer/chemical - name = "Bioterror bundle" - desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ - box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." - item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle - cost = 30 // normally 42 - /datum/uplink_item/nukeoffer/firestarter name = "Spetsnaz Pyro bundle" desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ @@ -165,21 +165,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous category = "Conspicuous and Dangerous Weapons" -/datum/uplink_item/dangerous/pistol - name = "Stechkin Pistol" - desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ - with suppressors." - item = /obj/item/gun/ballistic/automatic/pistol - cost = 7 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/revolver - name = "Syndicate Revolver" - desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/gun/ballistic/revolver - cost = 13 - surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/rawketlawnchair + name = "84mm Rocket Propelled Grenade Launcher" + desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ + Guaranteed to send your target out with a bang or your money back!" + item = /obj/item/gun/ballistic/rocketlauncher + cost = 8 + surplus = 30 + include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/pie_cannon name = "Banana Cream Pie Cannon" @@ -189,6 +182,35 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 0 include_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/bananashield + name = "Bananium Energy Shield" + desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ + by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ + and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." + item = /obj/item/shield/energy/bananium + cost = 16 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/clownsword + name = "Bananium Energy Sword" + desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ + impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." + item = /obj/item/melee/transforming/energy/sword/bananium + cost = 3 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bioterror + name = "Biohazardous Chemical Sprayer" + desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ + Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ + Use with extreme caution, to prevent exposure to yourself and your fellow operatives." + item = /obj/item/reagent_containers/spray/chemsprayer/bioterror + cost = 20 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + /datum/uplink_item/dangerous/shotgun name = "Bulldog Shotgun" desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ @@ -207,95 +229,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 40 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/dangerous/carbine - name = "M-90gl Carbine" - desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ - with a toggleable 40mm underbarrel grenade launcher." - item = /obj/item/gun/ballistic/automatic/m90 - cost = 18 - surplus = 50 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/machinegun - name = "L6 Squad Automatic Weapon" - desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ - This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." - item = /obj/item/gun/ballistic/automatic/l6_saw - cost = 18 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/rawketlawnchair - name = "84mm Rocket Propelled Grenade Launcher" - desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ - Guaranteed to send your target out with a bang or your money back!" - item = /obj/item/gun/ballistic/rocketlauncher - cost = 8 - surplus = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/grenadier - name = "Grenadier's belt" - desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." - item = /obj/item/storage/belt/grenade/full - include_modes = list(/datum/game_mode/nuclear) - cost = 22 - surplus = 0 - -/datum/uplink_item/dangerous/sniper - name = "Sniper Rifle" - desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" - item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate - cost = 16 - surplus = 25 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/bolt_action - name = "Surplus Rifle" - desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/gun/ballistic/shotgun/boltaction - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/crossbow - name = "Miniature Energy Crossbow" - desc = "A short bow mounted across a tiller in miniature. Small enough to \ - fit into a pocket or slip into a bag unnoticed. It will synthesize \ - and fire bolts tipped with a paralyzing toxin that will briefly stun \ - targets and cause them to slur as if inebriated. It can produce an \ - infinite number of bolts, but takes time to automatically recharge \ - after each shot." - item = /obj/item/gun/energy/kinetic_accelerator/crossbow - cost = 12 - surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/flamethrower - name = "Flamethrower" - desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ - stations. Make a statement by roasting the filth in their own greed. Use with caution." - item = /obj/item/flamethrower/full/tank - cost = 4 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/sword - name = "Energy Sword" - desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ - pocketed when inactive. Activating it produces a loud, distinctive noise." - item = /obj/item/melee/transforming/energy/sword/saber - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/clownsword - name = "Bananium Energy Sword" - desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ - impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." - item = /obj/item/melee/transforming/energy/sword/bananium - cost = 3 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - /datum/uplink_item/dangerous/doublesword name = "Double-Bladed Energy Sword" desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ @@ -308,47 +241,100 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/doublesword/get_discount() return pick(4;0.8,2;0.65,1;0.5) +/datum/uplink_item/dangerous/sword + name = "Energy Sword" + desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ + pocketed when inactive. Activating it produces a loud, distinctive noise." + item = /obj/item/melee/transforming/energy/sword/saber + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/shield + name = "Energy Shield" + desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ + against other attacks. Pair with an Energy Sword for a killer combination." + item = /obj/item/shield/energy + cost = 16 + surplus = 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/flamethrower + name = "Flamethrower" + desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ + stations. Make a statement by roasting the filth in their own greed. Use with caution." + item = /obj/item/flamethrower/full/tank + cost = 4 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/guardian + name = "Holoparasites" + desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ + organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." + item = /obj/item/storage/box/syndie_kit/guardian + cost = 18 + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + player_minimum = 25 + restricted = TRUE + +/datum/uplink_item/dangerous/machinegun + name = "L6 Squad Automatic Weapon" + desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ + This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." + item = /obj/item/gun/ballistic/automatic/l6_saw + cost = 18 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/carbine + name = "M-90gl Carbine" + desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ + with a toggleable 40mm underbarrel grenade launcher." + item = /obj/item/gun/ballistic/automatic/m90 + cost = 18 + surplus = 50 + include_modes = list(/datum/game_mode/nuclear) + /datum/uplink_item/dangerous/powerfist name = "Power Fist" desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ - Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ - Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ - deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." + Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ + Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ + deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." item = /obj/item/melee/powerfist cost = 8 -/datum/uplink_item/dangerous/emp - name = "EMP Grenades and Implanter Kit" - desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ - security's energy weapons and silicon lifeforms when you're in a tight spot." - item = /obj/item/storage/box/syndie_kit/emp - cost = 2 +/datum/uplink_item/dangerous/sniper + name = "Sniper Rifle" + desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" + item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate + cost = 16 + surplus = 25 + include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/dangerous/syndicate_minibomb - name = "Syndicate Minibomb" - desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ - in addition to dealing high amounts of damage to nearby personnel." - item = /obj/item/grenade/syndieminibomb - cost = 6 +/datum/uplink_item/dangerous/pistol + name = "Stechkin Pistol" + desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + with suppressors." + item = /obj/item/gun/ballistic/automatic/pistol + cost = 7 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/dangerous/bombanana - name = "Bombanana" - desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a Syndicate minibomb \ - a few seconds after the banana is eaten." - item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana - cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/bolt_action + name = "Surplus Rifle" + desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." + item = /obj/item/gun/ballistic/shotgun/boltaction + cost = 2 + include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/dangerous/tearstache - name = "Teachstache Grenade" - desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ - remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." - item = /obj/item/grenade/chem_grenade/teargas/moustache - cost = 3 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/revolver + name = "Syndicate Revolver" + desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." + item = /obj/item/gun/ballistic/revolver + cost = 13 + surplus = 50 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) /datum/uplink_item/dangerous/foamsmg name = "Toy Submachine Gun" @@ -367,65 +353,119 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/dangerous/viscerators - name = "Viscerator Delivery Grenade" - desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ - any non-operatives in the area." - item = /obj/item/grenade/spawnergrenade/manhacks - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/foampistol + name = "Toy Pistol with Riot Darts" + desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ + darts effective at incapacitating a target." + item = /obj/item/gun/ballistic/automatic/toy/pistol/riot + cost = 3 + surplus = 10 -/datum/uplink_item/dangerous/bioterrorfoam - name = "Bioterror Foam Grenade" - desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ - mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ - using additional spore toxin. Ensure suit is sealed before use." - item = /obj/item/grenade/chem_grenade/bioterrorfoam - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +// Stealthy Weapons +/datum/uplink_item/stealthy_weapons + category = "Stealthy and Inconspicuous Weapons" -/datum/uplink_item/dangerous/bioterror - name = "Biohazardous Chemical Sprayer" - desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ - Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ - Use with extreme caution, to prevent exposure to yourself and your fellow operatives." - item = /obj/item/reagent_containers/spray/chemsprayer/bioterror - cost = 20 +/datum/uplink_item/stealthy_weapons/throwingweapons + name = "Box of Throwing Weapons" + desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ + throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." + item = /obj/item/storage/box/syndie_kit/throwing_weapons + cost = 3 + +/datum/uplink_item/stealthy_weapons/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + item = /obj/item/book/granter/martial/cqc + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + cost = 13 surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/stealthy_weapons/virus_grenade - name = "Fungal Tuberculosis Grenade" - desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ - autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ - the BVAK solution." - item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade - cost = 12 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE +/datum/uplink_item/stealthy_weapons/dart_pistol + name = "Dart Pistol" + desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ + space a small item can." + item = /obj/item/gun/syringe/syndicate + cost = 4 + surplus = 50 -/datum/uplink_item/dangerous/guardian - name = "Holoparasites" - desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ - organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." - item = /obj/item/storage/box/syndie_kit/guardian - cost = 18 +/datum/uplink_item/stealthy_weapons/dehy_carp + name = "Dehydrated Space Carp" + desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ + your hand before use so it knows not to kill you." + item = /obj/item/toy/plush/carpplushie/dehy_carp + cost = 1 + +/datum/uplink_item/stealthy_weapons/edagger + name = "Energy Dagger" + desc = "A dagger made of energy that looks and functions as a pen when off." + item = /obj/item/pen/edagger + cost = 2 + +/datum/uplink_item/stealthy_weapons/martialarts + name = "Martial Arts Scroll" + desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ + deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry." + item = /obj/item/book/granter/martial/carp + cost = 17 surplus = 0 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - player_minimum = 25 - restricted = TRUE -/datum/uplink_item/dangerous/buzzkill - name = "Buzzkill Grenade Box" - desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ - with random toxins. Courtesy of the BLF and Tiger Cooperative." - item = /obj/item/storage/box/syndie_kit/bee_grenades - cost = 15 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/stealthy_weapons/crossbow + name = "Miniature Energy Crossbow" + desc = "A short bow mounted across a tiller in miniature. Small enough to \ + fit into a pocket or slip into a bag unnoticed. It will synthesize \ + and fire bolts tipped with a paralyzing toxin that will briefly stun \ + targets and cause them to slur as if inebriated. It can produce an \ + infinite number of bolts, but takes time to automatically recharge \ + after each shot." + item = /obj/item/gun/energy/kinetic_accelerator/crossbow + cost = 12 + surplus = 50 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/origami_kit + name = "Boxed Origami Kit" + desc = "This box contains a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ + perfectly aerodynamic (and potentially lethal) paper airplanes." + item = /obj/item/storage/box/syndie_kit/origami_bundle + cost = 14 + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear) //clown ops intentionally left in, because that seems like some s-tier shenanigans. + +/datum/uplink_item/stealthy_weapons/traitor_chem_bottle + name = "Poison Kit" + desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." + item = /obj/item/storage/box/syndie_kit/chemical + cost = 6 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/romerol_kit + name = "Romerol" + desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ + On death, these nodules take control of the dead body, causing limited revivification, \ + along with slurred speech, aggression, and the ability to infect others with this agent." + item = /obj/item/storage/box/syndie_kit/romerol + cost = 25 + cant_discount = TRUE + +/datum/uplink_item/stealthy_weapons/sleepy_pen + name = "Sleepy Pen" + desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ + strong anesthetic and a chemical that prevents the target from speaking. \ + The pen holds one dose of the mixture, and can be refilled with any chemicals. Note that before the target \ + falls asleep, they will be able to move and act." + item = /obj/item/pen/sleepy + cost = 4 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/suppressor + name = "Universal Suppressor" + desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the \ + shots of the weapon for increased stealth and superior ambushing capability." + item = /obj/item/suppressor + cost = 3 + surplus = 10 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) // Ammunition /datum/uplink_item/ammo @@ -447,14 +487,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 2 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/ammo/pistolfire - name = "10mm Incendiary Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/m10mm/fire - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - /datum/uplink_item/ammo/pistolhp name = "10mm Hollow Point Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ @@ -463,52 +495,29 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 3 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/ammo/pistolaps - name = "9mm Handgun Magazine" - desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." - item = /obj/item/ammo_box/magazine/pistolm9mm +/datum/uplink_item/ammo/pistolfire + name = "10mm Incendiary Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + Loaded with incendiary rounds which inflict little damage, but ignite the target." + item = /obj/item/ammo_box/magazine/m10mm/fire cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/bolt_action - name = "Surplus Rifle Clip" - desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." - item = /obj/item/ammo_box/a762 - cost = 1 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/revolver - name = ".357 Speed Loader" - desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ - For when you really need a lot of things dead." - item = /obj/item/ammo_box/a357 - cost = 4 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - illegal_tech = FALSE /datum/uplink_item/ammo/shotgun cost = 2 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/shotgun/bag + name = "12g Ammo Duffel Bag" + desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun + cost = 12 + /datum/uplink_item/ammo/shotgun/buck name = "12g Buckshot Drum" desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." item = /obj/item/ammo_box/magazine/m12g -/datum/uplink_item/ammo/shotgun/slug - name = "12g Slug Drum" - desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ - Now 8 times less likely to shoot your pals." - cost = 3 - item = /obj/item/ammo_box/magazine/m12g/slug - -/datum/uplink_item/ammo/shotgun/stun - name = "12g Stun Slug Drum" - desc = "An alternative 8-round stun slug magazine for use with the Bulldog shotgun. \ - Saying that they're completely non-lethal would be lying." - item = /obj/item/ammo_box/magazine/m12g/stun - include_modes = list(/datum/game_mode/nuclear) - /datum/uplink_item/ammo/shotgun/dragon name = "12g Dragon's Breath Drum" desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ @@ -523,17 +532,35 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/ammo_box/magazine/m12g/meteor include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/ammo/shotgun/bag - name = "12g Ammo Duffel Bag" - desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun - cost = 12 - -/datum/uplink_item/ammo/smg - name = ".45 SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." - item = /obj/item/ammo_box/magazine/smgm45 +/datum/uplink_item/ammo/shotgun/slug + name = "12g Slug Drum" + desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ + Now 8 times less likely to shoot your pals." cost = 3 + item = /obj/item/ammo_box/magazine/m12g/slug + +/datum/uplink_item/ammo/shotgun/stun + name = "12g Stun Slug Drum" + desc = "An alternative 8-round stun slug magazine for use with the Bulldog shotgun. \ + Saying that they're completely non-lethal would be lying." + item = /obj/item/ammo_box/magazine/m12g/stun + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/revolver + name = ".357 Speed Loader" + desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ + For when you really need a lot of things dead." + item = /obj/item/ammo_box/a357 + cost = 4 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + illegal_tech = FALSE + +/datum/uplink_item/ammo/a40mm + name = "40mm Grenade" + desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ + Your teammates will ask you to not shoot these down small hallways." + item = /obj/item/ammo_casing/a40mm + cost = 2 include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/smg/bag @@ -543,6 +570,35 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 20 //instead of 27 TC include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/smg + name = ".45 SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." + item = /obj/item/ammo_box/magazine/smgm45 + cost = 3 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper/basic + name = ".50 Magazine" + desc = "An additional standard 6-round magazine for use with .50 sniper rifles." + item = /obj/item/ammo_box/magazine/sniper_rounds + +/datum/uplink_item/ammo/sniper/penetrator + name = ".50 Penetrator Magazine" + desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ + Can pierce walls and multiple enemies." + item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator + cost = 5 + +/datum/uplink_item/ammo/sniper/soporific + name = ".50 Soporific Magazine" + desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" + item = /obj/item/ammo_box/magazine/sniper_rounds/soporific + cost = 6 + /datum/uplink_item/ammo/carbine name = "5.56mm Toploader Magazine" desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ @@ -551,14 +607,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 4 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/ammo/a40mm - name = "40mm Grenade" - desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ - Your teammates will ask you to not shoot these down small hallways." - item = /obj/item/ammo_casing/a40mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - /datum/uplink_item/ammo/machinegun cost = 6 surplus = 0 @@ -570,12 +618,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) By the time you need to use this, you'll already be standing on a pile of corpses." item = /obj/item/ammo_box/magazine/mm712x82 -/datum/uplink_item/ammo/machinegun/hollow - name = "7.12x82mm (Hollow-Point) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ - with the unarmored masses of crew." - item = /obj/item/ammo_box/magazine/mm712x82/hollow - /datum/uplink_item/ammo/machinegun/ap name = "7.12x82mm (Armor Penetrating) Box Magazine" desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with special properties \ @@ -583,6 +625,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/ammo_box/magazine/mm712x82/ap cost = 9 +/datum/uplink_item/ammo/machinegun/hollow + name = "7.12x82mm (Hollow-Point) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ + with the unarmored masses of crew." + item = /obj/item/ammo_box/magazine/mm712x82/hollow + /datum/uplink_item/ammo/machinegun/incen name = "7.12x82mm (Incendiary) Box Magazine" desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; tipped with a special flammable \ @@ -605,28 +653,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/ammo_box/magazine/rocket/hedp cost = 6 -/datum/uplink_item/ammo/sniper - cost = 4 +/datum/uplink_item/ammo/pistolaps + name = "9mm Handgun Magazine" + desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." + item = /obj/item/ammo_box/magazine/pistolm9mm + cost = 2 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/ammo/sniper/basic - name = ".50 Magazine" - desc = "An additional standard 6-round magazine for use with .50 sniper rifles." - item = /obj/item/ammo_box/magazine/sniper_rounds - -/datum/uplink_item/ammo/sniper/soporific - name = ".50 Soporific Magazine" - desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" - item = /obj/item/ammo_box/magazine/sniper_rounds/soporific - cost = 6 - -/datum/uplink_item/ammo/sniper/penetrator - name = ".50 Penetrator Magazine" - desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ - Can pierce walls and multiple enemies." - item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator - cost = 5 - /datum/uplink_item/ammo/toydarts name = "Box of Riot Darts" desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" @@ -643,12 +676,191 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 6 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/bolt_action + name = "Surplus Rifle Clip" + desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." + item = /obj/item/ammo_box/a762 + cost = 1 + include_modes = list(/datum/game_mode/nuclear) + +//Grenades and Explosives +/datum/uplink_item/explosives + category = "Grenades and Explosives" + +/datum/uplink_item/explosives/bioterrorfoam + name = "Bioterror Foam Grenade" + desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ + mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ + using additional spore toxin. Ensure suit is sealed before use." + item = /obj/item/grenade/chem_grenade/bioterrorfoam + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/bombanana + name = "Bombanana" + desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a Syndicate minibomb \ + a few seconds after the banana is eaten." + item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana + cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/buzzkill + name = "Buzzkill Grenade Box" + desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ + with random toxins. Courtesy of the BLF and Tiger Cooperative." + item = /obj/item/storage/box/syndie_kit/bee_grenades + cost = 15 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/c4 + name = "Composition C-4" + desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ + an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ + minimum setting of 10 seconds." + item = /obj/item/grenade/plastic/c4 + cost = 1 + +/datum/uplink_item/explosives/c4bag + name = "Bag of C-4 explosives" + desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." + item = /obj/item/storage/backpack/duffelbag/syndie/c4 + cost = 9 //10% discount! + cant_discount = TRUE + +/datum/uplink_item/explosives/x4bag + name = "Bag of X-4 explosives" + desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ + X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ + For when you want a controlled explosion that leaves a wider, deeper, hole." + item = /obj/item/storage/backpack/duffelbag/syndie/x4 + cost = 4 // + cant_discount = TRUE + +/datum/uplink_item/explosives/clown_bomb_clownops + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 15 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/detomatix + name = "Detomatix PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ + detonate PDAs of crewmembers who have their message feature enabled. \ + The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." + item = /obj/item/cartridge/virus/syndicate + cost = 6 + restricted = TRUE + +/datum/uplink_item/explosives/emp + name = "EMP Grenades and Implanter Kit" + desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ + security's energy weapons and silicon lifeforms when you're in a tight spot." + item = /obj/item/storage/box/syndie_kit/emp + cost = 2 + +/datum/uplink_item/explosives/virus_grenade + name = "Fungal Tuberculosis Grenade" + desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ + autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ + the BVAK solution." + item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade + cost = 12 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/explosives/grenadier + name = "Grenadier's belt" + desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." + item = /obj/item/storage/belt/grenade/full + include_modes = list(/datum/game_mode/nuclear) + cost = 22 + surplus = 0 + +/datum/uplink_item/explosives/pizza_bomb + name = "Pizza Bomb" + desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ + opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" + item = /obj/item/pizzabox/bomb + cost = 6 + surplus = 8 + +/datum/uplink_item/explosives/soap_clusterbang + name = "Slipocalypse Clusterbang" + desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" + item = /obj/item/grenade/clusterbuster/soap + cost = 6 + +/datum/uplink_item/explosives/syndicate_bomb + name = "Syndicate Bomb" + desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so. \ + The bomb core can be pried out and manually detonated with other explosives." + item = /obj/item/sbeacondrop/bomb + cost = 11 + +/datum/uplink_item/explosives/syndicate_detonator + name = "Syndicate Detonator" + desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ + and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ + Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ + the blast radius before using the detonator." + item = /obj/item/syndicatedetonator + cost = 3 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/syndicate_minibomb + name = "Syndicate Minibomb" + desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ + in addition to dealing high amounts of damage to nearby personnel." + item = /obj/item/grenade/syndieminibomb + cost = 6 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/tearstache + name = "Teachstache Grenade" + desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ + remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." + item = /obj/item/grenade/chem_grenade/teargas/moustache + cost = 3 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/viscerators + name = "Viscerator Delivery Grenade" + desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ + any non-operatives in the area." + item = /obj/item/grenade/spawnergrenade/manhacks + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + //Support and Mechs /datum/uplink_item/support category = "Support and Mechanized Exosuits" surplus = 0 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/support/clown_reinforcement + name = "Clown Reinforcements" + desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." + item = /obj/item/antag_spawner/nuke_ops/clown + cost = 20 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + restricted = TRUE + /datum/uplink_item/support/reinforcement name = "Reinforcements" desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ @@ -695,13 +907,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/mecha/combat/gygax/dark/loaded cost = 80 -/datum/uplink_item/support/mauler - name = "Mauler Exosuit" - desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ - and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." - item = /obj/mecha/combat/marauder/mauler/loaded - cost = 140 - /datum/uplink_item/support/honker name = "Dark H.O.N.K." desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." @@ -709,150 +914,36 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 80 include_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/support/clown_reinforcement - name = "Clown Reinforcements" - desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." - item = /obj/item/antag_spawner/nuke_ops/clown - cost = 20 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -// Stealthy Weapons -/datum/uplink_item/stealthy_weapons - category = "Stealthy and Inconspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/origami_kit - name = "Boxed Origami Kit" - desc = "This box contains a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ - perfectly aerodynamic (and potentially lethal) paper airplanes." - item = /obj/item/storage/box/syndie_kit/origami_bundle - cost = 14 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear) //clown ops intentionally left in, because that seems like some s-tier shenanigans. - -/datum/uplink_item/stealthy_weapons/martialarts - name = "Martial Arts Scroll" - desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ - deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry." - item = /obj/item/book/granter/martial/carp - cost = 17 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/cqc - name = "CQC Manual" - desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." - item = /obj/item/book/granter/martial/cqc - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - cost = 13 - surplus = 0 - -/datum/uplink_item/stealthy_weapons/throwingweapons - name = "Box of Throwing Weapons" - desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ - throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." - item = /obj/item/storage/box/syndie_kit/throwing_weapons - cost = 3 - -/datum/uplink_item/stealthy_weapons/edagger - name = "Energy Dagger" - desc = "A dagger made of energy that looks and functions as a pen when off." - item = /obj/item/pen/edagger - cost = 2 - -/datum/uplink_item/stealthy_weapons/foampistol - name = "Toy Pistol with Riot Darts" - desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ - darts effective at incapacitating a target." - item = /obj/item/gun/ballistic/automatic/toy/pistol/riot - cost = 3 - surplus = 10 - -/datum/uplink_item/stealthy_weapons/sleepy_pen - name = "Sleepy Pen" - desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ - strong anesthetic and a chemical that prevents the target from speaking. \ - The pen holds one dose of the mixture, and can be refilled with any chemicals. Note that before the target \ - falls asleep, they will be able to move and act." - item = /obj/item/pen/sleepy - cost = 4 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/soap - name = "Syndicate Soap" - desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ - You can also drop it underfoot to slip people." - item = /obj/item/soap/syndie - cost = 1 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/traitor_chem_bottle - name = "Poison Kit" - desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." - item = /obj/item/storage/box/syndie_kit/chemical - cost = 6 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/romerol_kit - name = "Romerol" - desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ - On death, these nodules take control of the dead body, causing limited revivification, \ - along with slurred speech, aggression, and the ability to infect others with this agent." - item = /obj/item/storage/box/syndie_kit/romerol - cost = 25 - cant_discount = TRUE - -/datum/uplink_item/stealthy_weapons/dart_pistol - name = "Dart Pistol" - desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ - space a small item can." - item = /obj/item/gun/syringe/syndicate - cost = 4 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/detomatix - name = "Detomatix PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ - detonate PDAs of crewmembers who have their message feature enabled. \ - The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." - item = /obj/item/cartridge/virus/syndicate - cost = 6 - restricted = TRUE - -/datum/uplink_item/stealthy_weapons/suppressor - name = "Universal Suppressor" - desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the \ - shots of the weapon for increased stealth and superior ambushing capability." - item = /obj/item/suppressor - cost = 3 - surplus = 10 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/pizza_bomb - name = "Pizza Bomb" - desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ - opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" - item = /obj/item/pizzabox/bomb - cost = 6 - surplus = 8 - -/datum/uplink_item/stealthy_weapons/dehy_carp - name = "Dehydrated Space Carp" - desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ - your hand before use so it knows not to kill you." - item = /obj/item/toy/plush/carpplushie/dehy_carp - cost = 1 - -/datum/uplink_item/stealthy_weapons/soap_clusterbang - name = "Slipocalypse Clusterbang" - desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" - item = /obj/item/grenade/clusterbuster/soap - cost = 6 +/datum/uplink_item/support/mauler + name = "Mauler Exosuit" + desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ + and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." + item = /obj/mecha/combat/marauder/mauler/loaded + cost = 140 // Stealth Items /datum/uplink_item/stealthy_tools category = "Stealth and Camouflage Items" +/datum/uplink_item/stealthy_tools/agent_card + name = "Agent Identification Card" + desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ + from other identification cards. The access is cumulative, so scanning one card does not erase the \ + access gained from another. In addition, they can be forged to display a new assignment and name. \ + This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ + with these cards." + item = /obj/item/card/id/syndicate + cost = 2 + +/datum/uplink_item/stealthy_tools/ai_detector + name = "Artificial Intelligence Detector" + desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ + activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ + an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ + blind spots can help you identify escape routes." + item = /obj/item/multitool/ai_detect + cost = 1 + /datum/uplink_item/stealthy_tools/chameleon name = "Chameleon Kit" desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ @@ -861,6 +952,48 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 2 exclude_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/stealthy_tools/chameleon_proj + name = "Chameleon Projector" + desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ + move the projector from their hand. Disguised users move slowly, and projectiles pass over them." + item = /obj/item/chameleon + cost = 7 + +/datum/uplink_item/stealthy_tools/codespeak_manual + name = "Codespeak Manual" + desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ + This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." + item = /obj/item/codespeak_manual/unlimited + cost = 3 + +/datum/uplink_item/stealthy_tools/combatbananashoes + name = "Combat Banana Shoes" + desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ + can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ + squeak significantly louder." + item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat + cost = 6 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/emplight + name = "EMP Flashlight" + desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ + Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ + Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." + item = /obj/item/flashlight/emp + cost = 2 + surplus = 30 + +/datum/uplink_item/stealthy_tools/mulligan + name = "Mulligan" + desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ + and appearance." + item = /obj/item/reagent_containers/syringe/mulligan + cost = 4 + surplus = 30 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + /datum/uplink_item/stealthy_tools/syndigaloshes name = "No-Slip Chameleon Shoes" desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ @@ -876,68 +1009,11 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) exclude_modes = list() include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/stealthy_tools/combatbananashoes - name = "Combat Banana Shoes" - desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ - can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ - squeak significantly louder." - item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/frame - name = "F.R.A.M.E. PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ - when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ - You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ - telecrystals normally." - item = /obj/item/cartridge/virus/frame - cost = 4 - restricted = TRUE - -/datum/uplink_item/stealthy_tools/failsafe - name = "Failsafe Uplink Code" - desc = "When entered the uplink will self-destruct immediately." - item = /obj/effect/gibspawner/generic - cost = 1 - surplus = 0 - restricted = TRUE - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) - if(!U) - return - U.failsafe_code = U.generate_code() - to_chat(user, "The new failsafe code for this uplink is now : [U.failsafe_code].") - if(user.mind) - user.mind.store_memory("Failsafe code for [U.parent] : [U.failsafe_code]") - return U.parent //For log icon - -/datum/uplink_item/stealthy_tools/agent_card - name = "Agent Identification Card" - desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ - from other identification cards. The access is cumulative, so scanning one card does not erase the \ - access gained from another. In addition, they can be forged to display a new assignment and name. \ - This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ - with these cards." - item = /obj/item/card/id/syndicate - cost = 2 - -/datum/uplink_item/stealthy_tools/chameleon_proj - name = "Chameleon Projector" - desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ - move the projector from their hand. Disguised users move slowly, and projectiles pass over them." - item = /obj/item/chameleon - cost = 7 - -/datum/uplink_item/stealthy_tools/camera_bug - name = "Camera Bug" - desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ - Bugging cameras allows you to disable them remotely." - item = /obj/item/camera_bug - cost = 1 - surplus = 90 +/datum/uplink_item/stealthy_tools/jammer + name = "Radio Jammer" + desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." + item = /obj/item/jammer + cost = 5 /datum/uplink_item/stealthy_tools/smugglersatchel name = "Smuggler's Satchel" @@ -948,49 +1024,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 2 surplus = 30 -/datum/uplink_item/stealthy_tools/stimpack - name = "Stimpack" - desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ - 5 minutes after injection." - item = /obj/item/reagent_containers/syringe/stimulants - cost = 5 - surplus = 90 - -/datum/uplink_item/stealthy_tools/mulligan - name = "Mulligan" - desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ - and appearance." - item = /obj/item/reagent_containers/syringe/mulligan - cost = 4 - surplus = 30 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/emplight - name = "EMP Flashlight" - desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ - Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ - Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." - item = /obj/item/flashlight/emp - cost = 2 - surplus = 30 - -/datum/uplink_item/stealthy_tools/cutouts - name = "Adaptive Cardboard Cutouts" - desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ - This pack contains three as well as a crayon for changing their appearances." - item = /obj/item/storage/box/syndie_kit/cutouts - cost = 1 - surplus = 20 - -/datum/uplink_item/stealthy_tools/fakenucleardisk - name = "Decoy Nuclear Authentication Disk" - desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ - Don't try to give this to us to complete your objective, we know better!" - item = /obj/item/disk/nuclear/fake - cost = 1 - surplus = 1 - surplus_nullcrates = 0 - //Space Suits and Hardsuits /datum/uplink_item/suits category = "Space Suits and Hardsuits" @@ -1037,6 +1070,65 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/device_tools category = "Devices and Tools" +/datum/uplink_item/device_tools/cutouts + name = "Adaptive Cardboard Cutouts" + desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ + This pack contains three as well as a crayon for changing their appearances." + item = /obj/item/storage/box/syndie_kit/cutouts + cost = 1 + surplus = 20 + +/datum/uplink_item/device_tools/assault_pod + name = "Assault Pod Targeting Device" + desc = "Use this to select the landing zone of your assault pod." + item = /obj/item/assault_pod + cost = 30 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/device_tools/binary + name = "Binary Translator Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ + such as AI units and cyborgs, over their private binary channel. Caution should \ + be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." + item = /obj/item/encryptionkey/binary + cost = 5 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/magboots + name = "Blood-Red Magboots" + desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ + during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ + 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." + item = /obj/item/clothing/shoes/magboots/syndie + cost = 2 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/briefcase_launchpad + name = "Briefcase Launchpad" + desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ + Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." + surplus = 0 + item = /obj/item/storage/briefcase/launchpad + cost = 6 + +/datum/uplink_item/device_tools/camera_bug + name = "Camera Bug" + desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ + Bugging cameras allows you to disable them remotely." + item = /obj/item/camera_bug + cost = 1 + surplus = 90 + +/datum/uplink_item/device_tools/military_belt + name = "Chest Rig" + desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." + item = /obj/item/storage/belt/military + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear) + /datum/uplink_item/device_tools/emag name = "Cryptographic Sequencer" desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ @@ -1044,6 +1136,43 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/card/emag cost = 6 +/datum/uplink_item/device_tools/fakenucleardisk + name = "Decoy Nuclear Authentication Disk" + desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ + Don't try to give this to us to complete your objective, we know better!" + item = /obj/item/disk/nuclear/fake + cost = 1 + surplus = 1 + surplus_nullcrates = 0 + +/datum/uplink_item/device_tools/frame + name = "F.R.A.M.E. PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ + when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ + You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ + telecrystals normally." + item = /obj/item/cartridge/virus/frame + cost = 4 + restricted = TRUE + +/datum/uplink_item/device_tools/failsafe + name = "Failsafe Uplink Code" + desc = "When entered the uplink will self-destruct immediately." + item = /obj/effect/gibspawner/generic + cost = 1 + surplus = 0 + restricted = TRUE + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) + if(!U) + return + U.failsafe_code = U.generate_code() + to_chat(user, "The new failsafe code for this uplink is now : [U.failsafe_code].") + if(user.mind) + user.mind.store_memory("Failsafe code for [U.parent] : [U.failsafe_code]") + return U.parent //For log icon + /datum/uplink_item/device_tools/toolbox name = "Full Syndicate Toolbox" desc = "The Syndicate toolbox is a suspicious black and red. It comes loaded with a full tool set including a \ @@ -1051,19 +1180,60 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/toolbox/syndicate cost = 1 -/datum/uplink_item/device_tools/surgerybag - name = "Syndicate Surgery Duffel Bag" - desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ - a Syndicate brand MMI, a straitjacket, and a muzzle." - item = /obj/item/storage/backpack/duffelbag/syndie/surgery +/datum/uplink_item/device_tools/hacked_module + name = "Hacked AI Law Upload Module" + desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ + Be careful with wording, as artificial intelligences may look for loopholes to exploit." + item = /obj/item/aiModule/syndicate + cost = 9 + +/datum/uplink_item/device_tools/hypnotic_flash + name = "Hypnotic Flash" + desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." + item = /obj/item/assembly/flash/hypnotic + cost = 7 + +/datum/uplink_item/device_tools/medgun + name = "Medbeam Gun" + desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ + operatives in the fight, even while under fire. Don't cross the streams!" + item = /obj/item/gun/medbeam + cost = 15 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/singularity_beacon + name = "Power Beacon" + desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ + active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ + in containment. Because of its size, it cannot be carried. Ordering this \ + sends you a small beacon that will teleport the larger beacon to your location upon activation." + item = /obj/item/sbeacondrop + cost = 14 + +/datum/uplink_item/device_tools/powersink + name = "Power Sink" + desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ + load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ + traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." + item = /obj/item/powersink + cost = 6 + +/datum/uplink_item/device_tools/rad_laser + name = "Radioactive Microlaser" + desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ + of humanoids. It has two settings: intensity, which controls the power of the radiation, \ + and wavelength, which controls the delay before the effect kicks in." + item = /obj/item/healthanalyzer/rad_laser cost = 3 -/datum/uplink_item/device_tools/military_belt - name = "Chest Rig" - desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." - item = /obj/item/storage/belt/military - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/device_tools/stimpack + name = "Stimpack" + desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ + 5 minutes after injection." + item = /obj/item/reagent_containers/syringe/stimulants + cost = 5 + surplus = 90 /datum/uplink_item/device_tools/medkit name = "Syndicate Combat Medic Kit" @@ -1074,6 +1244,30 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 4 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/device_tools/soap + name = "Syndicate Soap" + desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ + You can also drop it underfoot to slip people." + item = /obj/item/soap/syndie + cost = 1 + surplus = 50 + +/datum/uplink_item/device_tools/surgerybag + name = "Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ + a Syndicate brand MMI, a straitjacket, and a muzzle." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery + cost = 3 + +/datum/uplink_item/device_tools/encryptionkey + name = "Syndicate Encryption Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ + as well as talk on an encrypted Syndicate channel with other agents that have the same key." + item = /obj/item/encryptionkey/syndicate + cost = 2 + surplus = 75 + restricted = TRUE + /datum/uplink_item/device_tools/syndietome name = "Syndicate Tome" desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ @@ -1092,183 +1286,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/clothing/glasses/thermal/syndi cost = 4 -/datum/uplink_item/device_tools/binary - name = "Binary Translator Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ - such as AI units and cyborgs, over their private binary channel. Caution should \ - be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." - item = /obj/item/encryptionkey/binary - cost = 5 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/encryptionkey - name = "Syndicate Encryption Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ - as well as talk on an encrypted Syndicate channel with other agents that have the same key." - item = /obj/item/encryptionkey/syndicate - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/ai_detector - name = "Artificial Intelligence Detector" - desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ - activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ - an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ - blind spots can help you identify escape routes." - item = /obj/item/multitool/ai_detect - cost = 1 - -/datum/uplink_item/device_tools/hacked_module - name = "Hacked AI Law Upload Module" - desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ - Be careful with wording, as artificial intelligences may look for loopholes to exploit." - item = /obj/item/aiModule/syndicate - cost = 9 - -/datum/uplink_item/device_tools/briefcase_launchpad - name = "Briefcase Launchpad" - desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ - Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." - surplus = 0 - item = /obj/item/storage/briefcase/launchpad - cost = 6 - -/datum/uplink_item/device_tools/hypnotic_flash - name = "Hypnotic Flash" - desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." - item = /obj/item/assembly/flash/hypnotic - cost = 7 - -/datum/uplink_item/device_tools/magboots - name = "Blood-Red Magboots" - desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ - during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ - 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." - item = /obj/item/clothing/shoes/magboots/syndie - cost = 2 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/c4 - name = "Composition C-4" - desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ - an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ - minimum setting of 10 seconds." - item = /obj/item/grenade/plastic/c4 - cost = 1 - -/datum/uplink_item/device_tools/c4bag - name = "Bag of C-4 explosives" - desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." - item = /obj/item/storage/backpack/duffelbag/syndie/c4 - cost = 9 //10% discount! - cant_discount = TRUE - -/datum/uplink_item/device_tools/x4bag - name = "Bag of X-4 explosives" - desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ - X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ - For when you want a controlled explosion that leaves a wider, deeper, hole." - item = /obj/item/storage/backpack/duffelbag/syndie/x4 - cost = 4 // - cant_discount = TRUE - -/datum/uplink_item/device_tools/powersink - name = "Power Sink" - desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ - load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ - traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." - item = /obj/item/powersink - cost = 6 - -/datum/uplink_item/device_tools/singularity_beacon - name = "Power Beacon" - desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ - active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ - in containment. Because of its size, it cannot be carried. Ordering this \ - sends you a small beacon that will teleport the larger beacon to your location upon activation." - item = /obj/item/sbeacondrop - cost = 14 - -/datum/uplink_item/device_tools/syndicate_bomb - name = "Syndicate Bomb" - desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so. \ - The bomb core can be pried out and manually detonated with other explosives." - item = /obj/item/sbeacondrop/bomb - cost = 11 - -/datum/uplink_item/device_tools/clown_bomb_clownops - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/syndicate_detonator - name = "Syndicate Detonator" - desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ - and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ - Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ - the blast radius before using the detonator." - item = /obj/item/syndicatedetonator - cost = 3 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/rad_laser - name = "Radioactive Microlaser" - desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ - powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ - of humanoids. It has two settings: intensity, which controls the power of the radiation, \ - and wavelength, which controls the delay before the effect kicks in." - item = /obj/item/healthanalyzer/rad_laser - cost = 3 - -/datum/uplink_item/device_tools/assault_pod - name = "Assault Pod Targeting Device" - desc = "Use this to select the landing zone of your assault pod." - item = /obj/item/assault_pod - cost = 30 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/device_tools/shield - name = "Energy Shield" - desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ - against other attacks. Pair with an Energy Sword for a killer combination." - item = /obj/item/shield/energy - cost = 16 - surplus = 20 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/bananashield - name = "Bananium Energy Shield" - desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ - by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ - and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." - item = /obj/item/shield/energy/bananium - cost = 16 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/medgun - name = "Medbeam Gun" - desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ - operatives in the fight, even while under fire. Don't cross the streams!" - item = /obj/item/gun/medbeam - cost = 15 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - /datum/uplink_item/device_tools/potion name = "Syndicate Sentience Potion" item = /obj/item/slimepotion/slime/sentience/nuclear @@ -1301,41 +1318,11 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/stack/telecrystal/twenty cost = 20 -/datum/uplink_item/device_tools/jammer - name = "Radio Jammer" - desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." - item = /obj/item/jammer - cost = 5 - -/datum/uplink_item/device_tools/codespeak_manual - name = "Codespeak Manual" - desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ - This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." - item = /obj/item/codespeak_manual/unlimited - cost = 3 - // Implants /datum/uplink_item/implants category = "Implants" surplus = 50 -/datum/uplink_item/implants/freedom - name = "Freedom Implant" - desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ - user from common restraints such as handcuffs." - item = /obj/item/storage/box/syndie_kit/imp_freedom - cost = 5 - -/datum/uplink_item/implants/uplink - name = "Uplink Implant" - desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ - Undetectable (except via surgery), and excellent for escaping confinement." - item = /obj/item/storage/box/syndie_kit/imp_uplink - cost = 4 - // An empty uplink is kinda useless. - surplus = 0 - restricted = TRUE - /datum/uplink_item/implants/adrenal name = "Adrenal Implant" desc = "An implant injected into the body, and later activated at the user's will. It will inject a chemical \ @@ -1344,12 +1331,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 8 player_minimum = 25 -/datum/uplink_item/implants/storage - name = "Storage Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ - pocket capable of storing two regular-sized items." - item = /obj/item/storage/box/syndie_kit/imp_storage - cost = 8 +/datum/uplink_item/implants/freedom + name = "Freedom Implant" + desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ + user from common restraints such as handcuffs." + item = /obj/item/storage/box/syndie_kit/imp_freedom + cost = 5 /datum/uplink_item/implants/microbomb name = "Microbomb Implant" @@ -1384,24 +1371,29 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/box/syndie_kit/imp_stealth cost = 8 +/datum/uplink_item/implants/storage + name = "Storage Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ + pocket capable of storing two regular-sized items." + item = /obj/item/storage/box/syndie_kit/imp_storage + cost = 8 + +/datum/uplink_item/implants/uplink + name = "Uplink Implant" + desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ + Undetectable (except via surgery), and excellent for escaping confinement." + item = /obj/item/storage/box/syndie_kit/imp_uplink + cost = 4 + // An empty uplink is kinda useless. + surplus = 0 + restricted = TRUE + // Cybernetics /datum/uplink_item/cyber_implants category = "Cybernetic Implants" surplus = 0 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/cyber_implants/thermals - name = "Thermal Eyes" - desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." - item = /obj/item/autosurgeon/thermal_eyes - cost = 8 - -/datum/uplink_item/cyber_implants/xray - name = "X-ray Vision Implant" - desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." - item = /obj/item/autosurgeon/xray_eyes - cost = 10 - /datum/uplink_item/cyber_implants/antistun name = "CNS Rebooter Implant" desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." @@ -1414,6 +1406,18 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/autosurgeon/reviver cost = 8 +/datum/uplink_item/cyber_implants/thermals + name = "Thermal Eyes" + desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." + item = /obj/item/autosurgeon/thermal_eyes + cost = 8 + +/datum/uplink_item/cyber_implants/xray + name = "X-ray Vision Implant" + desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." + item = /obj/item/autosurgeon/xray_eyes + cost = 10 + /datum/uplink_item/cyber_implants/bundle name = "Cybernetic Implants Bundle" desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." @@ -1441,69 +1445,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) surplus = 0 -/datum/uplink_item/role_restricted/reverse_revolver - name = "Reverse Revolver" - desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ - The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." - cost = 14 - item = /obj/item/storage/box/hug/reverse_revolver - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/reverse_bear_trap - name = "Reverse Bear Trap" - desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ - violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ - head after three seconds uninterrupted." - cost = 5 - item = /obj/item/reverse_bear_trap - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/mimery - name = "Guide to Advanced Mimery Series" - desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ - Obviously only works for Mimes." - cost = 12 - item = /obj/item/storage/box/syndie_kit/mimery - restricted_roles = list("Mime") - surplus = 0 - -/datum/uplink_item/role_restricted/ez_clean_bundle - name = "EZ Clean Grenade Bundle" - desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ - The acid only affects carbon-based creatures." - item = /obj/item/storage/box/syndie_kit/ez_clean - cost = 6 - surplus = 20 - restricted_roles = list("Janitor") - -/datum/uplink_item/role_restricted/explosive_hot_potato - name = "Exploding Hot Potato" - desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ - The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." - item = /obj/item/hot_potato/syndicate - cost = 4 - surplus = 0 - restricted_roles = list("Cook", "Botanist", "Clown", "Mime") - -/datum/uplink_item/role_restricted/his_grace - name = "His Grace" - desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ - His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ - However, if left alone for long enough, He will fall back to slumber. \ - To activate His Grace, simply unlatch Him." - item = /obj/item/his_grace - cost = 20 - restricted_roles = list("Chaplain") - surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain - -/datum/uplink_item/role_restricted/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - item = /obj/item/pneumatic_cannon/pie/selfcharge - restricted_roles = list("Clown") - surplus = 0 //No fun unless you're the clown! - /datum/uplink_item/role_restricted/ancient_jumpsuit name = "Ancient Jumpsuit" desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." @@ -1512,61 +1453,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) restricted_roles = list("Assistant") surplus = 0 -/datum/uplink_item/role_restricted/brainwash_disk - name = "Brainwashing Surgery Program" - desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ - Insert into an Operating Console to enable the procedure." - item = /obj/item/disk/surgery/brainwashing - restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist") - cost = 5 - -/datum/uplink_item/role_restricted/haunted_magic_eightball - name = "Haunted Magic Eightball" - desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ - Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." - item = /obj/item/toy/eightball/haunted - cost = 2 - restricted_roles = list("Curator") - limited_stock = 1 //please don't spam deadchat - -/datum/uplink_item/role_restricted/modified_syringe_gun - name = "Modified Syringe Gun" - desc = "A syringe gun that fires DNA injectors instead of normal syringes." - item = /obj/item/gun/syringe/dna - cost = 14 - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/chemical_gun - name = "Reagent Dartgun" - desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." - item = /obj/item/gun/chem - cost = 12 - restricted_roles = list("Chemist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/magillitis_serum - name = "Magillitis Serum Autoinjector" - desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ - Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." - item = /obj/item/reagent_containers/hypospray/magillitis - cost = 15 - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/gorillacubes - name = "Box of Gorilla Cubes" - desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ - Caution: Product may rehydrate when exposed to water." - item = /obj/item/storage/box/gorillacubes - cost = 6 - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/pressure_mod - name = "Kinetic Accelerator Pressure Mod" - desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ - Occupies 35% mod capacity." - item = /obj/item/borg/upgrade/modkit/indoors - cost = 5 //you need two for full damage, so total of 10 for maximum damage - limited_stock = 2 //you can't use more than two! - restricted_roles = list("Shaft Miner") +/datum/uplink_item/role_restricted/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + item = /obj/item/pneumatic_cannon/pie/selfcharge + restricted_roles = list("Clown") + surplus = 0 //No fun unless you're the clown! /datum/uplink_item/role_restricted/blastcannon name = "Blast Cannon" @@ -1578,7 +1471,23 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist. restricted_roles = list("Research Director", "Scientist") -/datum/uplink_item/device_tools/clown_bomb +/datum/uplink_item/role_restricted/gorillacubes + name = "Box of Gorilla Cubes" + desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ + Caution: Product may rehydrate when exposed to water." + item = /obj/item/storage/box/gorillacubes + cost = 6 + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/brainwash_disk + name = "Brainwashing Surgery Program" + desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ + Insert into an Operating Console to enable the procedure." + item = /obj/item/disk/surgery/brainwashing + restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist") + cost = 5 + +/datum/uplink_item/role_restricted/clown_bomb name = "Clown Bomb" desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ @@ -1610,43 +1519,111 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 3 restricted_roles = list("Roboticist", "Research Director") +/datum/uplink_item/role_restricted/haunted_magic_eightball + name = "Haunted Magic Eightball" + desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ + Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." + item = /obj/item/toy/eightball/haunted + cost = 2 + restricted_roles = list("Curator") + limited_stock = 1 //please don't spam deadchat + +/datum/uplink_item/role_restricted/his_grace + name = "His Grace" + desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ + His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ + However, if left alone for long enough, He will fall back to slumber. \ + To activate His Grace, simply unlatch Him." + item = /obj/item/his_grace + cost = 20 + restricted_roles = list("Chaplain") + surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain + +/datum/uplink_item/role_restricted/explosive_hot_potato + name = "Exploding Hot Potato" + desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ + The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." + item = /obj/item/hot_potato/syndicate + cost = 4 + surplus = 0 + restricted_roles = list("Cook", "Botanist", "Clown", "Mime") + +/datum/uplink_item/role_restricted/ez_clean_bundle + name = "EZ Clean Grenade Bundle" + desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ + The acid only affects carbon-based creatures." + item = /obj/item/storage/box/syndie_kit/ez_clean + cost = 6 + surplus = 20 + restricted_roles = list("Janitor") + +/datum/uplink_item/role_restricted/mimery + name = "Guide to Advanced Mimery Series" + desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ + Obviously only works for Mimes." + cost = 12 + item = /obj/item/storage/box/syndie_kit/mimery + restricted_roles = list("Mime") + surplus = 0 + +/datum/uplink_item/role_restricted/pressure_mod + name = "Kinetic Accelerator Pressure Mod" + desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ + Occupies 35% mod capacity." + item = /obj/item/borg/upgrade/modkit/indoors + cost = 5 //you need two for full damage, so total of 10 for maximum damage + limited_stock = 2 //you can't use more than two! + restricted_roles = list("Shaft Miner") + +/datum/uplink_item/role_restricted/magillitis_serum + name = "Magillitis Serum Autoinjector" + desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ + Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." + item = /obj/item/reagent_containers/hypospray/magillitis + cost = 15 + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/modified_syringe_gun + name = "Modified Syringe Gun" + desc = "A syringe gun that fires DNA injectors instead of normal syringes." + item = /obj/item/gun/syringe/dna + cost = 14 + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/chemical_gun + name = "Reagent Dartgun" + desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." + item = /obj/item/gun/chem + cost = 12 + restricted_roles = list("Chemist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/reverse_bear_trap + name = "Reverse Bear Trap" + desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ + violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ + head after three seconds uninterrupted." + cost = 5 + item = /obj/item/reverse_bear_trap + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/reverse_revolver + name = "Reverse Revolver" + desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ + The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." + cost = 14 + item = /obj/item/storage/box/hug/reverse_revolver + restricted_roles = list("Clown") + // Pointless /datum/uplink_item/badass category = "(Pointless) Badassery" surplus = 0 -/datum/uplink_item/badass/syndiecards - name = "Syndicate Playing Cards" - desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ - making them slightly more robust than a normal deck of cards. \ - You can also play card games with them or leave them on your victims." - item = /obj/item/toy/cards/deck/syndicate - cost = 1 - surplus = 40 - -/datum/uplink_item/badass/syndiecash - name = "Syndicate Briefcase Full of Cash" - desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ - and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ - manufactured to pack a little bit more of a punch if your client needs some convincing." - item = /obj/item/storage/secure/briefcase/syndie - cost = 1 - -/datum/uplink_item/badass/syndiecigs - name = "Syndicate Smokes" - desc = "Strong flavor, dense smoke, infused with omnizine." - item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate - cost = 2 - illegal_tech = FALSE - -/datum/uplink_item/badass/balloon - name = "Syndicate Balloon" - desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ - Can blow the deepest of covers." - item = /obj/item/toy/syndicateballoon - cost = 20 - cant_discount = TRUE - illegal_tech = FALSE +/datum/uplink_item/badass/costumes/obvious_chameleon + name = "Broken Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Please note that this kit did NOT pass quality control." + item = /obj/item/storage/box/syndie_kit/chameleon/broken /datum/uplink_item/badass/costumes surplus = 0 @@ -1665,18 +1642,45 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "Nothing is more terrifying than clowns with fully automatic weaponry." item = /obj/item/storage/backpack/duffelbag/clown/syndie -/datum/uplink_item/badass/costumes/obvious_chameleon - name = "Broken Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ - Please note that this kit did NOT pass quality control." - item = /obj/item/storage/box/syndie_kit/chameleon/broken - /datum/uplink_item/badass/rapid name = "Gloves of the North Star" desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." item = /obj/item/clothing/gloves/rapid cost = 8 +/datum/uplink_item/badass/balloon + name = "Syndicate Balloon" + desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ + Can blow the deepest of covers." + item = /obj/item/toy/syndicateballoon + cost = 20 + cant_discount = TRUE + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiecash + name = "Syndicate Briefcase Full of Cash" + desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ + and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ + manufactured to pack a little bit more of a punch if your client needs some convincing." + item = /obj/item/storage/secure/briefcase/syndie + cost = 1 + +/datum/uplink_item/badass/syndiecards + name = "Syndicate Playing Cards" + desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ + making them slightly more robust than a normal deck of cards. \ + You can also play card games with them or leave them on your victims." + item = /obj/item/toy/cards/deck/syndicate + cost = 1 + surplus = 40 + +/datum/uplink_item/badass/syndiecigs + name = "Syndicate Smokes" + desc = "Strong flavor, dense smoke, infused with omnizine." + item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate + cost = 2 + illegal_tech = FALSE + /datum/uplink_item/badass/bundle name = "Syndicate Bundle" desc = "Syndicate Bundles are specialized groups of items that arrive in a plain box. \ From 96cf47bceac45c5df951ebe97fa4fc145bfb0e69 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:30:22 -0800 Subject: [PATCH 62/93] Automatic changelog generation for PR #41834 [ci skip] --- html/changelogs/AutoChangeLog-pr-41834.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41834.yml diff --git a/html/changelogs/AutoChangeLog-pr-41834.yml b/html/changelogs/AutoChangeLog-pr-41834.yml new file mode 100644 index 00000000000..74a5307e9c6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41834.yml @@ -0,0 +1,5 @@ +author: "Skoglol" +delete-after: True +changes: + - tweak: "Reorganized the syndicate uplinks. Items are now mostly alphabetical, some misplaced items moved to more fitting categories." + - tweak: "Added a new category to the uplink: Grenades and Explosives." From 8b49e62a49b101bd50082db311c52787d6abfdaa Mon Sep 17 00:00:00 2001 From: MrDoomBringer Date: Sun, 9 Dec 2018 05:32:20 -0500 Subject: [PATCH 63/93] Makes the tooltips less annoying in the Centcom Pod launcher verb (#41821) cl MrDoomBringer admin: The Centcom Pod Launcher has been reorganized, making it easier to navigate at the expense of compact-ness. /cl Each button in the podlauncher verb had a tooltip explaining what it did, however these would get in the way of selecting things, which made life a pain. This pushes all the buttons to the right, so the tooltips should now stay out of the way of selecting buttons. --- code/modules/cargo/centcom_podlauncher.dm | 2 +- tgui/assets/tgui.css | 2 +- tgui/assets/tgui.js | 26 +- tgui/src/interfaces/centcom_podlauncher.ract | 263 ++++++++++--------- 4 files changed, 155 insertions(+), 138 deletions(-) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index 9b8f6023e04..0e0d81dabf2 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -55,7 +55,7 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "centcom_podlauncher", "Config/Launch Supplypod", 700, 700, master_ui, state) + ui = new(user, src, ui_key, "centcom_podlauncher", "Config/Launch Supplypod", 350, 700, master_ui, state) ui.open() /datum/centcom_podlauncher/ui_data(mob/user) //Sends info about the pod to the UI. diff --git a/tgui/assets/tgui.css b/tgui/assets/tgui.css index 256b53c1069..c73fc2adfac 100644 --- a/tgui/assets/tgui.css +++ b/tgui/assets/tgui.css @@ -1 +1 @@ -@charset "utf-8";body,html{box-sizing:border-box;height:100%;margin:0}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff;background-color:#2a2a2a;background-image:linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff2a2a2a",endColorstr="#ff202020",GradientType=0)}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}body.clockwork{background:linear-gradient(180deg,#b18b25 0,#5f380e);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffb18b25",endColorstr="#ff5f380e",GradientType=0)}body.clockwork .normal{color:#b18b25}body.clockwork .good{color:#cfba47}body.clockwork .average{color:#896b19}body.clockwork .bad{color:#5f380e}body.clockwork .highlight{color:#b18b25}body.clockwork main{display:block;margin-top:32px;padding:2px 6px 0}body.clockwork hr{height:2px;background-color:#b18b25;border:none}body.clockwork .hidden{display:none}body.clockwork .bar .barText,body.clockwork span.button{color:#b18b25;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.clockwork .bold{font-weight:700}body.clockwork .italic{font-style:italic}body.clockwork [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.clockwork div[data-tooltip],body.clockwork span[data-tooltip]{position:relative}body.clockwork div[data-tooltip]:after,body.clockwork span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #170800;background-color:#2d1400}body.clockwork div[data-tooltip]:hover:after,body.clockwork span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.clockwork div[data-tooltip].tooltip-top:after,body.clockwork span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-top:hover:after,body.clockwork span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:after,body.clockwork span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:hover:after,body.clockwork span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-left:after,body.clockwork span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-left:hover:after,body.clockwork span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:after,body.clockwork span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:hover:after,body.clockwork span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #170800;background:#2d1400}body.clockwork .bar .barText{position:absolute;top:0;right:3px}body.clockwork .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#b18b25}body.clockwork .bar .barFill.good{background-color:#cfba47}body.clockwork .bar .barFill.average{background-color:#896b19}body.clockwork .bar .barFill.bad{background-color:#5f380e}body.clockwork span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #170800}body.clockwork span.button .fa{padding-right:2px}body.clockwork span.button.normal{transition:background-color .5s;background-color:#5f380e}body.clockwork span.button.normal.active:focus,body.clockwork span.button.normal.active:hover{transition:background-color .25s;background-color:#704211;outline:0}body.clockwork span.button.disabled{transition:background-color .5s;background-color:#2d1400}body.clockwork span.button.disabled.active:focus,body.clockwork span.button.disabled.active:hover{transition:background-color .25s;background-color:#441e00;outline:0}body.clockwork span.button.selected{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.selected.active:focus,body.clockwork span.button.selected.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.toggle{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.toggle.active:focus,body.clockwork span.button.toggle.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.caution{transition:background-color .5s;background-color:#be6209}body.clockwork span.button.caution.active:focus,body.clockwork span.button.caution.active:hover{transition:background-color .25s;background-color:#cd6a0a;outline:0}body.clockwork span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.clockwork span.button.danger.active:focus,body.clockwork span.button.danger.active:hover{transition:background-color .25s;background-color:#abaf00;outline:0}body.clockwork span.button.gridable{width:125px;margin:2px 0}body.clockwork span.button.gridable.center{text-align:center;width:75px}body.clockwork span.button+span:not(.button),body.clockwork span:not(.button)+span.button{margin-left:5px}body.clockwork div.display{width:100%;padding:4px;margin:6px 0;background-color:#2d1400;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400);background-color:rgba(45,20,0,.9);box-shadow:inset 0 0 5px rgba(0,0,0,.3)}body.clockwork div.display.tabular{padding:0;margin:0}body.clockwork div.display header,body.clockwork div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#cfba47;border-bottom:2px solid #b18b25}body.clockwork div.display header .buttonRight,body.clockwork div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.clockwork div.display article,body.clockwork div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.clockwork input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#b18b25;background-color:#cfba47;border:1px solid #272727}body.clockwork input.number{width:35px}body.clockwork input:-ms-input-placeholder{color:#999}body.clockwork input::placeholder{color:#999}body.clockwork input::-ms-clear{display:none}body.clockwork svg.linegraph{overflow:hidden}body.clockwork div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#2d1400;font-weight:700;font-style:italic;background-color:#000;background-image:repeating-linear-gradient(-45deg,#000,#000 10px,#170800 0,#170800 20px)}body.clockwork div.notice .label{color:#2d1400}body.clockwork div.notice .content:only-of-type{padding:0}body.clockwork div.notice hr{background-color:#896b19}body.clockwork div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #5f380e;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.clockwork section .cell,body.clockwork section .content,body.clockwork section .label,body.clockwork section .line,body.nanotrasen section .cell,body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .cell,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.clockwork section{display:table-row;width:100%}body.clockwork section:not(:first-child){padding-top:4px}body.clockwork section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.clockwork section .label{width:1%;padding-right:32px;white-space:nowrap;color:#b18b25}body.clockwork section .content:not(:last-child){padding-right:16px}body.clockwork section .line{width:100%}body.clockwork section .cell:not(:first-child){text-align:center;padding-top:0}body.clockwork section .cell span.button{width:75px}body.clockwork section:not(:last-child){padding-right:4px}body.clockwork div.subdisplay{width:100%;margin:0}body.clockwork header.titlebar .close,body.clockwork header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#cfba47}body.clockwork header.titlebar .close:hover,body.clockwork header.titlebar .minimize:hover{color:#d1bd50}body.clockwork header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#5f380e;border-bottom:1px solid #170800;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.clockwork header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.clockwork header.titlebar .title{position:absolute;top:6px;left:46px;color:#cfba47;font-size:16px;white-space:nowrap}body.clockwork header.titlebar .minimize{position:absolute;top:6px;right:46px}body.clockwork header.titlebar .close{position:absolute;top:4px;right:12px}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff2a2a2a",endColorstr="#ff202020",GradientType=0)}body.nanotrasen .normal{color:#40628a}body.nanotrasen .good{color:#537d29}body.nanotrasen .average{color:#be6209}body.nanotrasen .bad{color:#b00e0e}body.nanotrasen .highlight{color:#8ba5c4}body.nanotrasen main{display:block;margin-top:32px;padding:2px 6px 0}body.nanotrasen hr{height:2px;background-color:#40628a;border:none}body.nanotrasen .hidden{display:none}body.nanotrasen .bar .barText,body.nanotrasen span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.nanotrasen .bold{font-weight:700}body.nanotrasen .italic{font-style:italic}body.nanotrasen [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.nanotrasen div[data-tooltip],body.nanotrasen span[data-tooltip]{position:relative}body.nanotrasen div[data-tooltip]:after,body.nanotrasen span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.nanotrasen div[data-tooltip]:hover:after,body.nanotrasen span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.nanotrasen div[data-tooltip].tooltip-top:after,body.nanotrasen span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-top:hover:after,body.nanotrasen span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-left:after,body.nanotrasen span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-left:hover:after,body.nanotrasen span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}body.nanotrasen .bar .barText{position:absolute;top:0;right:3px}body.nanotrasen .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}body.nanotrasen .bar .barFill.good{background-color:#537d29}body.nanotrasen .bar .barFill.average{background-color:#be6209}body.nanotrasen .bar .barFill.bad{background-color:#b00e0e}body.nanotrasen span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.nanotrasen span.button .fa{padding-right:2px}body.nanotrasen span.button.normal{transition:background-color .5s;background-color:#40628a}body.nanotrasen span.button.normal.active:focus,body.nanotrasen span.button.normal.active:hover{transition:background-color .25s;background-color:#4f78aa;outline:0}body.nanotrasen span.button.disabled{transition:background-color .5s;background-color:#999}body.nanotrasen span.button.disabled.active:focus,body.nanotrasen span.button.disabled.active:hover{transition:background-color .25s;background-color:#a8a8a8;outline:0}body.nanotrasen span.button.selected{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.selected.active:focus,body.nanotrasen span.button.selected.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.toggle{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.toggle.active:focus,body.nanotrasen span.button.toggle.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.caution{transition:background-color .5s;background-color:#9a9d00}body.nanotrasen span.button.caution.active:focus,body.nanotrasen span.button.caution.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.nanotrasen span.button.danger{transition:background-color .5s;background-color:#9d0808}body.nanotrasen span.button.danger.active:focus,body.nanotrasen span.button.danger.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.nanotrasen span.button.gridable{width:125px;margin:2px 0}body.nanotrasen span.button.gridable.center{text-align:center;width:75px}body.nanotrasen span.button+span:not(.button),body.nanotrasen span:not(.button)+span.button{margin-left:5px}body.nanotrasen div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}body.nanotrasen div.display.tabular{padding:0;margin:0}body.nanotrasen div.display header,body.nanotrasen div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #40628a}body.nanotrasen div.display header .buttonRight,body.nanotrasen div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.nanotrasen div.display article,body.nanotrasen div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.nanotrasen input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#000;background-color:#fff;border:1px solid #272727}body.nanotrasen input.number{width:35px}body.nanotrasen input:-ms-input-placeholder{color:#999}body.nanotrasen input::placeholder{color:#999}body.nanotrasen input::-ms-clear{display:none}body.nanotrasen svg.linegraph{overflow:hidden}body.nanotrasen div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px)}body.nanotrasen div.notice .label{color:#000}body.nanotrasen div.notice .content:only-of-type{padding:0}body.nanotrasen div.notice hr{background-color:#272727}body.nanotrasen div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.nanotrasen section .cell,body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .cell,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.nanotrasen section{display:table-row;width:100%}body.nanotrasen section:not(:first-child){padding-top:4px}body.nanotrasen section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.nanotrasen section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}body.nanotrasen section .content:not(:last-child){padding-right:16px}body.nanotrasen section .line{width:100%}body.nanotrasen section .cell:not(:first-child){text-align:center;padding-top:0}body.nanotrasen section .cell span.button{width:75px}body.nanotrasen section:not(:last-child){padding-right:4px}body.nanotrasen div.subdisplay{width:100%;margin:0}body.nanotrasen header.titlebar .close,body.nanotrasen header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#8ba5c4}body.nanotrasen header.titlebar .close:hover,body.nanotrasen header.titlebar .minimize:hover{color:#9cb2cd}body.nanotrasen header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.nanotrasen header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.nanotrasen header.titlebar .title{position:absolute;top:6px;left:46px;color:#8ba5c4;font-size:16px;white-space:nowrap}body.nanotrasen header.titlebar .minimize{position:absolute;top:6px;right:46px}body.nanotrasen header.titlebar .close{position:absolute;top:4px;right:12px}body.syndicate{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjAwIDI4OS43NDIiIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGQ9Im0gOTMuNTM3Njc3LDAgYyAtMTguMTEzMTI1LDAgLTM0LjIyMDEzMywzLjExMTY0IC00OC4zMjM0ODQsOS4zMzQzNyAtMTMuOTY1MDkyLDYuMjIxNjcgLTI0LjYxMjQ0MiwxNS4wNzExNCAtMzEuOTQwNjUxLDI2LjU0NzEgLTcuMTg5OTM5OCwxMS4zMzc4OSAtMTAuMzAxMjI2NiwyNC43NDkxMSAtMTAuMzAxMjI2Niw0MC4yMzQ3OCAwLDEwLjY0NjYyIDIuNzI1MDAyNiwyMC40NjQ2NSA4LjE3NTExMTYsMjkuNDUyNTggNS42MTUyNzcsOC45ODY4NiAxNC4wMzgyNzcsMTcuMzUyMDQgMjUuMjY4ODIxLDI1LjA5NDM2IDExLjIzMDU0NCw3LjYwNTMxIDI2LjUwNzQyMSwxNS40MTgzNSA0NS44MzA1MTQsMjMuNDM3ODIgMTkuOTgzNzQ4LDguMjk1NTcgMzQuODQ4ODQ4LDE1LjU1NDcxIDQ0LjU5Mjk5OCwyMS43NzYzOCA5Ljc0NDE0LDYuMjIyNzMgMTYuNzYxNywxMi44NTg1IDIxLjA1NTcyLDE5LjkwOTUxIDQuMjk0MDQsNy4wNTIwOCA2LjQ0MTkzLDE1Ljc2NDA4IDYuNDQxOTMsMjYuMTM0NTkgMCwxNi4xNzcwMiAtNS4yMDE5NiwyOC40ODIyMiAtMTUuNjA2NzMsMzYuOTE2ODIgLTEwLjIzOTYsOC40MzQ3IC0yNS4wMjIwMywxMi42NTIzIC00NC4zNDUxNjksMTIuNjUyMyAtMTQuMDM4MTcxLDAgLTI1LjUxNTI0NywtMS42NTk0IC0zNC40MzM2MTgsLTQuOTc3NyAtOC45MTgzNywtMy40NTY2IC0xNi4xODU1NzIsLTguNzExMyAtMjEuODAwODM5LC0xNS43NjMzIC01LjYxNTI3NywtNy4wNTIxIC0xMC4wNzQ3OTUsLTE2LjY2MDg4IC0xMy4zNzc4OTksLTI4LjgyODEyIGwgLTI0Ljc3MzE2MjYyOTM5NDUsMCAwLDU2LjgyNjMyIEMgMzMuODU2NzY5LDI4Ni4wNzYwMSA2My43NDkwNCwyODkuNzQyMDEgODkuNjc4MzgzLDI4OS43NDIwMSBjIDE2LjAyMDAyNywwIDMwLjcxOTc4NywtMS4zODI3IDQ0LjA5NzMzNywtNC4xNDc5IDEzLjU0MjcyLC0yLjkwNDMgMjUuMTA0MSwtNy40Njc2IDM0LjY4MzA5LC0xMy42ODkzIDkuNzQ0MTMsLTYuMzU5NyAxNy4zNDA0MiwtMTQuNTE5NSAyMi43OTA1MiwtMjQuNDc0OCA1LjQ1MDEsLTEwLjA5MzMyIDguMTc1MTEsLTIyLjM5OTU5IDguMTc1MTEsLTM2LjkxNjgyIDAsLTEyLjk5NzY0IC0zLjMwMjEsLTI0LjMzNTM5IC05LjkwODI5LC0zNC4wMTQ2IC02LjQ0MTA1LC05LjgxNzI1IC0xNS41MjU0NSwtMTguNTI3MDcgLTI3LjI1MTQ2LC0yNi4xMzEzMyAtMTEuNTYwODUsLTcuNjA0MjcgLTI3LjkxMDgzLC0xNS44MzE0MiAtNDkuMDUwNjYsLTI0LjY4MDIyIC0xNy41MDY0NCwtNy4xOTAxMiAtMzAuNzE5NjY4LC0xMy42ODk0OCAtMzkuNjM4MDM4LC0xOS40OTcwMSAtOC45MTgzNzEsLTUuODA3NTIgLTE4LjYwNzQ3NCwtMTIuNDM0MDkgLTI0LjA5NjUyNCwtMTguODc0MTcgLTUuNDI2MDQzLC02LjM2NjE2IC05LjY1ODgyNiwtMTUuMDcwMDMgLTkuNjU4ODI2LC0yNC44ODcyOSAwLC05LjI2NDAxIDIuMDc1NDE0LC0xNy4yMTM0NSA2LjIyMzQ1NCwtMjMuODUwMzMgMTEuMDk4Mjk4LC0xNC4zOTc0OCA0MS4yODY2MzgsLTEuNzk1MDcgNDUuMDc1NjA5LDI0LjM0NzYyIDQuODM5MzkyLDYuNzc0OTEgOC44NDkzNSwxNi4yNDcyOSAxMi4wMjk1MTUsMjguNDE1NiBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNC40NzgyNSwtNS45MjQ0OCAtOS45NTQ4OCwtMTAuNjMyMjIgLTE1LjkwODM3LC0xNC4zNzQxMSAxLjY0MDU1LDAuNDc5MDUgMy4xOTAzOSwxLjAyMzc2IDQuNjM4NjUsMS42NDAyNCA2LjQ5ODYxLDIuNjI2MDcgMTIuMTY3OTMsNy4zMjc0NyAxNy4wMDczLDE0LjEwMzQ1IDQuODM5MzksNi43NzQ5MSA4Ljg0OTM1LDE2LjI0NTY3IDEyLjAyOTUyLDI4LjQxMzk3IDAsMCA4LjQ4MTI4LC0wLjEyODk0IDguNDg5NzgsLTAuMDAyIDAuNDE3NzYsNi40MTQ5NCAtMS43NTMzOSw5LjQ1Mjg2IC00LjEyMzQyLDEyLjU2MTA0IC0yLjQxNzQsMy4xNjk3OCAtNS4xNDQ4Niw2Ljc4OTczIC00LjAwMjc4LDEzLjAwMjkgMS41MDc4Niw4LjIwMzE4IDEwLjE4MzU0LDEwLjU5NjQyIDE0LjYyMTk0LDkuMzExNTQgLTMuMzE4NDIsLTAuNDk5MTEgLTUuMzE4NTUsLTEuNzQ5NDggLTUuMzE4NTUsLTEuNzQ5NDggMCwwIDEuODc2NDYsMC45OTg2OCA1LjY1MTE3LC0xLjM1OTgxIC0zLjI3Njk1LDAuOTU1NzEgLTEwLjcwNTI5LC0wLjc5NzM4IC0xMS44MDEyNSwtNi43NjMxMyAtMC45NTc1MiwtNS4yMDg2MSAwLjk0NjU0LC03LjI5NTE0IDMuNDAxMTMsLTEwLjUxNDgyIDIuNDU0NjIsLTMuMjE5NjggNS4yODQyNiwtNi45NTgzMSA0LjY4NDMsLTE0LjQ4ODI0IGwgMC4wMDMsMC4wMDIgOC45MjY3NiwwIDAsLTU1Ljk5OTY3IGMgLTE1LjA3MTI1LC0zLjg3MTY4IC0yNy42NTMxNCwtNi4zNjA0MiAtMzcuNzQ2NzEsLTcuNDY1ODYgLTkuOTU1MzEsLTEuMTA3NTUgLTIwLjE4ODIzLC0xLjY1OTgxIC0zMC42OTY2MTMsLTEuNjU5ODEgeiBtIDcwLjMyMTYwMywxNy4zMDg5MyAwLjIzODA1LDQwLjMwNDkgYyAxLjMxODA4LDEuMjI2NjYgMi40Mzk2NSwyLjI3ODE1IDMuMzQwODEsMy4xMDYwMiA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNCwxNi4yNDU2NiAxMi4wMjk1MSwyOC40MTM5NyBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNi42NzczMSwtNC41OTM4MSAtMTkuODM2NDMsLTEwLjQ3MzA5IC0zNi4xNDA3MSwtMTUuODI1MjIgeiBtIC0yOC4xMjA0OSw1LjYwNTUxIDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzcsLTYuNDY2OTcgLTEzLjg0Njc4LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDUsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gMTUuMjIxOTUsMjQuMDA4NDggOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzOCwtNi40NjY5NyAtMTMuODQ2NzksLTkuNzE3MjYgLTguNTY0NzksLTE3LjcxNjU1IHogbSAyMi43OTcwNCwwIGMgMi43NzE1LDcuOTk5MjkgMS43ODc0MSwxMS4yNDk1OCAtNC40OTM1NCwxNy43MTY1NSBsIDQuNDkzNTQsLTE3LjcxNjU1IHogbSAtOTkuMTEzODQsMi4yMDc2NCA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM4MiwtNi40NjY5NyAtMTMuODQ2NzgyLC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk1NDIsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#750000 0,#340404);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff750000",endColorstr="#ff340404",GradientType=0)}body.syndicate .normal{color:#40628a}body.syndicate .good{color:#73e573}body.syndicate .average{color:#be6209}body.syndicate .bad{color:#b00e0e}body.syndicate .highlight{color:#000}body.syndicate main{display:block;margin-top:32px;padding:2px 6px 0}body.syndicate hr{height:2px;background-color:#272727;border:none}body.syndicate .hidden{display:none}body.syndicate .bar .barText,body.syndicate span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.syndicate .bold{font-weight:700}body.syndicate .italic{font-style:italic}body.syndicate [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.syndicate div[data-tooltip],body.syndicate span[data-tooltip]{position:relative}body.syndicate div[data-tooltip]:after,body.syndicate span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.syndicate div[data-tooltip]:hover:after,body.syndicate span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.syndicate div[data-tooltip].tooltip-top:after,body.syndicate span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-top:hover:after,body.syndicate span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-left:after,body.syndicate span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-left:hover:after,body.syndicate span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:hover:after,body.syndicate span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #000;background:#272727}body.syndicate .bar .barText{position:absolute;top:0;right:3px}body.syndicate .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#000}body.syndicate .bar .barFill.good{background-color:#73e573}body.syndicate .bar .barFill.average{background-color:#be6209}body.syndicate .bar .barFill.bad{background-color:#b00e0e}body.syndicate span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.syndicate span.button .fa{padding-right:2px}body.syndicate span.button.normal{transition:background-color .5s;background-color:#397439}body.syndicate span.button.normal.active:focus,body.syndicate span.button.normal.active:hover{transition:background-color .25s;background-color:#4a964a;outline:0}body.syndicate span.button.disabled{transition:background-color .5s;background-color:#363636}body.syndicate span.button.disabled.active:focus,body.syndicate span.button.disabled.active:hover{transition:background-color .25s;background-color:#545454;outline:0}body.syndicate span.button.selected{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.selected.active:focus,body.syndicate span.button.selected.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.toggle{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.toggle.active:focus,body.syndicate span.button.toggle.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.caution{transition:background-color .5s;background-color:#be6209}body.syndicate span.button.caution.active:focus,body.syndicate span.button.caution.active:hover{transition:background-color .25s;background-color:#eb790b;outline:0}body.syndicate span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.syndicate span.button.danger.active:focus,body.syndicate span.button.danger.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.syndicate span.button.gridable{width:125px;margin:2px 0}body.syndicate span.button.gridable.center{text-align:center;width:75px}body.syndicate span.button+span:not(.button),body.syndicate span:not(.button)+span.button{margin-left:5px}body.syndicate div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000);background-color:rgba(0,0,0,.5);box-shadow:inset 0 0 5px rgba(0,0,0,.75)}body.syndicate div.display.tabular{padding:0;margin:0}body.syndicate div.display header,body.syndicate div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #272727}body.syndicate div.display header .buttonRight,body.syndicate div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.syndicate div.display article,body.syndicate div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.syndicate input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#fff;background-color:#9d0808;border:1px solid #272727}body.syndicate input.number{width:35px}body.syndicate input:-ms-input-placeholder{color:#999}body.syndicate input::placeholder{color:#999}body.syndicate input::-ms-clear{display:none}body.syndicate svg.linegraph{overflow:hidden}body.syndicate div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#750000;background-image:repeating-linear-gradient(-45deg,#750000,#750000 10px,#910101 0,#910101 20px)}body.syndicate div.notice .label{color:#000}body.syndicate div.notice .content:only-of-type{padding:0}body.syndicate div.notice hr{background-color:#272727}body.syndicate div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.syndicate section .cell,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.syndicate section{display:table-row;width:100%}body.syndicate section:not(:first-child){padding-top:4px}body.syndicate section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.syndicate section .label{width:1%;padding-right:32px;white-space:nowrap;color:#fff}body.syndicate section .content:not(:last-child){padding-right:16px}body.syndicate section .line{width:100%}body.syndicate section .cell:not(:first-child){text-align:center;padding-top:0}body.syndicate section .cell span.button{width:75px}body.syndicate section:not(:last-child){padding-right:4px}body.syndicate div.subdisplay{width:100%;margin:0}body.syndicate header.titlebar .close,body.syndicate header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#e74242}body.syndicate header.titlebar .close:hover,body.syndicate header.titlebar .minimize:hover{color:#eb5e5e}body.syndicate header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.syndicate header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.syndicate header.titlebar .title{position:absolute;top:6px;left:46px;color:#e74242;font-size:16px;white-space:nowrap}body.syndicate header.titlebar .minimize{position:absolute;top:6px;right:46px}body.syndicate header.titlebar .close{position:absolute;top:4px;right:12px}.no-icons header.titlebar .statusicon{font-size:20px}.no-icons header.titlebar .statusicon:after{content:"O"}.no-icons header.titlebar .minimize{top:-2px;font-size:20px}.no-icons header.titlebar .minimize:after{content:"—"}.no-icons header.titlebar .close{font-size:20px}.no-icons header.titlebar .close:after{content:"X"} \ No newline at end of file +@charset "utf-8";body,html{box-sizing:border-box;height:100%;margin:0}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff;background-color:#2a2a2a;background-image:linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff2a2a2a",endColorstr="#ff202020",GradientType=0)}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}body.clockwork{background:linear-gradient(180deg,#b18b25 0,#5f380e);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffb18b25",endColorstr="#ff5f380e",GradientType=0)}body.clockwork .normal{color:#b18b25}body.clockwork .good{color:#cfba47}body.clockwork .average{color:#896b19}body.clockwork .bad{color:#5f380e}body.clockwork .highlight{color:#b18b25}body.clockwork main{display:block;margin-top:32px;padding:2px 6px 0}body.clockwork hr{height:2px;background-color:#b18b25;border:none}body.clockwork .hidden{display:none}body.clockwork .bar .barText,body.clockwork span.button{color:#b18b25;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.clockwork .bold{font-weight:700}body.clockwork .italic{font-style:italic}body.clockwork [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.clockwork div[data-tooltip],body.clockwork span[data-tooltip]{position:relative}body.clockwork div[data-tooltip]:after,body.clockwork span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #170800;background-color:#2d1400}body.clockwork div[data-tooltip]:hover:after,body.clockwork span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.clockwork div[data-tooltip].tooltip-top:after,body.clockwork span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-top:hover:after,body.clockwork span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:after,body.clockwork span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:hover:after,body.clockwork span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-left:after,body.clockwork span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-left:hover:after,body.clockwork span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:after,body.clockwork span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:hover:after,body.clockwork span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #170800;background:#2d1400}body.clockwork .bar .barText{position:absolute;top:0;right:3px}body.clockwork .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#b18b25}body.clockwork .bar .barFill.good{background-color:#cfba47}body.clockwork .bar .barFill.average{background-color:#896b19}body.clockwork .bar .barFill.bad{background-color:#5f380e}body.clockwork span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #170800}body.clockwork span.button .fa{padding-right:2px}body.clockwork span.button.normal{transition:background-color .5s;background-color:#5f380e}body.clockwork span.button.normal.active:focus,body.clockwork span.button.normal.active:hover{transition:background-color .25s;background-color:#704211;outline:0}body.clockwork span.button.disabled{transition:background-color .5s;background-color:#2d1400}body.clockwork span.button.disabled.active:focus,body.clockwork span.button.disabled.active:hover{transition:background-color .25s;background-color:#441e00;outline:0}body.clockwork span.button.selected{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.selected.active:focus,body.clockwork span.button.selected.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.toggle{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.toggle.active:focus,body.clockwork span.button.toggle.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.caution{transition:background-color .5s;background-color:#be6209}body.clockwork span.button.caution.active:focus,body.clockwork span.button.caution.active:hover{transition:background-color .25s;background-color:#cd6a0a;outline:0}body.clockwork span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.clockwork span.button.danger.active:focus,body.clockwork span.button.danger.active:hover{transition:background-color .25s;background-color:#abaf00;outline:0}body.clockwork span.button.gridable{width:125px;margin:2px 0}body.clockwork span.button.gridable.center{text-align:center;width:75px}body.clockwork span.button+span:not(.button),body.clockwork span:not(.button)+span.button{margin-left:5px}body.clockwork div.display{width:100%;padding:4px;margin:6px 0;background-color:#2d1400;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400);background-color:rgba(45,20,0,.9);box-shadow:inset 0 0 5px rgba(0,0,0,.3)}body.clockwork div.display.tabular{padding:0;margin:0}body.clockwork div.display header,body.clockwork div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#cfba47;border-bottom:2px solid #b18b25}body.clockwork div.display header .buttonRight,body.clockwork div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.clockwork div.display article,body.clockwork div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.clockwork input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#b18b25;background-color:#cfba47;border:1px solid #272727}body.clockwork input.number{width:35px}body.clockwork input:-ms-input-placeholder{color:#999}body.clockwork input::placeholder{color:#999}body.clockwork input::-ms-clear{display:none}body.clockwork svg.linegraph{overflow:hidden}body.clockwork div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#2d1400;font-weight:700;font-style:italic;background-color:#000;background-image:repeating-linear-gradient(-45deg,#000,#000 10px,#170800 0,#170800 20px)}body.clockwork div.notice .label{color:#2d1400}body.clockwork div.notice .content:only-of-type{padding:0}body.clockwork div.notice hr{background-color:#896b19}body.clockwork div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #5f380e;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.clockwork section .cell,body.clockwork section .content,body.clockwork section .label,body.clockwork section .line,body.nanotrasen section .cell,body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .cell,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.clockwork section{display:table-row;width:100%}body.clockwork section:not(:first-child){padding-top:4px}body.clockwork section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.clockwork section .label{width:1%;padding-right:32px;white-space:nowrap;color:#b18b25}body.clockwork section .content:not(:last-child){padding-right:16px}body.clockwork section .line{width:100%}body.clockwork section .cell:not(:first-child){text-align:center;padding-top:0}body.clockwork section .cell span.button{width:75px}body.clockwork section:not(:last-child){padding-right:4px}body.clockwork div.subdisplay{width:100%;margin:0}body.clockwork header.titlebar .close,body.clockwork header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#cfba47}body.clockwork header.titlebar .close:hover,body.clockwork header.titlebar .minimize:hover{color:#d1bd50}body.clockwork header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#5f380e;border-bottom:1px solid #170800;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.clockwork header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.clockwork header.titlebar .title{position:absolute;top:6px;left:46px;color:#cfba47;font-size:16px;white-space:nowrap}body.clockwork header.titlebar .minimize{position:absolute;top:6px;right:46px}body.clockwork header.titlebar .close{position:absolute;top:4px;right:12px}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMzMiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPgo=") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff2a2a2a",endColorstr="#ff202020",GradientType=0)}body.nanotrasen .normal{color:#40628a}body.nanotrasen .good{color:#537d29}body.nanotrasen .average{color:#be6209}body.nanotrasen .bad{color:#b00e0e}body.nanotrasen .highlight{color:#8ba5c4}body.nanotrasen main{display:block;margin-top:32px;padding:2px 6px 0}body.nanotrasen hr{height:2px;background-color:#40628a;border:none}body.nanotrasen .hidden{display:none}body.nanotrasen .bar .barText,body.nanotrasen span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.nanotrasen .bold{font-weight:700}body.nanotrasen .italic{font-style:italic}body.nanotrasen [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.nanotrasen div[data-tooltip],body.nanotrasen span[data-tooltip]{position:relative}body.nanotrasen div[data-tooltip]:after,body.nanotrasen span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.nanotrasen div[data-tooltip]:hover:after,body.nanotrasen span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.nanotrasen div[data-tooltip].tooltip-top:after,body.nanotrasen span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-top:hover:after,body.nanotrasen span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-left:after,body.nanotrasen span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-left:hover:after,body.nanotrasen span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}body.nanotrasen .bar .barText{position:absolute;top:0;right:3px}body.nanotrasen .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}body.nanotrasen .bar .barFill.good{background-color:#537d29}body.nanotrasen .bar .barFill.average{background-color:#be6209}body.nanotrasen .bar .barFill.bad{background-color:#b00e0e}body.nanotrasen span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.nanotrasen span.button .fa{padding-right:2px}body.nanotrasen span.button.normal{transition:background-color .5s;background-color:#40628a}body.nanotrasen span.button.normal.active:focus,body.nanotrasen span.button.normal.active:hover{transition:background-color .25s;background-color:#4f78aa;outline:0}body.nanotrasen span.button.disabled{transition:background-color .5s;background-color:#999}body.nanotrasen span.button.disabled.active:focus,body.nanotrasen span.button.disabled.active:hover{transition:background-color .25s;background-color:#a8a8a8;outline:0}body.nanotrasen span.button.selected{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.selected.active:focus,body.nanotrasen span.button.selected.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.toggle{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.toggle.active:focus,body.nanotrasen span.button.toggle.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.caution{transition:background-color .5s;background-color:#9a9d00}body.nanotrasen span.button.caution.active:focus,body.nanotrasen span.button.caution.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.nanotrasen span.button.danger{transition:background-color .5s;background-color:#9d0808}body.nanotrasen span.button.danger.active:focus,body.nanotrasen span.button.danger.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.nanotrasen span.button.gridable{width:125px;margin:2px 0}body.nanotrasen span.button.gridable.center{text-align:center;width:75px}body.nanotrasen span.button+span:not(.button),body.nanotrasen span:not(.button)+span.button{margin-left:5px}body.nanotrasen div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}body.nanotrasen div.display.tabular{padding:0;margin:0}body.nanotrasen div.display header,body.nanotrasen div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #40628a}body.nanotrasen div.display header .buttonRight,body.nanotrasen div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.nanotrasen div.display article,body.nanotrasen div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.nanotrasen input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#000;background-color:#fff;border:1px solid #272727}body.nanotrasen input.number{width:35px}body.nanotrasen input:-ms-input-placeholder{color:#999}body.nanotrasen input::placeholder{color:#999}body.nanotrasen input::-ms-clear{display:none}body.nanotrasen svg.linegraph{overflow:hidden}body.nanotrasen div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px)}body.nanotrasen div.notice .label{color:#000}body.nanotrasen div.notice .content:only-of-type{padding:0}body.nanotrasen div.notice hr{background-color:#272727}body.nanotrasen div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.nanotrasen section .cell,body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .cell,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.nanotrasen section{display:table-row;width:100%}body.nanotrasen section:not(:first-child){padding-top:4px}body.nanotrasen section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.nanotrasen section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}body.nanotrasen section .content:not(:last-child){padding-right:16px}body.nanotrasen section .line{width:100%}body.nanotrasen section .cell:not(:first-child){text-align:center;padding-top:0}body.nanotrasen section .cell span.button{width:75px}body.nanotrasen section:not(:last-child){padding-right:4px}body.nanotrasen div.subdisplay{width:100%;margin:0}body.nanotrasen header.titlebar .close,body.nanotrasen header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#8ba5c4}body.nanotrasen header.titlebar .close:hover,body.nanotrasen header.titlebar .minimize:hover{color:#9cb2cd}body.nanotrasen header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.nanotrasen header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.nanotrasen header.titlebar .title{position:absolute;top:6px;left:46px;color:#8ba5c4;font-size:16px;white-space:nowrap}body.nanotrasen header.titlebar .minimize{position:absolute;top:6px;right:46px}body.nanotrasen header.titlebar .close{position:absolute;top:4px;right:12px}body.syndicate{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCAyMDAgMjg5Ljc0MiIgb3BhY2l0eT0iLjMzIj4KICA8cGF0aCBkPSJtIDkzLjUzNzY3NywwIGMgLTE4LjExMzEyNSwwIC0zNC4yMjAxMzMsMy4xMTE2NCAtNDguMzIzNDg0LDkuMzM0MzcgLTEzLjk2NTA5Miw2LjIyMTY3IC0yNC42MTI0NDIsMTUuMDcxMTQgLTMxLjk0MDY1MSwyNi41NDcxIC03LjE4OTkzOTgsMTEuMzM3ODkgLTEwLjMwMTIyNjYsMjQuNzQ5MTEgLTEwLjMwMTIyNjYsNDAuMjM0NzggMCwxMC42NDY2MiAyLjcyNTAwMjYsMjAuNDY0NjUgOC4xNzUxMTE2LDI5LjQ1MjU4IDUuNjE1Mjc3LDguOTg2ODYgMTQuMDM4Mjc3LDE3LjM1MjA0IDI1LjI2ODgyMSwyNS4wOTQzNiAxMS4yMzA1NDQsNy42MDUzMSAyNi41MDc0MjEsMTUuNDE4MzUgNDUuODMwNTE0LDIzLjQzNzgyIDE5Ljk4Mzc0OCw4LjI5NTU3IDM0Ljg0ODg0OCwxNS41NTQ3MSA0NC41OTI5OTgsMjEuNzc2MzggOS43NDQxNCw2LjIyMjczIDE2Ljc2MTcsMTIuODU4NSAyMS4wNTU3MiwxOS45MDk1MSA0LjI5NDA0LDcuMDUyMDggNi40NDE5MywxNS43NjQwOCA2LjQ0MTkzLDI2LjEzNDU5IDAsMTYuMTc3MDIgLTUuMjAxOTYsMjguNDgyMjIgLTE1LjYwNjczLDM2LjkxNjgyIC0xMC4yMzk2LDguNDM0NyAtMjUuMDIyMDMsMTIuNjUyMyAtNDQuMzQ1MTY5LDEyLjY1MjMgLTE0LjAzODE3MSwwIC0yNS41MTUyNDcsLTEuNjU5NCAtMzQuNDMzNjE4LC00Ljk3NzcgLTguOTE4MzcsLTMuNDU2NiAtMTYuMTg1NTcyLC04LjcxMTMgLTIxLjgwMDgzOSwtMTUuNzYzMyAtNS42MTUyNzcsLTcuMDUyMSAtMTAuMDc0Nzk1LC0xNi42NjA4OCAtMTMuMzc3ODk5LC0yOC44MjgxMiBsIC0yNC43NzMxNjI2MjkzOTQ1LDAgMCw1Ni44MjYzMiBDIDMzLjg1Njc2OSwyODYuMDc2MDEgNjMuNzQ5MDQsMjg5Ljc0MjAxIDg5LjY3ODM4MywyODkuNzQyMDEgYyAxNi4wMjAwMjcsMCAzMC43MTk3ODcsLTEuMzgyNyA0NC4wOTczMzcsLTQuMTQ3OSAxMy41NDI3MiwtMi45MDQzIDI1LjEwNDEsLTcuNDY3NiAzNC42ODMwOSwtMTMuNjg5MyA5Ljc0NDEzLC02LjM1OTcgMTcuMzQwNDIsLTE0LjUxOTUgMjIuNzkwNTIsLTI0LjQ3NDggNS40NTAxLC0xMC4wOTMzMiA4LjE3NTExLC0yMi4zOTk1OSA4LjE3NTExLC0zNi45MTY4MiAwLC0xMi45OTc2NCAtMy4zMDIxLC0yNC4zMzUzOSAtOS45MDgyOSwtMzQuMDE0NiAtNi40NDEwNSwtOS44MTcyNSAtMTUuNTI1NDUsLTE4LjUyNzA3IC0yNy4yNTE0NiwtMjYuMTMxMzMgLTExLjU2MDg1LC03LjYwNDI3IC0yNy45MTA4MywtMTUuODMxNDIgLTQ5LjA1MDY2LC0yNC42ODAyMiAtMTcuNTA2NDQsLTcuMTkwMTIgLTMwLjcxOTY2OCwtMTMuNjg5NDggLTM5LjYzODAzOCwtMTkuNDk3MDEgLTguOTE4MzcxLC01LjgwNzUyIC0xOC42MDc0NzQsLTEyLjQzNDA5IC0yNC4wOTY1MjQsLTE4Ljg3NDE3IC01LjQyNjA0MywtNi4zNjYxNiAtOS42NTg4MjYsLTE1LjA3MDAzIC05LjY1ODgyNiwtMjQuODg3MjkgMCwtOS4yNjQwMSAyLjA3NTQxNCwtMTcuMjEzNDUgNi4yMjM0NTQsLTIzLjg1MDMzIDExLjA5ODI5OCwtMTQuMzk3NDggNDEuMjg2NjM4LC0xLjc5NTA3IDQ1LjA3NTYwOSwyNC4zNDc2MiA0LjgzOTM5Miw2Ljc3NDkxIDguODQ5MzUsMTYuMjQ3MjkgMTIuMDI5NTE1LDI4LjQxNTYgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTQuNDc4MjUsLTUuOTI0NDggLTkuOTU0ODgsLTEwLjYzMjIyIC0xNS45MDgzNywtMTQuMzc0MTEgMS42NDA1NSwwLjQ3OTA1IDMuMTkwMzksMS4wMjM3NiA0LjYzODY1LDEuNjQwMjQgNi40OTg2MSwyLjYyNjA3IDEyLjE2NzkzLDcuMzI3NDcgMTcuMDA3MywxNC4xMDM0NSA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNSwxNi4yNDU2NyAxMi4wMjk1MiwyOC40MTM5NyAwLDAgOC40ODEyOCwtMC4xMjg5NCA4LjQ4OTc4LC0wLjAwMiAwLjQxNzc2LDYuNDE0OTQgLTEuNzUzMzksOS40NTI4NiAtNC4xMjM0MiwxMi41NjEwNCAtMi40MTc0LDMuMTY5NzggLTUuMTQ0ODYsNi43ODk3MyAtNC4wMDI3OCwxMy4wMDI5IDEuNTA3ODYsOC4yMDMxOCAxMC4xODM1NCwxMC41OTY0MiAxNC42MjE5NCw5LjMxMTU0IC0zLjMxODQyLC0wLjQ5OTExIC01LjMxODU1LC0xLjc0OTQ4IC01LjMxODU1LC0xLjc0OTQ4IDAsMCAxLjg3NjQ2LDAuOTk4NjggNS42NTExNywtMS4zNTk4MSAtMy4yNzY5NSwwLjk1NTcxIC0xMC43MDUyOSwtMC43OTczOCAtMTEuODAxMjUsLTYuNzYzMTMgLTAuOTU3NTIsLTUuMjA4NjEgMC45NDY1NCwtNy4yOTUxNCAzLjQwMTEzLC0xMC41MTQ4MiAyLjQ1NDYyLC0zLjIxOTY4IDUuMjg0MjYsLTYuOTU4MzEgNC42ODQzLC0xNC40ODgyNCBsIDAuMDAzLDAuMDAyIDguOTI2NzYsMCAwLC01NS45OTk2NyBjIC0xNS4wNzEyNSwtMy44NzE2OCAtMjcuNjUzMTQsLTYuMzYwNDIgLTM3Ljc0NjcxLC03LjQ2NTg2IC05Ljk1NTMxLC0xLjEwNzU1IC0yMC4xODgyMywtMS42NTk4MSAtMzAuNjk2NjEzLC0xLjY1OTgxIHogbSA3MC4zMjE2MDMsMTcuMzA4OTMgMC4yMzgwNSw0MC4zMDQ5IGMgMS4zMTgwOCwxLjIyNjY2IDIuNDM5NjUsMi4yNzgxNSAzLjM0MDgxLDMuMTA2MDIgNC44MzkzOSw2Ljc3NDkxIDguODQ5MzQsMTYuMjQ1NjYgMTIuMDI5NTEsMjguNDEzOTcgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTYuNjc3MzEsLTQuNTkzODEgLTE5LjgzNjQzLC0xMC40NzMwOSAtMzYuMTQwNzEsLTE1LjgyNTIyIHogbSAtMjguMTIwNDksNS42MDU1MSA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM3LC02LjQ2Njk3IC0xMy44NDY3OCwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NzA1LDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiBtIDE1LjIyMTk1LDI0LjAwODQ4IDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzgsLTYuNDY2OTcgLTEzLjg0Njc5LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDQsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gLTk5LjExMzg0LDIuMjA3NjQgOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzODIsLTYuNDY2OTcgLTEzLjg0Njc4MiwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NTQyLDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiIgLz4KPC9zdmc+CjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPgo8IS0tIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8gLS0+Cg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#750000 0,#340404);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff750000",endColorstr="#ff340404",GradientType=0)}body.syndicate .normal{color:#40628a}body.syndicate .good{color:#73e573}body.syndicate .average{color:#be6209}body.syndicate .bad{color:#b00e0e}body.syndicate .highlight{color:#000}body.syndicate main{display:block;margin-top:32px;padding:2px 6px 0}body.syndicate hr{height:2px;background-color:#272727;border:none}body.syndicate .hidden{display:none}body.syndicate .bar .barText,body.syndicate span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.syndicate .bold{font-weight:700}body.syndicate .italic{font-style:italic}body.syndicate [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.syndicate div[data-tooltip],body.syndicate span[data-tooltip]{position:relative}body.syndicate div[data-tooltip]:after,body.syndicate span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.syndicate div[data-tooltip]:hover:after,body.syndicate span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.syndicate div[data-tooltip].tooltip-top:after,body.syndicate span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-top:hover:after,body.syndicate span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-left:after,body.syndicate span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-left:hover:after,body.syndicate span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:hover:after,body.syndicate span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #000;background:#272727}body.syndicate .bar .barText{position:absolute;top:0;right:3px}body.syndicate .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#000}body.syndicate .bar .barFill.good{background-color:#73e573}body.syndicate .bar .barFill.average{background-color:#be6209}body.syndicate .bar .barFill.bad{background-color:#b00e0e}body.syndicate span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.syndicate span.button .fa{padding-right:2px}body.syndicate span.button.normal{transition:background-color .5s;background-color:#397439}body.syndicate span.button.normal.active:focus,body.syndicate span.button.normal.active:hover{transition:background-color .25s;background-color:#4a964a;outline:0}body.syndicate span.button.disabled{transition:background-color .5s;background-color:#363636}body.syndicate span.button.disabled.active:focus,body.syndicate span.button.disabled.active:hover{transition:background-color .25s;background-color:#545454;outline:0}body.syndicate span.button.selected{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.selected.active:focus,body.syndicate span.button.selected.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.toggle{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.toggle.active:focus,body.syndicate span.button.toggle.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.caution{transition:background-color .5s;background-color:#be6209}body.syndicate span.button.caution.active:focus,body.syndicate span.button.caution.active:hover{transition:background-color .25s;background-color:#eb790b;outline:0}body.syndicate span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.syndicate span.button.danger.active:focus,body.syndicate span.button.danger.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.syndicate span.button.gridable{width:125px;margin:2px 0}body.syndicate span.button.gridable.center{text-align:center;width:75px}body.syndicate span.button+span:not(.button),body.syndicate span:not(.button)+span.button{margin-left:5px}body.syndicate div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000);background-color:rgba(0,0,0,.5);box-shadow:inset 0 0 5px rgba(0,0,0,.75)}body.syndicate div.display.tabular{padding:0;margin:0}body.syndicate div.display header,body.syndicate div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #272727}body.syndicate div.display header .buttonRight,body.syndicate div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.syndicate div.display article,body.syndicate div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.syndicate input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#fff;background-color:#9d0808;border:1px solid #272727}body.syndicate input.number{width:35px}body.syndicate input:-ms-input-placeholder{color:#999}body.syndicate input::placeholder{color:#999}body.syndicate input::-ms-clear{display:none}body.syndicate svg.linegraph{overflow:hidden}body.syndicate div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#750000;background-image:repeating-linear-gradient(-45deg,#750000,#750000 10px,#910101 0,#910101 20px)}body.syndicate div.notice .label{color:#000}body.syndicate div.notice .content:only-of-type{padding:0}body.syndicate div.notice hr{background-color:#272727}body.syndicate div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.syndicate section .cell,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.syndicate section{display:table-row;width:100%}body.syndicate section:not(:first-child){padding-top:4px}body.syndicate section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.syndicate section .label{width:1%;padding-right:32px;white-space:nowrap;color:#fff}body.syndicate section .content:not(:last-child){padding-right:16px}body.syndicate section .line{width:100%}body.syndicate section .cell:not(:first-child){text-align:center;padding-top:0}body.syndicate section .cell span.button{width:75px}body.syndicate section:not(:last-child){padding-right:4px}body.syndicate div.subdisplay{width:100%;margin:0}body.syndicate header.titlebar .close,body.syndicate header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#e74242}body.syndicate header.titlebar .close:hover,body.syndicate header.titlebar .minimize:hover{color:#eb5e5e}body.syndicate header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.syndicate header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.syndicate header.titlebar .title{position:absolute;top:6px;left:46px;color:#e74242;font-size:16px;white-space:nowrap}body.syndicate header.titlebar .minimize{position:absolute;top:6px;right:46px}body.syndicate header.titlebar .close{position:absolute;top:4px;right:12px}.no-icons header.titlebar .statusicon{font-size:20px}.no-icons header.titlebar .statusicon:after{content:"O"}.no-icons header.titlebar .minimize{top:-2px;font-size:20px}.no-icons header.titlebar .minimize:after{content:"—"}.no-icons header.titlebar .close{font-size:20px}.no-icons header.titlebar .close:after{content:"X"} \ No newline at end of file diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index 55a2d078705..ad3019668ea 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -6,16 +6,16 @@ try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n},_=function(t) return t.docFrag.appendChild(e.render())}),this.renderedFragments=this.fragments.slice(),this.fragmentsToRender=[],this.rendered=!0,this.docFrag}function Ze(t){var e,n,a=this;this.updating||(this.updating=!0,this.keypath&&(e=this.root.viewmodel.wrapped[this.keypath.str])&&(t=e.get()),this.fragmentsToCreate.length?(n={template:this.template.f||[],root:this.root,pElement:this.pElement,owner:this},this.fragmentsToCreate.forEach(function(t){var e;n.context=a.keypath.join(t),n.index=t,e=new rg(n),a.fragmentsToRender.push(a.fragments[t]=e)}),this.fragmentsToCreate.length=0):en(this,t)&&(this.bubble(),this.rendered&&bs.addView(this)),this.value=t,this.updating=!1)}function tn(t,e,n){if(e===Bu&&t.indexRefs&&t.indexRefs[0]){var a=t.indexRefs[0];(n&&"i"===a.t||!n&&"k"===a.t)&&(n||(t.length=0,t.fragmentsToUnrender=t.fragments.slice(0),t.fragmentsToUnrender.forEach(function(t){return t.unbind()}))),a.t=n?"k":"i"}t.currentSubtype=e}function en(t,e){var n={template:t.template.f||[],root:t.root,pElement:t.parentFragment.pElement,owner:t};if(t.hasContext=!0,t.subtype)switch(t.subtype){case Fu:return t.hasContext=!1,sn(t,e,!1,n);case Iu:return t.hasContext=!1,sn(t,e,!0,n);case qu:return on(t,n);case Uu:return rn(t,e,n);case Bu:if(u(e))return tn(t,t.subtype,!0),an(t,e,n)}return t.ordered=!!o(e),t.ordered?(tn(t,Bu,!1),nn(t,e,n)):u(e)||"function"==typeof e?t.template.i?(tn(t,Bu,!0),an(t,e,n)):(tn(t,qu,!1),on(t,n)):(tn(t,Fu,!1),t.hasContext=!1,sn(t,e,!1,n))}function nn(t,e,n){var a,r,i;if(r=e.length,r===t.length)return!1;if(rt.length)for(a=t.length;r>a;a+=1)n.context=t.keypath.join(a),n.index=a,i=new rg(n),t.fragmentsToRender.push(t.fragments[a]=i);return t.length=r,!0}function an(t,e,n){var a,r,i,o,s,p;for(i=t.hasKey||(t.hasKey={}),r=t.fragments.length;r--;)o=t.fragments[r],o.key in e||(s=!0,o.unbind(),t.fragmentsToUnrender.push(o),t.fragments.splice(r,1),i[o.key]=!1);for(r=t.fragments.length;r--;)o=t.fragments[r],o.index!==r&&(o.index=r,(p=o.registeredIndexRefs)&&p.forEach(cn));r=t.fragments.length;for(a in e)i[a]||(s=!0,n.context=t.keypath.join(a),n.key=a,n.index=r++,o=new rg(n),t.fragmentsToRender.push(o),t.fragments.push(o),i[a]=!0);return t.length=t.fragments.length,s}function rn(t,e,n){return e?on(t,n):pn(t)}function on(t,e){var n;return t.length?void 0:(e.context=t.keypath,e.index=0,n=new rg(e),t.fragmentsToRender.push(t.fragments[0]=n),t.length=1,!0)}function sn(t,e,n,a){var r,i,s,p,c;if(i=o(e)&&0===e.length,s=!1,!o(e)&&u(e)){s=!0;for(c in e){s=!1;break}}return r=n?i||s||!e:e&&!i&&!s,r?t.length?t.length>1?(t.fragmentsToUnrender=t.fragments.splice(1),t.fragmentsToUnrender.forEach(K),!0):void 0:(a.index=0,p=new rg(a),t.fragmentsToRender.push(t.fragments[0]=p),t.length=1,!0):pn(t)}function pn(t){return t.length?(t.fragmentsToUnrender=t.fragments.splice(0,t.fragments.length).filter(un),t.fragmentsToUnrender.forEach(K),t.length=t.fragmentsToRender.length=0,!0):void 0}function un(t){return t.rendered}function cn(t){t.rebind("","")}function ln(t){var e,n,a;for(e="",n=0,a=this.length,n=0;a>n;n+=1)e+=this.fragments[n].toString(t);return e}function dn(){var t=this;this.fragments.forEach(K),this.fragmentsToRender.forEach(function(e){return N(t.fragments,e)}),this.fragmentsToRender=[],_c.call(this),this.length=0,this.unbound=!0}function fn(t){this.fragments.forEach(t?hn:mn),this.renderedFragments=[],this.rendered=!1}function hn(t){t.unrender(!0)}function mn(t){t.unrender(!1)}function gn(){var t,e,n,a,r,i,o;for(n=this.renderedFragments;t=this.fragmentsToUnrender.pop();)t.unrender(!0),n.splice(n.indexOf(t),1);for(;t=this.fragmentsToRender.shift();)t.render();for(this.rendered&&(r=this.parentFragment.getNode()),o=this.fragments.length,i=0;o>i;i+=1)t=this.fragments[i],e=n.indexOf(t,i),e!==i?(this.docFrag.appendChild(t.detach()),-1!==e&&n.splice(e,1),n.splice(i,0,t)):this.docFrag.childNodes.length&&(a=t.firstNode(),r.insertBefore(this.docFrag,a));this.rendered&&this.docFrag.childNodes.length&&(a=this.parentFragment.findNextNode(this),r.insertBefore(this.docFrag,a)),this.renderedFragments=this.fragments.slice()}function vn(){var t,e;if(this.docFrag){for(t=this.nodes.length,e=0;t>e;e+=1)this.docFrag.appendChild(this.nodes[e]);return this.docFrag}}function bn(t){var e,n,a,r;for(n=this.nodes.length,e=0;n>e;e+=1)if(a=this.nodes[e],1===a.nodeType){if(lo(a,t))return a;if(r=a.querySelector(t))return r}return null}function yn(t,e){var n,a,r,i,o,s;for(a=this.nodes.length,n=0;a>n;n+=1)if(r=this.nodes[n],1===r.nodeType&&(lo(r,t)&&e.push(r),i=r.querySelectorAll(t)))for(o=i.length,s=0;o>s;s+=1)e.push(i[s])}function _n(){return this.rendered&&this.nodes[0]?this.nodes[0]:this.parentFragment.findNextNode(this)}function xn(t){return gl[t]||(gl[t]=co(t))}function wn(t){var e,n,a;t&&"select"===t.name&&t.binding&&(e=F(t.node.options).filter(kn),t.getAttribute("multiple")?a=e.map(function(t){return t.value}):(n=e[0])&&(a=n.value),void 0!==a&&t.binding.setValue(a),t.bubble())}function kn(t){return t.selected}function Sn(){if(this.rendered)throw Error("Attempted to render an item that was already rendered");return this.docFrag=document.createDocumentFragment(),this.nodes=vl(this.value,this.parentFragment.getNode(),this.docFrag),bl(this.pElement),this.rendered=!0,this.docFrag}function En(t){var e;(e=this.root.viewmodel.wrapped[this.keypath.str])&&(t=e.get()),t!==this.value&&(this.value=t,this.parentFragment.bubble(),this.rendered&&bs.addView(this))}function Cn(){return void 0!=this.value?we(""+this.value):""}function Pn(t){this.rendered&&t&&(this.nodes.forEach(e),this.rendered=!1)}function An(){var t,e;if(this.rendered){for(;this.nodes&&this.nodes.length;)t=this.nodes.pop(),t.parentNode.removeChild(t);e=this.parentFragment.getNode(),this.nodes=vl(this.value,e,this.docFrag),e.insertBefore(this.docFrag,this.parentFragment.findNextNode(this)),bl(this.pElement)}}function On(){var t,e=this.node;return e?((t=e.parentNode)&&t.removeChild(e),e):void 0}function Tn(){return null}function Rn(){return this.node}function Mn(t){return this.attributes&&this.attributes[t]?this.attributes[t].value:void 0}function Ln(){var t=this.useProperty||!this.rendered?this.fragment.getValue():""+this.fragment;s(t,this.value)||("id"===this.name&&this.value&&delete this.root.nodes[this.value],this.value=t,"value"===this.name&&this.node&&(this.node._ractive.value=t),this.rendered&&bs.addView(this))}function Dn(t){var e=t.fragment.items;if(1===e.length)return e[0].type===Su?e[0]:void 0}function jn(t){return this.type=Tu,this.element=t.element,this.root=t.root,zl(this,t.name),this.isBoolean=rc.test(this.name),t.value&&"string"!=typeof t.value?(this.parentFragment=this.element.parentFragment,this.fragment=new rg({template:t.value,root:this.root,owner:this}),this.value=this.fragment.getValue(),this.interpolator=Wl(this),this.isBindable=!!this.interpolator&&!this.interpolator.isStatic,void(this.ready=!0)):void(this.value=this.isBoolean?!0:t.value||"")}function Nn(t,e){this.fragment&&this.fragment.rebind(t,e)}function Fn(t){var e;this.node=t,t.namespaceURI&&t.namespaceURI!==no.html||(e=Yl[this.name]||this.name,void 0!==t[e]&&(this.propertyName=e),(this.isBoolean||this.isTwoway)&&(this.useProperty=!0),"value"===e&&(t._ractive.value=this.value)),this.rendered=!0,this.update()}function In(){var t=this,e=t.name,n=t.namespacePrefix,a=t.value,r=t.interpolator,i=t.fragment;if(("value"!==e||"select"!==this.element.name&&"textarea"!==this.element.name)&&("value"!==e||void 0===this.element.getAttribute("contenteditable"))){if("name"===e&&"input"===this.element.name&&r)return"name={{"+(r.keypath.str||r.ref)+"}}";if(this.isBoolean)return a?e:"";if(i){if(1===i.items.length&&null==i.items[0].value)return"";a=""+i}return n&&(e=n+":"+e),a?e+'="'+Bn(a)+'"':e}}function Bn(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'")}function qn(){this.fragment&&this.fragment.unbind(),"id"===this.name&&delete this.root.nodes[this.value]}function Un(){var t,e,n,a,r=this.value;if(!this.locked)for(this.node._ractive.value=r,t=this.node.options,a=t.length;a--;)if(e=t[a],n=e._ractive?e._ractive.value:e.value,n==r){e.selected=!0;break}}function Vn(){var t,e,n,a,r=this.value;for(i(r)||(r=[r]),t=this.node.options,e=t.length;e--;)n=t[e],a=n._ractive?n._ractive.value:n.value,n.selected=M(r,a)}function Gn(){var t=this,e=t.node,n=t.value;e.checked=n==e._ractive.value}function zn(){var t,e,n,a,r=this.node;if(t=r.checked,r.value=this.element.getAttribute("value"),r.checked=this.element.getAttribute("value")===this.element.getAttribute("name"),t&&!r.checked&&this.element.binding&&(n=this.element.binding.siblings,a=n.length)){for(;a--;){if(e=n[a],!e.element.node)return;if(e.element.node.checked)return bs.addRactive(e.root),e.handleChange()}this.root.viewmodel.set(e.keypath,void 0)}}function Wn(){var t,e,n=this,a=n.element,r=n.node,o=n.value,s=a.binding;if(t=a.getAttribute("value"),i(o)){for(e=o.length;e--;)if(t==o[e])return void(s.isChecked=r.checked=!0);s.isChecked=r.checked=!1}else s.isChecked=r.checked=o==t}function Hn(){this.node.className=n(this.value)}function Kn(){var t=this,e=t.node,n=t.value;this.root.nodes[n]=e,e.id=n}function Qn(){var t,e;t=this.node,e=this.value,void 0===e&&(e=""),t.style.setAttribute("cssText",e)}function Yn(){var t=this.value;void 0===t&&(t=""),this.locked||(this.node.innerHTML=t)}function $n(){var t=this,e=t.node,n=t.value;e._ractive.value=n,this.locked||(e.value=void 0==n?"":n)}function Jn(){this.locked||(this.node[this.propertyName]=this.value)}function Xn(){var t=this,e=t.node,n=t.namespace,a=t.name,r=t.value,i=t.fragment;n?e.setAttributeNS(n,a,""+(i||r)):this.isBoolean?r?e.setAttribute(a,""):e.removeAttribute(a):null==r?e.removeAttribute(a):e.setAttribute(a,""+(i||r))}function Zn(){var t,e,n=this,a=n.name,r=n.element,i=n.node;"id"===a?e=rd:"value"===a?"select"===r.name&&"value"===a?e=r.getAttribute("multiple")?Zl:Xl:"textarea"===r.name?e=sd:null!=r.getAttribute("contenteditable")?e=od:"input"===r.name&&(t=r.getAttribute("type"),e="file"===t?ko:"radio"===t&&r.binding&&"name"===r.binding.name?ed:sd):this.isTwoway&&"name"===a?"radio"===i.type?e=td:"checkbox"===i.type&&(e=nd):"style"===a&&i.style.setAttribute?e=id:"class"!==a||i.namespaceURI&&i.namespaceURI!==no.html?this.useProperty&&(e=pd):e=ad,e||(e=ud),this.update=e,this.update()}function ta(t,e){var n=e?"svg":"div";return dd.innerHTML="<"+n+" "+t+">",F(dd.childNodes[0].attributes)}function ea(t,e){for(var n=t.length;n--;)if(t[n].name===e.name)return!1;return!0}function na(t){for(;t=t.parent;)if("form"===t.name)return t}function aa(){this._ractive.binding.handleChange()}function ra(){var t;xd.call(this),t=this._ractive.root.viewmodel.get(this._ractive.binding.keypath),this.value=void 0==t?"":t}function ia(){var t=this._ractive.binding,e=this;t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.rendered&&xd.call(e),t._timeout=void 0},t.element.lazy)}function oa(t,e,n){var a=t+e+n;return Cd[a]||(Cd[a]=[])}function sa(t){return t.isChecked}function pa(t){return t.element.getAttribute("value")}function ua(t){var e,n,a,r,i,o=t.attributes;return t.binding&&(t.binding.teardown(),t.binding=null),(t.getAttribute("contenteditable")||o.contenteditable&&ca(o.contenteditable))&&ca(o.value)?n=Sd:"input"===t.name?(e=t.getAttribute("type"),"radio"===e||"checkbox"===e?(a=ca(o.name),r=ca(o.checked),a&&r&&m("A radio input can have two-way binding on its name attribute, or its checked attribute - not both",{ractive:t.root}),a?n="radio"===e?Td:Md:r&&(n="radio"===e?Ad:Dd)):"file"===e&&ca(o.value)?n=qd:ca(o.value)&&(n="number"===e||"range"===e?Ud:wd)):"select"===t.name&&ca(o.value)?n=t.getAttribute("multiple")?Id:Nd:"textarea"===t.name&&ca(o.value)&&(n=wd),n&&(i=new n(t))&&i.keypath?i:void 0}function ca(t){return t&&t.isBindable}function la(){var t=this.getAction();t&&!this.hasListener?this.listen():!t&&this.hasListener&&this.unrender()}function da(t){zs(this.root,this.getAction(),{event:t})}function fa(){return(""+this.action).trim()}function ha(t,e,n){var a,r,i,o=this;this.element=t,this.root=t.root,this.parentFragment=t.parentFragment,this.name=e,-1!==e.indexOf("*")&&(l('Only component proxy-events may contain "*" wildcards, <%s on-%s="..."/> is not valid',t.name,e),this.invalid=!0),n.m?(r=n.a.r,this.method=n.m,this.keypaths=[],this.fn=Mc(n.a.s,r.length),this.parentFragment=t.parentFragment,i=this.root,this.refResolvers=[],r.forEach(function(t,e){var n=void 0;(n=Kd.exec(t))?o.keypaths[e]={eventObject:!0,refinements:n[1]?n[1].split("."):[]}:o.refResolvers.push(Rc(o,t,function(t){return o.resolve(e,t)}))}),this.fire=ma):(a=n.n||n,"string"!=typeof a&&(a=new rg({template:a,root:this.root,owner:this})),this.action=a,n.d?(this.dynamicParams=new rg({template:n.d,root:this.root,owner:this.element}),this.fire=va):n.a&&(this.params=n.a,this.fire=ga))}function ma(t){var e,n,a;if(e=this.root,"function"!=typeof e[this.method])throw Error('Attempted to call a non-existent method ("'+this.method+'")');n=this.keypaths.map(function(n){var a,r,i;if(void 0!==n){if(n.eventObject){if(a=t,r=n.refinements.length)for(i=0;r>i;i+=1)a=a[n.refinements[i]]}else a=e.viewmodel.get(n);return a}}),Gs.enqueue(e,t),a=this.fn.apply(null,n),e[this.method].apply(e,a),Gs.dequeue(e)}function ga(t){zs(this.root,this.getAction(),{event:t,args:this.params})}function va(t){var e=this.dynamicParams.getArgsList();"string"==typeof e&&(e=e.substr(1,e.length-2)),zs(this.root,this.getAction(),{event:t,args:e})}function ba(t){var e,n,a,r={};e=this._ractive,n=e.events[t.type],(a=Oc(n.element.parentFragment))&&(r=Oc.resolve(a)),n.fire({node:this,original:t,index:r,keypath:e.keypath.str,context:e.root.viewmodel.get(e.keypath)})}function ya(){var t,e=this.name;if(!this.invalid){if(t=v("events",this.root,e))this.custom=t(this.node,_a(e));else{if(!("on"+e in this.node||window&&"on"+e in window||Zi))return void(Jd[e]||g(Io(e,"event"),{node:this.node}));this.node.addEventListener(e,Qd,!1)}this.hasListener=!0}}function _a(t){return $d[t]||($d[t]=function(e){var n=e.node._ractive;e.index=n.index,e.keypath=n.keypath.str,e.context=n.root.viewmodel.get(n.keypath),n.events[t].fire(e)}),$d[t]}function xa(t,e){function n(n){n&&n.rebind(t,e)}var a;return this.method?(a=this.element.parentFragment,void this.refResolvers.forEach(n)):("string"!=typeof this.action&&n(this.action),void(this.dynamicParams&&n(this.dynamicParams)))}function wa(){this.node=this.element.node,this.node._ractive.events[this.name]=this,(this.method||this.getAction())&&this.listen()}function ka(t,e){this.keypaths[t]=e}function Sa(){return this.method?void this.refResolvers.forEach(K):("string"!=typeof this.action&&this.action.unbind(),void(this.dynamicParams&&this.dynamicParams.unbind()))}function Ea(){this.custom?this.custom.teardown():this.node.removeEventListener(this.name,Qd,!1),this.hasListener=!1}function Ca(){var t=this;this.dirty||(this.dirty=!0,bs.scheduleTask(function(){Pa(t),t.dirty=!1})),this.parentFragment.bubble()}function Pa(t){var e,n,a,r,i;e=t.node,e&&(r=F(e.options),n=t.getAttribute("value"),a=t.getAttribute("multiple"),void 0!==n?(r.forEach(function(t){var e,r;e=t._ractive?t._ractive.value:t.value,r=a?Aa(n,e):n==e,r&&(i=!0),t.selected=r}),i||(r[0]&&(r[0].selected=!0),t.binding&&t.binding.forceUpdate())):t.binding&&t.binding.forceUpdate())}function Aa(t,e){for(var n=t.length;n--;)if(t[n]==e)return!0}function Oa(t,e){t.select=Ra(t.parent),t.select&&(t.select.options.push(t),e.a||(e.a={}),void 0!==e.a.value||e.a.hasOwnProperty("disabled")||(e.a.value=e.f),"selected"in e.a&&void 0!==t.select.getAttribute("value")&&delete e.a.selected)}function Ta(t){t.select&&N(t.select.options,t)}function Ra(t){if(t)do if("select"===t.name)return t;while(t=t.parent)}function Ma(t){var e,n,a,r,i,o,s;this.type=Pu,e=this.parentFragment=t.parentFragment,n=this.template=t.template,this.parent=t.pElement||e.pElement,this.root=a=e.root,this.index=t.index,this.key=t.key,this.name=Gl(n.e),"option"===this.name&&Oa(this,n),"select"===this.name&&(this.options=[],this.bubble=Ca),"form"===this.name&&(this.formBindings=[]),s=Ul(this,n),this.attributes=hd(this,n.a),this.conditionalAttributes=vd(this,n.m),n.f&&(this.fragment=new rg({template:n.f,root:a,owner:this,pElement:this,cssIds:null})),o=a.twoway,s.twoway===!1?o=!1:s.twoway===!0&&(o=!0),this.twoway=o,this.lazy=s.lazy,o&&(r=Vd(this,n.a))&&(this.binding=r,i=this.root._twowayBindings[r.keypath.str]||(this.root._twowayBindings[r.keypath.str]=[]),i.push(r)),n.v&&(this.eventHandlers=of(this,n.v)),n.o&&(this.decorator=new lf(this,n.o)),this.intro=n.t0||n.t1,this.outro=n.t0||n.t2}function La(t,e){function n(n){n.rebind(t,e)}var a,r,i,o;if(this.attributes&&this.attributes.forEach(n),this.conditionalAttributes&&this.conditionalAttributes.forEach(n),this.eventHandlers&&this.eventHandlers.forEach(n),this.decorator&&n(this.decorator),this.fragment&&n(this.fragment),i=this.liveQueries)for(o=this.root,a=i.length;a--;)i[a]._makeDirty();this.node&&(r=this.node._ractive)&&w(r,"keypath",t,e)}function Da(t){var e;(t.attributes.width||t.attributes.height)&&t.node.addEventListener("load",e=function(){var n=t.getAttribute("width"),a=t.getAttribute("height");void 0!==n&&t.node.setAttribute("width",n),void 0!==a&&t.node.setAttribute("height",a),t.node.removeEventListener("load",e,!1)},!1)}function ja(t){t.node.addEventListener("reset",Fa,!1)}function Na(t){t.node.removeEventListener("reset",Fa,!1)}function Fa(){var t=this._ractive.proxy;bs.start(),t.formBindings.forEach(Ia),bs.end()}function Ia(t){t.root.viewmodel.set(t.keypath,t.resetValue)}function Ba(t,e,n){var a,r,i;this.element=t,this.root=a=t.root,this.isIntro=n,r=e.n||e,("string"==typeof r||(i=new rg({template:r,root:a,owner:t}),r=""+i,i.unbind(),""!==r))&&(this.name=r,e.a?this.params=e.a:e.d&&(i=new rg({template:e.d,root:a,owner:t}),this.params=i.getArgsList(),i.unbind()),this._fn=v("transitions",a,r),this._fn||g(Io(r,"transition"),{ractive:this.root}))}function qa(t){return t}function Ua(){Uf.hidden=document[Ff]}function Va(){Uf.hidden=!0}function Ga(){Uf.hidden=!1}function za(){var t,e,n,a=this;return t=this.node=this.element.node,e=t.getAttribute("style"),this.complete=function(r){n||(!r&&a.isIntro&&Wa(t,e),t._ractive.transition=null,a._manager.remove(a),n=!0)},this._fn?void this._fn.apply(this.root,[this].concat(this.params)):void this.complete()}function Wa(t,e){e?t.setAttribute("style",e):(t.getAttribute("style"),t.removeAttribute("style"))}function Ha(){var t,e,n,a=this,r=this.root;return t=Ka(this),e=this.node=co(this.name,t),this.parentFragment.cssIds&&this.node.setAttribute("data-ractive-css",this.parentFragment.cssIds.map(function(t){return"{"+t+"}"}).join(" ")),Eo(this.node,"_ractive",{value:{proxy:this,keypath:cs(this.parentFragment),events:So(null),root:r}}),this.attributes.forEach(function(t){return t.render(e)}),this.conditionalAttributes.forEach(function(t){return t.render(e)}),this.fragment&&("script"===this.name?(this.bubble=Xf,this.node.text=this.fragment.toString(!1),this.fragment.unrender=ko):"style"===this.name?(this.bubble=Jf,this.bubble(),this.fragment.unrender=ko):this.binding&&this.getAttribute("contenteditable")?this.fragment.unrender=ko:this.node.appendChild(this.fragment.render())),this.binding&&(this.binding.render(),this.node._ractive.binding=this.binding),this.eventHandlers&&this.eventHandlers.forEach(function(t){return t.render()}),"option"===this.name&&Qa(this),"img"===this.name?Da(this):"form"===this.name?ja(this):"input"===this.name||"textarea"===this.name?this.node.defaultValue=this.node.value:"option"===this.name&&(this.node.defaultSelected=this.node.selected),this.decorator&&this.decorator.fn&&bs.scheduleTask(function(){a.decorator.torndown||a.decorator.init()},!0),r.transitionsEnabled&&this.intro&&(n=new Zf(this,this.intro,!0),bs.registerTransition(n),bs.scheduleTask(function(){return n.start()},!0),this.transition=n),this.node.autofocus&&bs.scheduleTask(function(){return a.node.focus()},!0),Ya(this),this.node}function Ka(t){var e,n,a;return e=(n=t.getAttribute("xmlns"))?n:"svg"===t.name?no.svg:(a=t.parent)?"foreignObject"===a.name?no.html:a.node.namespaceURI:t.root.el.namespaceURI}function Qa(t){var e,n,a;if(t.select&&(n=t.select.getAttribute("value"),void 0!==n))if(e=t.getAttribute("value"),t.select.node.multiple&&i(n)){for(a=n.length;a--;)if(e==n[a]){t.node.selected=!0;break}}else t.node.selected=e==n}function Ya(t){var e,n,a,r,i;e=t.root;do for(n=e._liveQueries,a=n.length;a--;)r=n[a],i=n["_"+r],i._test(t)&&(t.liveQueries||(t.liveQueries=[])).push(i);while(e=e.parent)}function $a(t){var e,n,a;if(e=t.getAttribute("value"),void 0===e||!t.select)return!1;if(n=t.select.getAttribute("value"),n==e)return!0;if(t.select.getAttribute("multiple")&&i(n))for(a=n.length;a--;)if(n[a]==e)return!0}function Ja(t){var e,n,a,r;return e=t.attributes,n=e.type,a=e.value,r=e.name,n&&"radio"===n.value&&a&&r.interpolator&&a.value===r.interpolator.value?!0:void 0}function Xa(t){var e=""+t;return e?" "+e:""}function Za(){this.fragment&&this.fragment.unbind(),this.binding&&this.binding.unbind(),this.eventHandlers&&this.eventHandlers.forEach(K),"option"===this.name&&Ta(this),this.attributes.forEach(K),this.conditionalAttributes.forEach(K)}function tr(t){var e,n,a;(a=this.transition)&&a.complete(),"option"===this.name?this.detach():t&&bs.detachWhenReady(this),this.fragment&&this.fragment.unrender(!1),(e=this.binding)&&(this.binding.unrender(),this.node._ractive.binding=null,n=this.root._twowayBindings[e.keypath.str],n.splice(n.indexOf(e),1)),this.eventHandlers&&this.eventHandlers.forEach(Q),this.decorator&&bs.registerDecorator(this.decorator),this.root.transitionsEnabled&&this.outro&&(a=new Zf(this,this.outro,!1),bs.registerTransition(a),bs.scheduleTask(function(){return a.start()})),this.liveQueries&&er(this),"form"===this.name&&Na(this)}function er(t){var e,n,a;for(a=t.liveQueries.length;a--;)e=t.liveQueries[a],n=e.selector,e._remove(t.node)}function nr(t,e){var n=sh.exec(e)[0];return null===t||n.length%s}}) cannot contain nested inline partials",e,{ractive:t});var s=a?i:ir(i,e);s.partials[e]=r=o.t}return a&&(r._fn=a),r.v?r.t:r}}function ir(t,e){return t.partials.hasOwnProperty(e)?t:or(t.constructor,e)}function or(t,e){return t?t.partials.hasOwnProperty(e)?t:or(t._Parent,e):void 0}function sr(t,e){if(e){if(e.template&&e.template.p&&e.template.p[t])return e.template.p[t];if(e.parentFragment&&e.parentFragment.owner)return sr(t,e.parentFragment.owner)}}function pr(t,e){var n,a=b("components",t,e);if(a&&(n=a.components[e],!n._Parent)){var r=n.bind(a);if(r.isOwner=a.components.hasOwnProperty(e),n=r(),!n)return void m(Fo,e,"component","component",{ractive:t});"string"==typeof n&&(n=pr(t,n)),n._fn=r,a.components[e]=n}return n}function ur(){var t=this.instance.fragment.detach();return yh.fire(this.instance),t}function cr(t){return this.instance.fragment.find(t)}function lr(t,e){return this.instance.fragment.findAll(t,e)}function dr(t,e){e._test(this,!0),this.instance.fragment&&this.instance.fragment.findAllComponents(t,e)}function fr(t){return t&&t!==this.name?this.instance.fragment?this.instance.fragment.findComponent(t):null:this.instance}function hr(){return this.parentFragment.findNextNode(this)}function mr(){return this.rendered?this.instance.fragment.firstNode():null}function gr(t,e,n){function a(t){var n,a;t.value=e,t.updating||(a=t.ractive,n=t.keypath,t.updating=!0,bs.start(a),a.viewmodel.mark(n),bs.end(),t.updating=!1)}var r,i,o,s,p,u;if(r=t.obj,i=t.prop,n&&!n.configurable){if("length"===i)return;throw Error('Cannot use magic mode with property "'+i+'" - object is not configurable')}n&&(o=n.get,s=n.set),p=o||function(){return e},u=function(t){s&&s(t),e=o?o():t,u._ractiveWrappers.forEach(a)},u._ractiveWrappers=[t],Object.defineProperty(r,i,{get:p,set:u,enumerable:!0,configurable:!0})}function vr(t,e){var n,a,r,i;if(this.adaptors)for(n=this.adaptors.length,a=0;n>a;a+=1)if(r=this.adaptors[a],r.filter(e,t,this.ractive))return i=this.wrapped[t]=r.wrap(this.ractive,e,t,yr(t)),void(i.value=e)}function br(t,e){var n,a={};if(!e)return t;e+=".";for(n in t)t.hasOwnProperty(n)&&(a[e+n]=t[n]);return a}function yr(t){var e;return Gh[t]||(e=t?t+".":"",Gh[t]=function(n,a){var r;return"string"==typeof n?(r={},r[e+n]=a,r):"object"==typeof n?e?br(n,t):n:void 0}),Gh[t]}function _r(t){var e,n,a=[$o];for(e=t.length;e--;)for(n=t[e].parent;n&&!n.isRoot;)-1===t.indexOf(n)&&R(a,n),n=n.parent;return a}function xr(t,e,n){var a;kr(t,e),n||(a=e.wildcardMatches(),a.forEach(function(n){wr(t,n,e)}))}function wr(t,e,n){var a,r,i;e=e.str||e,a=t.depsMap.patternObservers,r=a&&a[e],r&&r.forEach(function(e){i=n.join(e.lastKey),kr(t,i),wr(t,e,i)})}function kr(t,e){t.patternObservers.forEach(function(t){t.regex.test(e.str)&&t.update(e)})}function Sr(){function t(t){var a=t.key;t.viewmodel===o?(o.clearCache(a.str),t.invalidate(),n.push(a),e(a)):t.viewmodel.mark(a)}function e(n){var a,r;o.noCascade.hasOwnProperty(n.str)||((r=o.deps.computed[n.str])&&r.forEach(t),(a=o.depsMap.computed[n.str])&&a.forEach(e))}var n,a,r,i=this,o=this,s={};return n=this.changes,n.length?(n.slice().forEach(e),a=zh(n),a.forEach(function(e){var a;-1===n.indexOf(e)&&(a=o.deps.computed[e.str])&&a.forEach(t)}),this.changes=[],this.patternObservers.length&&(a.forEach(function(t){return Wh(i,t,!0)}),n.forEach(function(t){return Wh(i,t)})),this.deps.observers&&(a.forEach(function(t){return Er(i,null,t,"observers")}),Pr(this,n,"observers")),this.deps["default"]&&(r=[],a.forEach(function(t){return Er(i,r,t,"default")}),r.length&&Cr(this,r,n),Pr(this,n,"default")),n.forEach(function(t){s[t.str]=i.get(t)}),this.implicitChanges={},this.noCascade={},s):void 0}function Er(t,e,n,a){var r,i;(r=Ar(t,n,a))&&(i=t.get(n),r.forEach(function(t){e&&t.refineValue?e.push(t):t.setValue(i)}))}function Cr(t,e,n){e.forEach(function(e){for(var a=!1,r=0,i=n.length,o=[];i>r;){var s=n[r];if(s===e.keypath){a=!0;break}s.slice(0,e.keypath.length)===e.keypath&&o.push(s),r++}a&&e.setValue(t.get(e.keypath)),o.length&&e.refineValue(o)})}function Pr(t,e,n){function a(t){t.forEach(r),t.forEach(i)}function r(e){var a=Ar(t,e,n);a&&s.push({keypath:e,deps:a})}function i(e){var r;(r=t.depsMap[n][e.str])&&a(r)}function o(e){var n=t.get(e.keypath);e.deps.forEach(function(t){return t.setValue(n)})}var s=[];a(e),s.forEach(o)}function Ar(t,e,n){var a=t.deps[n];return a?a[e.str]:null}function Or(){this.captureGroups.push([])}function Tr(t,e){var n,a;if(e||(a=this.wrapped[t])&&a.teardown()!==!1&&(this.wrapped[t]=null),this.cache[t]=void 0,n=this.cacheMap[t])for(;n.length;)this.clearCache(n.pop())}function Rr(t,e){var n=e.firstKey;return!(n in t.data||n in t.computations||n in t.mappings)}function Mr(t,e){var n=new Xh(t,e);return this.ready&&n.init(this),this.computations[t.str]=n}function Lr(t,e){var n,a,r,i,o,s=this.cache,p=t.str;if(e=e||nm,e.capture&&(i=j(this.captureGroups))&&(~i.indexOf(t)||i.push(t)),Mo.call(this.mappings,t.firstKey))return this.mappings[t.firstKey].get(t,e);if(t.isSpecial)return t.value;if(void 0===s[p]?((a=this.computations[p])&&!a.bypass?(n=a.get(),this.adapt(p,n)):(r=this.wrapped[p])?n=r.value:t.isRoot?(this.adapt("",this.data),n=this.data):n=Dr(this,t),s[p]=n):n=s[p],!e.noUnwrap&&(r=this.wrapped[p])&&(n=r.get()),t.isRoot&&e.fullRootGet)for(o in this.mappings)n[o]=this.mappings[o].getValue();return n===tm?void 0:n}function Dr(t,e){var n,a,r,i;return n=t.get(e.parent),(i=t.wrapped[e.parent.str])&&(n=i.get()),null!==n&&void 0!==n?((a=t.cacheMap[e.parent.str])?-1===a.indexOf(e.str)&&a.push(e.str):t.cacheMap[e.parent.str]=[e.str],"object"!=typeof n||e.lastKey in n?(r=n[e.lastKey],t.adapt(e.str,r,!1),t.cache[e.str]=r,r):t.cache[e.str]=tm):void 0}function jr(){var t;for(t in this.computations)this.computations[t].init(this)}function Nr(t,e){var n=this.mappings[t.str]=new im(t,e);return n.initViewmodel(this),n}function Fr(t,e){var n,a=t.str;e&&(e.implicit&&(this.implicitChanges[a]=!0),e.noCascade&&(this.noCascade[a]=!0)),(n=this.computations[a])&&n.invalidate(),-1===this.changes.indexOf(t)&&this.changes.push(t);var r=e?e.keepExistingWrapper:!1;this.clearCache(a,r),this.ready&&this.onchange()}function Ir(t,e,n,a){var r,i,o,s;if(this.mark(t),a&&a.compare){o=qr(a.compare);try{r=e.map(o),i=n.map(o)}catch(p){m('merge(): "%s" comparison failed. Falling back to identity checking',t),r=e,i=n}}else r=e,i=n;s=sm(r,i),this.smartUpdate(t,n,s,e.length!==n.length)}function Br(t){return JSON.stringify(t)}function qr(t){if(t===!0)return Br;if("string"==typeof t)return um[t]||(um[t]=function(e){return e[t]}),um[t];if("function"==typeof t)return t;throw Error("The `compare` option must be a function, or a string representing an identifying field (or `true` to use JSON.stringify)")}function Ur(t,e){var n,a,r,i=void 0===arguments[2]?"default":arguments[2];e.isStatic||((n=this.mappings[t.firstKey])?n.register(t,e,i):(a=this.deps[i]||(this.deps[i]={}),r=a[t.str]||(a[t.str]=[]),r.push(e),this.depsMap[i]||(this.depsMap[i]={}),t.isRoot||Vr(this,t,i)))}function Vr(t,e,n){for(var a,r,i;!e.isRoot;)a=t.depsMap[n],r=a[e.parent.str]||(a[e.parent.str]=[]),i=e.str,void 0===r["_"+i]&&(r["_"+i]=0,r.push(e)),r["_"+i]+=1,e=e.parent}function Gr(){return this.captureGroups.pop()}function zr(t){this.data=t,this.clearCache("")}function Wr(t,e){var n,a,r,i,o=void 0===arguments[2]?{}:arguments[2];if(!o.noMapping&&(n=this.mappings[t.firstKey]))return n.set(t,e);if(a=this.computations[t.str]){if(a.setting)return;a.set(e),e=a.get()}s(this.cache[t.str],e)||(r=this.wrapped[t.str],r&&r.reset&&(i=r.reset(e)!==!1,i&&(e=r.get())),a||i||Hr(this,t,e),o.silent?this.clearCache(t.str):this.mark(t))}function Hr(t,e,n){var a,r,i,o;i=function(){a.set?a.set(e.lastKey,n):(r=a.get(),o())},o=function(){r||(r=Fh(e.lastKey),t.set(e.parent,r,{silent:!0})),r[e.lastKey]=n},a=t.wrapped[e.parent.str],a?i():(r=t.get(e.parent),(a=t.wrapped[e.parent.str])?i():o())}function Kr(t,e,n){var a,r,i,o=this;if(r=n.length,n.forEach(function(e,n){-1===e&&o.mark(t.join(n),gm)}),this.set(t,e,{silent:!0}),(a=this.deps["default"][t.str])&&a.filter(Qr).forEach(function(t){return t.shuffle(n,e)}),r!==e.length){for(this.mark(t.join("length"),mm),i=n.touchedFrom;ii;i+=1)this.mark(t.join(i),gm)}}function Qr(t){return"function"==typeof t.shuffle}function Yr(){var t,e=this;for(Object.keys(this.cache).forEach(function(t){return e.clearCache(t)});t=this.unresolvedImplicitDependencies.pop();)t.teardown()}function $r(t,e){var n,a,r,i=void 0===arguments[2]?"default":arguments[2];if(!e.isStatic){if(n=this.mappings[t.firstKey])return n.unregister(t,e,i);if(a=this.deps[i][t.str],r=a.indexOf(e),-1===r)throw Error("Attempted to remove a dependant that was no longer registered! This should not happen. If you are seeing this bug in development please raise an issue at https://github.com/RactiveJS/Ractive/issues - thanks");a.splice(r,1),t.isRoot||Jr(this,t,i)}}function Jr(t,e,n){for(var a,r;!e.isRoot;)a=t.depsMap[n],r=a[e.parent.str],r["_"+e.str]-=1,r["_"+e.str]||(N(r,e),r["_"+e.str]=void 0),e=e.parent}function Xr(t){this.hook=new is(t),this.inProcess={},this.queue={}}function Zr(t,e){return t[e._guid]||(t[e._guid]=[])}function ti(t,e){var n=Zr(t.queue,e);for(t.hook.fire(e);n.length;)ti(t,n.shift());delete t.queue[e._guid]}function ei(t,e){var n,a={};for(n in e)a[n]=ni(t,n,e[n]);return a}function ni(t,e,n){var a,r;return"function"==typeof n&&(a=ri(n,t)),"string"==typeof n&&(a=ai(t,n)),"object"==typeof n&&("string"==typeof n.get?a=ai(t,n.get):"function"==typeof n.get?a=ri(n.get,t):l("`%s` computation must have a `get()` method",e), "function"==typeof n.set&&(r=ri(n.set,t))),{getter:a,setter:r}}function ai(t,e){var n,a,r;return n="return ("+e.replace(km,function(t,e){return a=!0,'__ractive.get("'+e+'")'})+");",a&&(n="var __ractive = this; "+n),r=Function(n),a?r.bind(t):r}function ri(t,e){return/this/.test(""+t)?t.bind(e):t}function ii(e){var n,r,i=void 0===arguments[1]?{}:arguments[1],o=void 0===arguments[2]?{}:arguments[2];if(Mg.DEBUG&&Ro(),pi(e,o),Eo(e,"data",{get:ui}),Sm.fire(e,i),Am.forEach(function(t){e[t]=a(So(e.constructor[t]||null),i[t])}),r=new _m({adapt:oi(e,e.adapt,i),data:Wp.init(e.constructor,e,i),computed:wm(e,a(So(e.constructor.prototype.computed),i.computed)),mappings:o.mappings,ractive:e,onchange:function(){return bs.addRactive(e)}}),e.viewmodel=r,r.init(),uu.init(e.constructor,e,i),Em.fire(e),Cm.begin(e),e.template){var s=void 0;(o.cssIds||e.cssId)&&(s=o.cssIds?o.cssIds.slice():[],e.cssId&&s.push(e.cssId)),e.fragment=new rg({template:e.template,root:e,owner:e,cssIds:s})}if(Cm.end(e),n=t(e.el)){var p=e.render(n,e.append);Mg.DEBUG_PROMISES&&p["catch"](function(t){throw g("Promise debugging is enabled, to help solve errors that happen asynchronously. Some browsers will log unhandled promise rejections, in which case you can safely disable promise debugging:\n Ractive.DEBUG_PROMISES = false;"),m("An error happened during rendering",{ractive:e}),t.stack&&d(t.stack),t})}}function oi(t,e,n){function a(e){return"string"==typeof e&&(e=v("adaptors",t,e),e||l(Io(e,"adaptor"))),e}var r,i,o;if(e=e.map(a),r=D(n.adapt).map(a),r=si(e,r),i="magic"in n?n.magic:t.magic,o="modifyArrays"in n?n.modifyArrays:t.modifyArrays,i){if(!eo)throw Error("Getters and setters (magic mode) are not supported in this browser");o&&r.push(Uh),r.push(qh)}return o&&r.push(jh),r}function si(t,e){for(var n=t.slice(),a=e.length;a--;)~n.indexOf(e[a])||n.push(e[a]);return n}function pi(t,e){t._guid="r-"+Pm++,t._subs=So(null),t._config={},t._twowayBindings=So(null),t._animations=[],t.nodes={},t._liveQueries=[],t._liveComponentQueries=[],t._boundFunctions=[],t._observers=[],e.component?(t.parent=e.parent,t.container=e.container||null,t.root=t.parent.root,t.component=e.component,e.component.instance=t,t._inlinePartials=e.inlinePartials):(t.root=t,t.parent=t.container=null)}function ui(){throw Error("Using `ractive.data` is no longer supported - you must use the `ractive.get()` API instead")}function ci(t,e,n){this.parentFragment=t.parentFragment,this.callback=n,this.fragment=new rg({template:e,root:t.root,owner:this}),this.update()}function li(t,e,n){var a;return e.r?a=Rc(t,e.r,n):e.x?a=new jc(t,t.parentFragment,e.x,n):e.rx&&(a=new Bc(t,e.rx,n)),a}function di(t){return 1===t.length&&t[0].t===Su}function fi(t,e){var n;for(n in e)e.hasOwnProperty(n)&&hi(t.instance,t.root,n,e[n])}function hi(t,e,n,a){"string"!=typeof a&&l("Components currently only support simple events - you cannot include arguments. Sorry!"),t.on(n,function(){var t,n;return arguments.length&&arguments[0]&&arguments[0].node&&(t=Array.prototype.shift.call(arguments)),n=Array.prototype.slice.call(arguments),zs(e,a,{event:t,args:n}),!1})}function mi(t,e){var n,a;if(!e)throw Error('Component "'+this.name+'" not found');n=this.parentFragment=t.parentFragment,a=n.root,this.root=a,this.type=Ru,this.name=t.template.e,this.index=t.index,this.indexRefBindings={},this.yielders={},this.resolvers=[],Rm(this,e,t.template.a,t.template.f,t.template.p),Mm(this,t.template.v),(t.template.t0||t.template.t1||t.template.t2||t.template.o)&&m('The "intro", "outro" and "decorator" directives have no effect on components',{ractive:this.instance}),Lm(this)}function gi(t,e){function n(n){n.rebind(t,e)}var a;this.resolvers.forEach(n);for(var r in this.yielders)this.yielders[r][0]&&n(this.yielders[r][0]);(a=this.root._liveComponentQueries["_"+this.name])&&a._makeDirty()}function vi(){var t=this.instance;return t.render(this.parentFragment.getNode()),this.rendered=!0,t.fragment.detach()}function bi(){return""+this.instance.fragment}function yi(){var t=this.instance;this.resolvers.forEach(K),_i(this),t._observers.forEach(Y),t.fragment.unbind(),t.viewmodel.teardown(),t.fragment.rendered&&t.el.__ractive_instances__&&N(t.el.__ractive_instances__,t),Bm.fire(t)}function _i(t){var e,n;e=t.root;do(n=e._liveComponentQueries["_"+t.name])&&n._remove(t);while(e=e.parent)}function xi(t){this.shouldDestroy=t,this.instance.unrender()}function wi(t){var e=this;this.owner=t.owner,this.parent=this.owner.parentFragment,this.root=t.root,this.pElement=t.pElement,this.context=t.context,this.index=t.index,this.key=t.key,this.registeredIndexRefs=[],this.cssIds="cssIds"in t?t.cssIds:this.parent?this.parent.cssIds:null,this.items=t.template.map(function(n,a){return ki({parentFragment:e,pElement:t.pElement,template:n,index:a})}),this.value=this.argsList=null,this.dirtyArgs=this.dirtyValue=!0,this.bound=!0}function ki(t){if("string"==typeof t.template)return new yc(t);switch(t.template.t){case Mu:return new Hm(t);case Su:return new Wc(t);case Cu:return new ll(t);case Eu:return new Ol(t);case Pu:var e=void 0;return(e=vh(t.parentFragment.root,t.template.e))?new Vm(t,e):new ih(t);case Au:return new gh(t);case Ou:return new zm(t);case Lu:return new Qm(t);default:throw Error("Something very strange happened. Please file an issue at https://github.com/ractivejs/ractive/issues. Thanks!")}}function Si(t,e){(!this.owner||this.owner.hasContext)&&w(this,"context",t,e),this.items.forEach(function(n){n.rebind&&n.rebind(t,e)})}function Ei(){var t;return 1===this.items.length?t=this.items[0].render():(t=document.createDocumentFragment(),this.items.forEach(function(e){t.appendChild(e.render())})),this.rendered=!0,t}function Ci(t){return this.items?this.items.map(t?Ai:Pi).join(""):""}function Pi(t){return""+t}function Ai(t){return t.toString(!0)}function Oi(){this.bound&&(this.items.forEach(Ti),this.bound=!1)}function Ti(t){t.unbind&&t.unbind()}function Ri(t){if(!this.rendered)throw Error("Attempted to unrender a fragment that was not rendered");this.items.forEach(function(e){return e.unrender(t)}),this.rendered=!1}function Mi(t){var e,n,a,r,i;if(t=t||{},"object"!=typeof t)throw Error("The reset method takes either no arguments, or an object containing new data");for((n=this.viewmodel.wrapped[""])&&n.reset?n.reset(t)===!1&&this.viewmodel.reset(t):this.viewmodel.reset(t),a=uu.reset(this),r=a.length;r--;)if(og.indexOf(a[r])>-1){i=!0;break}if(i){var o=void 0;this.viewmodel.mark($o),(o=this.component)&&(o.shouldDestroy=!0),this.unrender(),o&&(o.shouldDestroy=!1),this.fragment.template!==this.template&&(this.fragment.unbind(),this.fragment=new rg({template:this.template,root:this,owner:this})),e=this.render(this.el,this.anchor)}else e=bs.start(this,!0),this.viewmodel.mark($o),bs.end();return sg.fire(this,t),e}function Li(t){var e,n;Jp.init(null,this,{template:t}),e=this.transitionsEnabled,this.transitionsEnabled=!1,(n=this.component)&&(n.shouldDestroy=!0),this.unrender(),n&&(n.shouldDestroy=!1),this.fragment.unbind(),this.fragment=new rg({template:this.template,root:this,owner:this}),this.render(this.el,this.anchor),this.transitionsEnabled=e}function Di(t,e){var n,a;if(a=bs.start(this,!0),u(t)){n=t;for(t in n)n.hasOwnProperty(t)&&(e=n[t],ji(this,t,e))}else ji(this,t,e);return bs.end(),a}function ji(t,e,n){e=S(P(e)),e.isPattern?E(t,e).forEach(function(e){t.viewmodel.set(e,n)}):t.viewmodel.set(e,n)}function Ni(t,e){return Jo(this,t,void 0===e?-1:-e)}function Fi(){var t;return this.fragment.unbind(),this.viewmodel.teardown(),this._observers.forEach(Y),this.fragment.rendered&&this.el.__ractive_instances__&&N(this.el.__ractive_instances__,this),this.shouldDestroy=!0,t=this.fragment.rendered?this.unrender():us.resolve(),vg.fire(this),this._boundFunctions.forEach(Ii),t}function Ii(t){delete t.fn[t.prop]}function Bi(t){var e=this;if("string"!=typeof t)throw new TypeError(No);var n=void 0;return/\*/.test(t)?(n={},E(this,S(P(t))).forEach(function(t){n[t.str]=!e.viewmodel.get(t)}),this.set(n)):this.set(t,!this.get(t))}function qi(){return this.fragment.toString(!0)}function Ui(){var t,e;if(!this.fragment.rendered)return m("ractive.unrender() was called on a Ractive instance that was not rendered"),us.resolve();for(t=bs.start(this,!0),e=!this.component||this.component.shouldDestroy||this.shouldDestroy;this._animations[0];)this._animations[0].stop();return this.fragment.unrender(e),N(this.el.__ractive_instances__,this),xg.fire(this),bs.end(),t}function Vi(t){var e;return t=S(t)||$o,e=bs.start(this,!0),this.viewmodel.mark(t),bs.end(),Sg.fire(this,t),e}function Gi(t,e){var n,a,r;if("string"!=typeof t||e){r=[];for(a in this._twowayBindings)(!t||S(a).equalsOrStartsWith(t))&&r.push.apply(r,this._twowayBindings[a])}else r=this._twowayBindings[t];return n=zi(this,r),this.set(n)}function zi(t,e){var n={},a=[];return e.forEach(function(t){var e,r;if(!t.radioName||t.element.node.checked){if(t.checkboxName)return void(a[t.keypath.str]||t.changed()||(a.push(t.keypath),a[t.keypath.str]=t));e=t.attribute.value,r=t.getValue(),L(e,r)||s(e,r)||(n[t.keypath.str]=r)}}),a.length&&a.forEach(function(t){var e,r,i;e=a[t.str],r=e.attribute.value,i=e.getValue(),L(r,i)||(n[t.str]=i)}),n}function Wi(t,e){return"function"==typeof e&&/_super/.test(t)}function Hi(t){for(var e={};t;)Ki(t,e),Yi(t,e),t=t._Parent!==Mg?t._Parent:!1;return e}function Ki(t,e){ru.forEach(function(n){Qi(n.useDefaults?t.prototype:t,e,n.name)})}function Qi(t,e,n){var a,r=Object.keys(t[n]);r.length&&((a=e[n])||(a=e[n]={}),r.filter(function(t){return!(t in a)}).forEach(function(e){return a[e]=t[n][e]}))}function Yi(t,e){Object.keys(t.prototype).forEach(function(n){if("computed"!==n){var a=t.prototype[n];if(n in e){if("function"==typeof e[n]&&"function"==typeof a&&e[n]._method){var r=void 0,i=a._method;i&&(a=a._method),r=Pg(e[n]._method,a),i&&(r._method=r),e[n]=r}}else e[n]=a._method?a._method:a}})}function $i(){for(var t=arguments.length,e=Array(t),n=0;t>n;n++)e[n]=arguments[n];return e.length?e.reduce(Ji,this):Ji(this)}function Ji(t){var e,n,r=void 0===arguments[1]?{}:arguments[1];return r.prototype instanceof Mg&&(r=Ag(r)),e=function(t){return this instanceof e?void Om(this,t):new e(t)},n=So(t.prototype),n.constructor=e,Co(e,{defaults:{value:n},extend:{value:$i,writable:!0,configurable:!0},_Parent:{value:t}}),uu.extend(t,n,r),Wp.extend(t,n,r),r.computed&&(n.computed=a(So(t.prototype.computed),r.computed)),e.prototype=n,e}var Xi,Zi,to,eo,no,ao,ro,io=3,oo={el:void 0,append:!1,template:{v:io,t:[]},preserveWhitespace:!1,sanitize:!1,stripComments:!0,delimiters:["{{","}}"],tripleDelimiters:["{{{","}}}"],interpolate:!1,data:{},computed:{},magic:!1,modifyArrays:!0,adapt:[],isolated:!1,twoway:!0,lazy:!1,noIntro:!1,transitionsEnabled:!0,complete:void 0,css:null,noCssTransform:!1},so=oo,po={linear:function(t){return t},easeIn:function(t){return Math.pow(t,3)},easeOut:function(t){return Math.pow(t-1,3)+1},easeInOut:function(t){return(t/=.5)<1?.5*Math.pow(t,3):.5*(Math.pow(t-2,3)+2)}};Xi="object"==typeof document,Zi="undefined"!=typeof navigator&&/jsDom/.test(navigator.appName),to="undefined"!=typeof console&&"function"==typeof console.warn&&"function"==typeof console.warn.apply;try{Object.defineProperty({},"test",{value:0}),eo=!0}catch(uo){eo=!1}no={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},ao="undefined"==typeof document?!1:document&&document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),ro=["o","ms","moz","webkit"];var co,lo,fo,ho,mo,go,vo,bo,yo;if(co=ao?function(t,e){return e&&e!==no.html?document.createElementNS(e,t):document.createElement(t)}:function(t,e){if(e&&e!==no.html)throw"This browser does not support namespaces other than http://www.w3.org/1999/xhtml. The most likely cause of this error is that you're trying to render SVG in an older browser. See http://docs.ractivejs.org/latest/svg-and-older-browsers for more information";return document.createElement(t)},Xi){for(fo=co("div"),ho=["matches","matchesSelector"],yo=function(t){return function(e,n){return e[t](n)}},vo=ho.length;vo--&&!lo;)if(mo=ho[vo],fo[mo])lo=yo(mo);else for(bo=ro.length;bo--;)if(go=ro[vo]+mo.substr(0,1).toUpperCase()+mo.substring(1),fo[go]){lo=yo(go);break}lo||(lo=function(t,e){var n,a,r;for(a=t.parentNode,a||(fo.innerHTML="",a=fo,t=t.cloneNode(),fo.appendChild(t)),n=a.querySelectorAll(e),r=n.length;r--;)if(n[r]===t)return!0;return!1})}else lo=null;var _o,xo,wo,ko=function(){};"undefined"==typeof window?wo=null:(_o=window,xo=_o.document,wo={},xo||(wo=null),Date.now||(Date.now=function(){return+new Date}),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")}),Object.keys||(Object.keys=function(){var t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),n=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],a=n.length;return function(r){if("object"!=typeof r&&"function"!=typeof r||null===r)throw new TypeError("Object.keys called on non-object");var i=[];for(var o in r)t.call(r,o)&&i.push(o);if(e)for(var s=0;a>s;s++)t.call(r,n[s])&&i.push(n[s]);return i}}()),Array.prototype.indexOf||(Array.prototype.indexOf=function(t,e){var n;for(void 0===e&&(e=0),0>e&&(e+=this.length),0>e&&(e=0),n=this.length;n>e;e++)if(this.hasOwnProperty(e)&&this[e]===t)return e;return-1}),Array.prototype.forEach||(Array.prototype.forEach=function(t,e){var n,a;for(n=0,a=this.length;a>n;n+=1)this.hasOwnProperty(n)&&t.call(e,this[n],n,this)}),Array.prototype.map||(Array.prototype.map=function(t,e){var n,a,r,i=this,o=[];for(i instanceof String&&(i=""+i,r=!0),n=0,a=i.length;a>n;n+=1)(i.hasOwnProperty(n)||r)&&(o[n]=t.call(e,i[n],n,i));return o}),"function"!=typeof Array.prototype.reduce&&(Array.prototype.reduce=function(t,e){var n,a,r,i;if("function"!=typeof t)throw new TypeError(t+" is not a function");for(r=this.length,i=!1,arguments.length>1&&(a=e,i=!0),n=0;r>n;n+=1)this.hasOwnProperty(n)?i&&(a=t(a,this[n],n,this)):(a=this[n],i=!0);if(!i)throw new TypeError("Reduce of empty array with no initial value");return a}),Array.prototype.filter||(Array.prototype.filter=function(t,e){var n,a,r=[];for(n=0,a=this.length;a>n;n+=1)this.hasOwnProperty(n)&&t.call(e,this[n],n,this)&&(r[r.length]=this[n]);return r}),Array.prototype.every||(Array.prototype.every=function(t,e){var n,a,r;if(null==this)throw new TypeError;if(n=Object(this),a=n.length>>>0,"function"!=typeof t)throw new TypeError;for(r=0;a>r;r+=1)if(r in n&&!t.call(e,n[r],r,n))return!1;return!0}),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(t){var e,n,a,r,i=[].slice;if("function"!=typeof this)throw new TypeError("Function.prototype.bind called on non-function");return e=i.call(arguments,1),n=this,a=function(){},r=function(){var r=this instanceof a&&t?this:t;return n.apply(r,e.concat(i.call(arguments)))},a.prototype=this.prototype,r.prototype=new a,r}),_o.addEventListener||!function(t,e){var n,a,r,i,o,s;t.appearsToBeIELessEqual8=!0,n=function(t,e){var n,a=this;for(n in t)a[n]=t[n];a.currentTarget=e,a.target=t.srcElement||e,a.timeStamp=+new Date,a.preventDefault=function(){t.returnValue=!1},a.stopPropagation=function(){t.cancelBubble=!0}},a=function(t,e){var a,r,i=this;a=i.listeners||(i.listeners=[]),r=a.length,a[r]=[e,function(t){e.call(i,new n(t,i))}],i.attachEvent("on"+t,a[r][1])},r=function(t,e){var n,a,r=this;if(r.listeners)for(n=r.listeners,a=n.length;a--;)n[a][0]===e&&r.detachEvent("on"+t,n[a][1])},t.addEventListener=e.addEventListener=a,t.removeEventListener=e.removeEventListener=r,"Element"in t?(t.Element.prototype.addEventListener=a,t.Element.prototype.removeEventListener=r):(s=e.createElement,e.createElement=function(t){var e=s(t);return e.addEventListener=a,e.removeEventListener=r,e},i=e.getElementsByTagName("head")[0],o=e.createElement("style"),i.insertBefore(o,i.firstChild))}(_o,xo),_o.getComputedStyle||(wo.getComputedStyle=function(){function t(n,a,r,i){var o,s=a[r],p=parseFloat(s),u=s.split(/\d/)[0];return isNaN(p)&&/^thin|medium|thick$/.test(s)&&(p=e(s),u=""),i=null!=i?i:/%|em/.test(u)&&n.parentElement?t(n.parentElement,n.parentElement.currentStyle,"fontSize",null):16,o="fontSize"==r?i:/width/i.test(r)?n.clientWidth:n.clientHeight,"em"==u?p*i:"in"==u?96*p:"pt"==u?96*p/72:"%"==u?p/100*o:p}function e(t){var e,n;return i[t]||(e=document.createElement("div"),e.style.display="block",e.style.position="fixed",e.style.width=e.style.height="0",e.style.borderRight=t+" solid black",document.getElementsByTagName("body")[0].appendChild(e),n=e.getBoundingClientRect(),i[t]=n.right-n.left),i[t]}function n(t,e){var n="border"==e?"Width":"",a=e+"Top"+n,r=e+"Right"+n,i=e+"Bottom"+n,o=e+"Left"+n;t[e]=(t[a]==t[r]==t[i]==t[o]?[t[a]]:t[a]==t[i]&&t[o]==t[r]?[t[a],t[r]]:t[o]==t[r]?[t[a],t[r],t[i]]:[t[a],t[r],t[i],t[o]]).join(" ")}function a(e){var a,r,i,s;a=e.currentStyle,r=this,i=t(e,a,"fontSize",null);for(s in a)"normal"===a[s]&&o.hasOwnProperty(s)?r[s]=o[s]:/width|height|margin.|padding.|border.+W/.test(s)?"auto"===a[s]?/^width|height/.test(s)?r[s]=("width"===s?e.clientWidth:e.clientHeight)+"px":/(?:padding)?Top|Bottom$/.test(s)&&(r[s]="0px"):r[s]=t(e,a,s,i)+"px":"styleFloat"===s?r["float"]=a[s]:r[s]=a[s];return n(r,"margin"),n(r,"padding"),n(r,"border"),r.fontSize=i+"px",r}function r(t){return new a(t)}var i={},o={fontWeight:400,lineHeight:1.2,letterSpacing:0};return a.prototype={constructor:a,getPropertyPriority:ko,getPropertyValue:function(t){return this[t]||""},item:ko,removeProperty:ko,setProperty:ko,getPropertyCSSValue:ko},r}()));var So,Eo,Co,Po=wo;try{Object.defineProperty({},"test",{value:0}),Xi&&Object.defineProperty(document.createElement("div"),"test",{value:0}),Eo=Object.defineProperty}catch(Ao){Eo=function(t,e,n){t[e]=n.value}}try{try{Object.defineProperties({},{test:{value:0}})}catch(Ao){throw Ao}Xi&&Object.defineProperties(co("div"),{test:{value:0}}),Co=Object.defineProperties}catch(Ao){Co=function(t,e){var n;for(n in e)e.hasOwnProperty(n)&&Eo(t,n,e[n])}}try{Object.create(null),So=Object.create}catch(Ao){So=function(){var t=function(){};return function(e,n){var a;return null===e?{}:(t.prototype=e,a=new t,n&&Object.defineProperties(a,n),a)}}()}var Oo,To,Ro,Mo=Object.prototype.hasOwnProperty,Lo=Object.prototype.toString,Do=/^\[object (?:Array|FileList)\]$/,jo={};to?!function(){var t=["%cRactive.js %c0.7.3 %cin debug mode, %cmore...","color: rgb(114, 157, 52); font-weight: normal;","color: rgb(85, 85, 85); font-weight: normal;","color: rgb(85, 85, 85); font-weight: normal;","color: rgb(82, 140, 224); font-weight: normal; text-decoration: underline;"],e="You're running Ractive 0.7.3 in debug mode - messages will be printed to the console to help you fix problems and optimise your application.\n\nTo disable debug mode, add this line at the start of your app:\n Ractive.DEBUG = false;\n\nTo disable debug mode when your app is minified, add this snippet:\n Ractive.DEBUG = /unminified/.test(function(){/*unminified*/});\n\nGet help and support:\n http://docs.ractivejs.org\n http://stackoverflow.com/questions/tagged/ractivejs\n http://groups.google.com/forum/#!forum/ractive-js\n http://twitter.com/ractivejs\n\nFound a bug? Raise an issue:\n https://github.com/ractivejs/ractive/issues\n\n";Ro=function(){var n=!!console.groupCollapsed;console[n?"groupCollapsed":"log"].apply(console,t),console.log(e),n&&console.groupEnd(t),Ro=ko},To=function(t,e){if(Ro(),"object"==typeof e[e.length-1]){var n=e.pop(),a=n?n.ractive:null;if(a){var r=void 0;a.component&&(r=a.component.name)&&(t="<"+r+"> "+t);var i=void 0;(i=n.node||a.fragment&&a.fragment.rendered&&a.find("*"))&&e.push(i)}}console.warn.apply(console,["%cRactive.js: %c"+t,"color: rgb(114, 157, 52);","color: rgb(85, 85, 85);"].concat(e))},Oo=function(){console.log.apply(console,arguments)}}():To=Oo=Ro=ko;var No="Bad arguments",Fo='A function was specified for "%s" %s, but no %s was returned',Io=function(t,e){return'Missing "'+t+'" '+e+" plugin. You may need to download a plugin via http://docs.ractivejs.org/latest/plugins#"+e+"s"},Bo=function(t,e,n,a){if(t===e)return y(e);if(a){var r=v("interpolators",n,a);if(r)return r(t,e)||y(e);l(Io(a,"interpolator"))}return Vo.number(t,e)||Vo.array(t,e)||Vo.object(t,e)||y(e)},qo=Bo,Uo={number:function(t,e){var n;return p(t)&&p(e)?(t=+t,e=+e,n=e-t,n?function(e){return t+e*n}:function(){return t}):null},array:function(t,e){var n,a,r,o;if(!i(t)||!i(e))return null;for(n=[],a=[],o=r=Math.min(t.length,e.length);o--;)a[o]=qo(t[o],e[o]);for(o=r;o=this.duration?(null!==i&&(bs.start(this.root),this.root.viewmodel.set(i,this.to),bs.end()),this.step&&this.step(1,this.to),this.complete(this.to),r=this.root._animations.indexOf(this),-1===r&&m("Animation was not found"),this.root._animations.splice(r,1),this.running=!1,!1):(e=this.easing?this.easing(t/this.duration):t/this.duration,null!==i&&(n=this.interpolator(e),bs.start(this.root),this.root.viewmodel.set(i,n),bs.end()),this.step&&this.step(e,n),!0)):!1},stop:function(){var t;this.running=!1,t=this.root._animations.indexOf(this),-1===t&&m("Animation was not found"),this.root._animations.splice(t,1)}};var ks=ws,Ss=nt,Es={stop:ko},Cs=rt,Ps=new is("detach"),As=it,Os=ot,Ts=function(){var t,e,n;t=this._root[this._isComponentQuery?"liveComponentQueries":"liveQueries"],e=this.selector,n=t.indexOf(e),-1!==n&&(t.splice(n,1),t[e]=null)},Rs=function(t,e){var n,a,r,i,o,s,p,u,c,l;for(n=pt(t.component||t._ractive.proxy),a=pt(e.component||e._ractive.proxy),r=j(n),i=j(a);r&&r===i;)n.pop(),a.pop(),o=r,r=j(n),i=j(a);if(r=r.component||r,i=i.component||i,c=r.parentFragment,l=i.parentFragment,c===l)return s=c.items.indexOf(r),p=l.items.indexOf(i),s-p||n.length-a.length;if(u=o.fragments)return s=u.indexOf(c),p=u.indexOf(l),s-p||n.length-a.length;throw Error("An unexpected condition was met while comparing the position of two components. Please file an issue at https://github.com/RactiveJS/Ractive/issues - thanks!")},Ms=function(t,e){var n;return t.compareDocumentPosition?(n=t.compareDocumentPosition(e),2&n?1:-1):Rs(t,e)},Ls=function(){this.sort(this._isComponentQuery?Rs:Ms),this._dirty=!1},Ds=function(){var t=this;this._dirty||(this._dirty=!0,bs.scheduleTask(function(){t._sort()}))},js=function(t){var e=this.indexOf(this._isComponentQuery?t.instance:t);-1!==e&&this.splice(e,1)},Ns=ut,Fs=ct,Is=lt,Bs=dt,qs=ft,Us=ht,Vs={enqueue:function(t,e){t.event&&(t._eventQueue=t._eventQueue||[],t._eventQueue.push(t.event)),t.event=e},dequeue:function(t){t._eventQueue&&t._eventQueue.length?t.event=t._eventQueue.pop():delete t.event}},Gs=Vs,zs=mt,Ws=bt,Hs=yt,Ks={capture:!0,noUnwrap:!0,fullRootGet:!0},Qs=_t,Ys=new is("insert"),$s=wt,Js=function(t,e,n,a){this.root=t,this.keypath=e,this.callback=n,this.defer=a.defer,this.context=a&&a.context?a.context:t};Js.prototype={init:function(t){this.value=this.root.get(this.keypath.str),t!==!1?this.update():this.oldValue=this.value},setValue:function(t){var e=this;s(t,this.value)||(this.value=t,this.defer&&this.ready?bs.scheduleTask(function(){return e.update()}):this.update())},update:function(){this.updating||(this.updating=!0,this.callback.call(this.context,this.value,this.oldValue,this.keypath.str),this.oldValue=this.value,this.updating=!1)}};var Xs,Zs=Js,tp=kt,ep=Array.prototype.slice;Xs=function(t,e,n,a){this.root=t,this.callback=n,this.defer=a.defer,this.keypath=e,this.regex=RegExp("^"+e.str.replace(/\./g,"\\.").replace(/\*/g,"([^\\.]+)")+"$"),this.values={},this.defer&&(this.proxies=[]),this.context=a&&a.context?a.context:t},Xs.prototype={init:function(t){var e,n;if(e=tp(this.root,this.keypath),t!==!1)for(n in e)e.hasOwnProperty(n)&&this.update(S(n));else this.values=e},update:function(t){var e,n=this;if(t.isPattern){e=tp(this.root,t);for(t in e)e.hasOwnProperty(t)&&this.update(S(t))}else if(!this.root.viewmodel.implicitChanges[t.str])return this.defer&&this.ready?void bs.scheduleTask(function(){return n.getProxy(t).update()}):void this.reallyUpdate(t)},reallyUpdate:function(t){var e,n,a,r;return e=t.str,n=this.root.viewmodel.get(t),this.updating?void(this.values[e]=n):(this.updating=!0,s(n,this.values[e])&&this.ready||(a=ep.call(this.regex.exec(e),1),r=[n,this.values[e],e].concat(a),this.values[e]=n,this.callback.apply(this.context,r)),void(this.updating=!1))},getProxy:function(t){var e=this;return this.proxies[t.str]||(this.proxies[t.str]={update:function(){return e.reallyUpdate(t)}}),this.proxies[t.str]}};var np,ap,rp,ip,op,sp,pp=Xs,up=St,cp={},lp=Et,dp=Ct,fp=function(t){return t.trim()},hp=function(t){return""!==t},mp=Pt,gp=At,vp=Ot,bp=Tt,yp=Array.prototype,_p=function(t){return function(e){for(var n=arguments.length,a=Array(n>1?n-1:0),r=1;n>r;r++)a[r-1]=arguments[r];var o,s,p,u,c=[];if(e=S(P(e)),o=this.viewmodel.get(e),s=o.length,!i(o))throw Error("Called ractive."+t+"('"+e.str+"'), but '"+e.str+"' does not refer to an array");return c=bp(o,t,a),u=yp[t].apply(o,a),p=bs.start(this,!0).then(function(){return u}),c?this.viewmodel.smartUpdate(e,o,c):this.viewmodel.mark(e),bs.end(),p}},xp=_p("pop"),wp=_p("push"),kp="/* Ractive.js component styles */\n",Sp=[],Ep=!1;Xi?(rp=document.createElement("style"),rp.type="text/css",ip=document.getElementsByTagName("head")[0],sp=!1,op=rp.styleSheet,ap=function(){var t=kp+Sp.map(function(t){return"\n/* {"+t.id+"} */\n"+t.styles}).join("\n");op?op.cssText=t:rp.innerHTML=t,sp||(ip.appendChild(rp),sp=!0)},np={add:function(t){Sp.push(t),Ep=!0},apply:function(){Ep&&(ap(),Ep=!1)}}):np={add:ko,apply:ko};var Cp,Pp,Ap,Op=np,Tp=Mt,Rp=new is("render"),Mp=new is("complete"),Lp={extend:function(t,e,n){e.adapt=Dt(e.adapt,D(n.adapt))},init:function(){}},Dp=Lp,jp=jt,Np=/(?:^|\})?\s*([^\{\}]+)\s*\{/g,Fp=/\/\*.*?\*\//g,Ip=/((?:(?:\[[^\]+]\])|(?:[^\s\+\>\~:]))+)((?::[^\s\+\>\~\(]+(?:\([^\)]+\))?)?\s*[\s\+\>\~]?)\s*/g,Bp=/^@media/,qp=/\[data-ractive-css~="\{[a-z0-9-]+\}"]/g,Up=1,Vp={ name:"css",extend:function(t,e,n){if(n.css){var a=Up++,r=n.noCssTransform?n.css:jp(n.css,a);e.cssId=a,Op.add({id:a,styles:r})}},init:function(){}},Gp=Vp,zp={name:"data",extend:function(t,e,n){var a=void 0,r=void 0;if(n.data&&u(n.data))for(a in n.data)r=n.data[a],r&&"object"==typeof r&&(u(r)||i(r))&&m("Passing a `data` option with object and array properties to Ractive.extend() is discouraged, as mutating them is likely to cause bugs. Consider using a data function instead:\n\n // this...\n data: function () {\n return {\n myObject: {}\n };\n })\n\n // instead of this:\n data: {\n myObject: {}\n }");e.data=Bt(e.data,n.data)},init:function(t,e,n){var a=Bt(t.prototype.data,n.data);return"function"==typeof a&&(a=a.call(e)),a||{}},reset:function(t){var e=this.init(t.constructor,t,t.viewmodel);return t.viewmodel.reset(e),!0}},Wp=zp,Hp=null,Kp=["preserveWhitespace","sanitize","stripComments","delimiters","tripleDelimiters","interpolate"],Qp={fromId:zt,isHashedId:Wt,isParsed:Ht,getParseOptions:Kt,createHelper:Vt,parse:Gt},Yp=Qp,$p={name:"template",extend:function(t,e,n){var a;"template"in n&&(a=n.template,"function"==typeof a?e.template=a:e.template=Jt(a,e))},init:function(t,e,n){var a,r;a="template"in n?n.template:t.prototype.template,"function"==typeof a&&(r=a,a=Yt(e,r),e._config.template={fn:r,result:a}),a=Jt(a,e),e.template=a.t,a.p&&Xt(e.partials,a.p)},reset:function(t){var e,n=Qt(t);return n?(e=Jt(n,t),t.template=e.t,Xt(t.partials,e.p,!0),!0):void 0}},Jp=$p;Cp=["adaptors","components","computed","decorators","easing","events","interpolators","partials","transitions"],Pp=function(t,e){this.name=t,this.useDefaults=e},Pp.prototype={constructor:Pp,extend:function(t,e,n){this.configure(this.useDefaults?t.defaults:t,this.useDefaults?e:e.constructor,n)},init:function(){},configure:function(t,e,n){var a,r=this.name,i=n[r];a=So(t[r]);for(var o in i)a[o]=i[o];e[r]=a},reset:function(t){var e=t[this.name],n=!1;return Object.keys(e).forEach(function(t){var a=e[t];a._fn&&(a._fn.isOwner?e[t]=a._fn:delete e[t],n=!0)}),n}},Ap=Cp.map(function(t){return new Pp(t,"computed"===t)});var Xp,Zp,tu,eu,nu,au,ru=Ap,iu=Zt,ou=ae;eu={adapt:Dp,css:Gp,data:Wp,template:Jp},tu=Object.keys(so),au=oe(tu.filter(function(t){return!eu[t]})),nu=oe(tu.concat(ru.map(function(t){return t.name}))),Zp=[].concat(tu.filter(function(t){return!ru[t]&&!eu[t]}),ru,eu.data,eu.template,eu.css),Xp={extend:function(t,e,n){return re("extend",t,e,n)},init:function(t,e,n){return re("init",t,e,n)},reset:function(t){return Zp.filter(function(e){return e.reset&&e.reset(t)}).map(function(t){return t.name})},order:Zp};var su,pu,uu=Xp,cu=se,lu=pe,du=ue,fu=ce,hu=le,mu=de,gu=fe,vu=he,bu=/^\s+/;pu=function(t){this.name="ParseError",this.message=t;try{throw Error(t)}catch(e){this.stack=e.stack}},pu.prototype=Error.prototype,su=function(t,e){var n,a,r=0;for(this.str=t,this.options=e||{},this.pos=0,this.lines=this.str.split("\n"),this.lineEnds=this.lines.map(function(t){var e=r+t.length+1;return r=e,e},0),this.init&&this.init(t,e),n=[];this.posn;n+=1)if(this.pos=e,r=t[n](this))return r;return null},getLinePos:function(t){for(var e,n=0,a=0;t>=this.lineEnds[n];)a=this.lineEnds[n],n+=1;return e=t-a,[n+1,e+1,t]},error:function(t){var e=this.getLinePos(this.pos),n=e[0],a=e[1],r=this.lines[e[0]-1],i=0,o=r.replace(/\t/g,function(t,n){return n/g,lc=/&/g;var vc=function(){return e(this.node)},bc=function(t){this.type=ku,this.text=t.template};bc.prototype={detach:vc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createTextNode(this.text)),this.node},toString:function(t){return t?Se(this.text):this.text},unrender:function(t){return t?this.detach():void 0}};var yc=bc,_c=Ee,xc=Ce,wc=function(t,e,n){var a;this.ref=e,this.resolved=!1,this.root=t.root,this.parentFragment=t.parentFragment,this.callback=n,a=ls(t.root,e,t.parentFragment),void 0!=a?this.resolve(a):bs.addUnresolved(this)};wc.prototype={resolve:function(t){this.keypath&&!t&&bs.addUnresolved(this),this.resolved=!0,this.keypath=t,this.callback(t)},forceResolution:function(){this.resolve(S(this.ref))},rebind:function(t,e){var n;void 0!=this.keypath&&(n=this.keypath.replace(t,e),void 0!==n&&this.resolve(n))},unbind:function(){this.resolved||bs.removeUnresolved(this)}};var kc=wc,Sc=function(t,e,n){this.parentFragment=t.parentFragment,this.ref=e,this.callback=n,this.rebind()},Ec={"@keypath":{prefix:"c",prop:["context"]},"@index":{prefix:"i",prop:["index"]},"@key":{prefix:"k",prop:["key","index"]}};Sc.prototype={rebind:function(){var t,e=this.ref,n=this.parentFragment,a=Ec[e];if(!a)throw Error('Unknown special reference "'+e+'" - valid references are @index, @key and @keypath');if(this.cached)return this.callback(S("@"+a.prefix+Pe(this.cached,a)));if(-1!==a.prop.indexOf("index")||-1!==a.prop.indexOf("key"))for(;n;){if(n.owner.currentSubtype===Bu&&void 0!==(t=Pe(n,a)))return this.cached=n,n.registerIndexRef(this),this.callback(S("@"+a.prefix+t));n=!n.parent&&n.owner&&n.owner.component&&n.owner.component.parentFragment&&!n.owner.component.instance.isolated?n.owner.component.parentFragment:n.parent}else for(;n;){if(void 0!==(t=Pe(n,a)))return this.callback(S("@"+a.prefix+t.str));n=n.parent}},unbind:function(){this.cached&&this.cached.unregisterIndexRef(this)}};var Cc=Sc,Pc=function(t,e,n){this.parentFragment=t.parentFragment,this.ref=e,this.callback=n,e.ref.fragment.registerIndexRef(this),this.rebind()};Pc.prototype={rebind:function(){var t,e=this.ref.ref;t="k"===e.ref.t?"k"+e.fragment.key:"i"+e.fragment.index,void 0!==t&&this.callback(S("@"+t))},unbind:function(){this.ref.ref.fragment.unregisterIndexRef(this)}};var Ac=Pc,Oc=Ae;Ae.resolve=function(t){var e,n,a={};for(e in t.refs)n=t.refs[e],a[n.ref.n]="k"===n.ref.t?n.fragment.key:n.fragment.index;return a};var Tc,Rc=Oe,Mc=Te,Lc={},Dc=Function.prototype.bind;Tc=function(t,e,n,a){var r,i=this;r=t.root,this.root=r,this.parentFragment=e,this.callback=a,this.owner=t,this.str=n.s,this.keypaths=[],this.pending=n.r.length,this.refResolvers=n.r.map(function(t,e){return Rc(i,t,function(t){i.resolve(e,t)})}),this.ready=!0,this.bubble()},Tc.prototype={bubble:function(){this.ready&&(this.uniqueString=Me(this.str,this.keypaths),this.keypath=Le(this.uniqueString),this.createEvaluator(),this.callback(this.keypath))},unbind:function(){for(var t;t=this.refResolvers.pop();)t.unbind()},resolve:function(t,e){this.keypaths[t]=e,this.bubble()},createEvaluator:function(){var t,e,n,a,r,i=this;a=this.keypath,t=this.root.viewmodel.computations[a.str],t?this.root.viewmodel.mark(a):(r=Mc(this.str,this.refResolvers.length),e=this.keypaths.map(function(t){var e;return"undefined"===t?function(){}:t.isSpecial?(e=t.value,function(){return e}):function(){var e=i.root.viewmodel.get(t,{noUnwrap:!0,fullRootGet:!0});return"function"==typeof e&&(e=je(e,i.root)),e}}),n={deps:this.keypaths.filter(De),getter:function(){var t=e.map(Re);return r.apply(null,t)}},t=this.root.viewmodel.compute(a,n))},rebind:function(t,e){this.refResolvers.forEach(function(n){return n.rebind(t,e)})}};var jc=Tc,Nc=function(t,e,n){var a=this;this.resolver=e,this.root=e.root,this.parentFragment=n,this.viewmodel=e.root.viewmodel,"string"==typeof t?this.value=t:t.t===Nu?this.refResolver=Rc(this,t.n,function(t){a.resolve(t)}):new jc(e,n,t,function(t){a.resolve(t)})};Nc.prototype={resolve:function(t){this.keypath&&this.viewmodel.unregister(this.keypath,this),this.keypath=t,this.value=this.viewmodel.get(t),this.bind(),this.resolver.bubble()},bind:function(){this.viewmodel.register(this.keypath,this)},rebind:function(t,e){this.refResolver&&this.refResolver.rebind(t,e)},setValue:function(t){this.value=t,this.resolver.bubble()},unbind:function(){this.keypath&&this.viewmodel.unregister(this.keypath,this),this.refResolver&&this.refResolver.unbind()},forceResolution:function(){this.refResolver&&this.refResolver.forceResolution()}};var Fc=Nc,Ic=function(t,e,n){var a,r,i,o,s=this;this.parentFragment=o=t.parentFragment,this.root=a=t.root,this.mustache=t,this.ref=r=e.r,this.callback=n,this.unresolved=[],(i=ls(a,r,o))?this.base=i:this.baseResolver=new kc(this,r,function(t){s.base=t,s.baseResolver=null,s.bubble()}),this.members=e.m.map(function(t){return new Fc(t,s,o)}),this.ready=!0,this.bubble()};Ic.prototype={getKeypath:function(){var t=this.members.map(Ne);return!t.every(Fe)||this.baseResolver?null:this.base.join(t.join("."))},bubble:function(){this.ready&&!this.baseResolver&&this.callback(this.getKeypath())},unbind:function(){this.members.forEach(K)},rebind:function(t,e){var n;if(this.base){var a=this.base.replace(t,e);a&&a!==this.base&&(this.base=a,n=!0)}this.members.forEach(function(a){a.rebind(t,e)&&(n=!0)}),n&&this.bubble()},forceResolution:function(){this.baseResolver&&(this.base=S(this.ref),this.baseResolver.unbind(),this.baseResolver=null),this.members.forEach(Ie),this.bubble()}};var Bc=Ic,qc=Be,Uc=qe,Vc=Ue,Gc={getValue:xc,init:qc,resolve:Uc,rebind:Vc},zc=function(t){this.type=Su,Gc.init(this,t)};zc.prototype={update:function(){this.node.data=void 0==this.value?"":this.value},resolve:Gc.resolve,rebind:Gc.rebind,detach:vc,unbind:_c,render:function(){return this.node||(this.node=document.createTextNode(n(this.value))),this.node},unrender:function(t){t&&e(this.node)},getValue:Gc.getValue,setValue:function(t){var e;this.keypath&&(e=this.root.viewmodel.wrapped[this.keypath.str])&&(t=e.get()),s(t,this.value)||(this.value=t,this.parentFragment.bubble(),this.node&&bs.addView(this))},firstNode:function(){return this.node},toString:function(t){var e=""+n(this.value);return t?Se(e):e}};var Wc=zc,Hc=Ve,Kc=Ge,Qc=ze,Yc=We,$c=He,Jc=Ke,Xc=Qe,Zc=Ye,tl=$e,el=function(t,e){Gc.rebind.call(this,t,e)},nl=Xe,al=Ze,rl=ln,il=dn,ol=fn,sl=gn,pl=function(t){this.type=Cu,this.subtype=this.currentSubtype=t.template.n,this.inverted=this.subtype===Iu,this.pElement=t.pElement,this.fragments=[],this.fragmentsToCreate=[],this.fragmentsToRender=[],this.fragmentsToUnrender=[],t.template.i&&(this.indexRefs=t.template.i.split(",").map(function(t,e){return{n:t,t:0===e?"k":"i"}})),this.renderedFragments=[],this.length=0,Gc.init(this,t)};pl.prototype={bubble:Hc,detach:Kc,find:Qc,findAll:Yc,findAllComponents:$c,findComponent:Jc,findNextNode:Xc,firstNode:Zc,getIndexRef:function(t){if(this.indexRefs)for(var e=this.indexRefs.length;e--;){var n=this.indexRefs[e];if(n.n===t)return n}},getValue:Gc.getValue,shuffle:tl,rebind:el,render:nl,resolve:Gc.resolve,setValue:al,toString:rl,unbind:il,unrender:ol,update:sl};var ul,cl,ll=pl,dl=vn,fl=bn,hl=yn,ml=_n,gl={};try{co("table").innerHTML="foo"}catch(Ao){ul=!0,cl={TABLE:['',"
"],THEAD:['',"
"],TBODY:['',"
"],TR:['',"
"],SELECT:['"]}}var vl=function(t,e,n){var a,r,i,o,s,p=[];if(null!=t&&""!==t){for(ul&&(r=cl[e.tagName])?(a=xn("DIV"),a.innerHTML=r[0]+t+r[1],a=a.querySelector(".x"),"SELECT"===a.tagName&&(i=a.options[a.selectedIndex])):e.namespaceURI===no.svg?(a=xn("DIV"),a.innerHTML=''+t+"",a=a.querySelector(".x")):(a=xn(e.tagName),a.innerHTML=t,"SELECT"===a.tagName&&(i=a.options[a.selectedIndex]));o=a.firstChild;)p.push(o),n.appendChild(o);if("SELECT"===e.tagName)for(s=p.length;s--;)p[s]!==i&&(p[s].selected=!1)}return p},bl=wn,yl=Sn,_l=En,xl=Cn,wl=Pn,kl=An,Sl=function(t){this.type=Eu,Gc.init(this,t)};Sl.prototype={detach:dl,find:fl,findAll:hl,firstNode:ml,getValue:Gc.getValue,rebind:Gc.rebind,render:yl,resolve:Gc.resolve,setValue:_l,toString:xl,unbind:_c,unrender:wl,update:kl};var El,Cl,Pl,Al,Ol=Sl,Tl=function(){this.parentFragment.bubble()},Rl=On,Ml=function(t){return this.node?lo(this.node,t)?this.node:this.fragment&&this.fragment.find?this.fragment.find(t):void 0:null},Ll=function(t,e){e._test(this,!0)&&e.live&&(this.liveQueries||(this.liveQueries=[])).push(e),this.fragment&&this.fragment.findAll(t,e)},Dl=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},jl=function(t){return this.fragment?this.fragment.findComponent(t):void 0},Nl=Tn,Fl=Rn,Il=Mn,Bl=/^true|on|yes|1$/i,ql=/^[0-9]+$/,Ul=function(t,e){var n,a,r;return r=e.a||{},a={},n=r.twoway,void 0!==n&&(a.twoway=0===n||Bl.test(n)),n=r.lazy,void 0!==n&&(0!==n&&ql.test(n)?a.lazy=parseInt(n):a.lazy=0===n||Bl.test(n)),a},Vl=Ln;El="altGlyph altGlyphDef altGlyphItem animateColor animateMotion animateTransform clipPath feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence foreignObject glyphRef linearGradient radialGradient textPath vkern".split(" "),Cl="attributeName attributeType baseFrequency baseProfile calcMode clipPathUnits contentScriptType contentStyleType diffuseConstant edgeMode externalResourcesRequired filterRes filterUnits glyphRef gradientTransform gradientUnits kernelMatrix kernelUnitLength keyPoints keySplines keyTimes lengthAdjust limitingConeAngle markerHeight markerUnits markerWidth maskContentUnits maskUnits numOctaves pathLength patternContentUnits patternTransform patternUnits pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits refX refY repeatCount repeatDur requiredExtensions requiredFeatures specularConstant specularExponent spreadMethod startOffset stdDeviation stitchTiles surfaceScale systemLanguage tableValues targetX targetY textLength viewBox viewTarget xChannelSelector yChannelSelector zoomAndPan".split(" "),Pl=function(t){for(var e={},n=t.length;n--;)e[t[n].toLowerCase()]=t[n];return e},Al=Pl(El.concat(Cl));var Gl=function(t){var e=t.toLowerCase();return Al[e]||e},zl=function(t,e){var n,a;if(n=e.indexOf(":"),-1===n||(a=e.substr(0,n),"xmlns"===a))t.name=t.element.namespace!==no.html?Gl(e):e;else if(e=e.substring(n+1),t.name=Gl(e),t.namespace=no[a.toLowerCase()],t.namespacePrefix=a,!t.namespace)throw'Unknown namespace ("'+a+'")'},Wl=Dn,Hl=jn,Kl=Nn,Ql=Fn,Yl={"accept-charset":"acceptCharset",accesskey:"accessKey",bgcolor:"bgColor","class":"className",codebase:"codeBase",colspan:"colSpan",contenteditable:"contentEditable",datetime:"dateTime",dirname:"dirName","for":"htmlFor","http-equiv":"httpEquiv",ismap:"isMap",maxlength:"maxLength",novalidate:"noValidate",pubdate:"pubDate",readonly:"readOnly",rowspan:"rowSpan",tabindex:"tabIndex",usemap:"useMap"},$l=In,Jl=qn,Xl=Un,Zl=Vn,td=Gn,ed=zn,nd=Wn,ad=Hn,rd=Kn,id=Qn,od=Yn,sd=$n,pd=Jn,ud=Xn,cd=Zn,ld=function(t){this.init(t)};ld.prototype={bubble:Vl,init:Hl,rebind:Kl,render:Ql,toString:$l,unbind:Jl,update:cd};var dd,fd=ld,hd=function(t,e){var n,a,r=[];for(n in e)"twoway"!==n&&"lazy"!==n&&e.hasOwnProperty(n)&&(a=new fd({element:t,name:n,value:e[n],root:t.root}),r[n]=a,"value"!==n&&r.push(a));return(a=r.value)&&r.push(a),r};"undefined"!=typeof document&&(dd=co("div"));var md=function(t,e){this.element=t,this.root=t.root,this.parentFragment=t.parentFragment,this.attributes=[],this.fragment=new rg({root:t.root,owner:this,template:[e]})};md.prototype={bubble:function(){this.node&&this.update(),this.element.bubble()},rebind:function(t,e){this.fragment.rebind(t,e)},render:function(t){this.node=t,this.isSvg=t.namespaceURI===no.svg,this.update()},unbind:function(){this.fragment.unbind()},update:function(){var t,e,n=this;t=""+this.fragment,e=ta(t,this.isSvg),this.attributes.filter(function(t){return ea(e,t)}).forEach(function(t){n.node.removeAttribute(t.name)}),e.forEach(function(t){n.node.setAttribute(t.name,t.value)}),this.attributes=e},toString:function(){return""+this.fragment}};var gd=md,vd=function(t,e){return e?e.map(function(e){return new gd(t,e)}):[]},bd=function(t){var e,n,a,r;if(this.element=t,this.root=t.root,this.attribute=t.attributes[this.name||"value"],e=this.attribute.interpolator,e.twowayBinding=this,n=e.keypath){if("}"===n.str.slice(-1))return g("Two-way binding does not work with expressions (`%s` on <%s>)",e.resolver.uniqueString,t.name,{ractive:this.root}),!1;if(n.isSpecial)return g("Two-way binding does not work with %s",e.resolver.ref,{ractive:this.root}),!1}else{var i=e.template.r?"'"+e.template.r+"' reference":"expression";m("The %s being used for two-way binding is ambiguous, and may cause unexpected results. Consider initialising your data to eliminate the ambiguity",i,{ractive:this.root}),e.resolver.forceResolution(),n=e.keypath}this.attribute.isTwoway=!0,this.keypath=n,a=this.root.viewmodel.get(n),void 0===a&&this.getInitialValue&&(a=this.getInitialValue(),void 0!==a&&this.root.viewmodel.set(n,a)),(r=na(t))&&(this.resetValue=a,r.formBindings.push(this))};bd.prototype={handleChange:function(){var t=this;bs.start(this.root),this.attribute.locked=!0,this.root.viewmodel.set(this.keypath,this.getValue()),bs.scheduleTask(function(){return t.attribute.locked=!1}),bs.end()},rebound:function(){var t,e,n;e=this.keypath,n=this.attribute.interpolator.keypath,e!==n&&(N(this.root._twowayBindings[e.str],this),this.keypath=n,t=this.root._twowayBindings[n.str]||(this.root._twowayBindings[n.str]=[]),t.push(this))},unbind:function(){}},bd.extend=function(t){var e,n=this;return e=function(t){bd.call(this,t),this.init&&this.init()},e.prototype=So(n.prototype),a(e.prototype,t),e.extend=bd.extend,e};var yd,_d=bd,xd=aa;yd=_d.extend({getInitialValue:function(){return""},getValue:function(){return this.element.node.value},render:function(){var t,e=this.element.node,n=!1;this.rendered=!0,t=this.root.lazy,this.element.lazy===!0?t=!0:this.element.lazy===!1?t=!1:p(this.element.lazy)?(t=!1,n=+this.element.lazy):p(t||"")&&(n=+t,t=!1,this.element.lazy=n),this.handler=n?ia:xd,e.addEventListener("change",xd,!1),t||(e.addEventListener("input",this.handler,!1),e.attachEvent&&e.addEventListener("keyup",this.handler,!1)),e.addEventListener("blur",ra,!1)},unrender:function(){var t=this.element.node;this.rendered=!1,t.removeEventListener("change",xd,!1),t.removeEventListener("input",this.handler,!1),t.removeEventListener("keyup",this.handler,!1),t.removeEventListener("blur",ra,!1)}});var wd=yd,kd=wd.extend({getInitialValue:function(){return this.element.fragment?""+this.element.fragment:""},getValue:function(){return this.element.node.innerHTML}}),Sd=kd,Ed=oa,Cd={},Pd=_d.extend({name:"checked",init:function(){this.siblings=Ed(this.root._guid,"radio",this.element.getAttribute("name")),this.siblings.push(this)},render:function(){var t=this.element.node;t.addEventListener("change",xd,!1),t.attachEvent&&t.addEventListener("click",xd,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",xd,!1),t.removeEventListener("click",xd,!1)},handleChange:function(){bs.start(this.root),this.siblings.forEach(function(t){t.root.viewmodel.set(t.keypath,t.getValue())}),bs.end()},getValue:function(){return this.element.node.checked},unbind:function(){N(this.siblings,this)}}),Ad=Pd,Od=_d.extend({name:"name",init:function(){this.siblings=Ed(this.root._guid,"radioname",this.keypath.str),this.siblings.push(this),this.radioName=!0},getInitialValue:function(){return this.element.getAttribute("checked")?this.element.getAttribute("value"):void 0},render:function(){var t=this.element.node;t.name="{{"+this.keypath.str+"}}",t.checked=this.root.viewmodel.get(this.keypath)==this.element.getAttribute("value"),t.addEventListener("change",xd,!1),t.attachEvent&&t.addEventListener("click",xd,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",xd,!1),t.removeEventListener("click",xd,!1)},getValue:function(){var t=this.element.node;return t._ractive?t._ractive.value:t.value},handleChange:function(){this.element.node.checked&&_d.prototype.handleChange.call(this)},rebound:function(t,e){var n;_d.prototype.rebound.call(this,t,e),(n=this.element.node)&&(n.name="{{"+this.keypath.str+"}}")},unbind:function(){N(this.siblings,this)}}),Td=Od,Rd=_d.extend({name:"name",getInitialValue:function(){return this.noInitialValue=!0,[]},init:function(){var t,e;this.checkboxName=!0,this.siblings=Ed(this.root._guid,"checkboxes",this.keypath.str),this.siblings.push(this),this.noInitialValue&&(this.siblings.noInitialValue=!0),this.siblings.noInitialValue&&this.element.getAttribute("checked")&&(t=this.root.viewmodel.get(this.keypath),e=this.element.getAttribute("value"),t.push(e))},unbind:function(){N(this.siblings,this)},render:function(){var t,e,n=this.element.node;t=this.root.viewmodel.get(this.keypath),e=this.element.getAttribute("value"),i(t)?this.isChecked=M(t,e):this.isChecked=t==e,n.name="{{"+this.keypath.str+"}}",n.checked=this.isChecked,n.addEventListener("change",xd,!1),n.attachEvent&&n.addEventListener("click",xd,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",xd,!1),t.removeEventListener("click",xd,!1)},changed:function(){var t=!!this.isChecked;return this.isChecked=this.element.node.checked,this.isChecked===t},handleChange:function(){this.isChecked=this.element.node.checked,_d.prototype.handleChange.call(this)},getValue:function(){return this.siblings.filter(sa).map(pa)}}),Md=Rd,Ld=_d.extend({name:"checked",render:function(){var t=this.element.node;t.addEventListener("change",xd,!1),t.attachEvent&&t.addEventListener("click",xd,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",xd,!1),t.removeEventListener("click",xd,!1)},getValue:function(){return this.element.node.checked}}),Dd=Ld,jd=_d.extend({getInitialValue:function(){var t,e,n,a,r=this.element.options;if(void 0===this.element.getAttribute("value")&&(e=t=r.length,t)){for(;e--;)if(r[e].getAttribute("selected")){n=r[e].getAttribute("value"),a=!0;break}if(!a)for(;++ee;e+=1)if(a=t[e],t[e].selected)return r=a._ractive?a._ractive.value:a.value},forceUpdate:function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,bs.scheduleTask(function(){return t.attribute.locked=!1}),this.root.viewmodel.set(this.keypath,e))}}),Nd=jd,Fd=Nd.extend({getInitialValue:function(){return this.element.options.filter(function(t){return t.getAttribute("selected")}).map(function(t){return t.getAttribute("value")})},render:function(){var t;this.element.node.addEventListener("change",xd,!1),t=this.root.viewmodel.get(this.keypath),void 0===t&&this.handleChange()},unrender:function(){this.element.node.removeEventListener("change",xd,!1)},setValue:function(){throw Error("TODO not implemented yet")},getValue:function(){var t,e,n,a,r,i;for(t=[],e=this.element.node.options,a=e.length,n=0;a>n;n+=1)r=e[n],r.selected&&(i=r._ractive?r._ractive.value:r.value,t.push(i));return t},handleChange:function(){var t,e,n;return t=this.attribute,e=t.value,n=this.getValue(),void 0!==e&&L(n,e)||Nd.prototype.handleChange.call(this),this},forceUpdate:function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,bs.scheduleTask(function(){return t.attribute.locked=!1}),this.root.viewmodel.set(this.keypath,e))},updateModel:function(){void 0!==this.attribute.value&&this.attribute.value.length||this.root.viewmodel.set(this.keypath,this.initialValue)}}),Id=Fd,Bd=_d.extend({render:function(){this.element.node.addEventListener("change",xd,!1)},unrender:function(){this.element.node.removeEventListener("change",xd,!1)},getValue:function(){return this.element.node.files}}),qd=Bd,Ud=wd.extend({getInitialValue:function(){},getValue:function(){var t=parseFloat(this.element.node.value);return isNaN(t)?void 0:t}}),Vd=ua,Gd=la,zd=da,Wd=fa,Hd=ha,Kd=/^event(?:\.(.+))?/,Qd=ba,Yd=ya,$d={},Jd={touchstart:!0,touchmove:!0,touchend:!0,touchcancel:!0,touchleave:!0},Xd=xa,Zd=wa,tf=ka,ef=Sa,nf=Ea,af=function(t,e,n){this.init(t,e,n)};af.prototype={bubble:Gd,fire:zd,getAction:Wd,init:Hd,listen:Yd,rebind:Xd,render:Zd,resolve:tf,unbind:ef,unrender:nf};var rf=af,of=function(t,e){var n,a,r,i,o=[];for(a in e)if(e.hasOwnProperty(a))for(r=a.split("-"),n=r.length;n--;)i=new rf(t,r[n],e[a]),o.push(i);return o},sf=function(t,e){var n,a,r,i=this;this.element=t,this.root=n=t.root,a=e.n||e,("string"==typeof a||(r=new rg({template:a,root:n,owner:t}),a=""+r,r.unbind(),""!==a))&&(e.a?this.params=e.a:e.d&&(this.fragment=new rg({template:e.d,root:n,owner:t}),this.params=this.fragment.getArgsList(),this.fragment.bubble=function(){this.dirtyArgs=this.dirtyValue=!0,i.params=this.getArgsList(),i.ready&&i.update()}),this.fn=v("decorators",n,a),this.fn||l(Io(a,"decorator")))};sf.prototype={init:function(){var t,e,n;if(t=this.element.node,this.params?(n=[t].concat(this.params),e=this.fn.apply(this.root,n)):e=this.fn.call(this.root,t),!e||!e.teardown)throw Error("Decorator definition must return an object with a teardown method");this.actual=e,this.ready=!0},update:function(){this.actual.update?this.actual.update.apply(this.root,this.params):(this.actual.teardown(!0),this.init())},rebind:function(t,e){this.fragment&&this.fragment.rebind(t,e)},teardown:function(t){this.torndown=!0,this.ready&&this.actual.teardown(),!t&&this.fragment&&this.fragment.unbind()}};var pf,uf,cf,lf=sf,df=Ma,ff=La,hf=Ba,mf=function(t){ -return t.replace(/-([a-zA-Z])/g,function(t,e){return e.toUpperCase()})};Xi?(uf={},cf=co("div").style,pf=function(t){var e,n,a;if(t=mf(t),!uf[t])if(void 0!==cf[t])uf[t]=t;else for(a=t.charAt(0).toUpperCase()+t.substring(1),e=ro.length;e--;)if(n=ro[e],void 0!==cf[n+a]){uf[t]=n+a;break}return uf[t]}):pf=null;var gf,vf,bf=pf;Xi?(vf=window.getComputedStyle||Po.getComputedStyle,gf=function(t){var e,n,a,r,o;if(e=vf(this.node),"string"==typeof t)return o=e[bf(t)],"0px"===o&&(o=0),o;if(!i(t))throw Error("Transition$getStyle must be passed a string, or an array of strings representing CSS properties");for(n={},a=t.length;a--;)r=t[a],o=e[bf(r)],"0px"===o&&(o=0),n[r]=o;return n}):gf=null;var yf=gf,_f=function(t,e){var n;if("string"==typeof t)this.node.style[bf(t)]=e;else for(n in t)t.hasOwnProperty(n)&&(this.node.style[bf(n)]=t[n]);return this},xf=function(t){var e;this.duration=t.duration,this.step=t.step,this.complete=t.complete,"string"==typeof t.easing?(e=t.root.easing[t.easing],e||(g(Io(t.easing,"easing")),e=qa)):e="function"==typeof t.easing?t.easing:qa,this.easing=e,this.start=ns(),this.end=this.start+this.duration,this.running=!0,xs.add(this)};xf.prototype={tick:function(t){var e,n;return this.running?t>this.end?(this.step&&this.step(1),this.complete&&this.complete(1),!1):(e=t-this.start,n=this.easing(e/this.duration),this.step&&this.step(n),!0):!1},stop:function(){this.abort&&this.abort(),this.running=!1}};var wf,kf,Sf,Ef,Cf,Pf,Af,Of,Tf=xf,Rf=RegExp("^-(?:"+ro.join("|")+")-"),Mf=function(t){return t.replace(Rf,"")},Lf=RegExp("^(?:"+ro.join("|")+")([A-Z])"),Df=function(t){var e;return t?(Lf.test(t)&&(t="-"+t),e=t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})):""},jf={},Nf={};Xi?(kf=co("div").style,function(){void 0!==kf.transition?(Sf="transition",Ef="transitionend",Cf=!0):void 0!==kf.webkitTransition?(Sf="webkitTransition",Ef="webkitTransitionEnd",Cf=!0):Cf=!1}(),Sf&&(Pf=Sf+"Duration",Af=Sf+"Property",Of=Sf+"TimingFunction"),wf=function(t,e,n,a,r){setTimeout(function(){var i,o,s,p,u;p=function(){o&&s&&(t.root.fire(t.name+":end",t.node,t.isIntro),r())},i=(t.node.namespaceURI||"")+t.node.tagName,t.node.style[Af]=a.map(bf).map(Df).join(","),t.node.style[Of]=Df(n.easing||"linear"),t.node.style[Pf]=n.duration/1e3+"s",u=function(e){var n;n=a.indexOf(mf(Mf(e.propertyName))),-1!==n&&a.splice(n,1),a.length||(t.node.removeEventListener(Ef,u,!1),s=!0,p())},t.node.addEventListener(Ef,u,!1),setTimeout(function(){for(var r,c,l,d,f,h=a.length,g=[];h--;)d=a[h],r=i+d,Cf&&!Nf[r]&&(t.node.style[bf(d)]=e[d],jf[r]||(c=t.getStyle(d),jf[r]=t.getStyle(d)!=e[d],Nf[r]=!jf[r],Nf[r]&&(t.node.style[bf(d)]=c))),(!Cf||Nf[r])&&(void 0===c&&(c=t.getStyle(d)),l=a.indexOf(d),-1===l?m("Something very strange happened with transitions. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!",{node:t.node}):a.splice(l,1),f=/[^\d]*$/.exec(e[d])[0],g.push({name:bf(d),interpolator:qo(parseFloat(c),parseFloat(e[d])),suffix:f}));g.length?new Tf({root:t.root,duration:n.duration,easing:mf(n.easing||""),step:function(e){var n,a;for(a=g.length;a--;)n=g[a],t.node.style[n.name]=n.interpolator(e)+n.suffix},complete:function(){o=!0,p()}}):o=!0,a.length||(t.node.removeEventListener(Ef,u,!1),s=!0,p())},0)},n.delay||0)}):wf=null;var Ff,If,Bf,qf,Uf,Vf=wf;if("undefined"!=typeof document){if(Ff="hidden",Uf={},Ff in document)Bf="";else for(qf=ro.length;qf--;)If=ro[qf],Ff=If+"Hidden",Ff in document&&(Bf=If);void 0!==Bf?(document.addEventListener(Bf+"visibilitychange",Ua),Ua()):("onfocusout"in document?(document.addEventListener("focusout",Va),document.addEventListener("focusin",Ga)):(window.addEventListener("pagehide",Va),window.addEventListener("blur",Va),window.addEventListener("pageshow",Ga),window.addEventListener("focus",Ga)),Uf.hidden=!1)}var Gf,zf,Wf,Hf=Uf;Xi?(zf=window.getComputedStyle||Po.getComputedStyle,Gf=function(t,e,n){var a,r=this;if(4===arguments.length)throw Error("t.animateStyle() returns a promise - use .then() instead of passing a callback");if(Hf.hidden)return this.setStyle(t,e),Wf||(Wf=us.resolve());"string"==typeof t?(a={},a[t]=e):(a=t,n=e),n||(g('The "%s" transition does not supply an options object to `t.animateStyle()`. This will break in a future version of Ractive. For more info see https://github.com/RactiveJS/Ractive/issues/340',this.name),n=this);var i=new us(function(t){var e,i,o,s,p,u,c;if(!n.duration)return r.setStyle(a),void t();for(e=Object.keys(a),i=[],o=zf(r.node),p={},u=e.length;u--;)c=e[u],s=o[bf(c)],"0px"===s&&(s=0),s!=a[c]&&(i.push(c),r.node.style[bf(c)]=s);return i.length?void Vf(r,a,n,i,t):void t()});return i}):Gf=null;var Kf=Gf,Qf=function(t,e){return"number"==typeof t?t={duration:t}:"string"==typeof t?t="slow"===t?{duration:600}:"fast"===t?{duration:200}:{duration:400}:t||(t={}),r({},t,e)},Yf=za,$f=function(t,e,n){this.init(t,e,n)};$f.prototype={init:hf,start:Yf,getStyle:yf,setStyle:_f,animateStyle:Kf,processParams:Qf};var Jf,Xf,Zf=$f,th=Ha;Jf=function(){var t=this.node,e=this.fragment.toString(!1);if(window&&window.appearsToBeIELessEqual8&&(t.type="text/css"),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}},Xf=function(){this.node.type&&"text/javascript"!==this.node.type||m("Script tag was updated. This does not cause the code to be re-evaluated!",{ractive:this.root}),this.node.text=this.fragment.toString(!1)};var eh=function(){var t,e;return this.template.y?"":(t="<"+this.template.e,t+=this.attributes.map(Xa).join("")+this.conditionalAttributes.map(Xa).join(""),"option"===this.name&&$a(this)&&(t+=" selected"),"input"===this.name&&Ja(this)&&(t+=" checked"),t+=">","textarea"===this.name&&void 0!==this.getAttribute("value")?t+=Se(this.getAttribute("value")):void 0!==this.getAttribute("contenteditable")&&(t+=this.getAttribute("value")||""),this.fragment&&(e="script"!==this.name&&"style"!==this.name,t+=this.fragment.toString(e)),ic.test(this.template.e)||(t+=""),t)},nh=Za,ah=tr,rh=function(t){this.init(t)};rh.prototype={bubble:Tl,detach:Rl,find:Ml,findAll:Ll,findAllComponents:Dl,findComponent:jl,findNextNode:Nl,firstNode:Fl,getAttribute:Il,init:df,rebind:ff,render:th,toString:eh,unbind:nh,unrender:ah};var ih=rh,oh=/^\s*$/,sh=/^\s*/,ph=function(t){var e,n,a,r;return e=t.split("\n"),n=e[0],void 0!==n&&oh.test(n)&&e.shift(),a=j(e),void 0!==a&&oh.test(a)&&e.pop(),r=e.reduce(nr,null),r&&(t=e.map(function(t){return t.replace(r,"")}).join("\n")),t},uh=ar,ch=function(t,e){var n;return e?n=t.split("\n").map(function(t,n){return n?e+t:t}).join("\n"):t},lh='Could not find template for partial "%s"',dh=function(t){var e,n;e=this.parentFragment=t.parentFragment,this.root=e.root,this.type=Au,this.index=t.index,this.name=t.template.r,this.rendered=!1,this.fragment=this.fragmentToRender=this.fragmentToUnrender=null,Gc.init(this,t),this.keypath||((n=uh(this.root,this.name,e))?(_c.call(this),this.isNamed=!0,this.setTemplate(n)):g(lh,this.name))};dh.prototype={bubble:function(){this.parentFragment.bubble()},detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},firstNode:function(){return this.fragment.firstNode()},findNextNode:function(){return this.parentFragment.findNextNode(this)},getPartialName:function(){return this.isNamed&&this.name?this.name:void 0===this.value?this.name:this.value},getValue:function(){return this.fragment.getValue()},rebind:function(t,e){this.isNamed||Vc.call(this,t,e),this.fragment&&this.fragment.rebind(t,e)},render:function(){return this.docFrag=document.createDocumentFragment(),this.update(),this.rendered=!0,this.docFrag},resolve:Gc.resolve,setValue:function(t){var e;(void 0===t||t!==this.value)&&(void 0!==t&&(e=uh(this.root,""+t,this.parentFragment)),!e&&this.name&&(e=uh(this.root,this.name,this.parentFragment))&&(_c.call(this),this.isNamed=!0),e||g(lh,this.name,{ractive:this.root}),this.value=t,this.setTemplate(e||[]),this.bubble(),this.rendered&&bs.addView(this))},setTemplate:function(t){this.fragment&&(this.fragment.unbind(),this.rendered&&(this.fragmentToUnrender=this.fragment)),this.fragment=new rg({template:t,root:this.root,owner:this,pElement:this.parentFragment.pElement}),this.fragmentToRender=this.fragment},toString:function(t){var e,n,a,r;return e=this.fragment.toString(t),n=this.parentFragment.items[this.index-1],n&&n.type===ku?(a=n.text.split("\n").pop(),(r=/^\s+$/.exec(a))?ch(e,r[0]):e):e},unbind:function(){this.isNamed||_c.call(this),this.fragment&&this.fragment.unbind()},unrender:function(t){this.rendered&&(this.fragment&&this.fragment.unrender(t),this.rendered=!1)},update:function(){var t,e;this.fragmentToUnrender&&(this.fragmentToUnrender.unrender(!0),this.fragmentToUnrender=null),this.fragmentToRender&&(this.docFrag.appendChild(this.fragmentToRender.render()),this.fragmentToRender=null),this.rendered&&(t=this.parentFragment.getNode(),e=this.parentFragment.findNextNode(this),t.insertBefore(this.docFrag,e))}};var fh,hh,mh,gh=dh,vh=pr,bh=ur,yh=new is("detach"),_h=cr,xh=lr,wh=dr,kh=fr,Sh=hr,Eh=mr,Ch=function(t,e,n,a){var r=t.root,i=t.keypath;a?r.viewmodel.smartUpdate(i,e,a):r.viewmodel.mark(i)},Ph=[],Ah=["pop","push","reverse","shift","sort","splice","unshift"];Ah.forEach(function(t){var e=function(){for(var e=arguments.length,n=Array(e),a=0;e>a;a++)n[a]=arguments[a];var r,i,o,s;for(r=bp(this,t,n),i=Array.prototype[t].apply(this,arguments),bs.start(),this._ractive.setting=!0,s=this._ractive.wrappers.length;s--;)o=this._ractive.wrappers[s],bs.addRactive(o.root),Ch(o,this,t,r);return bs.end(),this._ractive.setting=!1,i};Eo(Ph,t,{value:e})}),fh={},fh.__proto__?(hh=function(t){t.__proto__=Ph},mh=function(t){t.__proto__=Array.prototype}):(hh=function(t){var e,n;for(e=Ah.length;e--;)n=Ah[e],Eo(t,n,{value:Ph[n],configurable:!0})},mh=function(t){var e;for(e=Ah.length;e--;)delete t[Ah[e]]}),hh.unpatch=mh;var Oh,Th,Rh,Mh=hh;Oh={filter:function(t){return i(t)&&(!t._ractive||!t._ractive.setting)},wrap:function(t,e,n){return new Th(t,e,n)}},Th=function(t,e,n){this.root=t,this.value=e,this.keypath=S(n),e._ractive||(Eo(e,"_ractive",{value:{wrappers:[],instances:[],setting:!1},configurable:!0}),Mh(e)),e._ractive.instances[t._guid]||(e._ractive.instances[t._guid]=0,e._ractive.instances.push(t)),e._ractive.instances[t._guid]+=1,e._ractive.wrappers.push(this)},Th.prototype={get:function(){return this.value},teardown:function(){var t,e,n,a,r;if(t=this.value,e=t._ractive,n=e.wrappers,a=e.instances,e.setting)return!1;if(r=n.indexOf(this),-1===r)throw Error(Rh);if(n.splice(r,1),n.length){if(a[this.root._guid]-=1,!a[this.root._guid]){if(r=a.indexOf(this.root),-1===r)throw Error(Rh);a.splice(r,1)}}else delete t._ractive,Mh.unpatch(this.value)}},Rh="Something went wrong in a rather interesting way";var Lh,Dh,jh=Oh,Nh=/^\s*[0-9]+\s*$/,Fh=function(t){return Nh.test(t)?[]:{}};try{Object.defineProperty({},"test",{value:0}),Lh={filter:function(t,e,n){var a,r;return e?(e=S(e),(a=n.viewmodel.wrapped[e.parent.str])&&!a.magic?!1:(r=n.viewmodel.get(e.parent),i(r)&&/^[0-9]+$/.test(e.lastKey)?!1:r&&("object"==typeof r||"function"==typeof r))):!1},wrap:function(t,e,n){return new Dh(t,e,n)}},Dh=function(t,e,n){var a,r,i;return n=S(n),this.magic=!0,this.ractive=t,this.keypath=n,this.value=e,this.prop=n.lastKey,a=n.parent,this.obj=a.isRoot?t.viewmodel.data:t.viewmodel.get(a),r=this.originalDescriptor=Object.getOwnPropertyDescriptor(this.obj,this.prop),r&&r.set&&(i=r.set._ractiveWrappers)?void(-1===i.indexOf(this)&&i.push(this)):void gr(this,e,r)},Dh.prototype={get:function(){return this.value},reset:function(t){return this.updating?void 0:(this.updating=!0,this.obj[this.prop]=t,bs.addRactive(this.ractive),this.ractive.viewmodel.mark(this.keypath,{keepExistingWrapper:!0}),this.updating=!1,!0)},set:function(t,e){this.updating||(this.obj[this.prop]||(this.updating=!0,this.obj[this.prop]=Fh(t),this.updating=!1),this.obj[this.prop][t]=e)},teardown:function(){var t,e,n,a,r;return this.updating?!1:(t=Object.getOwnPropertyDescriptor(this.obj,this.prop),e=t&&t.set,void(e&&(a=e._ractiveWrappers,r=a.indexOf(this),-1!==r&&a.splice(r,1),a.length||(n=this.obj[this.prop],Object.defineProperty(this.obj,this.prop,this.originalDescriptor||{writable:!0,enumerable:!0,configurable:!0}),this.obj[this.prop]=n))))}}}catch(Ao){Lh=!1}var Ih,Bh,qh=Lh;qh&&(Ih={filter:function(t,e,n){return qh.filter(t,e,n)&&jh.filter(t)},wrap:function(t,e,n){return new Bh(t,e,n)}},Bh=function(t,e,n){this.value=e,this.magic=!0,this.magicWrapper=qh.wrap(t,e,n),this.arrayWrapper=jh.wrap(t,e,n)},Bh.prototype={get:function(){return this.value},teardown:function(){this.arrayWrapper.teardown(),this.magicWrapper.teardown()},reset:function(t){return this.magicWrapper.reset(t)}});var Uh=Ih,Vh=vr,Gh={},zh=_r,Wh=xr,Hh=Sr,Kh=Or,Qh=Tr,Yh=function(t,e){this.computation=t,this.viewmodel=t.viewmodel,this.ref=e,this.root=this.viewmodel.ractive,this.parentFragment=this.root.component&&this.root.component.parentFragment};Yh.prototype={resolve:function(t){this.computation.softDeps.push(t),this.computation.unresolvedDeps[t.str]=null,this.viewmodel.register(t,this.computation,"computed")}};var $h=Yh,Jh=function(t,e){this.key=t,this.getter=e.getter,this.setter=e.setter,this.hardDeps=e.deps||[],this.softDeps=[],this.unresolvedDeps={},this.depValues={},this._dirty=this._firstRun=!0};Jh.prototype={constructor:Jh,init:function(t){var e,n=this;this.viewmodel=t,this.bypass=!0,e=t.get(this.key),t.clearCache(this.key.str),this.bypass=!1,this.setter&&void 0!==e&&this.set(e),this.hardDeps&&this.hardDeps.forEach(function(e){return t.register(e,n,"computed")})},invalidate:function(){this._dirty=!0},get:function(){var t,e,n=this,a=!1;if(this.getting){var r="The "+this.key.str+" computation indirectly called itself. This probably indicates a bug in the computation. It is commonly caused by `array.sort(...)` - if that's the case, clone the array first with `array.slice().sort(...)`";return h(r),this.value}if(this.getting=!0,this._dirty){if(this._firstRun||!this.hardDeps.length&&!this.softDeps.length?a=!0:[this.hardDeps,this.softDeps].forEach(function(t){var e,r,i;if(!a)for(i=t.length;i--;)if(e=t[i],r=n.viewmodel.get(e),!s(r,n.depValues[e.str]))return n.depValues[e.str]=r,void(a=!0)}),a){this.viewmodel.capture();try{this.value=this.getter()}catch(i){m('Failed to compute "%s"',this.key.str),d(i.stack||i),this.value=void 0}t=this.viewmodel.release(),e=this.updateDependencies(t),e&&[this.hardDeps,this.softDeps].forEach(function(t){t.forEach(function(t){n.depValues[t.str]=n.viewmodel.get(t)})})}this._dirty=!1}return this.getting=this._firstRun=!1,this.value},set:function(t){if(this.setting)return void(this.value=t);if(!this.setter)throw Error("Computed properties without setters are read-only. (This may change in a future version of Ractive!)");this.setter(t)},updateDependencies:function(t){var e,n,a,r,i;for(n=this.softDeps,e=n.length;e--;)a=n[e],-1===t.indexOf(a)&&(r=!0,this.viewmodel.unregister(a,this,"computed"));for(e=t.length;e--;)a=t[e],-1!==n.indexOf(a)||this.hardDeps&&-1!==this.hardDeps.indexOf(a)||(r=!0,Rr(this.viewmodel,a)&&!this.unresolvedDeps[a.str]?(i=new $h(this,a.str),t.splice(e,1),this.unresolvedDeps[a.str]=i,bs.addUnresolved(i)):this.viewmodel.register(a,this,"computed"));return r&&(this.softDeps=t.slice()),r}};var Xh=Jh,Zh=Mr,tm={FAILED_LOOKUP:!0},em=Lr,nm={},am=jr,rm=Nr,im=function(t,e){this.localKey=t,this.keypath=e.keypath,this.origin=e.origin,this.deps=[],this.unresolved=[],this.resolved=!1};im.prototype={forceResolution:function(){this.keypath=this.localKey,this.setup()},get:function(t,e){return this.resolved?this.origin.get(this.map(t),e):void 0},getValue:function(){return this.keypath?this.origin.get(this.keypath):void 0},initViewmodel:function(t){this.local=t,this.setup()},map:function(t){return void 0===typeof this.keypath?this.localKey:t.replace(this.localKey,this.keypath)},register:function(t,e,n){this.deps.push({keypath:t,dep:e,group:n}),this.resolved&&this.origin.register(this.map(t),e,n)},resolve:function(t){void 0!==this.keypath&&this.unbind(!0),this.keypath=t,this.setup()},set:function(t,e){this.resolved||this.forceResolution(),this.origin.set(this.map(t),e)},setup:function(){var t=this;void 0!==this.keypath&&(this.resolved=!0,this.deps.length&&(this.deps.forEach(function(e){var n=t.map(e.keypath);if(t.origin.register(n,e.dep,e.group),e.dep.setValue)e.dep.setValue(t.origin.get(n));else{if(!e.dep.invalidate)throw Error("An unexpected error occurred. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");e.dep.invalidate()}}),this.origin.mark(this.keypath)))},setValue:function(t){if(!this.keypath)throw Error("Mapping does not have keypath, cannot set value. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");this.origin.set(this.keypath,t)},unbind:function(t){var e=this;t||delete this.local.mappings[this.localKey],this.resolved&&(this.deps.forEach(function(t){e.origin.unregister(e.map(t.keypath),t.dep,t.group)}),this.tracker&&this.origin.unregister(this.keypath,this.tracker))},unregister:function(t,e,n){var a,r;if(this.resolved){for(a=this.deps,r=a.length;r--;)if(a[r].dep===e){a.splice(r,1);break}this.origin.unregister(this.map(t),e,n)}}};var om=Fr,sm=function(t,e){var n,a,r,i;return n={},a=0,r=t.map(function(t,r){var o,s,p;s=a,p=e.length;do{if(o=e.indexOf(t,s),-1===o)return i=!0,-1;s=o+1}while(n[o]&&p>s);return o===a&&(a+=1),o!==r&&(i=!0),n[o]=!0,o})},pm=Ir,um={},cm=Ur,lm=Gr,dm=zr,fm=Wr,hm=Kr,mm={implicit:!0},gm={noCascade:!0},vm=Yr,bm=$r,ym=function(t){var e,n,a=t.adapt,r=t.data,i=t.ractive,o=t.computed,s=t.mappings;this.ractive=i,this.adaptors=a,this.onchange=t.onchange,this.cache={},this.cacheMap=So(null),this.deps={computed:So(null),"default":So(null)},this.depsMap={computed:So(null),"default":So(null)},this.patternObservers=[],this.specials=So(null),this.wrapped=So(null),this.computations=So(null),this.captureGroups=[],this.unresolvedImplicitDependencies=[],this.changes=[],this.implicitChanges={},this.noCascade={},this.data=r,this.mappings=So(null);for(e in s)this.map(S(e),s[e]);if(r)for(e in r)(n=this.mappings[e])&&void 0===n.getValue()&&n.setValue(r[e]);for(e in o)s&&e in s&&l("Cannot map to a computed property ('%s')",e),this.compute(S(e),o[e]);this.ready=!0};ym.prototype={adapt:Vh,applyChanges:Hh,capture:Kh,clearCache:Qh,compute:Zh,get:em,init:am,map:rm,mark:om,merge:pm,register:cm,release:lm,reset:dm,set:fm,smartUpdate:hm,teardown:vm,unregister:bm};var _m=ym;Xr.prototype={constructor:Xr,begin:function(t){this.inProcess[t._guid]=!0},end:function(t){var e=t.parent;e&&this.inProcess[e._guid]?Zr(this.queue,e).push(t):ti(this,t),delete this.inProcess[t._guid]}};var xm=Xr,wm=ei,km=/\$\{([^\}]+)\}/g,Sm=new is("construct"),Em=new is("config"),Cm=new xm("init"),Pm=0,Am=["adaptors","components","decorators","easing","events","interpolators","partials","transitions"],Om=ii,Tm=ci;ci.prototype={bubble:function(){this.dirty||(this.dirty=!0,bs.addView(this))},update:function(){this.callback(this.fragment.getValue()),this.dirty=!1},rebind:function(t,e){this.fragment.rebind(t,e)},unbind:function(){this.fragment.unbind()}};var Rm=function(t,e,n,r,o){var s,p,u,c,l,d,f={},h={},g={},v=[];for(p=t.parentFragment,u=t.root,o=o||{},a(f,o),o.content=r||[],f[""]=o.content,e.defaults.el&&m("The <%s/> component has a default `el` property; it has been disregarded",t.name),c=p;c;){if(c.owner.type===Mu){l=c.owner.container;break}c=c.parent}return n&&Object.keys(n).forEach(function(e){var a,r,o=n[e];if("string"==typeof o)a=dc(o),h[e]=a?a.value:o;else if(0===o)h[e]=!0;else{if(!i(o))throw Error("erm wut");di(o)?(g[e]={origin:t.root.viewmodel,keypath:void 0},r=li(t,o[0],function(t){t.isSpecial?d?s.set(e,t.value):(h[e]=t.value,delete g[e]):d?s.viewmodel.mappings[e].resolve(t):g[e].keypath=t})):r=new Tm(t,o,function(t){d?s.set(e,t):h[e]=t}),v.push(r)}}),s=So(e.prototype),Om(s,{el:null,append:!0,data:h,partials:o,magic:u.magic||e.defaults.magic,modifyArrays:u.modifyArrays,adapt:u.adapt},{parent:u,component:t,container:l,mappings:g,inlinePartials:f,cssIds:p.cssIds}),d=!0,t.resolvers=v,s},Mm=fi,Lm=function(t){var e,n;for(e=t.root;e;)(n=e._liveComponentQueries["_"+t.name])&&n.push(t.instance),e=e.parent},Dm=mi,jm=gi,Nm=vi,Fm=bi,Im=yi,Bm=new is("teardown"),qm=xi,Um=function(t,e){this.init(t,e)};Um.prototype={detach:bh,find:_h,findAll:xh,findAllComponents:wh,findComponent:kh,findNextNode:Sh,firstNode:Eh,init:Dm,rebind:jm,render:Nm,toString:Fm,unbind:Im,unrender:qm};var Vm=Um,Gm=function(t){this.type=Ou,this.value=t.template.c};Gm.prototype={detach:vc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createComment(this.value)),this.node},toString:function(){return""},unrender:function(t){t&&this.node.parentNode.removeChild(this.node)}};var zm=Gm,Wm=function(t){var e,n;this.type=Mu,this.container=e=t.parentFragment.root,this.component=n=e.component,this.container=e,this.containerFragment=t.parentFragment,this.parentFragment=n.parentFragment;var a=this.name=t.template.n||"",r=e._inlinePartials[a];r||(m('Could not find template for partial "'+a+'"',{ractive:t.root}),r=[]),this.fragment=new rg({owner:this,root:e.parent,template:r,pElement:this.containerFragment.pElement}),i(n.yielders[a])?n.yielders[a].push(this):n.yielders[a]=[this],bs.scheduleTask(function(){if(n.yielders[a].length>1)throw Error("A component template can only have one {{yield"+(a?" "+a:"")+"}} declaration at a time")})};Wm.prototype={detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},findNextNode:function(){return this.containerFragment.findNextNode(this)},firstNode:function(){return this.fragment.firstNode()},getValue:function(t){return this.fragment.getValue(t)},render:function(){return this.fragment.render()},unbind:function(){this.fragment.unbind()},unrender:function(t){this.fragment.unrender(t),N(this.component.yielders[this.name],this)},rebind:function(t,e){this.fragment.rebind(t,e)},toString:function(){return""+this.fragment}};var Hm=Wm,Km=function(t){this.declaration=t.template.a};Km.prototype={init:ko,render:ko,unrender:ko,teardown:ko,toString:function(){return""}};var Qm=Km,Ym=wi,$m=Si,Jm=Ei,Xm=Ci,Zm=Oi,tg=Ri,eg=function(t){this.init(t)};eg.prototype={bubble:cu,detach:lu,find:du,findAll:fu,findAllComponents:hu,findComponent:mu,findNextNode:gu,firstNode:vu,getArgsList:hc,getNode:mc,getValue:gc,init:Ym,rebind:$m,registerIndexRef:function(t){var e=this.registeredIndexRefs;-1===e.indexOf(t)&&e.push(t)},render:Jm,toString:Xm,unbind:Zm,unregisterIndexRef:function(t){var e=this.registeredIndexRefs;e.splice(e.indexOf(t),1)},unrender:tg};var ng,ag,rg=eg,ig=Mi,og=["template","partials","components","decorators","events"],sg=new is("reset"),pg=function(t,e){function n(e,a,r){r&&r.partials[t]||e.forEach(function(e){e.type===Au&&e.getPartialName()===t&&a.push(e),e.fragment&&n(e.fragment.items,a,r),i(e.fragments)?n(e.fragments,a,r):i(e.items)?n(e.items,a,r):e.type===Ru&&e.instance&&n(e.instance.fragment.items,a,e.instance),e.type===Pu&&(i(e.attributes)&&n(e.attributes,a,r),i(e.conditionalAttributes)&&n(e.conditionalAttributes,a,r))})}var a,r=[];return n(this.fragment.items,r),this.partials[t]=e,a=bs.start(this,!0),r.forEach(function(e){e.value=void 0,e.setValue(t)}),bs.end(),a},ug=Li,cg=_p("reverse"),lg=Di,dg=_p("shift"),fg=_p("sort"),hg=_p("splice"),mg=Ni,gg=Fi,vg=new is("teardown"),bg=Bi,yg=qi,_g=Ui,xg=new is("unrender"),wg=_p("unshift"),kg=Vi,Sg=new is("update"),Eg=Gi,Cg={add:Zo,animate:Ss,detach:Cs,find:As,findAll:Fs,findAllComponents:Is,findComponent:Bs,findContainer:qs,findParent:Us,fire:Ws,get:Hs,insert:Qs,merge:$s,observe:lp,observeOnce:dp,off:mp,on:gp,once:vp,pop:xp,push:wp,render:Tp,reset:ig,resetPartial:pg,resetTemplate:ug,reverse:cg,set:lg,shift:dg,sort:fg,splice:hg,subtract:mg,teardown:gg,toggle:bg,toHTML:yg,toHtml:yg,unrender:_g,unshift:wg,update:kg,updateModel:Eg},Pg=function(t,e,n){return n||Wi(t,e)?function(){var n,a="_super"in this,r=this._super;return this._super=e,n=t.apply(this,arguments),a&&(this._super=r),n}:t},Ag=Hi,Og=$i,Tg=function(t){var e,n,a={};return t&&(e=t._ractive)?(a.ractive=e.root,a.keypath=e.keypath.str,a.index={},(n=Oc(e.proxy.parentFragment))&&(a.index=Oc.resolve(n)),a):a};ng=function(t){return this instanceof ng?void Om(this,t):new ng(t)},ag={DEBUG:{writable:!0,value:!0},DEBUG_PROMISES:{writable:!0,value:!0},extend:{value:Og},getNodeInfo:{value:Tg},parse:{value:Hp},Promise:{value:us},svg:{value:ao},magic:{value:eo},VERSION:{value:"0.7.3"},adaptors:{writable:!0,value:{}},components:{writable:!0,value:{}},decorators:{writable:!0,value:{}},easing:{writable:!0,value:po},events:{writable:!0,value:{}},interpolators:{writable:!0,value:Vo},partials:{writable:!0,value:{}},transitions:{writable:!0,value:{}}},Co(ng,ag),ng.prototype=a(Cg,so),ng.prototype.constructor=ng,ng.defaults=ng.prototype;var Rg="function";if(typeof Date.now!==Rg||typeof String.prototype.trim!==Rg||typeof Object.keys!==Rg||typeof Array.prototype.indexOf!==Rg||typeof Array.prototype.forEach!==Rg||typeof Array.prototype.map!==Rg||typeof Array.prototype.filter!==Rg||"undefined"!=typeof window&&typeof window.addEventListener!==Rg)throw Error("It looks like you're attempting to use Ractive.js in an older browser. You'll need to use one of the 'legacy builds' in order to continue - see http://docs.ractivejs.org/latest/legacy-builds for more information.");var Mg=ng;return Mg})},{}],342:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.observe("value",function(e,n,a){var r=t.get(),i=r.min,o=r.max,s=Math.clamp(i,o,e);t.animate("percentage",Math.round((s-i)/(o-i)*100))})}}}(r),r.exports.template={v:3,t:[" ",{p:[13,1,305],t:7,e:"div",a:{"class":"bar"},f:[{p:[14,3,326],t:7,e:"div",a:{"class":["barFill ",{t:2,r:"state",p:[14,23,346]}],style:["width: ",{t:2,r:"percentage",p:[14,48,371]},"%"]}}," ",{p:[15,3,398],t:7,e:"span",a:{"class":"barText"},f:[{t:16,p:[15,25,420]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],343:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(477),a=t(476);e.exports={computed:{clickable:function(){return!this.get("enabled")||this.get("state")&&"toggle"!=this.get("state")?!1:!0},enabled:function(){return this.get("config.status")===n.UI_INTERACTIVE?!0:!1},styles:function(){var t="";if(this.get("class")&&(t+=" "+this.get("class")),this.get("tooltip-side")&&(t=" tooltip-"+this.get("tooltip-side")),this.get("grid")&&(t+=" gridable"),this.get("enabled")){var e=this.get("state"),n=this.get("style");return e?"inactive "+e+" "+t:"active normal "+n+" "+t}return"inactive disabled "+t}},oninit:function(){var t=this;this.on("press",function(e){var n=t.get(),r=n.action,i=n.params;(0,a.act)(t.get("config.ref"),r,i),e.node.blur()})},data:{iconStackToHTML:function(t){var e="",n=t.split(",");if(n.length){e+='';for(var a=n,r=Array.isArray(a),i=0,a=r?a:a[Symbol.iterator]();;){var o;if(r){if(i>=a.length)break;o=a[i++]}else{if(i=a.next(),i.done)break;o=i.value}var s=o,p=/([\w\-]+)\s*(\dx)/g,u=p.exec(s),c=u[1],l=u[2];e+=''}}return e&&(e+=""),e}}}}(r),r.exports.template={v:3,t:[" ",{p:[70,1,2019],t:7,e:"span",a:{"class":["button ",{t:2,r:"styles",p:[70,21,2039]}],unselectable:"on","data-tooltip":[{t:2,r:"tooltip",p:[73,17,2124]}]},m:[{t:4,f:["tabindex='0'"],r:"clickable",p:[72,3,2075]}],v:{"mouseover-mousemove":"hover",mouseleave:"unhover","click-enter":{n:[{t:4,f:["press"],r:"clickable",p:[76,19,2217]}],d:[]}},f:[{t:4,f:[{p:[78,5,2265],t:7,e:"i",a:{"class":["fa fa-",{t:2,r:"icon",p:[78,21,2281]}]}}],n:50,r:"icon",p:[77,3,2247]}," ",{t:4,f:[{t:3,x:{r:["iconStackToHTML","icon_stack"],s:"_0(_1)"},p:[81,6,2335]}],n:50,r:"icon_stack",p:[80,3,2310]}," ",{t:16,p:[83,3,2383]}]}]},e.exports=a.extend(r.exports)},{341:341,476:476,477:477}],344:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"display"},f:[{t:4,f:[{p:[3,5,44],t:7,e:"header",f:[{p:[4,7,60],t:7,e:"h3",f:[{t:2,r:"title",p:[4,11,64]}]}," ",{t:4,f:[{p:[6,9,110],t:7,e:"div",a:{"class":"buttonRight"},f:[{t:16,n:"button",p:[6,34,135]}]}],n:50,r:"button",p:[5,7,86]}]}],n:50,r:"title",p:[2,3,25]}," ",{p:[10,3,202],t:7,e:"article",f:[{t:16,p:[11,5,217]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],345:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.on("clear",function(){t.set("value",""),t.find("input").focus()})}}}(r),r.exports.template={v:3,t:[" ",{p:[12,1,170],t:7,e:"input",a:{type:"text",value:[{t:2,r:"value",p:[12,27,196]}],placeholder:[{t:2,r:"placeholder",p:[12,51,220]}]}}," ",{p:[13,1,240],t:7,e:"ui-button",a:{icon:"refresh"},v:{press:"clear"}}]},e.exports=a.extend(r.exports)},{341:341}],346:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";e.exports={data:{graph:t(338),xaccessor:function(t){return t.x},yaccessor:function(t){return t.y}},computed:{size:function(){var t=this.get("points");return t[0].length},scale:function(){var t=this.get("points");return Math.max.apply(Math,Array.map(t,function(t){return Math.max.apply(Math,Array.map(t,function(t){return t.y}))}))},xaxis:function(){var t=this.get("xinc"),e=this.get("size");return Array.from(Array(e).keys()).filter(function(e){return e&&e%t==0})},yaxis:function(){var t=this.get("yinc"),e=this.get("scale");return Array.from(Array(t).keys()).map(function(t){return Math.round(e*(++t/100)*10)})}},oninit:function(){var t=this;this.on({enter:function(t){this.set("selected",t.index.count)},exit:function(t){this.set("selected")}}),window.addEventListener("resize",function(e){t.set("width",t.el.clientWidth)})},onrender:function(){this.set("width",this.el.clientWidth)}}}(r),r.exports.template={v:3,t:[" ",{p:[47,1,1269],t:7,e:"svg",a:{"class":"linegraph",width:"100%",height:[{t:2,x:{r:["height"],s:"_0+10"},p:[47,45,1313]}]},f:[{p:[48,3,1334],t:7,e:"g",a:{transform:"translate(0, 5)"},f:[{t:4,f:[{t:4,f:[{p:[51,9,1504],t:7,e:"line",a:{x1:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,19,1514]}],x2:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,38,1533]}],y1:"0",y2:[{t:2,r:"height",p:[51,64,1559]}],stroke:"darkgray"}}," ",{t:4,f:[{p:[53,11,1635],t:7,e:"text",a:{x:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[53,20,1644]}],y:[{t:2,x:{r:["height"],s:"_0-5"},p:[53,38,1662]}],"text-anchor":"middle",fill:"white"},f:[{t:2,x:{r:["size",".","xfactor"],s:"(_0-_1)*_2"},p:[53,88,1712]}," ",{t:2,r:"xunit",p:[53,113,1737]}]}],n:50,x:{r:["@index"],s:"_0%2==0"},p:[52,9,1600]}],n:52,r:"xaxis",p:[50,7,1479]}," ",{t:4,f:[{p:[57,9,1820],t:7,e:"line",a:{x1:"0",x2:[{t:2,r:"width",p:[57,26,1837]}],y1:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,41,1852]}],y2:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,60,1871]}],stroke:"darkgray"}}," ",{p:[58,9,1915],t:7,e:"text",a:{x:"0",y:[{t:2,x:{r:["yscale","."],s:"_0(_1)-5"},p:[58,24,1930]}],"text-anchor":"begin",fill:"white"},f:[{t:2,x:{r:[".","yfactor"],s:"_0*_1"},p:[58,76,1982]}," ",{t:2,r:"yunit",p:[58,92,1998]}]}],n:52,r:"yaxis",p:[56,7,1795]}," ",{t:4,f:[{p:[61,9,2071],t:7,e:"path",a:{d:[{t:2,x:{r:["area.path"],s:"_0.print()"},p:[61,18,2080]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[61,47,2109]}],opacity:"0.1"}}],n:52,i:"curve",r:"curves",p:[60,7,2039]}," ",{t:4,f:[{p:[64,9,2200],t:7,e:"path",a:{d:[{t:2,x:{r:["line.path"],s:"_0.print()"},p:[64,18,2209]}],stroke:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[64,49,2240]}],fill:"none"}}],n:52, -i:"curve",r:"curves",p:[63,7,2168]}," ",{t:4,f:[{t:4,f:[{p:[68,11,2375],t:7,e:"circle",a:{transform:["translate(",{t:2,r:".",p:[68,40,2404]},")"],r:[{t:2,x:{r:["selected","count"],s:"_0==_1?10:4"},p:[68,51,2415]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[68,89,2453]}]},v:{mouseenter:"enter",mouseleave:"exit"}}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[67,9,2329]}],n:52,i:"curve",r:"curves",p:[66,7,2297]}," ",{t:4,f:[{t:4,f:[{t:4,f:[{p:[74,13,2678],t:7,e:"text",a:{transform:["translate(",{t:2,r:".",p:[74,40,2705]},") ",{t:2,x:{r:["count","size"],s:'_0<=_1/2?"translate(15, 4)":"translate(-15, 4)"'},p:[74,47,2712]}],"text-anchor":[{t:2,x:{r:["count","size"],s:'_0<=_1/2?"start":"end"'},p:[74,126,2791]}],fill:"white"},f:[{t:2,x:{r:["count","item","yfactor"],s:"_1[_0].y*_2"},p:[75,15,2861]}," ",{t:2,r:"yunit",p:[75,43,2889]}," @ ",{t:2,x:{r:["size","count","item","xfactor"],s:"(_0-_2[_1].x)*_3"},p:[75,55,2901]}," ",{t:2,r:"xunit",p:[75,92,2938]}]}],n:50,x:{r:["selected","count"],s:"_0==_1"},p:[73,11,2638]}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[72,9,2592]}],n:52,i:"curve",r:"curves",p:[71,7,2560]}," ",{t:4,f:[{p:[81,9,3063],t:7,e:"g",a:{transform:["translate(",{t:2,x:{r:["width","curves.length","@index"],s:"(_0/(_1+1))*(_2+1)"},p:[81,33,3087]},", 10)"]},f:[{p:[82,11,3154],t:7,e:"circle",a:{r:"4",fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[82,31,3174]}]}}," ",{p:[83,11,3206],t:7,e:"text",a:{x:"8",y:"4",fill:"white"},f:[{t:2,rx:{r:"legend",m:[{t:30,n:"curve"}]},p:[83,42,3237]}]}]}],n:52,i:"curve",r:"curves",p:[80,7,3031]}],x:{r:["graph","points","xaccessor","yaccessor","width","height"],s:"_0({data:_1,xaccessor:_2,yaccessor:_3,width:_4,height:_5})"},p:[49,5,1371]}]}]}]},e.exports=a.extend(r.exports)},{338:338,341:341}],347:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"notice"},f:[{t:16,p:[2,3,24]}]}]},e.exports=a.extend(r.exports)},{341:341}],348:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(476),a=t(478);e.exports={oninit:function(){var t=this,e=a.resize.bind(this),r=function(){return t.set({resize:!1,x:null,y:null})};this.observe("config.fancy",function(a,i,o){(0,n.winset)(t.get("config.window"),"can-resize",!a),a?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",r)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",r))}),this.on("resize",function(){return t.toggle("resize")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[28,3,766],t:7,e:"div",a:{"class":"resize"},v:{mousedown:"resize"}}],n:50,r:"config.fancy",p:[27,1,742]}]},e.exports=a.extend(r.exports)},{341:341,476:476,478:478}],349:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"section",a:{"class":[{t:4,f:["candystripe"],r:"candystripe",p:[1,17,16]}]},f:[{t:4,f:[{p:[3,5,84],t:7,e:"span",a:{"class":"label",style:[{t:4,f:["color:",{t:2,r:"labelcolor",p:[3,53,132]}],r:"labelcolor",p:[3,32,111]}]},f:[{t:2,r:"label",p:[3,84,163]},":"]}],n:50,r:"label",p:[2,3,65]}," ",{t:4,f:[{t:16,p:[6,5,215]}],n:50,r:"nowrap",p:[5,3,195]},{t:4,n:51,f:[{p:[8,5,242],t:7,e:"div",a:{"class":"content",style:[{t:4,f:["float:right;"],r:"right",p:[8,33,270]}]},f:[{t:16,p:[9,7,312]}]}],r:"nowrap"}]}]},e.exports=a.extend(r.exports)},{341:341}],350:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"subdisplay"},f:[{t:4,f:[{p:[3,5,47],t:7,e:"header",f:[{p:[4,7,63],t:7,e:"h4",f:[{t:2,r:"title",p:[4,11,67]}]}," ",{t:4,f:[{t:16,n:"button",p:[5,21,103]}],n:50,r:"button",p:[5,7,89]}]}],n:50,r:"title",p:[2,3,28]}," ",{p:[8,3,156],t:7,e:"article",f:[{t:16,p:[9,5,171]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],351:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.set("active",this.findComponent("tab").get("name")),this.on("switch",function(e){t.set("active",e.node.textContent.trim())}),this.observe("active",function(e,n,a){for(var r=t.findAllComponents("tab"),i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var p=s;p.set("shown",p.get("name")===e)}})}}}(r),r.exports.template={v:3,t:[" "," ",{p:[20,1,524],t:7,e:"header",f:[{t:4,f:[{p:[22,5,556],t:7,e:"ui-button",a:{pane:[{t:2,r:".",p:[22,22,573]}]},v:{press:"switch"},f:[{t:2,r:".",p:[22,47,598]}]}],n:52,r:"tabs",p:[21,3,536]}]}," ",{p:[25,1,641],t:7,e:"ui-display",f:[{t:8,r:"content",p:[26,3,657]}]}]},r.exports.components=r.exports.components||{};var i={tab:t(352)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,352:352}],352:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:16,p:[2,3,17]}],n:50,r:"shown",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],353:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(477),a=t(476),r=t(478);e.exports={computed:{visualStatus:function(){switch(this.get("config.status")){case n.UI_INTERACTIVE:return"good";case n.UI_UPDATE:return"average";case n.UI_DISABLED:return"bad";default:return"bad"}}},oninit:function(){var t=this,e=r.drag.bind(this),n=function(e){return t.set({drag:!1,x:null,y:null})};this.observe("config.fancy",function(r,i,o){(0,a.winset)(t.get("config.window"),"titlebar",!r&&t.get("config.titlebar")),r?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",n)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",n))}),this.on({drag:function(){this.toggle("drag")},close:function(){(0,a.winset)(this.get("config.window"),"is-visible",!1),window.location.href=(0,a.href)({command:"uiclose "+this.get("config.ref")},"winset")},minimize:function(){(0,a.winset)(this.get("config.window"),"is-minimized",!0)}})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[50,3,1440],t:7,e:"header",a:{"class":"titlebar"},v:{mousedown:"drag"},f:[{p:[51,5,1491],t:7,e:"i",a:{"class":["statusicon fa fa-eye fa-2x ",{t:2,r:"visualStatus",p:[51,42,1528]}]}}," ",{p:[52,5,1556],t:7,e:"span",a:{"class":"title"},f:[{t:16,p:[52,25,1576]}]}," ",{t:4,f:[{p:[54,7,1626],t:7,e:"i",a:{"class":"minimize fa fa-minus fa-2x"},v:{click:"minimize"}}," ",{p:[55,7,1696],t:7,e:"i",a:{"class":"close fa fa-close fa-2x"},v:{click:"close"}}],n:50,r:"config.fancy",p:[53,5,1598]}]}],n:50,r:"config.titlebar",p:[49,1,1413]}]},e.exports=a.extend(r.exports)},{341:341,476:476,477:477,478:478}],354:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";var e=[11,10,9,8];t.exports={data:{userAgent:navigator.userAgent},computed:{ie:function(){if(document.documentMode)return document.documentMode;for(var t in e){var n=document.createElement("div");if(n.innerHTML="",n.getElementsByTagName("span").length)return t}}},oninit:function(){var t=this;this.on("debug",function(){return t.toggle("debug")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[27,3,662],t:7,e:"ui-notice",f:[{p:[28,5,679],t:7,e:"span",f:["You have an old (IE",{t:2,r:"ie",p:[28,30,704]},"), end-of-life (click 'EOL Info' for more information) version of Internet Explorer installed."]},{p:[28,137,811],t:7,e:"br"}," ",{p:[29,5,822],t:7,e:"span",f:["To upgrade, click 'Upgrade IE' to download IE11 from Microsoft."]},{p:[29,81,898],t:7,e:"br"}," ",{p:[30,5,909],t:7,e:"span",f:["If you are unable to upgrade directly, click 'IE VMs' to download a VM with IE11 or Edge from Microsoft."]},{p:[30,122,1026],t:7,e:"br"}," ",{p:[31,5,1037],t:7,e:"span",f:["Otherwise, click 'No Frills' below to disable potentially incompatible features (and this message)."]}," ",{p:[32,5,1155],t:7,e:"hr"}," ",{p:[33,5,1166],t:7,e:"ui-button",a:{icon:"close",action:"tgui:nofrills"},f:["No Frills"]}," ",{p:[34,5,1240],t:7,e:"ui-button",a:{icon:"internet-explorer",action:"tgui:link",params:'{"url": "http://windows.microsoft.com/en-us/internet-explorer/download-ie"}'},f:["Upgrade IE"]}," ",{p:[36,5,1416],t:7,e:"ui-button",a:{icon:"edge",action:"tgui:link",params:'{"url": "https://dev.windows.com/en-us/microsoft-edge/tools/vms"}'},f:["IE VMs"]}," ",{p:[38,5,1565],t:7,e:"ui-button",a:{icon:"info",action:"tgui:link",params:'{"url": "https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer"}'},f:["EOL Info"]}," ",{p:[40,5,1738],t:7,e:"ui-button",a:{icon:"bug"},v:{press:"debug"},f:["Debug Info"]}," ",{t:4,f:[{p:[42,7,1826],t:7,e:"hr"}," ",{p:[43,7,1839],t:7,e:"span",f:["Detected: IE",{t:2,r:"ie",p:[43,25,1857]}]},{p:[43,38,1870],t:7,e:"br"}," ",{p:[44,7,1883],t:7,e:"span",f:["User Agent: ",{t:2,r:"userAgent",p:[44,25,1901]}]}],n:50,r:"debug",p:[41,5,1805]}]}],n:50,x:{r:["config.fancy","ie"],s:"_0&&_1&&_1<11"},p:[26,1,621]}]},e.exports=a.extend(r.exports)},{341:341}],355:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},shockState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[22,1,348],t:7,e:"ui-display",a:{title:"Power Status"},f:[{p:[23,2,384],t:7,e:"ui-section",a:{label:"Main"},f:[{p:[24,3,413],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.power.main"],s:"_0(_1)"},p:[24,16,426]}]},f:[{t:2,x:{r:["data.power.main"],s:'_0?"Online":"Offline"'},p:[24,49,459]}]}," ",{t:4,f:["[ ",{p:[26,6,567],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.main_1","data.wires.main_2"],s:"!_0||!_1"},p:[25,3,512]},{t:4,n:51,f:[{t:4,f:["[ ",{t:2,r:"data.power.main_timeleft",p:[29,7,674]}," seconds left ]"],n:50,x:{r:["data.power.main_timeleft"],s:"_0>0"},p:[28,4,630]}],x:{r:["data.wires.main_1","data.wires.main_2"],s:"!_0||!_1"}}," ",{p:[32,3,744],t:7,e:"div",a:{style:"float:right"},f:[{p:[33,4,774],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"disrupt-main",state:[{t:2,x:{r:["data.power.main"],s:'_0?null:"disabled"'},p:[33,63,833]}]},f:["Disrupt"]}]}]}," ",{p:[36,2,922],t:7,e:"ui-section",a:{label:"Backup"},f:[{p:[37,3,953],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.power.backup"],s:"_0(_1)"},p:[37,16,966]}]},f:[{t:2,x:{r:["data.power.backup"],s:'_0?"Online":"Offline"'},p:[37,51,1001]}]}," ",{t:4,f:["[ ",{p:[39,6,1115],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.backup_1","data.wires.backup_2"],s:"!_0||!_1"},p:[38,3,1056]},{t:4,n:51,f:[{t:4,f:["[ ",{t:2,r:"data.power.backup_timeleft",p:[42,7,1224]}," seconds left ]"],n:50,x:{r:["data.power.backup_timeleft"],s:"_0>0"},p:[41,4,1178]}],x:{r:["data.wires.backup_1","data.wires.backup_2"],s:"!_0||!_1"}}," ",{p:[45,3,1296],t:7,e:"div",a:{style:"float:right"},f:[{p:[46,4,1326],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"disrupt-backup",state:[{t:2,x:{r:["data.power.backup"],s:'_0?null:"disabled"'},p:[46,65,1387]}]},f:["Disrupt"]}]}]}," ",{p:[49,2,1478],t:7,e:"ui-section",a:{label:"Electrify"},f:[{p:[50,3,1512],t:7,e:"span",a:{"class":[{t:2,x:{r:["shockState","data.shock"],s:"_0(_1)"},p:[50,16,1525]}]},f:[{t:2,x:{r:["data.shock"],s:'_0==2?"Safe":"Electrified"'},p:[50,44,1553]}]}," ",{t:4,f:["[ ",{p:[52,6,1640],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.shock"],s:"!_0"},p:[51,3,1608]},{t:4,n:51,f:[{t:4,f:["[ ",{p:[55,7,1742],t:7,e:"span",a:{"class":"bad"},f:[{t:2,r:"data.shock_timeleft",p:[55,25,1760]}," seconds left"]}," ]"],n:50,x:{r:["data.shock_timeleft"],s:"_0>0"},p:[54,4,1703]}," ",{t:4,f:["[ ",{p:[58,7,1863],t:7,e:"span",a:{"class":"bad"},f:["Permanent"]}," ]"],n:50,x:{r:["data.shock_timeleft"],s:"_0==-1"},p:[57,4,1822]}],x:{r:["data.wires.shock"],s:"!_0"}}," ",{p:[61,3,1926],t:7,e:"div",a:{style:"float:right"},f:[{p:[62,4,1956],t:7,e:"ui-button",a:{icon:"wrench",action:"shock-restore",state:[{t:2,x:{r:["data.wires.shock","data.shock"],s:'_0&&_1==0?null:"disabled"'},p:[62,59,2011]}]},f:["Restore"]}," ",{p:[63,4,2094],t:7,e:"ui-button",a:{icon:"bolt",action:"shock-temp",state:[{t:2,x:{r:["data.wires.shock"],s:"!_0"},p:[63,54,2144]}]},f:["Set (Temporary)"]}," ",{p:[64,4,2199],t:7,e:"ui-button",a:{icon:"bolt",action:"shock-perm",state:[{t:2,x:{r:["data.wires.shock"],s:"!_0"},p:[64,53,2248]}]},f:["Set (Permanent)"]}]}]}]}," ",{p:[68,1,2341],t:7,e:"ui-display",a:{title:"Access & Door Control"},f:[{p:[69,2,2386],t:7,e:"ui-section",a:{label:"ID Scan"},f:[{t:4,f:["[ ",{p:[71,6,2455],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.id_scanner"],s:"!_0"},p:[70,3,2418]}," ",{p:[73,3,2516],t:7,e:"div",a:{style:"float:right"},f:[{p:[74,4,2546],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.id_scanner"],s:"!_0"},p:[74,22,2564]}],icon:"power-off",action:"idscan-on",style:[{t:2,x:{r:["data.id_scanner"],s:'_0?"selected":""'},p:[74,93,2635]}]},f:["Enabled"]}," ",{p:[75,4,2698],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.id_scanner"],s:"!_0"},p:[75,22,2716]}],icon:"close",action:"idscan-off",style:[{t:2,x:{r:["data.id_scanner"],s:'_0?"":"selected"'},p:[75,90,2784]}]},f:["Disabled"]}]}]}," ",{p:[78,2,2872],t:7,e:"ui-section",a:{label:"Emergency Access"},f:[{p:[79,3,2913],t:7,e:"div",a:{style:"float:right"},f:[{p:[80,4,2943],t:7,e:"ui-button",a:{icon:"power-off",action:"emergency-on",style:[{t:2,x:{r:["data.emergency"],s:'_0?"selected":""'},p:[80,61,3e3]}]},f:["Enabled"]}," ",{p:[81,4,3062],t:7,e:"ui-button",a:{icon:"close",action:"emergency-off",style:[{t:2,x:{r:["data.emergency"],s:'_0?"":"selected"'},p:[81,58,3116]}]},f:["Disabled"]}]}]}," ",{p:[84,2,3203],t:7,e:"br"}," ",{p:[85,2,3212],t:7,e:"ui-section",a:{label:"Door bolts"},f:[{t:4,f:["[ ",{p:[87,6,3279],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.bolts"],s:"!_0"},p:[86,3,3247]}," ",{p:[89,3,3340],t:7,e:"div",a:{style:"float:right"},f:[{p:[90,4,3370],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.bolts"],s:"!_0"},p:[90,22,3388]}],icon:"unlock",action:"bolt-raise",style:[{t:2,x:{r:["data.locked"],s:'_0?"":"selected"'},p:[90,85,3451]}]},f:["Raised"]}," ",{p:[91,4,3509],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.bolts"],s:"!_0"},p:[91,22,3527]}],icon:"lock",action:"bolt-drop",style:[{t:2,x:{r:["data.locked"],s:'_0?"selected":""'},p:[91,82,3587]}]},f:["Dropped"]}]}]}," ",{p:[94,2,3670],t:7,e:"ui-section",a:{label:"Door bolt lights"},f:[{t:4,f:["[ ",{p:[96,6,3744],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.lights"],s:"!_0"},p:[95,3,3711]}," ",{p:[98,3,3805],t:7,e:"div",a:{style:"float:right"},f:[{p:[99,4,3835],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.lights"],s:"!_0"},p:[99,22,3853]}],icon:"power-off",action:"light-on",style:[{t:2,x:{r:["data.lights"],s:'_0?"selected":""'},p:[99,88,3919]}]},f:["Enabled"]}," ",{p:[100,4,3978],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.lights"],s:"!_0"},p:[100,22,3996]}],icon:"close",action:"light-off",style:[{t:2,x:{r:["data.lights"],s:'_0?"":"selected"'},p:[100,85,4059]}]},f:["Disabled"]}]}]}," ",{p:[103,2,4143],t:7,e:"ui-section",a:{label:"Door force sensors"},f:[{t:4,f:["[ ",{p:[105,6,4217],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.safe"],s:"!_0"},p:[104,3,4186]}," ",{p:[107,3,4278],t:7,e:"div",a:{style:"float:right"},f:[{p:[108,4,4308],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.safe"],s:"!_0"},p:[108,22,4326]}],icon:"power-off",action:"safe-on",style:[{t:2,x:{r:["data.safe"],s:'_0?"selected":""'},p:[108,85,4389]}]},f:["Enabled"]}," ",{p:[109,4,4446],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.safe"],s:"!_0"},p:[109,22,4464]}],icon:"close",action:"safe-off",style:[{t:2,x:{r:["data.safe"],s:'_0?"":"selected"'},p:[109,82,4524]}]},f:["Disabled"]}]}]}," ",{p:[112,2,4606],t:7,e:"ui-section",a:{label:"Door timing safety"},f:[{t:4,f:["[ ",{p:[114,6,4682],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.timing"],s:"!_0"},p:[113,3,4649]}," ",{p:[116,3,4743],t:7,e:"div",a:{style:"float:right"},f:[{p:[117,4,4773],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.timing"],s:"!_0"},p:[117,22,4791]}],icon:"power-off",action:"speed-on",style:[{t:2,x:{r:["data.speed"],s:'_0?"selected":""'},p:[117,88,4857]}]},f:["Enabled"]}," ",{p:[118,4,4915],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.timing"],s:"!_0"},p:[118,22,4933]}],icon:"close",action:"speed-off",style:[{t:2,x:{r:["data.speed"],s:'_0?"":"selected"'},p:[118,85,4996]}]},f:["Disabled"]}]}]}," ",{p:[121,2,5079],t:7,e:"br"}," ",{p:[122,2,5088],t:7,e:"ui-section",a:{label:"Door control"},f:[{t:4,f:["[ ",{p:[124,6,5166],t:7,e:"span",a:{"class":"bad"},f:["Door is ",{t:2,x:{r:["data.locked","data.welded"],s:'(_0?"bolted":"")+(_0&&_1?" and ":"")+(_1?"welded":"")'},p:[124,32,5192]}]}," ]"],n:50,x:{r:["data.locked","data.welded"],s:"_0||_1"},p:[123,3,5125]}," ",{p:[126,3,5327],t:7,e:"div",a:{style:"float:right"},f:[{p:[127,4,5357],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.locked","data.welded","data.opened"],s:'(_0||_1)||(_2&&"disabled")'},p:[127,22,5375]}],icon:"sign-out",action:"open-close"},f:["Open door"]}," ",{p:[128,4,5502],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.locked","data.welded","data.opened"],s:'(_0||_1)||(!_2&&"disabled")'},p:[128,22,5520]}],icon:"sign-in",action:"open-close"},f:["Close door"]}]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],356:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," ",{p:[7,1,267],t:7,e:"ui-notice",f:[{t:4,f:[{p:[9,5,312],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[10,7,355],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[10,24,372]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[10,75,423]}]}]}],n:50,r:"data.siliconUser",p:[8,3,282]},{t:4,n:51,f:[{p:[13,5,514],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,31,540]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[16,1,625],t:7,e:"status"}," ",{t:4,f:[{t:4,f:[{p:[19,7,719],t:7,e:"ui-display",a:{title:"Air Controls"},f:[{p:[20,9,762],t:7,e:"ui-section",f:[{p:[21,11,786],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"exclamation-triangle":"exclamation"'},p:[21,28,803]}],style:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"caution":null'},p:[21,98,873]}],action:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"reset":"alarm"'},p:[22,23,937]}]},f:["Area Atmosphere Alarm"]}]}," ",{p:[24,9,1045],t:7,e:"ui-section",f:[{p:[25,11,1069],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0==3?"exclamation-triangle":"exclamation"'},p:[25,28,1086]}],style:[{t:2,x:{r:["data.mode"],s:'_0==3?"danger":null'},p:[25,96,1154]}],action:"mode",params:['{"mode": ',{t:2,x:{r:["data.mode"],s:"_0==3?1:3"},p:[26,44,1236]},"}"]},f:["Panic Siphon"]}]}," ",{p:[28,9,1322],t:7,e:"br"}," ",{p:[29,9,1337],t:7,e:"ui-section",f:[{p:[30,11,1361],t:7,e:"ui-button",a:{icon:"sign-out",action:"tgui:view",params:'{"screen": "vents"}'},f:["Vent Controls"]}]}," ",{p:[32,9,1494],t:7,e:"ui-section",f:[{p:[33,11,1518],t:7,e:"ui-button",a:{icon:"filter",action:"tgui:view",params:'{"screen": "scrubbers"}'},f:["Scrubber Controls"]}]}," ",{p:[35,9,1657],t:7,e:"ui-section",f:[{p:[36,11,1681],t:7,e:"ui-button",a:{icon:"cog",action:"tgui:view",params:'{"screen": "modes"}'},f:["Operating Mode"]}]}," ",{p:[38,9,1810],t:7,e:"ui-section",f:[{p:[39,11,1834],t:7,e:"ui-button",a:{icon:"bar-chart",action:"tgui:view",params:'{"screen": "thresholds"}'},f:["Alarm Thresholds"]}]}]}],n:50,x:{r:["config.screen"],s:'_0=="home"'},p:[18,3,680]},{t:4,n:51,f:[{t:4,n:50,x:{r:["config.screen"],s:'_0=="vents"'},f:[{p:[43,5,2032],t:7,e:"vents"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&(_0=="scrubbers")'},f:[" ",{p:[45,5,2089],t:7,e:"scrubbers"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&(_0=="modes"))'},f:[" ",{p:[47,5,2146],t:7,e:"modes"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&((!(_0=="modes"))&&(_0=="thresholds")))'},f:[" ",{p:[49,5,2204],t:7,e:"thresholds"}]}],x:{r:["config.screen"],s:'_0=="home"'}}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[17,1,636]}]},r.exports.components=r.exports.components||{};var i={vents:t(362),modes:t(358),thresholds:t(361),status:t(360),scrubbers:t(359)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,358:358,359:359,360:360,361:361,362:362}],357:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-button",a:{icon:"arrow-left",action:"tgui:view",params:'{"screen": "home"}'},f:["Back"]}]},e.exports=a.extend(r.exports)},{341:341}],358:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,115],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Operating Modes",button:0},f:[" ",{t:4,f:[{p:[8,5,168],t:7,e:"ui-section",f:[{p:[9,7,188],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["selected"],s:'_0?"check-square-o":"square-o"'},p:[9,24,205]}],state:[{t:2,x:{r:["selected","danger"],s:'_0?_1?"danger":"selected":null'},p:[10,16,267]}],action:"mode",params:['{"mode": ',{t:2,r:"mode",p:[11,40,361]},"}"]},f:[{t:2,r:"name",p:[11,51,372]}]}]}],n:52,r:"data.modes",p:[7,3,142]}]}]},r.exports.components=r.exports.components||{};var i={back:t(357)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,357:357}],359:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" "," ",{p:{button:[{p:[6,5,185],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Scrubber Controls",button:0},f:[" ",{t:4,f:[{p:[9,5,242],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[9,27,264]}]},f:[{p:[10,7,287],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[11,9,323],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[11,26,340]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[11,68,382]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[12,46,459]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[12,66,479]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[12,80,493]}]}]}," ",{p:[14,7,558],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[15,9,593],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["scrubbing"],s:'_0?"filter":"sign-in"'},p:[15,26,610]}],style:[{t:2,x:{r:["scrubbing"],s:'_0?null:"danger"'},p:[15,71,655]}],action:"scrubbing",params:['{"id_tag": "',{t:2,r:"id_tag",p:[16,50,738]},'", "val": ',{t:2,x:{r:["scrubbing"],s:"+!_0"},p:[16,70,758]},"}"]},f:[{t:2,x:{r:["scrubbing"],s:'_0?"Scrubbing":"Siphoning"'},p:[16,88,776]}]}]}," ",{p:[18,7,858],t:7,e:"ui-section",a:{label:"Range"},f:[{p:[19,9,894],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["widenet"],s:'_0?"expand":"compress"'},p:[19,26,911]}],style:[{t:2,x:{r:["widenet"],s:'_0?"selected":null'},p:[19,70,955]}],action:"widenet",params:['{"id_tag": "',{t:2,r:"id_tag",p:[20,48,1036]},'", "val": ',{t:2,x:{r:["widenet"],s:"+!_0"},p:[20,68,1056]},"}"]},f:[{t:2,x:{r:["widenet"],s:'_0?"Expanded":"Normal"'},p:[20,84,1072]}]}]}," ",{p:[22,7,1148],t:7,e:"ui-section",a:{label:"Filters"},f:[{p:[23,9,1186],t:7,e:"filters"}]}]}],n:52,r:"data.scrubbers",p:[8,3,212]},{t:4,n:51,f:[{p:[27,5,1257],t:7,e:"span",a:{"class":"bad"},f:["Error: No scrubbers connected."]}],r:"data.scrubbers"}]}]},r.exports.components=r.exports.components||{};var i={filters:t(452),back:t(357)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,357:357,452:452}],360:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Air Status"},f:[{t:4,f:[{t:4,f:[{p:[4,7,110],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[4,26,129]}]},f:[{p:[5,6,146],t:7,e:"span",a:{"class":[{t:2,x:{r:["danger_level"],s:'_0==2?"bad":_0==1?"average":"good"'},p:[5,19,159]}]},f:[{t:2,x:{r:["value"],s:"Math.fixed(_0,2)"},p:[6,5,237]},{t:2,r:"unit",p:[6,29,261]}]}]}],n:52,r:"adata.environment_data",p:[3,5,70]}," ",{p:[10,5,322],t:7,e:"ui-section",a:{label:"Local Status"},f:[{p:[11,7,363],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.danger_level"],s:'_0==2?"bad bold":_0==1?"average bold":"good"'},p:[11,20,376]}]},f:[{t:2,x:{r:["data.danger_level"],s:'_0==2?"Danger (Internals Required)":_0==1?"Caution":"Optimal"'},p:[12,6,475]}]}]}," ",{p:[15,5,619],t:7,e:"ui-section",a:{label:"Area Status"},f:[{p:[16,7,659],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.atmos_alarm","data.fire_alarm"],s:'_0||_1?"bad bold":"good"'},p:[16,20,672]}]},f:[{t:2,x:{r:["data.atmos_alarm","fire_alarm"],s:'_0?"Atmosphere Alarm":_1?"Fire Alarm":"Nominal"'},p:[17,8,744]}]}]}],n:50,r:"data.environment_data",p:[2,3,35]},{t:4,n:51,f:[{p:[21,5,876],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[22,7,912],t:7,e:"span",a:{"class":"bad bold"},f:["Cannot obtain air sample for analysis."]}]}],r:"data.environment_data"}," ",{t:4,f:[{p:[26,5,1040],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[27,7,1076],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[25,3,1014]}]}]},e.exports=a.extend(r.exports)},{341:341}],361:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.css=" th, td {\r\n padding-right: 16px;\r\n text-align: left;\r\n }",r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,116],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Alarm Thresholds",button:0},f:[" ",{p:[7,3,143],t:7,e:"table",f:[{p:[8,5,156],t:7,e:"thead",f:[{p:[8,12,163],t:7,e:"tr",f:[{p:[9,7,175],t:7,e:"th"}," ",{p:[10,7,192],t:7,e:"th",f:[{p:[10,11,196],t:7,e:"span",a:{"class":"bad"},f:["min2"]}]}," ",{p:[11,7,238],t:7,e:"th",f:[{p:[11,11,242],t:7,e:"span",a:{"class":"average"},f:["min1"]}]}," ",{p:[12,7,288],t:7,e:"th",f:[{p:[12,11,292],t:7,e:"span",a:{"class":"average"},f:["max1"]}]}," ",{p:[13,7,338],t:7,e:"th",f:[{p:[13,11,342],t:7,e:"span",a:{"class":"bad"},f:["max2"]}]}]}]}," ",{p:[15,5,401],t:7,e:"tbody",f:[{t:4,f:[{p:[16,32,441],t:7,e:"tr",f:[{p:[17,9,455],t:7,e:"th",f:[{t:3,r:"name",p:[17,13,459]}]}," ",{t:4,f:[{p:[18,27,502],t:7,e:"td",f:[{p:[19,11,518],t:7,e:"ui-button",a:{action:"threshold",params:['{"env": "',{t:2,r:"env",p:[19,58,565]},'", "var": "',{t:2,r:"val",p:[19,76,583]},'"}']},f:[{t:2,x:{r:["selected"],s:"Math.fixed(_0,2)"},p:[19,87,594]}]}]}],n:52,r:"settings",p:[18,9,484]}]}],n:52,r:"data.thresholds",p:[16,7,416]}]}," ",{p:[23,3,697],t:7,e:"table",f:[]}]}]}," "]},r.exports.components=r.exports.components||{};var i={back:t(357)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,357:357}],362:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,113],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Vent Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,166],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,188]}]},f:[{p:[9,7,211],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,264]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,306]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,383]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,403]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,417]}]}]}," ",{p:[13,7,482],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,517],t:7,e:"span",f:[{t:2,x:{r:["direction"],s:'_0=="release"?"Pressurizing":"Siphoning"'},p:[14,15,523]}]}]}," ",{p:[16,7,616],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[17,9,665],t:7,e:"ui-button",a:{icon:"sign-in",style:[{t:2,x:{r:["incheck"],s:'_0?"selected":null'},p:[17,42,698]}],action:"incheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[18,48,779]},'", "val": ',{t:2,r:"checks",p:[18,68,799]},"}"]},f:["Internal"]}," ",{p:[19,9,842],t:7,e:"ui-button",a:{icon:"sign-out",style:[{t:2,x:{r:["excheck"],s:'_0?"selected":null'},p:[19,43,876]}],action:"excheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[20,48,957]},'", "val": ',{t:2,r:"checks",p:[20,68,977]},"}"]},f:["External"]}]}," ",{t:4,f:[{p:[23,9,1064],t:7,e:"ui-section",a:{label:"Internal Target Pressure"},f:[{p:[24,11,1121],t:7,e:"ui-button",a:{icon:"pencil",action:"set_internal_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[25,33,1210]},'"}']},f:[{t:2,x:{r:["internal"],s:"Math.fixed(_0)"},p:[25,47,1224]}]}," ",{p:[26,11,1272],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["intdefault"],s:'_0?"disabled":null'},p:[26,44,1305]}],action:"reset_internal_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[27,33,1407]},'"}']},f:["Reset"]}]}],n:50,r:"incheck",p:[22,7,1039]}," ",{t:4,f:[{p:[31,11,1511],t:7,e:"ui-section",a:{label:"External Target Pressure"},f:[{p:[32,13,1570],t:7,e:"ui-button",a:{icon:"pencil",action:"set_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[33,35,1661]},'"}']},f:[{t:2,x:{r:["external"],s:"Math.fixed(_0)"},p:[33,49,1675]}]}," ",{p:[34,13,1725],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["extdefault"],s:'_0?"disabled":null'},p:[34,46,1758]}],action:"reset_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[35,35,1862]},'"}']},f:["Reset"]}]}],n:50,r:"excheck",p:[30,7,1484]}]}],n:52,r:"data.vents",p:[7,3,140]},{t:4,n:51,f:[{p:[40,5,1973],t:7,e:"span",a:{"class":"bad"},f:["Error: No vents connected."]}],r:"data.vents"}]}]},r.exports.components=r.exports.components||{};var i={back:t(357)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,357:357}],363:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.css=" table {\r\n width: 100%;\r\n border-spacing: 2px;\r\n }\r\n th {\r\n text-align: left;\r\n }\r\n td {\r\n vertical-align: top;\r\n }\r\n td .button {\r\n margin-top: 4px\r\n }",r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",f:[{p:[3,5,34],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oneAccess"],s:'_0?"unlock":"lock"'},p:[3,22,51]}],action:"one_access"},f:[{t:2,x:{r:["data.oneAccess"],s:'_0?"One":"All"'},p:[3,82,111]}," Required"]}," ",{p:[4,5,172],t:7,e:"ui-button",a:{icon:"refresh",action:"clear"},f:["Clear"]}]}," ",{p:[6,3,251],t:7,e:"hr"}," ",{p:[7,3,260],t:7,e:"table",f:[{p:[8,3,271],t:7,e:"thead",f:[{p:[9,4,283],t:7,e:"tr",f:[{t:4,f:[{p:[10,5,315],t:7,e:"th",f:[{p:[10,9,319],t:7,e:"span",a:{"class":"highlight bold"},f:[{t:2,r:"name",p:[10,38,348]}]}]}],n:52,r:"data.regions",p:[9,8,287]}]}]}," ",{p:[13,3,403],t:7,e:"tbody",f:[{p:[14,4,415],t:7,e:"tr",f:[{t:4,f:[{p:[15,5,447],t:7,e:"td",f:[{t:4,f:[{p:[16,11,481],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["req"],s:'_0?"check-square-o":"square-o"'},p:[16,28,498]}],style:[{t:2,x:{r:["req"],s:'_0?"selected":null'},p:[16,76,546]}],action:"set",params:['{"access": "',{t:2,r:"id",p:[17,46,621]},'"}']},f:[{t:2,r:"name",p:[17,56,631]}]}," ",{p:[18,9,661],t:7,e:"br"}],n:52,r:"accesses",p:[15,9,451]}]}],n:52,r:"data.regions",p:[14,8,419]}]}]}]}," ",{p:[23,2,731],t:7,e:"hr"}," ",{p:[24,2,739],t:7,e:"span",a:{"class":"highlight bold"},f:["Unrestricted Access:"]}," ",{p:[25,2,798],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.unres_direction"],s:'_0&1?"check-square-o":"square-o"'},p:[25,19,815]}],style:[{t:2,x:{r:["data.unres_direction"],s:'_0&1?"selected":null'},p:[25,88,884]}],action:"direc_set",params:'{"unres_direction": "1"}'},f:["North"]}," ",{p:[26,2,1007],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.unres_direction"],s:'_0&4?"check-square-o":"square-o"'},p:[26,19,1024]}],style:[{t:2,x:{r:["data.unres_direction"],s:'_0&4?"selected":null'},p:[26,88,1093]}],action:"direc_set",params:'{"unres_direction": "4"}'},f:["East"]}," ",{p:[27,2,1215],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.unres_direction"],s:'_0&2?"check-square-o":"square-o"'},p:[27,19,1232]}],style:[{t:2,x:{r:["data.unres_direction"], -s:'_0&2?"selected":null'},p:[27,88,1301]}],action:"direc_set",params:'{"unres_direction": "2"}'},f:["South"]}," ",{p:[28,2,1424],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.unres_direction"],s:'_0&8?"check-square-o":"square-o"'},p:[28,19,1441]}],style:[{t:2,x:{r:["data.unres_direction"],s:'_0&8?"selected":null'},p:[28,88,1510]}],action:"direc_set",params:'{"unres_direction": "8"}'},f:["West"]}]}," "]},e.exports=a.extend(r.exports)},{341:341}],364:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}}},computed:{malfAction:function(){switch(this.get("data.malfStatus")){case 1:return"hack";case 2:return"occupy";case 3:return"deoccupy"}},malfButton:function(){switch(this.get("data.malfStatus")){case 1:return"Override Programming";case 2:case 4:return"Shunt Core Process";case 3:return"Return to Main Core"}},malfIcon:function(){switch(this.get("data.malfStatus")){case 1:return"terminal";case 2:case 4:return"caret-square-o-down";case 3:return"caret-square-o-left"}},powerCellStatusState:function(){var t=this.get("data.powerCellStatus");return t>50?"good":t>25?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[46,2,1206],t:7,e:"ui-notice",f:[{p:[47,3,1221],t:7,e:"b",f:[{p:[47,6,1224],t:7,e:"h3",f:["SYSTEM FAILURE"]}]}," ",{p:[48,3,1255],t:7,e:"i",f:["I/O regulators malfunction detected! Waiting for system reboot..."]},{p:[48,75,1327],t:7,e:"br"}," Automatic reboot in ",{t:2,r:"data.failTime",p:[49,23,1355]}," seconds... ",{p:[50,3,1387],t:7,e:"ui-button",a:{icon:"refresh",action:"reboot"},f:["Reboot Now"]},{p:[50,67,1451],t:7,e:"br"},{p:[50,71,1455],t:7,e:"br"},{p:[50,75,1459],t:7,e:"br"}]}],n:50,r:"data.failTime",p:[45,1,1182]},{t:4,n:51,f:[{p:[53,2,1491],t:7,e:"ui-notice",f:[{t:4,f:[{p:[55,3,1535],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[56,5,1576],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[56,22,1593]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[56,73,1644]}]}]}],n:50,r:"data.siliconUser",p:[54,4,1507]},{t:4,n:51,f:[{p:[59,3,1732],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[59,29,1758]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[62,2,1846],t:7,e:"ui-display",a:{title:"Power Status"},f:[{p:[63,4,1884],t:7,e:"ui-section",a:{label:"Main Breaker"},f:[{t:4,f:[{p:[65,5,1967],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isOperating"],s:'_0?"good":"bad"'},p:[65,18,1980]}]},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[65,57,2019]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[64,3,1921]},{t:4,n:51,f:[{p:[67,5,2079],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[67,22,2096]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[67,75,2149]}],action:"breaker"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[68,21,2212]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}," ",{p:[71,4,2293],t:7,e:"ui-section",a:{label:"External Power"},f:[{p:[72,3,2332],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.externalPower"],s:"_0(_1)"},p:[72,16,2345]}]},f:[{t:2,x:{r:["data.externalPower"],s:'_0==2?"Good":_0==1?"Low":"None"'},p:[72,52,2381]}]}]}," ",{p:[74,4,2490],t:7,e:"ui-section",a:{label:"Power Cell"},f:[{t:4,f:[{p:[76,5,2567],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerCellStatus",p:[76,38,2600]}],state:[{t:2,r:"powerCellStatusState",p:[76,71,2633]}]},f:[{t:2,x:{r:["adata.powerCellStatus"],s:"Math.fixed(_0)"},p:[76,97,2659]},"%"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[75,3,2525]},{t:4,n:51,f:[{p:[78,5,2724],t:7,e:"span",a:{"class":"bad"},f:["Removed"]}],x:{r:["data.powerCellStatus"],s:"_0!=null"}}]}," ",{t:4,f:[{p:[82,3,2830],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{t:4,f:[{p:[84,4,2913],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.chargeMode"],s:'_0?"good":"bad"'},p:[84,17,2926]}]},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[84,55,2964]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[83,5,2868]},{t:4,n:51,f:[{p:[86,4,3026],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.chargeMode"],s:'_0?"refresh":"close"'},p:[86,21,3043]}],style:[{t:2,x:{r:["data.chargeMode"],s:'_0?"selected":null'},p:[86,71,3093]}],action:"charge"},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[87,22,3156]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}," [",{p:[90,6,3236],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.chargingStatus"],s:"_0(_1)"},p:[90,19,3249]}]},f:[{t:2,x:{r:["data.chargingStatus"],s:'_0==2?"Fully Charged":_0==1?"Charging":"Not Charging"'},p:[90,56,3286]}]},"]"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[81,4,2790]}]}," ",{p:[94,2,3445],t:7,e:"ui-display",a:{title:"Power Channels"},f:[{t:4,f:[{p:[96,3,3517],t:7,e:"ui-section",a:{label:[{t:2,r:"title",p:[96,22,3536]}],nowrap:0},f:[{p:[97,5,3560],t:7,e:"div",a:{"class":"content"},f:[{t:2,rx:{r:"adata.powerChannels",m:[{t:30,n:"@index"},"powerLoad"]},p:[97,26,3581]}]}," ",{p:[98,5,3634],t:7,e:"div",a:{"class":"content"},f:[{p:[98,26,3655],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0>=2?"good":"bad"'},p:[98,39,3668]}]},f:[{t:2,x:{r:["status"],s:'_0>=2?"On":"Off"'},p:[98,73,3702]}]}]}," ",{p:[99,5,3751],t:7,e:"div",a:{"class":"content"},f:["[",{p:[99,27,3773],t:7,e:"span",f:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"Auto":"Manual"'},p:[99,33,3779]}]},"]"]}," ",{p:[100,5,3849],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{t:4,f:[{p:[102,6,3942],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"selected":null'},p:[102,39,3975]}],action:"channel",params:[{t:2,r:"topicParams.auto",p:[103,30,4057]}]},f:["Auto"]}," ",{p:[104,6,4102],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["status"],s:'_0==2?"selected":null'},p:[104,41,4137]}],action:"channel",params:[{t:2,r:"topicParams.on",p:[105,13,4204]}]},f:["On"]}," ",{p:[106,6,4245],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["status"],s:'_0==0?"selected":null'},p:[106,37,4276]}],action:"channel",params:[{t:2,r:"topicParams.off",p:[107,13,4343]}]},f:["Off"]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[101,4,3895]}]}]}],n:52,r:"data.powerChannels",p:[95,4,3485]}," ",{p:[112,4,4439],t:7,e:"ui-section",a:{label:"Total Load"},f:[{p:[113,3,4474],t:7,e:"span",a:{"class":"bold"},f:[{t:2,r:"adata.totalLoad",p:[113,22,4493]}]}]}]}," ",{t:4,f:[{p:[117,4,4585],t:7,e:"ui-display",a:{title:"System Overrides"},f:[{p:[118,3,4626],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"overload"},f:["Overload"]}," ",{t:4,f:[{p:[120,5,4727],t:7,e:"ui-button",a:{icon:[{t:2,r:"malfIcon",p:[120,22,4744]}],state:[{t:2,x:{r:["data.malfStatus"],s:'_0==4?"disabled":null'},p:[120,43,4765]}],action:[{t:2,r:"malfAction",p:[120,97,4819]}]},f:[{t:2,r:"malfButton",p:[120,113,4835]}]}],n:50,r:"data.malfStatus",p:[119,3,4698]}]}],n:50,r:"data.siliconUser",p:[116,2,4556]}," ",{p:[124,2,4903],t:7,e:"ui-notice",f:[{p:[125,4,4919],t:7,e:"ui-section",a:{label:"Emergency Light Fallback"},f:[{t:4,f:[{p:[127,8,5020],t:7,e:"span",f:[{t:2,x:{r:["data.emergencyLights"],s:'_0?"Enabled":"Disabled"'},p:[127,14,5026]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[126,6,4971]},{t:4,n:51,f:[{p:[129,8,5106],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"emergency_lighting"},f:[{t:2,x:{r:["data.emergencyLights"],s:'_0?"Enabled":"Disabled"'},p:[129,66,5164]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}," ",{p:[133,2,5275],t:7,e:"ui-notice",f:[{p:[134,4,5291],t:7,e:"ui-section",a:{label:"Night Shift Lighting"},f:[{t:4,f:[{p:[136,8,5388],t:7,e:"span",f:[{t:2,x:{r:["data.nightshiftLights"],s:'_0?"Enabled":"Disabled"'},p:[136,14,5394]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[135,6,5339]},{t:4,n:51,f:[{p:[138,8,5475],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"toggle_nightshift"},f:[{t:2,x:{r:["data.nightshiftLights"],s:'_0?"Enabled":"Disabled"'},p:[138,65,5532]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}," ",{p:[142,2,5644],t:7,e:"ui-notice",f:[{p:[143,4,5660],t:7,e:"ui-section",a:{label:"Cover Lock"},f:[{t:4,f:[{p:[145,5,5741],t:7,e:"span",f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[145,11,5747]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[144,3,5695]},{t:4,n:51,f:[{p:[147,5,5819],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.coverLocked"],s:'_0?"lock":"unlock"'},p:[147,22,5836]}],action:"cover"},f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[147,79,5893]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}],r:"data.failTime"}]},e.exports=a.extend(r.exports)},{341:341}],365:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Alarms"},f:[{p:[2,3,31],t:7,e:"ul",f:[{t:4,f:[{p:[4,7,72],t:7,e:"li",f:[{p:[4,11,76],t:7,e:"ui-button",a:{icon:"close",style:"danger",action:"clear",params:['{"zone": "',{t:2,r:".",p:[4,83,148]},'"}']},f:[{t:2,r:".",p:[4,92,157]}]}]}],n:52,r:"data.priority",p:[3,5,41]},{t:4,n:51,f:[{p:[6,7,201],t:7,e:"li",f:[{p:[6,11,205],t:7,e:"span",a:{"class":"good"},f:["No Priority Alerts"]}]}],r:"data.priority"}," ",{t:4,f:[{p:[9,7,303],t:7,e:"li",f:[{p:[9,11,307],t:7,e:"ui-button",a:{icon:"close",style:"caution",action:"clear",params:['{"zone": "',{t:2,r:".",p:[9,84,380]},'"}']},f:[{t:2,r:".",p:[9,93,389]}]}]}],n:52,r:"data.minor",p:[8,5,275]},{t:4,n:51,f:[{p:[11,7,433],t:7,e:"li",f:[{p:[11,11,437],t:7,e:"span",a:{"class":"good"},f:["No Minor Alerts"]}]}],r:"data.minor"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],366:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.tank","data.sensors.0.long_name"],s:"_0?_1:null"},p:[1,20,19]}]},f:[{t:4,f:[{p:[3,5,102],t:7,e:"ui-subdisplay",a:{title:[{t:2,x:{r:["data.tank","long_name"],s:"!_0?_1:null"},p:[3,27,124]}]},f:[{p:[4,7,167],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[5,3,200],t:7,e:"span",f:[{t:2,x:{r:["pressure"],s:"Math.fixed(_0,2)"},p:[5,9,206]}," kPa"]}]}," ",{t:4,f:[{p:[8,9,302],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[9,11,346],t:7,e:"span",f:[{t:2,x:{r:["temperature"],s:"Math.fixed(_0,2)"},p:[9,17,352]}," K"]}]}],n:50,r:"temperature",p:[7,7,273]}," ",{t:4,f:[{p:[13,9,462],t:7,e:"ui-section",a:{label:[{t:2,r:"id",p:[13,28,481]}]},f:[{p:[14,5,495],t:7,e:"span",f:[{t:2,x:{r:["."],s:"Math.fixed(_0,2)"},p:[14,11,501]},"%"]}]}],n:52,i:"id",r:"gases",p:[12,4,434]}]}],n:52,r:"adata.sensors",p:[2,3,73]}]}," ",{t:4,f:[{p:{button:[{p:[23,5,704],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}]},t:7,e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[25,5,792],t:7,e:"ui-section",a:{label:"Input Injector"},f:[{p:[26,7,835],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputting"],s:'_0?"power-off":"close"'},p:[26,24,852]}],style:[{t:2,x:{r:["data.inputting"],s:'_0?"selected":null'},p:[26,75,903]}],action:"input"},f:[{t:2,x:{r:["data.inputting"],s:'_0?"Injecting":"Off"'},p:[27,9,968]}]}]}," ",{p:[29,5,1044],t:7,e:"ui-section",a:{label:"Input Rate"},f:[{p:[30,7,1083],t:7,e:"ui-button",a:{icon:"pencil",action:"rate"},f:[{t:2,x:{r:["adata.inputRate"],s:"Math.round(_0)"},p:[30,46,1122]}," L/s"]}]}," ",{p:[32,5,1194],t:7,e:"ui-section",a:{label:"Output Regulator"},f:[{p:[33,7,1239],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputting"],s:'_0?"power-off":"close"'},p:[33,24,1256]}],style:[{t:2,x:{r:["data.outputting"],s:'_0?"selected":null'},p:[33,76,1308]}],action:"output"},f:[{t:2,x:{r:["data.outputting"],s:'_0?"Open":"Closed"'},p:[34,9,1375]}]}]}," ",{p:[36,5,1450],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[37,7,1494],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure"},f:[{t:2,x:{r:["adata.outputPressure"],s:"Math.round(_0)"},p:[37,50,1537]}," kPa"]}]}]}],n:50,r:"data.tank",p:[20,1,618]}]},e.exports=a.extend(r.exports)},{341:341}],367:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{p:[6,3,223],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,265],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,360],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,390]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,518],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[9,11,524]}," kPa"]}]}," ",{p:[11,3,586],t:7,e:"ui-section",a:{label:"Filter"},f:[{t:4,f:[{p:[13,7,654],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[13,25,672]}],action:"filter",params:['{"mode": ',{t:2,r:"id",p:[14,42,748]},"}"]},f:[{t:2,r:"name",p:[14,51,757]}]}],n:52,r:"data.filter_types",p:[12,5,619]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],368:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{p:[6,3,223],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,265],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,360],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.set_pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,390]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,522],t:7,e:"span",f:[{t:2,x:{r:["adata.set_pressure"],s:"Math.round(_0)"},p:[9,11,528]}," kPa"]}]}," ",{p:[11,3,594],t:7,e:"ui-section",a:{label:"Node 1"},f:[{p:[12,5,627],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[12,44,666]}],action:"node1",params:'{"concentration": -0.1}'}}," ",{p:[14,5,783],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[14,39,817]}],action:"node1",params:'{"concentration": -0.01}'}}," ",{p:[16,5,935],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[16,38,968]}],action:"node1",params:'{"concentration": 0.01}'}}," ",{p:[18,5,1087],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[18,43,1125]}],action:"node1",params:'{"concentration": 0.1}'}}," ",{p:[20,5,1243],t:7,e:"span",f:[{t:2,x:{r:["adata.node1_concentration"],s:"Math.round(_0)"},p:[20,11,1249]},"%"]}]}," ",{p:[22,3,1319],t:7,e:"ui-section",a:{label:"Node 2"},f:[{p:[23,5,1352],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[23,44,1391]}],action:"node2",params:'{"concentration": -0.1}'}}," ",{p:[25,5,1508],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[25,39,1542]}],action:"node2",params:'{"concentration": -0.01}'}}," ",{p:[27,5,1660],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[27,38,1693]}],action:"node2",params:'{"concentration": 0.01}'}}," ",{p:[29,5,1812],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[29,43,1850]}],action:"node2",params:'{"concentration": 0.1}'}}," ",{p:[31,5,1968],t:7,e:"span",f:[{t:2,x:{r:["adata.node2_concentration"],s:"Math.round(_0)"},p:[31,11,1974]},"%"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],369:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{t:4,f:[{p:[7,5,250],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{p:[8,7,292],t:7,e:"ui-button",a:{icon:"pencil",action:"rate",params:'{"rate": "input"}'},f:["Set"]}," ",{p:[9,7,381],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.rate","data.max_rate"],s:'_0==_1?"disabled":null'},p:[9,37,411]}],action:"rate",params:'{"rate": "max"}'},f:["Max"]}," ",{p:[10,7,525],t:7,e:"span",f:[{t:2,x:{r:["adata.rate"],s:"Math.round(_0)"},p:[10,13,531]}," L/s"]}]}],n:50,r:"data.max_rate",p:[6,3,223]},{t:4,n:51,f:[{p:[13,5,605],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,649],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,746],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,776]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,906],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,912]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{341:341}],370:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,72],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:["Rename"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"data.borg.name",p:[1,20,19]}],button:0},f:[" ",{p:[5,2,149],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[6,4,181],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.emagged"],s:'_0?"check-square-o":"square-o"'},p:[6,21,198]}],style:[{t:2,x:{r:["data.borg.emagged"],s:'_0?"selected":null'},p:[6,83,260]}],action:"toggle_emagged"},f:["Emagged"]}," ",{p:[7,4,351],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.lockdown"],s:'_0?"check-square-o":"square-o"'},p:[7,21,368]}],style:[{t:2,x:{r:["data.borg.lockdown"],s:'_0?"selected":null'},p:[7,84,431]}],action:"toggle_lockdown"},f:["Locked down"]}," ",{p:[8,4,528],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.scrambledcodes"],s:'_0?"check-square-o":"square-o"'},p:[8,21,545]}],style:[{t:2,x:{r:["data.borg.scrambledcodes"],s:'_0?"selected":null'},p:[8,90,614]}],action:"toggle_scrambledcodes"},f:["Scrambled codes"]}]}," ",{p:[10,2,741],t:7,e:"ui-section",a:{label:"Charge"},f:[{t:4,f:[{p:[12,4,803],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.cell.maxcharge",p:[12,25,824]}],value:[{t:2,r:"data.cell.charge",p:[12,57,856]}]},f:[{t:2,x:{r:["data.cell.charge"],s:"Math.round(_0)"},p:[12,79,878]}," / ",{t:2,x:{r:["data.cell.maxcharge"],s:"Math.round(_0)"},p:[12,114,913]}]}],n:50,x:{r:["data.cell.missing"],s:"!_0"},p:[11,3,772]},{t:4,n:51,f:[{p:[14,4,974],t:7,e:"span",a:{"class":"warning"},f:["Cell missing"]},{p:[14,45,1015],t:7,e:"br"}],x:{r:["data.cell.missing"],s:"!_0"}}," ",{p:[16,3,1035],t:7,e:"ui-button",a:{icon:"pencil",action:"set_charge"},f:["Set"]},{p:[16,63,1095],t:7,e:"ui-button",a:{icon:"eject",action:"change_cell"},f:["Change"]},{p:[16,126,1158],t:7,e:"ui-button",a:{icon:"trash","class":"bad",action:"remove_cell"},f:["Remove"]}]}," ",{p:[18,2,1252],t:7,e:"ui-section",a:{label:"Radio channels"},f:[{t:4,f:[{p:[20,4,1319],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["installed"],s:'_0?"check-square-o":"square-o"'},p:[20,21,1336]}],style:[{t:2,x:{r:["installed"],s:'_0?"selected":null'},p:[20,75,1390]}],action:"toggle_radio",params:['{"channel": "',{t:2,r:"name",p:[20,154,1469]},'"}']},f:[{t:2,r:"name",p:[20,166,1481]}]}],n:52,r:"data.channels",p:[19,3,1291]}]}," ",{p:[23,2,1533],t:7,e:"ui-section",a:{label:"Module"},f:[{t:4,f:[{p:[25,4,1591],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.active_module","type"],s:'_0==_1?"check-square-o":"square-o"'},p:[25,21,1608]}],style:[{t:2,x:{r:["data.borg.active_module","type"],s:'_0==_1?"selected":null'},p:[25,97,1684]}],action:"setmodule",params:['{"module": "',{t:2,r:"type",p:[25,193,1780]},'"}']},f:[{t:2,r:"name",p:[25,205,1792]}]}],n:52,r:"data.modules",p:[24,3,1564]}]}," ",{p:[28,2,1844],t:7,e:"ui-section",a:{label:"Upgrades"},f:[{t:4,f:[{p:[30,4,1905],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["installed"],s:'_0?"check-square-o":"square-o"'},p:[30,21,1922]}],style:[{t:2,x:{r:["installed"],s:'_0?"selected":null'},p:[30,75,1976]}],action:"toggle_upgrade",params:['{"upgrade": "',{t:2,r:"type",p:[30,155,2056]},'"}']},f:[{t:2,r:"name",p:[30,167,2068]}]}],n:52,r:"data.upgrades",p:[29,3,1877]}]}," ",{p:[33,2,2120],t:7,e:"ui-section",a:{label:"Master AI"},f:[{t:4,f:[{p:[35,4,2177],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["connected"],s:'_0?"check-square-o":"square-o"'},p:[35,21,2194]}],style:[{t:2,x:{r:["connected"],s:'_0?"selected":null'},p:[35,75,2248]}],action:"slavetoai",params:['{"slavetoai": "',{t:2,r:"ref",p:[35,152,2325]},'"}']},f:[{t:2,r:"name",p:[35,163,2336]}]}],n:52,r:"data.ais",p:[34,3,2154]}]}]}," ",{p:{button:[{p:[41,3,2460],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.lawupdate"],s:'_0?"check-square-o":"square-o"'},p:[41,20,2477]}],style:[{t:2,x:{r:["data.borg.lawupdate"],s:'_0?"selected":null'},p:[41,84,2541]}],action:"toggle_lawupdate"},f:["Lawsync"]}]},t:7,e:"ui-display",a:{title:"Laws",button:0},f:[" ",{t:4,f:[{p:[44,3,2672],t:7,e:"p",f:[{t:2,r:".",p:[44,6,2675]}]}],n:52,r:"data.laws",p:[43,2,2649]}]}]},e.exports=a.extend(r.exports)},{341:341}],371:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,100]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,145]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,181]}]}," ",{p:[4,5,233],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,285]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,330]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,410],t:7,e:"ui-section",f:[{p:[7,5,428],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,518],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,603],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,609]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,643]}]}," ",{p:[10,5,689],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,772],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,875],t:7,e:"ui-section",f:[{p:[14,7,895],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,999],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1105],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],372:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,40]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,82],t:7,e:"ui-display",a:{title:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,167],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,200],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,250]}]}]}," ",{p:[11,3,298],t:7,e:"ui-section",a:{label:"Controls"},f:[{t:4,f:[{p:[13,3,356],t:7,e:"ui-notice",f:[{p:[14,4,372],t:7,e:"span",f:["Bluespace Artillery firing protocols must be globally unlocked from two keycard authentication devices first!"]}]}],n:50,x:{r:["data.unlocked"],s:"!_0"},p:[12,2,330]},{t:4,n:51,f:[{p:[17,3,525],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[17,36,558]}],action:"fire"},f:["FIRE!"]}],x:{r:["data.unlocked"],s:"!_0"}}]}],n:50,r:"data.connected",p:[7,3,141]}," ",{t:4,f:[{p:[22,3,694],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[23,7,734],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[21,3,667]}]}]},e.exports=a.extend(r.exports)},{341:341}],373:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,185],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,266],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,301],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,307]}," kPa"]}]}," ",{p:[11,3,373],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,404],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,417]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,462]}]}]}," ",{t:4,f:[{p:[15,3,573],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,608],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,625]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,680]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,722]}]}]}],n:50,r:"data.isPrototype",p:[14,3,544]}]}," ",{p:[22,1,839],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,869],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,912],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,925]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,959]}],value:[{t:2,r:"data.releasePressure",p:[25,14,1002]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1028]}," kPa"]}]}," ",{p:[27,3,1099],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1144],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1177]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1333],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1364]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1511],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1606],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1636]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1798],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1830],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1847]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1901]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1995]}]}]}]}," ",{t:4,f:[{p:[42,1,2090],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2155],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2196],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2229]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2358],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2389]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2520],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2552]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2637],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2667]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2133]}," ",{p:[55,3,2833],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2866],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2899]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2969]}]}," ",{p:[59,2,3017],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3064],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3070]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2062]},{p:{button:[{t:4,f:[{p:[69,7,3277],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3308]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3242]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3442],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3473]}]}," ",{p:[76,3,3519],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3553]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3411]},{t:4,n:51,f:[{p:[80,3,3635],t:7,e:"ui-section",f:[{p:[81,4,3652],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{341:341}],374:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,158],t:7,e:"ui-display",a:{title:"Cargo"},f:[{p:[12,3,188],t:7,e:"ui-section",a:{label:"Shuttle"},f:[{t:4,f:[{p:[14,7,270],t:7,e:"ui-button",a:{action:"send"},f:[{t:2,r:"data.location",p:[14,32,295]}]}],n:50,x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"},p:[13,5,222]},{t:4,n:51,f:[{p:[16,7,346],t:7,e:"span",f:[{t:2,r:"data.location",p:[16,13,352]}]}],x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"}}]}," ",{p:[19,3,410],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[20,5,444],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[20,11,450]}]}]}," ",{p:[22,3,506],t:7,e:"ui-section",a:{label:"CentCom Message"},f:[{p:[23,7,550],t:7,e:"span",f:[{t:2,r:"data.message",p:[23,13,556]}]}]}," ",{t:4,f:[{p:[26,5,644],t:7,e:"ui-section",a:{label:"Loan"},f:[{t:4,f:[{p:[28,9,716],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.away","data.docked"],s:'_0&&_1?null:"disabled"'},p:[29,17,744]}],action:"loan"},f:["Loan Shuttle"]}],n:50,x:{r:["data.loan_dispatched"],s:"!_0"},p:[27,7,677]},{t:4,n:51,f:[{p:[32,9,868],t:7,e:"span",a:{"class":"bad"},f:["Loaned to CentCom"]}],x:{r:["data.loan_dispatched"],s:"!_0"}}]}],n:50,x:{r:["data.loan","data.requestonly"],s:"_0&&!_1"},p:[25,3,600]}]}," ",{t:4,f:[{p:{button:[{p:[40,7,1066],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.cart.length"],s:'_0?null:"disabled"'},p:[40,38,1097]}],action:"clear"},f:["Clear"]}]},t:7,e:"ui-display",a:{title:"Cart",button:0},f:[" ",{t:4,f:[{p:[43,7,1222],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[44,9,1263],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[44,31,1285]}]}," ",{p:[45,9,1307],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[45,30,1328]}]}," ",{p:[46,9,1354],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[46,30,1375]}," Credits"]}," ",{p:[47,9,1407],t:7,e:"div",a:{"class":"content"},f:[{p:[48,11,1440],t:7,e:"ui-button", -a:{icon:"minus",action:"remove",params:['{"id": "',{t:2,r:"id",p:[48,67,1496]},'"}']}}]}," ",{t:4,f:[{p:[51,8,1554],t:7,e:"div",a:{"class":"content"},f:[{p:[51,29,1575],t:7,e:"b",f:["(Paid privately)"]}]}],n:50,r:"paid",p:[50,9,1533]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[55,7,1662],t:7,e:"span",f:["Nothing in Cart"]}],r:"data.cart"}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[37,1,972]},{p:{button:[{t:4,f:[{p:[62,7,1831],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[62,38,1862]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[61,5,1798]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[66,5,2004],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[67,7,2043],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[67,29,2065]}]}," ",{p:[68,7,2085],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[68,28,2106]}]}," ",{p:[69,7,2130],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[69,28,2151]}," Credits"]}," ",{p:[70,7,2181],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[70,31,2205]}]}," ",{p:[71,7,2230],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[71,37,2260]}]}," ",{t:4,f:[{p:[73,9,2319],t:7,e:"div",a:{"class":"content"},f:[{p:[74,11,2352],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[74,68,2409]},'"}']}}," ",{p:[75,11,2432],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[75,65,2486]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[72,7,2284]}]}],n:52,r:"data.requests",p:[65,3,1975]},{t:4,n:51,f:[{p:[80,7,2569],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[83,1,2625],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[83,16,2640]}]},f:[{t:4,f:[{p:[85,5,2683],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[85,16,2694]}]},f:[{t:4,f:[{p:[87,9,2737],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[87,28,2756]}],candystripe:0,right:0},f:[{p:[88,11,2796],t:7,e:"ui-button",a:{tooltip:[{t:2,r:"desc",p:[88,31,2816]}],"tooltip-side":"left",action:"add",params:['{"id": "',{t:2,r:"id",p:[88,90,2875]},'","self_paid": "0"}']},f:[{t:2,r:"cost",p:[88,117,2902]}," Credits"]}," ",{p:[89,5,2936],t:7,e:"ui-button",a:{tooltip:"Pay with your bank account instead of the cargo budget. Costs 10% extra for handling fees.","tooltip-side":"left",action:"add",params:['{"id": "',{t:2,r:"id",p:[89,166,3097]},'","self_paid": "1"}']},f:["Buy Directly"]}]}],n:52,r:"packs",p:[86,7,2712]}]}],n:52,r:"data.supplies",p:[84,3,2654]}]}]},e.exports=a.extend(r.exports)},{341:341}],375:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[12,1,174],t:7,e:"ui-notice",f:[{t:4,f:[{p:[14,5,220],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[15,7,263],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[15,24,280]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[15,75,331]}]}]}],n:50,r:"data.siliconUser",p:[13,3,189]},{t:4,n:51,f:[{p:[18,5,422],t:7,e:"span",f:["Swipe a QM-Level ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[18,39,456]}," this interface."]}],r:"data.siliconUser"}]}," ",{t:4,f:[{p:[23,3,568],t:7,e:"ui-display",a:{title:"Express Cargo Console"},f:[{p:[25,5,618],t:7,e:"ui-section",a:{label:"Landing Location"},f:[{p:[26,7,663],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.usingBeacon"],s:'_0?null:"selected"'},p:[26,25,681]}],action:"LZCargo"},f:["Cargo Bay"]}," ",{p:[27,7,770],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.hasBeacon","data.usingBeacon"],s:'_0?_1?"selected":null:"disabled"'},p:[27,25,788]}],action:"LZBeacon"},f:[{t:2,r:"data.beaconzone",p:[27,116,879]}," (",{t:2,r:"data.beaconName",p:[27,137,900]},")"]}," ",{p:[28,7,940],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.canBuyBeacon"],s:'_0?null:"disabled"'},p:[28,25,958]}],action:"printBeacon"},f:[{t:2,r:"data.printMsg",p:[28,90,1023]}]}]}," ",{p:[31,5,1079],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[32,7,1115],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[32,13,1121]}]}]}," ",{p:[35,5,1183],t:7,e:"ui-section",a:{label:"Notice"},f:[{p:[36,7,1218],t:7,e:"span",f:[{t:2,r:"data.message",p:[36,13,1224]}]}]}]}," ",{p:[39,3,1287],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[39,18,1302]}]},f:[{t:4,f:[{p:[41,7,1349],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[41,18,1360]}]},f:[{t:4,f:[{p:[43,11,1407],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[43,30,1426]}],candystripe:0,right:0},f:[{p:[44,13,1468],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.canBeacon"],s:'_0?null:"disabled"'},p:[44,31,1486]}],tooltip:[{t:2,r:"desc",p:[44,80,1535]}],"tooltip-side":"left",action:"add",params:['{"id": "',{t:2,r:"id",p:[44,139,1594]},'"}']},f:[{t:2,r:"cost",p:[44,149,1604]}," Credits ",{t:2,r:"data.beaconError",p:[44,166,1621]}]}]}],n:52,r:"packs",p:[42,9,1380]}]}],n:52,r:"data.supplies",p:[40,5,1318]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[22,1,543]}]},e.exports=a.extend(r.exports)},{341:341}],376:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Cellular Emporium",button:0},f:[{p:[2,3,49],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,82]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,169],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,226]}]}]}," ",{p:[8,1,293],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,335],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,354]}],candystripe:0,right:0},f:[{p:[11,5,388],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,394]}]}," ",{p:[12,5,415],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,421]}]}," ",{p:[13,5,446],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,458]}]}," ",{p:[14,5,483],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,508]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,615]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,635]}]}]}],n:52,r:"data.abilities",p:[9,1,307]},{t:4,f:[{p:[23,3,738],t:7,e:"span",a:{"class":"warning"},f:["No abilities available."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{341:341}],377:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,5,17],t:7,e:"span",f:["To use this, simply spawn the atoms you want in one of the four Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."]}]}," ",{p:[5,1,304],t:7,e:"ui-display",a:{title:"Centcom Pod Customization (to be used against helen weinstein)"},f:[{p:[6,4,392],t:7,e:"ui-section",a:{label:"Which supplypod bay will you use?"},f:[{p:[7,9,458],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.bay"],s:'_0==1?"selected":null'},p:[7,27,476]}],action:"bay1"},f:["Bay #1"]}," ",{p:[8,9,557],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.bay"],s:'_0==2?"selected":null'},p:[8,27,575]}],action:"bay2"},f:["Bay #2"]}," ",{p:[9,9,656],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.bay"],s:'_0==3?"selected":null'},p:[9,27,674]}],action:"bay3"},f:["Bay #3"]}," ",{p:[10,9,755],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.bay"],s:'_0==4?"selected":null'},p:[10,27,773]}],action:"bay4"},f:["Bay #4"]}]}," ",{p:[13,5,871],t:7,e:"ui-section",a:{label:"Useful teleport tools!"},f:[{p:[14,9,926],t:7,e:"ui-button",a:{action:"teleportCentcom"},f:["Teleport to Centcom's Supplypod Loading Bay"]}," ",{p:[15,9,1027],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.oldArea"],s:'_0?null:"disabled"'},p:[15,27,1045]}],action:"teleportBack"},f:["Teleport Back to ",{t:2,x:{r:["data.oldArea"],s:'_0?_0:"where you were"'},p:[15,103,1121]}]}]}," ",{p:[18,5,1210],t:7,e:"ui-section",a:{label:"Keep stuff after launching?"},f:[{p:[19,9,1268],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.launchClone"],s:'_0?"selected":null'},p:[19,27,1286]}],action:"launchClone","tooltip-side":"left",tooltip:"Choosing this will create a duplicate of the item to be launched in Centcom, allowing you to send one type of item multiple times. Either way, the atoms are forceMoved into the supplypod after it lands (but before it opens)."},f:["Clone and Launch"]}]}," ",{p:[23,5,1668],t:7,e:"ui-section",a:{label:"Launch all at once?"},f:[{p:[24,9,1718],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.launchChoice"],s:'_0==1?"selected":null'},p:[24,27,1736]}],action:"launchOrdered","tooltip-side":"left",tooltip:'Instead of launching everything in the bay at once, this will "scan" things (one turf-full at a time) in order, left to right and top to bottom. Refreshing will reset the "scanner" to the top-leftmost position.'},f:["Ordered"]}," ",{p:[26,9,2086],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.launchChoice"],s:'_0==2?"selected":null'},p:[26,27,2104]}],action:"launchRandom","tooltip-side":"left",tooltip:"Instead of launching everything in the bay at once, this will launch one random turf of items at a time."},f:["Random"]}]}," ",{p:[30,5,2362],t:7,e:"ui-section",a:{label:"Add an explosion?"},f:[{p:[31,9,2410],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.explosionChoice"],s:'_0==1?"selected":null'},p:[31,27,2428]}],action:"explosionCustom","tooltip-side":"left",tooltip:"This will cause an explosion of whatever size you like (including flame range) to occur as soon as the supplypod lands. Dont worry, supply-pods are explosion-proof!"},f:["Custom Size"]}," ",{p:[33,9,2740],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.explosionChoice"],s:'_0==2?"selected":null'},p:[33,27,2758]}],action:"explosionBus","tooltip-side":"left",tooltip:"This will cause a maxcap explosion (dependent on server config) to occur as soon as the supplypod lands. Dont worry, supply-pods are explosion-proof!"},f:["Adminbus"]}]}," ",{p:[37,5,3066],t:7,e:"ui-section",a:{label:"Extra damage?","(default":"None)"},f:[{p:[38,9,3127],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.damageChoice"],s:'_0==1?"selected":null'},p:[38,27,3145]}],action:"damageCustom","tooltip-side":"left",tooltip:"Anyone caught under the pod when it lands will be dealt this amount of brute damage. Sucks to be them!"},f:["Custom Damage"]}," ",{p:[40,9,3392],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.damageChoice"],s:'_0==2?"selected":null'},p:[40,27,3410]}],action:"damageGib","tooltip-side":"left",tooltip:"This will attempt to gib any mob caught under the pod when it lands, as well as dealing a nice 5000 brute damage. Ya know, just to be sure!"},f:["Gib"]}]}," ",{p:[44,5,3698],t:7,e:"ui-section",a:{label:"Extra effects?"},f:[{p:[45,9,3743],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectStun"],s:'_0?"selected":null'},p:[45,27,3761]}],action:"effectStun","tooltip-side":"left",tooltip:"Anyone who is on the turf when the supplypod is launched will be stunned until the supplypod lands. They cant get away that easy!"},f:["Stun"]}," ",{p:[47,9,4017],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectLimb"],s:'_0?"selected":null'},p:[47,27,4035]}],action:"effectLimb","tooltip-side":"left",tooltip:"This will cause anyone caught under the pod to lose a limb, excluding their head."},f:["Delimb"]}," ",{p:[49,9,4245],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectOrgans"],s:'_0?"selected":null'},p:[49,27,4263]}],action:"effectOrgans","tooltip-side":"left",tooltip:"This will cause anyone caught under the pod to lose all their limbs and organs in a spectacular fashion."},f:["Yeet Organs"]}," ",{p:[51,9,4505],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectBluespace"],s:'_0?"selected":null'},p:[51,27,4523]}],action:"effectBluespace","tooltip-side":"left",tooltip:"Gives the supplypod an advanced Bluespace Recyling Device. After opening, the supplypod will be warped directly to the surface of a nearby NT-designated trash planet (/r/ss13)."},f:["Bluespace"]}," ",{p:[53,9,4841],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectStealth"],s:'_0?"selected":null'},p:[53,27,4859]}],action:"effectStealth","tooltip-side":"left",tooltip:'This hides the red target icon from appearing when you launch the supplypod. Combos well with the "Invisible" style. Sneak attack, go!'},f:["Stealth"]}," ",{p:[55,9,5129],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectQuiet"],s:'_0?"selected":null'},p:[55,27,5147]}],action:"effectQuiet","tooltip-side":"left",tooltip:"This will keep the supplypod from making any sounds, except for those specifically set by admins in the Sound section."},f:["Quiet Landing"]}," ",{p:[57,9,5403],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectReverse"],s:'_0?"selected":null'},p:[57,27,5421]}],action:"effectReverse","tooltip-side":"left",tooltip:"This pod will not send any items. Instead, after landing, the supplypod will close (similar to a normal closet closing), and then launch back to the right centcom bay to drop off any new contents."},f:["Reverse Mode"]}," ",{p:[59,9,5758],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectMissile"],s:'_0?"selected":null'},p:[59,27,5776]}],action:"effectMissile","tooltip-side":"left",tooltip:"This pod will not send any items. Instead, it will immediatley delete after landing (Similar visually to setting openDelay & departDelay to 0, but this looks nicer). Useful if you just wanna fuck some shit up. Combos well with the Missile style."},f:["Missile Mode"]}," ",{p:[61,9,6162],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectCircle"],s:'_0?"selected":null'},p:[61,27,6180]}],action:"effectCircle","tooltip-side":"left",tooltip:"This will make the supplypod come in from any angle. Im not sure why this feature exists, but here it is."},f:["Any Descent Angle"]}," ",{p:[63,9,6429],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectBurst"],s:'_0?"selected":null'},p:[63,27,6447]}],action:"effectBurst","tooltip-side":"left",tooltip:"This will make each click launch 5 supplypods inaccuratly around the target turf (a 3x3 area). Combos well with the Missle Mode if you dont want shit lying everywhere after."},f:["Machine Gun Mode"]}," ",{p:[65,9,6761],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectTarget"],s:'_0?"selected":null'},p:[65,27,6779]}],action:"effectTarget","tooltip-side":"left",tooltip:"This will make the supplypod target a specific atom, instead of the mouses position. Smiting does this automatically!"},f:["Specific Target"]}," ",{p:[67,9,7038],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectName"],s:'_0?"selected":null'},p:[67,27,7056]}],action:"effectName","tooltip-side":"left",tooltip:"Allows you to add a custom name and description."},f:["Custom Name/Desc"]}," ",{p:[69,9,7243],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectAnnounce"],s:'_0?"selected":null'},p:[69,27,7261]}],action:"effectAnnounce","tooltip-side":"left",tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb shit is aboutta come outta the pod."},f:["Alert Ghosts"]}]}," ",{p:[72,5,7512],t:7,e:"ui-section",a:{label:"Sound?"},f:[{p:[73,9,7549],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.fallingSound"],s:'_0?"selected":null'},p:[73,27,7567]}],action:"fallingSound","tooltip-side":"left",tooltip:"Choose a sound to play as the pod falls. Note that for this to work right you should know the exact length of the sound, in seconds."},f:["Custom Falling Sound"]}," ",{p:[75,9,7846],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.landingSound"],s:'_0?"selected":null'},p:[75,27,7864]}],action:"landingSound","tooltip-side":"left",tooltip:"Choose a sound to play when the pod lands."},f:["Custom Landing Sound"]}," ",{p:[77,9,8053],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.openingSound"],s:'_0?"selected":null'},p:[77,27,8071]}],action:"openingSound","tooltip-side":"left",tooltip:"Choose a sound to play when the pod opens."},f:["Custom Opening Sound"]}," ",{p:[79,9,8260],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.leavingSound"],s:'_0?"selected":null'},p:[79,27,8278]}],action:"leavingSound","tooltip-side":"left",tooltip:"Choose a sound to play when the pod departs (whether that be delection in the case of a bluespace pod, or leaving for centcom for a reversing pod)."},f:["Custom Leaving Sound"]}," ",{p:[81,9,8572],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.soundVolume"],s:'_0?"selected":null'},p:[81,27,8590]}],action:"soundVolume","tooltip-side":"left",tooltip:"Choose the volume for the sound to play at. Default values are between 1 and 100, but hey, do whatever. Im a tooltip, not a cop."},f:["Admin Sound Volume"]}]}," ",{p:[85,5,8878],t:7,e:"ui-section",a:{label:"Delay timers?"},f:[{p:[86,9,8922],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.fallDuration"],s:'_0!=4?"selected":null'},p:[86,27,8940]}],action:"fallDuration","tooltip-side":"left",tooltip:"Set how long the animation for the pod falling lasts. Create dramatic, slow falling pods!"},f:["Custom Falling Duration"]}," ",{p:[88,9,9184],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.landingDelay"],s:'_0!=20?"selected":null'},p:[88,27,9202]}],action:"landingDelay","tooltip-side":"left",tooltip:"Choose the amount of time it takes for the supplypod to hit the station. By default this value is 0.5 seconds."},f:["Custom Landing Time"]}," ",{p:[90,10,9465],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.openingDelay"],s:'_0!=30?"selected":null'},p:[90,28,9483]}],action:"openingDelay","tooltip-side":"left",tooltip:"Choose the amount of time it takes for the supplypod to open after landing. Useful for giving whatevers inside the pod a nice dramatic entrance! By default this value is 3 seconds."},f:["Custom Opening Time"]}," ",{p:[92,9,9815],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.departureDelay"],s:'_0!=30?"selected":null'},p:[92,27,9833]}],action:"departureDelay","tooltip-side":"left",tooltip:"Choose the amount of time it takes for the supplypod to leave after landing. By default this value is 3 seconds."},f:["Custom Leaving Time"]}]}," ",{p:[96,5,10118],t:7,e:"ui-section",a:{label:"Style?"},f:[{p:[97,9,10155],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==1?"selected":null'},p:[97,27,10173]}],action:"styleStandard","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to your standard Nanotrasen black and orange. Same color scheme as the normal station-used supplypods."},f:["Standard"]}," ",{p:[99,9,10476],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==2?"selected":null'},p:[99,27,10494]}],action:"styleBluespace","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to the same as the stations upgraded blue-and-white Bluespace Supplypods."},f:["Advanced"]}," ",{p:[101,9,10769],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==4?"selected":null'},p:[101,27,10787]}],action:"styleSyndie","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to a menacing black and blood-red. Great for sending meme-ops in style!"},f:["Syndicate"]}," ",{p:[103,9,11058],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==5?"selected":null'},p:[103,27,11076]}],action:"styleBlue","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to a menacing black and dark blue. Great for sending deathsquads in style!"},f:["Deathsquad"]}," ",{p:[105,10,11350],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==6?"selected":null'},p:[105,28,11368]}],action:"styleCult","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom style to a blood and rune covered cult pod!"},f:["Cult Pod"]}," ",{p:[107,9,11595],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==7?"selected":null'},p:[107,27,11613]}],action:"styleMissile","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom style to a large missile. Combos well with a missile mode, so the missile doesnt stick around after landing."},f:["Missile"]}," ",{p:[109,9,11907],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==8?"selected":null'},p:[109,27,11925]}],action:"styleSMissile","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom style to a large blood-red missile. Combos well with missile mode, so the missile doesnt stick around after landing."},f:["Syndicate Missile"]}," ",{p:[111,9,12238],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==9?"selected":null'},p:[111,27,12256]}],action:"styleBox","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom style to a large, dark-green military supply crate."},f:["Supply Crate"]}," ",{p:[113,9,12494],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==10?"selected":null'},p:[113,27,12512]}],action:"styleHONK","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to a colorful, clown inspired look."},f:["HONK"]}," ",{p:[115,9,12741],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==11?"selected":null'},p:[115,27,12759]}],action:"styleFruit","tooltip-side":"left",tooltip:"for when an orange is angry"},f:["Fruit~"]}," ",{p:[117,9,12922],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==12?"selected":null'},p:[117,27,12940]}],action:"styleInvisible","tooltip-side":"left",tooltip:'Makes the supplypod invisible! Useful for when you want to use this feature with a gateway or something. Combos well with the "Stealth" and "Quiet Landing" effects.'},f:["Invisible"]}," ",{p:[119,9,13246],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==13?"selected":null'},p:[119,27,13264]}],action:"styleGondola","tooltip-side":"left",tooltip:"this gondola can control when he wants to deliver his supplies if he has a smart enough mind, so offer up his body to ghosts for maximum enjoyment. (Make sure to turn off bluespace and set a arbitrarily high open-time if you do!)"},f:["Gondola (alive)"]}]}]}," ",{p:[124,1,13668],t:7,e:"ui-display",f:[{p:[125,5,13686],t:7,e:"ui-section",a:{label:[{t:2,r:"data.numObjects",p:[125,26,13707]}," turfs with launchable atoms found in Bay #",{t:2,r:"data.bay",p:[125,88,13769]}]},f:[{p:[126,9,13793],t:7,e:"ui-button",a:{action:"refresh","tooltip-side":"right",tooltip:"Manually refreshes the possible things to launch in the pod bay."},f:["Refresh Pod Bay"]}]}," ",{p:[130,5,13980],t:7,e:"ui-section",f:[{p:[131,9,14002],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.giveLauncher"],s:'_0?"selected":null'},p:[131,27,14020]}],action:"giveLauncher","tooltip-side":"right",tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN"},f:["Enter Launch Mode"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],378:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,31],t:7,e:"ui-section",a:{label:"Energy"},f:[{p:[3,5,64],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,85]}],value:[{t:2,r:"data.energy",p:[3,53,112]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,129]}," Units"]}]}]}," ",{p:[6,1,206],t:7,e:"ui-display",a:{title:"Saved Recipes",button:0},f:[{p:[7,3,251],t:7,e:"ui-section",f:[{p:[8,5,269],t:7,e:"ui-button",a:{icon:"plus",action:"add_recipe"},f:["Add Recipe"]}," ",{p:[9,2,337],t:7,e:"ui-button",a:{icon:"minus",action:"clear_recipes"},f:["Clear Recipes"]}," ",{t:4,f:[{p:[11,7,445],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense_recipe",params:['{"recipe": "',{t:2,r:"contents",p:[11,80,518]},'"}']},f:[{t:2,r:"recipe_name",p:[11,96,534]}]}],n:52,r:"data.recipes",p:[10,5,415]}]}]}," ",{p:{button:[{t:4,f:[{p:[18,7,719],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[18,37,749]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[18,114,826]},"}"]},f:[{t:2,r:".",p:[18,122,834]}]}],n:52,r:"data.beakerTransferAmounts",p:[17,5,675]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[21,3,886],t:7,e:"ui-section",f:[{t:4,f:[{p:[23,7,936],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[23,74,1003]},'"}']},f:[{t:2,r:"title",p:[23,84,1013]}]}],n:52,r:"data.chemicals",p:[22,5,904]}]}]}," ",{p:{button:[{t:4,f:[{p:[30,7,1190],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[30,66,1249]},"}"]},f:[{t:2,r:".",p:[30,74,1257]}]}],n:52,r:"data.beakerTransferAmounts",p:[29,5,1146]}," ",{p:[32,5,1295],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[32,36,1326]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[34,3,1423],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[36,7,1493],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[36,13,1499]},"/",{t:2,r:"data.beakerMaxVolume",p:[36,55,1541]}," Units"]}," ",{p:[37,7,1586],t:7,e:"br"}," ",{t:4,f:[{p:[39,9,1639],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[39,52,1682]}," units of ",{t:2,r:"name",p:[39,87,1717]}]},{p:[39,102,1732],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[38,7,1599]},{t:4,n:51,f:[{p:[41,9,1763],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[35,5,1458]},{t:4,n:51,f:[{p:[44,7,1839],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],379:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[2,3,35],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,84]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,137]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,186]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,249]}]}]}," ",{p:[8,3,314],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,346],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,421]}," K"]}]}]}," ",{p:{button:[{p:[14,5,564],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,595]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,692],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,762],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,781]}," K"]}," ",{p:[19,7,831],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,885],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,928]}," units of ",{t:2,r:"name",p:[21,87,963]}]},{p:[21,102,978],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,845]},{t:4,n:51,f:[{p:[23,9,1009],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,727]},{t:4,n:51,f:[{p:[26,7,1085],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],380:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,32],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,87]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,143]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,199]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,340],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,426],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,445]}," units of ",{t:2,r:"name",p:[13,60,480]}],nowrap:0},f:[{p:[14,7,505],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,555],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,608]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,653],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,706]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,751],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,804]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,851],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,904]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,954],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1007]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1058],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1102]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,390]},{t:4,n:51,f:[{p:[24,5,1184],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,357]},{t:4,n:51,f:[{p:[27,5,1255],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1343],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1374],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1412]}]},f:["Destroy"]}," ",{p:[34,3,1470],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1508]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1577],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1629],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1648]}," units of ",{t:2,r:"name",p:[37,59,1683]}],nowrap:0},f:[{p:[38,6,1707],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1756],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1811]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1855],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1910]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1954],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2009]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2055],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2110]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2159],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2214]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2264],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2308]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1594]}]}]}," ",{t:4,f:[{p:[52,3,2444],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2534],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2568]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2617]}]}," ",{p:[55,5,2698],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2720]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2744]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2497]},{t:4,n:51,f:[{p:[57,5,2796],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2860],t:7,e:"br"}," ",{p:[61,4,2870],t:7,e:"br"}," ",{p:[62,4,2880],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[62,63,2939]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3023],t:7,e:"br"}," ",{p:[64,4,3033],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"' -},p:[64,63,3092]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3176],t:7,e:"br"}," ",{p:[66,4,3186],t:7,e:"br"}," ",{p:[67,4,3196],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[67,64,3256]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3341],t:7,e:"br"}," ",{p:[69,4,3351],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[69,64,3411]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3497],t:7,e:"br"}," ",{p:[71,4,3507],t:7,e:"br"}," ",{p:[72,4,3517],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[72,65,3578]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3664],t:7,e:"br"}," ",{p:[74,4,3674],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[74,65,3735]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2421]},{t:4,n:51,f:[{p:[79,3,3857],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3912],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[80,63,3971]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4055],t:7,e:"br"}," ",{p:[82,4,4065],t:7,e:"br"}," ",{p:[83,4,4075],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[83,65,4136]}]},f:["Create Bottle (max 50µ)"]}]}],x:{r:["data.condi"],s:"!_0"}}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,1,0]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.screen"],s:'_0=="analyze"'},f:[{p:[87,2,4284],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4302]}]},f:[{p:[88,3,4333],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4381],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4424]}]}," ",{p:[90,3,4467],t:7,e:"br"}," ",{p:[91,3,4476],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4518],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4538]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4584]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4612]}]}," ",{p:[93,3,4649],t:7,e:"br"}," ",{p:[94,3,4658],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4700],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4722]}]}," ",{p:[96,3,4759],t:7,e:"br"}," ",{p:[97,3,4768],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4824],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4846]},"µ/minute"]}," ",{p:[99,3,4894],t:7,e:"br"}," ",{p:[100,3,4903],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4958],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4980]}]}," ",{p:[102,3,5017],t:7,e:"br"}," ",{p:[103,3,5026],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5082],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5104]}]}," ",{p:[105,3,5142],t:7,e:"br"}," ",{p:[106,3,5151],t:7,e:"br"}," ",{p:[107,3,5160],t:7,e:"ui-button",a:{action:"goScreen",params:'{"screen": "home"}'},f:["Back"]}]}]}],x:{r:["data.screen"],s:'_0=="home"'}}]},e.exports=a.extend(r.exports)},{341:341}],381:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Recipient Contents"},f:[{p:[2,2,42],t:7,e:"ui-section",f:[{p:[3,3,58],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[3,34,89]}],action:"ejectBeaker"},f:["Eject"]}," ",{p:[4,3,176],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[4,35,208]}],action:"input"},f:["Input"]}," ",{p:[5,3,289],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,35,321]}],action:"amount"},f:[{t:2,r:"data.amount",p:[5,96,382]},"U"]}," ",{p:[6,3,414],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"disabled":null'},p:[6,33,444]}],action:"makecup"},f:["Create Beaker"]}]}]}," ",{p:[9,1,564],t:7,e:"ui-display",a:{title:"Recipient"},f:[{p:[10,2,597],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[12,4,662],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[12,10,668]},"/",{t:2,r:"data.beakerMaxVolume",p:[12,52,710]}," Units"]}," ",{t:4,f:[{p:[14,5,788],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[14,48,831]}," units of ",{t:2,r:"name",p:[14,83,866]}]},{p:[14,98,881],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[13,4,752]},{t:4,n:51,f:[{p:[16,5,905],t:7,e:"span",a:{"class":"bad"},f:["Recipient Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,3,630]},{t:4,n:51,f:[{p:[19,4,976],t:7,e:"span",a:{"class":"average"},f:["No Recipient"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],382:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,43]}]}]}," ",{t:4,f:[{p:[5,3,149],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[6,3,165]}," ",{t:4,f:[{p:[8,4,231],t:7,e:"br"},{p:[8,8,235],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[8,63,290]},'"}']},f:[{t:3,r:"name",p:[8,75,302]}," - ",{t:3,r:"desc",p:[8,88,315]}]}],n:52,r:"data.recollection_categories",p:[7,3,188]}," ",{t:3,r:"data.rec_section",p:[10,3,354]}," ",{t:3,r:"data.rec_binds",p:[11,3,380]}]}],n:50,r:"data.recollection",p:[4,1,120]},{t:4,n:51,f:[{p:[14,2,431],t:7,e:"ui-display",a:{title:"Power",button:0},f:[{p:[15,4,469],t:7,e:"ui-section",f:[{t:3,r:"data.power",p:[16,6,488]}]}]}," ",{p:[19,2,541],t:7,e:"ui-display",f:[{p:[20,3,557],t:7,e:"ui-section",f:[{p:[21,4,574],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[21,22,592]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[22,4,715],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[22,22,733]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[23,4,857],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[23,22,875]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[24,4,1014],t:7,e:"br"},{t:3,r:"data.tier_info",p:[24,8,1018]}]}," ",{p:[26,3,1059],t:7,e:"ui-section",f:[{t:3,r:"data.scripturecolors",p:[27,4,1076]}]},{p:[28,16,1119],t:7,e:"hr"}," ",{p:[29,3,1127],t:7,e:"ui-section",f:[{t:4,f:[{p:[31,4,1172],t:7,e:"div",f:[{p:[31,9,1177],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[31,29,1197]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[31,99,1267]},'"}']},f:["Recite ",{t:3,r:"required",p:[31,118,1286]}]}," ",{t:4,f:[{t:4,f:[{p:[34,6,1362],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[34,53,1409]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[34,72,1428]}]}],n:50,r:"bound",p:[33,5,1342]},{t:4,n:51,f:[{p:[36,6,1472],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[36,53,1519]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[32,6,1319]}," ",{t:3,r:"name",p:[39,6,1586]}," ",{t:3,r:"descname",p:[39,17,1597]}," ",{t:3,r:"invokers",p:[39,32,1612]}]}],n:52,r:"data.scripture",p:[30,3,1143]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{341:341}],383:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Codex Gigas"},f:[{p:[2,2,35],t:7,e:"ui-section",f:[{t:2,r:"data.name",p:[3,3,51]}]}," ",{p:[5,5,86],t:7,e:"ui-section",a:{label:"Prefix"},f:[{p:[6,3,117],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[6,22,136]}],action:"Dark "},f:["Dark"]}," ",{p:[7,3,221],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[7,22,240]}],action:"Hellish "},f:["Hellish"]}," ",{p:[8,3,331],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[8,22,350]}],action:"Fallen "},f:["Fallen"]}," ",{p:[9,3,439],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[9,22,458]}],action:"Fiery "},f:["Fiery"]}," ",{p:[10,3,545],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[10,22,564]}],action:"Sinful "},f:["Sinful"]}," ",{p:[11,3,653],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[11,22,672]}],action:"Blood "},f:["Blood"]}," ",{p:[12,3,759],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[12,22,778]}],action:"Fluffy "},f:["Fluffy"]}]}," ",{p:[14,5,888],t:7,e:"ui-section",a:{label:"Title"},f:[{p:[15,3,918],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[15,22,937]}],action:"Lord "},f:["Lord"]}," ",{p:[16,3,1022],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[16,22,1041]}],action:"Prelate "},f:["Prelate"]}," ",{p:[17,3,1132],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[17,22,1151]}],action:"Count "},f:["Count"]}," ",{p:[18,3,1238],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[18,22,1257]}],action:"Viscount "},f:["Viscount"]}," ",{p:[19,3,1350],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[19,22,1369]}],action:"Vizier "},f:["Vizier"]}," ",{p:[20,3,1458],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[20,22,1477]}],action:"Elder "},f:["Elder"]}," ",{p:[21,3,1564],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[21,22,1583]}],action:"Adept "},f:["Adept"]}]}," ",{p:[23,5,1691],t:7,e:"ui-section",a:{label:"Name"},f:[{p:[24,3,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[24,22,1739]}],action:"hal"},f:["hal"]}," ",{p:[25,3,1821],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[25,22,1840]}],action:"ve"},f:["ve"]}," ",{p:[26,3,1920],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[26,22,1939]}],action:"odr"},f:["odr"]}," ",{p:[27,3,2021],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[27,22,2040]}],action:"neit"},f:["neit"]}," ",{p:[28,3,2124],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[28,22,2143]}],action:"ci"},f:["ci"]}," ",{p:[29,3,2223],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[29,22,2242]}],action:"quon"},f:["quon"]}," ",{p:[30,3,2326],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[30,22,2345]}],action:"mya"},f:["mya"]}," ",{p:[31,3,2427],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[31,22,2446]}],action:"folth"},f:["folth"]}," ",{p:[32,3,2532],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[32,22,2551]}],action:"wren"},f:["wren"]}," ",{p:[33,3,2635],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[33,22,2654]}],action:"geyr"},f:["geyr"]}," ",{p:[34,3,2738],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[34,22,2757]}],action:"hil"},f:["hil"]}," ",{p:[35,3,2839],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[35,22,2858]}],action:"niet"},f:["niet"]}," ",{p:[36,3,2942],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[36,22,2961]}],action:"twou"},f:["twou"]}," ",{p:[37,3,3045],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[37,22,3064]}],action:"phi"},f:["phi"]}," ",{p:[38,3,3146],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[38,22,3165]}],action:"coa"},f:["coa"]}]}," ",{p:[40,5,3268],t:7,e:"ui-section",a:{label:"suffix"},f:[{p:[41,3,3299],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[41,22,3318]}],action:" the Red"},f:["the Red"]}," ",{p:[42,3,3409],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[42,22,3428]}],action:" the Soulless"},f:["the Soulless"]}," ",{p:[43,3,3529],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[43,22,3548]}],action:" the Master"},f:["the Master"]}," ",{p:[44,3,3645],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[44,22,3664]}],action:", the Lord of all things"},f:["the Lord of all things"]}," ",{p:[45,3,3786],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[45,22,3805]}],action:", Jr."},f:["jr"]}]}," ",{p:[47,5,3909],t:7,e:"ui-section",a:{label:"submit"},f:[{p:[48,3,3941],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0>=4?null:"disabled"'},p:[48,21,3959]}],action:"search"},f:["search"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],384:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,2],t:7,e:"ui-button",a:{icon:"circle",action:"clean_order"},f:["Clear Order"]},{p:[2,70,71],t:7,e:"br"},{p:[2,74,75],t:7,e:"br"}," ",{p:[3,1,81],t:7,e:"i",f:["Your new computer device you always dreamed of is just four steps away..."]},{p:[3,81,161],t:7,e:"hr"}," ",{t:4,f:[" ",{p:[5,1,223],t:7,e:"div",a:{"class":"item"},f:[{p:[6,2,244],t:7,e:"h2",f:["Step 1: Select your device type"]}," ",{p:[7,2,287],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "1"}'},f:["Laptop"]}," ",{p:[8,2,377],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "2"}'},f:["LTablet"]}]}],n:50,x:{r:["data.state"],s:"_0==0"},p:[4,1,167]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.state"],s:"_0==1"},f:[{p:[11,1,502],t:7,e:"div",a:{"class":"item"},f:[{p:[12,2,523],t:7,e:"h2",f:["Step 2: Personalise your device"]}," ",{p:[13,2,566],t:7,e:"table",f:[{p:[14,3,577],t:7,e:"tr",f:[{p:[15,4,586],t:7,e:"td",f:[{p:[15,8,590],t:7,e:"b",f:["Current Price:"]}]},{p:[16,4,616],t:7,e:"td",f:[{t:2,r:"data.totalprice",p:[16,8,620]},"C"]}]}," ",{p:[18,3,653],t:7,e:"tr",f:[{p:[19,4,663],t:7,e:"td",f:[{p:[19,8,667],t:7,e:"b",f:["Battery:"]}]},{p:[20,4,687],t:7,e:"td",f:[{p:[20,8,691],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "1"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==1?"selected":null'},p:[20,73,756]}]},f:["Standard"]}]},{p:[21,4,827],t:7,e:"td",f:[{p:[21,8,831],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "2"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==2?"selected":null'},p:[21,73,896]}]},f:["Upgraded"]}]},{p:[22,4,967],t:7,e:"td",f:[{p:[22,8,971],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "3"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==3?"selected":null'},p:[22,73,1036]}]},f:["Advanced"]}]}]}," ",{p:[24,3,1115],t:7,e:"tr",f:[{p:[25,4,1124],t:7,e:"td",f:[{p:[25,8,1128],t:7,e:"b",f:["Hard Drive:"]}]},{p:[26,4,1151],t:7,e:"td",f:[{p:[26,8,1155],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "1"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==1?"selected":null'},p:[26,67,1214]}]},f:["Standard"]}]},{p:[27,4,1282],t:7,e:"td",f:[{p:[27,8,1286],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "2"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==2?"selected":null'},p:[27,67,1345]}]},f:["Upgraded"]}]},{p:[28,4,1413],t:7,e:"td",f:[{p:[28,8,1417],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "3"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==3?"selected":null'},p:[28,67,1476]}]},f:["Advanced"]}]}]}," ",{p:[30,3,1552],t:7,e:"tr",f:[{p:[31,4,1561],t:7,e:"td",f:[{p:[31,8,1565],t:7,e:"b",f:["Network Card:"]}]},{p:[32,4,1590],t:7,e:"td",f:[{p:[32,8,1594],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "0"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==0?"selected":null'},p:[32,73,1659]}]},f:["None"]}]},{p:[33,4,1726],t:7,e:"td",f:[{p:[33,8,1730],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "1"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==1?"selected":null'},p:[33,73,1795]}]},f:["Standard"]}]},{p:[34,4,1866],t:7,e:"td",f:[{p:[34,8,1870],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "2"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==2?"selected":null'},p:[34,73,1935]}]},f:["Advanced"]}]}]}," ",{p:[36,3,2014],t:7,e:"tr",f:[{p:[37,4,2023],t:7,e:"td",f:[{p:[37,8,2027],t:7,e:"b",f:["Nano Printer:"]}]},{p:[38,4,2052],t:7,e:"td",f:[{p:[38,8,2056],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "0"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==0?"selected":null'},p:[38,73,2121]}]},f:["None"]}]},{p:[39,4,2190],t:7,e:"td",f:[{p:[39,8,2194],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "1"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==1?"selected":null'},p:[39,73,2259]}]},f:["Standard"]}]}]}," ",{p:[41,3,2340],t:7,e:"tr",f:[{p:[42,4,2349],t:7,e:"td",f:[{p:[42,8,2353],t:7,e:"b",f:["Card Reader:"]}]},{p:[43,4,2377],t:7,e:"td",f:[{p:[43,8,2381],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "0"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==0?"selected":null'},p:[43,67,2440]}]},f:["None"]}]},{p:[44,4,2504],t:7,e:"td",f:[{p:[44,8,2508],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "1"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==1?"selected":null'},p:[44,67,2567]}]},f:["Standard"]}]}]}]}," ",{t:4,f:[" ",{p:[49,4,2706],t:7,e:"table",f:[{p:[50,5,2719],t:7,e:"tr",f:[{p:[51,6,2730],t:7,e:"td",f:[{p:[51,10,2734],t:7,e:"b",f:["Processor Unit:"]}]},{p:[52,6,2763],t:7,e:"td",f:[{p:[52,10,2767],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "1"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==1?"selected":null'},p:[52,67,2824]}]},f:["Standard"]}]},{p:[53,6,2893],t:7,e:"td",f:[{p:[53,10,2897],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "2"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==2?"selected":null'},p:[53,67,2954]}]},f:["Advanced"]}]}]}," ",{p:[55,5,3033],t:7,e:"tr",f:[{p:[56,6,3044],t:7,e:"td",f:[{p:[56,10,3048],t:7,e:"b",f:["Tesla Relay:"]}]},{p:[57,6,3074],t:7,e:"td",f:[{p:[57,10,3078],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "0"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==0?"selected":null'},p:[57,71,3139]}]},f:["None"]}]},{p:[58,6,3206],t:7,e:"td",f:[{p:[58,10,3210],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "1"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==1?"selected":null'},p:[58,71,3271]}]},f:["Standard"]}]}]}]}],n:50,x:{r:["data.devtype"],s:"_0!=2"},p:[48,3,2659]}," ",{p:[62,3,3374],t:7,e:"table",f:[{p:[63,4,3386],t:7,e:"tr",f:[{p:[64,5,3396],t:7,e:"td",f:[{p:[64,9,3400],t:7,e:"b",f:["Confirm Order:"]}]},{p:[65,5,3427],t:7,e:"td",f:[{p:[65,9,3431],t:7,e:"ui-button",a:{action:"confirm_order"},f:["CONFIRM"]}]}]}]}," ",{p:[69,2,3512],t:7,e:"hr"}," ",{p:[70,2,3519],t:7,e:"b",f:["Battery"]}," allows your device to operate without external utility power source. Advanced batteries increase battery life.",{p:[70,127,3644],t:7,e:"br"}," ",{p:[71,2,3651],t:7,e:"b",f:["Hard Drive"]}," stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.",{p:[71,130,3779],t:7,e:"br"}," ",{p:[72,2,3786],t:7,e:"b",f:["Network Card"]}," allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.",{p:[72,233,4017],t:7,e:"br"}," ",{p:[73,2,4024],t:7,e:"b",f:["Processor Unit"]}," is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.",{p:[73,208,4230],t:7,e:"br"}," ",{p:[74,2,4237],t:7,e:"b",f:["Tesla Relay"]}," is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.",{p:[74,246,4481],t:7,e:"br"}," ",{p:[75,2,4488],t:7,e:"b",f:["Nano Printer"]}," is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.",{p:[75,241,4727],t:7,e:"br"}," ",{p:[76,2,4734],t:7,e:"b",f:["Card Reader"]}," adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards."]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&(_0==2)"},f:[" ",{p:[79,2,4981],t:7,e:"h2",f:["Step 3: Payment"]}," ",{p:[80,2,5008],t:7,e:"b",f:["Your device is now ready for fabrication.."]},{p:[80,51,5057],t:7,e:"br"}," ",{p:[81,2,5064],t:7,e:"i",f:["Please ensure the required amount of credits are in the machine, then press purchase."]},{p:[81,94,5156],t:7,e:"br"}," ",{p:[82,2,5163],t:7,e:"i",f:["Current credits: ",{p:[82,22,5183],t:7,e:"b",f:[{t:2,r:"data.credits",p:[82,25,5186]},"C"]}]},{p:[82,50,5211],t:7,e:"br"}," ",{p:[83,2,5218],t:7,e:"i",f:["Total price: ",{p:[83,18,5234],t:7,e:"b",f:[{t:2,r:"data.totalprice",p:[83,21,5237]},"C"]}]},{p:[83,49,5265],t:7,e:"br"},{p:[83,53,5269],t:7,e:"br"}," ",{p:[84,2,5276],t:7,e:"ui-button",a:{action:"purchase",state:[{t:2,x:{r:["data.credits","data.totalprice"],s:'_0>=_1?null:"disabled"'},p:[84,38,5312]}]},f:["PURCHASE"]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&((!(_0==2))&&(_0==3))"},f:[" ",{p:[87,2,5423],t:7,e:"h2",f:["Step 4: Thank you for your purchase"]},{p:[87,46,5467],t:7,e:"br"}," ",{p:[88,2,5474],t:7,e:"b",f:["Should you experience any issues with your new device, contact your local network admin for assistance."]}]}],x:{r:["data.state"],s:"_0==0"}}]},e.exports=a.extend(r.exports)},{341:341}],385:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,1,22],t:7,e:"ui-display",f:[{p:[3,2,37],t:7,e:"ui-section",a:{label:"Cap"},f:[{p:[4,3,65],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.is_capped"],s:'_0?"power-off":"close"'},p:[4,20,82]}],style:[{t:2,x:{r:["data.is_capped"],s:'_0?null:"selected"'},p:[4,71,133]}],action:"toggle_cap"},f:[{t:2,x:{r:["data.is_capped"],s:'_0?"On":"Off"'},p:[6,4,202]}]}]}]}],n:50,r:"data.has_cap",p:[1,1,0]},{p:[10,1,288],t:7,e:"ui-display",f:[{t:4,f:[{p:[14,2,419],t:7,e:"ui-section",f:[{p:[15,3,435],t:7,e:"ui-button",a:{action:"select_colour"},f:["Select New Colour"]}]}],n:50,r:"data.can_change_colour",p:[13,1,386]}]}," ",{p:[19,1,540],t:7,e:"ui-display",a:{title:"Stencil"},f:[{t:4,f:[{p:[21,2,599],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[21,21,618]}]},f:[{t:4,f:[{p:[23,7,655],t:7,e:"ui-button",a:{action:"select_stencil",params:['{"item":"',{t:2,r:"item",p:[23,59,707]},'"}'],style:[{t:2,x:{r:["item","data.selected_stencil"],s:'_0==_1?"selected":null'},p:[24,12,731]}]},f:[{t:2,r:"item",p:[25,4,791]}]}],n:52,r:"items",p:[22,3,632]}]}],n:52,r:"data.drawables",p:[20,3,572]}]}," ",{p:[31,1,874],t:7,e:"ui-display",a:{title:"Text Mode"},f:[{p:[32,2,907],t:7,e:"ui-section",a:{label:"Current Buffer"},f:[{t:2,r:"text_buffer",p:[32,37,942]}]}," ",{p:[34,2,976],t:7,e:"ui-section",f:[{p:[34,14,988],t:7,e:"ui-button",a:{action:"enter_text"},f:["New Text"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],386:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{isHead:function(t){return t%10==0},dept_class:function(t){return 0==t?"dept-cap":t>=10&&20>t?"dept-sec":t>=20&&30>t?"dept-med":t>=30&&40>t?"dept-sci":t>=40&&50>t?"dept-eng":t>=50&&60>t?"dept-cargo":t>=200&&230>t?"dept-cent":"dept-other"},health_state:function(t,e,n,a){var r=t+e+n+a;return 0>=r?"health-5":25>=r?"health-4":50>=r?"health-3":75>=r?"health-2":"health-0"}}}}(r),r.exports.css=" .health {\r\n width: 16px;\r\n height: 16px;\r\n background-color: #FFF;\r\n border: 1px solid #434343;\r\n position: relative;\r\n top: 2px;\r\n display: inline-block;\r\n }\r\n .health-5 { background-color: #17d568; }\r\n .health-4 { background-color: #2ecc71; }\r\n .health-3 { background-color: #e67e22; }\r\n .health-2 { background-color: #ed5100; }\r\n .health-1 { background-color: #e74c3c; }\r\n .health-0 { background-color: #ed2814; }\r\n\r\n .dept-cap {color : #C06616;}\r\n .dept-sec {color : #E74C3C;}\r\n .dept-med {color : #3498DB;}\r\n .dept-sci {color : #9B59B6;}\r\n .dept-eng {color : #F1C40F;}\r\n .dept-cargo {color : #F39C12;}\r\n .dept-cent {color : #00C100;}\r\n .dept-other {color: #C38312;}\r\n\r\n .oxy { color : #3498db; }\r\n .toxin { color : #2ecc71; }\r\n .burn { color : #e67e22; }\r\n .brute { color : #e74c3c; }\r\n\r\n table.crew{\r\n border-collapse: collapse;\r\n }\r\n\r\n table.crew td {\r\n padding : 0px 10px;\r\n }",r.exports.template={v:3,t:[" ",{p:[27,1,1030],t:7,e:"ui-display",f:[{p:[28,2,1045],t:7,e:"ui-section",f:[{p:[29,3,1061],t:7,e:"table",a:{"class":"crew"},f:[{p:[30,3,1085],t:7,e:"thead",f:[{p:[31,3,1096],t:7,e:"tr",f:[{p:[32,4,1105],t:7,e:"th",f:["Name"]}," ",{p:[33,4,1123],t:7,e:"th",f:["Status"]}," ",{p:[34,4,1143],t:7,e:"th",f:["Vitals"]}," ",{p:[35,4,1163],t:7,e:"th",f:["Position"]}," ",{t:4,f:[{p:[37,5,1216],t:7,e:"th",f:["Tracking"]}],n:50,r:"data.link_allowed",p:[36,4,1185]}]}]}," ",{p:[41,3,1270],t:7,e:"tbody",f:[{t:4,f:[{p:[43,4,1308],t:7,e:"tr",f:[{p:[44,5,1318],t:7,e:"td",f:[{p:[45,6,1329],t:7,e:"span",a:{"class":[{t:2,x:{r:["isHead","ijob"],s:'_0(_1)?"bold ":""'},p:[45,19,1342]},{t:2,x:{r:["dept_class","ijob"],s:"_0(_1)"},p:[45,49,1372]}]},f:[{t:2,r:"name",p:[46,7,1402]}," (",{t:2,r:"assignment",p:[46,17,1412]},") ",{p:[47,6,1434],t:7,e:"span",f:[]}]}]}," ",{p:[49,5,1457],t:7,e:"td",f:[{t:4,f:[{p:[51,7,1498],t:7,e:"span",a:{"class":["health ",{t:2,x:{r:["health_state","oxydam","toxdam","burndam","brutedam"],s:"_0(_1,_2,_3,_4)"},p:[51,27,1518]}]}}],n:50,x:{r:["oxydam"],s:"_0!=null"},p:[50,6,1468]},{t:4,n:51,f:[{t:4,f:[{p:[54,8,1626],t:7,e:"span",a:{"class":"health health-5"}}],n:50,r:"life_status",p:[53,7,1598]},{t:4,n:51,f:[{p:[56,8,1688],t:7,e:"span",a:{"class":"health health-0"}}],r:"life_status"}],x:{r:["oxydam"],s:"_0!=null"}}]}," ",{p:[60,5,1771],t:7,e:"td",f:[{t:4,f:[{p:[62,7,1812],t:7,e:"span",f:["( ",{p:[64,8,1836],t:7,e:"span",a:{"class":"oxy"},f:[{t:2,r:"oxydam",p:[64,26,1854]}]}," / ",{p:[66,8,1890],t:7,e:"span",a:{"class":"toxin"},f:[{t:2,r:"toxdam",p:[66,28,1910]}]}," / ",{p:[68,8,1946],t:7,e:"span",a:{"class":"burn"},f:[{t:2,r:"burndam",p:[68,27,1965]}]}," / ",{p:[70,8,2002],t:7,e:"span",a:{"class":"brute"},f:[{t:2,r:"brutedam",p:[70,28,2022]}]}," )"]}],n:50,x:{r:["oxydam"],s:"_0!=null"},p:[61,6,1782]},{t:4,n:51,f:[{t:4,f:[{p:[75,8,2116],t:7,e:"span",f:["Alive"]}],n:50,r:"life_status",p:[74,7,2088]},{t:4,n:51,f:[{p:[77,8,2159],t:7,e:"span",f:["Dead"]}],r:"life_status"}],x:{r:["oxydam"],s:"_0!=null"}}]}," ",{p:[81,5,2222],t:7,e:"td",f:[{t:4,f:[{p:[83,6,2260],t:7,e:"span",f:[{t:2,r:"area",p:[83,12,2266]}]}],n:50,x:{r:["pos_x"],s:"_0!=null"},p:[82,5,2232]},{t:4,n:51,f:[{p:[85,6,2302],t:7,e:"span",f:["N/A"]}],x:{r:["pos_x"],s:"_0!=null"}}]}," ",{t:4,f:[{p:[89,6,2381],t:7,e:"td",f:[{p:[90,7,2393],t:7,e:"ui-button",a:{action:"select_person",state:[{t:2,x:{r:["can_track"],s:'_0?null:"disabled"'},p:[90,48,2434]}],params:['{"name":"',{t:2,r:"name",p:[90,100,2486]},'"}']},f:["Track"]}]}],n:50,r:"data.link_allowed",p:[88,5,2348]}]}],n:52,r:"data.sensors",p:[42,3,1281]}]}]}]}]}," "]},e.exports=a.extend(r.exports)},{341:341}],387:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[2,3,33],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[3,3,66],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[3,9,72]}]}]}," ",{t:4,f:[{p:[6,5,189],t:7,e:"ui-section",a:{label:"State"},f:[{p:[7,7,223],t:7,e:"span",a:{"class":[{t:2,r:"data.occupant.statstate",p:[7,20,236]}]},f:[{t:2,r:"data.occupant.stat",p:[7,49,265]}]}]}," ",{p:[9,4,317],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[10,6,356],t:7,e:"span",a:{"class":[{t:2,r:"data.occupant.temperaturestatus",p:[10,19,369]}]},f:[{t:2,r:"data.occupant.bodyTemperature",p:[10,56,406]}," K"]}]}," ",{p:[12,5,472],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[13,7,507],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[13,20,520]}],max:[{t:2,r:"data.occupant.maxHealth",p:[13,54,554]}],value:[{t:2,r:"data.occupant.health",p:[13,90,590]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[14,16,632]}]},f:[{t:2,r:"data.occupant.health",p:[14,68,684]}]}]}," ",{t:4,f:[{p:[17,7,908],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[17,26,927]}]},f:[{p:[18,9,948],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[18,30,969]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[18,66,1005]}],state:"bad"},f:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[18,103,1042]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[16,5,742]}],n:50,r:"data.hasOccupant",p:[5,3,159]}]}," ",{p:[23,1,1138],t:7,e:"ui-display",a:{title:"Cell"},f:[{p:[24,3,1167],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[25,5,1199],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[25,22,1216]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[26,14,1276]}],state:[{t:2,x:{r:["data.isOpen"],s:'_0?"disabled":null'},p:[27,14,1332]}],action:"power"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[28,22,1391]}]}]}," ",{p:[30,3,1459],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[31,3,1495],t:7,e:"span",a:{"class":[{t:2,r:"data.temperaturestatus",p:[31,16,1508]}]},f:[{t:2,r:"data.cellTemperature",p:[31,44,1536]}," K"]}]}," ",{p:[33,2,1588],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[34,5,1619],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOpen"],s:'_0?"unlock":"lock"'},p:[34,22,1636]}],action:"door"},f:[{t:2,x:{r:["data.isOpen"],s:'_0?"Open":"Closed"'},p:[34,73,1687]}]}," ",{p:[35,5,1740],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoEject"],s:'_0?"sign-out":"sign-in"'},p:[35,22,1757]}],action:"autoeject"},f:[{t:2,x:{r:["data.autoEject"],s:'_0?"Auto":"Manual"'},p:[35,86,1821]}]}]}]}," ",{p:{button:[{p:[40,5,1967],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[40,36,1998]}],action:"ejectbeaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[42,3,2101],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{t:4,f:[{p:[45,9,2211],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,r:"volume",p:[45,52,2254]}," units of ",{t:2,r:"name",p:[45,72,2274]}]},{p:[45,87,2289],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[44,7,2171]},{t:4,n:51,f:[{p:[47,9,2320],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[43,5,2136]},{t:4,n:51,f:[{p:[50,7,2396],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],388:[function(t,e,n){var a=t(341),r={ -exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,15],t:7,e:"ui-section",a:{label:"State"},f:[{t:4,f:[{p:[4,4,76],t:7,e:"span",a:{"class":"good"},f:["Ready"]}],n:50,r:"data.full_pressure",p:[3,3,45]},{t:4,n:51,f:[{t:4,f:[{p:[7,5,153],t:7,e:"span",a:{"class":"bad"},f:["Power Disabled"]}],n:50,r:"data.panel_open",p:[6,4,124]},{t:4,n:51,f:[{t:4,f:[{p:[10,6,248],t:7,e:"span",a:{"class":"average"},f:["Pressurizing"]}],n:50,r:"data.pressure_charging",p:[9,5,211]},{t:4,n:51,f:[{p:[12,6,310],t:7,e:"span",a:{"class":"bad"},f:["Off"]}],r:"data.pressure_charging"}],r:"data.panel_open"}],r:"data.full_pressure"}]}," ",{p:[17,2,393],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[18,3,426],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.per",p:[18,36,459]}],state:"good"},f:[{t:2,r:"data.per",p:[18,63,486]},"%"]}]}," ",{p:[20,5,530],t:7,e:"ui-section",a:{label:"Handle"},f:[{p:[21,9,567],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.flush"],s:'_0?"toggle-on":"toggle-off"'},p:[22,10,589]}],state:[{t:2,x:{r:["data.isai","data.panel_open"],s:'_0||_1?"disabled":null'},p:[23,11,647]}],action:[{t:2,x:{r:["data.flush"],s:'_0?"handle-0":"handle-1"'},p:[24,12,714]}]},f:[{t:2,x:{r:["data.flush"],s:'_0?"Disengage":"Engage"'},p:[25,5,763]}]}]}," ",{p:[27,2,837],t:7,e:"ui-section",a:{label:"Eject"},f:[{p:[28,3,867],t:7,e:"ui-button",a:{icon:"sign-out",state:[{t:2,x:{r:["data.isai"],s:'_0?"disabled":null'},p:[28,37,901]}],action:"eject"},f:["Eject Contents"]},{p:[28,114,978],t:7,e:"br"}]}," ",{p:[30,2,1002],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,3,1032],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["data.panel_open"],s:'_0?"disabled":null'},p:[31,38,1067]}],action:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"pump-0":"pump-1"'},p:[31,87,1116]}],style:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"selected":null'},p:[31,145,1174]}]}},{p:[31,206,1235],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],389:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"DNA Vault Database"},f:[{p:[2,3,43],t:7,e:"ui-section",a:{label:"Human DNA"},f:[{p:[3,7,81],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.dna_max",p:[3,28,102]}],value:[{t:2,r:"data.dna",p:[3,53,127]}]},f:[{t:2,r:"data.dna",p:[3,67,141]},"/",{t:2,r:"data.dna_max",p:[3,80,154]}," Samples"]}]}," ",{p:[5,3,208],t:7,e:"ui-section",a:{label:"Plant Data"},f:[{p:[6,5,245],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.plants_max",p:[6,26,266]}],value:[{t:2,r:"data.plants",p:[6,54,294]}]},f:[{t:2,r:"data.plants",p:[6,71,311]},"/",{t:2,r:"data.plants_max",p:[6,87,327]}," Samples"]}]}," ",{p:[8,3,384],t:7,e:"ui-section",a:{label:"Animal Data"},f:[{p:[9,5,422],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.animals_max",p:[9,26,443]}],value:[{t:2,r:"data.animals",p:[9,55,472]}]},f:[{t:2,r:"data.animals",p:[9,73,490]},"/",{t:2,r:"data.animals_max",p:[9,90,507]}," Samples"]}]}]}," ",{t:4,f:[{p:[13,1,616],t:7,e:"ui-display",a:{title:"Personal Gene Therapy"},f:[{p:[14,3,663],t:7,e:"ui-section",f:[{p:[15,2,678],t:7,e:"span",f:["Applicable gene therapy treatments:"]}]}," ",{p:[17,3,747],t:7,e:"ui-section",f:[{p:[18,2,762],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceA",p:[18,47,807]},'"}']},f:[{t:2,r:"data.choiceA",p:[18,67,827]}]}," ",{p:[19,2,858],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceB",p:[19,47,903]},'"}']},f:[{t:2,r:"data.choiceB",p:[19,67,923]}]}]}]}],n:50,x:{r:["data.completed","data.used"],s:"_0&&!_1"},p:[12,1,578]}]},e.exports=a.extend(r.exports)},{341:341}],390:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,24],t:7,e:"ui-display",a:{title:[{t:2,r:"data.question",p:[2,21,42]}]},f:[{p:[3,5,66],t:7,e:"ui-section",f:[{t:4,f:[{p:[5,9,118],t:7,e:"ui-button",a:{action:"vote",params:['{"answer": "',{t:2,r:"answer",p:[6,45,174]},'"}'],style:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[7,18,206]}]},f:[{t:2,r:"answer",p:[7,53,241]}," (",{t:2,r:"amount",p:[7,65,253]},")"]}],n:52,r:"data.answers",p:[4,7,86]}]}]}],n:50,r:"data.shaking",p:[1,1,0]},{t:4,n:51,f:[{p:[13,3,353],t:7,e:"ui-notice",f:["The eightball is not currently being shaken."]}],r:"data.shaking"}]},e.exports=a.extend(r.exports)},{341:341}],391:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,5,17],t:7,e:"span",f:["Time Until Launch: ",{t:2,r:"data.timer_str",p:[2,30,42]}]}]}," ",{p:[4,1,83],t:7,e:"ui-notice",f:[{p:[5,3,98],t:7,e:"span",f:["Engines: ",{t:2,x:{r:["data.engines_started"],s:'_0?"Online":"Idle"'},p:[5,18,113]}]}]}," ",{p:[7,1,180],t:7,e:"ui-display",a:{title:"Early Launch"},f:[{p:[8,2,216],t:7,e:"span",f:["Authorizations Remaining: ",{t:2,x:{r:["data.emagged","data.authorizations_remaining"],s:'_0?"ERROR":_1'},p:[9,2,250]}]}," ",{p:[10,2,318],t:7,e:"ui-button",a:{icon:"exclamation-triangle",action:"authorize",style:"danger",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[12,10,404]}]},f:["AUTHORIZE"]}," ",{p:[15,2,473],t:7,e:"ui-button",a:{icon:"minus",action:"repeal",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[16,10,523]}]},f:["Repeal"]}," ",{p:[19,2,589],t:7,e:"ui-button",a:{icon:"close",action:"abort",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[20,10,638]}]},f:["Repeal All"]}]}," ",{p:[24,1,722],t:7,e:"ui-display",a:{title:"Authorizations"},f:[{t:4,f:[{p:[26,3,793],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{t:2,r:"name",p:[26,34,824]}," (",{t:2,r:"job",p:[26,44,834]},")"]}],n:52,r:"data.authorizations",p:[25,2,760]},{t:4,n:51,f:[{p:[28,3,870],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:["No authorizations."]}],r:"data.authorizations"}]}]},e.exports=a.extend(r.exports)},{341:341}],392:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.hidden_message",p:[3,5,50]}]}," ",{p:[5,3,94],t:7,e:"ui-section",a:{label:"Created On"},f:[{t:2,r:"data.realdate",p:[6,5,131]}]}," ",{p:[8,3,169],t:7,e:"ui-section",a:{label:"Approval"},f:[{p:[9,5,204],t:7,e:"ui-button",a:{icon:"arrow-up",state:[{t:2,x:{r:["data.is_creator","data.has_liked"],s:'_0?"disabled":_1?"selected":null'},p:[11,14,252]}],action:"like"},f:[{t:2,r:"data.num_likes",p:[12,21,344]}]}," ",{p:[13,5,380],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.is_creator","data.has_liked","data.has_disliked"],s:'_0?"disabled":!_1&&!_2?"selected":null'},p:[15,14,426]}],action:"neutral"}}," ",{p:[17,5,562],t:7,e:"ui-button",a:{icon:"arrow-down",state:[{t:2,x:{r:["data.is_creator","data.has_disliked"],s:'_0?"disabled":_1?"selected":null'},p:[19,14,612]}],action:"dislike"},f:[{t:2,r:"data.num_dislikes",p:[20,24,710]}]}]}]}," ",{t:4,f:[{p:[24,3,805],t:7,e:"ui-display",a:{title:"Admin Panel"},f:[{p:[25,5,843],t:7,e:"ui-section",a:{label:"Creator Ckey"},f:[{t:2,r:"data.creator_key",p:[25,38,876]}]}," ",{p:[26,5,915],t:7,e:"ui-section",a:{label:"Creator Character Name"},f:[{t:2,r:"data.creator_name",p:[26,48,958]}]}," ",{p:[27,5,998],t:7,e:"ui-button",a:{icon:"remove",action:"delete",style:"danger"},f:["Delete"]}]}],n:50,r:"data.admin_mode",p:[23,1,778]}]},e.exports=a.extend(r.exports)},{341:341}],393:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The requested interface (",{t:2,r:"config.interface",p:[2,34,46]},") was not found. Does it exist?"]}]}]},e.exports=a.extend(r.exports)},{341:341}],394:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,5,49],t:7,e:"ui-button",a:{action:"toggle_power",style:[{t:2,x:{r:["data.toggle"],s:'_0?"selected":null'},p:[5,18,111]}]},f:["Turn ",{t:2,x:{r:["data.toggle"],s:'_0?"off":"on"'},p:[6,16,166]}]}]}," ",{p:[9,3,235],t:7,e:"ui-display",a:{title:"Logging"},f:[{t:4,f:[{p:[11,3,292],t:7,e:"ui-section",a:{label:">"},f:[{t:2,r:".",p:[11,25,314]},{p:[11,30,319],t:7,e:"ui-section",f:[]}]}],n:52,r:"data.logs",p:[10,5,269]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],395:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[2,1,31],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,2,60],t:7,e:"ui-button",a:{icon:"power-off",style:[{t:2,x:{r:["data.power"],s:'_0?"selected":"danger"'},p:[3,37,95]}],action:"power"},f:[{t:2,x:{r:["data.power"],s:'_0?"Enabled":"Disabled"'},p:[3,92,150]}]}]}," ",{p:[5,1,218],t:7,e:"ui-section",a:{label:"Tag"},f:[{p:[6,2,245],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:[{t:2,r:"data.tag",p:[6,43,286]}]}]}," ",{p:[8,1,327],t:7,e:"ui-section",a:{label:"Scanning mode"},f:[{p:[9,2,364],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.updating"],s:'_0?"unlock":"lock"'},p:[9,18,380]}],style:[{t:2,x:{r:["data.updating"],s:'_0?null:"danger"'},p:[9,63,425]}],action:"updating",tooltip:"Toggle between automatic scanning or scan only when a button is pressed.","tooltip-side":"right"},f:[{t:2,x:{r:["data.updating"],s:'_0?"AUTO":"MANUAL"'},p:[9,221,583]}]}]}," ",{p:[11,1,649],t:7,e:"ui-section",a:{label:"Detection range"},f:[{p:[12,2,688],t:7,e:"ui-button",a:{icon:"refresh",style:[{t:2,x:{r:["data.globalmode"],s:'_0?null:"selected"'},p:[12,35,721]}],action:"globalmode",tooltip:"Local sector or whole region scanning.","tooltip-side":"right"},f:[{t:2,x:{r:["data.globalmode"],s:'_0?"MAXIMUM":"LOCAL"'},p:[12,165,851]}]}]}]}," ",{t:4,f:[{p:[16,2,957],t:7,e:"ui-display",a:{title:"Current Location"},f:[{p:[17,3,998],t:7,e:"span",f:[{t:2,r:"data.current",p:[17,9,1004]}]}]}," ",{p:[20,2,1048],t:7,e:"ui-display",a:{title:"Detected Signals"},f:[{t:4,f:[{p:[22,3,1114],t:7,e:"ui-section",a:{label:[{t:2,r:"entrytag",p:[22,21,1132]}]},f:[{p:[23,3,1149],t:7,e:"span",f:[{t:2,r:"area",p:[23,9,1155]}," (",{t:2,r:"coord",p:[23,19,1165]},")"]}," ",{t:4,f:[{p:[25,4,1209],t:7,e:"span",f:["Dist: ",{t:2,r:"dist",p:[25,16,1221]},"m Dir: ",{t:2,r:"degrees",p:[25,31,1236]},"° (",{t:2,r:"direction",p:[25,45,1250]},")"]}],n:50,r:"direction",p:[24,3,1187]}]}],n:52,r:"data.signals",p:[21,2,1088]}]}],n:50,r:"data.power",p:[15,1,936]}]},e.exports=a.extend(r.exports)},{341:341}],396:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Labor Camp Teleporter"},f:[{p:[2,2,45],t:7,e:"ui-section",a:{label:"Teleporter Status"},f:[{p:[3,3,87],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.teleporter"],s:'_0?"good":"bad"'},p:[3,16,100]}]},f:[{t:2,x:{r:["data.teleporter"],s:'_0?"Connected":"Not connected"'},p:[3,54,138]}]}]}," ",{t:4,f:[{p:[6,4,244],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[7,5,279],t:7,e:"span",f:[{t:2,r:"data.teleporter_location",p:[7,11,285]}]}]}," ",{p:[9,4,343],t:7,e:"ui-section",a:{label:"Locked status"},f:[{p:[10,5,383],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"lock":"unlock"'},p:[10,22,400]}],action:"teleporter_lock"},f:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"Locked":"Unlocked"'},p:[10,93,471]}]}," ",{p:[11,5,537],t:7,e:"ui-button",a:{action:"toggle_open"},f:[{t:2,x:{r:["data.teleporter_state_open"],s:'_0?"Open":"Closed"'},p:[11,37,569]}]}]}],n:50,r:"data.teleporter",p:[5,3,216]},{t:4,n:51,f:[{p:[14,4,666],t:7,e:"span",f:[{p:[14,10,672],t:7,e:"ui-button",a:{action:"scan_teleporter"},f:["Scan Teleporter"]}]}],r:"data.teleporter"}]}," ",{p:[17,1,770],t:7,e:"ui-display",a:{title:"Labor Camp Beacon"},f:[{p:[18,2,811],t:7,e:"ui-section",a:{label:"Beacon Status"},f:[{p:[19,3,849],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.beacon"],s:'_0?"good":"bad"'},p:[19,16,862]}]},f:[{t:2,x:{r:["data.beacon"],s:'_0?"Connected":"Not connected"'},p:[19,50,896]}]}]}," ",{t:4,f:[{p:[22,3,992],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[23,4,1026],t:7,e:"span",f:[{t:2,r:"data.beacon_location",p:[23,10,1032]}]}]}],n:50,r:"data.beacon",p:[21,2,969]},{t:4,n:51,f:[{p:[26,4,1097],t:7,e:"span",f:[{p:[26,10,1103],t:7,e:"ui-button",a:{action:"scan_beacon"},f:["Scan Beacon"]}]}],r:"data.beacon"}]}," ",{p:[29,1,1193],t:7,e:"ui-display",a:{title:"Prisoner details"},f:[{p:[30,2,1233],t:7,e:"ui-section",a:{label:"Prisoner ID"},f:[{p:[31,3,1269],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[31,33,1299]}]}]}," ",{t:4,f:[{p:[34,2,1392],t:7,e:"ui-section",a:{label:"Set ID goal"},f:[{p:[35,4,1429],t:7,e:"ui-button",a:{action:"set_goal"},f:[{t:2,r:"data.goal",p:[35,33,1458]}]}]}],n:50,r:"data.id",p:[33,2,1374]}," ",{p:[38,2,1512],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[39,3,1545],t:7,e:"span",f:[{t:2,x:{r:["data.prisoner.name"],s:'_0?_0:"No Occupant"'},p:[39,9,1551]}]}]}," ",{t:4,f:[{p:[42,3,1661],t:7,e:"ui-section",a:{label:"Criminal Status"},f:[{p:[43,4,1702],t:7,e:"span",f:[{t:2,r:"data.prisoner.crimstat",p:[43,10,1708]}]}]}],n:50,r:"data.prisoner",p:[41,2,1636]}]}," ",{p:[47,1,1785],t:7,e:"ui-display",f:[{p:[48,2,1800],t:7,e:"center",f:[{p:[48,10,1808],t:7,e:"ui-button",a:{action:"teleport",state:[{t:2,x:{r:["data.can_teleport"],s:'_0?null:"disabled"'},p:[48,45,1843]}]},f:["Process Prisoner"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],397:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,15],t:7,e:"center",f:[{p:[2,10,23],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[2,40,53]}]}]}]}," ",{p:[4,1,135],t:7,e:"ui-display",a:{title:"Stored Items"},f:[{t:4,f:[{p:[6,3,194],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[6,22,213]}]},f:[{p:[7,4,228],t:7,e:"ui-button",a:{action:"release_items",params:['{"mobref":',{t:2,r:"mob",p:[7,56,280]},"}"],state:[{t:2,x:{r:["data.can_reclaim"],s:'_0?null:"disabled"'},p:[7,72,296]}]},f:["Drop Items"]}]}],n:52,r:"data.mobs",p:[5,2,171]}]}]},e.exports=a.extend(r.exports)},{341:341}],398:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.emagged"],s:'_0?"un":null'},p:[3,20,87]},"lock"],state:[{t:2,x:{r:["data.can_toggle_safety"],s:'_0?null:"disabled"'},p:[3,63,130]}],action:"safety"},f:["Safeties: ",{p:[4,14,209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.emagged"],s:'_0?"bad":"good"'},p:[4,27,222]}]},f:[{t:2,x:{r:["data.emagged"],s:'_0?"OFF":"ON"'},p:[4,62,257]}]}]}]},t:7,e:"ui-display",a:{title:"Default Programs",button:0},f:[" ",{t:4,f:[{p:[8,2,363],t:7,e:"ui-button",a:{action:"load_program",params:['{"type": ',{t:2,r:"type",p:[8,52,413]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[8,70,431]}]},f:[{t:2,r:"name",p:[9,5,483]}," "]},{p:[10,14,506],t:7,e:"br"}],n:52,r:"data.default_programs",p:[7,2,329]}]}," ",{t:4,f:[{p:[14,2,562],t:7,e:"ui-display",a:{title:"Dangerous Programs"},f:[{t:4,f:[{p:[16,4,638],t:7,e:"ui-button",a:{icon:"warning",action:"load_program",params:['{"type": ',{t:2,r:"type",p:[16,69,703]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[16,87,721]}]},f:[{t:2,r:"name",p:[17,5,773]}," "]},{p:[18,16,798],t:7,e:"br"}],n:52,r:"data.emag_programs",p:[15,3,605]}]}],n:50,r:"data.emagged",p:[13,1,539]}]},e.exports=a.extend(r.exports)},{341:341}],399:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[15,1,280],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[16,3,313],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[17,3,346],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[17,9,352]}]}]}," ",{t:4,f:[{p:[20,5,466],t:7,e:"ui-section",a:{label:"State"},f:[{p:[21,7,500],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[21,20,513]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[21,43,536]}]}]}],n:50,r:"data.occupied",p:[19,3,439]}]}," ",{p:[25,1,680],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[26,2,712],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[27,5,743],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[27,22,760]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[27,71,809]}]}]}," ",{p:[29,3,874],t:7,e:"ui-section",a:{label:"Uses"},f:[{t:2,r:"data.ready_implants",p:[30,5,905]}," ",{t:4,f:[{p:[32,7,969],t:7,e:"span",a:{"class":"fa fa-cog fa-spin"}}],n:50,r:"data.replenishing",p:[31,5,936]}]}," ",{p:[35,3,1036],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[36,7,1073],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.occupied","data.ready_implants","data.ready"],s:'_0&&_1>0&&_2?null:"disabled"'},p:[36,25,1091]}],action:"implant"},f:[{t:2,x:{r:["data.ready","data.special_name"],s:'_0?(_1?_1:"Implant"):"Recharging"'},p:[37,9,1198]}," "]},{p:[38,19,1302],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],400:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{healthState:function(){var t=this.get("data.health");return t>70?"good":t>50?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[15,3,296],t:7,e:"ui-notice",f:[{p:[16,5,313],t:7,e:"span",f:["Wipe in progress!"]}]}],n:50,r:"data.wiping",p:[14,1,273]},{p:{button:[{t:4,f:[{p:[22,7,479],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.isDead"],s:'_0?"disabled":null'},p:[22,38,510]}],action:"wipe"},f:[{t:2,x:{r:["data.wiping"],s:'_0?"Stop Wiping":"Wipe"'},p:[22,89,561]}," AI"]}],n:50,r:"data.name",p:[21,5,454]}]},t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.name"],s:'_0||"Empty Card"'},p:[19,19,388]}],button:0},f:[" ",{t:4,f:[{p:[26,5,672],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[27,9,709],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"bad":"good"'},p:[27,22,722]}]},f:[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"Offline":"Operational"'},p:[27,76,776]}]}]}," ",{p:[29,5,871],t:7,e:"ui-section",a:{label:"Software Integrity"},f:[{p:[30,7,918],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[30,40,951]}],state:[{t:2,r:"healthState",p:[30,64,975]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[30,81,992]},"%"]}]}," ",{p:[32,5,1055],t:7,e:"ui-section",a:{label:"Laws"},f:[{t:4,f:[{p:[34,9,1117],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[34,33,1141]}]},{p:[34,45,1153],t:7,e:"br"}],n:52,r:"data.laws",p:[33,7,1088]}]}," ",{p:[37,5,1200],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[38,7,1237],t:7,e:"ui-button",a:{icon:"signal",style:[{t:2,x:{r:["data.wireless"],s:'_0?"selected":null'},p:[38,39,1269]}],action:"wireless"},f:["Wireless Activity"]}," ",{p:[39,7,1363],t:7,e:"ui-button",a:{icon:"microphone",style:[{t:2,x:{r:["data.radio"],s:'_0?"selected":null'},p:[39,43,1399]}],action:"radio"},f:["Subspace Radio"]}]}],n:50,r:"data.name",p:[25,3,649]}]}]},e.exports=a.extend(r.exports)},{341:341}],401:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,23],t:7,e:"ui-notice",f:[{p:[3,3,38],t:7,e:"span",f:["Waiting for another device to confirm your request..."]}]}],n:50,r:"data.waiting",p:[1,1,0]},{t:4,n:51,f:[{p:[6,2,132],t:7,e:"ui-display",f:[{p:[7,3,148],t:7,e:"ui-section",f:[{t:4,f:[{p:[9,5,197],t:7,e:"ui-button",a:{icon:"check",action:"auth_swipe"},f:["Authorize ",{t:2,r:"data.auth_required",p:[9,59,251]}]}],n:50,r:"data.auth_required",p:[8,4,165]},{t:4,n:51,f:[{p:[11,5,304],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.red_alert"],s:'_0?"disabled":null'},p:[11,38,337]}],action:"red_alert"},f:["Red Alert"]}," ",{p:[12,5,423],t:7,e:"ui-button",a:{icon:"wrench",state:[{t:2,x:{r:["data.emergency_maint"],s:'_0?"disabled":null'},p:[12,37,455]}],action:"emergency_maint"},f:["Emergency Maintenance Access"]}," ",{p:[13,5,572],t:7,e:"ui-button",a:{icon:"warning",state:"null",action:"bsa_unlock"},f:["Bluespace Artillery Unlock"]}],r:"data.auth_required"}]}]}],r:"data.waiting"}]},e.exports=a.extend(r.exports)},{341:341}],402:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Ore values"},f:[{t:4,f:[{p:[3,3,57],t:7,e:"ui-section",a:{label:[{t:2,r:"ore",p:[3,22,76]}]},f:[{p:[4,4,90],t:7,e:"span",f:[{t:2,r:"value",p:[4,10,96]}]}]}],n:52,r:"data.ores",p:[2,2,34]}]}," ",{p:[8,1,158],t:7,e:"ui-display",a:{title:"Points"},f:[{p:[9,2,188],t:7,e:"ui-section",a:{label:"ID"},f:[{p:[10,3,215],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[10,33,245]}]}]}," ",{t:4,f:[{p:[13,3,339],t:7,e:"ui-section",a:{label:"Points collected"},f:[{p:[14,4,381],t:7,e:"span",f:[{t:2,r:"data.points",p:[14,10,387]}]}]}," ",{p:[16,3,430],t:7,e:"ui-section",a:{label:"Goal"},f:[{p:[17,4,460],t:7,e:"span",f:[{t:2,r:"data.goal",p:[17,10,466]}]}]}," ",{p:[19,3,507],t:7,e:"ui-section",a:{label:"Unclaimed points"},f:[{p:[20,4,549],t:7,e:"span",f:[{t:2,r:"data.unclaimed_points",p:[20,10,555]}]}," ",{p:[21,4,592],t:7,e:"ui-button",a:{action:"claim_points",state:[{t:2,x:{r:["data.unclaimed_points"],s:'_0?null:"disabled"'},p:[21,43,631]}]},f:["Claim points"]}]}],n:50,r:"data.id",p:[12,2,320]}]}," ",{p:[25,1,745],t:7,e:"ui-display",f:[{p:[26,2,760],t:7,e:"center",f:[{p:[27,3,772],t:7,e:"ui-button",a:{action:"move_shuttle",state:[{t:2,x:{r:["data.can_go_home"],s:'_0?null:"disabled"'},p:[27,42,811]}]},f:["Move shuttle"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],403:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Known Languages"},f:[{t:4,f:[{p:[3,5,70],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[3,23,88]}]},f:[{p:[4,7,105],t:7,e:"span",f:[{t:2,r:"desc",p:[4,13,111]}]}," ",{p:[5,7,134],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[5,19,146]}]}," ",{t:4,f:[{p:[7,9,192],t:7,e:"span",f:["(gained from mob)"]}],n:50,r:"shadow",p:[6,7,168]}," ",{p:[9,7,245],t:7,e:"span",f:[{t:2,x:{r:["can_speak"],s:'_0?"Can Speak":"Cannot Speak"'},p:[9,13,251]}]}," ",{t:4,f:[{p:[11,9,342],t:7,e:"ui-button",a:{action:"select_default",params:['{"language_name":"',{t:2,r:"name",p:[13,37,425]},'"}'],style:[{t:2,x:{r:["is_default","can_speak"],s:'_0?"selected":_1?null:"disabled"'},p:[14,18,455]}]},f:[{t:2,x:{r:["is_default"],s:'_0?"Default Language":"Select as Default"'},p:[15,10,526]}]}],n:50,r:"data.is_living",p:[10,7,310]}," ",{t:4,f:[{t:4,f:[{p:[20,11,685],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[20,72,746]},'"}']},f:["Grant"]}],n:50,r:"shadow",p:[19,9,659]},{t:4,n:51,f:[{p:[22,11,805],t:7,e:"ui-button",a:{action:"remove_language",params:['{"language_name":"',{t:2,r:"name",p:[22,73,867]},'"}']},f:["Remove"]}],r:"shadow"}],n:50,r:"data.admin_mode",p:[18,7,626]}]}],n:52,r:"data.languages",p:[2,3,40]}]}," ",{t:4,f:[{t:4,f:[{p:[30,5,1033],t:7,e:"ui-button",a:{action:"toggle_omnitongue",style:[{t:2,x:{r:["data.omnitongue"],s:'_0?"selected":null'},p:[32,14,1092]}]},f:["Omnitongue ",{t:2,x:{r:["data.omnitongue"],s:'_0?"Enabled":"Disabled"'},p:[33,19,1152]}]}],n:50,r:"data.is_living",p:[29,3,1005]}," ",{p:[36,3,1231],t:7,e:"ui-display",a:{title:"Unknown Languages"},f:[{t:4,f:[{p:[38,7,1315],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[38,25,1333]}]},f:[{p:[39,9,1352],t:7,e:"span",f:[{t:2,r:"desc",p:[39,15,1358]}]}," ",{p:[40,9,1383],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[40,21,1395]}]}," ",{p:[41,9,1419],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[43,37,1502]},'"}']},f:["Grant"]}]}],n:52,r:"data.unknown_languages",p:[37,5,1275]}]}],n:50,r:"data.admin_mode",p:[28,1,978]}]},e.exports=a.extend(r.exports)},{341:341}],404:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Controls"},f:[{t:4,f:[{t:4,f:[{p:[4,4,84],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[5,5,118],t:7,e:"span",f:["Launchpad closed."]}]}],n:50,r:"data.pad_closed",p:[3,3,56]},{t:4,n:51,f:[{p:[8,4,183],t:7,e:"ui-section",a:{label:"Launchpad"},f:[{p:[9,4,218],t:7,e:"span",f:[{p:[9,10,224],t:7,e:"b",f:[{t:2,r:"data.pad_name",p:[9,13,227]}]}]},{p:[9,41,255],t:7,e:"br"}," ",{p:[10,4,264],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:["Rename"]}," ",{p:[11,4,328],t:7,e:"ui-button",a:{icon:"remove",style:"danger",action:"remove"},f:["Remove"]}]}," ",{p:[14,4,427],t:7,e:"ui-section",a:{label:"Set Target"},f:[{p:[15,4,463],t:7,e:"table",f:[{p:[16,4,475],t:7,e:"tr",f:[{p:[17,5,485],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[17,38,518],t:7,e:"ui-button",a:{action:"up-left"},f:["↖"]}]}," ",{p:[18,5,570],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[18,57,622],t:7,e:"ui-button",a:{action:"up"},f:["↑"]}]}," ",{p:[19,5,669],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[19,56,720],t:7,e:"ui-button",a:{action:"up-right"},f:["↗"]}]}]}," ",{p:[21,4,782],t:7,e:"tr",f:[{p:[22,5,792],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[22,38,825],t:7,e:"ui-button",a:{action:"left",style:"width:35px!important"},f:["←"]}]}," ",{p:[23,5,903],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[23,57,955],t:7,e:"ui-button",a:{action:"reset"},f:["R"]}]}," ",{p:[24,5,1005],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[24,56,1056],t:7,e:"ui-button",a:{action:"right"},f:["→"]}]}]}," ",{p:[26,4,1115],t:7,e:"tr",f:[{p:[27,5,1125],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[27,38,1158],t:7,e:"ui-button",a:{action:"down-left"},f:["↙"]}]}," ",{p:[28,5,1212],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[28,57,1264],t:7,e:"ui-button",a:{action:"down"},f:["↓"]}]}," ",{p:[29,5,1313],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[29,56,1364],t:7,e:"ui-button",a:{action:"down-right"},f:["↘"]}]}]}]}]}," ",{p:[33,4,1459],t:7,e:"ui-section",a:{label:"Current Target"},f:[{p:[34,5,1500],t:7,e:"span",f:[{t:2,r:"data.abs_y",p:[34,11,1506]}," ",{t:2,r:"data.north_south",p:[34,26,1521]}]},{p:[34,53,1548],t:7,e:"br"}," ",{p:[35,5,1558],t:7,e:"span",f:[{t:2,r:"data.abs_x",p:[35,11,1564]}," ",{t:2,r:"data.east_west",p:[35,26,1579]}]}]}," ",{p:[37,4,1627],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[38,5,1662],t:7,e:"ui-button",a:{action:"launch",tooltip:"Teleport everything on the pad to the target.","tooltip-side":"down"},f:["Launch"]}," ",{p:[39,5,1789],t:7,e:"ui-button",a:{action:"pull",tooltip:"Teleport everything from the target to the pad.","tooltip-side":"down"},f:["Pull"]}]}],r:"data.pad_closed"}],n:50,r:"data.has_pad",p:[2,2,32]},{t:4,n:51,f:[{p:[45,3,1956],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[46,4,1989],t:7,e:"span",f:["No launchpad found. Link the remote to a launchpad."]}]}],r:"data.has_pad"}]}]},e.exports=a.extend(r.exports)},{341:341}],405:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{mechChargeState:function(t){var e=this.get("data.recharge_port.mech.cell.maxcharge");return t>=e/1.5?"good":t>=e/3?"average":"bad"},mechHealthState:function(t){var e=this.get("data.recharge_port.mech.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[20,1,545],t:7,e:"ui-display",a:{title:"Mech Status"},f:[{t:4,f:[{t:4,f:[{p:[23,4,646],t:7,e:"ui-section",a:{label:"Integrity"},f:[{p:[24,6,683],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,27,704]}],value:[{t:2,r:"adata.recharge_port.mech.health",p:[24,74,751]}],state:[{t:2,x:{r:["mechHealthState","adata.recharge_port.mech.health"],s:"_0(_1)"},p:[24,117,794]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.health"],s:"Math.round(_0)"},p:[24,171,848]},"/",{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,219,896]}]}]}," ",{t:4,f:[{t:4,f:[{p:[28,5,1061],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[28,31,1087],t:7,e:"span",a:{"class":"bad"},f:["Cell Critical Failure"]}]}],n:50,r:"data.recharge_port.mech.cell.critfail",p:[27,3,1010]},{t:4,n:51,f:[{p:[30,11,1170],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,13,1210],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.cell.maxcharge",p:[31,34,1231]}],value:[{t:2,r:"adata.recharge_port.mech.cell.charge",p:[31,86,1283]}],state:[{t:2,x:{r:["mechChargeState","adata.recharge_port.mech.cell.charge"],s:"_0(_1)"},p:[31,134,1331]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.cell.charge"],s:"Math.round(_0)"},p:[31,193,1390]},"/",{t:2,x:{r:["adata.recharge_port.mech.cell.maxcharge"],s:"Math.round(_0)"},p:[31,246,1443]}]}]}],r:"data.recharge_port.mech.cell.critfail"}],n:50,r:"data.recharge_port.mech.cell",p:[26,4,970]},{t:4,n:51,f:[{p:[35,3,1558],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[35,29,1584],t:7,e:"span",a:{"class":"bad"},f:["Cell Missing"]}]}],r:"data.recharge_port.mech.cell"}],n:50,r:"data.recharge_port.mech",p:[22,2,610]},{t:4,n:51,f:[{p:[38,4,1662],t:7,e:"ui-section",f:["Mech Not Found"]}],r:"data.recharge_port.mech"}],n:50,r:"data.recharge_port",p:[21,3,581]},{t:4,n:51,f:[{p:[41,5,1729],t:7,e:"ui-section",f:["Recharging Port Not Found"]}," ",{p:[42,2,1782],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}],r:"data.recharge_port"}]}]},e.exports=a.extend(r.exports)},{341:341}],406:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{t:4,f:[{p:[3,5,45],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[4,7,88],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[4,24,105]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[4,75,156]}]}]}],n:50,r:"data.siliconUser",p:[2,3,15]},{t:4,n:51,f:[{p:[7,5,247],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[7,31,273]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[10,1,358],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[11,3,389],t:7,e:"ui-section",a:{label:"Power"},f:[{t:4,f:[{p:[13,7,470],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[13,24,487]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[13,68,531]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[13,116,579]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[12,5,421]},{t:4,n:51,f:[{p:[15,7,639],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.on"],s:'_0?"good":"bad"'},p:[15,20,652]}],state:[{t:2,x:{r:["data.cell"],s:'_0?null:"disabled"'},p:[15,57,689]}]},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[15,92,724]}]}],x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"}}]}," ",{p:[18,3,791],t:7,e:"ui-section",a:{label:"Cell"},f:[{p:[19,5,822],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.cell"],s:'_0?null:"bad"'},p:[19,18,835]}]},f:[{t:2,x:{r:["data.cell","data.cellPercent"],s:'_0?_1+"%":"No Cell"'},p:[19,48,865]}]}]}," ",{p:[21,3,943],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[22,5,974],t:7,e:"span",a:{"class":[{t:2,r:"data.modeStatus",p:[22,18,987]}]},f:[{t:2,r:"data.mode",p:[22,39,1008]}]}]}," ",{p:[24,3,1049],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[25,5,1080],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.load"],s:'_0?"good":"average"'},p:[25,18,1093]}]},f:[{t:2,x:{r:["data.load"],s:'_0?_0:"None"'},p:[25,54,1129]}]}]}," ",{p:[27,3,1191],t:7,e:"ui-section",a:{label:"Destination"},f:[{p:[28,5,1229],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.destination"],s:'_0?"good":"average"'},p:[28,18,1242]}]},f:[{t:2,x:{r:["data.destination"],s:'_0?_0:"None"'},p:[28,60,1284]}]}]}]}," ",{t:4,f:[{p:{button:[{t:4,f:[{p:[35,9,1513],t:7,e:"ui-button",a:{icon:"eject",action:"unload"},f:["Unload"]}],n:50,r:"data.load",p:[34,7,1486]}," ",{t:4,f:[{p:[38,9,1623],t:7,e:"ui-button",a:{icon:"eject",action:"ejectpai"},f:["Eject PAI"]}],n:50,r:"data.haspai",p:[37,7,1594]}," ",{p:[40,7,1709],t:7,e:"ui-button",a:{icon:"pencil",action:"setid"},f:["Set ID"]}]},t:7, -e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[42,5,1791],t:7,e:"ui-section",a:{label:"Destination"},f:[{p:[43,7,1831],t:7,e:"ui-button",a:{icon:"pencil",action:"destination"},f:["Set Destination"]}," ",{p:[44,7,1912],t:7,e:"ui-button",a:{icon:"stop",action:"stop"},f:["Stop"]}," ",{p:[45,7,1973],t:7,e:"ui-button",a:{icon:"play",action:"go"},f:["Go"]}]}," ",{p:[47,5,2047],t:7,e:"ui-section",a:{label:"Home"},f:[{p:[48,7,2080],t:7,e:"ui-button",a:{icon:"home",action:"home"},f:["Go Home"]}," ",{p:[49,7,2144],t:7,e:"ui-button",a:{icon:"pencil",action:"sethome"},f:["Set Home"]}]}," ",{p:[51,5,2231],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[52,7,2268],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoReturn"],s:'_0?"check-square-o":"square-o"'},p:[52,24,2285]}],style:[{t:2,x:{r:["data.autoReturn"],s:'_0?"selected":null'},p:[52,84,2345]}],action:"autoret"},f:["Auto-Return Home"]}," ",{p:[54,7,2449],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoPickup"],s:'_0?"check-square-o":"square-o"'},p:[54,24,2466]}],style:[{t:2,x:{r:["data.autoPickup"],s:'_0?"selected":null'},p:[54,84,2526]}],action:"autopick"},f:["Auto-Pickup Crate"]}," ",{p:[56,7,2632],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.reportDelivery"],s:'_0?"check-square-o":"square-o"'},p:[56,24,2649]}],style:[{t:2,x:{r:["data.reportDelivery"],s:'_0?"selected":null'},p:[56,88,2713]}],action:"report"},f:["Report Deliveries"]}]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[31,1,1373]}]},e.exports=a.extend(r.exports)},{341:341}],407:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Chamber Console"},f:[{p:[2,1,45],t:7,e:"ui-display",a:{title:"Program Disk"},f:[{t:4,f:[{p:[4,2,104],t:7,e:"ui-button",a:{icon:"eject",action:"eject"},f:["Eject Disk"]},{p:[4,63,165],t:7,e:"br"}," ",{t:4,f:[{p:[6,3,200],t:7,e:"ui-section",a:{label:"Program Name"},f:[{t:2,r:"data.disk.name",p:[6,36,233]}]}," ",{p:[7,3,268],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.disk.desc",p:[7,35,300]}]}," ",{p:[8,3,335],t:7,e:"ui-section",a:{label:"Activation Status"},f:[{t:2,x:{r:["data.disk.activated"],s:'_0?"Active":"Inactive"'},p:[8,41,373]}]}," ",{t:4,f:[{p:[10,4,477],t:7,e:"ui-section",a:{label:"Activation Delay"},f:[{t:2,r:"data.disk.activation_delay",p:[10,41,514]}]}],n:50,r:"data.disk.activation_delay",p:[9,3,438]}," ",{t:4,f:[{p:[13,4,600],t:7,e:"ui-section",a:{label:"Timer"},f:[{t:2,r:"data.disk.timer",p:[13,30,626]}]}," ",{p:[14,4,663],t:7,e:"ui-section",a:{label:"Timer Type "},f:[{t:2,r:"data.disk.timer_type",p:[14,36,695]}]}],n:50,r:"data.disk.timer",p:[12,3,572]}," ",{t:4,f:[{p:[17,4,785],t:7,e:"ui-section",a:{label:"Activation Code"},f:[{t:2,r:"data.disk.activation_code",p:[17,40,821]}]}],n:50,r:"data.disk.activation_code",p:[16,3,747]}," ",{t:4,f:[{p:[20,4,918],t:7,e:"ui-section",a:{label:"Deactivation Code"},f:[{t:2,r:"data.disk.deactivation_code",p:[20,42,956]}]}],n:50,r:"data.disk.deactivation_code",p:[19,3,878]}," ",{t:4,f:[{p:[23,4,1047],t:7,e:"ui-section",a:{label:"Kill Code"},f:[{t:2,r:"data.disk.kill_code",p:[23,34,1077]}]}],n:50,r:"data.disk.kill_code",p:[22,3,1015]}," ",{t:4,f:[{p:[26,4,1163],t:7,e:"ui-section",a:{label:"Trigger Code"},f:[{t:2,r:"data.disk.trigger_code",p:[26,37,1196]}]}],n:50,r:"data.disk.trigger_code",p:[25,3,1128]}," ",{t:4,f:[{t:4,f:[{p:[30,6,1332],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[30,25,1351]}]},f:[{t:2,r:"value",p:[30,35,1361]}]}],n:52,r:"data.disk.extra_settings",p:[29,4,1291]}],n:50,r:"data.disk.has_extra_settings",p:[28,3,1250]}],n:50,r:"data.has_program",p:[5,2,172]},{t:4,n:51,f:[{p:[34,3,1423],t:7,e:"ui-notice",f:["No program detected."]}],r:"data.has_program"}],n:50,r:"data.has_disk",p:[3,1,80]},{t:4,n:51,f:[{p:[37,2,1489],t:7,e:"ui-notice",f:["Insert disk."]}],r:"data.has_disk"}]}," ",{p:[40,1,1550],t:7,e:"br"}," ",{t:4,f:[{p:[42,2,1582],t:7,e:"ui-notice",f:[{t:2,r:"data.status_msg",p:[42,13,1593]}]}],n:50,r:"data.status_msg",p:[41,1,1556]},{t:4,n:51,f:[{p:[44,2,1637],t:7,e:"ui-display",a:{title:"Chamber"},f:[{p:[45,2,1668],t:7,e:"ui-section",f:[{p:[45,14,1680],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock-open":"lock"'},p:[45,30,1696]}],action:"toggle_lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[45,90,1756]}," Chamber"]},{p:[45,146,1812],t:7,e:"br"}]}," ",{p:[46,2,1832],t:7,e:"ui-section",f:[{p:[46,14,1844],t:7,e:"b",f:["Occupant:"]}," ",{t:2,r:"data.occupant_name",p:[46,31,1861]}]}," ",{t:4,f:[{p:[48,4,1929],t:7,e:"ui-section",f:[{p:[48,16,1941],t:7,e:"ui-notice",f:["No nanites detected."]}]}," ",{p:[49,4,2002],t:7,e:"ui-section",f:[{p:[49,16,2014],t:7,e:"ui-button",a:{icon:"syringe",action:"nanite_injection"},f:["Implant Nanites"]}]}],n:50,x:{r:["data.has_nanites"],s:"!_0"},p:[47,2,1899]},{t:4,n:51,f:[{p:[51,3,2121],t:7,e:"ui-display",a:{title:"Nanites"},f:[{t:4,f:[{p:[53,5,2184],t:7,e:"ui-button",a:{icon:"download",action:"add_program"},f:["Install Program From Disk"]},{p:[53,90,2269],t:7,e:"br"}," ",{p:[54,5,2279],t:7,e:"br"}],n:50,r:"data.has_program",p:[52,4,2154]}," ",{p:[56,4,2300],t:7,e:"ui-section",f:[{p:[57,5,2318],t:7,e:"ui-section",a:{label:"Nanite Volume"},f:[{t:2,r:"data.nanite_volume",p:[57,39,2352]}]}," ",{p:[58,5,2393],t:7,e:"ui-section",a:{label:"Growth Rate"},f:[{t:2,r:"data.regen_rate",p:[58,37,2425]}]}," ",{p:[59,5,2463],t:7,e:"ui-section",a:{label:"Safety Threshold"},f:[{t:2,r:"data.safety_threshold",p:[59,42,2500]}," ",{p:[59,68,2526],t:7,e:"ui-button",a:{icon:"pencil",action:"set_safety"},f:["Set"]}]}," ",{p:[60,5,2606],t:7,e:"ui-section",a:{label:"Cloud ID"},f:[{t:2,x:{r:["data.cloud_id"],s:'_0?_0:"No Cloud"'},p:[60,34,2635]}," ",{p:[60,82,2683],t:7,e:"ui-button",a:{icon:"pencil",action:"set_cloud"},f:["Set"]}]}]}," ",{p:[62,4,2779],t:7,e:"ui-display",a:{title:"Programs"},f:[{t:4,f:[{p:[64,6,2848],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[64,25,2867]}],button:0},f:[{p:[65,6,2891],t:7,e:"ui-button",a:{icon:"minus",action:"remove_program",params:['{"program_id": "',{t:2,r:"id",p:[65,78,2963]},'"}']},f:["Uninstall"]}," ",{p:[66,6,3001],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"desc",p:[66,38,3033]}]}," ",{t:4,f:[{p:[68,7,3097],t:7,e:"ui-section",a:{label:"Activation Status"},f:[{t:2,x:{r:["activated"],s:'_0?"Active":"Inactive"'},p:[68,45,3135]}]}," ",{p:[69,7,3194],t:7,e:"ui-section",a:{label:"Nanites Consumed"},f:[{t:2,r:"use_rate",p:[69,44,3231]},"/s"]}," ",{t:4,f:[{p:[71,8,3294],t:7,e:"ui-section",a:{label:"Trigger Cost"},f:[{t:2,r:"trigger_cost",p:[71,41,3327]}]}," ",{p:[72,8,3365],t:7,e:"ui-section",a:{label:"Trigger Cooldown"},f:[{t:2,r:"trigger_cooldown",p:[72,45,3402]}," seconds"]}],n:50,r:"can_trigger",p:[70,7,3266]}," ",{t:4,f:[{t:4,f:[{p:[76,9,3537],t:7,e:"ui-section",a:{label:"Activation Delay"},f:[{t:2,r:"activation_delay",p:[76,46,3574]}]}],n:50,r:"activation_delay",p:[75,8,3503]}," ",{t:4,f:[{p:[79,9,3655],t:7,e:"ui-section",a:{label:"Timer"},f:[{t:2,r:"timer",p:[79,35,3681]}]}," ",{p:[80,9,3713],t:7,e:"ui-section",a:{label:"Timer Type"},f:[{t:2,r:"timer_type",p:[80,40,3744]}]}],n:50,r:"timer",p:[78,8,3632]}," ",{t:4,f:[{t:4,f:[{p:[84,11,3868],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,30,3887]}]},f:[{t:2,r:"value",p:[84,40,3897]}]}],n:52,r:"extra_settings",p:[83,9,3832]}],n:50,r:"has_extra_settings",p:[82,8,3796]}," ",{t:4,f:[{t:4,f:[{p:[89,10,4035],t:7,e:"ui-section",a:{label:"Activation Code"},f:[{t:2,r:"activation_code",p:[89,46,4071]}]}],n:50,r:"activation_code",p:[88,9,4001]}," ",{t:4,f:[{p:[92,10,4166],t:7,e:"ui-section",a:{label:"Deactivation Code"},f:[{t:2,r:"deactivation_code",p:[92,48,4204]}]}],n:50,r:"deactivation_code",p:[91,9,4130]}," ",{t:4,f:[{p:[95,10,4293],t:7,e:"ui-section",a:{label:"Kill Code"},f:[{t:2,r:"kill_code",p:[95,40,4323]}]}],n:50,r:"kill_code",p:[94,9,4265]}," ",{t:4,f:[{p:[98,10,4407],t:7,e:"ui-section",a:{label:"Trigger Code"},f:[{t:2,r:"trigger_code",p:[98,43,4440]}]}],n:50,r:"trigger_code",p:[97,9,4376]}],n:50,x:{r:["data.scan_level"],s:"_0>=4"},p:[87,8,3963]}],n:50,x:{r:["data.scan_level"],s:"_0>=3"},p:[74,7,3466]}],n:50,x:{r:["data.scan_level"],s:"_0>=2"},p:[67,6,3061]}]}],n:52,r:"data.mob_programs",p:[63,5,2814]}]}]}],x:{r:["data.has_nanites"],s:"!_0"}}]}],r:"data.status_msg"}]}]},e.exports=a.extend(r.exports)},{341:341}],408:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Cloud Console"},f:[{p:[2,1,43],t:7,e:"ui-display",a:{title:"Program Disk"},f:[{t:4,f:[{p:[4,3,104],t:7,e:"ui-button",a:{icon:"eject",action:"eject"},f:["Eject Disk"]},{p:[4,64,165],t:7,e:"br"}," ",{t:4,f:[{p:[6,4,202],t:7,e:"ui-section",f:[{p:[7,5,220],t:7,e:"ui-section",a:{label:"Program Name"},f:[{t:2,r:"data.disk.name",p:[7,38,253]}]}," ",{p:[8,5,290],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.disk.desc",p:[8,37,322]}]}," ",{p:[9,5,359],t:7,e:"ui-section",a:{label:"Activation Status"},f:[{t:2,x:{r:["data.disk.activated"],s:'_0?"Active":"Inactive"'},p:[9,43,397]}]}," ",{t:4,f:[{p:[11,6,505],t:7,e:"ui-section",a:{label:"Activation Delay"},f:[{t:2,r:"data.disk.activation_delay",p:[11,43,542]}]}],n:50,r:"data.disk.activation_delay",p:[10,5,464]}," ",{t:4,f:[{p:[14,6,634],t:7,e:"ui-section",a:{label:"Timer"},f:[{t:2,r:"data.disk.timer",p:[14,32,660]}]}," ",{p:[15,6,699],t:7,e:"ui-section",a:{label:"Timer Type "},f:[{t:2,r:"data.disk.timer_type",p:[15,38,731]}]}],n:50,r:"data.disk.timer",p:[13,5,604]}," ",{t:4,f:[{p:[18,6,827],t:7,e:"ui-section",a:{label:"Activation Code"},f:[{t:2,r:"data.disk.activation_code",p:[18,42,863]}]}],n:50,r:"data.disk.activation_code",p:[17,5,787]}," ",{t:4,f:[{p:[21,6,966],t:7,e:"ui-section",a:{label:"Deactivation Code"},f:[{t:2,r:"data.disk.deactivation_code",p:[21,44,1004]}]}],n:50,r:"data.disk.deactivation_code",p:[20,5,924]}," ",{t:4,f:[{p:[24,6,1101],t:7,e:"ui-section",a:{label:"Kill Code"},f:[{t:2,r:"data.disk.kill_code",p:[24,36,1131]}]}],n:50,r:"data.disk.kill_code",p:[23,5,1067]}," ",{t:4,f:[{p:[27,6,1223],t:7,e:"ui-section",a:{label:"Trigger Code"},f:[{t:2,r:"data.disk.trigger_code",p:[27,39,1256]}]}],n:50,r:"data.disk.trigger_code",p:[26,5,1186]}," ",{t:4,f:[{t:4,f:[{p:[31,8,1400],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[31,27,1419]}]},f:[{t:2,r:"value",p:[31,37,1429]}]}],n:52,r:"data.disk.extra_settings",p:[30,6,1357]}],n:50,r:"data.disk.has_extra_settings",p:[29,5,1314]}]}],n:50,r:"data.has_program",p:[5,3,173]},{t:4,n:51,f:[{p:[36,4,1515],t:7,e:"ui-notice",f:["No program detected."]}],r:"data.has_program"}],n:50,r:"data.has_disk",p:[3,2,79]},{t:4,n:51,f:[{p:[39,3,1584],t:7,e:"ui-notice",f:["Insert disk."]}],r:"data.has_disk"}]}," ",{p:[42,1,1646],t:7,e:"ui-display",a:{title:"Cloud Storage"},f:[{t:4,f:[{p:[44,3,1713],t:7,e:"ui-button",a:{icon:"plus-circle",action:"create_backup"},f:["Create New Backup"]}," ",{p:[45,3,1799],t:7,e:"ui-display",a:{title:"Active Backups"},f:[{t:4,f:[{p:[47,5,1873],t:7,e:"ui-button",a:{action:"set_view",params:['{"view": "',{t:2,r:"cloud_id",p:[47,52,1920]},'"}']},f:["Backup #",{t:2,r:"cloud_id",p:[47,76,1944]}]}],n:52,r:"data.cloud_backups",p:[46,4,1839]}]}],n:50,x:{r:["data.current_view"],s:"!_0"},p:[43,2,1683]},{t:4,n:51,f:[{p:[51,3,2014],t:7,e:"ui-button",a:{icon:"undo",action:"set_view",params:'{"view": "0"}'},f:["Return"]}," ",{t:4,f:[{p:[53,4,2131],t:7,e:"ui-notice",f:["ERROR: Backup not found."]}],n:50,x:{r:["data.cloud_backup"],s:"!_0"},p:[52,3,2100]},{t:4,n:51,f:[{p:[55,4,2195],t:7,e:"ui-display",a:{title:["Backup #",{t:2,r:"data.current_view",p:[55,31,2222]}]},f:[{t:4,f:[{p:[57,6,2282],t:7,e:"ui-button",a:{icon:"upload",action:"upload_program",style:"selected"},f:["Upload Program From Disk"]},{p:[57,108,2384],t:7,e:"br"}],n:50,r:"data.has_program",p:[56,5,2251]}," ",{t:4,f:[{p:[60,6,2443],t:7,e:"hr"}," ",{p:[61,6,2454],t:7,e:"ui-section",f:[{p:[62,7,2474],t:7,e:"h3",f:[{t:2,r:"name",p:[62,11,2478]}]}," ",{p:[63,7,2499],t:7,e:"div",a:{style:"float:right"},f:[{p:[64,8,2533],t:7,e:"ui-button",a:{icon:"minus-circle",action:"remove_program",style:"danger",params:['{"program_id": "',{t:2,r:"id",p:[64,102,2627]},'"}']},f:["Uninstall"]}]}]}," ",{p:[67,6,2699],t:7,e:"ui-section",f:[{p:[68,7,2719],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"desc",p:[68,39,2751]}]}," ",{p:[69,7,2780],t:7,e:"ui-section",a:{label:"Activation Status"},f:[{t:2,x:{r:["activated"],s:'_0?"Active":"Inactive"'},p:[69,45,2818]}]}," ",{p:[70,7,2877],t:7,e:"ui-section",a:{label:"Nanites Consumed"},f:[{t:2,r:"use_rate",p:[70,44,2914]},"/s"]}," ",{t:4,f:[{p:[72,8,2977],t:7,e:"ui-section",a:{label:"Trigger Cost"},f:[{t:2,r:"trigger_cost",p:[72,41,3010]},"/s"]}," ",{p:[73,8,3050],t:7,e:"ui-section",a:{label:"Trigger Cooldown"},f:[{t:2,r:"trigger_cooldown",p:[73,45,3087]},"/s"]}],n:50,r:"can_trigger",p:[71,7,2949]}," ",{t:4,f:[{p:[76,8,3178],t:7,e:"ui-section",a:{label:"Activation Delay"},f:[{t:2,r:"activation_delay",p:[76,45,3215]}]}],n:50,r:"activation_delay",p:[75,7,3145]}," ",{t:4,f:[{p:[79,8,3293],t:7,e:"ui-section",a:{label:"Timer"},f:[{t:2,r:"timer",p:[79,34,3319]}]}," ",{p:[80,8,3350],t:7,e:"ui-section",a:{label:"Timer Type "},f:[{t:2,r:"timer_type",p:[80,40,3382]}]}],n:50,r:"timer",p:[78,7,3271]}," ",{t:4,f:[{p:[83,8,3464],t:7,e:"ui-section",a:{label:"Activation Code"},f:[{t:2,r:"activation_code",p:[83,44,3500]}]}],n:50,r:"activation_code",p:[82,7,3432]}," ",{t:4,f:[{p:[86,8,3589],t:7,e:"ui-section",a:{label:"Deactivation Code"},f:[{t:2,r:"deactivation_code",p:[86,46,3627]}]}],n:50,r:"deactivation_code",p:[85,7,3555]}," ",{t:4,f:[{p:[89,8,3710],t:7,e:"ui-section",a:{label:"Kill Code"},f:[{t:2,r:"kill_code",p:[89,38,3740]}]}],n:50,r:"kill_code",p:[88,7,3684]}," ",{t:4,f:[{p:[92,8,3818],t:7,e:"ui-section",a:{label:"Trigger Code"},f:[{t:2,r:"trigger_code",p:[92,41,3851]}]}],n:50,r:"trigger_code",p:[91,7,3789]}," ",{t:4,f:[{t:4,f:[{p:[96,10,3973],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[96,29,3992]}]},f:[{t:2,r:"value",p:[96,39,4002]}]}],n:52,r:"extra_settings",p:[95,8,3938]}],n:50,r:"has_extra_settings",p:[94,7,3903]}]}],n:52,r:"data.cloud_programs",p:[59,5,2407]}]}],x:{r:["data.cloud_backup"],s:"!_0"}}],x:{r:["data.current_view"],s:"!_0"}}]}]}]},e.exports=a.extend(r.exports)},{341:341}],409:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Program Hub"},f:[{t:4,f:[{p:[3,2,65],t:7,e:"ui-display",a:{title:"Program Disk"},f:[{p:[4,3,102],t:7,e:"ui-section",f:[{p:[5,4,119],t:7,e:"ui-button",a:{icon:"eject",action:"eject"},f:["Eject Disk"]}," ",{p:[6,4,185],t:7,e:"ui-button",a:{icon:"minus-circle",action:"clear"},f:["Delete Program"]}]}," ",{t:4,f:[{p:[9,4,307],t:7,e:"ui-section",a:{label:"Program Name"},f:[{t:2,r:"data.disk.name",p:[9,37,340]}]}," ",{p:[10,4,376],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.disk.desc",p:[10,36,408]}]}],n:50,r:"data.has_program",p:[8,3,278]},{t:4,n:51,f:[{p:[12,4,456],t:7,e:"ui-notice",f:["No program installed."]}],r:"data.has_program"}]}],n:50,r:"data.has_disk",p:[2,1,41]},{t:4,n:51,f:[{p:[16,2,540],t:7,e:"ui-notice",f:["Insert disk."]}],r:"data.has_disk"},{p:[18,1,586],t:7,e:"br"}," ",{p:[19,1,592],t:7,e:"ui-display",a:{title:"Programs"},f:[{p:[20,2,624],t:7,e:"ui-section",f:[{p:[21,3,640],t:7,e:"ui-button",a:{icon:"undo",action:"set_category",params:'{"category": "Main"}'},f:["Return"]}," ",{p:[22,3,737],t:7,e:"ui-button",a:{icon:"align-justify ",action:"toggle_details"},f:[{t:2,x:{r:["data.detail_view"],s:'_0?"Compact View":"Detailed View"'},p:[22,60,794]}]}]}," ",{t:4,f:[{p:[25,3,916],t:7,e:"ui-display",f:[{t:4,f:[{p:[27,5,964],t:7,e:"ui-section",f:[{p:[27,17,976],t:7,e:"ui-button",a:{action:"set_category",params:['{"category": "',{t:2,r:"name",p:[27,72,1031]},'"}']},f:[{t:2,r:"name",p:[27,84,1043]}]}]}],n:52,r:"data.categories",p:[26,4,933]}]}],n:50,x:{r:["data.category"],s:'_0=="Main"'},p:[24,2,881]},{t:4,n:51,f:[{p:[31,3,1122],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[31,22,1141]}]},f:[{t:4,f:[{t:4,f:[{p:[34,6,1229],t:7,e:"ui-display",f:[{p:[35,7,1249],t:7,e:"ui-section",f:[{p:[35,19,1261],t:7,e:"b",f:[{t:2,r:"name",p:[35,22,1264]}]}]}," ",{p:[36,7,1297],t:7,e:"ui-section",f:[{t:2,r:"desc",p:[36,19,1309]}]}," ",{p:[37,7,1338],t:7,e:"ui-section",f:[{p:[38,8,1359],t:7,e:"ui-button",a:{icon:"download",action:"download",params:['{"program_id": "',{t:2,r:"id",p:[38,77,1428]},'"}'],state:[{t:2,x:{r:["data.has_disk"],s:'_0?null:"disabled"'},p:[38,94,1445]}]},f:["Download"]}]}]}],n:50,r:"data.detail_view",p:[33,5,1198]},{t:4,n:51,f:[{p:[44,6,1585],t:7,e:"ui-section",f:[{p:[44,18,1597],t:7,e:"ui-button",a:{action:"download",params:['{"program_id": "',{t:2,r:"id",p:[44,71,1650]},'"}']},f:[{t:2,r:"name",p:[44,81,1660]}]}]}],r:"data.detail_view"}],n:52,r:"data.program_list",p:[32,4,1165]}]}],x:{r:["data.category"],s:'_0=="Main"'}}]}]}]},e.exports=a.extend(r.exports)},{341:341}],410:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Programming"},f:[{t:4,f:[{p:[3,3,67],t:7,e:"ui-notice",f:["Insert a nanite program disk."]}],n:50,x:{r:["data.has_disk"],s:"!_0"},p:[2,1,41]},{t:4,n:51,f:[{p:[5,3,133],t:7,e:"ui-button",a:{icon:"eject",action:"eject"},f:["Eject Disk"]}," ",{t:4,f:[{p:[7,5,229],t:7,e:"ui-notice",f:["No program detected."]}],n:50,x:{r:["data.has_program"],s:"!_0"},p:[6,3,198]},{t:4,n:51,f:[{p:[9,5,290],t:7,e:"ui-section",f:[{p:[10,7,310],t:7,e:"ui-display",a:{title:[{t:2,r:"data.name",p:[10,26,329]}]},f:[{t:2,r:"data.desc",p:[11,9,354]}]}]}," ",{p:[14,5,413],t:7,e:"ui-section",f:[{p:[15,7,433],t:7,e:"ui-section",a:{label:"Program Info"},f:["Nanites Consumed: ",{t:2,r:"data.use_rate",p:[16,26,493]},{p:[16,43,510],t:7,e:"br"}," ",{t:4,f:["Trigger Cost: ",{t:2,r:"data.trigger_cost",p:[18,25,574]},"u",{p:[18,47,596],t:7,e:"br"}],n:50,r:"data.can_trigger",p:[17,9,524]}]}," ",{p:[22,7,648],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[23,9,685],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.activated"],s:'_0?"toggle-on":"toggle-off"'},p:[24,17,713]}],action:"toggle_active"},f:[{t:2,x:{r:["data.activated"],s:'_0?"Active":"Inactive"'},p:[26,11,809]}]}]}," ",{p:[30,7,905],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[31,9,944],t:7,e:"ui-button",a:{icon:"pencil",action:"set_activation_delay"}}," Activation Delay: ",{t:2,r:"data.activation_delay",p:[31,95,1030]}," ",{p:[31,121,1056],t:7,e:"br"}," ",{p:[32,9,1070],t:7,e:"ui-button",a:{icon:"pencil",action:"set_timer"}}," Timer: ",{t:2,r:"data.timer",p:[32,73,1134]}," ",{p:[32,88,1149],t:7,e:"br"}," ",{p:[33,9,1163],t:7,e:"ui-button",a:{icon:"pencil",action:"set_timer_type"}}," Timer Type: ",{t:2,r:"data.timer_type",p:[33,83,1237]}," ",{p:[33,103,1257],t:7,e:"br"}]}," ",{p:[36,7,1292],t:7,e:"ui-section",a:{label:"Codes"},f:[{p:[37,9,1328],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code",params:'{"target_code": "activation"}'}}," Activation Code: ",{t:2,r:"data.activation_code",p:[37,121,1440]}," ",{p:[37,146,1465],t:7,e:"br"}," ",{p:[38,9,1479],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code",params:'{"target_code": "deactivation"}'}}," Deactivation Code: ",{t:2,r:"data.deactivation_code",p:[38,125,1595]}," ",{p:[38,152,1622],t:7,e:"br"}," ",{p:[39,9,1636],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code",params:'{"target_code": "kill"}'}}," Kill Code: ",{t:2,r:"data.kill_code",p:[39,109,1736]}," ",{p:[39,128,1755],t:7,e:"br"}," ",{t:4,f:[{p:[41,11,1805],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code",params:'{"target_code": "trigger"}'}}," Trigger Code: ",{t:2,r:"data.trigger_code",p:[41,117,1911]}," ",{p:[41,139,1933],t:7,e:"br"}],n:50,r:"data.can_trigger",p:[40,9,1769]}]}," ",{t:4,f:[{p:[46,9,2026],t:7,e:"ui-section",a:{label:"Special"},f:[{t:4,f:[{p:[48,13,2109],t:7,e:"ui-button",a:{icon:"pencil",action:"set_extra_setting",params:['{"target_setting": "',{t:2,r:"name",p:[48,93,2189]},'"}']}}," ",{t:2,r:"name",p:[48,118,2214]},": ",{t:2,r:"value",p:[48,128,2224]}," ",{p:[48,138,2234],t:7,e:"br"}],n:52,r:"data.extra_settings",p:[47,11,2066]}]}],n:50,r:"data.has_extra_settings",p:[45,7,1985]}]}],x:{r:["data.has_program"],s:"!_0"}}],x:{r:["data.has_disk"],s:"!_0"}}]}]},e.exports=a.extend(r.exports)},{341:341}],411:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Control"},f:[{t:4,f:[{p:[3,3,60],t:7,e:"ui-notice",f:["The interface is locked."]}],n:50,r:"data.locked",p:[2,1,37]},{t:4,n:51,f:[{p:[5,3,121],t:7,e:"ui-button",a:{icon:"lock",action:"lock"},f:["Lock Interface"]}," ",{p:[6,3,188],t:7,e:"ui-button",a:{icon:"save",action:"save"},f:["Save Current Setting"]}," ",{p:[7,3,261],t:7,e:"ui-section",a:{label:"Signal Code"},f:[{p:[8,5,299],t:7,e:"span",f:[{t:2,r:"data.code",p:[8,11,305]}]}," ",{p:[9,4,330],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code"},f:["Set"]}]}," ",{t:4,f:[{p:[12,5,443],t:7,e:"ui-section",a:{label:"Relay Code"},f:[{p:[13,7,482],t:7,e:"span",f:[{t:2,r:"data.relay_code",p:[13,13,488]}]}," ",{p:[14,5,520],t:7,e:"ui-button",a:{icon:"pencil",action:"set_relay_code"},f:["Set"]}]}],n:50,x:{r:["data.mode"],s:'_0=="Relay"'},p:[11,3,409]}," ",{p:[17,3,618],t:7,e:"ui-section",a:{label:"Signal Mode"},f:[{p:[18,5,656],t:7,e:"span",f:[{t:2,r:"data.mode",p:[18,11,662]}]}," ",{p:[19,5,688],t:7,e:"br"}," ",{p:[20,4,697],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Off"}'},f:["Off"]}," ",{p:[21,5,775],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Local"}'},f:["Local"]}," ",{p:[22,5,857],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Targeted"}'},f:["Targeted"]}," ",{p:[23,5,945],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Area"}'},f:["Area"]}," ",{p:[24,5,1025],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Relay"}'},f:["Relay"]}]}],r:"data.locked"}]}," ",{p:[28,1,1144],t:7,e:"ui-display",a:{title:"Saved Settings"},f:[{t:4,f:[{p:[30,3,1215],t:7,e:"ui-button",a:{icon:"load",action:"load",params:['{"save_id": "',{t:2,r:"id",p:[30,61,1273]},'"}']},f:[{t:2,r:"name",p:[30,71,1283]}]}," ",{t:4,f:[{p:[32,4,1332],t:7,e:"ui-button",a:{icon:"remove",action:"remove_save",params:['{"save_id": "',{t:2,r:"id",p:[32,71,1399]},'"}']},f:["Remove"]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[31,3,1307]}," ",{p:[34,3,1442],t:7,e:"br"}],n:52,r:"data.saved_settings",p:[29,2,1182]}]}]},e.exports=a.extend(r.exports)},{341:341}],412:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Ghost roles"},f:[{p:[2,2,35],t:7,e:"ui-section",a:{label:"Ignored roles"},f:[{t:4,f:[{p:[4,4,99],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["enabled"],s:'_0?"check-square-o":"square-o"'},p:[4,21,116]}],style:[{t:2,x:{r:["enabled"],s:'_0?"danger":null'},p:[4,73,168]}],action:"toggle_ignore",params:['{"key": "',{t:2,r:"key",p:[4,144,239]},'"}']},f:[{t:2,r:"desc",p:[4,155,250]}]}],n:52,r:"data.ignore",p:[3,3,73]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],413:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Relay"},f:[{t:4,f:[{p:[3,3,57],t:7,e:"h2",f:["NETWORK BUFFERS OVERLOADED"]}," ",{p:[4,3,96],t:7,e:"h3",f:["Overload Recovery Mode"]}," ",{p:[5,3,131],t:7,e:"i",f:["This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."]}," ",{p:[6,3,484],t:7,e:"h3",f:["ADMINISTRATIVE OVERRIDE"]}," ",{p:[7,3,520],t:7,e:"b",f:["CAUTION - Data loss may occur"]}," ",{p:[8,3,562],t:7,e:"ui-button",a:{icon:"signal",action:"restart"},f:["Purge buffered traffic"]}],n:50,r:"data.dos_crashed",p:[2,2,29]},{t:4,n:51,f:[{p:[12,3,663],t:7,e:"ui-section",a:{label:"Relay status"},f:[{p:[13,4,701],t:7,e:"ui-button",a:{icon:"power-off",action:"toggle"},f:[{t:2,x:{r:["data.enabled"],s:'_0?"ENABLED":"DISABLED"'},p:[14,6,752]}]}]}," ",{p:[18,3,836],t:7,e:"ui-section",a:{label:"Network buffer status"},f:[{t:2,r:"data.dos_overload",p:[19,4,883]}," / ",{t:2,r:"data.dos_capacity",p:[19,28,907]}," GQ"]}],r:"data.dos_crashed"}]}]},e.exports=a.extend(r.exports)},{341:341}],414:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{healthState:function(){var t=this.get("data.health");return t>70?"good":t>50?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,320],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[18,3,363],t:7,e:"ui-notice",f:[{p:[19,5,380],t:7,e:"span",f:["Reconstruction in progress!"]}]}],n:50,r:"data.restoring",p:[17,1,337]},{p:[24,1,451],t:7,e:"ui-display",f:[{p:[26,1,467],t:7,e:"div",a:{"class":"item"},f:[{p:[27,3,489],t:7,e:"div",a:{"class":"itemLabel"},f:["Inserted AI:"]}," ",{p:[30,3,541],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[31,2,569],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",state:[{t:2,x:{r:["data.nocard"],s:'_0?"disabled":null'},p:[31,52,619]}]},f:[{t:2,x:{r:["data.name"],s:'_0?_0:"---"'},p:[31,89,656]}]}]}]}," ",{t:4,f:[{p:[36,2,744],t:7,e:"b",f:["ERROR: ",{t:2,r:"data.error",p:[36,12,754]}]}],n:50,r:"data.error",p:[35,1,723]},{t:4,n:51,f:[{p:[38,2,785],t:7,e:"h2",f:["System Status"]}," ",{p:[39,2,810],t:7,e:"div",a:{"class":"item"},f:[{p:[40,3,832],t:7,e:"div",a:{"class":"itemLabel"},f:["Current AI:"]}," ",{p:[43,3,885],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.name",p:[44,4,915]}]}," ",{p:[46,3,942],t:7,e:"div",a:{"class":"itemLabel"},f:["Status:"]}," ",{p:[49,3,991],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["Nonfunctional"],n:50,r:"data.isDead",p:[50,4,1021]},{t:4,n:51,f:["Functional"],r:"data.isDead"}]}," ",{p:[56,3,1114],t:7,e:"div",a:{"class":"itemLabel"},f:["System Integrity:"]}," ",{p:[59,3,1173],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[60,4,1203],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[60,37,1236]}],state:[{t:2,r:"healthState",p:[61,11,1264]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[61,28,1281]},"%"]}]}," ",{p:[63,3,1336],t:7,e:"div",a:{"class":"itemLabel"},f:["Active Laws:"]}," ",{p:[66,3,1390],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[67,4,1420],t:7,e:"table",f:[{t:4,f:[{p:[69,6,1462],t:7,e:"tr",f:[{p:[69,10,1466],t:7,e:"td",f:[{p:[69,14,1470],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[69,38,1494]}]}]}]}],n:52,r:"data.ai_laws",p:[68,5,1433]}]}]}," ",{p:[73,2,1547],t:7,e:"ui-section",a:{label:"Operations"},f:[{p:[74,3,1582],t:7,e:"ui-button",a:{icon:"plus",style:[{t:2,x:{r:["data.restoring"],s:'_0?"disabled":null'},p:[74,33,1612]}],action:"PRG_beginReconstruction"},f:["Begin Reconstruction"]}]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],415:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[5,1,91],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"home",params:'{"target" : "mod"}',state:[{t:2,x:{r:["data.mmode"],s:'_0==1?"disabled":null'},p:[5,80,170]}]},f:["Access Modification"]}],n:50,r:"data.have_id_slot",p:[4,1,64]},{p:[7,1,253],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"folder-open",params:'{"target" : "manage"}',state:[{t:2,x:{r:["data.mmode"],s:'_0==2?"disabled":null'},p:[7,90,342]}]},f:["Job Management"]}," ",{p:[8,1,411],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"folder-open",params:'{"target" : "manifest"}',state:[{t:2,x:{r:["data.mmode"],s:'!_0?"disabled":null'},p:[8,92,502]}]},f:["Crew Manifest"]}," ",{t:4,f:[{p:[10,1,593],t:7,e:"ui-button",a:{action:"PRG_print",icon:"print",state:[{t:2,x:{r:["data.has_id","data.mmode"],s:'!_1||_0&&_1==1?null:"disabled"'},p:[10,51,643]}]},f:["Print"]}],n:50,r:"data.have_printer",p:[9,1,566]},{t:4,f:[{p:[14,1,766],t:7,e:"div",a:{"class":"item"},f:[{p:[15,3,788],t:7,e:"h2",f:["Crew Manifest"]}," ",{p:[16,3,814],t:7,e:"br"},"Please use security record computer to modify entries.",{p:[16,61,872],t:7,e:"br"},{p:[16,65,876],t:7,e:"br"}]}," ",{t:4,f:[{p:[19,2,916],t:7,e:"div",a:{"class":"item"},f:[{t:2,r:"name",p:[20,2,937]}," - ",{t:2,r:"rank",p:[20,13,948]}]}],n:52,r:"data.manifest",p:[18,1,890]}],n:50,x:{r:["data.mmode"],s:"!_0"},p:[13,1,745]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.mmode"],s:"_0==2"},f:[{p:[25,1,1008],t:7,e:"div",a:{"class":"item"},f:[{p:[26,3,1030],t:7,e:"h2",f:["Job Management"]}]}," ",{p:[28,1,1063],t:7,e:"table",f:[{p:[29,1,1072],t:7,e:"tr",f:[{p:[29,5,1076],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,27,1098],t:7,e:"b",f:["Job"]}]},{p:[29,42,1113],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,64,1135],t:7,e:"b",f:["Slots"]}]},{p:[29,81,1152],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,103,1174],t:7,e:"b",f:["Open job"]}]},{p:[29,123,1194],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,145,1216],t:7,e:"b",f:["Close job"]}]}]}," ",{t:4,f:[{p:[32,2,1269],t:7,e:"tr",f:[{p:[32,6,1273],t:7,e:"td",f:[{t:2,r:"title",p:[32,10,1277]}]},{p:[32,24,1291],t:7,e:"td",f:[{t:2,r:"current",p:[32,28,1295]},"/",{t:2,r:"total",p:[32,40,1307]}]},{p:[32,54,1321],t:7,e:"td",f:[{p:[32,58,1325],t:7,e:"ui-button",a:{action:"PRG_open_job",params:['{"target" : "',{t:2,r:"title",p:[32,112,1379]},'"}'],state:[{t:2,x:{r:["status_open"],s:'_0?null:"disabled"'},p:[32,132,1399]}]},f:[{t:2,r:"desc_open",p:[32,169,1436]}]},{p:[32,194,1461],t:7,e:"br"}]},{p:[32,203,1470],t:7,e:"td",f:[{p:[32,207,1474],t:7,e:"ui-button",a:{action:"PRG_close_job",params:['{"target" : "',{t:2,r:"title",p:[32,262,1529]},'"}'],state:[{t:2,x:{r:["status_close"],s:'_0?null:"disabled"'},p:[32,282,1549]}]},f:[{t:2,r:"desc_close",p:[32,320,1587]}]}]}]}],n:52,r:"data.slots",p:[30,1,1244]}]}]},{t:4,n:50,x:{r:["data.mmode"],s:"!(_0==2)"},f:[" ",{p:[40,1,1665],t:7,e:"div",a:{"class":"item"},f:[{p:[41,3,1687],t:7,e:"h2",f:["Access Modification"]}]}," ",{t:4,f:[{p:[45,3,1751],t:7,e:"span",a:{"class":"alert"},f:[{p:[45,23,1771],t:7,e:"i",f:["Please insert the ID into the terminal to proceed."]}]},{p:[45,87,1835],t:7,e:"br"}],n:50,x:{r:["data.has_id"],s:"!_0"},p:[44,1,1727]},{p:[48,1,1852],t:7,e:"div",a:{"class":"item"},f:[{p:[49,3,1874],t:7,e:"div",a:{"class":"itemLabel"},f:["Target Identity:"]}," ",{p:[52,3,1930],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[53,2,1958],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "id"}'},f:[{t:2,r:"data.id_name",p:[53,72,2028]}]}]}]}," ",{p:[56,1,2076],t:7,e:"div",a:{"class":"item"},f:[{p:[57,3,2098],t:7,e:"div",a:{"class":"itemLabel"},f:["Auth Identity:"]}," ",{p:[60,3,2152],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[61,2,2180],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "auth"}'},f:[{t:2,r:"data.auth_name",p:[61,74,2252]}]}]}]}," ",{p:[64,1,2302],t:7,e:"hr"}," ",{t:4,f:[{t:4,f:[{p:[68,2,2362],t:7,e:"div",a:{"class":"item"},f:[{p:[69,4,2385],t:7,e:"h2",f:["Details"]}]}," ",{t:4,f:[{p:[73,2,2436],t:7,e:"div",a:{"class":"item"},f:[{p:[74,4,2459],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[77,4,2518],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_owner",p:[78,3,2547]}]}]}," ",{p:[81,2,2587],t:7,e:"div",a:{"class":"item"},f:[{p:[82,4,2610],t:7,e:"div",a:{"class":"itemLabel"},f:["Rank:"]}," ",{p:[85,4,2658],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_rank",p:[86,3,2687]}]}]}," ",{p:[89,2,2726],t:7,e:"div",a:{"class":"item"},f:[{p:[90,4,2749],t:7,e:"div",a:{"class":"itemLabel"},f:["Demote:"]}," ",{p:[93,4,2799],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[94,3,2828],t:7,e:"ui-button",a:{action:"PRG_terminate",icon:"gear",state:[{t:2,x:{r:["data.id_rank"],s:'_0=="Unassigned"?"disabled":null'},p:[94,56,2881]}]},f:["Demote ",{t:2,r:"data.id_owner",p:[94,117,2942]}]}]}]}],n:50,r:"data.minor",p:[72,2,2415]},{t:4,n:51,f:[{p:[99,2,3007],t:7,e:"div",a:{"class":"item"},f:[{p:[100,4,3030],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"] -}," ",{p:[103,4,3089],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[104,3,3118],t:7,e:"ui-button",a:{action:"PRG_edit",icon:"pencil",params:'{"name" : "1"}'},f:[{t:2,r:"data.id_owner",p:[104,70,3185]}]}]}]}," ",{p:[108,2,3239],t:7,e:"div",a:{"class":"item"},f:[{p:[109,4,3262],t:7,e:"h2",f:["Assignment"]}]}," ",{p:[111,3,3294],t:7,e:"ui-button",a:{action:"PRG_togglea",icon:"gear"},f:[{t:2,x:{r:["data.assignments"],s:'_0?"Hide assignments":"Show assignments"'},p:[111,47,3338]}]}," ",{p:[112,2,3415],t:7,e:"div",a:{"class":"item"},f:[{p:[113,4,3438],t:7,e:"span",a:{id:"allvalue.jobsslot"},f:[]}]}," ",{p:[117,2,3495],t:7,e:"div",a:{"class":"item"},f:[{t:4,f:[{p:[119,4,3547],t:7,e:"div",a:{id:"all-value.jobs"},f:[{p:[120,3,3576],t:7,e:"table",f:[{p:[121,5,3589],t:7,e:"tr",f:[{p:[122,4,3598],t:7,e:"th",f:["Command"]}," ",{p:[123,4,3619],t:7,e:"td",f:[{p:[124,6,3630],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Captain"}',state:[{t:2,x:{r:["data.id_rank"],s:'_0=="Captain"?"selected":null'},p:[124,83,3707]}]},f:["Captain"]}]}]}," ",{p:[127,5,3804],t:7,e:"tr",f:[{p:[128,4,3813],t:7,e:"th",f:["Special"]}," ",{p:[129,4,3834],t:7,e:"td",f:[{p:[130,6,3845],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Custom"}'},f:["Custom"]}]}]}," ",{p:[133,5,3959],t:7,e:"tr",f:[{p:[134,4,3968],t:7,e:"th",a:{style:"color: '#FFA500';"},f:["Engineering"]}," ",{p:[135,4,4019],t:7,e:"td",f:[{t:4,f:[{p:[137,5,4067],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[137,64,4126]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[137,82,4144]}]},f:[{t:2,r:"display_name",p:[137,127,4189]}]}],n:52,r:"data.engineering_jobs",p:[136,6,4030]}]}]}," ",{p:[141,5,4260],t:7,e:"tr",f:[{p:[142,4,4269],t:7,e:"th",a:{style:"color: '#008000';"},f:["Medical"]}," ",{p:[143,4,4316],t:7,e:"td",f:[{t:4,f:[{p:[145,5,4360],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[145,64,4419]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[145,82,4437]}]},f:[{t:2,r:"display_name",p:[145,127,4482]}]}],n:52,r:"data.medical_jobs",p:[144,6,4327]}]}]}," ",{p:[149,5,4553],t:7,e:"tr",f:[{p:[150,4,4562],t:7,e:"th",a:{style:"color: '#800080';"},f:["Science"]}," ",{p:[151,4,4609],t:7,e:"td",f:[{t:4,f:[{p:[153,5,4653],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[153,64,4712]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[153,82,4730]}]},f:[{t:2,r:"display_name",p:[153,127,4775]}]}],n:52,r:"data.science_jobs",p:[152,6,4620]}]}]}," ",{p:[157,5,4846],t:7,e:"tr",f:[{p:[158,4,4855],t:7,e:"th",a:{style:"color: '#DD0000';"},f:["Security"]}," ",{p:[159,4,4903],t:7,e:"td",f:[{t:4,f:[{p:[161,5,4948],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[161,64,5007]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[161,82,5025]}]},f:[{t:2,r:"display_name",p:[161,127,5070]}]}],n:52,r:"data.security_jobs",p:[160,6,4914]}]}]}," ",{p:[165,5,5141],t:7,e:"tr",f:[{p:[166,4,5150],t:7,e:"th",a:{style:"color: '#cc6600';"},f:["Cargo"]}," ",{p:[167,4,5195],t:7,e:"td",f:[{t:4,f:[{p:[169,5,5237],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[169,64,5296]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[169,82,5314]}]},f:[{t:2,r:"display_name",p:[169,127,5359]}]}],n:52,r:"data.cargo_jobs",p:[168,6,5206]}]}]}," ",{p:[173,5,5430],t:7,e:"tr",f:[{p:[174,4,5439],t:7,e:"th",a:{style:"color: '#808080';"},f:["Civilian"]}," ",{p:[175,4,5487],t:7,e:"td",f:[{t:4,f:[{p:[177,5,5532],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[177,64,5591]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[177,82,5609]}]},f:[{t:2,r:"display_name",p:[177,127,5654]}]}],n:52,r:"data.civilian_jobs",p:[176,6,5498]}]}]}," ",{t:4,f:[{p:[182,4,5757],t:7,e:"tr",f:[{p:[183,6,5768],t:7,e:"th",a:{style:"color: '#A52A2A';"},f:["CentCom"]}," ",{p:[184,6,5817],t:7,e:"td",f:[{t:4,f:[{p:[186,7,5862],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[186,66,5921]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[186,84,5939]}]},f:[{t:2,r:"display_name",p:[186,129,5984]}]}],n:52,r:"data.centcom_jobs",p:[185,5,5827]}]}]}],n:50,r:"data.centcom_access",p:[181,5,5725]}]}]}],n:50,r:"data.assignments",p:[118,4,3518]}]}],r:"data.minor"}," ",{t:4,f:[{p:[198,4,6153],t:7,e:"div",a:{"class":"item"},f:[{p:[199,3,6175],t:7,e:"h2",f:["Central Command"]}]}," ",{p:[201,4,6215],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[203,5,6296],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[204,5,6331],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[204,64,6390]},'", "allowed" : "',{t:2,r:"allowed",p:[204,87,6413]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[204,109,6435]}]},f:[{t:2,r:"desc",p:[204,140,6466]}]}]}],n:52,r:"data.all_centcom_access",p:[202,3,6257]}]}],n:50,r:"data.centcom_access",p:[197,2,6121]},{t:4,n:51,f:[{p:[209,4,6538],t:7,e:"div",a:{"class":"item"},f:[{p:[210,3,6560],t:7,e:"h2",f:[{t:2,r:"data.station_name",p:[210,7,6564]}]}]}," ",{p:[212,4,6606],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[214,5,6676],t:7,e:"div",a:{style:"float: left; width: 175px; min-height: 250px"},f:[{p:[215,4,6739],t:7,e:"div",a:{"class":"average"},f:[{p:[215,25,6760],t:7,e:"ui-button",a:{action:"PRG_regsel",state:[{t:2,x:{r:["selected"],s:'_0?"toggle":null'},p:[215,63,6798]}],params:['{"region" : "',{t:2,r:"regid",p:[215,116,6851]},'"}']},f:[{p:[215,129,6864],t:7,e:"b",f:[{t:2,r:"name",p:[215,132,6867]}]}]}]}," ",{p:[216,4,6902],t:7,e:"br"}," ",{t:4,f:[{p:[218,6,6938],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[219,5,6973],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[219,64,7032]},'", "allowed" : "',{t:2,r:"allowed",p:[219,87,7055]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[219,109,7077]}]},f:[{t:2,r:"desc",p:[219,140,7108]}]}]}],n:52,r:"accesses",p:[217,6,6913]}]}],n:52,r:"data.regions",p:[213,3,6648]}]}],r:"data.centcom_access"}],n:50,r:"data.has_id",p:[67,3,2340]}],n:50,r:"data.authenticated",p:[66,1,2310]}]}],x:{r:["data.mmode"],s:"!_0"}}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],416:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{chargeState:function(t){var e=this.get("data.battery.max");return t>e/2?"good":t>e/4?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,311],t:7,e:"ntosheader"}," ",{p:[17,1,328],t:7,e:"ui-display",f:[{p:[18,2,343],t:7,e:"i",f:["Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device."]},{p:[18,137,478],t:7,e:"hr"}," ",{p:[19,2,485],t:7,e:"ui-display",a:{title:"Power Supply"},f:[{p:[20,3,522],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"data.power_usage",p:[21,4,559]},"W"]}," ",{t:4,f:[{p:[25,4,630],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Active"]}," ",{p:[28,4,701],t:7,e:"ui-section",a:{label:"Battery Rating"},f:[{t:2,r:"data.battery.max",p:[29,5,742]}]}," ",{p:[31,4,785],t:7,e:"ui-section",a:{label:"Battery Charge"},f:[{p:[32,5,826],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.battery.max",p:[32,26,847]}],value:[{t:2,r:"adata.battery.charge",p:[32,56,877]}],state:[{t:2,x:{r:["chargeState","adata.battery.charge"],s:"_0(_1)"},p:[32,89,910]}]},f:[{t:2,x:{r:["adata.battery.charge"],s:"Math.round(_0)"},p:[32,128,949]},"/",{t:2,r:"adata.battery.max",p:[32,165,986]}]}]}],n:50,r:"data.battery",p:[24,3,605]},{t:4,n:51,f:[{p:[35,4,1051],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Not Available"]}],r:"data.battery"}]}," ",{p:[41,2,1156],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,3,1192],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,4,1231],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,25,1252]}],value:[{t:2,r:"adata.disk_used",p:[43,53,1280]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,87,1314]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,123,1350]},"GQ"]}]}]}," ",{p:[47,2,1419],t:7,e:"ui-display",a:{title:"Computer Components"},f:[{t:4,f:[{p:[49,4,1491],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[49,26,1513]}]},f:[{p:[50,5,1529],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"desc",p:[50,59,1583]}]}," ",{p:[52,5,1605],t:7,e:"ui-section",a:{label:"State"},f:[{p:[53,6,1638],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["critical"],s:'_0?"disabled":null'},p:[53,24,1656]}],action:"PC_toggle_component",params:['{"name": "',{t:2,r:"name",p:[53,105,1737]},'"}']},f:[{t:2,x:{r:["enabled"],s:'_0?"Enabled":"Disabled"'},p:[54,7,1757]}]}]}," ",{t:4,f:[{p:[59,6,1868],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"powerusage",p:[60,7,1908]},"W"]}],n:50,r:"powerusage",p:[58,5,1843]}]}," ",{p:[64,4,1985],t:7,e:"br"}],n:52,r:"data.hardware",p:[48,3,1463]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],417:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,3,103],t:7,e:"h2",f:["An error has occurred and this program can not continue."]}," Additional information: ",{t:2,r:"data.error",p:[8,27,196]},{p:[8,41,210],t:7,e:"br"}," ",{p:[9,3,218],t:7,e:"i",f:["Please try again. If the problem persists contact your system administrator for assistance."]}," ",{p:[10,3,320],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["Restart program"]}],n:50,r:"data.error",p:[6,2,81]},{t:4,n:51,f:[{t:4,f:[{p:[13,4,422],t:7,e:"h2",f:["Viewing file ",{t:2,r:"data.filename",p:[13,21,439]}]}," ",{p:[14,4,466],t:7,e:"div",a:{"class":"item"},f:[{p:[15,4,489],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["CLOSE"]}," ",{p:[16,4,545],t:7,e:"ui-button",a:{action:"PRG_edit"},f:["EDIT"]}," ",{p:[17,4,595],t:7,e:"ui-button",a:{action:"PRG_printfile"},f:["PRINT"]}," "]},{p:[18,10,657],t:7,e:"hr"}," ",{t:3,r:"data.filedata",p:[19,4,666]}],n:50,r:"data.filename",p:[12,3,396]},{t:4,n:51,f:[{p:[21,4,702],t:7,e:"h2",f:["Available files (local):"]}," ",{p:[22,4,740],t:7,e:"table",f:[{p:[23,5,753],t:7,e:"tr",f:[{p:[24,6,764],t:7,e:"th",f:["File name"]}," ",{p:[25,6,789],t:7,e:"th",f:["File type"]}," ",{p:[26,6,814],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[27,6,844],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[30,6,907],t:7,e:"tr",f:[{p:[31,7,919],t:7,e:"td",f:[{t:2,r:"name",p:[31,11,923]}]}," ",{p:[32,7,944],t:7,e:"td",f:[".",{t:2,r:"type",p:[32,12,949]}]}," ",{p:[33,7,970],t:7,e:"td",f:[{t:2,r:"size",p:[33,11,974]},"GQ"]}," ",{p:[34,7,997],t:7,e:"td",f:[{p:[35,8,1010],t:7,e:"ui-button",a:{action:"PRG_openfile",params:['{"name": "',{t:2,r:"name",p:[35,59,1061]},'"}']},f:["VIEW"]}," ",{p:[36,8,1098],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[36,26,1116]}],action:"PRG_deletefile",params:['{"name": "',{t:2,r:"name",p:[36,105,1195]},'"}']},f:["DELETE"]}," ",{p:[37,8,1234],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[37,26,1252]}],action:"PRG_rename",params:['{"name": "',{t:2,r:"name",p:[37,101,1327]},'"}']},f:["RENAME"]}," ",{p:[38,8,1366],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[38,26,1384]}],action:"PRG_clone",params:['{"name": "',{t:2,r:"name",p:[38,100,1458]},'"}']},f:["CLONE"]}," ",{t:4,f:[{p:[40,9,1531],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[40,27,1549]}],action:"PRG_copytousb",params:['{"name": "',{t:2,r:"name",p:[40,105,1627]},'"}']},f:["EXPORT"]}],n:50,r:"data.usbconnected",p:[39,8,1496]}]}]}],n:52,r:"data.files",p:[29,5,880]}]}," ",{t:4,f:[{p:[47,4,1761],t:7,e:"h2",f:["Available files (portable device):"]}," ",{p:[48,4,1809],t:7,e:"table",f:[{p:[49,5,1822],t:7,e:"tr",f:[{p:[50,6,1833],t:7,e:"th",f:["File name"]}," ",{p:[51,6,1858],t:7,e:"th",f:["File type"]}," ",{p:[52,6,1883],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[53,6,1913],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[56,6,1979],t:7,e:"tr",f:[{p:[57,7,1991],t:7,e:"td",f:[{t:2,r:"name",p:[57,11,1995]}]}," ",{p:[58,7,2016],t:7,e:"td",f:[".",{t:2,r:"type",p:[58,12,2021]}]}," ",{p:[59,7,2042],t:7,e:"td",f:[{t:2,r:"size",p:[59,11,2046]},"GQ"]}," ",{p:[60,7,2069],t:7,e:"td",f:[{p:[61,8,2082],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[61,26,2100]}],action:"PRG_usbdeletefile",params:['{"name": "',{t:2,r:"name",p:[61,108,2182]},'"}']},f:["DELETE"]}," ",{t:4,f:[{p:[63,9,2256],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[63,27,2274]}],action:"PRG_copyfromusb",params:['{"name": "',{t:2,r:"name",p:[63,107,2354]},'"}']},f:["IMPORT"]}],n:50,r:"data.usbconnected",p:[62,8,2221]}]}]}],n:52,r:"data.usbfiles",p:[55,5,1949]}]}],n:50,r:"data.usbconnected",p:[46,4,1731]}," ",{p:[70,4,2470],t:7,e:"ui-button",a:{action:"PRG_newtextfile"},f:["NEW DATA FILE"]}],r:"data.filename"}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],418:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"i",f:["No program loaded. Please select program from list below."]}," ",{p:[6,2,146],t:7,e:"table",f:[{t:4,f:[{p:[8,4,185],t:7,e:"tr",f:[{p:[8,8,189],t:7,e:"td",f:[{p:[8,12,193],t:7,e:"ui-button",a:{action:"PC_runprogram",params:['{"name": "',{t:2,r:"name",p:[8,64,245]},'"}']},f:[{t:2,r:"desc",p:[9,5,263]}]}]},{p:[11,4,293],t:7,e:"td",f:[{p:[11,8,297],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["running"],s:'_0?null:"disabled"'},p:[11,26,315]}],icon:"close",action:"PC_killprogram",params:['{"name": "',{t:2,r:"name",p:[11,114,403]},'"}']}}]}]}],n:52,r:"data.programs",p:[7,3,157]}]}," ",{p:[14,2,454],t:7,e:"br"},{p:[14,6,458],t:7,e:"br"}," ",{t:4,f:[{p:[16,3,491],t:7,e:"ui-button",a:{action:"PC_toggle_light",style:[{t:2,x:{r:["data.light_on"],s:'_0?"selected":null'},p:[16,46,534]}]},f:["Toggle Flashlight"]},{p:[16,114,602],t:7,e:"br"}," ",{p:[17,3,610],t:7,e:"ui-button",a:{action:"PC_light_color"},f:["Change Flashlight Color ",{p:[17,62,669],t:7,e:"span",a:{style:["border:1px solid #161616; background-color: ",{t:2,r:"data.comp_light_color",p:[17,119,726]},";"]},f:["   "]}]}],n:50,r:"data.has_light",p:[15,2,465]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],419:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[6,3,105],t:7,e:"h1",f:["ADMINISTRATIVE MODE"]}],n:50,r:"data.adminmode",p:[5,2,79]}," ",{t:4,f:[{p:[10,3,170],t:7,e:"div",a:{"class":"itemLabel"},f:["Current channel:"]}," ",{p:[13,3,229],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.title",p:[14,4,259]}]}," ",{p:[16,3,287],t:7,e:"div",a:{"class":"itemLabel"},f:["Operator access:"]}," ",{p:[19,3,346],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:[{p:[21,5,406],t:7,e:"b",f:["Enabled"]}],n:50,r:"data.is_operator",p:[20,4,376]},{t:4,n:51,f:[{p:[23,5,439],t:7,e:"b",f:["Disabled"]}],r:"data.is_operator"}]}," ",{p:[26,3,480],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[29,3,532],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[30,4,562],t:7,e:"table",f:[{p:[31,5,575],t:7,e:"tr",f:[{p:[31,9,579],t:7,e:"td",f:[{p:[31,13,583],t:7,e:"ui-button",a:{action:"PRG_speak"},f:["Send message"]}]}]},{p:[32,5,643],t:7,e:"tr",f:[{p:[32,9,647],t:7,e:"td",f:[{p:[32,13,651],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[33,5,719],t:7,e:"tr",f:[{p:[33,9,723],t:7,e:"td",f:[{p:[33,13,727],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]},{p:[34,5,807],t:7,e:"tr",f:[{p:[34,9,811],t:7,e:"td",f:[{p:[34,13,815],t:7,e:"ui-button",a:{action:"PRG_leavechannel"},f:["Leave channel"]}]}]},{p:[35,5,883],t:7,e:"tr",f:[{p:[35,9,887],t:7,e:"td",f:[{p:[35,13,891],t:7,e:"ui-button",a:{action:"PRG_savelog"},f:["Save log to local drive"]}," ",{t:4,f:[{p:[37,6,995],t:7,e:"tr",f:[{p:[37,10,999],t:7,e:"td",f:[{p:[37,14,1003],t:7,e:"ui-button",a:{action:"PRG_renamechannel"},f:["Rename channel"]}]}]},{p:[38,6,1074],t:7,e:"tr",f:[{p:[38,10,1078],t:7,e:"td",f:[{p:[38,14,1082],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}]}]},{p:[39,6,1149],t:7,e:"tr",f:[{p:[39,10,1153],t:7,e:"td",f:[{p:[39,14,1157],t:7,e:"ui-button",a:{action:"PRG_deletechannel"},f:["Delete channel"]}]}]}],n:50,r:"data.is_operator",p:[36,5,964]}]}]}]}]}," ",{p:[43,3,1263],t:7,e:"b",f:["Chat Window"]}," ",{p:[44,4,1286],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[45,4,1342],t:7,e:"div",a:{"class":"item"},f:[{p:[46,5,1366],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"msg",p:[48,7,1450]},{p:[48,14,1457],t:7,e:"br"}],n:52,r:"data.messages",p:[47,6,1419]}]}]}]}," ",{p:[53,3,1516],t:7,e:"b",f:["Connected Users"]},{p:[53,25,1538],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"name",p:[55,4,1573]},{p:[55,12,1581],t:7,e:"br"}],n:52,r:"data.clients",p:[54,3,1546]}],n:50,r:"data.title",p:[9,2,148]},{t:4,n:51,f:[{p:[58,3,1613],t:7,e:"b",f:["Controls:"]}," ",{p:[59,3,1633],t:7,e:"table",f:[{p:[60,4,1645],t:7,e:"tr",f:[{p:[60,8,1649],t:7,e:"td",f:[{p:[60,12,1653],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[61,4,1720],t:7,e:"tr",f:[{p:[61,8,1724],t:7,e:"td",f:[{p:[61,12,1728],t:7,e:"ui-button",a:{action:"PRG_newchannel"},f:["New Channel"]}]}]},{p:[62,4,1791],t:7,e:"tr",f:[{p:[62,8,1795],t:7,e:"td",f:[{p:[62,12,1799],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]}]}," ",{p:[64,3,1889],t:7,e:"b",f:["Available channels:"]}," ",{p:[65,3,1919],t:7,e:"table",f:[{t:4,f:[{p:[67,4,1964],t:7,e:"tr",f:[{p:[67,8,1968],t:7,e:"td",f:[{p:[67,12,1972],t:7,e:"ui-button",a:{action:"PRG_joinchannel",params:['{"id": "',{t:2,r:"id",p:[67,64,2024]},'"}']},f:[{t:2,r:"chan",p:[67,74,2034]}]},{p:[67,94,2054],t:7,e:"br"}]}]}],n:52,r:"data.all_channels",p:[66,3,1930]}]}],r:"data.title"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],420:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:["##SYSTEM ERROR: ",{t:2,r:"data.error",p:[6,19,117]},{p:[6,33,131],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["RESET"]}],n:50,r:"data.error",p:[5,2,79]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.target"],s:"_0"},f:["##DoS traffic generator active. Tx: ",{t:2,r:"data.speed",p:[8,39,243]},"GQ/s",{p:[8,57,261],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"nums",p:[10,4,300]},{p:[10,12,308],t:7,e:"br"}],n:52,r:"data.dos_strings",p:[9,3,269]}," ",{p:[12,3,329],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["ABORT"]}]},{t:4,n:50,x:{r:["data.target"],s:"!(_0)"},f:[" ##DoS traffic generator ready. Select target device.",{p:[14,55,443],t:7,e:"br"}," ",{t:4,f:["Targeted device ID: ",{t:2,r:"data.focus",p:[16,24,494]}],n:50,r:"data.focus",p:[15,3,451]},{t:4,n:51,f:["Targeted device ID: None"],r:"data.focus"}," ",{p:[20,3,564],t:7,e:"ui-button",a:{action:"PRG_execute"},f:["EXECUTE"]},{p:[20,54,615],t:7,e:"div",a:{style:"clear:both"}}," Detected devices on network:",{p:[21,31,677],t:7,e:"br"}," ",{t:4,f:[{p:[23,4,711],t:7,e:"ui-button",a:{action:"PRG_target_relay",params:['{"targid": "',{t:2,r:"id",p:[23,61,768]},'"}']},f:[{t:2,r:"id",p:[23,71,778]}]}],n:52,r:"data.relays",p:[22,3,685]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],421:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"i",f:["Welcome to software download utility. Please select which software you wish to download."]},{p:[5,97,174],t:7,e:"hr"}," ",{t:4,f:[{p:[7,3,203],t:7,e:"ui-display",a:{title:"Download Error"},f:[{p:[8,4,243],t:7,e:"ui-section",a:{label:"Information"},f:[{t:2,r:"data.error",p:[9,5,281]}]}," ",{p:[11,4,318],t:7,e:"ui-section",a:{label:"Reset Program"},f:[{p:[12,5,358],t:7,e:"ui-button",a:{icon:"times",action:"PRG_reseterror"},f:["RESET"]}]}]}],n:50,r:"data.error",p:[6,2,181]},{t:4,n:51,f:[{t:4,f:[{p:[19,4,516],t:7,e:"ui-display",a:{title:"Download Running"},f:[{p:[20,5,559],t:7,e:"i",f:["Please wait..."]}," ",{p:[21,5,586],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"data.downloadname",p:[22,6,623]}]}," ",{p:[24,5,669],t:7,e:"ui-section",a:{label:"File description"},f:[{t:2,r:"data.downloaddesc",p:[25,6,713]}]}," ",{p:[27,5,759],t:7,e:"ui-section",a:{label:"File size"},f:[{t:2,r:"data.downloadsize",p:[28,6,796]},"GQ"]}," ",{p:[30,5,844],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{t:2,r:"data.downloadspeed",p:[31,6,885]}," GQ/s"]}," ",{p:[33,5,937],t:7,e:"ui-section",a:{label:"Download progress"},f:[{p:[34,6,982],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.downloadsize",p:[34,27,1003]}],value:[{t:2,r:"adata.downloadcompletion",p:[34,58,1034]}],state:"good"},f:[{t:2,x:{r:["adata.downloadcompletion"],s:"Math.round(_0)"},p:[34,101,1077]},"GQ / ",{t:2,r:"adata.downloadsize",p:[34,146,1122]},"GQ"]}]}]}],n:50,r:"data.downloadname",p:[18,3,486]}],r:"data.error"}," ",{t:4,f:[{t:4,f:[{p:[41,4,1270],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,5,1308],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,6,1349],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,27,1370]}],value:[{t:2,r:"adata.disk_used",p:[43,55,1398]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,89,1432]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,125,1468]},"GQ"]}]}]}," ",{p:[47,4,1545],t:7,e:"ui-display",a:{title:"Primary Software Repository"},f:[{t:4,f:[{p:[49,6,1642],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[49,28,1664]}]},f:[{p:[50,7,1686],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[50,61,1740]}]}," ",{p:[52,7,1774],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[53,8,1813]}," (",{t:2,r:"size",p:[53,22,1827]}," GQ)"]}," ",{p:[55,7,1868],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[56,8,1911]}]}," ",{p:[58,7,1957],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[58,80,2030]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[62,6,2113],t:7,e:"br"}],n:52,r:"data.downloadable_programs",p:[48,5,1599]}]}," ",{t:4,f:[{p:[67,5,2194],t:7,e:"ui-display",a:{title:"UNKNOWN Software Repository"},f:[{p:[68,6,2249],t:7,e:"i",f:["Please note that Nanotrasen does not recommend download of software from non-official servers."]}," ",{t:4,f:[{p:[70,7,2395],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[70,29,2417]}]},f:[{p:[71,8,2440],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[71,62,2494]}]}," ",{p:[73,8,2530],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[74,9,2570]}," (",{t:2,r:"size",p:[74,23,2584]}," GQ)"]}," ",{p:[76,8,2627],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[77,9,2671]}]}," ",{p:[79,8,2719],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[79,81,2792]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[83,7,2879],t:7,e:"br"}],n:52,r:"data.hacked_programs",p:[69,6,2357]}]}],n:50,r:"data.hackedavailable",p:[66,4,2160]}],n:50,x:{r:["data.error"],s:"!_0"},p:[40,3,1246]}],n:50,x:{r:["data.downloadname"],s:"!_0"},p:[39,2,1216]}," ",{p:[89,2,2954],t:7,e:"br"},{p:[89,6,2958],t:7,e:"br"},{p:[89,10,2962],t:7,e:"hr"},{p:[89,14,2966],t:7,e:"i",f:["NTOS v2.0.4b Copyright Nanotrasen 2557 - 2559"]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],422:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[6,2,81],t:7,e:"ui-display",a:{title:"WIRELESS CONNECTIVITY"},f:[{p:[8,3,129],t:7,e:"ui-section",a:{label:"Active NTNetRelays"},f:[{p:[9,4,173],t:7,e:"b",f:[{t:2,r:"data.ntnetrelays",p:[9,7,176]}]}]}," ",{t:4,f:[{p:[12,4,250],t:7,e:"ui-section",a:{label:"System status"},f:[{p:[13,6,291],t:7,e:"b",f:[{t:2,x:{r:["data.ntnetstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[13,9,294]}]}]}," ",{p:[15,4,366],t:7,e:"ui-section",a:{label:"Control"},f:[{p:[17,4,401],t:7,e:"ui-button",a:{icon:"plus",action:"toggleWireless"},f:["TOGGLE"]}]}," ",{p:[21,4,500],t:7,e:"br"},{p:[21,8,504],t:7,e:"br"}," ",{p:[22,4,513],t:7,e:"i",f:["Caution - Disabling wireless transmitters when using wireless device may prevent you from re-enabling them again!"]}],n:50,r:"data.ntnetrelays",p:[11,3,221]},{t:4,n:51,f:[{p:[24,4,650],t:7,e:"br"},{p:[24,8,654],t:7,e:"p",f:["Wireless coverage unavailable, no relays are connected."]}],r:"data.ntnetrelays"}]}," ",{p:[29,2,750],t:7,e:"ui-display",a:{title:"FIREWALL CONFIGURATION"},f:[{p:[31,2,798],t:7,e:"table",f:[{p:[32,3,809],t:7,e:"tr",f:[{p:[33,4,818],t:7,e:"th",f:["PROTOCOL"]},{p:[34,4,835],t:7,e:"th",f:["STATUS"]},{p:[35,4,850],t:7,e:"th",f:["CONTROL"]}]},{p:[36,3,865],t:7,e:"tr",f:[" ",{p:[37,4,874],t:7,e:"td",f:["Software Downloads"]},{p:[38,4,901],t:7,e:"td",f:[{t:2,x:{r:["data.config_softwaredownload"],s:'_0?"ENABLED":"DISABLED"'},p:[38,8,905]}]},{p:[39,4,967],t:7,e:"td",f:[" ",{p:[39,9,972],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "1"}'},f:["TOGGLE"]}]}]},{p:[40,3,1051],t:7,e:"tr",f:[" ",{p:[41,4,1060],t:7,e:"td",f:["Peer to Peer Traffic"]},{p:[42,4,1089],t:7,e:"td",f:[{t:2,x:{r:["data.config_peertopeer"],s:'_0?"ENABLED":"DISABLED"'},p:[42,8,1093]}]},{p:[43,4,1149],t:7,e:"td",f:[{p:[43,8,1153],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "2"}'},f:["TOGGLE"]}]}]},{p:[44,3,1232],t:7,e:"tr",f:[" ",{p:[45,4,1241],t:7,e:"td",f:["Communication Systems"]},{p:[46,4,1271],t:7,e:"td",f:[{t:2,x:{r:["data.config_communication"],s:'_0?"ENABLED":"DISABLED"'},p:[46,8,1275]}]},{p:[47,4,1334],t:7,e:"td",f:[{p:[47,8,1338],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "3"}'},f:["TOGGLE"]}]}]},{p:[48,3,1417],t:7,e:"tr",f:[" ",{p:[49,4,1426],t:7,e:"td",f:["Remote System Control"]},{p:[50,4,1456],t:7,e:"td",f:[{t:2,x:{r:["data.config_systemcontrol"],s:'_0?"ENABLED":"DISABLED"'},p:[50,8,1460]}]},{p:[51,4,1519],t:7,e:"td",f:[{p:[51,8,1523],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "4"}'},f:["TOGGLE"]}]}]}]}]}," ",{p:[55,2,1630],t:7,e:"ui-display",a:{title:"SECURITY SYSTEMS"},f:[{t:4,f:[{p:[58,4,1699],t:7,e:"ui-notice",f:[{p:[59,5,1716],t:7,e:"h1",f:["NETWORK INCURSION DETECTED"]}]}," ",{p:[61,5,1774],t:7,e:"i",f:["An abnormal activity has been detected in the network. Please verify system logs for more information"]}],n:50,r:"data.idsalarm",p:[57,3,1673]}," ",{p:[64,3,1902],t:7,e:"ui-section",a:{label:"Intrusion Detection System"},f:[{p:[65,4,1954],t:7,e:"b",f:[{t:2,x:{r:["data.idsstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[65,7,1957]}]}]}," ",{p:[68,3,2029],t:7,e:"ui-section",a:{label:"Maximal Log Count"},f:[{p:[69,4,2072],t:7,e:"b",f:[{t:2,r:"data.ntnetmaxlogs",p:[69,7,2075]}]}]}," ",{p:[72,3,2125],t:7,e:"ui-section",a:{label:"Controls"},f:[]}," ",{p:[74,4,2176],t:7,e:"table",f:[{p:[75,4,2188],t:7,e:"tr",f:[{p:[75,8,2192],t:7,e:"td",f:[{p:[75,12,2196],t:7,e:"ui-button",a:{action:"resetIDS"},f:["RESET IDS"]}]}]},{p:[76,4,2251],t:7,e:"tr",f:[{p:[76,8,2255],t:7,e:"td",f:[{p:[76,12,2259],t:7,e:"ui-button",a:{action:"toggleIDS"},f:["TOGGLE IDS"]}]}]},{p:[77,4,2316],t:7,e:"tr",f:[{p:[77,8,2320],t:7,e:"td",f:[{p:[77,12,2324],t:7,e:"ui-button",a:{action:"updatemaxlogs"},f:["SET LOG LIMIT"]}]}]},{p:[78,4,2388],t:7,e:"tr",f:[{p:[78,8,2392],t:7,e:"td",f:[{p:[78,12,2396],t:7,e:"ui-button",a:{action:"purgelogs"},f:["PURGE LOGS"]}]}]}]}," ",{p:[81,3,2467],t:7,e:"ui-subdisplay",a:{title:"System Logs"},f:[{p:[82,3,2506],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[83,3,2561],t:7,e:"div",a:{"class":"item"},f:[{p:[84,4,2584],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"entry",p:[86,6,2667]},{p:[86,15,2676],t:7,e:"br"}],n:52,r:"data.ntnetlogs",p:[85,5,2636]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],423:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,2,102],t:7,e:"div",a:{"class":"item"},f:[{p:[8,3,124],t:7,e:"h2",f:["An error has occurred during operation..."]}," ",{p:[9,3,178],t:7,e:"b",f:["Additional information:"]},{t:2,r:"data.error",p:[9,34,209]},{p:[9,48,223],t:7,e:"br"}," ",{p:[10,3,231],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Clear"]}]}],n:50,r:"data.error",p:[6,2,81]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.downloading"],s:"_0"},f:[{p:[13,3,321],t:7,e:"h2",f:["Download in progress..."]}," ",{p:[14,3,357],t:7,e:"div",a:{"class":"itemLabel"},f:["Downloaded file:"]}," ",{p:[17,3,416],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_name",p:[18,4,446]}]}," ",{p:[20,3,483],t:7,e:"div",a:{"class":"itemLabel"},f:["Download progress:"]}," ",{p:[23,3,544],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_progress",p:[24,4,574]}," / ",{t:2,r:"data.download_size",p:[24,33,603]}," GQ"]}," ",{p:[26,3,642],t:7,e:"div",a:{"class":"itemLabel"},f:["Transfer speed:"]}," ",{p:[29,3,700],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_netspeed",p:[30,4,730]},"GQ/s"]}," ",{p:[32,3,774],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[35,3,826],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[36,4,856],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Abort download"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading"],s:"(!(_0))&&(_1)"},f:[" ",{p:[39,3,954],t:7,e:"h2",f:["Server enabled"]}," ",{p:[40,3,981],t:7,e:"div",a:{"class":"itemLabel"},f:["Connected clients:"]}," ",{p:[43,3,1042],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_clients",p:[44,4,1072]}]}," ",{p:[46,3,1109],t:7,e:"div",a:{"class":"itemLabel"},f:["Provided file:"]}," ",{p:[49,3,1166],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_filename",p:[50,4,1196]}]}," ",{p:[52,3,1234],t:7,e:"div",a:{"class":"itemLabel"},f:["Server password:"]}," ",{p:[55,3,1293],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ENABLED"],n:50,r:"data.upload_haspassword",p:[56,4,1323]},{t:4,n:51,f:["DISABLED"],r:"data.upload_haspassword"}]}," ",{p:[62,3,1420],t:7,e:"div",a:{"class":"itemLabel"},f:["Commands:"]}," ",{p:[65,3,1472],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[66,4,1502],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[67,4,1567],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Exit server"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"], -s:"(!(_0))&&((!(_1))&&(_2))"},f:[" ",{p:[70,3,1668],t:7,e:"h2",f:["File transfer server ready. Select file to upload:"]}," ",{p:[71,3,1732],t:7,e:"table",f:[{p:[72,3,1743],t:7,e:"tr",f:[{p:[72,7,1747],t:7,e:"th",f:["File name"]},{p:[72,20,1760],t:7,e:"th",f:["File size"]},{p:[72,33,1773],t:7,e:"th",f:["Controls ",{t:4,f:[{p:[74,4,1824],t:7,e:"tr",f:[{p:[74,8,1828],t:7,e:"td",f:[{t:2,r:"filename",p:[74,12,1832]}]},{p:[75,4,1849],t:7,e:"td",f:[{t:2,r:"size",p:[75,8,1853]},"GQ"]},{p:[76,4,1868],t:7,e:"td",f:[{p:[76,8,1872],t:7,e:"ui-button",a:{action:"PRG_uploadfile",params:['{"id": "',{t:2,r:"uid",p:[76,59,1923]},'"}']},f:["Select"]}]}]}],n:52,r:"data.upload_filelist",p:[73,3,1789]}]}]}]}," ",{p:[79,3,1981],t:7,e:"hr"}," ",{p:[80,3,1989],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[81,3,2053],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Return"]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(!(_2)))"},f:[" ",{p:[83,3,2116],t:7,e:"h2",f:["Available files:"]}," ",{p:[84,3,2145],t:7,e:"table",a:{border:"1",style:"border-collapse: collapse"},f:[{p:[84,55,2197],t:7,e:"tr",f:[{p:[84,59,2201],t:7,e:"th",f:["Server UID"]},{p:[84,73,2215],t:7,e:"th",f:["File Name"]},{p:[84,86,2228],t:7,e:"th",f:["File Size"]},{p:[84,99,2241],t:7,e:"th",f:["Password Protection"]},{p:[84,122,2264],t:7,e:"th",f:["Operations ",{t:4,f:[{p:[86,5,2311],t:7,e:"tr",f:[{p:[86,9,2315],t:7,e:"td",f:[{t:2,r:"uid",p:[86,13,2319]}]},{p:[87,5,2332],t:7,e:"td",f:[{t:2,r:"filename",p:[87,9,2336]}]},{p:[88,5,2354],t:7,e:"td",f:[{t:2,r:"size",p:[88,9,2358]},"GQ ",{t:4,f:[{p:[90,6,2400],t:7,e:"td",f:["Enabled"]}],n:50,r:"haspassword",p:[89,5,2374]}," ",{t:4,f:[{p:[93,6,2457],t:7,e:"td",f:["Disabled"]}],n:50,x:{r:["haspassword"],s:"!_0"},p:[92,5,2430]}]},{p:[96,5,2494],t:7,e:"td",f:[{p:[96,9,2498],t:7,e:"ui-button",a:{action:"PRG_downloadfile",params:['{"id": "',{t:2,r:"uid",p:[96,62,2551]},'"}']},f:["Download"]}]}]}],n:52,r:"data.servers",p:[85,4,2283]}]}]}]}," ",{p:[99,3,2612],t:7,e:"hr"}," ",{p:[100,3,2620],t:7,e:"ui-button",a:{action:"PRG_uploadmenu"},f:["Send file"]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],424:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[43,1,1082],t:7,e:"ntosheader"}," ",{p:[45,1,1099],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[47,5,1157],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[47,27,1179]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[49,38,1331]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[50,15,1387]}],yinc:"9"}}],n:50,r:"config.fancy",p:[46,3,1131]},{t:4,n:51,f:[{p:[52,5,1437],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[53,7,1475],t:7,e:"span",f:[{t:2,r:"data.supply",p:[53,13,1481]}]}]}," ",{p:[55,5,1528],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[56,9,1563],t:7,e:"span",f:[{t:2,r:"data.demand",p:[56,15,1569]}]}]}],r:"config.fancy"}]}," ",{p:[60,1,1638],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[61,3,1668],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[62,5,1693],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[63,5,1730],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[64,5,1769],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[65,5,1806],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[66,5,1845],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[67,5,1887],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[68,5,1928],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[71,5,2013],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[71,24,2032]}],nowrap:0},f:[{p:[72,7,2057],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[72,28,2078]}," %"]}," ",{p:[73,7,2136],t:7,e:"div",a:{"class":"content"},f:[{t:2,rx:{r:"adata.areas",m:[{t:30,n:"@index"},"load"]},p:[73,28,2157]}]}," ",{p:[74,7,2199],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2220],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[74,41,2233]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[74,70,2262]}]}]}," ",{p:[75,7,2309],t:7,e:"div",a:{"class":"content"},f:[{p:[75,28,2330],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[75,41,2343]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[75,64,2366]}," [",{p:[75,87,2389],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[75,93,2395]}]},"]"]}]}," ",{p:[76,7,2444],t:7,e:"div",a:{"class":"content"},f:[{p:[76,28,2465],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[76,41,2478]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[76,64,2501]}," [",{p:[76,87,2524],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[76,93,2530]}]},"]"]}]}," ",{p:[77,7,2579],t:7,e:"div",a:{"class":"content"},f:[{p:[77,28,2600],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[77,41,2613]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[77,64,2636]}," [",{p:[77,87,2659],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[77,93,2665]}]},"]"]}]}]}],n:52,r:"data.areas",p:[70,3,1987]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],425:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"div",a:{"class":"item"},f:[{p:[6,3,101],t:7,e:"div",a:{"class":"itemLabel"},f:["Payload status:"]}," ",{p:[9,3,158],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ARMED"],n:50,r:"data.armed",p:[10,4,188]},{t:4,n:51,f:["DISARMED"],r:"data.armed"}]}," ",{p:[16,3,270],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[19,3,321],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[20,4,351],t:7,e:"table",f:[{p:[21,4,363],t:7,e:"tr",f:[{p:[21,8,367],t:7,e:"td",f:[{p:[21,12,371],t:7,e:"ui-button",a:{action:"PRG_obfuscate"},f:["OBFUSCATE PROGRAM NAME"]}]}]},{p:[22,4,444],t:7,e:"tr",f:[{p:[22,8,448],t:7,e:"td",f:[{p:[22,12,452],t:7,e:"ui-button",a:{action:"PRG_arm",state:[{t:2,x:{r:["data.armed"],s:'_0?"danger":null'},p:[22,47,487]}]},f:[{t:2,x:{r:["data.armed"],s:'_0?"DISARM":"ARM"'},p:[22,81,521]}]}," ",{p:[23,4,571],t:7,e:"ui-button",a:{icon:"radiation",state:[{t:2,x:{r:["data.armed"],s:'_0?null:"disabled"'},p:[23,39,606]}],action:"PRG_activate"},f:["ACTIVATE"]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],426:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[5,3,95],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[5,22,114]}," Alarms"]},f:[{p:[6,5,138],t:7,e:"ul",f:[{t:4,f:[{p:[8,9,171],t:7,e:"li",f:[{t:2,r:".",p:[8,13,175]}]}],n:52,r:".",p:[7,7,150]},{t:4,n:51,f:[{p:[10,9,211],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[4,1,64]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],427:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{integState:function(t){var e=100;return t==e?"good":t>e/2?"average":"bad"},bigState:function(t,e,n){return charge>n?"bad":t>e?"average":"good"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[23,1,421],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[27,2,462],t:7,e:"ui-button",a:{action:"PRG_clear"},f:["Back to Menu"]},{p:[27,56,516],t:7,e:"br"}," ",{p:[28,3,524],t:7,e:"ui-display",a:{title:"Supermatter Status:"},f:[{p:[29,3,568],t:7,e:"ui-section",a:{label:"Core Integrity"},f:[{p:[30,5,609],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"adata.SM_integrity",p:[30,38,642]}],state:[{t:2,x:{r:["integState","adata.SM_integrity"],s:"_0(_1)"},p:[30,69,673]}]},f:[{t:2,r:"data.SM_integrity",p:[30,105,709]},"%"]}]}," ",{p:[32,3,761],t:7,e:"ui-section",a:{label:"Relative EER"},f:[{p:[33,5,800],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_power"],s:"_0(_1,150,300)"},p:[33,18,813]}]},f:[{t:2,r:"data.SM_power",p:[33,55,850]}," MeV/cm3"]}]}," ",{p:[35,3,903],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[36,5,941],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambienttemp"],s:"_0(_1,4000,5000)"},p:[36,18,954]}]},f:[{t:2,r:"data.SM_ambienttemp",p:[36,63,999]}," K"]}]}," ",{p:[38,3,1052],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[39,5,1087],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambientpressure"],s:"_0(_1,5000,10000)"},p:[39,18,1100]}]},f:[{t:2,r:"data.SM_ambientpressure",p:[39,68,1150]}," kPa"]}]}]}," ",{p:[42,3,1227],t:7,e:"hr"},{p:[42,7,1231],t:7,e:"br"}," ",{p:[43,3,1239],t:7,e:"ui-display",a:{title:"Gas Composition:"},f:[{t:4,f:[{p:[45,5,1307],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[45,24,1326]}]},f:[{t:2,r:"amount",p:[46,6,1343]}," %"]}],n:52,r:"data.gases",p:[44,4,1281]}]}],n:50,r:"data.active",p:[26,1,440]},{t:4,n:51,f:[{p:[51,2,1418],t:7,e:"ui-button",a:{action:"PRG_refresh"},f:["Refresh"]},{p:[51,53,1469],t:7,e:"br"}," ",{p:[52,2,1476],t:7,e:"ui-display",a:{title:"Detected Supermatters"},f:[{t:4,f:[{p:[54,3,1552],t:7,e:"ui-section",a:{label:"Area"},f:[{t:2,r:"area_name",p:[55,5,1583]}," - (#",{t:2,r:"uid",p:[55,23,1601]},")"]}," ",{p:[57,3,1630],t:7,e:"ui-section",a:{label:"Integrity"},f:[{t:2,r:"integrity",p:[58,5,1666]}," %"]}," ",{p:[60,3,1702],t:7,e:"ui-section",a:{label:"Options"},f:[{p:[61,5,1736],t:7,e:"ui-button",a:{action:"PRG_set",params:['{"target" : "',{t:2,r:"uid",p:[61,54,1785]},'"}']},f:["View Details"]}]}],n:52,r:"data.supermatters",p:[53,2,1521]}]}],r:"data.active"}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],428:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"item",style:"float: left"},f:[{p:[2,2,41],t:7,e:"table",f:[{p:[2,9,48],t:7,e:"tr",f:[{t:4,f:[{p:[4,3,113],t:7,e:"td",f:[{p:[4,7,117],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[4,17,127]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[3,2,55]}," ",{t:4,f:[{p:[7,3,226],t:7,e:"td",f:[{p:[7,7,230],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[7,10,233]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[6,2,165]}," ",{t:4,f:[{p:[10,3,305],t:7,e:"td",f:[{p:[10,7,309],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[10,17,319]}]}}]}],n:50,r:"data.PC_ntneticon",p:[9,2,276]}," ",{t:4,f:[{p:[13,3,386],t:7,e:"td",f:[{p:[13,7,390],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[13,17,400]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[12,2,355]}," ",{t:4,f:[{p:[16,3,469],t:7,e:"td",f:[{p:[16,7,473],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[16,10,476]}]}]}],n:50,r:"data.PC_stationtime",p:[15,2,438]}," ",{t:4,f:[{p:[19,3,552],t:7,e:"td",f:[{p:[19,7,556],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[19,17,566]}]}}]}],n:52,r:"data.PC_programheaders",p:[18,2,516]}]}]}]}," ",{p:[23,1,609],t:7,e:"div",a:{style:"float: right; margin-top: 5px"},f:[{p:[24,2,655],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[26,3,745],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}," ",{p:[27,3,801],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}],n:50,r:"data.PC_showexitprogram",p:[25,2,710]}]}," ",{p:[30,1,881],t:7,e:"div",a:{style:"clear: both"}}]},e.exports=a.extend(r.exports)},{341:341}],429:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Auth. Disk:"},f:[{t:4,f:[{p:[3,7,69],t:7,e:"ui-button",a:{icon:"eject",style:"selected",action:"eject_disk"},f:["++++++++++"]}],n:50,r:"data.disk_present",p:[2,3,36]},{t:4,n:51,f:[{p:[5,7,172],t:7,e:"ui-button",a:{icon:"plus",action:"insert_disk"},f:["----------"]}],r:"data.disk_present"}]}," ",{p:[8,1,266],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[9,3,297],t:7,e:"span",f:[{t:2,r:"data.status1",p:[9,9,303]},"-",{t:2,r:"data.status2",p:[9,26,320]}]}]}," ",{p:[11,1,360],t:7,e:"ui-display",a:{title:"Timer"},f:[{p:[12,3,390],t:7,e:"ui-section",a:{label:"Time to Detonation"},f:[{p:[13,5,435],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[13,11,441]}]}]}," ",{t:4,f:[{p:[16,5,540],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[17,7,581],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_default"],s:'_0&&_1&&_2?null:"disabled"'},p:[17,40,614]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[19,7,786],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_min"],s:'_0&&_1&&_2?null:"disabled"'},p:[19,38,817]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[21,7,991],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[21,39,1023]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[22,7,1155],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_max"],s:'_0&&_1&&_2?null:"disabled"'},p:[22,37,1185]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[15,3,518]}," ",{p:[26,3,1394],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[27,5,1426],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[27,38,1459]}],action:"toggle_timer",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.safety"],s:'_0&&_1&&!_2?null:"disabled"'},p:[29,14,1542]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[30,7,1631]}]}]}]}," ",{p:[34,1,1713],t:7,e:"ui-display",a:{title:"Anchoring"},f:[{p:[35,3,1747],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[36,12,1770]}],icon:[{t:2,x:{r:["data.anchored"],s:'_0?"lock":"unlock"'},p:[37,11,1846]}],style:[{t:2,x:{r:["data.anchored"],s:'_0?null:"caution"'},p:[38,12,1897]}],action:"anchor"},f:[{t:2,x:{r:["data.anchored"],s:'_0?"Engaged":"Off"'},p:[39,21,1956]}]}]}," ",{p:[41,1,2022],t:7,e:"ui-display",a:{title:"Safety"},f:[{p:[42,3,2053],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[43,12,2076]}],icon:[{t:2,x:{r:["data.safety"],s:'_0?"lock":"unlock"'},p:[44,11,2152]}],action:"safety",style:[{t:2,x:{r:["data.safety"],s:'_0?"caution":"danger"'},p:[45,12,2217]}]},f:[{p:[46,7,2265],t:7,e:"span",f:[{t:2,x:{r:["data.safety"],s:'_0?"On":"Off"'},p:[46,13,2271]}]}]}]}," ",{p:[49,1,2341],t:7,e:"ui-display",a:{title:"Code"},f:[{p:[50,3,2370],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.message",p:[50,31,2398]}]}," ",{p:[51,3,2431],t:7,e:"ui-section",a:{label:"Keypad"},f:[{p:[52,5,2464],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[52,39,2498]}],params:'{"digit":"1"}'},f:["1"]}," ",{p:[53,5,2583],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[53,39,2617]}],params:'{"digit":"2"}'},f:["2"]}," ",{p:[54,5,2702],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[54,39,2736]}],params:'{"digit":"3"}'},f:["3"]}," ",{p:[55,5,2821],t:7,e:"br"}," ",{p:[56,5,2831],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[56,39,2865]}],params:'{"digit":"4"}'},f:["4"]}," ",{p:[57,5,2950],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[57,39,2984]}],params:'{"digit":"5"}'},f:["5"]}," ",{p:[58,5,3069],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[58,39,3103]}],params:'{"digit":"6"}'},f:["6"]}," ",{p:[59,5,3188],t:7,e:"br"}," ",{p:[60,5,3198],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[60,39,3232]}],params:'{"digit":"7"}'},f:["7"]}," ",{p:[61,5,3317],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[61,39,3351]}],params:'{"digit":"8"}'},f:["8"]}," ",{p:[62,5,3436],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[62,39,3470]}],params:'{"digit":"9"}'},f:["9"]}," ",{p:[63,5,3555],t:7,e:"br"}," ",{p:[64,5,3565],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[64,39,3599]}],params:'{"digit":"R"}'},f:["R"]}," ",{p:[65,5,3684],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[65,39,3718]}],params:'{"digit":"0"}'},f:["0"]}," ",{p:[66,5,3803],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[66,39,3837]}],params:'{"digit":"E"}'},f:["E"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],430:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,25],t:7,e:"ui-button",a:{icon:"undo",action:"change_menu",params:'{"menu": "1"}'},f:["Return"]}," ",{p:[3,2,113],t:7,e:"ui-display",a:{title:"Advanced Surgery Procedures"},f:[{p:[4,3,165],t:7,e:"ui-button",a:{icon:"download",action:"sync"},f:["Sync with research database"]}," ",{t:4,f:[{p:[6,4,278],t:7,e:"ui-display",f:[{p:[7,6,297],t:7,e:"ui-section",f:[{p:[7,18,309],t:7,e:"b",f:[{t:2,r:"name",p:[7,21,312]}]}]}," ",{p:[8,6,344],t:7,e:"ui-section",f:[{t:2,r:"desc",p:[8,18,356]}]}]}],n:52,r:"data.surgeries",p:[5,3,249]}]}],n:50,x:{r:["data.menu"],s:"_0==2"},p:[1,1,0]},{t:4,n:51,f:[{p:[13,2,437],t:7,e:"ui-button",a:{action:"change_menu",params:'{"menu": "2"}'},f:["View Surgery Procedures"]}," ",{t:4,f:[{p:[15,3,556],t:7,e:"ui-notice",f:["No table detected!"]}],n:51,r:"data.table",p:[14,2,530]}," ",{p:[19,2,623],t:7,e:"ui-display",f:[{p:[20,3,639],t:7,e:"ui-display",a:{title:"Patient State"},f:[{t:4,f:[{p:[22,5,704],t:7,e:"ui-section",a:{label:"State"},f:[{p:[23,6,737],t:7,e:"span",a:{"class":[{t:2,r:"data.patient.statstate",p:[23,19,750]}]},f:[{t:2,r:"data.patient.stat",p:[23,47,778]}]}]}," ",{p:[25,5,831],t:7,e:"ui-section",a:{label:"Blood Type"},f:[{p:[26,6,869],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.patient.blood_type",p:[26,28,891]}]}]}," ",{p:[28,5,950],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[29,6,984],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.patient.minHealth",p:[29,19,997]}],max:[{t:2,r:"data.patient.maxHealth",p:[29,52,1030]}],value:[{t:2,r:"data.patient.health",p:[29,87,1065]}],state:[{t:2,x:{r:["data.patient.health"],s:'_0>=0?"good":"average"'},p:[30,13,1103]}]},f:[{t:2,x:{r:["adata.patient.health"],s:"Math.round(_0)"},p:[30,64,1154]}]}]}," ",{t:4,f:[{p:[33,6,1389],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[33,25,1408]}]},f:[{p:[34,7,1427],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.patient.maxHealth",p:[34,28,1448]}],value:[{t:2,rx:{r:"data.patient",m:[{t:30,n:"type"}]},p:[34,63,1483]}],state:"bad"},f:[{t:2,x:{r:["type","adata.patient"],s:"Math.round(_1[_0])"},p:[34,99,1519]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}]'},p:[32,5,1224]}],n:50,r:"data.patient",p:[21,4,678]},{t:4,n:51,f:["No patient detected."],r:"data.patient"}]}," ",{p:[41,3,1670],t:7,e:"ui-display",a:{title:"Initiated Procedures"},f:[{t:4,f:[{t:4,f:[{p:[44,6,1777],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[44,28,1799]}]},f:[{p:[45,7,1817],t:7,e:"ui-section",a:{label:"Next Step"},f:[{p:[46,8,1856],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"next_step",p:[46,30,1878]}]}," ",{t:4,f:[{p:[48,9,1937],t:7,e:"span",a:{"class":"content"},f:[{p:[48,31,1959],t:7,e:"b",f:["Required chemicals:"]},{p:[48,57,1985],t:7,e:"br"}," ",{t:2,r:"chems_needed",p:[48,62,1990]}]}],n:50,r:"chems_needed",p:[47,8,1907]}]}," ",{t:4,f:[{p:[52,8,2091],t:7,e:"ui-section",a:{label:"Alternative Step"},f:[{p:[53,9,2138],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"alternative_step",p:[53,31,2160]}]}," ",{t:4,f:[{p:[55,10,2232],t:7,e:"span",a:{"class":"content"},f:[{p:[55,32,2254],t:7,e:"b",f:["Required chemicals:"]},{p:[55,58,2280],t:7,e:"br"}," ",{t:2,r:"chems_needed",p:[55,63,2285]}]}],n:50,r:"alt_chems_needed",p:[54,9,2197]}]}],n:50,r:"alternative_step",p:[51,7,2058]}]}],n:52,r:"data.procedures",p:[43,5,1745]}],n:50,r:"data.procedures",p:[42,4,1716]},{t:4,n:51,f:["No active procedures."],r:"data.procedures"}]}]}],x:{r:["data.menu"],s:"_0==2"}}]},e.exports=a.extend(r.exports)},{341:341}],431:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,15],t:7,e:"ui-section",f:["This machine only accepts ore. Gibtonite and Slag are not accepted."]}," ",{p:[5,2,117],t:7,e:"ui-section",f:["Current unclaimed points: ",{t:2,r:"data.unclaimedPoints",p:[6,29,159]}," ",{t:4,f:[{p:[8,4,220],t:7,e:"ui-button",a:{action:"Claim"},f:["Claim Points"]}],n:50,r:"data.unclaimedPoints",p:[7,3,187]}]}," ",{p:[13,2,311],t:7,e:"ui-section",f:[{t:4,f:[{p:[15,4,350],t:7,e:"ui-button",a:{action:"Eject"},f:["Eject ID"]}," You have ",{t:2,r:"data.claimedPoints",p:[18,13,421]}," mining points collected."],n:50,r:"data.hasID",p:[14,3,327]},{t:4,n:51,f:[{p:[20,4,485],t:7,e:"ui-button",a:{action:"Insert"},f:["Insert ID"]}],r:"data.hasID"}]}]}," ",{p:[26,1,588],t:7,e:"ui-display",f:[{t:4,f:[{p:[28,3,627],t:7,e:"ui-section",f:[{p:[29,4,644],t:7,e:"ui-button",a:{action:"diskEject",icon:"eject"},f:["Eject Disk"]}]}," ",{t:4,f:[{p:[34,4,772],t:7,e:"ui-section",a:{"class":"candystripe"},f:[{p:[35,5,808],t:7,e:"ui-button",a:{action:"diskUpload",state:[{t:2,x:{r:["canupload"],s:'(_0)?null:"disabled"'},p:[35,42,845]}],icon:"upload",align:"right",params:['{ "design" : "',{t:2,r:"index",p:[35,129,932]},'" }']},f:["Upload"]}," File ",{t:2,r:"index",p:[38,10,988]},": ",{t:2,r:"name",p:[38,21,999]}]}],n:52,r:"data.diskDesigns",p:[33,3,741]}],n:50,r:"data.hasDisk",p:[27,2,603]},{t:4,n:51,f:[{p:[42,3,1053],t:7,e:"ui-section",f:[{p:[43,4,1070],t:7,e:"ui-button",a:{action:"diskInsert",icon:"floppy-o"},f:["Insert Disk"]}]}],r:"data.hasDisk"}]}," ",{t:4,f:[{p:[50,2,1223],t:7,e:"ui-display",f:[{p:[51,3,1239],t:7,e:"ui-section",f:[{p:[52,4,1256],t:7,e:"b",f:["Warning"]},": ",{t:2,r:"data.disconnected",p:[52,20,1272]},". Please contact the quartermaster."]}]}],n:50,r:"data.disconnected",p:[49,1,1195]},{t:4,f:[{p:[57,2,1412],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[58,3,1445],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[59,5,1480],t:7,e:"section",a:{"class":"cell"},f:["Mineral"]}," ",{p:[62,5,1538],t:7,e:"section",a:{"class":"cell"},f:["Sheets"]}," ",{p:[65,5,1595],t:7,e:"section",a:{"class":"cell"},f:[]}," ",{p:[67,5,1639],t:7,e:"section",a:{"class":"cell"},f:[]}," ",{p:[69,5,1683],t:7,e:"section",a:{"class":"cell"},f:["Ore Value"]}]}," ",{t:4,f:[{p:[74,4,1785],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[75,5,1820],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[76,6,1849]}]}," ",{p:[78,5,1879],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[79,6,1922]}]}," ",{p:[81,5,1954],t:7,e:"section",a:{"class":"cell"},f:[{p:[82,6,1983],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[82,19,1996]}],placeholder:"###","class":"number"}}]}," ",{p:[84,5,2063],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[85,6,2106],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[85,60,2160]}],params:['{ "id" : ',{t:2,r:"id",p:[85,115,2215]},', "sheets" : ',{t:2,r:"sheets",p:[85,134,2234]}," }"]},f:["Release"]}]}," ",{p:[89,5,2305],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"value",p:[90,6,2348]}]}]}],n:52,r:"data.materials",p:[73,3,1756]}," ",{t:4,f:[{p:[95,4,2431],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[96,5,2466],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[97,6,2495]}]}," ",{p:[99,5,2525],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[100,6,2568]}]}," ",{p:[102,5,2600],t:7,e:"section",a:{"class":"cell"},f:[{p:[103,6,2629],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[103,19,2642]}],placeholder:"###","class":"number"}}]}," ",{p:[105,5,2709],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[106,6,2752],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Smelt",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[106,58,2804]}],params:['{ "id" : ',{t:2,r:"id",p:[106,114,2860]},', "sheets" : ',{t:2,r:"sheets",p:[106,133,2879]}," }"]},f:["Smelt"]}]}," ",{p:[110,5,2947],t:7,e:"section",a:{"class":"cell",align:"right"},f:[]}]}],n:52,r:"data.alloys",p:[94,3,2405]}]}],n:50,x:{r:["data.materials","data.alloys"],s:"_0||_1"},p:[56,1,1372]}]},e.exports=a.extend(r.exports)},{341:341}],432:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:{button:[{p:[4,4,87],t:7,e:"ui-button",a:{icon:"remove",state:[{t:2,x:{r:["data.has_beaker","data.beaker_empty"],s:'_0&&!_1?null:"disabled"'},p:[4,36,119]}],action:"empty_eject_beaker"},f:["Empty and Eject"]}," ",{p:[7,4,253],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.has_beaker","data.beaker_empty"],s:'_0&&!_1?null:"disabled"'},p:[7,35,284]}],action:"empty_beaker"},f:["Empty"]}," ",{p:[10,4,402],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[10,35,433]}],action:"eject_beaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{t:4,f:[{p:[15,4,572],t:7,e:"ui-section",f:[{t:4,f:[{p:[17,6,622],t:7,e:"span",a:{"class":"bad"},f:["The beaker is empty!"]}],n:50,r:"data.beaker_empty",p:[16,5,590]},{t:4,n:51,f:[{p:[19,6,688],t:7,e:"ui-subdisplay",a:{title:"Blood"},f:[{t:4,f:[{p:[21,8,756],t:7,e:"ui-section",a:{label:"Blood DNA"},f:[{t:2,r:"data.blood.dna",p:[21,38,786]}]}," ",{p:[22,8,826],t:7,e:"ui-section",a:{label:"Blood type"},f:[{t:2,r:"data.blood.type",p:[22,39,857]}]}],n:50,r:"data.has_blood",p:[20,7,725]},{t:4,n:51,f:[{p:[24,8,914],t:7,e:"ui-section",f:[{p:[25,9,936],t:7,e:"span",a:{"class":"average"},f:["No blood sample detected."]}]}],r:"data.has_blood"}]}],r:"data.beaker_empty"}]}],n:50,r:"data.has_beaker",p:[14,3,544]},{t:4,n:51,f:[{p:[32,4,1098],t:7,e:"ui-section",f:[{p:[33,5,1116],t:7,e:"span",a:{"class":"bad"},f:["No beaker loaded."]}]}],r:"data.has_beaker"}]}," ",{t:4,f:[{p:[38,3,1232],t:7,e:"ui-display",a:{title:"Diseases"},f:[{t:4,f:[{p:{button:[{t:4,f:[{p:[43,8,1387],t:7,e:"ui-button",a:{icon:"pencil",action:"rename_disease",state:[{t:2,x:{r:["can_rename"],s:'_0?"":"disabled"'},p:[43,64,1443]}],params:['{"index": ',{t:2,r:"index",p:[43,116,1495]},"}"]},f:["Name advanced disease"]}],n:50,r:"is_adv",p:[42,7,1364]}," ",{p:[47,7,1582],t:7,e:"ui-button",a:{icon:"flask",action:"create_culture_bottle",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[47,69,1644]}],params:['{"index": ',{t:2,r:"index",p:[47,124,1699]},"}"]},f:["Create virus culture bottle"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[40,24,1313]}],button:0},f:[" ",{p:[51,6,1793],t:7,e:"ui-section",a:{label:"Disease agent"},f:[{t:2,r:"agent",p:[51,40,1827]}]}," ",{p:[52,6,1856],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[52,38,1888]}]}," ",{p:[53,6,1923],t:7,e:"ui-section",a:{label:"Spread"},f:[{t:2,r:"spread",p:[53,33,1950]}]}," ",{p:[54,6,1980],t:7,e:"ui-section",a:{label:"Possible cure"},f:[{t:2,r:"cure",p:[54,40,2014]}]}," ",{t:4,f:[{p:[56,7,2065],t:7,e:"ui-section",a:{label:"Symptoms"},f:[{t:4,f:[{p:[58,9,2131],t:7,e:"ui-button",a:{action:"symptom_details",state:"",params:['{"picked_symptom": ',{t:2,r:"sym_index",p:[58,81,2203]},', "index": ',{t:2,r:"index",p:[58,105,2227]},"}"]},f:[{t:2,r:"name",p:[59,10,2250]}," "]},{p:[60,21,2280],t:7,e:"br"}],n:52,r:"symptoms",p:[57,8,2103]}]}," ",{p:[63,7,2333],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[63,38,2364]}]}," ",{p:[64,7,2399],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[64,35,2427]}]}," ",{p:[65,7,2459],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[65,39,2491]}]}," ",{p:[66,7,2527],t:7,e:"ui-section",a:{label:"Transmittability"},f:[{t:2,r:"transmission",p:[66,44,2564]}]}],n:50,r:"is_adv",p:[55,6,2043]}]}],n:52,r:"data.viruses",p:[39,4,1266]},{t:4,n:51,f:[{p:[70,5,2645],t:7,e:"ui-section",f:[{p:[71,6,2664],t:7,e:"span",a:{"class":"average"},f:["No detectable virus in the blood sample."]}]}],r:"data.viruses"}]}," ",{p:[75,3,2787],t:7,e:"ui-display",a:{title:"Antibodies"},f:[{t:4,f:[{p:[77,5,2855],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[77,24,2874]}]},f:[{p:[78,7,2892],t:7,e:"ui-button",a:{icon:"eyedropper",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[78,43,2928]}],action:"create_vaccine_bottle",params:['{"index": ',{t:2,r:"id",p:[78,129,3014]},"}"]},f:["Create vaccine bottle"]}]}],n:52,r:"data.resistances",p:[76,4,2823]},{t:4,n:51,f:[{p:[83,5,3111],t:7,e:"ui-section",f:[{p:[84,6,3130],t:7,e:"span",a:{"class":"average"},f:["No antibodies detected in the blood sample."]}]}],r:"data.resistances"}]}],n:50,r:"data.has_blood",p:[37,2,1206]}],n:50,x:{r:["data.mode"],s:"_0==1"},p:[1,1,0]},{t:4,n:51,f:[{p:[90,2,3275],t:7,e:"ui-button",a:{icon:"undo",state:"",action:"back"},f:["Back"]}," ",{t:4,f:[{p:[94,4,3374],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[94,23,3393]}]},f:[{p:[95,4,3408],t:7,e:"ui-section",f:[{t:2,r:"desc",p:[96,5,3426]}," ",{t:4,f:[{p:[98,5,3461],t:7,e:"br"}," ",{p:[99,5,3472],t:7,e:"b",f:["This symptom has been neutered, and has no effect. It will still affect the virus' statistics."]}],n:50,r:"neutered",p:[97,4,3439]}]}," ",{p:[102,4,3608],t:7,e:"ui-section",f:[{p:[103,5,3626],t:7,e:"ui-section",a:{label:"Level"},f:[{t:2,r:"level",p:[103,31,3652]}]}," ",{p:[104,5,3680],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[104,36,3711]}]}," ",{p:[105,5,3744],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[105,33,3772]}]}," ",{p:[106,5,3802],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[106,37,3834]}]}," ",{p:[107,5,3868],t:7,e:"ui-section",a:{label:"Transmittability"},f:[{t:2,r:"transmission",p:[107,42,3905]}]}]}," ",{p:[109,4,3957],t:7,e:"ui-subdisplay",a:{title:"Effect Thresholds"},f:[{p:[110,5,4004],t:7,e:"ui-section",f:[{t:3,r:"threshold_desc",p:[110,17,4016]}]}]}]}],n:53,r:"data.symptom",p:[93,2,3347]}],x:{r:["data.mode"],s:"_0==1"}}]},e.exports=a.extend(r.exports)},{341:341}],433:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(479);e.exports={data:{filter:"",tooltiptext:function(t,e,n){var a="";return t&&(a+="REQUIREMENTS: "+t+" "),e&&(a+="CATALYSTS: "+e+" "),n&&(a+="TOOLS: "+n),a}},oninit:function(){var t=this;this.on({hover:function(t){this.set("hovered",t.context.params); -},unhover:function(t){this.set("hovered")}}),this.observe("filter",function(e,a,r){var i=null;i=t.get("data.display_compact")?t.findAll(".section"):t.findAll(".display:not(:first-child)"),(0,n.filterMulti)(i,t.get("filter").toLowerCase())},{init:!1})}}}(r),r.exports.template={v:3,t:[" ",{p:[48,1,1342],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[48,20,1361]},{t:4,f:[" : ",{t:2,r:"data.subcategory",p:[48,64,1405]}],n:50,r:"data.subcategory",p:[48,37,1378]}]},f:[{t:4,f:[{p:[50,3,1459],t:7,e:"ui-section",f:["Crafting... ",{p:[51,16,1488],t:7,e:"i",a:{"class":"fa-spin fa fa-spinner"}}]}],n:50,r:"data.busy",p:[49,2,1438]},{t:4,n:51,f:[{p:[54,3,1557],t:7,e:"ui-section",f:[{p:[55,4,1574],t:7,e:"table",a:{style:"width:100%"},f:[{p:[56,5,1606],t:7,e:"tr",f:[{p:[57,6,1617],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[58,7,1659],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[59,8,1718]}]}]}," ",{p:[62,6,1774],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[63,7,1816],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[64,7,1874]}]}]}," ",{p:[67,6,1930],t:7,e:"td",a:{style:"float:right!important"},f:[{t:4,f:[{p:[69,7,2014],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[68,6,1971]},{t:4,n:51,f:[{p:[73,7,2138],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}]}," ",{p:[78,6,2268],t:7,e:"td",a:{style:"float:right!important"},f:[{p:[79,7,2310],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[79,24,2327]}],action:"toggle_compact"},f:["Compact"]}]}]}," ",{p:[84,5,2474],t:7,e:"tr",f:[{t:4,f:[{p:[86,6,2515],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[87,7,2557],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardSubCat"},f:[{t:2,r:"data.prev_subcat",p:[88,8,2619]}]}]}," ",{p:[91,6,2678],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[92,7,2720],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardSubCat"},f:[{t:2,r:"data.next_subcat",p:[93,8,2782]}]}]}],n:50,r:"data.subcategory",p:[85,5,2484]}]}]}," ",{t:4,f:[{t:4,f:[" ",{p:[101,6,2992],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[101,23,3009]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[100,5,2902]}],n:50,r:"config.fancy",p:[99,4,2876]}]}," ",{t:4,f:[{p:[106,5,3144],t:7,e:"ui-display",f:[{t:4,f:[{p:[108,6,3193],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[108,25,3212]}]},f:[{p:[109,7,3230],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[109,27,3250]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[109,135,3358]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[107,5,3162]}," ",{t:4,f:[{t:4,f:[{p:[116,7,3567],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[116,26,3586]}]},f:[{p:[117,8,3605],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[117,28,3625]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[115,6,3534]}],n:51,r:"data.display_craftable_only",p:[114,5,3495]}]}],n:50,r:"data.display_compact",p:[105,4,3110]},{t:4,n:51,f:[{t:4,f:[{p:[126,6,3947],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[126,25,3966]}]},f:[{t:4,f:[{p:[128,8,4009],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[129,9,4052]}]}],n:50,r:"req_text",p:[127,7,3984]}," ",{t:4,f:[{p:[133,8,4139],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[134,9,4179]}]}],n:50,r:"catalyst_text",p:[132,7,4109]}," ",{t:4,f:[{p:[138,8,4267],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[139,9,4303]}]}],n:50,r:"tool_text",p:[137,7,4241]}," ",{p:[142,7,4361],t:7,e:"ui-section",f:[{p:[143,8,4382],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[143,66,4440]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[125,5,3916]}," ",{t:4,f:[{t:4,f:[{p:[151,7,4621],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[151,26,4640]}]},f:[{t:4,f:[{p:[153,9,4685],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[154,10,4729]}]}],n:50,r:"req_text",p:[152,8,4659]}," ",{t:4,f:[{p:[158,9,4820],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[159,10,4861]}]}],n:50,r:"catalyst_text",p:[157,8,4789]}," ",{t:4,f:[{p:[163,9,4953],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[164,10,4990]}]}],n:50,r:"tool_text",p:[162,8,4926]}]}],n:52,r:"data.cant_craft",p:[150,6,4588]}],n:51,r:"data.display_craftable_only",p:[149,5,4549]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{341:341,479:479}],434:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:[4,1,113],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[5,3,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,5,186],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[6,11,192]}," kPa"]}]}," ",{p:[8,3,254],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[9,5,285],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[9,18,298]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[9,59,339]}]}]}]}," ",{p:[12,1,430],t:7,e:"ui-display",a:{title:"Pump"},f:[{p:[13,3,459],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,491],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,508]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,559]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,616]}]}]}," ",{p:[18,3,675],t:7,e:"ui-section",a:{label:"Direction"},f:[{p:[19,5,711],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"sign-out":"sign-in"'},p:[19,22,728]}],action:"direction"},f:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"Out":"In"'},p:[20,26,808]}]}]}," ",{p:[22,3,883],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,5,925],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.min_pressure",p:[23,18,938]}],max:[{t:2,r:"data.max_pressure",p:[23,46,966]}],value:[{t:2,r:"data.target_pressure",p:[24,14,1003]}]},f:[{t:2,x:{r:["adata.target_pressure"],s:"Math.round(_0)"},p:[24,40,1029]}," kPa"]}]}," ",{p:[26,3,1100],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,1145],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.target_pressure","data.default_pressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,1178]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1328],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.target_pressure","data.min_pressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1359]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1500],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1595],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.target_pressure","data.max_pressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1625]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}," ",{p:{button:[{t:4,f:[{p:[39,7,1891],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[39,38,1922]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[38,5,1863]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[43,3,2042],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[44,4,2073]}]}," ",{p:[46,3,2115],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[47,4,2149]}," kPa"]}],n:50,r:"data.holding",p:[42,3,2018]},{t:4,n:51,f:[{p:[50,3,2223],t:7,e:"ui-section",f:[{p:[51,4,2240],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{341:341}],435:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[3,1,69],t:7,e:"ui-notice",f:[{p:[4,3,84],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[4,23,104]}," connected to a tank."]}]}," ",{p:[6,1,182],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[7,3,220],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[8,5,255],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[8,11,261]}," kPa"]}]}," ",{p:[10,3,323],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[11,5,354],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[11,18,367]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[11,59,408]}]}]}]}," ",{p:[14,1,499],t:7,e:"ui-display",a:{title:"Filter"},f:[{p:[15,3,530],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[16,5,562],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[16,22,579]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[17,14,630]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[18,22,687]}]}]}]}," ",{p:{button:[{t:4,f:[{p:[24,7,856],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[24,38,887]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[23,5,828]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[28,3,1007],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[29,4,1038]}]}," ",{p:[31,3,1080],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[32,4,1114]}," kPa"]}],n:50,r:"data.holding",p:[27,3,983]},{t:4,n:51,f:[{p:[35,3,1188],t:7,e:"ui-section",f:[{p:[36,4,1205],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}," ",{p:[40,1,1293],t:7,e:"ui-display",a:{title:"Filters"},f:[{t:4,f:[{p:[42,5,1345],t:7,e:"filters"}],n:53,r:"data",p:[41,3,1325]}]}]},r.exports.components=r.exports.components||{};var i={filters:t(452)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,452:452}],436:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" ",{p:[42,1,1035],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[44,5,1093],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[44,27,1115]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[46,38,1267]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[47,15,1323]}],yinc:"9"}}],n:50,r:"config.fancy",p:[43,3,1067]},{t:4,n:51,f:[{p:[49,5,1373],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[50,7,1411],t:7,e:"span",f:[{t:2,r:"data.supply",p:[50,13,1417]}]}]}," ",{p:[52,5,1464],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[53,9,1499],t:7,e:"span",f:[{t:2,r:"data.demand",p:[53,15,1505]}]}]}],r:"config.fancy"}]}," ",{p:[57,1,1574],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[58,3,1604],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[59,5,1629],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[60,5,1666],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[61,5,1705],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[62,5,1742],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[63,5,1781],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[64,5,1823],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[65,5,1864],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[68,5,1949],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[68,24,1968]}],nowrap:0},f:[{p:[69,7,1993],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[69,28,2014]}," %"]}," ",{p:[70,7,2072],t:7,e:"div",a:{"class":"content"},f:[{t:2,rx:{r:"adata.areas",m:[{t:30,n:"@index"},"load"]},p:[70,28,2093]}]}," ",{p:[71,7,2135],t:7,e:"div",a:{"class":"content"},f:[{p:[71,28,2156],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[71,41,2169]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[71,70,2198]}]}]}," ",{p:[72,7,2245],t:7,e:"div",a:{"class":"content"},f:[{p:[72,28,2266],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[72,41,2279]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[72,64,2302]}," [",{p:[72,87,2325],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[72,93,2331]}]},"]"]}]}," ",{p:[73,7,2380],t:7,e:"div",a:{"class":"content"},f:[{p:[73,28,2401],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[73,41,2414]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[73,64,2437]}," [",{p:[73,87,2460],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[73,93,2466]}]},"]"]}]}," ",{p:[74,7,2515],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2536],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[74,41,2549]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[74,64,2572]}," [",{p:[74,87,2595],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[74,93,2601]}]},"]"]}]}]}],n:52,r:"data.areas",p:[67,3,1923]}]}]},e.exports=a.extend(r.exports)},{341:341}],437:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{readableFrequency:function(){return Math.round(this.get("adata.frequency"))/10}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,177],t:7,e:"ui-display",a:{title:"Settings"},f:[{t:4,f:[{p:[13,5,236],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,7,270],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[14,24,287]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[14,75,338]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"On":"Off"'},p:[16,9,413]}]}]}],n:50,r:"data.headset",p:[12,3,210]},{t:4,n:51,f:[{p:[19,5,494],t:7,e:"ui-section",a:{label:"Microphone"},f:[{p:[20,7,533],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.broadcasting"],s:'_0?"power-off":"close"'},p:[20,24,550]}],style:[{t:2,x:{r:["data.broadcasting"],s:'_0?"selected":null'},p:[20,78,604]}],action:"broadcast"},f:[{t:2,x:{r:["data.broadcasting"],s:'_0?"Engaged":"Disengaged"'},p:[22,9,685]}]}]}," ",{p:[24,5,769],t:7,e:"ui-section",a:{label:"Speaker"},f:[{p:[25,7,805],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[25,24,822]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[25,75,873]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"Engaged":"Disengaged"'},p:[27,9,948]}]}]}],r:"data.headset"}," ",{t:4,f:[{p:[31,5,1064],t:7,e:"ui-section",a:{label:"High Volume"},f:[{p:[32,7,1104],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.useCommand"],s:'_0?"power-off":"close"'},p:[32,24,1121]}],style:[{t:2,x:{r:["data.useCommand"],s:'_0?"selected":null'},p:[32,76,1173]}],action:"command"},f:[{t:2,x:{r:["data.useCommand"],s:'_0?"On":"Off"'},p:[34,9,1250]}]}]}],n:50,r:"data.command",p:[30,3,1038]}]}," ",{p:[38,1,1342],t:7,e:"ui-display",a:{title:"Channel"},f:[{p:[39,3,1374],t:7,e:"ui-section",a:{label:"Frequency"},f:[{t:4,f:[{p:[41,7,1439],t:7,e:"span",f:[{t:2,r:"readableFrequency",p:[41,13,1445]}]}],n:50,r:"data.freqlock",p:[40,5,1410]},{t:4,n:51,f:[{p:[43,7,1495],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[43,46,1534]}],action:"frequency",params:'{"adjust": -1}'}}," ",{p:[44,7,1646],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[44,41,1680]}],action:"frequency",params:'{"adjust": -.2}'}}," ",{p:[45,7,1793],t:7,e:"ui-button",a:{icon:"pencil",action:"frequency",params:'{"tune": "input"}'},f:[{t:2,r:"readableFrequency",p:[45,78,1864]}]}," ",{p:[46,7,1905],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[46,40,1938]}],action:"frequency",params:'{"adjust": .2}'}}," ",{p:[47,7,2050],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[47,45,2088]}],action:"frequency",params:'{"adjust": 1}'}}],r:"data.freqlock"}]}," ",{t:4,f:[{p:[51,5,2262],t:7,e:"ui-section",a:{label:"Subspace Transmission"},f:[{p:[52,7,2312],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.subspace"],s:'_0?"power-off":"close"'},p:[52,24,2329]}],style:[{t:2,x:{r:["data.subspace"],s:'_0?"selected":null'},p:[52,74,2379]}],action:"subspace"},f:[{t:2,x:{r:["data.subspace"],s:'_0?"Active":"Inactive"'},p:[53,29,2447]}]}]}],n:50,r:"data.subspaceSwitchable",p:[50,3,2225]}," ",{t:4,f:[{p:[57,5,2578],t:7,e:"ui-section",a:{label:"Channels"},f:[{t:4,f:[{p:[59,9,2656],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["."],s:'_0?"check-square-o":"square-o"'},p:[59,26,2673]}],style:[{t:2,x:{r:["."],s:'_0?"selected":null'},p:[60,18,2730]}],action:"channel",params:['{"channel": "',{t:2,r:"channel",p:[61,49,2806]},'"}']},f:[{t:2,r:"channel",p:[62,11,2833]}]},{p:[62,34,2856],t:7,e:"br"}],n:52,i:"channel",r:"data.channels",p:[58,7,2615]}]}],n:50,x:{r:["data.subspace","data.channels"],s:"_0&&_1"},p:[56,3,2534]}]}]},e.exports=a.extend(r.exports)},{341:341}],438:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," "," "," "," "," "," ",{p:[11,1,560],t:7,e:"rdheader"}," ",{t:4,f:[{p:[13,2,595],t:7,e:"ui-display",a:{title:"CONSOLE LOCKED"},f:[{p:[14,3,634],t:7,e:"ui-button",a:{action:"Unlock"},f:["Unlock"]}]}],n:50,r:"data.locked",p:[12,1,573]},{t:4,f:[{p:[18,2,729],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[18,17,744]}]},f:[{p:[19,3,763],t:7,e:"tab",a:{name:"Technology"},f:[{p:[20,4,791],t:7,e:"techweb"}]}," ",{p:[22,3,815],t:7,e:"tab",a:{name:"View Node"},f:[{p:[23,4,842],t:7,e:"nodeview"}]}," ",{p:[25,3,867],t:7,e:"tab",a:{name:"View Design"},f:[{p:[26,4,896],t:7,e:"designview"}]}," ",{p:[28,3,923],t:7,e:"tab",a:{name:"Disk Operations - Design"},f:[{p:[29,4,965],t:7,e:"diskopsdesign"}]}," ",{p:[31,3,995],t:7,e:"tab",a:{name:"Disk Operations - Technology"},f:[{p:[32,4,1041],t:7,e:"diskopstech"}]}," ",{p:[34,3,1069],t:7,e:"tab",a:{name:"Deconstructive Analyzer"},f:[{p:[35,4,1110],t:7,e:"destruct"}]}," ",{p:[37,3,1135],t:7,e:"tab",a:{name:"Protolathe"},f:[{p:[38,4,1163],t:7,e:"protolathe"}]}," ",{p:[40,3,1190],t:7,e:"tab",a:{name:"Circuit Imprinter"},f:[{p:[41,4,1225],t:7,e:"circuit"}]}," ",{p:[43,3,1249],t:7,e:"tab",a:{name:"Settings"},f:[{p:[44,4,1275],t:7,e:"settings"}]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[17,1,706]}]},r.exports.components=r.exports.components||{};var i={settings:t(447),circuit:t(439),protolathe:t(445),destruct:t(441),diskopsdesign:t(442),diskopstech:t(443),designview:t(440),nodeview:t(444),techweb:t(448),rdheader:t(446)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,439:439,440:440,441:441,442:442,443:443,444:444,445:445,446:446,447:447,448:448}],439:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[3,3,58],t:7,e:"ui-display",a:{title:"Circuit Imprinter Busy!"}}],n:50,r:"data.circuitbusy",p:[2,2,30]},{t:4,n:51,f:[{p:[5,3,130],t:7,e:"ui-display",f:[{p:[6,4,147],t:7,e:"ui-section",f:["Search Available Designs: ",{p:[7,4,189],t:7,e:"input",a:{value:[{t:2,r:"textsearch",p:[7,17,202]}],placeholder:"Type Here","class":"text"}}," ",{p:[8,5,261],t:7,e:"ui-button",a:{action:"textSearch",params:['{"latheType" : "circuit", "inputText" : ',{t:2,r:"textsearch",p:[8,84,340]},"}"]},f:["Search"]}]}," ",{p:[10,4,398],t:7,e:"ui-section",f:["Materials: ",{t:2,r:"data.circuitmats",p:[10,27,421]}," / ",{t:2,r:"data.circuitmaxmats",p:[10,50,444]}]}," ",{p:[11,4,485],t:7,e:"ui-section",f:["Reagents: ",{t:2,r:"data.circuitchems",p:[11,26,507]}," / ",{t:2,r:"data.circuitmaxchems",p:[11,50,531]}]}," ",{p:[12,3,572],t:7,e:"ui-display",f:[{p:[14,3,590],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.lathe_tabs",p:[14,18,605]}]},f:[{p:[15,4,631],t:7,e:"tab",a:{name:"Category List"},f:[{t:4,f:[{p:[17,6,696],t:7,e:"ui-button",a:{action:"switchcat",state:[{t:2,x:{r:["data.circuitcat"],s:'_0=="{{name}}"?"selected":null'},p:[17,43,733]}],params:['{"type" : "circuit", "cat" : "',{t:2,r:"name",p:[17,135,825]},'"}']},f:[{t:2,r:"name",p:[17,147,837]}]}],n:52,r:"data.circuitcats",p:[16,5,663]}]}," ",{p:[20,4,888],t:7,e:"tab",a:{name:"Selected Category"},f:[{t:4,f:[{p:[22,6,956],t:7,e:"ui-section",f:[{t:2,r:"name",p:[22,18,968]},{t:2,r:"matstring",p:[22,26,976]}," ",{p:[23,7,997],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[23,40,1030]}],params:['{"latheType" : "circuit", "id" : "',{t:2,r:"id",p:[23,119,1109]},'"}']},f:["Print"]}]}],n:52,r:"data.circuitdes",p:[21,5,924]}]}," ",{p:[27,4,1187],t:7,e:"tab",a:{name:"Search Results"},f:[{t:4,f:[{p:[29,6,1254],t:7,e:"ui-section",f:[{t:2,r:"name",p:[29,18,1266]},{t:2,r:"matstring",p:[29,26,1274]}," ",{p:[30,7,1295],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[30,40,1328]}],params:['{"latheType" : "circuit", "id" : "',{t:2,r:"id",p:[30,119,1407]},'"}']},f:["Print"]}]}],n:52,r:"data.circuitmatch",p:[28,5,1220]}]}," ",{p:[34,4,1485],t:7,e:"tab",a:{name:"Materials"},f:[{t:4,f:[{p:[36,6,1550],t:7,e:"ui-section",f:[{t:2,r:"name",p:[36,18,1562]}," : ",{t:2,r:"amount",p:[36,29,1573]}," cm3 - ",{t:4,f:[{p:[38,7,1623],t:7,e:"input",a:{value:[{t:2,r:"number",p:[38,20,1636]}],placeholder:["1-",{t:2,r:"sheets",p:[38,46,1662]}],"class":"number"}}," ",{p:[39,7,1698],t:7,e:"ui-button",a:{action:"releasemats",params:['{"latheType" : "circuit", "mat_id" : ',{t:2,r:"mat_id",p:[39,84,1775]},', "sheets" : ',{t:2,r:"number",p:[39,107,1798]},"}"]},f:["Release"]}],n:50,x:{r:["sheets"],s:"_0>0"},p:[37,6,1597]}]}],n:52,r:"data.circuitmat_list",p:[35,5,1513]}]}," ",{p:[44,4,1895],t:7,e:"tab",a:{name:"Chemicals"},f:[{t:4,f:[{p:[46,6,1961],t:7,e:"ui-section",f:[{t:2,r:"name",p:[46,18,1973]}," : ",{t:2,r:"amount",p:[46,29,1984]}," - ",{p:[47,7,2005],t:7,e:"ui-button",a:{action:"purgechem",params:['{"latheType" : "circuit", "name" : ',{t:2,r:"name",p:[47,80,2078]},', "id" : ',{t:2,r:"reagentid",p:[47,97,2095]},"}"]},f:["Purge"]}]}],n:52,r:"data.circuitchem_list",p:[45,5,1923]}]}]}]}]}],r:"data.circuitbusy"}],n:50,r:"data.circuit_linked",p:[1,1,0]},{t:4,n:51,f:[{p:[55,2,2216],t:7,e:"ui-display",a:{title:"No Linked Circuit Imprinter"}}],r:"data.circuit_linked"}]},e.exports=a.extend(r.exports)},{341:341}],440:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,31],t:7,e:"ui-display",a:{title:[{t:2,r:"data.sdesign_name",p:[2,21,50]}]},f:[{p:[3,3,77],t:7,e:"ui-section",a:{title:"Description"},f:[{t:2,r:"data.sdesign_desc",p:[3,35,109]}]}]}," ",{p:[5,2,162],t:7,e:"ui-display",a:{title:"Lathe Types"},f:[{t:4,f:[{p:[7,4,239],t:7,e:"ui-section",a:{title:"Circuit Imprinter"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&1"},p:[6,3,198]}," ",{t:4,f:[{p:[10,4,346],t:7,e:"ui-section",a:{title:"Protolathe"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&2"},p:[9,3,305]}," ",{t:4,f:[{p:[13,4,446],t:7,e:"ui-section",a:{title:"Autolathe"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&4"},p:[12,3,405]}," ",{t:4,f:[{p:[16,4,545],t:7,e:"ui-section",a:{title:"Crafting Fabricator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&8"},p:[15,3,504]}," ",{t:4,f:[{p:[19,4,655],t:7,e:"ui-section",a:{title:"Exosuit Fabricator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&16"},p:[18,3,613]}," ",{t:4,f:[{p:[22,4,764],t:7,e:"ui-section",a:{title:"Biogenerator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&32"},p:[21,3,722]}," ",{t:4,f:[{p:[25,4,867],t:7,e:"ui-section",a:{title:"Limb Grower"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&64"},p:[24,3,825]}," ",{t:4,f:[{p:[28,4,970],t:7,e:"ui-section",a:{title:"Ore Smelter"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&128"},p:[27,3,927]}]}," ",{p:[31,2,1045],t:7,e:"ui-display",a:{title:"Materials"},f:[{t:4,f:[{p:[33,4,1116],t:7,e:"ui-section",a:{title:[{t:2,r:"matname",p:[33,23,1135]}]},f:[{t:2,r:"matamt",p:[33,36,1148]}," cm^3"]}],n:52,r:"data.sdesign_materials",p:[32,3,1079]}]}],n:50,r:"data.design_selected",p:[1,1,0]},{t:4,f:[{p:[38,2,1248],t:7,e:"ui-display",a:{title:"No Design Selected."}}],n:50,x:{r:["data.design_selected"],s:"!_0"},p:[37,1,1216]}]},e.exports=a.extend(r.exports)},{341:341}],441:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[4,3,60],t:7,e:"ui-display",a:{title:"Destructive Analyzer Busy!"}}],n:50,r:"data.destroybusy",p:[3,2,32]},{t:4,n:51,f:[{t:4,f:[{p:[7,4,168],t:7,e:"ui-display",a:{title:"Destructive Analyzer Unloaded"}}],n:50,x:{r:["data.destroy_loaded"],s:"!_0"},p:[6,3,135]},{t:4,n:51,f:[{p:[9,4,248],t:7,e:"ui-display",a:{title:"Loaded Item"},f:[{p:[10,4,285],t:7,e:"ui-section",a:{title:"Name"},f:[{t:2,r:"data.destroy_name",p:[10,29,310]}]}]}," ",{p:[12,4,367],t:7,e:"ui-display",a:{title:"Boost Nodes"},f:[{t:4,f:[{p:[14,6,438],t:7,e:"ui-section",a:{title:[{t:2,r:"name",p:[14,25,457]}," | ",{t:2,r:"value",p:[14,36,468]}]},f:[{p:[15,7,487],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["allow"],s:'_0?null:"disabled"'},p:[15,25,505]}],action:"deconstruct",params:['{"id":',{t:2,r:"id",p:[15,90,570]},"}"]},f:["Deconstruct and Boost"]}]}],n:52,r:"data.boost_paths",p:[13,5,405]}]}," ",{p:[19,4,670],t:7,e:"ui-button",a:{action:"eject_da"},f:["Eject Item"]}],x:{r:["data.destroy_loaded"],s:"!_0"}}],r:"data.destroybusy"}],n:50,r:"data.destroy_linked",p:[2,1,2]},{t:4,n:51,f:[{p:[23,2,755],t:7,e:"ui-display",a:{title:"No Linked Destructive Analyzer"}}],r:"data.destroy_linked"}]},e.exports=a.extend(r.exports)},{341:341}],442:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[3,2,24],t:7,e:"ui-display",a:{title:"No Design Disk Loaded"}}],n:50,x:{r:["data.ddisk"],s:"!_0"},p:[2,1,2]},{t:4,n:51,f:[{t:4,f:[{p:[6,3,121],t:7,e:"ui-display",a:{title:"Design Disk Updating"}}],n:50,r:"data.ddisk_update",p:[5,2,92]},{t:4,n:51,f:[{t:4,f:[{p:[9,4,221],t:7,e:"ui-display",a:{title:"Design Disk"},f:[{p:[10,5,259],t:7,e:"ui-section",a:{title:"Disk Space"},f:["Disk Capacity: ",{t:2,r:"data.ddisk_size",p:[10,51,305]}," blueprints."]}," ",{p:[11,5,355],t:7,e:"ui-section",a:{title:"Disk IO"},f:[{p:[11,33,383],t:7,e:"ui-button",a:{action:"ddisk_upall"},f:["Upload all designs"]}]}," ",{p:[12,5,464],t:7,e:"ui-section",a:{title:"Clear Disk"},f:[{p:[12,36,495],t:7,e:"ui-button",a:{action:"clear_designdisk",style:"danger"},f:["WIPE ALL DATA"]}]}," ",{p:[13,5,591],t:7,e:"ui-section",a:{title:"Eject Disk"},f:[{p:[13,36,622],t:7,e:"ui-button",a:{action:"eject_designdisk"},f:["Eject Disk"]}]}]}," ",{p:[15,4,717],t:7,e:"ui-display",a:{title:"Disk Contents"},f:[{t:4,f:[{p:[17,6,792],t:7,e:"ui-section",a:{title:"Number"},f:["#",{t:2,r:"pos",p:[17,34,820]},": ",{t:4,f:[{p:[19,8,866],t:7,e:"ui-button",a:{action:"upload_empty_ddisk_slot",params:['{"slot": "',{t:2,r:"pos",p:[19,70,928]},'"}']},f:["Upload to Empty Slot"]}],n:50,x:{r:["id"],s:'_0=="null"'},p:[18,7,837]},{t:4,n:51,f:[{p:[21,8,996],t:7,e:"ui-button",a:{action:"select_design",params:['{"id": "',{t:2,r:"id",p:[21,58,1046]},'"}'],state:[{t:2,x:{r:["data.sdesign_id","id"],s:'_0==_1?"selected":null'},p:[21,75,1063]}]},f:[{t:2,r:"name",p:[21,122,1110]}]}," ",{p:[22,8,1139],t:7,e:"ui-button",a:{action:"ddisk_erasepos",style:"danger",params:['{"id": "',{t:2,r:"id",p:[22,74,1205]},'"}'],state:[{t:2,x:{r:["id"],s:'_0=="null"?"disabled":null'},p:[22,91,1222]}]},f:["Delete Slot"]}],x:{r:["id"],s:'_0=="null"'}}]}],n:52,r:"data.ddisk_designs",p:[16,5,757]}]}],n:50,x:{r:["data.ddisk_upload"],s:"!_0"},p:[8,3,190]},{t:4,n:51,f:[{p:[28,4,1367],t:7,e:"ui-display",a:{title:"Upload Design to Disk"},f:[{p:[28,46,1409],t:7,e:"ui-section",f:["Available Designs:"]}]}," ",{t:4,f:[{p:[30,5,1513],t:7,e:"ui-section",f:[{p:[30,17,1525],t:7,e:"ui-button",a:{action:"ddisk_uploaddesign",params:['{"id": "',{t:2,r:"id",p:[30,72,1580]},'"}']},f:[{t:2,r:"name",p:[30,82,1590]}]}]}],n:52,r:"data.ddisk_possible_designs",p:[29,4,1470]}],x:{r:["data.ddisk_upload"],s:"!_0"}}],r:"data.ddisk_update"}],x:{r:["data.ddisk"],s:"!_0"}}]},e.exports=a.extend(r.exports)},{341:341}],443:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[3,2,24],t:7,e:"ui-display",a:{title:"No Technology Disk Loaded"}}],n:50,x:{r:["data.tdisk"],s:"!_0"},p:[2,1,2]},{t:4,n:51,f:[{t:4,f:[{p:[6,3,125],t:7,e:"ui-display",a:{title:"Technology Disk Updating"}}],n:50,r:"data.tdisk_update",p:[5,2,96]},{t:4,n:51,f:[{p:[8,3,198],t:7,e:"ui-display",a:{title:"Technology Disk"},f:[{p:[9,4,239],t:7,e:"ui-section",a:{title:"Disk IO"},f:[{p:[9,32,267],t:7,e:"ui-button",a:{action:"tdisk_down"},f:["Download Research to Disk"]},{p:[9,100,335],t:7,e:"ui-button",a:{action:"tdisk_up"},f:["Upload Research from Disk"]}," ",{p:[10,4,406],t:7,e:"ui-section",a:{title:"Clear Disk"},f:[{p:[10,35,437],t:7,e:"ui-button",a:{action:"clear_techdisk",style:"danger"},f:["WIPE ALL DATA"]}]}," ",{p:[11,4,530],t:7,e:"ui-section",a:{title:"Eject Disk"},f:[{p:[11,35,561],t:7,e:"ui-button",a:{action:"eject_techdisk"},f:["Eject Disk"]}]}]}]}," ",{p:[13,3,652],t:7,e:"ui-display",a:{title:"Disk Contents"},f:[{t:4,f:[{p:[15,5,723],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[15,53,771]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[15,70,788]}]},f:[{t:2,r:"display_name",p:[15,115,833]}]}],n:52,r:"data.tdisk_nodes",p:[14,4,691]}]}],r:"data.tdisk_update"}],x:{r:["data.tdisk"],s:"!_0"}}]},e.exports=a.extend(r.exports)},{341:341}],444:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,29],t:7,e:"ui-display",a:{title:[{t:2,r:"data.snode_name",p:[2,21,48]}]},f:[{p:[3,3,73],t:7,e:"ui-section",a:{title:"Description"},f:["Description: ",{t:2,r:"data.snode_desc",p:[3,48,118]}]}," ",{p:[4,3,154],t:7,e:"ui-section",a:{title:"Point Cost"},f:["Point Cost: ",{t:2,r:"data.snode_cost",p:[4,46,197]}]}," ",{p:[5,3,233],t:7,e:"ui-section",a:{title:"Export Price"},f:["Export Price: ",{t:2,r:"data.snode_export",p:[5,50,280]}]}," ",{p:[6,3,318],t:7,e:"ui-button",a:{action:"research_node",params:['{"id"="',{t:2,r:"id",p:[6,52,367]},'"}'],state:[{t:2,x:{r:["data.snode_researched"],s:'_0?"disabled":null'},p:[6,69,384]}]},f:[{t:2,x:{r:["data.snode_researched"],s:'_0?"Researched":"Research Node"'},p:[6,115,430]}]}]}," ",{p:[8,2,518],t:7,e:"ui-display",a:{title:"Prerequisites"},f:[{t:4,f:[{p:[10,4,588],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[10,52,636]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[10,69,653]}]},f:[{t:2,r:"display_name",p:[10,114,698]}]}],n:52,r:"data.node_prereqs",p:[9,3,556]}]}," ",{p:[13,2,759],t:7,e:"ui-display",a:{title:"Unlocks"},f:[{t:4,f:[{p:[15,4,823],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[15,52,871]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[15,69,888]}]},f:[{t:2,r:"display_name",p:[15,114,933]}]}],n:52,r:"data.node_unlocks",p:[14,3,791]}]}," ",{p:[18,2,994],t:7,e:"ui-display",a:{title:"Designs"},f:[{t:4,f:[{p:[20,4,1058],t:7,e:"ui-button",a:{action:"select_design",params:['{"id": "',{ -t:2,r:"id",p:[20,54,1108]},'"}'],state:[{t:2,x:{r:["data.sdesign_id","id"],s:'_0==_1?"selected":null'},p:[20,71,1125]}]},f:[{t:2,r:"name",p:[20,118,1172]}]}],n:52,r:"data.node_designs",p:[19,3,1026]}]}],n:50,r:"data.node_selected",p:[1,1,0]},{t:4,f:[{p:[25,2,1263],t:7,e:"ui-display",a:{title:"No Node Selected."}}],n:50,x:{r:["data.node_selected"],s:"!_0"},p:[24,1,1233]}]},e.exports=a.extend(r.exports)},{341:341}],445:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[3,3,59],t:7,e:"ui-display",a:{title:"Protolathe Busy!"}}],n:50,r:"data.protobusy",p:[2,2,33]},{t:4,n:51,f:[{p:[5,3,124],t:7,e:"ui-display",f:[{p:[6,4,141],t:7,e:"ui-section",f:["Search Available Designs: ",{p:[7,4,183],t:7,e:"input",a:{value:[{t:2,r:"textsearch",p:[7,17,196]}],placeholder:"Type Here","class":"text"}}," ",{p:[8,5,255],t:7,e:"ui-button",a:{action:"textSearch",params:['{"latheType" : "proto", "inputText" : ',{t:2,r:"textsearch",p:[8,82,332]},"}"]},f:["Search"]}]}," ",{p:[10,4,390],t:7,e:"ui-section",f:["Materials: ",{t:2,r:"data.protomats",p:[10,27,413]}," / ",{t:2,r:"data.protomaxmats",p:[10,48,434]}]}," ",{p:[11,4,473],t:7,e:"ui-section",f:["Reagents: ",{t:2,r:"data.protochems",p:[11,26,495]}," / ",{t:2,r:"data.protomaxchems",p:[11,48,517]}]}," ",{p:[12,3,556],t:7,e:"ui-display",f:[{p:[14,3,574],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.lathe_tabs",p:[14,18,589]}]},f:[{p:[15,4,615],t:7,e:"tab",a:{name:"Category List"},f:[{t:4,f:[{p:[17,6,678],t:7,e:"ui-button",a:{action:"switchcat",state:[{t:2,x:{r:["data.protocat","name"],s:'_0==_1?"selected":null'},p:[17,43,715]}],params:['{"type" : "proto", "cat" : "',{t:2,r:"name",p:[17,125,797]},'"}']},f:[{t:2,r:"name",p:[17,137,809]}]}],n:52,r:"data.protocats",p:[16,5,647]}]}," ",{p:[20,4,860],t:7,e:"tab",a:{name:"Selected Category"},f:[{t:4,f:[{p:[22,6,926],t:7,e:"ui-section",f:[{t:2,r:"name",p:[22,18,938]},{t:2,r:"matstring",p:[22,26,946]}," ",{t:4,f:[{p:[24,8,996],t:7,e:"input",a:{value:[{t:2,r:"number",p:[24,21,1009]}],placeholder:["1-",{t:2,x:{r:["canprint"],s:"_0>10?10:_0"},p:[24,47,1035]}],"class":"number"}}],n:50,x:{r:["canprint"],s:"_0>1"},p:[23,7,967]}," ",{p:[26,7,1108],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[26,40,1141]}],params:['{"latheType" : "proto", "id" : "',{t:2,r:"id",p:[26,117,1218]},'", "amount" : "',{t:2,r:"number",p:[26,138,1239]},'"}']},f:["Print"]}]}],n:52,r:"data.protodes",p:[21,5,896]}]}," ",{p:[30,4,1321],t:7,e:"tab",a:{name:"Search Results"},f:[{t:4,f:[{p:[32,6,1386],t:7,e:"ui-section",f:[{t:2,r:"name",p:[32,18,1398]},{t:2,r:"matstring",p:[32,26,1406]}," ",{t:4,f:[{p:[34,8,1456],t:7,e:"input",a:{value:[{t:2,r:"number",p:[34,21,1469]}],placeholder:["1-",{t:2,x:{r:["canprint"],s:"_0>10?10:_0"},p:[34,47,1495]}],"class":"number"}}],n:50,x:{r:["canprint"],s:"_0>1"},p:[33,7,1427]}," ",{p:[36,7,1568],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[36,40,1601]}],params:['{"latheType" : "proto", "id" : "',{t:2,r:"id",p:[36,117,1678]},'", "amount" : "',{t:2,r:"number",p:[36,138,1699]},'"}']},f:["Print"]}]}],n:52,r:"data.protomatch",p:[31,5,1354]}]}," ",{p:[40,4,1781],t:7,e:"tab",a:{name:"Materials"},f:[{t:4,f:[{p:[42,6,1844],t:7,e:"ui-section",f:[{t:2,r:"name",p:[42,18,1856]}," : ",{t:2,r:"amount",p:[42,29,1867]}," cm3 - ",{t:4,f:[{p:[44,7,1917],t:7,e:"input",a:{value:[{t:2,r:"number",p:[44,20,1930]}],placeholder:["1-",{t:2,r:"sheets",p:[44,46,1956]}],"class":"number"}}," ",{p:[45,7,1992],t:7,e:"ui-button",a:{action:"releasemats",params:['{"latheType" : "proto", "mat_id" : ',{t:2,r:"mat_id",p:[45,82,2067]},', "sheets" : ',{t:2,r:"number",p:[45,105,2090]},"}"]},f:["Release"]}],n:50,x:{r:["sheets"],s:"_0>0"},p:[43,6,1891]}]}],n:52,r:"data.protomat_list",p:[41,5,1809]}]}," ",{p:[50,4,2187],t:7,e:"tab",a:{name:"Chemicals"},f:[{t:4,f:[{p:[52,6,2251],t:7,e:"ui-section",f:[{t:2,r:"name",p:[52,18,2263]}," : ",{t:2,r:"amount",p:[52,29,2274]}," - ",{p:[53,7,2295],t:7,e:"ui-button",a:{action:"purgechem",params:['{"latheType" : "proto", "name" : ',{t:2,r:"name",p:[53,78,2366]},', "id" : ',{t:2,r:"reagentid",p:[53,95,2383]},"}"]},f:["Purge"]}]}],n:52,r:"data.protochem_list",p:[51,5,2215]}]}]}]}]}],r:"data.protobusy"}],n:50,r:"data.protolathe_linked",p:[1,1,0]},{t:4,n:51,f:[{p:[61,2,2504],t:7,e:"ui-display",a:{title:"No Linked Protolathe"}}],r:"data.protolathe_linked"}]},e.exports=a.extend(r.exports)},{341:341}],446:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,1,14],t:7,e:"span",a:{"class":"memoedit"},f:["Nanotrasen R&D Console"]},{p:[2,53,66],t:7,e:"br"}," Available Points: ",{p:[3,19,91],t:7,e:"ui-section",a:{title:"Research Points"},f:[{t:2,r:"data.research_points_stored",p:[3,55,127]}]}," ",{p:[4,1,173],t:7,e:"ui-section",a:{title:["Page Selection - ",{t:2,r:"page",p:[4,37,209]}]},f:[{p:[4,47,219],t:7,e:"input",a:{value:[{t:2,r:"pageselect",p:[4,60,232]}],placeholder:"1","class":"number"}}," Select Page: ",{p:[5,14,294],t:7,e:"ui-button",a:{action:"page",params:['{"num" : "',{t:2,r:"pageselect",p:[5,57,337]},'"}']},f:["[Go]"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],447:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"span",a:{"class":"bad"},f:["Settings"]},{p:[1,34,33],t:7,e:"br"},{p:[1,39,38],t:7,e:"br"}," ",{p:[2,1,45],t:7,e:"ui-button",a:{action:"Resync"},f:["RESYNC MACHINERY"]},{p:[2,56,100],t:7,e:"br"}," ",{p:[3,1,107],t:7,e:"ui-button",a:{action:"Lock"},f:["LOCK"]}," ",{p:[4,1,150],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "destroy"}',state:[{t:2,x:{r:["data.destroy_linked"],s:'_0?null:"disabled"'},p:[4,71,220]}]},f:["Disconnect Destructive Analyzer"]}," ",{p:[5,1,309],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "lathe"}',state:[{t:2,x:{r:["data.protolathe_linked"],s:'_0?null:"disabled"'},p:[5,69,377]}]},f:["Disconnect Protolathe"]}," ",{p:[6,1,459],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "imprinter"}',state:[{t:2,x:{r:["data.circuit_linked"],s:'_0?null:"disabled"'},p:[6,73,531]}]},f:["Disconnect Circuit Imprinter"]}]},e.exports=a.extend(r.exports)},{341:341}],448:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Available for Research"},f:[{t:4,f:[{p:[3,3,78],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[3,51,126]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[3,68,143]}]},f:[{t:2,r:"display_name",p:[3,113,188]}]}],n:52,r:"data.techweb_avail",p:[2,2,46]}]}," ",{p:[6,1,245],t:7,e:"ui-display",a:{title:"Locked Nodes"},f:[{t:4,f:[{p:[8,3,314],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[8,51,362]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[8,68,379]}]},f:[{t:2,r:"display_name",p:[8,113,424]}]}],n:52,r:"data.techweb_locked",p:[7,2,281]}]}," ",{p:[11,1,482],t:7,e:"ui-display",a:{title:"Researched Nodes"},f:[{t:4,f:[{p:[13,3,559],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[13,51,607]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[13,68,624]}]},f:[{t:2,r:"display_name",p:[13,113,669]}]}],n:52,r:"data.techweb_researched",p:[12,2,522]}]}]},e.exports=a.extend(r.exports)},{341:341}],449:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Direction"},f:[{t:4,f:[{p:[3,3,64],t:7,e:"ui-section",f:[{t:4,f:[{p:[5,5,105],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[5,23,123]}],action:"setdir",params:['{"dir": ',{t:2,r:"dir",p:[6,22,195]},', "flipped": ',{t:2,r:"flipped",p:[6,42,215]},"}"]},f:[{p:[6,56,229],t:7,e:"span",a:{"class":["pipes32x32 ",{t:2,r:"dir",p:[6,80,253]},"-",{t:2,r:"icon_state",p:[6,88,261]}],title:[{t:2,r:"dir_name",p:[6,111,284]}]}}]}],n:52,r:"previews",p:[4,4,81]}]}],n:52,r:"data.preview_rows",p:[2,2,33]}]}," ",{t:4,f:[{p:[12,2,406],t:7,e:"ui-display",a:{title:"Color"},f:[{t:4,f:[{p:[14,4,468],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["@key","data.selected_color"],s:'_0==_1?"selected":null'},p:[14,22,486]}],action:"color",params:['{"paint_color": ',{t:2,r:"@key",p:[15,44,583]},"}"]},f:[{t:2,r:"@key",p:[15,55,594]}]}],n:52,r:"data.paint_colors",p:[13,3,436]}]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[11,1,377]},{p:[19,1,654],t:7,e:"ui-display",a:{title:"Utilities"},f:[{p:[20,2,687],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&1?"check-square-o":"square-o"'},p:[20,19,704]}],action:"mode",params:'{"mode": 1}'},f:["Build"]}," ",{p:[22,2,813],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&2?"check-square-o":"square-o"'},p:[22,19,830]}],action:"mode",params:'{"mode": 2}'},f:["Wrench"]}," ",{p:[24,2,940],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&4?"check-square-o":"square-o"'},p:[24,19,957]}],action:"mode",params:'{"mode": 4}'},f:["Destroy"]}," ",{t:4,f:[{p:[27,3,1098],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&8?"check-square-o":"square-o"'},p:[27,20,1115]}],action:"mode",params:'{"mode": 8}'},f:["Paint"]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[26,2,1068]}]}," ",{p:[31,1,1249],t:7,e:"ui-display",a:{title:"Category"},f:[{p:[32,2,1281],t:7,e:"ui-section",f:[{p:[33,3,1297],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==0?"check-square-o":"square-o"'},p:[33,20,1314]}],state:[{t:2,x:{r:["data.category"],s:'_0<=0?"selected":null'},p:[33,83,1377]}],action:"category",params:'{"category": 0}'},f:["Atmospherics"]}," ",{p:[35,3,1496],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==1?"check-square-o":"square-o"'},p:[35,20,1513]}],state:[{t:2,x:{r:["data.category"],s:'_0==1?"selected":null'},p:[35,83,1576]}],action:"category",params:'{"category": 1}'},f:["Disposals"]}," ",{p:[37,3,1692],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==2?"check-square-o":"square-o"'},p:[37,20,1709]}],state:[{t:2,x:{r:["data.category"],s:'_0==2?"selected":null'},p:[37,83,1772]}],action:"category",params:'{"category": 2}'},f:["Transit Tubes"]}]}," ",{t:4,f:[{p:[41,3,1937],t:7,e:"ui-section",a:{label:"Piping Layer"},f:[{p:[42,4,1975],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==1?"selected":null'},p:[42,22,1993]}],action:"piping_layer",params:'{"piping_layer": 1}'},f:["1"]}," ",{p:[44,4,2115],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==2?"selected":null'},p:[44,22,2133]}],action:"piping_layer",params:'{"piping_layer": 2}'},f:["2"]}," ",{p:[46,4,2255],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==3?"selected":null'},p:[46,22,2273]}],action:"piping_layer",params:'{"piping_layer": 3}'},f:["3"]}]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[40,2,1907]}]}," ",{t:4,f:[{p:[52,2,2462],t:7,e:"ui-display",a:{title:[{t:2,r:"cat_name",p:[52,21,2481]}]},f:[{t:4,f:[{p:[54,4,2521],t:7,e:"ui-section",f:[{p:[55,5,2539],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[55,23,2557]}],action:"pipe_type",params:['{"pipe_type": ',{t:2,r:"pipe_index",p:[56,28,2638]},', "category": ',{t:2,r:"cat_name",p:[56,56,2666]},"}"]},f:[{t:2,r:"pipe_name",p:[56,71,2681]}]}]}],n:52,r:"recipes",p:[53,3,2499]}]}],n:52,r:"data.categories",p:[51,1,2434]}]},e.exports=a.extend(r.exports)},{341:341}],450:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,40]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,82],t:7,e:"ui-display",a:{title:"Satellite Network Control",button:0},f:[{t:4,f:[{p:[8,4,168],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[9,9,209],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[9,31,231]}]}," ",{p:[10,9,253],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"mode",p:[10,30,274]}]}," ",{p:[11,9,298],t:7,e:"div",a:{"class":"content"},f:[{p:[12,11,331],t:7,e:"ui-button",a:{action:"toggle",params:['{"id": "',{t:2,r:"id",p:[12,54,374]},'"}']},f:[{t:2,x:{r:["active"],s:'_0?"Deactivate":"Activate"'},p:[12,64,384]}]}]}]}],n:52,r:"data.satellites",p:[7,2,138]}]}," ",{t:4,f:[{p:[18,1,528],t:7,e:"ui-display",a:{title:"Station Shield Coverage"},f:[{p:[19,3,576],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.meteor_shield_coverage_max",p:[19,24,597]}],value:[{t:2,r:"data.meteor_shield_coverage",p:[19,68,641]}]},f:[{t:2,x:{r:["data.meteor_shield_coverage","data.meteor_shield_coverage_max"],s:"100*_0/_1"},p:[19,101,674]}," %"]}," ",{p:[20,1,758],t:7,e:"ui-display",f:[]}]}],n:50,r:"data.meteor_shield",p:[17,1,500]}]},e.exports=a.extend(r.exports)},{341:341}],451:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Scanner Gate"},f:[{p:[2,2,36],t:7,e:"ui-section",a:{label:"Scan Mode"},f:[{p:[2,32,66],t:7,e:"ui-button",a:{icon:"pencil",action:"set_mode"}}," ",{t:2,r:"data.scan_mode",p:[2,88,122]}]}," ",{t:4,f:[{p:[4,3,195],t:7,e:"ui-section",a:{label:"Disease Severity"},f:[{p:[4,40,232],t:7,e:"ui-button",a:{icon:"pencil",action:"set_disease_threshold"}}," ",{t:2,r:"data.disease_threshold",p:[4,109,301]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Disease"'},p:[3,2,156]}," ",{t:4,f:[{p:[7,3,392],t:7,e:"ui-section",a:{label:"Cloud ID"},f:[{p:[7,32,421],t:7,e:"ui-button",a:{icon:"pencil",action:"set_nanite_cloud"}}," ",{t:2,r:"data.nanite_cloud",p:[7,96,485]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Nanites"'},p:[6,2,353]}," ",{t:4,f:[{p:[10,3,571],t:7,e:"ui-section",a:{label:"Target Species"},f:[{p:[10,38,606],t:7,e:"ui-button",a:{icon:"pencil",action:"set_target_species"}}," ",{t:2,r:"data.target_species",p:[10,104,672]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Species"'},p:[9,2,532]}," ",{p:[12,5,724],t:7,e:"ui-section",f:[{p:[12,17,736],t:7,e:"ui-button",a:{tooltip:"If inverted, the gate will detect all entities that do NOT meet the set requirements.","tooltip-side":"right",action:"toggle_reverse"},f:[{t:2,x:{r:["data.reverse"],s:'_0?"Inverted Scan":"Regular Scan"'},p:[12,169,888]}]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],452:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,26],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["enabled"],s:'_0?"check-square-o":"square-o"'},p:[2,20,43]}],style:[{t:2,x:{r:["enabled"],s:'_0?"selected":null'},p:[2,72,95]}],action:"toggle_filter",params:['{"id_tag": "',{t:2,r:"id_tag",p:[3,48,176]},'", "val": ',{t:2,r:"gas_id",p:[3,68,196]},"}"]},f:[{t:2,r:"gas_name",p:[3,81,209]}]}],n:52,r:"filter_types",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],453:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" "," "," ",{p:[5,1,200],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[5,16,215]}]},f:[{p:[6,2,233],t:7,e:"tab",a:{name:"Status"},f:[{p:[7,3,256],t:7,e:"status"}]}," ",{p:[9,2,277],t:7,e:"tab",a:{name:"Templates"},f:[{p:[10,3,303],t:7,e:"templates"}]}," ",{p:[12,2,327],t:7,e:"tab",a:{name:"Modification"},f:[{t:4,f:[{p:[14,3,381],t:7,e:"modification"}],n:50,r:"data.selected",p:[13,3,356]}," ",{t:4,f:[{p:[17,3,437],t:7,e:"span",a:{"class":"bad"},f:["No shuttle selected."]}],n:50,x:{r:["data.selected"],s:"!_0"},p:[16,3,411]}]}]}]},r.exports.components=r.exports.components||{};var i={modification:t(454),templates:t(456),status:t(455)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,454:454,455:455,456:456}],454:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:["Selected: ",{t:2,r:"data.selected.name",p:[1,30,29]}]},f:[{t:4,f:[{p:[3,5,96],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.selected.description",p:[3,37,128]}]}],n:50,r:"data.selected.description",p:[2,3,57]}," ",{t:4,f:[{p:[6,5,224],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"data.selected.admin_notes",p:[6,37,256]}]}],n:50,r:"data.selected.admin_notes",p:[5,3,185]}]}," ",{t:4,f:[{p:[11,3,361],t:7,e:"ui-display",a:{title:["Existing Shuttle: ",{t:2,r:"data.existing_shuttle.name",p:[11,40,398]}]},f:["Status: ",{t:2,r:"data.existing_shuttle.status",p:[12,13,444]}," ",{t:4,f:["(",{t:2,r:"data.existing_shuttle.timeleft",p:[14,8,526]},")"],n:50,r:"data.existing_shuttle.timer",p:[13,5,482]}," ",{p:[16,5,580],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"data.existing_shuttle.id",p:[17,41,649]},'"}']},f:["Jump To"]}]}],n:50,r:"data.existing_shuttle",p:[10,1,328]},{t:4,f:[{p:[24,3,778],t:7,e:"ui-display",a:{title:"Existing Shuttle: None"}}],n:50,x:{r:["data.existing_shuttle"],s:"!_0"},p:[23,1,744]},{p:[27,1,847],t:7,e:"ui-button",a:{action:"preview",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[28,27,902]},'"}']},f:["Preview"]}," ",{p:[31,1,961],t:7,e:"ui-button",a:{action:"load",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[32,27,1013]},'"}'],style:"danger"},f:["Load"]}," ",{p:[37,1,1089],t:7,e:"ui-display",a:{title:"Status"},f:[]}]},e.exports=a.extend(r.exports)},{341:341}],455:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"table",a:{width:"100%"},f:[{t:4,f:[{p:[3,3,49],t:7,e:"tr",f:[{p:[4,5,59],t:7,e:"td",f:[{p:[5,7,71],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[5,69,133]},'"}']},f:["JMP"]}]}," ",{p:[9,5,193],t:7,e:"td",f:[{p:[10,7,205],t:7,e:"ui-button",a:{action:"fly",params:['{"id": "',{t:2,r:"id",p:[10,47,245]},'"}'],state:[{t:2,x:{r:["can_fly"],s:'_0?null:"disabled"'},p:[10,64,262]}]},f:["Fly"]}]}," ",{p:[14,5,345],t:7,e:"td",f:[{t:2,r:"name",p:[15,7,357]}," (",{p:[15,17,367],t:7,e:"code",f:[{t:2,r:"id",p:[15,23,373]}]},")"]}," ",{p:[17,5,404],t:7,e:"td",f:[{t:2,r:"status",p:[18,7,416]}]}," ",{p:[20,5,443],t:7,e:"td",f:[{t:4,f:[{t:2,r:"mode",p:[22,9,477]}],n:50,r:"mode",p:[21,7,455]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[25,10,532]},") ",{p:[26,9,555],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[26,57,603]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[26,74,620]}]},f:["Fast Travel"]}],n:50,r:"timer",p:[24,7,508]}]}]}],n:52,r:"data.shuttles",p:[2,1,22]}]}]},e.exports=a.extend(r.exports)},{341:341}],456:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.templates_tabs",p:[1,16,15]}]},f:[{t:4,f:[{p:[3,5,74],t:7,e:"tab",a:{name:[{t:2,r:"port_id",p:[3,16,85]}]},f:[{t:4,f:[{p:[5,9,135],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[5,28,154]}]},f:[{t:4,f:[{p:[7,13,209],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[7,45,241]}]}],n:50,r:"description",p:[6,11,176]}," ",{t:4,f:[{p:[10,13,333],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"admin_notes",p:[10,45,365]}]}],n:50,r:"admin_notes",p:[9,11,300]}," ",{p:[13,11,426],t:7,e:"ui-button",a:{action:"select_template",params:['{"shuttle_id": "',{t:2,r:"shuttle_id",p:[14,37,499]},'"}'],state:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"selected":null'},p:[15,20,537]}]},f:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"Selected":"Select"'},p:[17,13,630]}]}]}],n:52,r:"templates",p:[4,7,106]}]}],n:52,r:"data.templates",p:[2,3,44]}]}]},e.exports=a.extend(r.exports)},{341:341}],457:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[2,3,33],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[3,3,66],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[3,9,72]}]}]}," ",{t:4,f:[{p:[6,5,186],t:7,e:"ui-section",a:{label:"State"},f:[{p:[7,7,220],t:7,e:"span",a:{"class":[{t:2,r:"data.occupant.statstate",p:[7,20,233]}]},f:[{t:2,r:"data.occupant.stat",p:[7,49,262]}]}]}," ",{p:[9,5,315],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[10,7,350],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[10,20,363]}],max:[{t:2,r:"data.occupant.maxHealth",p:[10,54,397]}],value:[{t:2,r:"data.occupant.health",p:[10,90,433]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[11,16,475]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[11,68,527]}]}]}," ",{t:4,f:[{p:[14,7,764],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[14,26,783]}]},f:[{p:[15,9,804],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[15,30,825]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[15,66,861]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[15,103,898]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[13,5,598]}," ",{p:[18,5,985],t:7,e:"ui-section",a:{label:"Cells"},f:[{p:[19,9,1021],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"bad":"good"'},p:[19,22,1034]}]},f:[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"Damaged":"Healthy"'},p:[19,68,1080]}]}]}," ",{p:[21,5,1163],t:7,e:"ui-section",a:{label:"Brain"},f:[{p:[22,9,1199],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"bad":"good"'},p:[22,22,1212]}]},f:[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"Abnormal":"Healthy"'},p:[22,68,1258]}]}]}," ",{p:[24,5,1342],t:7,e:"ui-section",a:{label:"Bloodstream"},f:[{t:4,f:[{p:[26,11,1429],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,1)"},p:[26,54,1472]}," units of ",{t:2,r:"name",p:[26,89,1507]}]},{p:[26,104,1522],t:7,e:"br"}],n:52,r:"adata.occupant.reagents",p:[25,9,1384]},{t:4,n:51,f:[{p:[28,11,1557],t:7,e:"span",a:{"class":"good"},f:["Pure"]}],r:"adata.occupant.reagents"}]}],n:50,r:"data.occupied",p:[5,3,159]}]}," ",{p:[33,1,1653],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[34,2,1685],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[35,5,1716],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[35,22,1733]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[35,71,1782]}]}]}," ",{p:[37,3,1847],t:7,e:"ui-section",a:{label:"Inject"},f:[{t:4,f:[{p:[39,7,1908],t:7,e:"ui-button",a:{icon:"flask",state:[{t:2,x:{r:["data.occupied","allowed"],s:'_0&&_1?null:"disabled"'},p:[39,38,1939]}],action:"inject",params:['{"chem": "',{t:2,r:"id",p:[39,122,2023]},'"}']},f:[{t:2,r:"name",p:[39,132,2033]}]},{p:[39,152,2053],t:7,e:"br"}],n:52,r:"data.chems",p:[38,5,1880]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],458:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,25],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,44]}],labelcolor:[{t:2,r:"htmlcolor",p:[2,44,66]}],candystripe:0,right:0},f:[{p:[3,5,105],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,32,132],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0=="Dead"?"bad bold":_0=="Unconscious"?"average bold":"good"'},p:[3,45,145]}]},f:[{t:2,r:"status",p:[3,132,232]}]}]}," ",{p:[4,5,268],t:7,e:"ui-section",a:{label:"Jelly"},f:[{t:2,r:"exoticblood",p:[4,31,294]}]}," ",{p:[5,5,328],t:7,e:"ui-section",a:{label:"Location"},f:[{t:2,r:"area",p:[5,34,357]}]}," ",{p:[7,5,386],t:7,e:"ui-button",a:{state:[{t:2,r:"swap_button_state",p:[8,14,411]}],action:"swap",params:['{"ref": "',{t:2,r:"ref",p:[9,38,472]},'"}']},f:[{t:4,f:["You Are Here"],n:50,x:{r:["occupied"],s:'_0=="owner"'},p:[10,7,491]},{t:4,n:51,f:[{t:4,f:["Occupied"],n:50,x:{r:["occupied"],s:'_0=="stranger"'},p:[13,9,566]},{t:4,n:51,f:["Swap"],x:{r:["occupied"],s:'_0=="stranger"'}}],x:{r:["occupied"],s:'_0=="owner"'}}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],459:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,23,82],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.drying"],s:'_0?"stop":"tint"'},p:[4,40,99]}],action:"Dry"},f:[{t:2,x:{r:["data.drying"],s:'_0?"Stop drying":"Dry"'},p:[4,88,147]}]}],n:50,r:"data.isdryer",p:[4,3,62]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[7,3,258],t:7,e:"ui-notice",f:[{p:[8,5,275],t:7,e:"span",f:["Unfortunately, this ",{t:2,r:"data.name",p:[8,31,301]}," is empty."]}]}],n:50,x:{r:["data.contents.length"],s:"_0==0"},p:[6,1,221]},{t:4,n:51,f:[{p:[11,1,359],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[12,2,391],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[13,4,425],t:7,e:"section",a:{"class":"cell bold"},f:["Item"]}," ",{p:[16,4,482],t:7,e:"section",a:{"class":"cell bold"},f:["Quantity"]}," ",{p:[19,4,543],t:7,e:"section",a:{"class":"cell bold",align:"center"},f:[{t:4,f:[{t:2,r:"data.verb",p:[20,22,608]}],n:50,r:"data.verb",p:[20,5,591]},{t:4,n:51,f:["Dispense"],r:"data.verb"}]}]}," ",{t:4,f:[{p:[24,3,703],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[25,4,737],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[26,5,765]}]}," ",{p:[28,4,793],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[29,5,835]}]}," ",{p:[31,4,865],t:7,e:"section",a:{"class":"table",alight:"right"},f:[{p:[32,5,909],t:7,e:"section",a:{"class":"cell"}}," ",{p:[33,5,947],t:7,e:"section",a:{"class":"cell"},f:[{p:[34,6,976],t:7,e:"ui-button",a:{grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[34,45,1015]}],params:['{ "name" : ',{t:2,r:"name",p:[34,102,1072]},', "amount" : 1 }']},f:["One"]}]}," ",{p:[38,5,1151],t:7,e:"section",a:{"class":"cell"},f:[{p:[39,6,1180],t:7,e:"ui-button",a:{grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>1)?null:"disabled"'},p:[39,45,1219]}],params:['{ "name" : ',{t:2,r:"name",p:[39,101,1275]}," }"]},f:["Many"]}]}]}]}],n:52,r:"data.contents",p:[23,2,676]}]}],x:{r:["data.contents.length"],s:"_0==0"}}]}]},e.exports=a.extend(r.exports)},{341:341}],460:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{capacityPercentState:function(){var t=this.get("data.capacityPercent");return t>50?"good":t>15?"average":"bad"},inputState:function(){return this.get("data.capacityPercent")>=100?"good":this.get("data.inputting")?"average":"bad"},outputState:function(){return this.get("data.outputting")?"good":this.get("data.charge")>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[24,1,663],t:7,e:"ui-display",a:{title:"Storage"},f:[{p:[25,3,695],t:7,e:"ui-section",a:{label:"Stored Energy"},f:[{p:[26,5,735],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.capacityPercent",p:[26,38,768]}],state:[{t:2,r:"capacityPercentState",p:[26,71,801]}]},f:[{t:2,x:{r:["adata.capacityPercent"],s:"Math.fixed(_0)"},p:[26,97,827]},"%"]}]}]}," ",{p:[29,1,908],t:7,e:"ui-display",a:{title:"Input"},f:[{p:[30,3,938],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{p:[31,5,976],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"refresh":"close"'},p:[31,22,993]}],style:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"selected":null'},p:[31,74,1045]}],action:"tryinput"},f:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"Auto":"Off"'},p:[32,25,1113]}]},"   [",{p:[34,6,1182],t:7,e:"span",a:{"class":[{t:2,r:"inputState",p:[34,19,1195]}]},f:[{t:2,x:{r:["data.capacityPercent","data.inputting"],s:'_0>=100?"Fully Charged":_1?"Charging":"Not Charging"'},p:[34,35,1211]}]},"]"]}," ",{p:[36,3,1335],t:7,e:"ui-section",a:{label:"Target Input"},f:[{p:[37,5,1374],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.inputLevelMax",p:[37,26,1395]}],value:[{t:2,r:"data.inputLevel",p:[37,57,1426]}]},f:[{t:2,r:"adata.inputLevel_text",p:[37,78,1447]}]}]}," ",{p:[39,3,1501],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1540],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1579]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1674],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1708]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1804],t:7,e:"ui-button",a:{icon:"pencil",action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1894],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[43,38,1927]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,2039],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[44,43,2077]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2204],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2238],t:7,e:"span",f:[{t:2,r:"adata.inputAvailable",p:[47,9,2244]}]}]}]}," ",{p:[50,1,2308],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2339],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2377],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2394]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2449]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2519]}]},"   [",{p:[55,6,2587],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2600]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2617]}]},"]"]}," ",{p:[57,3,2724],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2764],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2785]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2817]}]},f:[{t:2,r:"adata.outputLevel_text",p:[58,80,2839]}]}]}," ",{p:[60,3,2894],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2934],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,2973]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3070],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3104]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3202],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3293],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[64,38,3326]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3441],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[65,43,3479]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3609],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3644],t:7,e:"span",f:[{t:2,r:"adata.outputUsed",p:[68,9,3650]}]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],461:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:["\ufeff",{t:4,f:[" ",{p:[2,2,33],t:7,e:"ui-display",a:{title:"Dispersal Tank"},f:[{p:[3,3,73],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[4,4,104],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.active"],s:'_0?"power-off":"close"'},p:[4,21,121]}],style:[{t:2,x:{r:["data.active"],s:'_0?"selected":null'},p:[5,12,174]}],state:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?null:"disabled"'},p:[6,12,223]}],action:"power"},f:[{t:2,x:{r:["data.active"],s:'_0?"On":"Off"'},p:[7,20,286]}]}]}," ",{p:[10,3,354],t:7,e:"ui-section",a:{label:"Smoke Radius Setting"},f:[{p:[11,5,401],t:7,e:"div",a:{"class":"content",style:"float:left"},f:[{p:[12,6,448],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=1?null:"disabled"'},p:[12,36,478]}],style:[{t:2,x:{r:["data.setting"],s:'_0==1?"selected":null'},p:[12,89,531]}],action:"setting",params:'{"amount": 1}'},f:["3"]}," ",{p:[13,6,634],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=2?null:"disabled"'},p:[13,36,664]}],style:[{t:2,x:{r:["data.setting"],s:'_0==2?"selected":null'},p:[13,89,717]}],action:"setting",params:'{"amount": 2}'},f:["6"]}," ",{p:[14,6,820],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=3?null:"disabled"'},p:[14,36,850]}],style:[{t:2,x:{r:["data.setting"],s:'_0==3?"selected":null'},p:[14,89,903] -}],action:"setting",params:'{"amount": 3}'},f:["9"]}," ",{p:[15,6,1006],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=4?null:"disabled"'},p:[15,36,1036]}],style:[{t:2,x:{r:["data.setting"],s:'_0==4?"selected":null'},p:[15,89,1089]}],action:"setting",params:'{"amount": 4}'},f:["12"]}," ",{p:[16,6,1193],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=5?null:"disabled"'},p:[16,36,1223]}],style:[{t:2,x:{r:["data.setting"],s:'_0==5?"selected":null'},p:[16,89,1276]}],action:"setting",params:'{"amount": 5}'},f:["15"]}]}]}," ",{p:[19,3,1410],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[21,6,1476],t:7,e:"span",f:[{t:2,x:{r:["adata.TankCurrentVolume"],s:"Math.round(_0)"},p:[21,12,1482]},"/",{t:2,r:"data.TankMaxVolume",p:[21,52,1522]}," Units"]}," ",{p:[22,6,1564],t:7,e:"br"}," ",{p:[23,5,1575],t:7,e:"br"}," ",{t:4,f:[{p:[25,7,1623],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[25,50,1666]}," units of ",{t:2,r:"name",p:[25,85,1701]}]},{p:[25,100,1716],t:7,e:"br"}],n:52,r:"adata.TankContents",p:[24,6,1587]}],n:50,r:"data.isTankLoaded",p:[20,4,1444]},{t:4,n:51,f:[{p:[28,6,1757],t:7,e:"span",a:{"class":"bad"},f:["Tank Empty"]}],r:"data.isTankLoaded"}," ",{p:[30,4,1809],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"Eject":"Close"'},p:[30,21,1826]}],style:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"selected":null'},p:[31,12,1881]}],state:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?null:"disabled"'},p:[32,12,1936]}],action:"purge"},f:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"Purge Contents":"No chemicals detected"'},p:[33,20,1999]}]}]}]}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,2,1]}]},e.exports=a.extend(r.exports)},{341:341}],462:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,31],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{t:2,x:{r:["adata.generated"],s:"Math.round(_0)"},p:[3,5,73]},"W"]}," ",{p:[5,3,126],t:7,e:"ui-section",a:{label:"Orientation"},f:[{p:[6,5,164],t:7,e:"span",f:[{t:2,x:{r:["adata.angle"],s:"Math.round(_0)"},p:[6,11,170]},"° (",{t:2,r:"data.direction",p:[6,45,204]},")"]}]}," ",{p:[8,3,251],t:7,e:"ui-section",a:{label:"Adjust Angle"},f:[{p:[9,5,290],t:7,e:"ui-button",a:{icon:"step-backward",action:"angle",params:'{"adjust": -15}'},f:["15°"]}," ",{p:[10,5,387],t:7,e:"ui-button",a:{icon:"backward",action:"angle",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[11,5,477],t:7,e:"ui-button",a:{icon:"forward",action:"angle",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[12,5,565],t:7,e:"ui-button",a:{icon:"step-forward",action:"angle",params:'{"adjust": 15}'},f:["15°"]}]}]}," ",{p:[15,1,687],t:7,e:"ui-display",a:{title:"Tracking"},f:[{p:[16,3,720],t:7,e:"ui-section",a:{label:"Tracker Mode"},f:[{p:[17,5,759],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==0?"selected":null'},p:[17,36,790]}],action:"tracking",params:'{"mode": 0}'},f:["Off"]}," ",{p:[19,5,907],t:7,e:"ui-button",a:{icon:"clock-o",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==1?"selected":null'},p:[19,38,940]}],action:"tracking",params:'{"mode": 1}'},f:["Timed"]}," ",{p:[21,5,1059],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.connected_tracker","data.tracking_state"],s:'_0?_1==2?"selected":null:"disabled"'},p:[21,38,1092]}],action:"tracking",params:'{"mode": 2}'},f:["Auto"]}]}," ",{p:[24,3,1262],t:7,e:"ui-section",a:{label:"Tracking Rate"},f:[{p:[25,3,1300],t:7,e:"span",f:[{t:2,x:{r:["adata.tracking_rate"],s:"Math.round(_0)"},p:[25,9,1306]},"°/h (",{t:2,r:"data.rotating_way",p:[25,53,1350]},")"]}]}," ",{p:[27,3,1399],t:7,e:"ui-section",a:{label:"Adjust Rate"},f:[{p:[28,5,1437],t:7,e:"ui-button",a:{icon:"fast-backward",action:"rate",params:'{"adjust": -180}'},f:["180°"]}," ",{p:[29,5,1535],t:7,e:"ui-button",a:{icon:"step-backward",action:"rate",params:'{"adjust": -30}'},f:["30°"]}," ",{p:[30,5,1631],t:7,e:"ui-button",a:{icon:"backward",action:"rate",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[31,5,1720],t:7,e:"ui-button",a:{icon:"forward",action:"rate",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[32,5,1807],t:7,e:"ui-button",a:{icon:"step-forward",action:"rate",params:'{"adjust": 30}'},f:["30°"]}," ",{p:[33,5,1901],t:7,e:"ui-button",a:{icon:"fast-forward",action:"rate",params:'{"adjust": 180}'},f:["180°"]}]}]}," ",{p:{button:[{p:[38,5,2088],t:7,e:"ui-button",a:{icon:"refresh",action:"refresh"},f:["Refresh"]}]},t:7,e:"ui-display",a:{title:"Devices",button:0},f:[" ",{p:[40,2,2169],t:7,e:"ui-section",a:{label:"Solar Tracker"},f:[{p:[41,5,2209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_tracker"],s:'_0?"good":"bad"'},p:[41,18,2222]}]},f:[{t:2,x:{r:["data.connected_tracker"],s:'_0?"":"Not "'},p:[41,63,2267]},"Found"]}]}," ",{p:[43,2,2338],t:7,e:"ui-section",a:{label:"Solar Panels"},f:[{p:[44,3,2375],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_panels"],s:'_0?"good":"bad"'},p:[44,16,2388]}]},f:[{t:2,x:{r:["adata.connected_panels"],s:"Math.round(_0)"},p:[44,60,2432]}," Panels Connected"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],463:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,7,87],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[4,38,118]}],action:"eject"},f:["Eject"]}],n:50,r:"data.open",p:[3,5,62]}]},t:7,e:"ui-display",a:{title:"Power",button:0},f:[" ",{p:[7,3,226],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[8,5,258],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[8,22,275]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[9,14,326]}],state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[9,54,366]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[10,22,431]}]}]}," ",{p:[12,3,490],t:7,e:"ui-section",a:{label:"Cell"},f:[{t:4,f:[{p:[14,7,554],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerLevel",p:[14,40,587]}]},f:[{t:2,x:{r:["adata.powerLevel"],s:"Math.fixed(_0)"},p:[14,61,608]},"%"]}],n:50,r:"data.hasPowercell",p:[13,5,521]},{t:4,n:51,f:[{p:[16,4,667],t:7,e:"span",a:{"class":"bad"},f:["No Cell"]}],r:"data.hasPowercell"}]}]}," ",{p:[20,1,744],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[21,3,779],t:7,e:"ui-section",a:{label:"Current Temperature"},f:[{p:[22,3,823],t:7,e:"span",f:[{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[22,9,829]},"°C"]}]}," ",{p:[24,2,894],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[25,3,937],t:7,e:"span",f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[25,9,943]},"°C"]}]}," ",{t:4,f:[{p:[28,5,1031],t:7,e:"ui-section",a:{label:"Adjust Target"},f:[{p:[29,7,1073],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[29,46,1112]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[30,7,1218],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[30,41,1252]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[31,7,1357],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:["Set"]}," ",{p:[32,7,1450],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[32,40,1483]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[33,7,1587],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[33,45,1625]}],action:"target",params:'{"adjust": 20}'}}]}],n:50,r:"data.open",p:[27,3,1008]}," ",{p:[36,3,1754],t:7,e:"ui-section",a:{label:"Mode"},f:[{t:4,f:[{p:[38,7,1808],t:7,e:"ui-button",a:{icon:"long-arrow-up",state:[{t:2,x:{r:["data.mode"],s:'_0=="heat"?"selected":null'},p:[38,46,1847]}],action:"mode",params:'{"mode": "heat"}'},f:["Heat"]}," ",{p:[39,7,1956],t:7,e:"ui-button",a:{icon:"long-arrow-down",state:[{t:2,x:{r:["data.mode"],s:'_0=="cool"?"selected":null'},p:[39,48,1997]}],action:"mode",params:'{"mode": "cool"}'},f:["Cool"]}," ",{p:[40,7,2106],t:7,e:"ui-button",a:{icon:"arrows-v",state:[{t:2,x:{r:["data.mode"],s:'_0=="auto"?"selected":null'},p:[40,41,2140]}],action:"mode",params:'{"mode": "auto"}'},f:["Auto"]}],n:50,r:"data.open",p:[37,3,1783]},{t:4,n:51,f:[{p:[42,4,2258],t:7,e:"span",f:[{t:2,x:{r:["text","data.mode"],s:"_0.titleCase(_1)"},p:[42,10,2264]}]}],r:"data.open"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],464:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:{button:[{p:[4,8,97],t:7,e:"ui-button",a:{action:"jump",params:['{"name" : ',{t:2,r:"name",p:[4,51,140]},"}"]},f:["Jump"]}," ",{p:[7,9,195],t:7,e:"ui-button",a:{action:"spawn",params:['{"name" : ',{t:2,r:"name",p:[7,53,239]},"}"]},f:["Spawn"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[2,22,46]}],button:0},f:[" ",{p:[11,3,308],t:7,e:"ui-section",a:{label:"Description"},f:[{p:[12,5,346],t:7,e:"span",f:[{t:3,r:"desc",p:[12,11,352]}]}]}," ",{p:[14,3,390],t:7,e:"ui-section",a:{label:"Spawners left"},f:[{p:[15,5,430],t:7,e:"span",f:[{t:2,r:"amount_left",p:[15,11,436]}]}]}]}],n:52,r:"data.spawners",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],465:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,31],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[2,22,50]}," Alarms"]},f:[{p:[3,5,74],t:7,e:"ul",f:[{t:4,f:[{p:[5,9,107],t:7,e:"li",f:[{t:2,r:".",p:[5,13,111]}]}],n:52,r:".",p:[4,7,86]},{t:4,n:51,f:[{p:[7,9,147],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],466:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,42],t:7,e:"ui-notice",f:[{p:[3,5,59],t:7,e:"span",f:["Biological entity detected in contents. Please remove."]}]}],n:50,x:{r:["data.occupied","data.safeties"],s:"_0&&_1"},p:[1,1,0]},{t:4,f:[{p:[7,3,179],t:7,e:"ui-notice",f:[{p:[8,5,196],t:7,e:"span",f:["Contents are being decontaminated. Please wait."]}]}],n:50,r:"data.uv_active",p:[6,1,153]},{t:4,n:51,f:[{p:{button:[{t:4,f:[{p:[13,25,372],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,389]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,440]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,354]}," ",{t:4,f:[{p:[14,27,522],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,539]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,593]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,502]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,695],t:7,e:"ui-notice",f:[{p:[18,9,716],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,668]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,796],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,835],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,852]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,899]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,995]}]}]}," ",{p:[25,9,1066],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1103],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1120]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1166]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1258]}]}]}," ",{p:[29,9,1327],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1364],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1381]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1427]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1519]}]}]}," ",{p:[33,9,1588],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1628],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1645]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1694]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1792]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1876],t:7,e:"ui-button",a:{icon:"recycle",state:[{t:2,x:{r:["data.occupied","data.safeties"],s:'_0&&_1?"disabled":null'},p:[38,40,1909]}],action:"uv"},f:["Decontaminate"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{341:341}],467:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,5,18],t:7,e:"ui-section",a:{label:"Dispense"},f:[{p:[3,9,57],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.plasma"],s:'_0?"square":"square-o"'},p:[3,26,74]}],state:[{t:2,x:{r:["data.plasma"],s:'_0?null:"disabled"'},p:[3,74,122]}],action:"plasma"},f:["Plasma (",{t:2,x:{r:["adata.plasma"],s:"Math.round(_0)"},p:[4,37,196]},")"]}," ",{p:[5,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oxygen"],s:'_0?"square":"square-o"'},p:[5,26,264]}],state:[{t:2,x:{r:["data.oxygen"],s:'_0?null:"disabled"'},p:[5,74,312]}],action:"oxygen"},f:["Oxygen (",{t:2,x:{r:["adata.oxygen"],s:"Math.round(_0)"},p:[6,37,386]},")"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],468:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{tankPressureState:function(){var t=this.get("data.tankPressure");return t>=200?"good":t>=100?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,295],t:7,e:"ui-notice",f:[{p:[15,3,310],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.connected"],s:'_0?"is":"is not"'},p:[15,23,330]}," connected to a mask."]}]}," ",{p:[17,1,409],t:7,e:"ui-display",f:[{p:[18,3,425],t:7,e:"ui-section",a:{label:"Tank Pressure"},f:[{p:[19,7,467],t:7,e:"ui-bar",a:{min:"0",max:"1013",value:[{t:2,r:"data.tankPressure",p:[19,41,501]}],state:[{t:2,r:"tankPressureState",p:[20,16,540]}]},f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[20,39,563]}," kPa"]}]}," ",{p:[22,3,631],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[23,5,674],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[23,18,687]}],max:[{t:2,r:"data.maxReleasePressure",p:[23,52,721]}],value:[{t:2,r:"data.releasePressure",p:[24,14,764]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[24,40,790]}," kPa"]}]}," ",{p:[26,3,861],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,906],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,939]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1095],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1126]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1273],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1368],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1398]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],469:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,5,33],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[3,9,75],t:7,e:"span",f:[{t:2,x:{r:["adata.temperature"],s:"Math.fixed(_0,2)"},p:[3,15,81]}," K"]}]}," ",{p:[5,5,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,9,190],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.fixed(_0,2)"},p:[6,15,196]}," kPa"]}]}]}," ",{p:[9,1,276],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[10,5,311],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[11,9,347],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[11,26,364]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[11,70,408]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[12,28,469]}]}]}," ",{p:[14,5,531],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[15,9,580],t:7,e:"ui-button",a:{icon:"fast-backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[15,48,619]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[17,9,733],t:7,e:"ui-button",a:{icon:"backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[17,43,767]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[19,9,880],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.target"],s:"Math.fixed(_0,2)"},p:[19,79,950]}]}," ",{p:[20,9,1003],t:7,e:"ui-button",a:{icon:"forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[20,42,1036]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[22,9,1148],t:7,e:"ui-button",a:{icon:"fast-forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[22,47,1186]}],action:"target",params:'{"adjust": 20}'}}]}]}]},e.exports=a.extend(r.exports)},{341:341}],470:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 1:return"good";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[13,1,173],t:7,e:"ui-notice",f:[{p:[14,2,187],t:7,e:"ui-section",a:{label:"Reconnect"},f:[{p:[15,3,221],t:7,e:"div",a:{style:"float:right"},f:[{p:[16,4,251],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}]}]}]}," ",{p:[20,1,359],t:7,e:"ui-display",a:{title:"Turbine Controller"},f:[{p:[21,2,401],t:7,e:"ui-section",a:{label:"Status"},f:[{t:4,f:[{p:[23,4,456],t:7,e:"span",a:{"class":"bad"},f:["Broken"]}],n:50,r:"data.broken",p:[22,3,432]},{t:4,n:51,f:[{p:[25,4,504],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.online"],s:"_0(_1)"},p:[25,17,517]}]},f:[{t:2,x:{r:["data.online","data.compressor_broke","data.turbine_broke"],s:'_0&&!(_1||_2)?"Online":"Offline"'},p:[25,46,546]}]}],r:"data.broken"}," ",{p:[27,3,656],t:7,e:"div",a:{style:"float:right"},f:[{p:[28,4,686],t:7,e:"ui-button",a:{icon:"power-off",action:"power-on",state:[{t:2,r:"data.broken",p:[28,57,739]}],style:[{t:2,x:{r:["data.online"],s:'_0?"selected":""'},p:[28,81,763]}]},f:["On"]}," ",{p:[29,4,817],t:7,e:"ui-button",a:{icon:"close",action:"power-off",state:[{t:2,r:"data.broken",p:[29,54,867]}],style:[{t:2,x:{r:["data.online"],s:'_0?"":"selected"'},p:[29,78,891]}]},f:["Off"]}]}," ",{t:4,f:[{p:[32,4,989],t:7,e:"br"}," [ ",{p:[33,6,1e3],t:7,e:"span",a:{"class":"bad"},f:["Compressor is inoperable"]}," ]"],n:50,r:"data.compressor_broke",p:[31,3,955]}," ",{t:4,f:[{p:[36,4,1097],t:7,e:"br"}," [ ",{p:[37,6,1108],t:7,e:"span",a:{"class":"bad"},f:["Turbine is inoperable"]}," ]"],n:50,r:"data.turbine_broke",p:[35,3,1066]}]}]}," ",{p:[41,1,1200],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[42,2,1230],t:7,e:"ui-section",a:{label:"Turbine Speed"},f:[{p:[43,3,1268],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.rpm"],s:'_0?"--":_1'},p:[43,9,1274]}," RPM"]}]}," ",{p:[45,2,1337],t:7,e:"ui-section",a:{label:"Internal Temp"},f:[{p:[46,3,1375],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.temp"],s:'_0?"--":_1'},p:[46,9,1381]}," K"]}]}," ",{p:[48,2,1443],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{p:[49,3,1483],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.power"],s:'_0?"--":_1'},p:[49,9,1489]}]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],471:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{},oninit:function(){this.on({hover:function(t){var e=this.get("data.telecrystals");e>=t.context.params.cost&&this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}})}}}(r),r.exports.template={v:3,t:[" ",{p:{button:[{t:4,f:[{p:[23,7,482],t:7,e:"ui-button",a:{icon:"lock",action:"lock"},f:["Lock"]}],n:50,r:"data.lockable",p:[22,5,453]}]},t:7,e:"ui-display",a:{title:"Uplink",button:0},f:[" ",{p:[26,3,568],t:7,e:"ui-section",a:{label:"Telecrystals",right:0},f:[{p:[27,5,613],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.telecrystals"],s:'_0>0?"good":"bad"'},p:[27,18,626]}]},f:[{t:2,r:"data.telecrystals",p:[27,62,670]}," TC"]}]}]}," ",{t:4,f:[{p:[31,3,764],t:7,e:"ui-display",f:[{p:[32,2,779],t:7,e:"ui-button",a:{action:"select",params:['{"category": "',{t:2,r:"name",p:[32,51,828]},'"}']},f:[{t:2,r:"name",p:[32,63,840]}]}," ",{t:4,f:[{p:[34,4,883],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[34,23,902]}],candystripe:0,right:0},f:[{p:[35,3,934],t:7,e:"ui-button",a:{tooltip:[{t:2,r:"name",p:[35,23,954]},": ",{t:2,r:"desc",p:[35,33,964]}],"tooltip-side":"left",state:[{t:2,x:{r:["data.telecrystals","hovered.cost","cost","hovered.item","name"],s:'_0<_2||(_0-_1<_2&&_3!=_4)?"disabled":null'},p:[36,12,1006]}],action:"buy",params:['{"category": "',{t:2,r:"category",p:[37,40,1165]},'", "item": ',{t:2,r:"name",p:[37,63,1188]},', "cost": ',{t:2,r:"cost",p:[37,81,1206]},"}"]},v:{hover:"hover",unhover:"unhover"},f:[{t:2,r:"cost",p:[38,43,1260]}," TC"]}]}],n:52,r:"items",p:[33,2,863]}]}],n:52,r:"data.categories",p:[30,1,735]}]},e.exports=a.extend(r.exports)},{341:341}],472:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{healthState:function(t){var e=this.get("data.vr_avatar.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,292],t:7,e:"ui-display",f:[{t:4,f:[{p:[16,3,331],t:7,e:"ui-notice",f:[{p:[17,4,347],t:7,e:"span",f:["Safety restraints disabled."]}]}],n:50,r:"data.emagged",p:[15,2,307]}," ",{t:4,f:[{p:[21,3,442],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[22,4,482],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[23,5,513]}]}," ",{p:[25,4,559],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[26,5,592]}]}," ",{p:[28,4,640],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[29,5,673],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[29,26,694]}],value:[{t:2,r:"adata.vr_avatar.health",p:[29,64,732]}],state:[{t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[29,99,767]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[29,140,808]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[29,179,847]}]}]}]}],n:50,r:"data.vr_avatar",p:[20,2,416]},{t:4,n:51,f:[{p:[33,3,935],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[37,2,1031],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[38,3,1067],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[38,20,1084]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[39,4,1151]}," the VR Sleeper"]}," ",{t:4,f:[{p:[42,4,1253],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[41,3,1225]}," ",{t:4,f:[{p:[47,4,1376],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[46,3,1349]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],473:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{t:4,f:[{p:[3,5,42],t:7,e:"ui-section",a:{label:[{t:2,r:"color",p:[3,24,61]},{t:2,x:{r:["wire"],s:'_0?" ("+_0+")":""'},p:[3,33,70]}],labelcolor:[{t:2,r:"color",p:[3,80,117]}],candystripe:0,right:0},f:[{p:[4,7,154],t:7,e:"ui-button",a:{action:"cut",params:['{"wire":"',{t:2,r:"color",p:[4,48,195]},'"}']},f:[{t:2,x:{r:["cut"],s:'_0?"Mend":"Cut"'},p:[4,61,208]}]}," ",{p:[5,7,252],t:7,e:"ui-button",a:{action:"pulse",params:['{"wire":"',{t:2,r:"color",p:[5,50,295]},'"}']},f:["Pulse"]}," ",{p:[6,7,333],t:7,e:"ui-button",a:{action:"attach",params:['{"wire":"',{t:2,r:"color",p:[6,51,377]},'"}']},f:[{t:2,x:{r:["attached"],s:'_0?"Detach":"Attach"'},p:[6,64,390]}]}]}],n:52,r:"data.wires",p:[2,3,16]}]}," ",{t:4,f:[{p:[11,3,508],t:7,e:"ui-display",f:[{t:4,f:[{p:[13,7,555],t:7,e:"ui-section",f:[{t:2,r:".",p:[13,19,567]}]}],n:52,r:"data.status",p:[12,5,526]}]}],n:50,r:"data.status",p:[10,1,485]}]},e.exports=a.extend(r.exports)},{341:341}],474:[function(t,e,n){(function(e){"use strict";var n=t(341),a=e.interopRequireDefault(n);t(331),t(1),t(327),t(330);var r=t(475),i=e.interopRequireDefault(r),o=t(476),s=t(328),p=t(329),u=e.interopRequireDefault(p);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(480)),window.initialize=function(e){window.tgui=window.tgui||new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(477),text:t(481),config:n.config,data:n.data,adata:n.data}}})};var c=document.getElementById("data"),l=c.textContent,d=c.getAttribute("data-ref");"{}"!==l&&(window.initialize(l),c.remove()),(0,o.act)(d,"tgui:initialize"),(0,s.loadCSS)("font-awesome.min.css");var f=new u["default"]("FontAwesome");f.check("").then(function(){return document.body.classList.add("icons")})["catch"](function(){return document.body.classList.add("no-icons")})}).call(this,t("babel/external-helpers"))},{1:1,327:327,328:328,329:329,330:330,331:331,341:341,475:475,476:476,477:477,480:480,481:481,"babel/external-helpers":"babel/external-helpers"}],475:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(476),a=t(478);e.exports={components:{"ui-bar":t(342),"ui-button":t(343),"ui-display":t(344),"ui-input":t(345),"ui-linegraph":t(346),"ui-notice":t(347),"ui-section":t(349),"ui-subdisplay":t(350),"ui-tabs":t(351)},events:{enter:t(339).enter,space:t(339).space},transitions:{fade:t(340)},onconfig:function(){var e=this.get("config.interface"),n={ai_airlock:t(355),airalarm:t(356),"airalarm/back":t(357),"airalarm/modes":t(358),"airalarm/scrubbers":t(359),"airalarm/status":t(360),"airalarm/thresholds":t(361),"airalarm/vents":t(362),airlock_electronics:t(363),apc:t(364),atmos_alert:t(365),atmos_control:t(366),atmos_filter:t(367),atmos_mixer:t(368),atmos_pump:t(369),borgopanel:t(370),brig_timer:t(371),bsa:t(372),canister:t(373),cargo:t(374),cargo_express:t(375),cellular_emporium:t(376),centcom_podlauncher:t(377),chem_dispenser:t(378),chem_heater:t(379),chem_master:t(380),chem_synthesizer:t(381),clockwork_slab:t(382),codex_gigas:t(383),computer_fabricator:t(384),crayon:t(385),crew:t(386),cryo:t(387),disposal_unit:t(388),dna_vault:t(389),eightball:t(390),emergency_shuttle_console:t(391),engraved_message:t(392),error:t(393),exonet_node:t(394),gps:t(395),gulag_console:t(396),gulag_item_reclaimer:t(397),holodeck:t(398),implantchair:t(399),intellicard:t(400),keycard_auth:t(401),labor_claim_console:t(402),language_menu:t(403),launchpad_remote:t(404),mech_bay_power_console:t(405),mulebot:t(406),nanite_chamber_control:t(407),nanite_cloud_control:t(408),nanite_program_hub:t(409),nanite_programmer:t(410),nanite_remote:t(411),notificationpanel:t(412),ntnet_relay:t(413),ntos_ai_restorer:t(414),ntos_card:t(415),ntos_configuration:t(416),ntos_file_manager:t(417),ntos_main:t(418),ntos_net_chat:t(419),ntos_net_dos:t(420),ntos_net_downloader:t(421),ntos_net_monitor:t(422),ntos_net_transfer:t(423),ntos_power_monitor:t(424),ntos_revelation:t(425),ntos_station_alert:t(426),ntos_supermatter_monitor:t(427),ntosheader:t(428),nuclear_bomb:t(429),operating_computer:t(430),ore_redemption_machine:t(431),pandemic:t(432),personal_crafting:t(433),portable_pump:t(434),portable_scrubber:t(435),power_monitor:t(436),radio:t(437),rdconsole:t(438),"rdconsole/circuit":t(439),"rdconsole/designview":t(440),"rdconsole/destruct":t(441),"rdconsole/diskopsdesign":t(442),"rdconsole/diskopstech":t(443),"rdconsole/nodeview":t(444),"rdconsole/protolathe":t(445),"rdconsole/rdheader":t(446),"rdconsole/settings":t(447),"rdconsole/techweb":t(448),rpd:t(449),sat_control:t(450),scanner_gate:t(451),scrubbing_types:t(452),shuttle_manipulator:t(453),"shuttle_manipulator/modification":t(454),"shuttle_manipulator/status":t(455),"shuttle_manipulator/templates":t(456),sleeper:t(457),slime_swap_body:t(458),smartvend:t(459),smes:t(460),smoke_machine:t(461),solar_control:t(462),space_heater:t(463),spawners_menu:t(464),station_alert:t(465),suit_storage_unit:t(466),tank_dispenser:t(467),tanks:t(468),thermomachine:t(469),turbine_computer:t(470),uplink:t(471),vr_sleeper:t(472),wires:t(473)};e in n?this.components["interface"]=n[e]:this.components["interface"]=n.error},oninit:function(){this.observe("config.style",function(t,e,n){t&&document.body.classList.add(t),e&&document.body.classList.remove(e)})},oncomplete:function(){if(this.get("config.locked")){var t=(0,a.lock)(window.screenLeft,window.screenTop),e=t.x,r=t.y;(0,n.winset)(this.get("config.window"),"pos",e+","+r)}(0,n.winset)("mapwindow.map","focus",!0)}}}(r),r.exports.template={v:3,t:[" "," "," "," ",{p:[56,1,1874],t:7,e:"titlebar",f:[{t:3,r:"config.title",p:[56,11,1884]}]}," ",{p:[57,1,1915],t:7,e:"main",f:[{p:[58,3,1925],t:7,e:"warnings"}," ",{p:[59,3,1940],t:7,e:"interface"}]}," ",{t:4,f:[{p:[62,3,1990],t:7,e:"resize"}],n:50,r:"config.titlebar",p:[61,1,1963]}]},r.exports.components=r.exports.components||{};var i={warnings:t(354),titlebar:t(353),resize:t(348)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{339:339,340:340,341:341,342:342,343:343,344:344,345:345,346:346,347:347,348:348,349:349,350:350,351:351,353:353,354:354,355:355,356:356,357:357,358:358,359:359,360:360,361:361,362:362,363:363,364:364,365:365,366:366,367:367,368:368,369:369,370:370,371:371,372:372,373:373,374:374,375:375,376:376,377:377,378:378,379:379,380:380,381:381,382:382,383:383,384:384,385:385,386:386,387:387,388:388,389:389,390:390,391:391,392:392,393:393,394:394,395:395,396:396,397:397,398:398,399:399,400:400,401:401,402:402,403:403,404:404,405:405,406:406,407:407,408:408,409:409,410:410,411:411,412:412,413:413,414:414,415:415,416:416,417:417,418:418,419:419,420:420,421:421,422:422,423:423,424:424,425:425,426:426,427:427,428:428,429:429,430:430,431:431,432:432,433:433,434:434,435:435,436:436,437:437,438:438,439:439,440:440,441:441,442:442,443:443,444:444,445:445,446:446,447:447,448:448,449:449,450:450,451:451,452:452,453:453,454:454,455:455,456:456,457:457,458:458,459:459,460:460,461:461,462:462,463:463,464:464,465:465,466:466,467:467,468:468,469:469,470:470,471:471,472:472,473:473,476:476,478:478}],476:[function(t,e,n){"use strict";function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"byond://"+e+"?"+Object.keys(t).map(function(e){return o(e)+"="+o(t[e])}).join("&")}function r(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};window.location.href=a(Object.assign({src:t,action:e},n))}function i(t,e,n){var r;window.location.href=a((r={},r[t+"."+e]=n,r),"winset")}n.__esModule=!0,n.href=a,n.act=r,n.winset=i;var o=encodeURIComponent},{}],477:[function(t,e,n){"use strict";n.__esModule=!0;n.UI_INTERACTIVE=2,n.UI_UPDATE=1,n.UI_DISABLED=0,n.UI_CLOSE=-1},{}],478:[function(t,e,n){"use strict";function a(t,e){return 0>t?t=0:t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth),0>e?e=0:e+window.innerHeight>window.screen.availHeight&&(e=window.screen.availHeight-window.innerHeight),{x:t,y:e}}function r(t){if(t.preventDefault(),this.get("drag")){if(this.get("x")){var e=t.screenX-this.get("x")+window.screenLeft,n=t.screenY-this.get("y")+window.screenTop;if(this.get("config.locked")){var r=a(e,n);e=r.x,n=r.y}(0,s.winset)(this.get("config.window"),"pos",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}function i(t,e){return t=Math.clamp(100,window.screen.width,t),e=Math.clamp(100,window.screen.height,e),{x:t,y:e}}function o(t){if(t.preventDefault(),this.get("resize")){if(this.get("x")){var e=t.screenX-this.get("x")+window.innerWidth,n=t.screenY-this.get("y")+window.innerHeight,a=i(e,n); -e=a.x,n=a.y,(0,s.winset)(this.get("config.window"),"size",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}n.__esModule=!0,n.lock=a,n.drag=r,n.sane=i,n.resize=o;var s=t(476)},{476:476}],479:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var p=s;a||p.textContent.toLowerCase().includes(e)?p.style.display="":p.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],480:[function(t,e,n){"use strict";function a(t,e,n){return Math.max(t,Math.min(n,e))}function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],481:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var p=Array(o),u=0;o>u;u++)p[u]=arguments[u+3];n.children=p}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncIterator=function(t){if("function"==typeof Symbol){if(Symbol.asyncIterator){var e=t[Symbol.asyncIterator];if(null!=e)return e.call(t)}if(Symbol.iterator)return t[Symbol.iterator]()}throw new TypeError("Object is not async iterable")},e.asyncGenerator=function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};o?o=o.next=s:(i=o=s,a(t,e))})}function a(n,i){try{var o=e[n](i),s=o.value;s instanceof t?Promise.resolve(s.value).then(function(t){a("next",t)},function(t){a("throw",t)}):r(o.done?"return":"normal",o.value)}catch(p){r("throw",p)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?a(i.key,i.arg):o=null}var i,o;this._invoke=n,"function"!=typeof e["return"]&&(this["return"]=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype["throw"]=function(t){return this._invoke("throw",t)},e.prototype["return"]=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),e.asyncGeneratorDelegate=function(t,e){function n(n,a){return r=!0,a=new Promise(function(e){e(t[n](a))}),{done:!1,value:e(a)}}var a={},r=!1;return"function"==typeof Symbol&&Symbol.iterator&&(a[Symbol.iterator]=function(){return this}),a.next=function(t){return r?(r=!1,t):n("next",t)},"function"==typeof t["throw"]&&(a["throw"]=function(t){if(r)throw r=!1,t;return n("throw",t)}),"function"==typeof t["return"]&&(a["return"]=function(t){return n("return",t)}),a},e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(p){return void n(p)}return o.done?void t(s):Promise.resolve(s).then(function(t){a("next",t)},function(t){a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);ethis.end?(this.step&&this.step(1),this.complete&&this.complete(1),!1):(e=t-this.start,n=this.easing(e/this.duration),this.step&&this.step(n),!0):!1},stop:function(){this.abort&&this.abort(),this.running=!1}};var wf,kf,Sf,Ef,Cf,Pf,Af,Of,Tf=xf,Rf=RegExp("^-(?:"+ro.join("|")+")-"),Mf=function(t){return t.replace(Rf,"")},Lf=RegExp("^(?:"+ro.join("|")+")([A-Z])"),Df=function(t){var e;return t?(Lf.test(t)&&(t="-"+t),e=t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})):""},jf={},Nf={};Xi?(kf=co("div").style,function(){void 0!==kf.transition?(Sf="transition",Ef="transitionend",Cf=!0):void 0!==kf.webkitTransition?(Sf="webkitTransition",Ef="webkitTransitionEnd",Cf=!0):Cf=!1}(),Sf&&(Pf=Sf+"Duration",Af=Sf+"Property",Of=Sf+"TimingFunction"),wf=function(t,e,n,a,r){setTimeout(function(){var i,o,s,p,u;p=function(){o&&s&&(t.root.fire(t.name+":end",t.node,t.isIntro),r())},i=(t.node.namespaceURI||"")+t.node.tagName,t.node.style[Af]=a.map(bf).map(Df).join(","),t.node.style[Of]=Df(n.easing||"linear"),t.node.style[Pf]=n.duration/1e3+"s",u=function(e){var n;n=a.indexOf(mf(Mf(e.propertyName))),-1!==n&&a.splice(n,1),a.length||(t.node.removeEventListener(Ef,u,!1),s=!0,p())},t.node.addEventListener(Ef,u,!1),setTimeout(function(){for(var r,c,l,d,f,h=a.length,g=[];h--;)d=a[h],r=i+d,Cf&&!Nf[r]&&(t.node.style[bf(d)]=e[d],jf[r]||(c=t.getStyle(d),jf[r]=t.getStyle(d)!=e[d],Nf[r]=!jf[r],Nf[r]&&(t.node.style[bf(d)]=c))),(!Cf||Nf[r])&&(void 0===c&&(c=t.getStyle(d)),l=a.indexOf(d),-1===l?m("Something very strange happened with transitions. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!",{node:t.node}):a.splice(l,1),f=/[^\d]*$/.exec(e[d])[0],g.push({name:bf(d),interpolator:qo(parseFloat(c),parseFloat(e[d])),suffix:f}));g.length?new Tf({root:t.root,duration:n.duration,easing:mf(n.easing||""),step:function(e){var n,a;for(a=g.length;a--;)n=g[a],t.node.style[n.name]=n.interpolator(e)+n.suffix},complete:function(){o=!0,p()}}):o=!0,a.length||(t.node.removeEventListener(Ef,u,!1),s=!0,p())},0)},n.delay||0)}):wf=null;var Ff,If,Bf,qf,Uf,Vf=wf;if("undefined"!=typeof document){if(Ff="hidden",Uf={},Ff in document)Bf="";else for(qf=ro.length;qf--;)If=ro[qf],Ff=If+"Hidden",Ff in document&&(Bf=If);void 0!==Bf?(document.addEventListener(Bf+"visibilitychange",Ua),Ua()):("onfocusout"in document?(document.addEventListener("focusout",Va),document.addEventListener("focusin",Ga)):(window.addEventListener("pagehide",Va),window.addEventListener("blur",Va),window.addEventListener("pageshow",Ga),window.addEventListener("focus",Ga)),Uf.hidden=!1)}var Gf,zf,Wf,Hf=Uf;Xi?(zf=window.getComputedStyle||Po.getComputedStyle,Gf=function(t,e,n){var a,r=this;if(4===arguments.length)throw Error("t.animateStyle() returns a promise - use .then() instead of passing a callback");if(Hf.hidden)return this.setStyle(t,e),Wf||(Wf=us.resolve());"string"==typeof t?(a={},a[t]=e):(a=t,n=e),n||(g('The "%s" transition does not supply an options object to `t.animateStyle()`. This will break in a future version of Ractive. For more info see https://github.com/RactiveJS/Ractive/issues/340',this.name),n=this);var i=new us(function(t){var e,i,o,s,p,u,c;if(!n.duration)return r.setStyle(a),void t();for(e=Object.keys(a),i=[],o=zf(r.node),p={},u=e.length;u--;)c=e[u],s=o[bf(c)],"0px"===s&&(s=0),s!=a[c]&&(i.push(c),r.node.style[bf(c)]=s);return i.length?void Vf(r,a,n,i,t):void t()});return i}):Gf=null;var Kf=Gf,Qf=function(t,e){return"number"==typeof t?t={duration:t}:"string"==typeof t?t="slow"===t?{duration:600}:"fast"===t?{duration:200}:{duration:400}:t||(t={}),r({},t,e)},Yf=za,$f=function(t,e,n){this.init(t,e,n)};$f.prototype={init:hf,start:Yf,getStyle:yf,setStyle:_f,animateStyle:Kf,processParams:Qf};var Jf,Xf,Zf=$f,th=Ha;Jf=function(){var t=this.node,e=this.fragment.toString(!1);if(window&&window.appearsToBeIELessEqual8&&(t.type="text/css"),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}},Xf=function(){this.node.type&&"text/javascript"!==this.node.type||m("Script tag was updated. This does not cause the code to be re-evaluated!",{ractive:this.root}),this.node.text=this.fragment.toString(!1)};var eh=function(){var t,e;return this.template.y?"":(t="<"+this.template.e,t+=this.attributes.map(Xa).join("")+this.conditionalAttributes.map(Xa).join(""),"option"===this.name&&$a(this)&&(t+=" selected"),"input"===this.name&&Ja(this)&&(t+=" checked"),t+=">","textarea"===this.name&&void 0!==this.getAttribute("value")?t+=Se(this.getAttribute("value")):void 0!==this.getAttribute("contenteditable")&&(t+=this.getAttribute("value")||""),this.fragment&&(e="script"!==this.name&&"style"!==this.name,t+=this.fragment.toString(e)),ic.test(this.template.e)||(t+=""),t)},nh=Za,ah=tr,rh=function(t){this.init(t)};rh.prototype={bubble:Tl,detach:Rl,find:Ml,findAll:Ll,findAllComponents:Dl,findComponent:jl,findNextNode:Nl,firstNode:Fl,getAttribute:Il,init:df,rebind:ff,render:th,toString:eh,unbind:nh,unrender:ah};var ih=rh,oh=/^\s*$/,sh=/^\s*/,ph=function(t){var e,n,a,r;return e=t.split("\n"),n=e[0],void 0!==n&&oh.test(n)&&e.shift(),a=j(e),void 0!==a&&oh.test(a)&&e.pop(),r=e.reduce(nr,null),r&&(t=e.map(function(t){return t.replace(r,"")}).join("\n")),t},uh=ar,ch=function(t,e){var n;return e?n=t.split("\n").map(function(t,n){return n?e+t:t}).join("\n"):t},lh='Could not find template for partial "%s"',dh=function(t){var e,n;e=this.parentFragment=t.parentFragment,this.root=e.root,this.type=Au,this.index=t.index,this.name=t.template.r,this.rendered=!1,this.fragment=this.fragmentToRender=this.fragmentToUnrender=null,Gc.init(this,t),this.keypath||((n=uh(this.root,this.name,e))?(_c.call(this),this.isNamed=!0,this.setTemplate(n)):g(lh,this.name))};dh.prototype={bubble:function(){this.parentFragment.bubble()},detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},firstNode:function(){return this.fragment.firstNode()},findNextNode:function(){return this.parentFragment.findNextNode(this)},getPartialName:function(){return this.isNamed&&this.name?this.name:void 0===this.value?this.name:this.value},getValue:function(){return this.fragment.getValue()},rebind:function(t,e){this.isNamed||Vc.call(this,t,e),this.fragment&&this.fragment.rebind(t,e)},render:function(){return this.docFrag=document.createDocumentFragment(),this.update(),this.rendered=!0,this.docFrag},resolve:Gc.resolve,setValue:function(t){var e;(void 0===t||t!==this.value)&&(void 0!==t&&(e=uh(this.root,""+t,this.parentFragment)),!e&&this.name&&(e=uh(this.root,this.name,this.parentFragment))&&(_c.call(this),this.isNamed=!0),e||g(lh,this.name,{ractive:this.root}),this.value=t,this.setTemplate(e||[]),this.bubble(),this.rendered&&bs.addView(this))},setTemplate:function(t){this.fragment&&(this.fragment.unbind(),this.rendered&&(this.fragmentToUnrender=this.fragment)),this.fragment=new rg({template:t,root:this.root,owner:this,pElement:this.parentFragment.pElement}),this.fragmentToRender=this.fragment},toString:function(t){var e,n,a,r;return e=this.fragment.toString(t),n=this.parentFragment.items[this.index-1],n&&n.type===ku?(a=n.text.split("\n").pop(),(r=/^\s+$/.exec(a))?ch(e,r[0]):e):e},unbind:function(){this.isNamed||_c.call(this),this.fragment&&this.fragment.unbind()},unrender:function(t){this.rendered&&(this.fragment&&this.fragment.unrender(t),this.rendered=!1)},update:function(){var t,e;this.fragmentToUnrender&&(this.fragmentToUnrender.unrender(!0),this.fragmentToUnrender=null),this.fragmentToRender&&(this.docFrag.appendChild(this.fragmentToRender.render()),this.fragmentToRender=null),this.rendered&&(t=this.parentFragment.getNode(),e=this.parentFragment.findNextNode(this),t.insertBefore(this.docFrag,e))}};var fh,hh,mh,gh=dh,vh=pr,bh=ur,yh=new is("detach"),_h=cr,xh=lr,wh=dr,kh=fr,Sh=hr,Eh=mr,Ch=function(t,e,n,a){var r=t.root,i=t.keypath;a?r.viewmodel.smartUpdate(i,e,a):r.viewmodel.mark(i)},Ph=[],Ah=["pop","push","reverse","shift","sort","splice","unshift"];Ah.forEach(function(t){var e=function(){for(var e=arguments.length,n=Array(e),a=0;e>a;a++)n[a]=arguments[a];var r,i,o,s;for(r=bp(this,t,n),i=Array.prototype[t].apply(this,arguments),bs.start(),this._ractive.setting=!0,s=this._ractive.wrappers.length;s--;)o=this._ractive.wrappers[s],bs.addRactive(o.root),Ch(o,this,t,r);return bs.end(),this._ractive.setting=!1,i};Eo(Ph,t,{value:e})}),fh={},fh.__proto__?(hh=function(t){t.__proto__=Ph},mh=function(t){t.__proto__=Array.prototype}):(hh=function(t){var e,n;for(e=Ah.length;e--;)n=Ah[e],Eo(t,n,{value:Ph[n],configurable:!0})},mh=function(t){var e;for(e=Ah.length;e--;)delete t[Ah[e]]}),hh.unpatch=mh;var Oh,Th,Rh,Mh=hh;Oh={filter:function(t){return i(t)&&(!t._ractive||!t._ractive.setting)},wrap:function(t,e,n){return new Th(t,e,n)}},Th=function(t,e,n){this.root=t,this.value=e,this.keypath=S(n),e._ractive||(Eo(e,"_ractive",{value:{wrappers:[],instances:[],setting:!1},configurable:!0}),Mh(e)),e._ractive.instances[t._guid]||(e._ractive.instances[t._guid]=0,e._ractive.instances.push(t)),e._ractive.instances[t._guid]+=1,e._ractive.wrappers.push(this)},Th.prototype={get:function(){return this.value},teardown:function(){var t,e,n,a,r;if(t=this.value,e=t._ractive,n=e.wrappers,a=e.instances,e.setting)return!1;if(r=n.indexOf(this),-1===r)throw Error(Rh);if(n.splice(r,1),n.length){if(a[this.root._guid]-=1,!a[this.root._guid]){if(r=a.indexOf(this.root),-1===r)throw Error(Rh);a.splice(r,1)}}else delete t._ractive,Mh.unpatch(this.value)}},Rh="Something went wrong in a rather interesting way";var Lh,Dh,jh=Oh,Nh=/^\s*[0-9]+\s*$/,Fh=function(t){return Nh.test(t)?[]:{}};try{Object.defineProperty({},"test",{value:0}),Lh={filter:function(t,e,n){var a,r;return e?(e=S(e),(a=n.viewmodel.wrapped[e.parent.str])&&!a.magic?!1:(r=n.viewmodel.get(e.parent),i(r)&&/^[0-9]+$/.test(e.lastKey)?!1:r&&("object"==typeof r||"function"==typeof r))):!1},wrap:function(t,e,n){return new Dh(t,e,n)}},Dh=function(t,e,n){var a,r,i;return n=S(n),this.magic=!0,this.ractive=t,this.keypath=n,this.value=e,this.prop=n.lastKey,a=n.parent,this.obj=a.isRoot?t.viewmodel.data:t.viewmodel.get(a),r=this.originalDescriptor=Object.getOwnPropertyDescriptor(this.obj,this.prop),r&&r.set&&(i=r.set._ractiveWrappers)?void(-1===i.indexOf(this)&&i.push(this)):void gr(this,e,r)},Dh.prototype={get:function(){return this.value},reset:function(t){return this.updating?void 0:(this.updating=!0,this.obj[this.prop]=t,bs.addRactive(this.ractive),this.ractive.viewmodel.mark(this.keypath,{keepExistingWrapper:!0}),this.updating=!1,!0)},set:function(t,e){this.updating||(this.obj[this.prop]||(this.updating=!0,this.obj[this.prop]=Fh(t),this.updating=!1),this.obj[this.prop][t]=e)},teardown:function(){var t,e,n,a,r;return this.updating?!1:(t=Object.getOwnPropertyDescriptor(this.obj,this.prop),e=t&&t.set,void(e&&(a=e._ractiveWrappers,r=a.indexOf(this),-1!==r&&a.splice(r,1),a.length||(n=this.obj[this.prop],Object.defineProperty(this.obj,this.prop,this.originalDescriptor||{writable:!0,enumerable:!0,configurable:!0}),this.obj[this.prop]=n))))}}}catch(Ao){Lh=!1}var Ih,Bh,qh=Lh;qh&&(Ih={filter:function(t,e,n){return qh.filter(t,e,n)&&jh.filter(t)},wrap:function(t,e,n){return new Bh(t,e,n)}},Bh=function(t,e,n){this.value=e,this.magic=!0,this.magicWrapper=qh.wrap(t,e,n),this.arrayWrapper=jh.wrap(t,e,n)},Bh.prototype={get:function(){return this.value},teardown:function(){this.arrayWrapper.teardown(),this.magicWrapper.teardown()},reset:function(t){return this.magicWrapper.reset(t)}});var Uh=Ih,Vh=vr,Gh={},zh=_r,Wh=xr,Hh=Sr,Kh=Or,Qh=Tr,Yh=function(t,e){this.computation=t,this.viewmodel=t.viewmodel,this.ref=e,this.root=this.viewmodel.ractive,this.parentFragment=this.root.component&&this.root.component.parentFragment};Yh.prototype={resolve:function(t){this.computation.softDeps.push(t),this.computation.unresolvedDeps[t.str]=null,this.viewmodel.register(t,this.computation,"computed")}};var $h=Yh,Jh=function(t,e){this.key=t,this.getter=e.getter,this.setter=e.setter,this.hardDeps=e.deps||[],this.softDeps=[],this.unresolvedDeps={},this.depValues={},this._dirty=this._firstRun=!0};Jh.prototype={constructor:Jh,init:function(t){var e,n=this;this.viewmodel=t,this.bypass=!0,e=t.get(this.key),t.clearCache(this.key.str),this.bypass=!1,this.setter&&void 0!==e&&this.set(e),this.hardDeps&&this.hardDeps.forEach(function(e){return t.register(e,n,"computed")})},invalidate:function(){this._dirty=!0},get:function(){var t,e,n=this,a=!1;if(this.getting){var r="The "+this.key.str+" computation indirectly called itself. This probably indicates a bug in the computation. It is commonly caused by `array.sort(...)` - if that's the case, clone the array first with `array.slice().sort(...)`";return h(r),this.value}if(this.getting=!0,this._dirty){if(this._firstRun||!this.hardDeps.length&&!this.softDeps.length?a=!0:[this.hardDeps,this.softDeps].forEach(function(t){var e,r,i;if(!a)for(i=t.length;i--;)if(e=t[i],r=n.viewmodel.get(e),!s(r,n.depValues[e.str]))return n.depValues[e.str]=r,void(a=!0)}),a){this.viewmodel.capture();try{this.value=this.getter()}catch(i){m('Failed to compute "%s"',this.key.str),d(i.stack||i),this.value=void 0}t=this.viewmodel.release(),e=this.updateDependencies(t),e&&[this.hardDeps,this.softDeps].forEach(function(t){t.forEach(function(t){n.depValues[t.str]=n.viewmodel.get(t)})})}this._dirty=!1}return this.getting=this._firstRun=!1,this.value},set:function(t){if(this.setting)return void(this.value=t);if(!this.setter)throw Error("Computed properties without setters are read-only. (This may change in a future version of Ractive!)");this.setter(t)},updateDependencies:function(t){var e,n,a,r,i;for(n=this.softDeps,e=n.length;e--;)a=n[e],-1===t.indexOf(a)&&(r=!0,this.viewmodel.unregister(a,this,"computed"));for(e=t.length;e--;)a=t[e],-1!==n.indexOf(a)||this.hardDeps&&-1!==this.hardDeps.indexOf(a)||(r=!0,Rr(this.viewmodel,a)&&!this.unresolvedDeps[a.str]?(i=new $h(this,a.str),t.splice(e,1),this.unresolvedDeps[a.str]=i,bs.addUnresolved(i)):this.viewmodel.register(a,this,"computed"));return r&&(this.softDeps=t.slice()),r}};var Xh=Jh,Zh=Mr,tm={FAILED_LOOKUP:!0},em=Lr,nm={},am=jr,rm=Nr,im=function(t,e){this.localKey=t,this.keypath=e.keypath,this.origin=e.origin,this.deps=[],this.unresolved=[],this.resolved=!1};im.prototype={forceResolution:function(){this.keypath=this.localKey,this.setup()},get:function(t,e){return this.resolved?this.origin.get(this.map(t),e):void 0},getValue:function(){return this.keypath?this.origin.get(this.keypath):void 0},initViewmodel:function(t){this.local=t,this.setup()},map:function(t){return void 0===typeof this.keypath?this.localKey:t.replace(this.localKey,this.keypath)},register:function(t,e,n){this.deps.push({keypath:t,dep:e,group:n}),this.resolved&&this.origin.register(this.map(t),e,n)},resolve:function(t){void 0!==this.keypath&&this.unbind(!0),this.keypath=t,this.setup()},set:function(t,e){this.resolved||this.forceResolution(),this.origin.set(this.map(t),e)},setup:function(){var t=this;void 0!==this.keypath&&(this.resolved=!0,this.deps.length&&(this.deps.forEach(function(e){var n=t.map(e.keypath);if(t.origin.register(n,e.dep,e.group),e.dep.setValue)e.dep.setValue(t.origin.get(n));else{if(!e.dep.invalidate)throw Error("An unexpected error occurred. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");e.dep.invalidate()}}),this.origin.mark(this.keypath)))},setValue:function(t){if(!this.keypath)throw Error("Mapping does not have keypath, cannot set value. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");this.origin.set(this.keypath,t)},unbind:function(t){var e=this;t||delete this.local.mappings[this.localKey],this.resolved&&(this.deps.forEach(function(t){e.origin.unregister(e.map(t.keypath),t.dep,t.group)}),this.tracker&&this.origin.unregister(this.keypath,this.tracker))},unregister:function(t,e,n){var a,r;if(this.resolved){for(a=this.deps,r=a.length;r--;)if(a[r].dep===e){a.splice(r,1);break}this.origin.unregister(this.map(t),e,n)}}};var om=Fr,sm=function(t,e){var n,a,r,i;return n={},a=0,r=t.map(function(t,r){var o,s,p;s=a,p=e.length;do{if(o=e.indexOf(t,s),-1===o)return i=!0,-1;s=o+1}while(n[o]&&p>s);return o===a&&(a+=1),o!==r&&(i=!0),n[o]=!0,o})},pm=Ir,um={},cm=Ur,lm=Gr,dm=zr,fm=Wr,hm=Kr,mm={implicit:!0},gm={noCascade:!0},vm=Yr,bm=$r,ym=function(t){var e,n,a=t.adapt,r=t.data,i=t.ractive,o=t.computed,s=t.mappings;this.ractive=i,this.adaptors=a,this.onchange=t.onchange,this.cache={},this.cacheMap=So(null),this.deps={computed:So(null),"default":So(null)},this.depsMap={computed:So(null),"default":So(null)},this.patternObservers=[],this.specials=So(null),this.wrapped=So(null),this.computations=So(null),this.captureGroups=[],this.unresolvedImplicitDependencies=[],this.changes=[],this.implicitChanges={},this.noCascade={},this.data=r,this.mappings=So(null);for(e in s)this.map(S(e),s[e]);if(r)for(e in r)(n=this.mappings[e])&&void 0===n.getValue()&&n.setValue(r[e]);for(e in o)s&&e in s&&l("Cannot map to a computed property ('%s')",e),this.compute(S(e),o[e]);this.ready=!0};ym.prototype={adapt:Vh,applyChanges:Hh,capture:Kh,clearCache:Qh,compute:Zh,get:em,init:am,map:rm,mark:om,merge:pm,register:cm,release:lm,reset:dm,set:fm,smartUpdate:hm,teardown:vm,unregister:bm};var _m=ym;Xr.prototype={constructor:Xr,begin:function(t){this.inProcess[t._guid]=!0},end:function(t){var e=t.parent;e&&this.inProcess[e._guid]?Zr(this.queue,e).push(t):ti(this,t),delete this.inProcess[t._guid]}};var xm=Xr,wm=ei,km=/\$\{([^\}]+)\}/g,Sm=new is("construct"),Em=new is("config"),Cm=new xm("init"),Pm=0,Am=["adaptors","components","decorators","easing","events","interpolators","partials","transitions"],Om=ii,Tm=ci;ci.prototype={bubble:function(){this.dirty||(this.dirty=!0,bs.addView(this))},update:function(){this.callback(this.fragment.getValue()),this.dirty=!1},rebind:function(t,e){this.fragment.rebind(t,e)},unbind:function(){this.fragment.unbind()}};var Rm=function(t,e,n,r,o){var s,p,u,c,l,d,f={},h={},g={},v=[];for(p=t.parentFragment,u=t.root,o=o||{},a(f,o),o.content=r||[],f[""]=o.content,e.defaults.el&&m("The <%s/> component has a default `el` property; it has been disregarded",t.name),c=p;c;){if(c.owner.type===Mu){l=c.owner.container;break}c=c.parent}return n&&Object.keys(n).forEach(function(e){var a,r,o=n[e];if("string"==typeof o)a=dc(o),h[e]=a?a.value:o;else if(0===o)h[e]=!0;else{if(!i(o))throw Error("erm wut");di(o)?(g[e]={origin:t.root.viewmodel,keypath:void 0},r=li(t,o[0],function(t){t.isSpecial?d?s.set(e,t.value):(h[e]=t.value,delete g[e]):d?s.viewmodel.mappings[e].resolve(t):g[e].keypath=t})):r=new Tm(t,o,function(t){d?s.set(e,t):h[e]=t}),v.push(r)}}),s=So(e.prototype),Om(s,{el:null,append:!0,data:h,partials:o,magic:u.magic||e.defaults.magic,modifyArrays:u.modifyArrays,adapt:u.adapt},{parent:u,component:t,container:l,mappings:g,inlinePartials:f,cssIds:p.cssIds}),d=!0,t.resolvers=v,s},Mm=fi,Lm=function(t){var e,n;for(e=t.root;e;)(n=e._liveComponentQueries["_"+t.name])&&n.push(t.instance),e=e.parent},Dm=mi,jm=gi,Nm=vi,Fm=bi,Im=yi,Bm=new is("teardown"),qm=xi,Um=function(t,e){this.init(t,e)};Um.prototype={detach:bh,find:_h,findAll:xh,findAllComponents:wh,findComponent:kh,findNextNode:Sh,firstNode:Eh,init:Dm,rebind:jm,render:Nm,toString:Fm,unbind:Im,unrender:qm};var Vm=Um,Gm=function(t){this.type=Ou,this.value=t.template.c};Gm.prototype={detach:vc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createComment(this.value)),this.node},toString:function(){return""},unrender:function(t){t&&this.node.parentNode.removeChild(this.node)}};var zm=Gm,Wm=function(t){var e,n;this.type=Mu,this.container=e=t.parentFragment.root,this.component=n=e.component,this.container=e,this.containerFragment=t.parentFragment,this.parentFragment=n.parentFragment;var a=this.name=t.template.n||"",r=e._inlinePartials[a];r||(m('Could not find template for partial "'+a+'"',{ractive:t.root}),r=[]),this.fragment=new rg({owner:this,root:e.parent,template:r,pElement:this.containerFragment.pElement}),i(n.yielders[a])?n.yielders[a].push(this):n.yielders[a]=[this],bs.scheduleTask(function(){if(n.yielders[a].length>1)throw Error("A component template can only have one {{yield"+(a?" "+a:"")+"}} declaration at a time")})};Wm.prototype={detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},findNextNode:function(){return this.containerFragment.findNextNode(this)},firstNode:function(){return this.fragment.firstNode()},getValue:function(t){return this.fragment.getValue(t)},render:function(){return this.fragment.render()},unbind:function(){this.fragment.unbind()},unrender:function(t){this.fragment.unrender(t),N(this.component.yielders[this.name],this)},rebind:function(t,e){this.fragment.rebind(t,e)},toString:function(){return""+this.fragment}};var Hm=Wm,Km=function(t){this.declaration=t.template.a};Km.prototype={init:ko,render:ko,unrender:ko,teardown:ko,toString:function(){return""}};var Qm=Km,Ym=wi,$m=Si,Jm=Ei,Xm=Ci,Zm=Oi,tg=Ri,eg=function(t){this.init(t)};eg.prototype={bubble:cu,detach:lu,find:du,findAll:fu,findAllComponents:hu,findComponent:mu,findNextNode:gu,firstNode:vu,getArgsList:hc,getNode:mc,getValue:gc,init:Ym,rebind:$m,registerIndexRef:function(t){var e=this.registeredIndexRefs;-1===e.indexOf(t)&&e.push(t)},render:Jm,toString:Xm,unbind:Zm,unregisterIndexRef:function(t){var e=this.registeredIndexRefs;e.splice(e.indexOf(t),1)},unrender:tg};var ng,ag,rg=eg,ig=Mi,og=["template","partials","components","decorators","events"],sg=new is("reset"),pg=function(t,e){function n(e,a,r){r&&r.partials[t]||e.forEach(function(e){e.type===Au&&e.getPartialName()===t&&a.push(e),e.fragment&&n(e.fragment.items,a,r),i(e.fragments)?n(e.fragments,a,r):i(e.items)?n(e.items,a,r):e.type===Ru&&e.instance&&n(e.instance.fragment.items,a,e.instance),e.type===Pu&&(i(e.attributes)&&n(e.attributes,a,r),i(e.conditionalAttributes)&&n(e.conditionalAttributes,a,r))})}var a,r=[];return n(this.fragment.items,r),this.partials[t]=e,a=bs.start(this,!0),r.forEach(function(e){e.value=void 0,e.setValue(t)}),bs.end(),a},ug=Li,cg=_p("reverse"),lg=Di,dg=_p("shift"),fg=_p("sort"),hg=_p("splice"),mg=Ni,gg=Fi,vg=new is("teardown"),bg=Bi,yg=qi,_g=Ui,xg=new is("unrender"),wg=_p("unshift"),kg=Vi,Sg=new is("update"),Eg=Gi,Cg={add:Zo,animate:Ss,detach:Cs,find:As,findAll:Fs,findAllComponents:Is,findComponent:Bs,findContainer:qs,findParent:Us,fire:Ws,get:Hs,insert:Qs,merge:$s,observe:lp,observeOnce:dp,off:mp,on:gp,once:vp,pop:xp,push:wp,render:Tp,reset:ig,resetPartial:pg,resetTemplate:ug,reverse:cg,set:lg,shift:dg,sort:fg,splice:hg,subtract:mg,teardown:gg,toggle:bg,toHTML:yg,toHtml:yg,unrender:_g,unshift:wg,update:kg,updateModel:Eg},Pg=function(t,e,n){return n||Wi(t,e)?function(){var n,a="_super"in this,r=this._super;return this._super=e,n=t.apply(this,arguments),a&&(this._super=r),n}:t},Ag=Hi,Og=$i,Tg=function(t){var e,n,a={};return t&&(e=t._ractive)?(a.ractive=e.root,a.keypath=e.keypath.str,a.index={},(n=Oc(e.proxy.parentFragment))&&(a.index=Oc.resolve(n)),a):a};ng=function(t){return this instanceof ng?void Om(this,t):new ng(t)},ag={DEBUG:{writable:!0,value:!0},DEBUG_PROMISES:{writable:!0,value:!0},extend:{value:Og},getNodeInfo:{value:Tg},parse:{value:Hp},Promise:{value:us},svg:{value:ao},magic:{value:eo},VERSION:{value:"0.7.3"},adaptors:{writable:!0,value:{}},components:{writable:!0,value:{}},decorators:{writable:!0,value:{}},easing:{writable:!0,value:po},events:{writable:!0,value:{}},interpolators:{writable:!0,value:Vo},partials:{writable:!0,value:{}},transitions:{writable:!0,value:{}}},Co(ng,ag),ng.prototype=a(Cg,so),ng.prototype.constructor=ng,ng.defaults=ng.prototype;var Rg="function";if(typeof Date.now!==Rg||typeof String.prototype.trim!==Rg||typeof Object.keys!==Rg||typeof Array.prototype.indexOf!==Rg||typeof Array.prototype.forEach!==Rg||typeof Array.prototype.map!==Rg||typeof Array.prototype.filter!==Rg||"undefined"!=typeof window&&typeof window.addEventListener!==Rg)throw Error("It looks like you're attempting to use Ractive.js in an older browser. You'll need to use one of the 'legacy builds' in order to continue - see http://docs.ractivejs.org/latest/legacy-builds for more information.");var Mg=ng;return Mg})},{}],342:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.observe("value",function(e,n,a){var r=t.get(),i=r.min,o=r.max,s=Math.clamp(i,o,e);t.animate("percentage",Math.round((s-i)/(o-i)*100))})}}}(r),r.exports.template={v:3,t:[" ",{p:[13,1,293],t:7,e:"div",a:{"class":"bar"},f:[{p:[14,3,313],t:7,e:"div",a:{"class":["barFill ",{t:2,r:"state",p:[14,23,333]}],style:["width: ",{t:2,r:"percentage",p:[14,48,358]},"%"]}}," ",{p:[15,3,384],t:7,e:"span",a:{"class":"barText"},f:[{t:16,p:[15,25,406]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],343:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(477),a=t(476);e.exports={computed:{clickable:function(){return!this.get("enabled")||this.get("state")&&"toggle"!=this.get("state")?!1:!0},enabled:function(){return this.get("config.status")===n.UI_INTERACTIVE?!0:!1},styles:function(){var t="";if(this.get("class")&&(t+=" "+this.get("class")),this.get("tooltip-side")&&(t=" tooltip-"+this.get("tooltip-side")),this.get("grid")&&(t+=" gridable"),this.get("enabled")){var e=this.get("state"),n=this.get("style");return e?"inactive "+e+" "+t:"active normal "+n+" "+t}return"inactive disabled "+t}},oninit:function(){var t=this;this.on("press",function(e){var n=t.get(),r=n.action,i=n.params;(0,a.act)(t.get("config.ref"),r,i),e.node.blur()})},data:{iconStackToHTML:function(t){var e="",n=t.split(",");if(n.length){e+='';for(var a=n,r=Array.isArray(a),i=0,a=r?a:a[Symbol.iterator]();;){var o;if(r){if(i>=a.length)break;o=a[i++]}else{if(i=a.next(),i.done)break;o=i.value}var s=o,p=/([\w\-]+)\s*(\dx)/g,u=p.exec(s),c=u[1],l=u[2];e+=''}}return e&&(e+=""),e}}}}(r),r.exports.template={v:3,t:[" ",{p:[70,1,1950],t:7,e:"span",a:{"class":["button ",{t:2,r:"styles",p:[70,21,1970]}],unselectable:"on","data-tooltip":[{t:2,r:"tooltip",p:[73,17,2052]}]},m:[{t:4,f:["tabindex='0'"],r:"clickable",p:[72,3,2004]}],v:{"mouseover-mousemove":"hover",mouseleave:"unhover","click-enter":{n:[{t:4,f:["press"],r:"clickable",p:[76,19,2142]}],d:[]}},f:[{t:4,f:[{p:[78,5,2188],t:7,e:"i",a:{"class":["fa fa-",{t:2,r:"icon",p:[78,21,2204]}]}}],n:50,r:"icon",p:[77,3,2171]}," ",{t:4,f:[{t:3,x:{r:["iconStackToHTML","icon_stack"],s:"_0(_1)"},p:[81,6,2255]}],n:50,r:"icon_stack",p:[80,3,2231]}," ",{t:16,p:[83,3,2301]}]}]},e.exports=a.extend(r.exports)},{341:341,476:476,477:477}],344:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"display"},f:[{t:4,f:[{p:[3,5,42],t:7,e:"header",f:[{p:[4,7,57],t:7,e:"h3",f:[{t:2,r:"title",p:[4,11,61]}]}," ",{t:4,f:[{p:[6,9,105],t:7,e:"div",a:{"class":"buttonRight"},f:[{t:16,n:"button",p:[6,34,130]}]}],n:50,r:"button",p:[5,7,82]}]}],n:50,r:"title",p:[2,3,24]}," ",{p:[10,3,193],t:7,e:"article",f:[{t:16,p:[11,5,207]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],345:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.on("clear",function(){t.set("value",""),t.find("input").focus()})}}}(r),r.exports.template={v:3,t:[" ",{p:[12,1,170],t:7,e:"input",a:{type:"text",value:[{t:2,r:"value",p:[12,27,196]}],placeholder:[{t:2,r:"placeholder",p:[12,51,220]}]}}," ",{p:[13,1,240],t:7,e:"ui-button",a:{icon:"refresh"},v:{press:"clear"}}]},e.exports=a.extend(r.exports)},{341:341}],346:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";e.exports={data:{graph:t(338),xaccessor:function(t){return t.x},yaccessor:function(t){return t.y}},computed:{size:function(){var t=this.get("points");return t[0].length},scale:function(){var t=this.get("points");return Math.max.apply(Math,Array.map(t,function(t){return Math.max.apply(Math,Array.map(t,function(t){return t.y}))}))},xaxis:function(){var t=this.get("xinc"),e=this.get("size");return Array.from(Array(e).keys()).filter(function(e){return e&&e%t==0})},yaxis:function(){var t=this.get("yinc"),e=this.get("scale");return Array.from(Array(t).keys()).map(function(t){return Math.round(e*(++t/100)*10)})}},oninit:function(){var t=this;this.on({enter:function(t){this.set("selected",t.index.count)},exit:function(t){this.set("selected")}}),window.addEventListener("resize",function(e){t.set("width",t.el.clientWidth)})},onrender:function(){this.set("width",this.el.clientWidth)}}}(r),r.exports.template={v:3,t:[" ",{p:[47,1,1269],t:7,e:"svg",a:{"class":"linegraph",width:"100%",height:[{t:2,x:{r:["height"],s:"_0+10"},p:[47,45,1313]}]},f:[{p:[48,3,1334],t:7,e:"g",a:{transform:"translate(0, 5)"},f:[{t:4,f:[{t:4,f:[{p:[51,9,1504],t:7,e:"line",a:{x1:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,19,1514]}],x2:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,38,1533]}],y1:"0",y2:[{t:2,r:"height",p:[51,64,1559]}],stroke:"darkgray"}}," ",{t:4,f:[{p:[53,11,1635],t:7,e:"text",a:{x:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[53,20,1644]}],y:[{t:2,x:{r:["height"],s:"_0-5"},p:[53,38,1662]}],"text-anchor":"middle",fill:"white"},f:[{t:2,x:{r:["size",".","xfactor"],s:"(_0-_1)*_2"},p:[53,88,1712]}," ",{t:2,r:"xunit",p:[53,113,1737]}]}],n:50,x:{r:["@index"],s:"_0%2==0"},p:[52,9,1600]}],n:52,r:"xaxis",p:[50,7,1479]}," ",{t:4,f:[{p:[57,9,1820],t:7,e:"line",a:{x1:"0",x2:[{t:2,r:"width",p:[57,26,1837]}],y1:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,41,1852]}],y2:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,60,1871]}],stroke:"darkgray"}}," ",{p:[58,9,1915],t:7,e:"text",a:{x:"0",y:[{t:2,x:{r:["yscale","."],s:"_0(_1)-5"},p:[58,24,1930]}],"text-anchor":"begin",fill:"white"},f:[{t:2,x:{r:[".","yfactor"],s:"_0*_1"},p:[58,76,1982]}," ",{t:2,r:"yunit",p:[58,92,1998]}]}],n:52,r:"yaxis",p:[56,7,1795]}," ",{t:4,f:[{p:[61,9,2071],t:7,e:"path",a:{d:[{t:2,x:{r:["area.path"],s:"_0.print()"},p:[61,18,2080]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[61,47,2109]}],opacity:"0.1"}}],n:52,i:"curve",r:"curves",p:[60,7,2039]}," ",{t:4,f:[{p:[64,9,2200],t:7,e:"path",a:{d:[{t:2,x:{r:["line.path"],s:"_0.print()"},p:[64,18,2209]}],stroke:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[64,49,2240]}],fill:"none"}}],n:52, +i:"curve",r:"curves",p:[63,7,2168]}," ",{t:4,f:[{t:4,f:[{p:[68,11,2375],t:7,e:"circle",a:{transform:["translate(",{t:2,r:".",p:[68,40,2404]},")"],r:[{t:2,x:{r:["selected","count"],s:"_0==_1?10:4"},p:[68,51,2415]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[68,89,2453]}]},v:{mouseenter:"enter",mouseleave:"exit"}}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[67,9,2329]}],n:52,i:"curve",r:"curves",p:[66,7,2297]}," ",{t:4,f:[{t:4,f:[{t:4,f:[{p:[74,13,2678],t:7,e:"text",a:{transform:["translate(",{t:2,r:".",p:[74,40,2705]},") ",{t:2,x:{r:["count","size"],s:'_0<=_1/2?"translate(15, 4)":"translate(-15, 4)"'},p:[74,47,2712]}],"text-anchor":[{t:2,x:{r:["count","size"],s:'_0<=_1/2?"start":"end"'},p:[74,126,2791]}],fill:"white"},f:[{t:2,x:{r:["count","item","yfactor"],s:"_1[_0].y*_2"},p:[75,15,2861]}," ",{t:2,r:"yunit",p:[75,43,2889]}," @ ",{t:2,x:{r:["size","count","item","xfactor"],s:"(_0-_2[_1].x)*_3"},p:[75,55,2901]}," ",{t:2,r:"xunit",p:[75,92,2938]}]}],n:50,x:{r:["selected","count"],s:"_0==_1"},p:[73,11,2638]}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[72,9,2592]}],n:52,i:"curve",r:"curves",p:[71,7,2560]}," ",{t:4,f:[{p:[81,9,3063],t:7,e:"g",a:{transform:["translate(",{t:2,x:{r:["width","curves.length","@index"],s:"(_0/(_1+1))*(_2+1)"},p:[81,33,3087]},", 10)"]},f:[{p:[82,11,3154],t:7,e:"circle",a:{r:"4",fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[82,31,3174]}]}}," ",{p:[83,11,3206],t:7,e:"text",a:{x:"8",y:"4",fill:"white"},f:[{t:2,rx:{r:"legend",m:[{t:30,n:"curve"}]},p:[83,42,3237]}]}]}],n:52,i:"curve",r:"curves",p:[80,7,3031]}],x:{r:["graph","points","xaccessor","yaccessor","width","height"],s:"_0({data:_1,xaccessor:_2,yaccessor:_3,width:_4,height:_5})"},p:[49,5,1371]}]}]}]},e.exports=a.extend(r.exports)},{338:338,341:341}],347:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"notice"},f:[{t:16,p:[2,3,23]}]}]},e.exports=a.extend(r.exports)},{341:341}],348:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(476),a=t(478);e.exports={oninit:function(){var t=this,e=a.resize.bind(this),r=function(){return t.set({resize:!1,x:null,y:null})};this.observe("config.fancy",function(a,i,o){(0,n.winset)(t.get("config.window"),"can-resize",!a),a?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",r)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",r))}),this.on("resize",function(){return t.toggle("resize")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[28,3,739],t:7,e:"div",a:{"class":"resize"},v:{mousedown:"resize"}}],n:50,r:"config.fancy",p:[27,1,716]}]},e.exports=a.extend(r.exports)},{341:341,476:476,478:478}],349:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"section",a:{"class":[{t:4,f:["candystripe"],r:"candystripe",p:[1,17,16]}]},f:[{t:4,f:[{p:[3,5,82],t:7,e:"span",a:{"class":"label",style:[{t:4,f:["color:",{t:2,r:"labelcolor",p:[3,53,130]}],r:"labelcolor",p:[3,32,109]}]},f:[{t:2,r:"label",p:[3,84,161]},":"]}],n:50,r:"label",p:[2,3,64]}," ",{t:4,f:[{t:16,p:[6,5,210]}],n:50,r:"nowrap",p:[5,3,191]},{t:4,n:51,f:[{p:[8,5,235],t:7,e:"div",a:{"class":"content",style:[{t:4,f:["float:right;"],r:"right",p:[8,33,263]}]},f:[{t:16,p:[9,7,304]}]}],r:"nowrap"}]}]},e.exports=a.extend(r.exports)},{341:341}],350:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"subdisplay"},f:[{t:4,f:[{p:[3,5,45],t:7,e:"header",f:[{p:[4,7,60],t:7,e:"h4",f:[{t:2,r:"title",p:[4,11,64]}]}," ",{t:4,f:[{t:16,n:"button",p:[5,21,99]}],n:50,r:"button",p:[5,7,85]}]}],n:50,r:"title",p:[2,3,27]}," ",{p:[8,3,149],t:7,e:"article",f:[{t:16,p:[9,5,163]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],351:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.set("active",this.findComponent("tab").get("name")),this.on("switch",function(e){t.set("active",e.node.textContent.trim())}),this.observe("active",function(e,n,a){for(var r=t.findAllComponents("tab"),i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var p=s;p.set("shown",p.get("name")===e)}})}}}(r),r.exports.template={v:3,t:[" "," ",{p:[20,1,524],t:7,e:"header",f:[{t:4,f:[{p:[22,5,556],t:7,e:"ui-button",a:{pane:[{t:2,r:".",p:[22,22,573]}]},v:{press:"switch"},f:[{t:2,r:".",p:[22,47,598]}]}],n:52,r:"tabs",p:[21,3,536]}]}," ",{p:[25,1,641],t:7,e:"ui-display",f:[{t:8,r:"content",p:[26,3,657]}]}]},r.exports.components=r.exports.components||{};var i={tab:t(352)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,352:352}],352:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:16,p:[2,3,17]}],n:50,r:"shown",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],353:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(477),a=t(476),r=t(478);e.exports={computed:{visualStatus:function(){switch(this.get("config.status")){case n.UI_INTERACTIVE:return"good";case n.UI_UPDATE:return"average";case n.UI_DISABLED:return"bad";default:return"bad"}}},oninit:function(){var t=this,e=r.drag.bind(this),n=function(e){return t.set({drag:!1,x:null,y:null})};this.observe("config.fancy",function(r,i,o){(0,a.winset)(t.get("config.window"),"titlebar",!r&&t.get("config.titlebar")),r?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",n)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",n))}),this.on({drag:function(){this.toggle("drag")},close:function(){(0,a.winset)(this.get("config.window"),"is-visible",!1),window.location.href=(0,a.href)({command:"uiclose "+this.get("config.ref")},"winset")},minimize:function(){(0,a.winset)(this.get("config.window"),"is-minimized",!0)}})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[50,3,1391],t:7,e:"header",a:{"class":"titlebar"},v:{mousedown:"drag"},f:[{p:[51,5,1441],t:7,e:"i",a:{"class":["statusicon fa fa-eye fa-2x ",{t:2,r:"visualStatus",p:[51,42,1478]}]}}," ",{p:[52,5,1505],t:7,e:"span",a:{"class":"title"},f:[{t:16,p:[52,25,1525]}]}," ",{t:4,f:[{p:[54,7,1573],t:7,e:"i",a:{"class":"minimize fa fa-minus fa-2x"},v:{click:"minimize"}}," ",{p:[55,7,1642],t:7,e:"i",a:{"class":"close fa fa-close fa-2x"},v:{click:"close"}}],n:50,r:"config.fancy",p:[53,5,1546]}]}],n:50,r:"config.titlebar",p:[49,1,1365]}]},e.exports=a.extend(r.exports)},{341:341,476:476,477:477,478:478}],354:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";var e=[11,10,9,8];t.exports={data:{userAgent:navigator.userAgent},computed:{ie:function(){if(document.documentMode)return document.documentMode;for(var t in e){var n=document.createElement("div");if(n.innerHTML="",n.getElementsByTagName("span").length)return t}}},oninit:function(){var t=this;this.on("debug",function(){return t.toggle("debug")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[27,3,636],t:7,e:"ui-notice",f:[{p:[28,5,652],t:7,e:"span",f:["You have an old (IE",{t:2,r:"ie",p:[28,30,677]},"), end-of-life (click 'EOL Info' for more information) version of Internet Explorer installed."]},{p:[28,137,784],t:7,e:"br"}," ",{p:[29,5,794],t:7,e:"span",f:["To upgrade, click 'Upgrade IE' to download IE11 from Microsoft."]},{p:[29,81,870],t:7,e:"br"}," ",{p:[30,5,880],t:7,e:"span",f:["If you are unable to upgrade directly, click 'IE VMs' to download a VM with IE11 or Edge from Microsoft."]},{p:[30,122,997],t:7,e:"br"}," ",{p:[31,5,1007],t:7,e:"span",f:["Otherwise, click 'No Frills' below to disable potentially incompatible features (and this message)."]}," ",{p:[32,5,1124],t:7,e:"hr"}," ",{p:[33,5,1134],t:7,e:"ui-button",a:{icon:"close",action:"tgui:nofrills"},f:["No Frills"]}," ",{p:[34,5,1207],t:7,e:"ui-button",a:{icon:"internet-explorer",action:"tgui:link",params:'{"url": "http://windows.microsoft.com/en-us/internet-explorer/download-ie"}'},f:["Upgrade IE"]}," ",{p:[36,5,1381],t:7,e:"ui-button",a:{icon:"edge",action:"tgui:link",params:'{"url": "https://dev.windows.com/en-us/microsoft-edge/tools/vms"}'},f:["IE VMs"]}," ",{p:[38,5,1528],t:7,e:"ui-button",a:{icon:"info",action:"tgui:link",params:'{"url": "https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer"}'},f:["EOL Info"]}," ",{p:[40,5,1699],t:7,e:"ui-button",a:{icon:"bug"},v:{press:"debug"},f:["Debug Info"]}," ",{t:4,f:[{p:[42,7,1785],t:7,e:"hr"}," ",{p:[43,7,1797],t:7,e:"span",f:["Detected: IE",{t:2,r:"ie",p:[43,25,1815]}]},{p:[43,38,1828],t:7,e:"br"}," ",{p:[44,7,1840],t:7,e:"span",f:["User Agent: ",{t:2,r:"userAgent",p:[44,25,1858]}]}],n:50,r:"debug",p:[41,5,1765]}]}],n:50,x:{r:["config.fancy","ie"],s:"_0&&_1&&_1<11"},p:[26,1,596]}]},e.exports=a.extend(r.exports)},{341:341}],355:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},shockState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[22,1,327],t:7,e:"ui-display",a:{title:"Power Status"},f:[{p:[23,2,362],t:7,e:"ui-section",a:{label:"Main"},f:[{p:[24,3,390],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.power.main"],s:"_0(_1)"},p:[24,16,403]}]},f:[{t:2,x:{r:["data.power.main"],s:'_0?"Online":"Offline"'},p:[24,49,436]}]}," ",{t:4,f:["[ ",{p:[26,6,542],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.main_1","data.wires.main_2"],s:"!_0||!_1"},p:[25,3,488]},{t:4,n:51,f:[{t:4,f:["[ ",{t:2,r:"data.power.main_timeleft",p:[29,7,646]}," seconds left ]"],n:50,x:{r:["data.power.main_timeleft"],s:"_0>0"},p:[28,4,603]}],x:{r:["data.wires.main_1","data.wires.main_2"],s:"!_0||!_1"}}," ",{p:[32,3,713],t:7,e:"div",a:{style:"float:right"},f:[{p:[33,4,742],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"disrupt-main",state:[{t:2,x:{r:["data.power.main"],s:'_0?null:"disabled"'},p:[33,63,801]}]},f:["Disrupt"]}]}]}," ",{p:[36,2,887],t:7,e:"ui-section",a:{label:"Backup"},f:[{p:[37,3,917],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.power.backup"],s:"_0(_1)"},p:[37,16,930]}]},f:[{t:2,x:{r:["data.power.backup"],s:'_0?"Online":"Offline"'},p:[37,51,965]}]}," ",{t:4,f:["[ ",{p:[39,6,1077],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.backup_1","data.wires.backup_2"],s:"!_0||!_1"},p:[38,3,1019]},{t:4,n:51,f:[{t:4,f:["[ ",{t:2,r:"data.power.backup_timeleft",p:[42,7,1183]}," seconds left ]"],n:50,x:{r:["data.power.backup_timeleft"],s:"_0>0"},p:[41,4,1138]}],x:{r:["data.wires.backup_1","data.wires.backup_2"],s:"!_0||!_1"}}," ",{p:[45,3,1252],t:7,e:"div",a:{style:"float:right"},f:[{p:[46,4,1281],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"disrupt-backup",state:[{t:2,x:{r:["data.power.backup"],s:'_0?null:"disabled"'},p:[46,65,1342]}]},f:["Disrupt"]}]}]}," ",{p:[49,2,1430],t:7,e:"ui-section",a:{label:"Electrify"},f:[{p:[50,3,1463],t:7,e:"span",a:{"class":[{t:2,x:{r:["shockState","data.shock"],s:"_0(_1)"},p:[50,16,1476]}]},f:[{t:2,x:{r:["data.shock"],s:'_0==2?"Safe":"Electrified"'},p:[50,44,1504]}]}," ",{t:4,f:["[ ",{p:[52,6,1589],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.shock"],s:"!_0"},p:[51,3,1558]},{t:4,n:51,f:[{t:4,f:["[ ",{p:[55,7,1688],t:7,e:"span",a:{"class":"bad"},f:[{t:2,r:"data.shock_timeleft",p:[55,25,1706]}," seconds left"]}," ]"],n:50,x:{r:["data.shock_timeleft"],s:"_0>0"},p:[54,4,1650]}," ",{t:4,f:["[ ",{p:[58,7,1806],t:7,e:"span",a:{"class":"bad"},f:["Permanent"]}," ]"],n:50,x:{r:["data.shock_timeleft"],s:"_0==-1"},p:[57,4,1766]}],x:{r:["data.wires.shock"],s:"!_0"}}," ",{p:[61,3,1866],t:7,e:"div",a:{style:"float:right"},f:[{p:[62,4,1895],t:7,e:"ui-button",a:{icon:"wrench",action:"shock-restore",state:[{t:2,x:{r:["data.wires.shock","data.shock"],s:'_0&&_1==0?null:"disabled"'},p:[62,59,1950]}]},f:["Restore"]}," ",{p:[63,4,2032],t:7,e:"ui-button",a:{icon:"bolt",action:"shock-temp",state:[{t:2,x:{r:["data.wires.shock"],s:"!_0"},p:[63,54,2082]}]},f:["Set (Temporary)"]}," ",{p:[64,4,2136],t:7,e:"ui-button",a:{icon:"bolt",action:"shock-perm",state:[{t:2,x:{r:["data.wires.shock"],s:"!_0"},p:[64,53,2185]}]},f:["Set (Permanent)"]}]}]}]}," ",{p:[68,1,2274],t:7,e:"ui-display",a:{title:"Access & Door Control"},f:[{p:[69,2,2318],t:7,e:"ui-section",a:{label:"ID Scan"},f:[{t:4,f:["[ ",{p:[71,6,2385],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.id_scanner"],s:"!_0"},p:[70,3,2349]}," ",{p:[73,3,2444],t:7,e:"div",a:{style:"float:right"},f:[{p:[74,4,2473],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.id_scanner"],s:"!_0"},p:[74,22,2491]}],icon:"power-off",action:"idscan-on",style:[{t:2,x:{r:["data.id_scanner"],s:'_0?"selected":""'},p:[74,93,2562]}]},f:["Enabled"]}," ",{p:[75,4,2624],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.id_scanner"],s:"!_0"},p:[75,22,2642]}],icon:"close",action:"idscan-off",style:[{t:2,x:{r:["data.id_scanner"],s:'_0?"":"selected"'},p:[75,90,2710]}]},f:["Disabled"]}]}]}," ",{p:[78,2,2795],t:7,e:"ui-section",a:{label:"Emergency Access"},f:[{p:[79,3,2835],t:7,e:"div",a:{style:"float:right"},f:[{p:[80,4,2864],t:7,e:"ui-button",a:{icon:"power-off",action:"emergency-on",style:[{t:2,x:{r:["data.emergency"],s:'_0?"selected":""'},p:[80,61,2921]}]},f:["Enabled"]}," ",{p:[81,4,2982],t:7,e:"ui-button",a:{icon:"close",action:"emergency-off",style:[{t:2,x:{r:["data.emergency"],s:'_0?"":"selected"'},p:[81,58,3036]}]},f:["Disabled"]}]}]}," ",{p:[84,2,3120],t:7,e:"br"}," ",{p:[85,2,3128],t:7,e:"ui-section",a:{label:"Door bolts"},f:[{t:4,f:["[ ",{p:[87,6,3193],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.bolts"],s:"!_0"},p:[86,3,3162]}," ",{p:[89,3,3252],t:7,e:"div",a:{style:"float:right"},f:[{p:[90,4,3281],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.bolts"],s:"!_0"},p:[90,22,3299]}],icon:"unlock",action:"bolt-raise",style:[{t:2,x:{r:["data.locked"],s:'_0?"":"selected"'},p:[90,85,3362]}]},f:["Raised"]}," ",{p:[91,4,3419],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.bolts"],s:"!_0"},p:[91,22,3437]}],icon:"lock",action:"bolt-drop",style:[{t:2,x:{r:["data.locked"],s:'_0?"selected":""'},p:[91,82,3497]}]},f:["Dropped"]}]}]}," ",{p:[94,2,3577],t:7,e:"ui-section",a:{label:"Door bolt lights"},f:[{t:4,f:["[ ",{p:[96,6,3649],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.lights"],s:"!_0"},p:[95,3,3617]}," ",{p:[98,3,3708],t:7,e:"div",a:{style:"float:right"},f:[{p:[99,4,3737],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.lights"],s:"!_0"},p:[99,22,3755]}],icon:"power-off",action:"light-on",style:[{t:2,x:{r:["data.lights"],s:'_0?"selected":""'},p:[99,88,3821]}]},f:["Enabled"]}," ",{p:[100,4,3879],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.lights"],s:"!_0"},p:[100,22,3897]}],icon:"close",action:"light-off",style:[{t:2,x:{r:["data.lights"],s:'_0?"":"selected"'},p:[100,85,3960]}]},f:["Disabled"]}]}]}," ",{p:[103,2,4041],t:7,e:"ui-section",a:{label:"Door force sensors"},f:[{t:4,f:["[ ",{p:[105,6,4113],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.safe"],s:"!_0"},p:[104,3,4083]}," ",{p:[107,3,4172],t:7,e:"div",a:{style:"float:right"},f:[{p:[108,4,4201],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.safe"],s:"!_0"},p:[108,22,4219]}],icon:"power-off",action:"safe-on",style:[{t:2,x:{r:["data.safe"],s:'_0?"selected":""'},p:[108,85,4282]}]},f:["Enabled"]}," ",{p:[109,4,4338],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.safe"],s:"!_0"},p:[109,22,4356]}],icon:"close",action:"safe-off",style:[{t:2,x:{r:["data.safe"],s:'_0?"":"selected"'},p:[109,82,4416]}]},f:["Disabled"]}]}]}," ",{p:[112,2,4495],t:7,e:"ui-section",a:{label:"Door timing safety"},f:[{t:4,f:["[ ",{p:[114,6,4569],t:7,e:"span",a:{"class":"bad"},f:["Wires have been cut"]}," ]"],n:50,x:{r:["data.wires.timing"],s:"!_0"},p:[113,3,4537]}," ",{p:[116,3,4628],t:7,e:"div",a:{style:"float:right"},f:[{p:[117,4,4657],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.timing"],s:"!_0"},p:[117,22,4675]}],icon:"power-off",action:"speed-on",style:[{t:2,x:{r:["data.speed"],s:'_0?"selected":""'},p:[117,88,4741]}]},f:["Enabled"]}," ",{p:[118,4,4798],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.wires.timing"],s:"!_0"},p:[118,22,4816]}],icon:"close",action:"speed-off",style:[{t:2,x:{r:["data.speed"],s:'_0?"":"selected"'},p:[118,85,4879]}]},f:["Disabled"]}]}]}," ",{p:[121,2,4959],t:7,e:"br"}," ",{p:[122,2,4967],t:7,e:"ui-section",a:{label:"Door control"},f:[{t:4,f:["[ ",{p:[124,6,5043],t:7,e:"span",a:{"class":"bad"},f:["Door is ",{t:2,x:{r:["data.locked","data.welded"],s:'(_0?"bolted":"")+(_0&&_1?" and ":"")+(_1?"welded":"")'},p:[124,32,5069]}]}," ]"],n:50,x:{r:["data.locked","data.welded"],s:"_0||_1"},p:[123,3,5003]}," ",{p:[126,3,5202],t:7,e:"div",a:{style:"float:right"},f:[{p:[127,4,5231],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.locked","data.welded","data.opened"],s:'(_0||_1)||(_2&&"disabled")'},p:[127,22,5249]}],icon:"sign-out",action:"open-close"},f:["Open door"]}," ",{p:[128,4,5375],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.locked","data.welded","data.opened"],s:'(_0||_1)||(!_2&&"disabled")'},p:[128,22,5393]}],icon:"sign-in",action:"open-close"},f:["Close door"]}]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],356:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," ",{p:[7,1,261],t:7,e:"ui-notice",f:[{t:4,f:[{p:[9,5,304],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[10,7,346],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[10,24,363]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[10,75,414]}]}]}],n:50,r:"data.siliconUser",p:[8,3,275]},{t:4,n:51,f:[{p:[13,5,502],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,31,528]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[16,1,610],t:7,e:"status"}," ",{t:4,f:[{t:4,f:[{p:[19,7,701],t:7,e:"ui-display",a:{title:"Air Controls"},f:[{p:[20,9,743],t:7,e:"ui-section",f:[{p:[21,11,766],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"exclamation-triangle":"exclamation"'},p:[21,28,783]}],style:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"caution":null'},p:[21,98,853]}],action:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"reset":"alarm"'},p:[22,23,916]}]},f:["Area Atmosphere Alarm"]}]}," ",{p:[24,9,1022],t:7,e:"ui-section",f:[{p:[25,11,1045],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0==3?"exclamation-triangle":"exclamation"'},p:[25,28,1062]}],style:[{t:2,x:{r:["data.mode"],s:'_0==3?"danger":null'},p:[25,96,1130]}],action:"mode",params:['{"mode": ',{t:2,x:{r:["data.mode"],s:"_0==3?1:3"},p:[26,44,1211]},"}"]},f:["Panic Siphon"]}]}," ",{p:[28,9,1295],t:7,e:"br"}," ",{p:[29,9,1309],t:7,e:"ui-section",f:[{p:[30,11,1332],t:7,e:"ui-button",a:{icon:"sign-out",action:"tgui:view",params:'{"screen": "vents"}'},f:["Vent Controls"]}]}," ",{p:[32,9,1463],t:7,e:"ui-section",f:[{p:[33,11,1486],t:7,e:"ui-button",a:{icon:"filter",action:"tgui:view",params:'{"screen": "scrubbers"}'},f:["Scrubber Controls"]}]}," ",{p:[35,9,1623],t:7,e:"ui-section",f:[{p:[36,11,1646],t:7,e:"ui-button",a:{icon:"cog",action:"tgui:view",params:'{"screen": "modes"}'},f:["Operating Mode"]}]}," ",{p:[38,9,1773],t:7,e:"ui-section",f:[{p:[39,11,1796],t:7,e:"ui-button",a:{icon:"bar-chart",action:"tgui:view",params:'{"screen": "thresholds"}'},f:["Alarm Thresholds"]}]}]}],n:50,x:{r:["config.screen"],s:'_0=="home"'},p:[18,3,663]},{t:4,n:51,f:[{t:4,n:50,x:{r:["config.screen"],s:'_0=="vents"'},f:[{p:[43,5,1990],t:7,e:"vents"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&(_0=="scrubbers")'},f:[" ",{p:[45,5,2045],t:7,e:"scrubbers"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&(_0=="modes"))'},f:[" ",{p:[47,5,2100],t:7,e:"modes"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&((!(_0=="modes"))&&(_0=="thresholds")))'},f:[" ",{p:[49,5,2156],t:7,e:"thresholds"}]}],x:{r:["config.screen"],s:'_0=="home"'}}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[17,1,620]}]},r.exports.components=r.exports.components||{};var i={vents:t(362),modes:t(358),thresholds:t(361),status:t(360),scrubbers:t(359)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,358:358,359:359,360:360,361:361,362:362}],357:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-button",a:{icon:"arrow-left",action:"tgui:view",params:'{"screen": "home"}'},f:["Back"]}]},e.exports=a.extend(r.exports)},{341:341}],358:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,111],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Operating Modes",button:0},f:[" ",{t:4,f:[{p:[8,5,161],t:7,e:"ui-section",f:[{p:[9,7,180],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["selected"],s:'_0?"check-square-o":"square-o"'},p:[9,24,197]}],state:[{t:2,x:{r:["selected","danger"],s:'_0?_1?"danger":"selected":null'},p:[10,16,258]}],action:"mode",params:['{"mode": ',{t:2,r:"mode",p:[11,40,351]},"}"]},f:[{t:2,r:"name",p:[11,51,362]}]}]}],n:52,r:"data.modes",p:[7,3,136]}]}]},r.exports.components=r.exports.components||{};var i={back:t(357)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,357:357}],359:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" "," ",{p:{button:[{p:[6,5,180],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Scrubber Controls",button:0},f:[" ",{t:4,f:[{p:[9,5,234],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[9,27,256]}]},f:[{p:[10,7,278],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[11,9,313],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[11,26,330]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[11,68,372]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[12,46,448]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[12,66,468]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[12,80,482]}]}]}," ",{p:[14,7,545],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[15,9,579],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["scrubbing"],s:'_0?"filter":"sign-in"'},p:[15,26,596]}],style:[{t:2,x:{r:["scrubbing"],s:'_0?null:"danger"'},p:[15,71,641]}],action:"scrubbing",params:['{"id_tag": "',{t:2,r:"id_tag",p:[16,50,723]},'", "val": ',{t:2,x:{r:["scrubbing"],s:"+!_0"},p:[16,70,743]},"}"]},f:[{t:2,x:{r:["scrubbing"],s:'_0?"Scrubbing":"Siphoning"'},p:[16,88,761]}]}]}," ",{p:[18,7,841],t:7,e:"ui-section",a:{label:"Range"},f:[{p:[19,9,876],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["widenet"],s:'_0?"expand":"compress"'},p:[19,26,893]}],style:[{t:2,x:{r:["widenet"],s:'_0?"selected":null'},p:[19,70,937]}],action:"widenet",params:['{"id_tag": "',{t:2,r:"id_tag",p:[20,48,1017]},'", "val": ',{t:2,x:{r:["widenet"],s:"+!_0"},p:[20,68,1037]},"}"]},f:[{t:2,x:{r:["widenet"],s:'_0?"Expanded":"Normal"'},p:[20,84,1053]}]}]}," ",{p:[22,7,1127],t:7,e:"ui-section",a:{label:"Filters"},f:[{p:[23,9,1164],t:7,e:"filters"}]}]}],n:52,r:"data.scrubbers",p:[8,3,205]},{t:4,n:51,f:[{p:[27,5,1231],t:7,e:"span",a:{"class":"bad"},f:["Error: No scrubbers connected."]}],r:"data.scrubbers"}]}]},r.exports.components=r.exports.components||{};var i={filters:t(452),back:t(357)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,357:357,452:452}],360:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Air Status"},f:[{t:4,f:[{t:4,f:[{p:[4,7,107],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[4,26,126]}]},f:[{p:[5,6,142],t:7,e:"span",a:{"class":[{t:2,x:{r:["danger_level"],s:'_0==2?"bad":_0==1?"average":"good"'},p:[5,19,155]}]},f:[{t:2,x:{r:["value"],s:"Math.fixed(_0,2)"},p:[6,5,232]},{t:2,r:"unit",p:[6,29,256]}]}]}],n:52,r:"adata.environment_data",p:[3,5,68]}," ",{p:[10,5,313],t:7,e:"ui-section",a:{label:"Local Status"},f:[{p:[11,7,353],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.danger_level"],s:'_0==2?"bad bold":_0==1?"average bold":"good"'},p:[11,20,366]}]},f:[{t:2,x:{r:["data.danger_level"],s:'_0==2?"Danger (Internals Required)":_0==1?"Caution":"Optimal"'},p:[12,6,464]}]}]}," ",{p:[15,5,605],t:7,e:"ui-section",a:{label:"Area Status"},f:[{p:[16,7,644],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.atmos_alarm","data.fire_alarm"],s:'_0||_1?"bad bold":"good"'},p:[16,20,657]}]},f:[{t:2,x:{r:["data.atmos_alarm","fire_alarm"],s:'_0?"Atmosphere Alarm":_1?"Fire Alarm":"Nominal"'},p:[17,8,728]}]}]}],n:50,r:"data.environment_data",p:[2,3,34]},{t:4,n:51,f:[{p:[21,5,856],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[22,7,891],t:7,e:"span",a:{"class":"bad bold"},f:["Cannot obtain air sample for analysis."]}]}],r:"data.environment_data"}," ",{t:4,f:[{p:[26,5,1015],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[27,7,1050],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[25,3,990]}]}]},e.exports=a.extend(r.exports)},{341:341}],361:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.css=" th, td {\n padding-right: 16px;\n text-align: left;\n }",r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,112],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Alarm Thresholds",button:0},f:[" ",{p:[7,3,137],t:7,e:"table",f:[{p:[8,5,149],t:7,e:"thead",f:[{p:[8,12,156],t:7,e:"tr",f:[{p:[9,7,167],t:7,e:"th"}," ",{p:[10,7,183],t:7,e:"th",f:[{p:[10,11,187],t:7,e:"span",a:{"class":"bad"},f:["min2"]}]}," ",{p:[11,7,228],t:7,e:"th",f:[{p:[11,11,232],t:7,e:"span",a:{"class":"average"},f:["min1"]}]}," ",{p:[12,7,277],t:7,e:"th",f:[{p:[12,11,281],t:7,e:"span",a:{"class":"average"},f:["max1"]}]}," ",{p:[13,7,326],t:7,e:"th",f:[{p:[13,11,330],t:7,e:"span",a:{"class":"bad"},f:["max2"]}]}]}]}," ",{p:[15,5,387],t:7,e:"tbody",f:[{t:4,f:[{p:[16,32,426],t:7,e:"tr",f:[{p:[17,9,439],t:7,e:"th",f:[{t:3,r:"name",p:[17,13,443]}]}," ",{t:4,f:[{p:[18,27,485],t:7,e:"td",f:[{p:[19,11,500],t:7,e:"ui-button",a:{action:"threshold",params:['{"env": "',{t:2,r:"env",p:[19,58,547]},'", "var": "',{t:2,r:"val",p:[19,76,565]},'"}']},f:[{t:2,x:{r:["selected"],s:"Math.fixed(_0,2)"},p:[19,87,576]}]}]}],n:52,r:"settings",p:[18,9,467]}]}],n:52,r:"data.thresholds",p:[16,7,401]}]}," ",{p:[23,3,675],t:7,e:"table",f:[]}]}]}," "]},r.exports.components=r.exports.components||{};var i={back:t(357)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,357:357}],362:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,109],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Vent Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,159],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,181]}]},f:[{p:[9,7,203],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,238],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,255]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,297]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,373]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,393]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,407]}]}]}," ",{p:[13,7,470],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,504],t:7,e:"span",f:[{t:2,x:{r:["direction"],s:'_0=="release"?"Pressurizing":"Siphoning"'},p:[14,15,510]}]}]}," ",{p:[16,7,601],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[17,9,649],t:7,e:"ui-button",a:{icon:"sign-in",style:[{t:2,x:{r:["incheck"],s:'_0?"selected":null'},p:[17,42,682]}],action:"incheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[18,48,762]},'", "val": ',{t:2,r:"checks",p:[18,68,782]},"}"]},f:["Internal"]}," ",{p:[19,9,824],t:7,e:"ui-button",a:{icon:"sign-out",style:[{t:2,x:{r:["excheck"],s:'_0?"selected":null'},p:[19,43,858]}],action:"excheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[20,48,938]},'", "val": ',{t:2,r:"checks",p:[20,68,958]},"}"]},f:["External"]}]}," ",{t:4,f:[{p:[23,9,1042],t:7,e:"ui-section",a:{label:"Internal Target Pressure"},f:[{p:[24,11,1098],t:7,e:"ui-button",a:{icon:"pencil",action:"set_internal_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[25,33,1186]},'"}']},f:[{t:2,x:{r:["internal"],s:"Math.fixed(_0)"},p:[25,47,1200]}]}," ",{p:[26,11,1247],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["intdefault"],s:'_0?"disabled":null'},p:[26,44,1280]}],action:"reset_internal_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[27,33,1381]},'"}']},f:["Reset"]}]}],n:50,r:"incheck",p:[22,7,1018]}," ",{t:4,f:[{p:[31,11,1481],t:7,e:"ui-section",a:{label:"External Target Pressure"},f:[{p:[32,13,1539],t:7,e:"ui-button",a:{icon:"pencil",action:"set_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[33,35,1629]},'"}']},f:[{t:2,x:{r:["external"],s:"Math.fixed(_0)"},p:[33,49,1643]}]}," ",{p:[34,13,1692],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["extdefault"],s:'_0?"disabled":null'},p:[34,46,1725]}],action:"reset_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[35,35,1828]},'"}']},f:["Reset"]}]}],n:50,r:"excheck",p:[30,7,1455]}]}],n:52,r:"data.vents",p:[7,3,134]},{t:4,n:51,f:[{p:[40,5,1934],t:7,e:"span",a:{"class":"bad"},f:["Error: No vents connected."]}],r:"data.vents"}]}]},r.exports.components=r.exports.components||{};var i={back:t(357)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,357:357}],363:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.css=" table {\n width: 100%;\n border-spacing: 2px;\n }\n th {\n text-align: left;\n }\n td {\n vertical-align: top;\n }\n td .button {\n margin-top: 4px\n }",r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,15],t:7,e:"ui-section",f:[{p:[3,5,32],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oneAccess"],s:'_0?"unlock":"lock"'},p:[3,22,49]}],action:"one_access"},f:[{t:2,x:{r:["data.oneAccess"],s:'_0?"One":"All"'},p:[3,82,109]}," Required"]}," ",{p:[4,5,169],t:7,e:"ui-button",a:{icon:"refresh",action:"clear"},f:["Clear"]}]}," ",{p:[6,3,246],t:7,e:"hr"}," ",{p:[7,3,254],t:7,e:"table",f:[{p:[8,3,264],t:7,e:"thead",f:[{p:[9,4,275],t:7,e:"tr",f:[{t:4,f:[{p:[10,5,306],t:7,e:"th",f:[{p:[10,9,310],t:7,e:"span",a:{"class":"highlight bold"},f:[{t:2,r:"name",p:[10,38,339]}]}]}],n:52,r:"data.regions",p:[9,8,279]}]}]}," ",{p:[13,3,391],t:7,e:"tbody",f:[{p:[14,4,402],t:7,e:"tr",f:[{t:4,f:[{p:[15,5,433],t:7,e:"td",f:[{t:4,f:[{p:[16,11,466],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["req"],s:'_0?"check-square-o":"square-o"'},p:[16,28,483]}],style:[{t:2,x:{r:["req"],s:'_0?"selected":null'},p:[16,76,531]}],action:"set",params:['{"access": "',{t:2,r:"id",p:[17,46,605]},'"}']},f:[{t:2,r:"name",p:[17,56,615]}]}," ",{p:[18,9,644],t:7,e:"br"}],n:52,r:"accesses",p:[15,9,437]}]}],n:52,r:"data.regions",p:[14,8,406]}]}]}]}," ",{p:[23,2,709],t:7,e:"hr"}," ",{p:[24,2,716],t:7,e:"span",a:{"class":"highlight bold"},f:["Unrestricted Access:"]}," ",{p:[25,2,774],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.unres_direction"],s:'_0&1?"check-square-o":"square-o"'},p:[25,19,791]}],style:[{t:2,x:{r:["data.unres_direction"],s:'_0&1?"selected":null'},p:[25,88,860]}],action:"direc_set",params:'{"unres_direction": "1"}'},f:["North"]}," ",{p:[26,2,982],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.unres_direction"],s:'_0&4?"check-square-o":"square-o"'},p:[26,19,999]}],style:[{t:2,x:{r:["data.unres_direction"],s:'_0&4?"selected":null'},p:[26,88,1068]}],action:"direc_set",params:'{"unres_direction": "4"}'},f:["East"]}," ",{p:[27,2,1189],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.unres_direction"],s:'_0&2?"check-square-o":"square-o"'},p:[27,19,1206]}],style:[{t:2,x:{r:["data.unres_direction"],s:'_0&2?"selected":null' +},p:[27,88,1275]}],action:"direc_set",params:'{"unres_direction": "2"}'},f:["South"]}," ",{p:[28,2,1397],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.unres_direction"],s:'_0&8?"check-square-o":"square-o"'},p:[28,19,1414]}],style:[{t:2,x:{r:["data.unres_direction"],s:'_0&8?"selected":null'},p:[28,88,1483]}],action:"direc_set",params:'{"unres_direction": "8"}'},f:["West"]}]}," "]},e.exports=a.extend(r.exports)},{341:341}],364:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}}},computed:{malfAction:function(){switch(this.get("data.malfStatus")){case 1:return"hack";case 2:return"occupy";case 3:return"deoccupy"}},malfButton:function(){switch(this.get("data.malfStatus")){case 1:return"Override Programming";case 2:case 4:return"Shunt Core Process";case 3:return"Return to Main Core"}},malfIcon:function(){switch(this.get("data.malfStatus")){case 1:return"terminal";case 2:case 4:return"caret-square-o-down";case 3:return"caret-square-o-left"}},powerCellStatusState:function(){var t=this.get("data.powerCellStatus");return t>50?"good":t>25?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[46,2,1161],t:7,e:"ui-notice",f:[{p:[47,3,1175],t:7,e:"b",f:[{p:[47,6,1178],t:7,e:"h3",f:["SYSTEM FAILURE"]}]}," ",{p:[48,3,1208],t:7,e:"i",f:["I/O regulators malfunction detected! Waiting for system reboot..."]},{p:[48,75,1280],t:7,e:"br"}," Automatic reboot in ",{t:2,r:"data.failTime",p:[49,23,1307]}," seconds... ",{p:[50,3,1338],t:7,e:"ui-button",a:{icon:"refresh",action:"reboot"},f:["Reboot Now"]},{p:[50,67,1402],t:7,e:"br"},{p:[50,71,1406],t:7,e:"br"},{p:[50,75,1410],t:7,e:"br"}]}],n:50,r:"data.failTime",p:[45,1,1138]},{t:4,n:51,f:[{p:[53,2,1439],t:7,e:"ui-notice",f:[{t:4,f:[{p:[55,3,1481],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[56,5,1521],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[56,22,1538]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[56,73,1589]}]}]}],n:50,r:"data.siliconUser",p:[54,4,1454]},{t:4,n:51,f:[{p:[59,3,1674],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[59,29,1700]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[62,2,1785],t:7,e:"ui-display",a:{title:"Power Status"},f:[{p:[63,4,1822],t:7,e:"ui-section",a:{label:"Main Breaker"},f:[{t:4,f:[{p:[65,5,1903],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isOperating"],s:'_0?"good":"bad"'},p:[65,18,1916]}]},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[65,57,1955]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[64,3,1858]},{t:4,n:51,f:[{p:[67,5,2013],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[67,22,2030]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[67,75,2083]}],action:"breaker"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[68,21,2145]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}," ",{p:[71,4,2223],t:7,e:"ui-section",a:{label:"External Power"},f:[{p:[72,3,2261],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.externalPower"],s:"_0(_1)"},p:[72,16,2274]}]},f:[{t:2,x:{r:["data.externalPower"],s:'_0==2?"Good":_0==1?"Low":"None"'},p:[72,52,2310]}]}]}," ",{p:[74,4,2417],t:7,e:"ui-section",a:{label:"Power Cell"},f:[{t:4,f:[{p:[76,5,2492],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerCellStatus",p:[76,38,2525]}],state:[{t:2,r:"powerCellStatusState",p:[76,71,2558]}]},f:[{t:2,x:{r:["adata.powerCellStatus"],s:"Math.fixed(_0)"},p:[76,97,2584]},"%"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[75,3,2451]},{t:4,n:51,f:[{p:[78,5,2647],t:7,e:"span",a:{"class":"bad"},f:["Removed"]}],x:{r:["data.powerCellStatus"],s:"_0!=null"}}]}," ",{t:4,f:[{p:[82,3,2749],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{t:4,f:[{p:[84,4,2830],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.chargeMode"],s:'_0?"good":"bad"'},p:[84,17,2843]}]},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[84,55,2881]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[83,5,2786]},{t:4,n:51,f:[{p:[86,4,2941],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.chargeMode"],s:'_0?"refresh":"close"'},p:[86,21,2958]}],style:[{t:2,x:{r:["data.chargeMode"],s:'_0?"selected":null'},p:[86,71,3008]}],action:"charge"},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[87,22,3070]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}," [",{p:[90,6,3147],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.chargingStatus"],s:"_0(_1)"},p:[90,19,3160]}]},f:[{t:2,x:{r:["data.chargingStatus"],s:'_0==2?"Fully Charged":_0==1?"Charging":"Not Charging"'},p:[90,56,3197]}]},"]"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[81,4,2710]}]}," ",{p:[94,2,3352],t:7,e:"ui-display",a:{title:"Power Channels"},f:[{t:4,f:[{p:[96,3,3422],t:7,e:"ui-section",a:{label:[{t:2,r:"title",p:[96,22,3441]}],nowrap:0},f:[{p:[97,5,3464],t:7,e:"div",a:{"class":"content"},f:[{t:2,rx:{r:"adata.powerChannels",m:[{t:30,n:"@index"},"powerLoad"]},p:[97,26,3485]}]}," ",{p:[98,5,3537],t:7,e:"div",a:{"class":"content"},f:[{p:[98,26,3558],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0>=2?"good":"bad"'},p:[98,39,3571]}]},f:[{t:2,x:{r:["status"],s:'_0>=2?"On":"Off"'},p:[98,73,3605]}]}]}," ",{p:[99,5,3653],t:7,e:"div",a:{"class":"content"},f:["[",{p:[99,27,3675],t:7,e:"span",f:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"Auto":"Manual"'},p:[99,33,3681]}]},"]"]}," ",{p:[100,5,3750],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{t:4,f:[{p:[102,6,3841],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"selected":null'},p:[102,39,3874]}],action:"channel",params:[{t:2,r:"topicParams.auto",p:[103,30,3955]}]},f:["Auto"]}," ",{p:[104,6,3999],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["status"],s:'_0==2?"selected":null'},p:[104,41,4034]}],action:"channel",params:[{t:2,r:"topicParams.on",p:[105,13,4100]}]},f:["On"]}," ",{p:[106,6,4140],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["status"],s:'_0==0?"selected":null'},p:[106,37,4171]}],action:"channel",params:[{t:2,r:"topicParams.off",p:[107,13,4237]}]},f:["Off"]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[101,4,3795]}]}]}],n:52,r:"data.powerChannels",p:[95,4,3391]}," ",{p:[112,4,4328],t:7,e:"ui-section",a:{label:"Total Load"},f:[{p:[113,3,4362],t:7,e:"span",a:{"class":"bold"},f:[{t:2,r:"adata.totalLoad",p:[113,22,4381]}]}]}]}," ",{t:4,f:[{p:[117,4,4469],t:7,e:"ui-display",a:{title:"System Overrides"},f:[{p:[118,3,4509],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"overload"},f:["Overload"]}," ",{t:4,f:[{p:[120,5,4608],t:7,e:"ui-button",a:{icon:[{t:2,r:"malfIcon",p:[120,22,4625]}],state:[{t:2,x:{r:["data.malfStatus"],s:'_0==4?"disabled":null'},p:[120,43,4646]}],action:[{t:2,r:"malfAction",p:[120,97,4700]}]},f:[{t:2,r:"malfButton",p:[120,113,4716]}]}],n:50,r:"data.malfStatus",p:[119,3,4580]}]}],n:50,r:"data.siliconUser",p:[116,2,4441]}," ",{p:[124,2,4780],t:7,e:"ui-notice",f:[{p:[125,4,4795],t:7,e:"ui-section",a:{label:"Emergency Light Fallback"},f:[{t:4,f:[{p:[127,8,4894],t:7,e:"span",f:[{t:2,x:{r:["data.emergencyLights"],s:'_0?"Enabled":"Disabled"'},p:[127,14,4900]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[126,6,4846]},{t:4,n:51,f:[{p:[129,8,4978],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"emergency_lighting"},f:[{t:2,x:{r:["data.emergencyLights"],s:'_0?"Enabled":"Disabled"'},p:[129,66,5036]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}," ",{p:[133,2,5143],t:7,e:"ui-notice",f:[{p:[134,4,5158],t:7,e:"ui-section",a:{label:"Night Shift Lighting"},f:[{t:4,f:[{p:[136,8,5253],t:7,e:"span",f:[{t:2,x:{r:["data.nightshiftLights"],s:'_0?"Enabled":"Disabled"'},p:[136,14,5259]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[135,6,5205]},{t:4,n:51,f:[{p:[138,8,5338],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"toggle_nightshift"},f:[{t:2,x:{r:["data.nightshiftLights"],s:'_0?"Enabled":"Disabled"'},p:[138,65,5395]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}," ",{p:[142,2,5503],t:7,e:"ui-notice",f:[{p:[143,4,5518],t:7,e:"ui-section",a:{label:"Cover Lock"},f:[{t:4,f:[{p:[145,5,5597],t:7,e:"span",f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[145,11,5603]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[144,3,5552]},{t:4,n:51,f:[{p:[147,5,5673],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.coverLocked"],s:'_0?"lock":"unlock"'},p:[147,22,5690]}],action:"cover"},f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[147,79,5747]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}],r:"data.failTime"}]},e.exports=a.extend(r.exports)},{341:341}],365:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Alarms"},f:[{p:[2,3,31],t:7,e:"ul",f:[{t:4,f:[{p:[4,7,72],t:7,e:"li",f:[{p:[4,11,76],t:7,e:"ui-button",a:{icon:"close",style:"danger",action:"clear",params:['{"zone": "',{t:2,r:".",p:[4,83,148]},'"}']},f:[{t:2,r:".",p:[4,92,157]}]}]}],n:52,r:"data.priority",p:[3,5,41]},{t:4,n:51,f:[{p:[6,7,201],t:7,e:"li",f:[{p:[6,11,205],t:7,e:"span",a:{"class":"good"},f:["No Priority Alerts"]}]}],r:"data.priority"}," ",{t:4,f:[{p:[9,7,303],t:7,e:"li",f:[{p:[9,11,307],t:7,e:"ui-button",a:{icon:"close",style:"caution",action:"clear",params:['{"zone": "',{t:2,r:".",p:[9,84,380]},'"}']},f:[{t:2,r:".",p:[9,93,389]}]}]}],n:52,r:"data.minor",p:[8,5,275]},{t:4,n:51,f:[{p:[11,7,433],t:7,e:"li",f:[{p:[11,11,437],t:7,e:"span",a:{"class":"good"},f:["No Minor Alerts"]}]}],r:"data.minor"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],366:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.tank","data.sensors.0.long_name"],s:"_0?_1:null"},p:[1,20,19]}]},f:[{t:4,f:[{p:[3,5,102],t:7,e:"ui-subdisplay",a:{title:[{t:2,x:{r:["data.tank","long_name"],s:"!_0?_1:null"},p:[3,27,124]}]},f:[{p:[4,7,167],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[5,3,200],t:7,e:"span",f:[{t:2,x:{r:["pressure"],s:"Math.fixed(_0,2)"},p:[5,9,206]}," kPa"]}]}," ",{t:4,f:[{p:[8,9,302],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[9,11,346],t:7,e:"span",f:[{t:2,x:{r:["temperature"],s:"Math.fixed(_0,2)"},p:[9,17,352]}," K"]}]}],n:50,r:"temperature",p:[7,7,273]}," ",{t:4,f:[{p:[13,9,462],t:7,e:"ui-section",a:{label:[{t:2,r:"id",p:[13,28,481]}]},f:[{p:[14,5,495],t:7,e:"span",f:[{t:2,x:{r:["."],s:"Math.fixed(_0,2)"},p:[14,11,501]},"%"]}]}],n:52,i:"id",r:"gases",p:[12,4,434]}]}],n:52,r:"adata.sensors",p:[2,3,73]}]}," ",{t:4,f:[{p:{button:[{p:[23,5,704],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}]},t:7,e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[25,5,792],t:7,e:"ui-section",a:{label:"Input Injector"},f:[{p:[26,7,835],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputting"],s:'_0?"power-off":"close"'},p:[26,24,852]}],style:[{t:2,x:{r:["data.inputting"],s:'_0?"selected":null'},p:[26,75,903]}],action:"input"},f:[{t:2,x:{r:["data.inputting"],s:'_0?"Injecting":"Off"'},p:[27,9,968]}]}]}," ",{p:[29,5,1044],t:7,e:"ui-section",a:{label:"Input Rate"},f:[{p:[30,7,1083],t:7,e:"ui-button",a:{icon:"pencil",action:"rate"},f:[{t:2,x:{r:["adata.inputRate"],s:"Math.round(_0)"},p:[30,46,1122]}," L/s"]}]}," ",{p:[32,5,1194],t:7,e:"ui-section",a:{label:"Output Regulator"},f:[{p:[33,7,1239],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputting"],s:'_0?"power-off":"close"'},p:[33,24,1256]}],style:[{t:2,x:{r:["data.outputting"],s:'_0?"selected":null'},p:[33,76,1308]}],action:"output"},f:[{t:2,x:{r:["data.outputting"],s:'_0?"Open":"Closed"'},p:[34,9,1375]}]}]}," ",{p:[36,5,1450],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[37,7,1494],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure"},f:[{t:2,x:{r:["adata.outputPressure"],s:"Math.round(_0)"},p:[37,50,1537]}," kPa"]}]}]}],n:50,r:"data.tank",p:[20,1,618]}]},e.exports=a.extend(r.exports)},{341:341}],367:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,15],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,46],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,63]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,107]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,161]}]}]}," ",{p:[6,3,218],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,259],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,353],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,383]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,510],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[9,11,516]}," kPa"]}]}," ",{p:[11,3,576],t:7,e:"ui-section",a:{label:"Filter"},f:[{t:4,f:[{p:[13,7,642],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[13,25,660]}],action:"filter",params:['{"mode": ',{t:2,r:"id",p:[14,42,735]},"}"]},f:[{t:2,r:"name",p:[14,51,744]}]}],n:52,r:"data.filter_types",p:[12,5,608]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],368:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,15],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,46],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,63]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,107]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,161]}]}]}," ",{p:[6,3,218],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,259],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,353],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.set_pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,383]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,514],t:7,e:"span",f:[{t:2,x:{r:["adata.set_pressure"],s:"Math.round(_0)"},p:[9,11,520]}," kPa"]}]}," ",{p:[11,3,584],t:7,e:"ui-section",a:{label:"Node 1"},f:[{p:[12,5,616],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[12,44,655]}],action:"node1",params:'{"concentration": -0.1}'}}," ",{p:[14,5,770],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[14,39,804]}],action:"node1",params:'{"concentration": -0.01}'}}," ",{p:[16,5,920],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[16,38,953]}],action:"node1",params:'{"concentration": 0.01}'}}," ",{p:[18,5,1070],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[18,43,1108]}],action:"node1",params:'{"concentration": 0.1}'}}," ",{p:[20,5,1224],t:7,e:"span",f:[{t:2,x:{r:["adata.node1_concentration"],s:"Math.round(_0)"},p:[20,11,1230]},"%"]}]}," ",{p:[22,3,1298],t:7,e:"ui-section",a:{label:"Node 2"},f:[{p:[23,5,1330],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[23,44,1369]}],action:"node2",params:'{"concentration": -0.1}'}}," ",{p:[25,5,1484],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[25,39,1518]}],action:"node2",params:'{"concentration": -0.01}'}}," ",{p:[27,5,1634],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[27,38,1667]}],action:"node2",params:'{"concentration": 0.01}'}}," ",{p:[29,5,1784],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[29,43,1822]}],action:"node2",params:'{"concentration": 0.1}'}}," ",{p:[31,5,1938],t:7,e:"span",f:[{t:2,x:{r:["adata.node2_concentration"],s:"Math.round(_0)"},p:[31,11,1944]},"%"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],369:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,15],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,46],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,63]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,107]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,161]}]}]}," ",{t:4,f:[{p:[7,5,244],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{p:[8,7,285],t:7,e:"ui-button",a:{icon:"pencil",action:"rate",params:'{"rate": "input"}'},f:["Set"]}," ",{p:[9,7,373],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.rate","data.max_rate"],s:'_0==_1?"disabled":null'},p:[9,37,403]}],action:"rate",params:'{"rate": "max"}'},f:["Max"]}," ",{p:[10,7,516],t:7,e:"span",f:[{t:2,x:{r:["adata.rate"],s:"Math.round(_0)"},p:[10,13,522]}," L/s"]}]}],n:50,r:"data.max_rate",p:[6,3,218]},{t:4,n:51,f:[{p:[13,5,593],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,636],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,732],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,762]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,891],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,897]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{341:341}],370:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:["Rename"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"data.borg.name",p:[1,20,19]}],button:0},f:[" ",{p:[5,2,145],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[6,4,176],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.emagged"],s:'_0?"check-square-o":"square-o"'},p:[6,21,193]}],style:[{t:2,x:{r:["data.borg.emagged"],s:'_0?"selected":null'},p:[6,83,255]}],action:"toggle_emagged"},f:["Emagged"]}," ",{p:[7,4,345],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.lockdown"],s:'_0?"check-square-o":"square-o"'},p:[7,21,362]}],style:[{t:2,x:{r:["data.borg.lockdown"],s:'_0?"selected":null'},p:[7,84,425]}],action:"toggle_lockdown"},f:["Locked down"]}," ",{p:[8,4,521],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.scrambledcodes"],s:'_0?"check-square-o":"square-o"'},p:[8,21,538]}],style:[{t:2,x:{r:["data.borg.scrambledcodes"],s:'_0?"selected":null'},p:[8,90,607]}],action:"toggle_scrambledcodes"},f:["Scrambled codes"]}]}," ",{p:[10,2,732],t:7,e:"ui-section",a:{label:"Charge"},f:[{t:4,f:[{p:[12,4,792],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.cell.maxcharge",p:[12,25,813]}],value:[{t:2,r:"data.cell.charge",p:[12,57,845]}]},f:[{t:2,x:{r:["data.cell.charge"],s:"Math.round(_0)"},p:[12,79,867]}," / ",{t:2,x:{r:["data.cell.maxcharge"],s:"Math.round(_0)"},p:[12,114,902]}]}],n:50,x:{r:["data.cell.missing"],s:"!_0"},p:[11,3,762]},{t:4,n:51,f:[{p:[14,4,961],t:7,e:"span",a:{"class":"warning"},f:["Cell missing"]},{p:[14,45,1002],t:7,e:"br"}],x:{r:["data.cell.missing"],s:"!_0"}}," ",{p:[16,3,1020],t:7,e:"ui-button",a:{icon:"pencil",action:"set_charge"},f:["Set"]},{p:[16,63,1080],t:7,e:"ui-button",a:{icon:"eject",action:"change_cell"},f:["Change"]},{p:[16,126,1143],t:7,e:"ui-button",a:{icon:"trash","class":"bad",action:"remove_cell"},f:["Remove"]}]}," ",{p:[18,2,1235],t:7,e:"ui-section",a:{label:"Radio channels"},f:[{t:4,f:[{p:[20,4,1300],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["installed"],s:'_0?"check-square-o":"square-o"'},p:[20,21,1317]}],style:[{t:2,x:{r:["installed"],s:'_0?"selected":null'},p:[20,75,1371]}],action:"toggle_radio",params:['{"channel": "',{t:2,r:"name",p:[20,154,1450]},'"}']},f:[{t:2,r:"name",p:[20,166,1462]}]}],n:52,r:"data.channels",p:[19,3,1273]}]}," ",{p:[23,2,1511],t:7,e:"ui-section",a:{label:"Module"},f:[{t:4,f:[{p:[25,4,1567],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.active_module","type"],s:'_0==_1?"check-square-o":"square-o"'},p:[25,21,1584]}],style:[{t:2,x:{r:["data.borg.active_module","type"],s:'_0==_1?"selected":null'},p:[25,97,1660]}],action:"setmodule",params:['{"module": "',{t:2,r:"type",p:[25,193,1756]},'"}']},f:[{t:2,r:"name",p:[25,205,1768]}]}],n:52,r:"data.modules",p:[24,3,1541]}]}," ",{p:[28,2,1817],t:7,e:"ui-section",a:{label:"Upgrades"},f:[{t:4,f:[{p:[30,4,1876],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["installed"],s:'_0?"check-square-o":"square-o"'},p:[30,21,1893]}],style:[{t:2,x:{r:["installed"],s:'_0?"selected":null'},p:[30,75,1947]}],action:"toggle_upgrade",params:['{"upgrade": "',{t:2,r:"type",p:[30,155,2027]},'"}']},f:[{t:2,r:"name",p:[30,167,2039]}]}],n:52,r:"data.upgrades",p:[29,3,1849]}]}," ",{p:[33,2,2088],t:7,e:"ui-section",a:{label:"Master AI"},f:[{t:4,f:[{p:[35,4,2143],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["connected"],s:'_0?"check-square-o":"square-o"'},p:[35,21,2160]}],style:[{t:2,x:{r:["connected"],s:'_0?"selected":null'},p:[35,75,2214]}],action:"slavetoai",params:['{"slavetoai": "',{t:2,r:"ref",p:[35,152,2291]},'"}']},f:[{t:2,r:"name",p:[35,163,2302]}]}],n:52,r:"data.ais",p:[34,3,2121]}]}]}," ",{p:{button:[{p:[41,3,2420],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.borg.lawupdate"],s:'_0?"check-square-o":"square-o"'},p:[41,20,2437]}],style:[{t:2,x:{r:["data.borg.lawupdate"],s:'_0?"selected":null'},p:[41,84,2501]}],action:"toggle_lawupdate"},f:["Lawsync"]}]},t:7,e:"ui-display",a:{title:"Laws",button:0},f:[" ",{t:4,f:[{p:[44,3,2629],t:7,e:"p",f:[{t:2,r:".",p:[44,6,2632]}]}],n:52,r:"data.laws",p:[43,2,2607]}]}]},e.exports=a.extend(r.exports)},{341:341}],371:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,65],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,98]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,143]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,179]}]}," ",{p:[4,5,230],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,282]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,327]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,405],t:7,e:"ui-section",f:[{p:[7,5,422],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,511],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,595],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,601]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,635]}]}," ",{p:[10,5,680],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,762],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,863],t:7,e:"ui-section",f:[{p:[14,7,882],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,985],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1090],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],372:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,22],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,38]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,77],t:7,e:"ui-display",a:{title:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,160],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,192],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,242]}]}]}," ",{p:[11,3,288],t:7,e:"ui-section",a:{label:"Controls"},f:[{t:4,f:[{p:[13,3,344],t:7,e:"ui-notice",f:[{p:[14,4,359],t:7,e:"span",f:["Bluespace Artillery firing protocols must be globally unlocked from two keycard authentication devices first!"]}]}],n:50,x:{r:["data.unlocked"],s:"!_0"},p:[12,2,319]},{t:4,n:51,f:[{p:[17,3,509],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[17,36,542]}],action:"fire"},f:["FIRE!"]}],x:{r:["data.unlocked"],s:"!_0"}}]}],n:50,r:"data.connected",p:[7,3,135]}," ",{t:4,f:[{p:[22,3,673],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[23,7,712],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[21,3,647]}]}]},e.exports=a.extend(r.exports)},{341:341}],373:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,14],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,34]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,180],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,259],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,293],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,299]}," kPa"]}]}," ",{p:[11,3,363],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,393],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,406]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,451]}]}]}," ",{t:4,f:[{p:[15,3,559],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,593],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,610]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,664]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,705]}]}]}],n:50,r:"data.isPrototype",p:[14,3,531]}]}," ",{p:[22,1,818],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,847],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,889],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,902]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,936]}],value:[{t:2,r:"data.releasePressure",p:[25,14,978]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1004]}," kPa"]}]}," ",{p:[27,3,1073],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1117],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1150]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1304],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1335]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1480],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1574],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1604]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1763],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1794],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1811]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1864]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1957]}]}]}]}," ",{t:4,f:[{p:[42,1,2049],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2112],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2152],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2185]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2312],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2343]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2472],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2504]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2587],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2617]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2091]}," ",{p:[55,3,2779],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2811],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2844]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2913]}]}," ",{p:[59,2,2959],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3005],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3011]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2022]},{p:{button:[{t:4,f:[{p:[69,7,3209],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3240]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3175]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3370],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3400]}]}," ",{p:[76,3,3444],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3477]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3340]},{t:4,n:51,f:[{p:[80,3,3556],t:7,e:"ui-section",f:[{p:[81,4,3572],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{341:341}],374:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,158],t:7,e:"ui-display",a:{title:"Cargo"},f:[{p:[12,3,188],t:7,e:"ui-section",a:{label:"Shuttle"},f:[{t:4,f:[{p:[14,7,270],t:7,e:"ui-button",a:{action:"send"},f:[{t:2,r:"data.location",p:[14,32,295]}]}],n:50,x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"},p:[13,5,222]},{t:4,n:51,f:[{p:[16,7,346],t:7,e:"span",f:[{t:2,r:"data.location",p:[16,13,352]}]}],x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"}}]}," ",{p:[19,3,410],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[20,5,444],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[20,11,450]}]}]}," ",{p:[22,3,506],t:7,e:"ui-section",a:{label:"CentCom Message"},f:[{p:[23,7,550],t:7,e:"span",f:[{t:2,r:"data.message",p:[23,13,556]}]}]}," ",{t:4,f:[{p:[26,5,644],t:7,e:"ui-section",a:{label:"Loan"},f:[{t:4,f:[{p:[28,9,716],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.away","data.docked"],s:'_0&&_1?null:"disabled"'},p:[29,17,744]}],action:"loan"},f:["Loan Shuttle"]}],n:50,x:{r:["data.loan_dispatched"],s:"!_0"},p:[27,7,677]},{t:4,n:51,f:[{p:[32,9,868],t:7,e:"span",a:{"class":"bad"},f:["Loaned to CentCom"]}],x:{r:["data.loan_dispatched"],s:"!_0"}}]}],n:50,x:{r:["data.loan","data.requestonly"],s:"_0&&!_1"},p:[25,3,600]}]}," ",{t:4,f:[{p:{button:[{p:[40,7,1066],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.cart.length"],s:'_0?null:"disabled"'},p:[40,38,1097]}],action:"clear"},f:["Clear"]}]},t:7,e:"ui-display",a:{title:"Cart",button:0},f:[" ",{t:4,f:[{p:[43,7,1222],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[44,9,1263],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[44,31,1285]}]}," ",{p:[45,9,1307],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[45,30,1328]}]}," ",{p:[46,9,1354],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[46,30,1375]}," Credits"]}," ",{p:[47,9,1407],t:7,e:"div",a:{"class":"content"},f:[{p:[48,11,1440],t:7,e:"ui-button",a:{icon:"minus",action:"remove", +params:['{"id": "',{t:2,r:"id",p:[48,67,1496]},'"}']}}]}," ",{t:4,f:[{p:[51,8,1554],t:7,e:"div",a:{"class":"content"},f:[{p:[51,29,1575],t:7,e:"b",f:["(Paid privately)"]}]}],n:50,r:"paid",p:[50,9,1533]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[55,7,1662],t:7,e:"span",f:["Nothing in Cart"]}],r:"data.cart"}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[37,1,972]},{p:{button:[{t:4,f:[{p:[62,7,1831],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[62,38,1862]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[61,5,1798]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[66,5,2004],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[67,7,2043],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[67,29,2065]}]}," ",{p:[68,7,2085],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[68,28,2106]}]}," ",{p:[69,7,2130],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[69,28,2151]}," Credits"]}," ",{p:[70,7,2181],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[70,31,2205]}]}," ",{p:[71,7,2230],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[71,37,2260]}]}," ",{t:4,f:[{p:[73,9,2319],t:7,e:"div",a:{"class":"content"},f:[{p:[74,11,2352],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[74,68,2409]},'"}']}}," ",{p:[75,11,2432],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[75,65,2486]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[72,7,2284]}]}],n:52,r:"data.requests",p:[65,3,1975]},{t:4,n:51,f:[{p:[80,7,2569],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[83,1,2625],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[83,16,2640]}]},f:[{t:4,f:[{p:[85,5,2683],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[85,16,2694]}]},f:[{t:4,f:[{p:[87,9,2737],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[87,28,2756]}],candystripe:0,right:0},f:[{p:[88,11,2796],t:7,e:"ui-button",a:{tooltip:[{t:2,r:"desc",p:[88,31,2816]}],"tooltip-side":"left",action:"add",params:['{"id": "',{t:2,r:"id",p:[88,90,2875]},'","self_paid": "0"}']},f:[{t:2,r:"cost",p:[88,117,2902]}," Credits"]}," ",{p:[89,5,2936],t:7,e:"ui-button",a:{tooltip:"Pay with your bank account instead of the cargo budget. Costs 10% extra for handling fees.","tooltip-side":"left",action:"add",params:['{"id": "',{t:2,r:"id",p:[89,166,3097]},'","self_paid": "1"}']},f:["Buy Directly"]}]}],n:52,r:"packs",p:[86,7,2712]}]}],n:52,r:"data.supplies",p:[84,3,2654]}]}]},e.exports=a.extend(r.exports)},{341:341}],375:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[12,1,163],t:7,e:"ui-notice",f:[{t:4,f:[{p:[14,5,207],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[15,7,249],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[15,24,266]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[15,75,317]}]}]}],n:50,r:"data.siliconUser",p:[13,3,177]},{t:4,n:51,f:[{p:[18,5,405],t:7,e:"span",f:["Swipe a QM-Level ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[18,39,439]}," this interface."]}],r:"data.siliconUser"}]}," ",{t:4,f:[{p:[23,3,546],t:7,e:"ui-display",a:{title:"Express Cargo Console"},f:[{p:[25,5,594],t:7,e:"ui-section",a:{label:"Landing Location"},f:[{p:[26,7,638],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.usingBeacon"],s:'_0?null:"selected"'},p:[26,25,656]}],action:"LZCargo"},f:["Cargo Bay"]}," ",{p:[27,7,744],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.hasBeacon","data.usingBeacon"],s:'_0?_1?"selected":null:"disabled"'},p:[27,25,762]}],action:"LZBeacon"},f:[{t:2,r:"data.beaconzone",p:[27,116,853]}," (",{t:2,r:"data.beaconName",p:[27,137,874]},")"]}," ",{p:[28,7,913],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.canBuyBeacon"],s:'_0?null:"disabled"'},p:[28,25,931]}],action:"printBeacon"},f:[{t:2,r:"data.printMsg",p:[28,90,996]}]}]}," ",{p:[31,5,1049],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[32,7,1084],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[32,13,1090]}]}]}," ",{p:[35,5,1149],t:7,e:"ui-section",a:{label:"Notice"},f:[{p:[36,7,1183],t:7,e:"span",f:[{t:2,r:"data.message",p:[36,13,1189]}]}]}]}," ",{p:[39,3,1249],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[39,18,1264]}]},f:[{t:4,f:[{p:[41,7,1309],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[41,18,1320]}]},f:[{t:4,f:[{p:[43,11,1365],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[43,30,1384]}],candystripe:0,right:0},f:[{p:[44,13,1425],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.canBeacon"],s:'_0?null:"disabled"'},p:[44,31,1443]}],tooltip:[{t:2,r:"desc",p:[44,80,1492]}],"tooltip-side":"left",action:"add",params:['{"id": "',{t:2,r:"id",p:[44,139,1551]},'"}']},f:[{t:2,r:"cost",p:[44,149,1561]}," Credits ",{t:2,r:"data.beaconError",p:[44,166,1578]}]}]}],n:52,r:"packs",p:[42,9,1339]}]}],n:52,r:"data.supplies",p:[40,5,1279]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[22,1,522]}]},e.exports=a.extend(r.exports)},{341:341}],376:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Cellular Emporium",button:0},f:[{p:[2,3,48],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,81]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,166],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,222]}]}]}," ",{p:[8,1,286],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,326],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,345]}],candystripe:0,right:0},f:[{p:[11,5,378],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,384]}]}," ",{p:[12,5,404],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,410]}]}," ",{p:[13,5,434],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,446]}]}," ",{p:[14,5,470],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,494]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,599]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,618]}]}]}],n:52,r:"data.abilities",p:[9,1,299]},{t:4,f:[{p:[23,3,716],t:7,e:"span",a:{"class":"warning"},f:["No abilities available."]}],n:51,r:"data.abilities",p:[22,1,694]}]}]},e.exports=a.extend(r.exports)},{341:341}],377:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,5,16],t:7,e:"span",f:["To use this, simply spawn the atoms you want in one of the four Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."]}]}," ",{p:[5,1,300],t:7,e:"ui-display",a:{title:"Centcom Pod Customization (to be used against helen weinstein)"},f:[]}," ",{p:[7,1,398],t:7,e:"ui-display",f:[{p:[8,5,415],t:7,e:"ui-section",a:{label:"Which supplypod bay will you use?"}}," ",{p:[9,5,487],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[9,46,528],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.bay"],s:'_0==1?"selected":null'},p:[9,64,546]}],action:"bay1"},f:["Bay #1"]}]}," ",{p:[10,5,636],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[10,46,677],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.bay"],s:'_0==2?"selected":null'},p:[10,64,695]}],action:"bay2"},f:["Bay #2"]}]}," ",{p:[11,5,785],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[11,46,826],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.bay"],s:'_0==3?"selected":null'},p:[11,64,844]}],action:"bay3"},f:["Bay #3"]}]}," ",{p:[12,5,934],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[12,46,975],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.bay"],s:'_0==4?"selected":null'},p:[12,64,993]}],action:"bay4"},f:["Bay #4"]}]}]}," ",{p:[15,1,1094],t:7,e:"ui-display",f:[{p:[16,5,1111],t:7,e:"ui-section",a:{label:"Teleport to"}}," ",{p:[17,5,1161],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[17,46,1202],t:7,e:"ui-button",a:{action:"teleportCentcom"},f:["Loading Bay"]}]}," ",{p:[18,5,1280],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[18,46,1321],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.oldArea"],s:'_0?null:"disabled"'},p:[18,64,1339]}],action:"teleportBack"},f:[{t:2,x:{r:["data.oldArea"],s:'_0?_0:"where you were"'},p:[18,123,1398]}]}]}]}," ",{p:[21,1,1490],t:7,e:"ui-display",f:[{p:[22,5,1507],t:7,e:"ui-section",a:{label:"Launch the real atoms?"},f:[]}," ",{p:[23,5,1569],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[23,46,1610],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.launchClone"],s:'_0?"selected":null'},p:[23,64,1628]}],action:"launchClone","tooltip-side":"left",tooltip:"Choosing this will create a duplicate of the item to be launched in Centcom, allowing you to send one type of item multiple times. Either way, the atoms are forceMoved into the supplypod after it lands (but before it opens)."},f:["Launch Clones"]}]}]}," ",{p:[27,1,2005],t:7,e:"ui-display",f:[{p:[28,5,2023],t:7,e:"ui-section",a:{label:"Launch all at once?"}}," ",{p:[29,5,2081],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[29,46,2122],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.launchChoice"],s:'_0==1?"selected":null'},p:[29,64,2140]}],action:"launchOrdered","tooltip-side":"left",tooltip:'Instead of launching everything in the bay at once, this will "scan" things (one turf-full at a time) in order, left to right and top to bottom. Refreshing will reset the "scanner" to the top-leftmost position.'},f:["Ordered"]}]}," ",{p:[31,5,2494],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[31,46,2535],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.launchChoice"],s:'_0==2?"selected":null'},p:[31,64,2553]}],action:"launchRandom","tooltip-side":"left",tooltip:"Instead of launching everything in the bay at once, this will launch one random turf of items at a time."},f:["Random"]}]}]}," ",{p:[35,1,2809],t:7,e:"ui-display",f:[{p:[36,5,2826],t:7,e:"ui-section",a:{label:"Add an explosion?"}}," ",{p:[37,5,2882],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[37,46,2923],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.explosionChoice"],s:'_0==1?"selected":null'},p:[37,64,2941]}],action:"explosionCustom","tooltip-side":"left",tooltip:"This will cause an explosion of whatever size you like (including flame range) to occur as soon as the supplypod lands. Dont worry, supply-pods are explosion-proof!"},f:["Custom Size"]}]}," ",{p:[39,5,3257],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[39,46,3298],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.explosionChoice"],s:'_0==2?"selected":null'},p:[39,64,3316]}],action:"explosionBus","tooltip-side":"left",tooltip:"This will cause a maxcap explosion (dependent on server config) to occur as soon as the supplypod lands. Dont worry, supply-pods are explosion-proof!"},f:["Adminbus"]}]}]}," ",{p:[43,1,3622],t:7,e:"ui-display",f:[{p:[44,5,3639],t:7,e:"ui-section",a:{label:"Extra damage?","(default":"None)"}}," ",{p:[45,5,3708],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[45,46,3749],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.damageChoice"],s:'_0==1?"selected":null'},p:[45,64,3767]}],action:"damageCustom","tooltip-side":"left",tooltip:"Anyone caught under the pod when it lands will be dealt this amount of brute damage. Sucks to be them!"},f:["Custom Damage"]}]}," ",{p:[47,5,4018],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[47,46,4059],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.damageChoice"],s:'_0==2?"selected":null'},p:[47,64,4077]}],action:"damageGib","tooltip-side":"left",tooltip:"This will attempt to gib any mob caught under the pod when it lands, as well as dealing a nice 5000 brute damage. Ya know, just to be sure!"},f:["Gib"]}]}]}," ",{p:[51,1,4363],t:7,e:"ui-display",f:[{p:[52,5,4380],t:7,e:"ui-section",a:{label:"Damaging effects?"}}," ",{p:[53,5,4436],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[53,46,4477],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectStun"],s:'_0?"selected":null'},p:[53,64,4495]}],action:"effectStun","tooltip-side":"left",tooltip:"Anyone who is on the turf when the supplypod is launched will be stunned until the supplypod lands. They cant get away that easy!"},f:["Stun"]}]}," ",{p:[55,5,4755],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[55,46,4796],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectLimb"],s:'_0?"selected":null'},p:[55,64,4814]}],action:"effectLimb","tooltip-side":"left",tooltip:"This will cause anyone caught under the pod to lose a limb, excluding their head."},f:["Delimb"]}]}," ",{p:[57,5,5028],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[57,46,5069],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectOrgans"],s:'_0?"selected":null'},p:[57,64,5087]}],action:"effectOrgans","tooltip-side":"left",tooltip:"This will cause anyone caught under the pod to lose all their limbs and organs in a spectacular fashion."},f:["Yeet Organs"]}]}]}," ",{p:[61,1,5344],t:7,e:"ui-display",f:[{p:[62,5,5361],t:7,e:"ui-section",a:{label:"Movement effects?"}}," ",{p:[63,5,5417],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[63,46,5458],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectBluespace"],s:'_0?"selected":null'},p:[63,64,5476]}],action:"effectBluespace","tooltip-side":"left",tooltip:"Gives the supplypod an advanced Bluespace Recyling Device. After opening, the supplypod will be warped directly to the surface of a nearby NT-designated trash planet (/r/ss13)."},f:["Bluespace"]}]}," ",{p:[65,5,5798],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[65,46,5839],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectStealth"],s:'_0?"selected":null'},p:[65,64,5857]}],action:"effectStealth","tooltip-side":"left",tooltip:'This hides the red target icon from appearing when you launch the supplypod. Combos well with the "Invisible" style. Sneak attack, go!'},f:["Stealth"]}]}," ",{p:[67,5,6131],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[67,46,6172],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectQuiet"],s:'_0?"selected":null'},p:[67,64,6190]}],action:"effectQuiet","tooltip-side":"left",tooltip:"This will keep the supplypod from making any sounds, except for those specifically set by admins in the Sound section."},f:["Quiet Landing"]}]}," ",{p:[69,5,6450],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[69,46,6491],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectReverse"],s:'_0?"selected":null'},p:[69,64,6509]}],action:"effectReverse","tooltip-side":"left",tooltip:"This pod will not send any items. Instead, after landing, the supplypod will close (similar to a normal closet closing), and then launch back to the right centcom bay to drop off any new contents."},f:["Reverse Mode"]}]}," ",{p:[71,5,6850],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[71,46,6891],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectMissile"],s:'_0?"selected":null'},p:[71,64,6909]}],action:"effectMissile","tooltip-side":"left",tooltip:"This pod will not send any items. Instead, it will immediatley delete after landing (Similar visually to setting openDelay & departDelay to 0, but this looks nicer). Useful if you just wanna fuck some shit up. Combos well with the Missile style."},f:["Missile Mode"]}]}," ",{p:[73,5,7299],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[73,46,7340],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectCircle"],s:'_0?"selected":null'},p:[73,64,7358]}],action:"effectCircle","tooltip-side":"left",tooltip:"This will make the supplypod come in from any angle. Im not sure why this feature exists, but here it is."},f:["Any Descent Angle"]}]}," ",{p:[75,5,7611],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[75,46,7652],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectBurst"],s:'_0?"selected":null'},p:[75,64,7670]}],action:"effectBurst","tooltip-side":"left",tooltip:"This will make each click launch 5 supplypods inaccuratly around the target turf (a 3x3 area). Combos well with the Missle Mode if you dont want shit lying everywhere after."},f:["Machine Gun Mode"]}]}," ",{p:[77,5,7988],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[77,46,8029],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectTarget"],s:'_0?"selected":null'},p:[77,64,8047]}],action:"effectTarget","tooltip-side":"left",tooltip:"This will make the supplypod target a specific atom, instead of the mouses position. Smiting does this automatically!"},f:["Specific Target"]}]}]}," ",{p:[81,1,8321],t:7,e:"ui-display",f:[{p:[82,5,8338],t:7,e:"ui-section",a:{label:"Change Name/Desc?"}}," ",{p:[83,5,8394],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[83,46,8435],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectName"],s:'_0?"selected":null'},p:[83,64,8453]}],action:"effectName","tooltip-side":"left",tooltip:"Allows you to add a custom name and description."},f:["Custom Name/Desc"]}]}," ",{p:[85,5,8644],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[85,46,8685],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.effectAnnounce"],s:'_0?"selected":null'},p:[85,64,8703]}],action:"effectAnnounce","tooltip-side":"left",tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb shit is aboutta come outta the pod."},f:["Alert Ghosts"]}]}]}," ",{p:[89,1,8954],t:7,e:"ui-display",f:[{p:[90,5,8971],t:7,e:"ui-section",a:{label:"Sound?"}}," ",{p:[91,5,9016],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[91,46,9057],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.fallingSound"],s:'_0?"selected":null'},p:[91,64,9075]}],action:"fallingSound","tooltip-side":"left",tooltip:"Choose a sound to play as the pod falls. Note that for this to work right you should know the exact length of the sound, in seconds."},f:["Custom Falling Sound"]}]}," ",{p:[93,5,9358],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[93,46,9399],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.landingSound"],s:'_0?"selected":null'},p:[93,64,9417]}],action:"landingSound","tooltip-side":"left",tooltip:"Choose a sound to play when the pod lands."},f:["Custom Landing Sound"]}]}," ",{p:[95,5,9610],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[95,46,9651],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.openingSound"],s:'_0?"selected":null'},p:[95,64,9669]}],action:"openingSound","tooltip-side":"left",tooltip:"Choose a sound to play when the pod opens."},f:["Custom Opening Sound"]}]}," ",{p:[97,5,9862],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[97,46,9903],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.leavingSound"],s:'_0?"selected":null'},p:[97,64,9921]}],action:"leavingSound","tooltip-side":"left",tooltip:"Choose a sound to play when the pod departs (whether that be delection in the case of a bluespace pod, or leaving for centcom for a reversing pod)."},f:["Custom Leaving Sound"]}]}," ",{p:[99,5,10219],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[99,46,10260],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.soundVolume"],s:'_0?"selected":null'},p:[99,64,10278]}],action:"soundVolume","tooltip-side":"left",tooltip:"Choose the volume for the sound to play at. Default values are between 1 and 100, but hey, do whatever. Im a tooltip, not a cop."},f:["Admin Sound Volume"]}]}]}," ",{p:[103,1,10564],t:7,e:"ui-display",f:[{p:[104,5,10581],t:7,e:"ui-section",a:{label:"Delay timers?"}}," ",{p:[105,5,10633],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[105,46,10674],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.fallDuration"],s:'_0!=4?"selected":null'},p:[105,64,10692]}],action:"fallDuration","tooltip-side":"left",tooltip:"Set how long the animation for the pod falling lasts. Create dramatic, slow falling pods!"},f:["Custom Falling Duration"]}]}," ",{p:[107,5,10940],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[107,46,10981],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.landingDelay"],s:'_0!=20?"selected":null'},p:[107,64,10999]}],action:"landingDelay","tooltip-side":"left",tooltip:"Choose the amount of time it takes for the supplypod to hit the station. By default this value is 0.5 seconds."},f:["Custom Landing Time"]}]}," ",{p:[109,9,11269],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[109,50,11310],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.openingDelay"],s:'_0!=30?"selected":null'},p:[109,68,11328]}],action:"openingDelay","tooltip-side":"left",tooltip:"Choose the amount of time it takes for the supplypod to open after landing. Useful for giving whatevers inside the pod a nice dramatic entrance! By default this value is 3 seconds."},f:["Custom Opening Time"]}]}," ",{p:[111,5,11664],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[111,46,11705],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.departureDelay"],s:'_0!=30?"selected":null'},p:[111,64,11723]}],action:"departureDelay","tooltip-side":"left",tooltip:"Choose the amount of time it takes for the supplypod to leave after landing. By default this value is 3 seconds."},f:["Custom Leaving Time"]}]}]}," ",{p:[115,1,12006],t:7,e:"ui-display",f:[{p:[116,5,12023],t:7,e:"ui-section",a:{label:"Style?"}}," ",{p:[117,5,12068],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[117,46,12109],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==1?"selected":null'},p:[117,64,12127]}],action:"styleStandard","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to your standard Nanotrasen black and orange. Same color scheme as the normal station-used supplypods."},f:["Standard"]}]}," ",{p:[119,5,12434],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[119,46,12475],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==2?"selected":null'},p:[119,64,12493]}],action:"styleBluespace","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to the same as the stations upgraded blue-and-white Bluespace Supplypods."},f:["Advanced"]}]}," ",{p:[121,5,12772],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[121,46,12813],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==4?"selected":null'},p:[121,64,12831]}],action:"styleSyndie","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to a menacing black and blood-red. Great for sending meme-ops in style!"},f:["Syndicate"]}]}," ",{p:[123,5,13106],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[123,46,13147],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==5?"selected":null'},p:[123,64,13165]}],action:"styleBlue","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to a menacing black and dark blue. Great for sending deathsquads in style!"},f:["Deathsquad"]}]}," ",{p:[125,5,13442],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[125,46,13483],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==6?"selected":null'},p:[125,64,13501]}],action:"styleCult","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom style to a blood and rune covered cult pod!"},f:["Cult Pod"]}]}," ",{p:[127,5,13732],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[127,46,13773],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==7?"selected":null'},p:[127,64,13791]}],action:"styleMissile","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom style to a large missile. Combos well with a missile mode, so the missile doesnt stick around after landing."},f:["Missile"]}]}," ",{p:[129,5,14089],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[129,46,14130],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==8?"selected":null'},p:[129,64,14148]}],action:"styleSMissile","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom style to a large blood-red missile. Combos well with missile mode, so the missile doesnt stick around after landing."},f:["Syndicate Missile"]}]}," ",{p:[131,5,14465],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[131,46,14506],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==9?"selected":null'},p:[131,64,14524]}],action:"styleBox","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom style to a large, dark-green military supply crate."},f:["Supply Crate"]}]}," ",{p:[133,5,14766],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[133,46,14807],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==10?"selected":null'},p:[133,64,14825]}],action:"styleHONK","tooltip-side":"left",tooltip:"Changes the pods style from the default Centcom color scheme to a colorful, clown inspired look."},f:["HONK"]}]}," ",{p:[135,5,15058],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[135,46,15099],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==11?"selected":null'},p:[135,64,15117]}],action:"styleFruit","tooltip-side":"left",tooltip:"for when an orange is angry"},f:["Fruit~"]}]}," ",{p:[137,5,15284],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[137,46,15325],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==12?"selected":null'},p:[137,64,15343]}],action:"styleInvisible","tooltip-side":"left",tooltip:'Makes the supplypod invisible! Useful for when you want to use this feature with a gateway or something. Combos well with the "Stealth" and "Quiet Landing" effects.'},f:["Invisible"]}]}," ",{p:[139,5,15653],t:7,e:"ui-section",a:{label:" ",candystripe:0,right:0},f:[{p:[139,46,15694],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.styleChoice"],s:'_0==13?"selected":null'},p:[139,64,15712]}],action:"styleGondola","tooltip-side":"left",tooltip:"this gondola can control when he wants to deliver his supplies if he has a smart enough mind, so offer up his body to ghosts for maximum enjoyment. (Make sure to turn off bluespace and set a arbitrarily high open-time if you do!)"},f:["Gondola (alive)"]}]}]}," ",{p:[144,1,16104],t:7,e:"ui-display",f:[{p:[145,5,16121],t:7,e:"ui-section",a:{label:[{t:2,r:"data.numObjects",p:[145,24,16140]}," turfs in Bay #",{t:2,r:"data.bay",p:[145,58,16174]}],candystripe:0,right:0},f:[{p:[146,9,16215],t:7,e:"ui-button",a:{action:"refresh","tooltip-side":"left",tooltip:"Manually refreshes the possible things to launch in the pod bay."},f:["Refresh Pod Bay"]}," ",{p:[148,9,16382],t:7,e:"ui-button",a:{style:[{t:2,x:{r:["data.giveLauncher"],s:'_0?"selected":null'},p:[148,27,16400]}],action:"giveLauncher","tooltip-side":"left",tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN"},f:["Enter Launch Mode"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],378:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,30],t:7,e:"ui-section",a:{label:"Energy"},f:[{p:[3,5,62],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,83]}],value:[{t:2,r:"data.energy",p:[3,53,110]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,127]}," Units"]}]}]}," ",{p:[6,1,201],t:7,e:"ui-display",a:{title:"Saved Recipes",button:0},f:[{p:[7,3,245],t:7,e:"ui-section",f:[{p:[8,5,262],t:7,e:"ui-button",a:{icon:"plus",action:"add_recipe"},f:["Add Recipe"]}," ",{p:[9,2,329],t:7,e:"ui-button",a:{icon:"minus",action:"clear_recipes"},f:["Clear Recipes"]}," ",{t:4,f:[{p:[11,7,435],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense_recipe",params:['{"recipe": "',{t:2,r:"contents",p:[11,80,508]},'"}']},f:[{t:2,r:"recipe_name",p:[11,96,524]}]}],n:52,r:"data.recipes",p:[10,5,406]}]}]}," ",{p:{button:[{t:4,f:[{p:[18,7,702],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[18,37,732]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[18,114,809]},"}"]},f:[{t:2,r:".",p:[18,122,817]}]}],n:52,r:"data.beakerTransferAmounts",p:[17,5,659]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[21,3,866],t:7,e:"ui-section",f:[{t:4,f:[{p:[23,7,914],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[23,74,981]},'"}']},f:[{t:2,r:"title",p:[23,84,991]}]}],n:52,r:"data.chemicals",p:[22,5,883]}]}]}," ",{p:{button:[{t:4,f:[{p:[30,7,1161],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[30,66,1220]},"}"]},f:[{t:2,r:".",p:[30,74,1228]}]}],n:52,r:"data.beakerTransferAmounts",p:[29,5,1118]}," ",{p:[32,5,1264],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[32,36,1295]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[34,3,1390],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[36,7,1458],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[36,13,1464]},"/",{t:2,r:"data.beakerMaxVolume",p:[36,55,1506]}," Units"]}," ",{p:[37,7,1550],t:7,e:"br"}," ",{t:4,f:[{p:[39,9,1601],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[39,52,1644]}," units of ",{t:2,r:"name",p:[39,87,1679]}]},{p:[39,102,1694],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[38,7,1562]},{t:4,n:51,f:[{p:[41,9,1723],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[35,5,1424]},{t:4,n:51,f:[{p:[44,7,1796],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],379:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[2,3,34],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,65],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,82]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,134]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,182]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,244]}]}]}," ",{p:[8,3,307],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,338],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,413]}," K"]}]}]}," ",{p:{button:[{p:[14,5,551],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,582]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,677],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,745],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,764]}," K"]}," ",{p:[19,7,813],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,865],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,908]}," units of ",{t:2,r:"name",p:[21,87,943]}]},{p:[21,102,958],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,826]},{t:4,n:51,f:[{p:[23,9,987],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,711]},{t:4,n:51,f:[{p:[26,7,1060],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],380:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,31],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,68],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,85]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,140]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,195]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"No beaker"' +},p:[7,5,262]}]}," ",{p:[10,3,331],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,414],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,433]}," units of ",{t:2,r:"name",p:[13,60,468]}],nowrap:0},f:[{p:[14,7,492],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,541],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,594]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,638],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,691]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,735],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,788]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,834],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,887]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,936],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,989]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1039],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1083]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,379]},{t:4,n:51,f:[{p:[24,5,1161],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,347]},{t:4,n:51,f:[{p:[27,5,1229],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1312],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1342],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1380]}]},f:["Destroy"]}," ",{p:[34,3,1437],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1475]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1543],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1593],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1612]}," units of ",{t:2,r:"name",p:[37,59,1647]}],nowrap:0},f:[{p:[38,6,1670],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1718],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1773]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1816],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1871]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1914],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,1969]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2014],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2069]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2117],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2172]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2221],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2265]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1559]}]}]}," ",{t:4,f:[{p:[52,3,2393],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2481],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2515]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2564]}]}," ",{p:[55,5,2644],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2666]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2690]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2445]},{t:4,n:51,f:[{p:[57,5,2740],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2801],t:7,e:"br"}," ",{p:[61,4,2810],t:7,e:"br"}," ",{p:[62,4,2819],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[62,63,2878]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,2961],t:7,e:"br"}," ",{p:[64,4,2970],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[64,63,3029]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3112],t:7,e:"br"}," ",{p:[66,4,3121],t:7,e:"br"}," ",{p:[67,4,3130],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[67,64,3190]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3274],t:7,e:"br"}," ",{p:[69,4,3283],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[69,64,3343]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3428],t:7,e:"br"}," ",{p:[71,4,3437],t:7,e:"br"}," ",{p:[72,4,3446],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[72,65,3507]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3592],t:7,e:"br"}," ",{p:[74,4,3601],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[74,65,3662]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2371]},{t:4,n:51,f:[{p:[79,3,3779],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3833],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[80,63,3892]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,3975],t:7,e:"br"}," ",{p:[82,4,3984],t:7,e:"br"}," ",{p:[83,4,3993],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[83,65,4054]}]},f:["Create Bottle (max 50µ)"]}]}],x:{r:["data.condi"],s:"!_0"}}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,1,0]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.screen"],s:'_0=="analyze"'},f:[{p:[87,2,4198],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4216]}]},f:[{p:[88,3,4246],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4293],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4336]}]}," ",{p:[90,3,4378],t:7,e:"br"}," ",{p:[91,3,4386],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4427],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4447]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4493]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4521]}]}," ",{p:[93,3,4557],t:7,e:"br"}," ",{p:[94,3,4565],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4606],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4628]}]}," ",{p:[96,3,4664],t:7,e:"br"}," ",{p:[97,3,4672],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4727],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4749]},"µ/minute"]}," ",{p:[99,3,4796],t:7,e:"br"}," ",{p:[100,3,4804],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4858],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4880]}]}," ",{p:[102,3,4916],t:7,e:"br"}," ",{p:[103,3,4924],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,4979],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5001]}]}," ",{p:[105,3,5038],t:7,e:"br"}," ",{p:[106,3,5046],t:7,e:"br"}," ",{p:[107,3,5054],t:7,e:"ui-button",a:{action:"goScreen",params:'{"screen": "home"}'},f:["Back"]}]}]}],x:{r:["data.screen"],s:'_0=="home"'}}]},e.exports=a.extend(r.exports)},{341:341}],381:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Recipient Contents"},f:[{p:[2,2,41],t:7,e:"ui-section",f:[{p:[3,3,56],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[3,34,87]}],action:"ejectBeaker"},f:["Eject"]}," ",{p:[4,3,173],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[4,35,205]}],action:"input"},f:["Input"]}," ",{p:[5,3,285],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,35,317]}],action:"amount"},f:[{t:2,r:"data.amount",p:[5,96,378]},"U"]}," ",{p:[6,3,409],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"disabled":null'},p:[6,33,439]}],action:"makecup"},f:["Create Beaker"]}]}]}," ",{p:[9,1,556],t:7,e:"ui-display",a:{title:"Recipient"},f:[{p:[10,2,588],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[12,4,651],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[12,10,657]},"/",{t:2,r:"data.beakerMaxVolume",p:[12,52,699]}," Units"]}," ",{t:4,f:[{p:[14,5,775],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[14,48,818]}," units of ",{t:2,r:"name",p:[14,83,853]}]},{p:[14,98,868],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[13,4,740]},{t:4,n:51,f:[{p:[16,5,890],t:7,e:"span",a:{"class":"bad"},f:["Recipient Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,3,620]},{t:4,n:51,f:[{p:[19,4,958],t:7,e:"span",a:{"class":"average"},f:["No Recipient"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],382:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,15],t:7,e:"ui-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,42]}]}]}," ",{t:4,f:[{p:[5,3,145],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[6,3,160]}," ",{t:4,f:[{p:[8,4,224],t:7,e:"br"},{p:[8,8,228],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[8,63,283]},'"}']},f:[{t:3,r:"name",p:[8,75,295]}," - ",{t:3,r:"desc",p:[8,88,308]}]}],n:52,r:"data.recollection_categories",p:[7,3,182]}," ",{t:3,r:"data.rec_section",p:[10,3,345]}," ",{t:3,r:"data.rec_binds",p:[11,3,370]}]}],n:50,r:"data.recollection",p:[4,1,117]},{t:4,n:51,f:[{p:[14,2,418],t:7,e:"ui-display",a:{title:"Power",button:0},f:[{p:[15,4,455],t:7,e:"ui-section",f:[{t:3,r:"data.power",p:[16,6,473]}]}]}," ",{p:[19,2,523],t:7,e:"ui-display",f:[{p:[20,3,538],t:7,e:"ui-section",f:[{p:[21,4,554],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[21,22,572]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[22,4,694],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[22,22,712]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[23,4,835],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[23,22,853]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[24,4,991],t:7,e:"br"},{t:3,r:"data.tier_info",p:[24,8,995]}]}," ",{p:[26,3,1034],t:7,e:"ui-section",f:[{t:3,r:"data.scripturecolors",p:[27,4,1050]}]},{p:[28,16,1092],t:7,e:"hr"}," ",{p:[29,3,1099],t:7,e:"ui-section",f:[{t:4,f:[{p:[31,4,1142],t:7,e:"div",f:[{p:[31,9,1147],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[31,29,1167]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[31,99,1237]},'"}']},f:["Recite ",{t:3,r:"required",p:[31,118,1256]}]}," ",{t:4,f:[{t:4,f:[{p:[34,6,1329],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[34,53,1376]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[34,72,1395]}]}],n:50,r:"bound",p:[33,5,1310]},{t:4,n:51,f:[{p:[36,6,1437],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[36,53,1484]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[32,6,1288]}," ",{t:3,r:"name",p:[39,6,1548]}," ",{t:3,r:"descname",p:[39,17,1559]}," ",{t:3,r:"invokers",p:[39,32,1574]}]}],n:52,r:"data.scripture",p:[30,3,1114]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{341:341}],383:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Codex Gigas"},f:[{p:[2,2,34],t:7,e:"ui-section",f:[{t:2,r:"data.name",p:[3,3,49]}]}," ",{p:[5,5,82],t:7,e:"ui-section",a:{label:"Prefix"},f:[{p:[6,3,112],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[6,22,131]}],action:"Dark "},f:["Dark"]}," ",{p:[7,3,215],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[7,22,234]}],action:"Hellish "},f:["Hellish"]}," ",{p:[8,3,324],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[8,22,343]}],action:"Fallen "},f:["Fallen"]}," ",{p:[9,3,431],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[9,22,450]}],action:"Fiery "},f:["Fiery"]}," ",{p:[10,3,536],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[10,22,555]}],action:"Sinful "},f:["Sinful"]}," ",{p:[11,3,643],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[11,22,662]}],action:"Blood "},f:["Blood"]}," ",{p:[12,3,748],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[12,22,767]}],action:"Fluffy "},f:["Fluffy"]}]}," ",{p:[14,5,875],t:7,e:"ui-section",a:{label:"Title"},f:[{p:[15,3,904],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[15,22,923]}],action:"Lord "},f:["Lord"]}," ",{p:[16,3,1007],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[16,22,1026]}],action:"Prelate "},f:["Prelate"]}," ",{p:[17,3,1116],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[17,22,1135]}],action:"Count "},f:["Count"]}," ",{p:[18,3,1221],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[18,22,1240]}],action:"Viscount "},f:["Viscount"]}," ",{p:[19,3,1332],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[19,22,1351]}],action:"Vizier "},f:["Vizier"]}," ",{p:[20,3,1439],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[20,22,1458]}],action:"Elder "},f:["Elder"]}," ",{p:[21,3,1544],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[21,22,1563]}],action:"Adept "},f:["Adept"]}]}," ",{p:[23,5,1669],t:7,e:"ui-section",a:{label:"Name"},f:[{p:[24,3,1697],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[24,22,1716]}],action:"hal"},f:["hal"]}," ",{p:[25,3,1797],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[25,22,1816]}],action:"ve"},f:["ve"]}," ",{p:[26,3,1895],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[26,22,1914]}],action:"odr"},f:["odr"]}," ",{p:[27,3,1995],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[27,22,2014]}],action:"neit"},f:["neit"]}," ",{p:[28,3,2097],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[28,22,2116]}],action:"ci"},f:["ci"]}," ",{p:[29,3,2195],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[29,22,2214]}],action:"quon"},f:["quon"]}," ",{p:[30,3,2297],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[30,22,2316]}],action:"mya"},f:["mya"]}," ",{p:[31,3,2397],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[31,22,2416]}],action:"folth"},f:["folth"]}," ",{p:[32,3,2501],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[32,22,2520]}],action:"wren"},f:["wren"]}," ",{p:[33,3,2603],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[33,22,2622]}],action:"geyr"},f:["geyr"]}," ",{p:[34,3,2705],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[34,22,2724]}],action:"hil"},f:["hil"]}," ",{p:[35,3,2805],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[35,22,2824]}],action:"niet"},f:["niet"]}," ",{p:[36,3,2907],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[36,22,2926]}],action:"twou"},f:["twou"]}," ",{p:[37,3,3009],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[37,22,3028]}],action:"phi"},f:["phi"]}," ",{p:[38,3,3109],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[38,22,3128]}],action:"coa"},f:["coa"]}]}," ",{p:[40,5,3229],t:7,e:"ui-section",a:{label:"suffix"},f:[{p:[41,3,3259],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[41,22,3278]}],action:" the Red"},f:["the Red"]}," ",{p:[42,3,3368],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[42,22,3387]}],action:" the Soulless"},f:["the Soulless"]}," ",{p:[43,3,3487],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[43,22,3506]}],action:" the Master"},f:["the Master"]}," ",{p:[44,3,3602],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[44,22,3621]}],action:", the Lord of all things"},f:["the Lord of all things"]}," ",{p:[45,3,3742],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[45,22,3761]}],action:", Jr."},f:["jr"]}]}," ",{p:[47,5,3863],t:7,e:"ui-section",a:{label:"submit"},f:[{p:[48,3,3894],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0>=4?null:"disabled"'},p:[48,21,3912]}],action:"search"},f:["search"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],384:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"ui-button",a:{icon:"circle",action:"clean_order"},f:["Clear Order"]},{p:[2,70,70],t:7,e:"br"},{p:[2,74,74],t:7,e:"br"}," ",{p:[3,1,79],t:7,e:"i",f:["Your new computer device you always dreamed of is just four steps away..."]},{p:[3,81,159],t:7,e:"hr"}," ",{t:4,f:[" ",{p:[5,1,219],t:7,e:"div",a:{"class":"item"},f:[{p:[6,2,239],t:7,e:"h2",f:["Step 1: Select your device type"]}," ",{p:[7,2,281],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "1"}'},f:["Laptop"]}," ",{p:[8,2,370],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "2"}'},f:["LTablet"]}]}],n:50,x:{r:["data.state"],s:"_0==0"},p:[4,1,164]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.state"],s:"_0==1"},f:[{p:[11,1,492],t:7,e:"div",a:{"class":"item"},f:[{p:[12,2,512],t:7,e:"h2",f:["Step 2: Personalise your device"]}," ",{p:[13,2,554],t:7,e:"table",f:[{p:[14,3,564],t:7,e:"tr",f:[{p:[15,4,572],t:7,e:"td",f:[{p:[15,8,576],t:7,e:"b",f:["Current Price:"]}]},{p:[16,4,601],t:7,e:"td",f:[{t:2,r:"data.totalprice",p:[16,8,605]},"C"]}]}," ",{p:[18,3,636],t:7,e:"tr",f:[{p:[19,4,645],t:7,e:"td",f:[{p:[19,8,649],t:7,e:"b",f:["Battery:"]}]},{p:[20,4,668],t:7,e:"td",f:[{p:[20,8,672],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "1"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==1?"selected":null'},p:[20,73,737]}]},f:["Standard"]}]},{p:[21,4,807],t:7,e:"td",f:[{p:[21,8,811],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "2"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==2?"selected":null'},p:[21,73,876]}]},f:["Upgraded"]}]},{p:[22,4,946],t:7,e:"td",f:[{p:[22,8,950],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "3"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==3?"selected":null'},p:[22,73,1015]}]},f:["Advanced"]}]}]}," ",{p:[24,3,1092],t:7,e:"tr",f:[{p:[25,4,1100],t:7,e:"td",f:[{p:[25,8,1104],t:7,e:"b",f:["Hard Drive:"]}]},{p:[26,4,1126],t:7,e:"td",f:[{p:[26,8,1130],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "1"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==1?"selected":null'},p:[26,67,1189]}]},f:["Standard"]}]},{p:[27,4,1256],t:7,e:"td",f:[{p:[27,8,1260],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "2"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==2?"selected":null'},p:[27,67,1319]}]},f:["Upgraded"]}]},{p:[28,4,1386],t:7,e:"td",f:[{p:[28,8,1390],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "3"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==3?"selected":null'},p:[28,67,1449]}]},f:["Advanced"]}]}]}," ",{p:[30,3,1523],t:7,e:"tr",f:[{p:[31,4,1531],t:7,e:"td",f:[{p:[31,8,1535],t:7,e:"b",f:["Network Card:"]}]},{p:[32,4,1559],t:7,e:"td",f:[{p:[32,8,1563],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "0"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==0?"selected":null'},p:[32,73,1628]}]},f:["None"]}]},{p:[33,4,1694],t:7,e:"td",f:[{p:[33,8,1698],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "1"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==1?"selected":null'},p:[33,73,1763]}]},f:["Standard"]}]},{p:[34,4,1833],t:7,e:"td",f:[{p:[34,8,1837],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "2"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==2?"selected":null'},p:[34,73,1902]}]},f:["Advanced"]}]}]}," ",{p:[36,3,1979],t:7,e:"tr",f:[{p:[37,4,1987],t:7,e:"td",f:[{p:[37,8,1991],t:7,e:"b",f:["Nano Printer:"]}]},{p:[38,4,2015],t:7,e:"td",f:[{p:[38,8,2019],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "0"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==0?"selected":null'},p:[38,73,2084]}]},f:["None"]}]},{p:[39,4,2152],t:7,e:"td",f:[{p:[39,8,2156],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "1"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==1?"selected":null'},p:[39,73,2221]}]},f:["Standard"]}]}]}," ",{p:[41,3,2300],t:7,e:"tr",f:[{p:[42,4,2308],t:7,e:"td",f:[{p:[42,8,2312],t:7,e:"b",f:["Card Reader:"]}]},{p:[43,4,2335],t:7,e:"td",f:[{p:[43,8,2339],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "0"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==0?"selected":null'},p:[43,67,2398]}]},f:["None"]}]},{p:[44,4,2461],t:7,e:"td",f:[{p:[44,8,2465],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "1"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==1?"selected":null'},p:[44,67,2524]}]},f:["Standard"]}]}]}]}," ",{t:4,f:[" ",{p:[49,4,2658],t:7,e:"table",f:[{p:[50,5,2670],t:7,e:"tr",f:[{p:[51,6,2680],t:7,e:"td",f:[{p:[51,10,2684],t:7,e:"b",f:["Processor Unit:"]}]},{p:[52,6,2712],t:7,e:"td",f:[{p:[52,10,2716],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "1"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==1?"selected":null'},p:[52,67,2773]}]},f:["Standard"]}]},{p:[53,6,2841],t:7,e:"td",f:[{p:[53,10,2845],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "2"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==2?"selected":null'},p:[53,67,2902]}]},f:["Advanced"]}]}]}," ",{p:[55,5,2979],t:7,e:"tr",f:[{p:[56,6,2989],t:7,e:"td",f:[{p:[56,10,2993],t:7,e:"b",f:["Tesla Relay:"]}]},{p:[57,6,3018],t:7,e:"td",f:[{p:[57,10,3022],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "0"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==0?"selected":null'},p:[57,71,3083]}]},f:["None"]}]},{p:[58,6,3149],t:7,e:"td",f:[{p:[58,10,3153],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "1"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==1?"selected":null'},p:[58,71,3214]}]},f:["Standard"]}]}]}]}],n:50,x:{r:["data.devtype"],s:"_0!=2"},p:[48,3,2612]}," ",{p:[62,3,3313],t:7,e:"table",f:[{p:[63,4,3324],t:7,e:"tr",f:[{p:[64,5,3333],t:7,e:"td",f:[{p:[64,9,3337],t:7,e:"b",f:["Confirm Order:"]}]},{p:[65,5,3363],t:7,e:"td",f:[{p:[65,9,3367],t:7,e:"ui-button",a:{action:"confirm_order"},f:["CONFIRM"]}]}]}]}," ",{p:[69,2,3444],t:7,e:"hr"}," ",{p:[70,2,3450],t:7,e:"b",f:["Battery"]}," allows your device to operate without external utility power source. Advanced batteries increase battery life.",{p:[70,127,3575],t:7,e:"br"}," ",{p:[71,2,3581],t:7,e:"b",f:["Hard Drive"]}," stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.",{p:[71,130,3709],t:7,e:"br"}," ",{p:[72,2,3715],t:7,e:"b",f:["Network Card"]}," allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.",{p:[72,233,3946],t:7,e:"br"}," ",{p:[73,2,3952],t:7,e:"b",f:["Processor Unit"]}," is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.",{p:[73,208,4158],t:7,e:"br"}," ",{p:[74,2,4164],t:7,e:"b",f:["Tesla Relay"]}," is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.",{p:[74,246,4408],t:7,e:"br"}," ",{p:[75,2,4414],t:7,e:"b",f:["Nano Printer"]}," is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.",{p:[75,241,4653],t:7,e:"br"}," ",{p:[76,2,4659],t:7,e:"b",f:["Card Reader"]}," adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards."]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&(_0==2)"},f:[" ",{p:[79,2,4903],t:7,e:"h2",f:["Step 3: Payment"]}," ",{p:[80,2,4929],t:7,e:"b",f:["Your device is now ready for fabrication.."]},{p:[80,51,4978],t:7,e:"br"}," ",{p:[81,2,4984],t:7,e:"i",f:["Please ensure the required amount of credits are in the machine, then press purchase."]},{p:[81,94,5076],t:7,e:"br"}," ",{p:[82,2,5082],t:7,e:"i",f:["Current credits: ",{p:[82,22,5102],t:7,e:"b",f:[{t:2,r:"data.credits",p:[82,25,5105]},"C"]}]},{p:[82,50,5130],t:7,e:"br"}," ",{p:[83,2,5136],t:7,e:"i",f:["Total price: ",{p:[83,18,5152],t:7,e:"b",f:[{t:2,r:"data.totalprice",p:[83,21,5155]},"C"]}]},{p:[83,49,5183],t:7,e:"br"},{p:[83,53,5187],t:7,e:"br"}," ",{p:[84,2,5193],t:7,e:"ui-button",a:{action:"purchase",state:[{t:2,x:{r:["data.credits","data.totalprice"],s:'_0>=_1?null:"disabled"'},p:[84,38,5229]}]},f:["PURCHASE"]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&((!(_0==2))&&(_0==3))"},f:[" ",{p:[87,2,5337],t:7,e:"h2",f:["Step 4: Thank you for your purchase"]},{p:[87,46,5381],t:7,e:"br"}," ",{p:[88,2,5387],t:7,e:"b",f:["Should you experience any issues with your new device, contact your local network admin for assistance."]}]}],x:{r:["data.state"],s:"_0==0"}}]},e.exports=a.extend(r.exports)},{341:341}],385:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,1,21],t:7,e:"ui-display",f:[{p:[3,2,35],t:7,e:"ui-section",a:{label:"Cap"},f:[{p:[4,3,62],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.is_capped"],s:'_0?"power-off":"close"'},p:[4,20,79]}],style:[{t:2,x:{r:["data.is_capped"],s:'_0?null:"selected"'},p:[4,71,130]}],action:"toggle_cap"},f:[{t:2,x:{r:["data.is_capped"],s:'_0?"On":"Off"'},p:[6,4,197]}]}]}]}],n:50,r:"data.has_cap",p:[1,1,0]},{p:[10,1,279],t:7,e:"ui-display",f:[{t:4,f:[{p:[14,2,406],t:7,e:"ui-section",f:[{p:[15,3,421],t:7,e:"ui-button",a:{action:"select_colour"},f:["Select New Colour"]}]}],n:50,r:"data.can_change_colour",p:[13,1,374]}]}," ",{p:[19,1,522],t:7,e:"ui-display",a:{title:"Stencil"},f:[{t:4,f:[{p:[21,2,579],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[21,21,598]}]},f:[{t:4,f:[{p:[23,7,633],t:7,e:"ui-button",a:{action:"select_stencil",params:['{"item":"',{t:2,r:"item",p:[23,59,685]},'"}'],style:[{t:2,x:{r:["item","data.selected_stencil"],s:'_0==_1?"selected":null'},p:[24,12,708]}]},f:[{t:2,r:"item",p:[25,4,767]}]}],n:52,r:"items",p:[22,3,611]}]}],n:52,r:"data.drawables",p:[20,3,553]}]}," ",{p:[31,1,844],t:7,e:"ui-display",a:{title:"Text Mode"},f:[{p:[32,2,876],t:7,e:"ui-section",a:{label:"Current Buffer"},f:[{t:2,r:"text_buffer",p:[32,37,911]}]}," ",{p:[34,2,943],t:7,e:"ui-section",f:[{p:[34,14,955],t:7,e:"ui-button",a:{action:"enter_text"},f:["New Text"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],386:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{isHead:function(t){return t%10==0},dept_class:function(t){return 0==t?"dept-cap":t>=10&&20>t?"dept-sec":t>=20&&30>t?"dept-med":t>=30&&40>t?"dept-sci":t>=40&&50>t?"dept-eng":t>=50&&60>t?"dept-cargo":t>=200&&230>t?"dept-cent":"dept-other"},health_state:function(t,e,n,a){var r=t+e+n+a;return 0>=r?"health-5":25>=r?"health-4":50>=r?"health-3":75>=r?"health-2":"health-0"}}}}(r),r.exports.css=" .health {\n width: 16px;\n height: 16px;\n background-color: #FFF;\n border: 1px solid #434343;\n position: relative;\n top: 2px;\n display: inline-block;\n }\n .health-5 { background-color: #17d568; }\n .health-4 { background-color: #2ecc71; }\n .health-3 { background-color: #e67e22; }\n .health-2 { background-color: #ed5100; }\n .health-1 { background-color: #e74c3c; }\n .health-0 { background-color: #ed2814; }\n\n .dept-cap {color : #C06616;}\n .dept-sec {color : #E74C3C;}\n .dept-med {color : #3498DB;}\n .dept-sci {color : #9B59B6;}\n .dept-eng {color : #F1C40F;}\n .dept-cargo {color : #F39C12;}\n .dept-cent {color : #00C100;}\n .dept-other {color: #C38312;}\n\n .oxy { color : #3498db; }\n .toxin { color : #2ecc71; }\n .burn { color : #e67e22; }\n .brute { color : #e74c3c; }\n\n table.crew{\n border-collapse: collapse;\n }\n\n table.crew td {\n padding : 0px 10px;\n }",r.exports.template={v:3,t:[" ",{p:[27,1,1004],t:7,e:"ui-display",f:[{p:[28,2,1018],t:7,e:"ui-section",f:[{p:[29,3,1033],t:7,e:"table",a:{"class":"crew"},f:[{p:[30,3,1056],t:7,e:"thead",f:[{p:[31,3,1066],t:7,e:"tr",f:[{p:[32,4,1074],t:7,e:"th",f:["Name"]}," ",{p:[33,4,1091],t:7,e:"th",f:["Status"]}," ",{p:[34,4,1110],t:7,e:"th",f:["Vitals"]}," ",{p:[35,4,1129],t:7,e:"th",f:["Position"]}," ",{t:4,f:[{p:[37,5,1180],t:7,e:"th",f:["Tracking"]}],n:50,r:"data.link_allowed",p:[36,4,1150]}]}]}," ",{p:[41,3,1230],t:7,e:"tbody",f:[{t:4,f:[{p:[43,4,1266],t:7,e:"tr",f:[{p:[44,5,1275],t:7,e:"td",f:[{p:[45,6,1285],t:7,e:"span",a:{"class":[{t:2,x:{r:["isHead","ijob"],s:'_0(_1)?"bold ":""'},p:[45,19,1298]},{t:2,x:{r:["dept_class","ijob"],s:"_0(_1)"},p:[45,49,1328]}]},f:[{t:2,r:"name",p:[46,7,1357]}," (",{t:2,r:"assignment",p:[46,17,1367]},") ",{p:[47,6,1388],t:7,e:"span",f:[]}]}]}," ",{p:[49,5,1409],t:7,e:"td",f:[{t:4,f:[{p:[51,7,1448],t:7,e:"span",a:{"class":["health ",{t:2,x:{r:["health_state","oxydam","toxdam","burndam","brutedam"],s:"_0(_1,_2,_3,_4)"},p:[51,27,1468]}]}}],n:50,x:{r:["oxydam"],s:"_0!=null"},p:[50,6,1419]},{t:4,n:51,f:[{t:4,f:[{p:[54,8,1573],t:7,e:"span",a:{"class":"health health-5"}}],n:50,r:"life_status",p:[53,7,1546]},{t:4,n:51,f:[{p:[56,8,1633],t:7,e:"span",a:{"class":"health health-0"}}],r:"life_status"}],x:{r:["oxydam"],s:"_0!=null"}}]}," ",{p:[60,5,1712],t:7,e:"td",f:[{t:4,f:[{p:[62,7,1751],t:7,e:"span",f:["( ",{p:[64,8,1773],t:7,e:"span",a:{"class":"oxy"},f:[{t:2,r:"oxydam",p:[64,26,1791]}]}," / ",{p:[66,8,1825],t:7,e:"span",a:{"class":"toxin"},f:[{t:2,r:"toxdam",p:[66,28,1845]}]}," / ",{p:[68,8,1879],t:7,e:"span",a:{"class":"burn"},f:[{t:2,r:"burndam",p:[68,27,1898]}]}," / ",{p:[70,8,1933],t:7,e:"span",a:{"class":"brute"},f:[{t:2,r:"brutedam",p:[70,28,1953]}]}," )"]}],n:50,x:{r:["oxydam"],s:"_0!=null"},p:[61,6,1722]},{t:4,n:51,f:[{t:4,f:[{p:[75,8,2042],t:7,e:"span",f:["Alive"]}],n:50,r:"life_status",p:[74,7,2015]},{t:4,n:51,f:[{p:[77,8,2083],t:7,e:"span",f:["Dead"]}],r:"life_status"}],x:{r:["oxydam"],s:"_0!=null"}}]}," ",{p:[81,5,2142],t:7,e:"td",f:[{t:4,f:[{p:[83,6,2178],t:7,e:"span",f:[{t:2,r:"area",p:[83,12,2184]}]}],n:50,x:{r:["pos_x"],s:"_0!=null"},p:[82,5,2151]},{t:4,n:51,f:[{p:[85,6,2218],t:7,e:"span",f:["N/A"]}],x:{r:["pos_x"],s:"_0!=null"}}]}," ",{t:4,f:[{p:[89,6,2293],t:7,e:"td",f:[{p:[90,7,2304], +t:7,e:"ui-button",a:{action:"select_person",state:[{t:2,x:{r:["can_track"],s:'_0?null:"disabled"'},p:[90,48,2345]}],params:['{"name":"',{t:2,r:"name",p:[90,100,2397]},'"}']},f:["Track"]}]}],n:50,r:"data.link_allowed",p:[88,5,2261]}]}],n:52,r:"data.sensors",p:[42,3,1240]}]}]}]}]}," "]},e.exports=a.extend(r.exports)},{341:341}],387:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[2,3,32],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[3,3,64],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[3,9,70]}]}]}," ",{t:4,f:[{p:[6,5,184],t:7,e:"ui-section",a:{label:"State"},f:[{p:[7,7,217],t:7,e:"span",a:{"class":[{t:2,r:"data.occupant.statstate",p:[7,20,230]}]},f:[{t:2,r:"data.occupant.stat",p:[7,49,259]}]}]}," ",{p:[9,4,309],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[10,6,347],t:7,e:"span",a:{"class":[{t:2,r:"data.occupant.temperaturestatus",p:[10,19,360]}]},f:[{t:2,r:"data.occupant.bodyTemperature",p:[10,56,397]}," K"]}]}," ",{p:[12,5,461],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[13,7,495],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[13,20,508]}],max:[{t:2,r:"data.occupant.maxHealth",p:[13,54,542]}],value:[{t:2,r:"data.occupant.health",p:[13,90,578]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[14,16,619]}]},f:[{t:2,r:"data.occupant.health",p:[14,68,671]}]}]}," ",{t:4,f:[{p:[17,7,892],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[17,26,911]}]},f:[{p:[18,9,931],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[18,30,952]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[18,66,988]}],state:"bad"},f:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[18,103,1025]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[16,5,727]}],n:50,r:"data.hasOccupant",p:[5,3,155]}]}," ",{p:[23,1,1116],t:7,e:"ui-display",a:{title:"Cell"},f:[{p:[24,3,1144],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[25,5,1175],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[25,22,1192]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[26,14,1251]}],state:[{t:2,x:{r:["data.isOpen"],s:'_0?"disabled":null'},p:[27,14,1306]}],action:"power"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[28,22,1364]}]}]}," ",{p:[30,3,1430],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[31,3,1465],t:7,e:"span",a:{"class":[{t:2,r:"data.temperaturestatus",p:[31,16,1478]}]},f:[{t:2,r:"data.cellTemperature",p:[31,44,1506]}," K"]}]}," ",{p:[33,2,1556],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[34,5,1586],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOpen"],s:'_0?"unlock":"lock"'},p:[34,22,1603]}],action:"door"},f:[{t:2,x:{r:["data.isOpen"],s:'_0?"Open":"Closed"'},p:[34,73,1654]}]}," ",{p:[35,5,1706],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoEject"],s:'_0?"sign-out":"sign-in"'},p:[35,22,1723]}],action:"autoeject"},f:[{t:2,x:{r:["data.autoEject"],s:'_0?"Auto":"Manual"'},p:[35,86,1787]}]}]}]}," ",{p:{button:[{p:[40,5,1928],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[40,36,1959]}],action:"ejectbeaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[42,3,2060],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{t:4,f:[{p:[45,9,2167],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,r:"volume",p:[45,52,2210]}," units of ",{t:2,r:"name",p:[45,72,2230]}]},{p:[45,87,2245],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[44,7,2128]},{t:4,n:51,f:[{p:[47,9,2274],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[43,5,2094]},{t:4,n:51,f:[{p:[50,7,2347],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],388:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,14],t:7,e:"ui-section",a:{label:"State"},f:[{t:4,f:[{p:[4,4,73],t:7,e:"span",a:{"class":"good"},f:["Ready"]}],n:50,r:"data.full_pressure",p:[3,3,43]},{t:4,n:51,f:[{t:4,f:[{p:[7,5,147],t:7,e:"span",a:{"class":"bad"},f:["Power Disabled"]}],n:50,r:"data.panel_open",p:[6,4,119]},{t:4,n:51,f:[{t:4,f:[{p:[10,6,239],t:7,e:"span",a:{"class":"average"},f:["Pressurizing"]}],n:50,r:"data.pressure_charging",p:[9,5,203]},{t:4,n:51,f:[{p:[12,6,299],t:7,e:"span",a:{"class":"bad"},f:["Off"]}],r:"data.pressure_charging"}],r:"data.panel_open"}],r:"data.full_pressure"}]}," ",{p:[17,2,377],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[18,3,409],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.per",p:[18,36,442]}],state:"good"},f:[{t:2,r:"data.per",p:[18,63,469]},"%"]}]}," ",{p:[20,5,511],t:7,e:"ui-section",a:{label:"Handle"},f:[{p:[21,9,547],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.flush"],s:'_0?"toggle-on":"toggle-off"'},p:[22,10,568]}],state:[{t:2,x:{r:["data.isai","data.panel_open"],s:'_0||_1?"disabled":null'},p:[23,11,625]}],action:[{t:2,x:{r:["data.flush"],s:'_0?"handle-0":"handle-1"'},p:[24,12,691]}]},f:[{t:2,x:{r:["data.flush"],s:'_0?"Disengage":"Engage"'},p:[25,5,739]}]}]}," ",{p:[27,2,811],t:7,e:"ui-section",a:{label:"Eject"},f:[{p:[28,3,840],t:7,e:"ui-button",a:{icon:"sign-out",state:[{t:2,x:{r:["data.isai"],s:'_0?"disabled":null'},p:[28,37,874]}],action:"eject"},f:["Eject Contents"]},{p:[28,114,951],t:7,e:"br"}]}," ",{p:[30,2,973],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,3,1002],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["data.panel_open"],s:'_0?"disabled":null'},p:[31,38,1037]}],action:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"pump-0":"pump-1"'},p:[31,87,1086]}],style:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"selected":null'},p:[31,145,1144]}]}},{p:[31,206,1205],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],389:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"DNA Vault Database"},f:[{p:[2,3,42],t:7,e:"ui-section",a:{label:"Human DNA"},f:[{p:[3,7,79],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.dna_max",p:[3,28,100]}],value:[{t:2,r:"data.dna",p:[3,53,125]}]},f:[{t:2,r:"data.dna",p:[3,67,139]},"/",{t:2,r:"data.dna_max",p:[3,80,152]}," Samples"]}]}," ",{p:[5,3,204],t:7,e:"ui-section",a:{label:"Plant Data"},f:[{p:[6,5,240],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.plants_max",p:[6,26,261]}],value:[{t:2,r:"data.plants",p:[6,54,289]}]},f:[{t:2,r:"data.plants",p:[6,71,306]},"/",{t:2,r:"data.plants_max",p:[6,87,322]}," Samples"]}]}," ",{p:[8,3,377],t:7,e:"ui-section",a:{label:"Animal Data"},f:[{p:[9,5,414],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.animals_max",p:[9,26,435]}],value:[{t:2,r:"data.animals",p:[9,55,464]}]},f:[{t:2,r:"data.animals",p:[9,73,482]},"/",{t:2,r:"data.animals_max",p:[9,90,499]}," Samples"]}]}]}," ",{t:4,f:[{p:[13,1,604],t:7,e:"ui-display",a:{title:"Personal Gene Therapy"},f:[{p:[14,3,650],t:7,e:"ui-section",f:[{p:[15,2,664],t:7,e:"span",f:["Applicable gene therapy treatments:"]}]}," ",{p:[17,3,731],t:7,e:"ui-section",f:[{p:[18,2,745],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceA",p:[18,47,790]},'"}']},f:[{t:2,r:"data.choiceA",p:[18,67,810]}]}," ",{p:[19,2,840],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceB",p:[19,47,885]},'"}']},f:[{t:2,r:"data.choiceB",p:[19,67,905]}]}]}]}],n:50,x:{r:["data.completed","data.used"],s:"_0&&!_1"},p:[12,1,567]}]},e.exports=a.extend(r.exports)},{341:341}],390:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-display",a:{title:[{t:2,r:"data.question",p:[2,21,41]}]},f:[{p:[3,5,64],t:7,e:"ui-section",f:[{t:4,f:[{p:[5,9,114],t:7,e:"ui-button",a:{action:"vote",params:['{"answer": "',{t:2,r:"answer",p:[6,45,169]},'"}'],style:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[7,18,200]}]},f:[{t:2,r:"answer",p:[7,53,235]}," (",{t:2,r:"amount",p:[7,65,247]},")"]}],n:52,r:"data.answers",p:[4,7,83]}]}]}],n:50,r:"data.shaking",p:[1,1,0]},{t:4,n:51,f:[{p:[13,3,341],t:7,e:"ui-notice",f:["The eightball is not currently being shaken."]}],r:"data.shaking"}]},e.exports=a.extend(r.exports)},{341:341}],391:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,5,16],t:7,e:"span",f:["Time Until Launch: ",{t:2,r:"data.timer_str",p:[2,30,41]}]}]}," ",{p:[4,1,80],t:7,e:"ui-notice",f:[{p:[5,3,94],t:7,e:"span",f:["Engines: ",{t:2,x:{r:["data.engines_started"],s:'_0?"Online":"Idle"'},p:[5,18,109]}]}]}," ",{p:[7,1,174],t:7,e:"ui-display",a:{title:"Early Launch"},f:[{p:[8,2,209],t:7,e:"span",f:["Authorizations Remaining: ",{t:2,x:{r:["data.emagged","data.authorizations_remaining"],s:'_0?"ERROR":_1'},p:[9,2,242]}]}," ",{p:[10,2,309],t:7,e:"ui-button",a:{icon:"exclamation-triangle",action:"authorize",style:"danger",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[12,10,393]}]},f:["AUTHORIZE"]}," ",{p:[15,2,459],t:7,e:"ui-button",a:{icon:"minus",action:"repeal",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[16,10,508]}]},f:["Repeal"]}," ",{p:[19,2,571],t:7,e:"ui-button",a:{icon:"close",action:"abort",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[20,10,619]}]},f:["Repeal All"]}]}," ",{p:[24,1,699],t:7,e:"ui-display",a:{title:"Authorizations"},f:[{t:4,f:[{p:[26,3,768],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{t:2,r:"name",p:[26,34,799]}," (",{t:2,r:"job",p:[26,44,809]},")"]}],n:52,r:"data.authorizations",p:[25,2,736]},{t:4,n:51,f:[{p:[28,3,843],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:["No authorizations."]}],r:"data.authorizations"}]}]},e.exports=a.extend(r.exports)},{341:341}],392:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,15],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.hidden_message",p:[3,5,48]}]}," ",{p:[5,3,90],t:7,e:"ui-section",a:{label:"Created On"},f:[{t:2,r:"data.realdate",p:[6,5,126]}]}," ",{p:[8,3,162],t:7,e:"ui-section",a:{label:"Approval"},f:[{p:[9,5,196],t:7,e:"ui-button",a:{icon:"arrow-up",state:[{t:2,x:{r:["data.is_creator","data.has_liked"],s:'_0?"disabled":_1?"selected":null'},p:[11,14,242]}],action:"like"},f:[{t:2,r:"data.num_likes",p:[12,21,333]}]}," ",{p:[13,5,368],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.is_creator","data.has_liked","data.has_disliked"],s:'_0?"disabled":!_1&&!_2?"selected":null'},p:[15,14,412]}],action:"neutral"}}," ",{p:[17,5,546],t:7,e:"ui-button",a:{icon:"arrow-down",state:[{t:2,x:{r:["data.is_creator","data.has_disliked"],s:'_0?"disabled":_1?"selected":null'},p:[19,14,594]}],action:"dislike"},f:[{t:2,r:"data.num_dislikes",p:[20,24,691]}]}]}]}," ",{t:4,f:[{p:[24,3,782],t:7,e:"ui-display",a:{title:"Admin Panel"},f:[{p:[25,5,819],t:7,e:"ui-section",a:{label:"Creator Ckey"},f:[{t:2,r:"data.creator_key",p:[25,38,852]}]}," ",{p:[26,5,890],t:7,e:"ui-section",a:{label:"Creator Character Name"},f:[{t:2,r:"data.creator_name",p:[26,48,933]}]}," ",{p:[27,5,972],t:7,e:"ui-button",a:{icon:"remove",action:"delete",style:"danger"},f:["Delete"]}]}],n:50,r:"data.admin_mode",p:[23,1,756]}]},e.exports=a.extend(r.exports)},{341:341}],393:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,14],t:7,e:"span",f:["The requested interface (",{t:2,r:"config.interface",p:[2,34,45]},") was not found. Does it exist?"]}]}]},e.exports=a.extend(r.exports)},{341:341}],394:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,15],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,5,47],t:7,e:"ui-button",a:{action:"toggle_power",style:[{t:2,x:{r:["data.toggle"],s:'_0?"selected":null'},p:[5,18,107]}]},f:["Turn ",{t:2,x:{r:["data.toggle"],s:'_0?"off":"on"'},p:[6,16,161]}]}]}," ",{p:[9,3,227],t:7,e:"ui-display",a:{title:"Logging"},f:[{t:4,f:[{p:[11,3,282],t:7,e:"ui-section",a:{label:">"},f:[{t:2,r:".",p:[11,25,304]},{p:[11,30,309],t:7,e:"ui-section",f:[]}]}],n:52,r:"data.logs",p:[10,5,260]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],395:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[2,1,30],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,2,58],t:7,e:"ui-button",a:{icon:"power-off",style:[{t:2,x:{r:["data.power"],s:'_0?"selected":"danger"'},p:[3,37,93]}],action:"power"},f:[{t:2,x:{r:["data.power"],s:'_0?"Enabled":"Disabled"'},p:[3,92,148]}]}]}," ",{p:[5,1,214],t:7,e:"ui-section",a:{label:"Tag"},f:[{p:[6,2,240],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:[{t:2,r:"data.tag",p:[6,43,281]}]}]}," ",{p:[8,1,320],t:7,e:"ui-section",a:{label:"Scanning mode"},f:[{p:[9,2,356],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.updating"],s:'_0?"unlock":"lock"'},p:[9,18,372]}],style:[{t:2,x:{r:["data.updating"],s:'_0?null:"danger"'},p:[9,63,417]}],action:"updating",tooltip:"Toggle between automatic scanning or scan only when a button is pressed.","tooltip-side":"right"},f:[{t:2,x:{r:["data.updating"],s:'_0?"AUTO":"MANUAL"'},p:[9,221,575]}]}]}," ",{p:[11,1,639],t:7,e:"ui-section",a:{label:"Detection range"},f:[{p:[12,2,677],t:7,e:"ui-button",a:{icon:"refresh",style:[{t:2,x:{r:["data.globalmode"],s:'_0?null:"selected"'},p:[12,35,710]}],action:"globalmode",tooltip:"Local sector or whole region scanning.","tooltip-side":"right"},f:[{t:2,x:{r:["data.globalmode"],s:'_0?"MAXIMUM":"LOCAL"'},p:[12,165,840]}]}]}]}," ",{t:4,f:[{p:[16,2,942],t:7,e:"ui-display",a:{title:"Current Location"},f:[{p:[17,3,982],t:7,e:"span",f:[{t:2,r:"data.current",p:[17,9,988]}]}]}," ",{p:[20,2,1029],t:7,e:"ui-display",a:{title:"Detected Signals"},f:[{t:4,f:[{p:[22,3,1093],t:7,e:"ui-section",a:{label:[{t:2,r:"entrytag",p:[22,21,1111]}]},f:[{p:[23,3,1127],t:7,e:"span",f:[{t:2,r:"area",p:[23,9,1133]}," (",{t:2,r:"coord",p:[23,19,1143]},")"]}," ",{t:4,f:[{p:[25,4,1185],t:7,e:"span",f:["Dist: ",{t:2,r:"dist",p:[25,16,1197]},"m Dir: ",{t:2,r:"degrees",p:[25,31,1212]},"° (",{t:2,r:"direction",p:[25,45,1226]},")"]}],n:50,r:"direction",p:[24,3,1164]}]}],n:52,r:"data.signals",p:[21,2,1068]}]}],n:50,r:"data.power",p:[15,1,922]}]},e.exports=a.extend(r.exports)},{341:341}],396:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Labor Camp Teleporter"},f:[{p:[2,2,44],t:7,e:"ui-section",a:{label:"Teleporter Status"},f:[{p:[3,3,85],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.teleporter"],s:'_0?"good":"bad"'},p:[3,16,98]}]},f:[{t:2,x:{r:["data.teleporter"],s:'_0?"Connected":"Not connected"'},p:[3,54,136]}]}]}," ",{t:4,f:[{p:[6,4,239],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[7,5,273],t:7,e:"span",f:[{t:2,r:"data.teleporter_location",p:[7,11,279]}]}]}," ",{p:[9,4,335],t:7,e:"ui-section",a:{label:"Locked status"},f:[{p:[10,5,374],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"lock":"unlock"'},p:[10,22,391]}],action:"teleporter_lock"},f:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"Locked":"Unlocked"'},p:[10,93,462]}]}," ",{p:[11,5,527],t:7,e:"ui-button",a:{action:"toggle_open"},f:[{t:2,x:{r:["data.teleporter_state_open"],s:'_0?"Open":"Closed"'},p:[11,37,559]}]}]}],n:50,r:"data.teleporter",p:[5,3,212]},{t:4,n:51,f:[{p:[14,4,653],t:7,e:"span",f:[{p:[14,10,659],t:7,e:"ui-button",a:{action:"scan_teleporter"},f:["Scan Teleporter"]}]}],r:"data.teleporter"}]}," ",{p:[17,1,754],t:7,e:"ui-display",a:{title:"Labor Camp Beacon"},f:[{p:[18,2,794],t:7,e:"ui-section",a:{label:"Beacon Status"},f:[{p:[19,3,831],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.beacon"],s:'_0?"good":"bad"'},p:[19,16,844]}]},f:[{t:2,x:{r:["data.beacon"],s:'_0?"Connected":"Not connected"'},p:[19,50,878]}]}]}," ",{t:4,f:[{p:[22,3,971],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[23,4,1004],t:7,e:"span",f:[{t:2,r:"data.beacon_location",p:[23,10,1010]}]}]}],n:50,r:"data.beacon",p:[21,2,949]},{t:4,n:51,f:[{p:[26,4,1072],t:7,e:"span",f:[{p:[26,10,1078],t:7,e:"ui-button",a:{action:"scan_beacon"},f:["Scan Beacon"]}]}],r:"data.beacon"}]}," ",{p:[29,1,1165],t:7,e:"ui-display",a:{title:"Prisoner details"},f:[{p:[30,2,1204],t:7,e:"ui-section",a:{label:"Prisoner ID"},f:[{p:[31,3,1239],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[31,33,1269]}]}]}," ",{t:4,f:[{p:[34,2,1359],t:7,e:"ui-section",a:{label:"Set ID goal"},f:[{p:[35,4,1395],t:7,e:"ui-button",a:{action:"set_goal"},f:[{t:2,r:"data.goal",p:[35,33,1424]}]}]}],n:50,r:"data.id",p:[33,2,1342]}," ",{p:[38,2,1475],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[39,3,1507],t:7,e:"span",f:[{t:2,x:{r:["data.prisoner.name"],s:'_0?_0:"No Occupant"'},p:[39,9,1513]}]}]}," ",{t:4,f:[{p:[42,3,1620],t:7,e:"ui-section",a:{label:"Criminal Status"},f:[{p:[43,4,1660],t:7,e:"span",f:[{t:2,r:"data.prisoner.crimstat",p:[43,10,1666]}]}]}],n:50,r:"data.prisoner",p:[41,2,1596]}]}," ",{p:[47,1,1739],t:7,e:"ui-display",f:[{p:[48,2,1753],t:7,e:"center",f:[{p:[48,10,1761],t:7,e:"ui-button",a:{action:"teleport",state:[{t:2,x:{r:["data.can_teleport"],s:'_0?null:"disabled"'},p:[48,45,1796]}]},f:["Process Prisoner"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],397:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,14],t:7,e:"center",f:[{p:[2,10,22],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[2,40,52]}]}]}]}," ",{p:[4,1,132],t:7,e:"ui-display",a:{title:"Stored Items"},f:[{t:4,f:[{p:[6,3,189],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[6,22,208]}]},f:[{p:[7,4,222],t:7,e:"ui-button",a:{action:"release_items",params:['{"mobref":',{t:2,r:"mob",p:[7,56,274]},"}"],state:[{t:2,x:{r:["data.can_reclaim"],s:'_0?null:"disabled"'},p:[7,72,290]}]},f:["Drop Items"]}]}],n:52,r:"data.mobs",p:[5,2,167]}]}]},e.exports=a.extend(r.exports)},{341:341}],398:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,68],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.emagged"],s:'_0?"un":null'},p:[3,20,85]},"lock"],state:[{t:2,x:{r:["data.can_toggle_safety"],s:'_0?null:"disabled"'},p:[3,63,128]}],action:"safety"},f:["Safeties: ",{p:[4,14,206],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.emagged"],s:'_0?"bad":"good"'},p:[4,27,219]}]},f:[{t:2,x:{r:["data.emagged"],s:'_0?"OFF":"ON"'},p:[4,62,254]}]}]}]},t:7,e:"ui-display",a:{title:"Default Programs",button:0},f:[" ",{t:4,f:[{p:[8,2,356],t:7,e:"ui-button",a:{action:"load_program",params:['{"type": ',{t:2,r:"type",p:[8,52,406]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[8,70,424]}]},f:[{t:2,r:"name",p:[9,5,475]}," "]},{p:[10,14,497],t:7,e:"br"}],n:52,r:"data.default_programs",p:[7,2,323]}]}," ",{t:4,f:[{p:[14,2,549],t:7,e:"ui-display",a:{title:"Dangerous Programs"},f:[{t:4,f:[{p:[16,4,623],t:7,e:"ui-button",a:{icon:"warning",action:"load_program",params:['{"type": ',{t:2,r:"type",p:[16,69,688]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[16,87,706]}]},f:[{t:2,r:"name",p:[17,5,757]}," "]},{p:[18,16,781],t:7,e:"br"}],n:52,r:"data.emag_programs",p:[15,3,591]}]}],n:50,r:"data.emagged",p:[13,1,527]}]},e.exports=a.extend(r.exports)},{341:341}],399:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[15,1,266],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[16,3,298],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[17,3,330],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[17,9,336]}]}]}," ",{t:4,f:[{p:[20,5,447],t:7,e:"ui-section",a:{label:"State"},f:[{p:[21,7,480],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[21,20,493]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[21,43,516]}]}]}],n:50,r:"data.occupied",p:[19,3,421]}]}," ",{p:[25,1,656],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[26,2,687],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[27,5,717],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[27,22,734]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[27,71,783]}]}]}," ",{p:[29,3,846],t:7,e:"ui-section",a:{label:"Uses"},f:[{t:2,r:"data.ready_implants",p:[30,5,876]}," ",{t:4,f:[{p:[32,7,938],t:7,e:"span",a:{"class":"fa fa-cog fa-spin"}}],n:50,r:"data.replenishing",p:[31,5,906]}]}," ",{p:[35,3,1002],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[36,7,1038],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.occupied","data.ready_implants","data.ready"],s:'_0&&_1>0&&_2?null:"disabled"'},p:[36,25,1056]}],action:"implant"},f:[{t:2,x:{r:["data.ready","data.special_name"],s:'_0?(_1?_1:"Implant"):"Recharging"'},p:[37,9,1162]}," "]},{p:[38,19,1265],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],400:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{healthState:function(){var t=this.get("data.health");return t>70?"good":t>50?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[15,3,282],t:7,e:"ui-notice",f:[{p:[16,5,298],t:7,e:"span",f:["Wipe in progress!"]}]}],n:50,r:"data.wiping",p:[14,1,260]},{p:{button:[{t:4,f:[{p:[22,7,458],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.isDead"],s:'_0?"disabled":null'},p:[22,38,489]}],action:"wipe"},f:[{t:2,x:{r:["data.wiping"],s:'_0?"Stop Wiping":"Wipe"'},p:[22,89,540]}," AI"]}],n:50,r:"data.name",p:[21,5,434]}]},t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.name"],s:'_0||"Empty Card"'},p:[19,19,370]}],button:0},f:[" ",{t:4,f:[{p:[26,5,647],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[27,9,683],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"bad":"good"'},p:[27,22,696]}]},f:[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"Offline":"Operational"'},p:[27,76,750]}]}]}," ",{p:[29,5,843],t:7,e:"ui-section",a:{label:"Software Integrity"},f:[{p:[30,7,889],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[30,40,922]}],state:[{t:2,r:"healthState",p:[30,64,946]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[30,81,963]},"%"]}]}," ",{p:[32,5,1024],t:7,e:"ui-section",a:{label:"Laws"},f:[{t:4,f:[{p:[34,9,1084],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[34,33,1108]}]},{p:[34,45,1120],t:7,e:"br"}],n:52,r:"data.laws",p:[33,7,1056]}]}," ",{p:[37,5,1164],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[38,7,1200],t:7,e:"ui-button",a:{icon:"signal",style:[{t:2,x:{r:["data.wireless"],s:'_0?"selected":null'},p:[38,39,1232]}],action:"wireless"},f:["Wireless Activity"]}," ",{p:[39,7,1325],t:7,e:"ui-button",a:{icon:"microphone",style:[{t:2,x:{r:["data.radio"],s:'_0?"selected":null'},p:[39,43,1361]}],action:"radio"},f:["Subspace Radio"]}]}],n:50,r:"data.name",p:[25,3,625]}]}]},e.exports=a.extend(r.exports)},{341:341}],401:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,22],t:7,e:"ui-notice",f:[{p:[3,3,36],t:7,e:"span",f:["Waiting for another device to confirm your request..."]}]}],n:50,r:"data.waiting",p:[1,1,0]},{t:4,n:51,f:[{p:[6,2,127],t:7,e:"ui-display",f:[{p:[7,3,142],t:7,e:"ui-section",f:[{t:4,f:[{p:[9,5,189],t:7,e:"ui-button",a:{icon:"check",action:"auth_swipe"},f:["Authorize ",{t:2,r:"data.auth_required",p:[9,59,243]}]}],n:50,r:"data.auth_required",p:[8,4,158]},{t:4,n:51,f:[{p:[11,5,294],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.red_alert"],s:'_0?"disabled":null'},p:[11,38,327]}],action:"red_alert"},f:["Red Alert"]}," ",{p:[12,5,412],t:7,e:"ui-button",a:{icon:"wrench",state:[{t:2,x:{r:["data.emergency_maint"],s:'_0?"disabled":null'},p:[12,37,444]}],action:"emergency_maint"},f:["Emergency Maintenance Access"]}," ",{p:[13,5,560],t:7,e:"ui-button",a:{icon:"warning",state:"null",action:"bsa_unlock"},f:["Bluespace Artillery Unlock"]}],r:"data.auth_required"}]}]}],r:"data.waiting"}]},e.exports=a.extend(r.exports)},{341:341}],402:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Ore values"},f:[{t:4,f:[{p:[3,3,55],t:7,e:"ui-section",a:{label:[{t:2,r:"ore",p:[3,22,74]}]},f:[{p:[4,4,87],t:7,e:"span",f:[{t:2,r:"value",p:[4,10,93]}]}]}],n:52,r:"data.ores",p:[2,2,33]}]}," ",{p:[8,1,151],t:7,e:"ui-display",a:{title:"Points"},f:[{p:[9,2,180],t:7,e:"ui-section",a:{label:"ID"},f:[{p:[10,3,206],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[10,33,236]}]}]}," ",{t:4,f:[{p:[13,3,327],t:7,e:"ui-section",a:{label:"Points collected"},f:[{p:[14,4,368],t:7,e:"span",f:[{t:2,r:"data.points",p:[14,10,374]}]}]}," ",{p:[16,3,415],t:7,e:"ui-section",a:{label:"Goal"},f:[{p:[17,4,444],t:7,e:"span",f:[{t:2,r:"data.goal",p:[17,10,450]}]}]}," ",{p:[19,3,489],t:7,e:"ui-section",a:{label:"Unclaimed points"},f:[{p:[20,4,530],t:7,e:"span",f:[{t:2,r:"data.unclaimed_points",p:[20,10,536]}]}," ",{p:[21,4,572],t:7,e:"ui-button",a:{action:"claim_points",state:[{t:2,x:{r:["data.unclaimed_points"],s:'_0?null:"disabled"'},p:[21,43,611]}]},f:["Claim points"]}]}],n:50,r:"data.id",p:[12,2,309]}]}," ",{p:[25,1,721],t:7,e:"ui-display",f:[{p:[26,2,735],t:7,e:"center",f:[{p:[27,3,746],t:7,e:"ui-button",a:{action:"move_shuttle",state:[{t:2,x:{r:["data.can_go_home"],s:'_0?null:"disabled"'},p:[27,42,785]}]},f:["Move shuttle"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],403:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Known Languages"},f:[{t:4,f:[{p:[3,5,68],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[3,23,86]}]},f:[{p:[4,7,102],t:7,e:"span",f:[{t:2,r:"desc",p:[4,13,108]}]}," ",{p:[5,7,130],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[5,19,142]}]}," ",{t:4,f:[{p:[7,9,186],t:7,e:"span",f:["(gained from mob)"]}],n:50,r:"shadow",p:[6,7,163]}," ",{p:[9,7,237],t:7,e:"span",f:[{t:2,x:{r:["can_speak"],s:'_0?"Can Speak":"Cannot Speak"'},p:[9,13,243]}]}," ",{t:4,f:[{p:[11,9,332],t:7,e:"ui-button",a:{action:"select_default",params:['{"language_name":"',{t:2,r:"name",p:[13,37,413]},'"}'],style:[{t:2,x:{r:["is_default","can_speak"],s:'_0?"selected":_1?null:"disabled"'},p:[14,18,442]}]},f:[{t:2,x:{r:["is_default"],s:'_0?"Default Language":"Select as Default"'},p:[15,10,512]}]}],n:50,r:"data.is_living",p:[10,7,301]}," ",{t:4,f:[{t:4,f:[{p:[20,11,666],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[20,72,727]},'"}']},f:["Grant"]}],n:50,r:"shadow",p:[19,9,641]},{t:4,n:51,f:[{p:[22,11,784],t:7,e:"ui-button",a:{action:"remove_language",params:['{"language_name":"',{t:2,r:"name",p:[22,73,846]},'"}']},f:["Remove"]}],r:"shadow"}],n:50,r:"data.admin_mode",p:[18,7,609]}]}],n:52,r:"data.languages",p:[2,3,39]}]}," ",{t:4,f:[{t:4,f:[{p:[30,5,1004],t:7,e:"ui-button",a:{action:"toggle_omnitongue",style:[{t:2,x:{r:["data.omnitongue"],s:'_0?"selected":null'},p:[32,14,1061]}]},f:["Omnitongue ",{t:2,x:{r:["data.omnitongue"],s:'_0?"Enabled":"Disabled"'},p:[33,19,1120]}]}],n:50,r:"data.is_living",p:[29,3,977]}," ",{p:[36,3,1196],t:7,e:"ui-display",a:{title:"Unknown Languages"},f:[{t:4,f:[{p:[38,7,1278],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[38,25,1296]}]},f:[{p:[39,9,1314],t:7,e:"span",f:[{t:2,r:"desc",p:[39,15,1320]}]}," ",{p:[40,9,1344],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[40,21,1356]}]}," ",{p:[41,9,1379],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[43,37,1460]},'"}']},f:["Grant"]}]}],n:52,r:"data.unknown_languages",p:[37,5,1239]}]}],n:50,r:"data.admin_mode",p:[28,1,951]}]},e.exports=a.extend(r.exports)},{341:341}],404:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Controls"},f:[{t:4,f:[{t:4,f:[{p:[4,4,81],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[5,5,114],t:7,e:"span",f:["Launchpad closed."]}]}],n:50,r:"data.pad_closed",p:[3,3,54]},{t:4,n:51,f:[{p:[8,4,176],t:7,e:"ui-section",a:{label:"Launchpad"},f:[{p:[9,4,210],t:7,e:"span",f:[{p:[9,10,216],t:7,e:"b",f:[{t:2,r:"data.pad_name",p:[9,13,219]}]}]},{p:[9,41,247],t:7,e:"br"}," ",{p:[10,4,255],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:["Rename"]}," ",{p:[11,4,318],t:7,e:"ui-button",a:{icon:"remove",style:"danger",action:"remove"},f:["Remove"]}]}," ",{p:[14,4,414],t:7,e:"ui-section",a:{label:"Set Target"},f:[{p:[15,4,449],t:7,e:"table",f:[{p:[16,4,460],t:7,e:"tr",f:[{p:[17,5,469],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[17,38,502],t:7,e:"ui-button",a:{action:"up-left"},f:["↖"]}]}," ",{p:[18,5,553],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[18,57,605],t:7,e:"ui-button",a:{action:"up"},f:["↑"]}]}," ",{p:[19,5,651],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[19,56,702],t:7,e:"ui-button",a:{action:"up-right"},f:["↗"]}]}]}," ",{p:[21,4,762],t:7,e:"tr",f:[{p:[22,5,771],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[22,38,804],t:7,e:"ui-button",a:{action:"left",style:"width:35px!important"},f:["←"]}]}," ",{p:[23,5,881],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[23,57,933],t:7,e:"ui-button",a:{action:"reset"},f:["R"]}]}," ",{p:[24,5,982],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[24,56,1033],t:7,e:"ui-button",a:{action:"right"},f:["→"]}]}]}," ",{p:[26,4,1090],t:7,e:"tr",f:[{p:[27,5,1099],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[27,38,1132],t:7,e:"ui-button",a:{action:"down-left"},f:["↙"]}]}," ",{p:[28,5,1185],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[28,57,1237],t:7,e:"ui-button",a:{action:"down"},f:["↓"]}]}," ",{p:[29,5,1285],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[29,56,1336],t:7,e:"ui-button",a:{action:"down-right"},f:["↘"]}]}]}]}]}," ",{p:[33,4,1427],t:7,e:"ui-section",a:{label:"Current Target"},f:[{p:[34,5,1467],t:7,e:"span",f:[{t:2,r:"data.abs_y",p:[34,11,1473]}," ",{t:2,r:"data.north_south",p:[34,26,1488]}]},{p:[34,53,1515],t:7,e:"br"}," ",{p:[35,5,1524],t:7,e:"span",f:[{t:2,r:"data.abs_x",p:[35,11,1530]}," ",{t:2,r:"data.east_west",p:[35,26,1545]}]}]}," ",{p:[37,4,1591],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[38,5,1625],t:7,e:"ui-button",a:{action:"launch",tooltip:"Teleport everything on the pad to the target.","tooltip-side":"down"},f:["Launch"]}," ",{p:[39,5,1751],t:7,e:"ui-button",a:{action:"pull",tooltip:"Teleport everything from the target to the pad.","tooltip-side":"down"},f:["Pull"]}]}],r:"data.pad_closed"}],n:50,r:"data.has_pad",p:[2,2,31]},{t:4,n:51,f:[{p:[45,3,1912],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[46,4,1944],t:7,e:"span",f:["No launchpad found. Link the remote to a launchpad."]}]}],r:"data.has_pad"}]}]},e.exports=a.extend(r.exports)},{341:341}],405:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{mechChargeState:function(t){var e=this.get("data.recharge_port.mech.cell.maxcharge");return t>=e/1.5?"good":t>=e/3?"average":"bad"},mechHealthState:function(t){var e=this.get("data.recharge_port.mech.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[20,1,526],t:7,e:"ui-display",a:{title:"Mech Status"},f:[{t:4,f:[{t:4,f:[{p:[23,4,624],t:7,e:"ui-section",a:{label:"Integrity"},f:[{p:[24,6,660],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,27,681]}],value:[{t:2,r:"adata.recharge_port.mech.health",p:[24,74,728]}],state:[{t:2,x:{r:["mechHealthState","adata.recharge_port.mech.health"],s:"_0(_1)"},p:[24,117,771]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.health"],s:"Math.round(_0)"},p:[24,171,825]},"/",{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,219,873]}]}]}," ",{t:4,f:[{t:4,f:[{p:[28,5,1034],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[28,31,1060], +t:7,e:"span",a:{"class":"bad"},f:["Cell Critical Failure"]}]}],n:50,r:"data.recharge_port.mech.cell.critfail",p:[27,3,984]},{t:4,n:51,f:[{p:[30,11,1141],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,13,1180],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.cell.maxcharge",p:[31,34,1201]}],value:[{t:2,r:"adata.recharge_port.mech.cell.charge",p:[31,86,1253]}],state:[{t:2,x:{r:["mechChargeState","adata.recharge_port.mech.cell.charge"],s:"_0(_1)"},p:[31,134,1301]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.cell.charge"],s:"Math.round(_0)"},p:[31,193,1360]},"/",{t:2,x:{r:["adata.recharge_port.mech.cell.maxcharge"],s:"Math.round(_0)"},p:[31,246,1413]}]}]}],r:"data.recharge_port.mech.cell.critfail"}],n:50,r:"data.recharge_port.mech.cell",p:[26,4,945]},{t:4,n:51,f:[{p:[35,3,1524],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[35,29,1550],t:7,e:"span",a:{"class":"bad"},f:["Cell Missing"]}]}],r:"data.recharge_port.mech.cell"}],n:50,r:"data.recharge_port.mech",p:[22,2,589]},{t:4,n:51,f:[{p:[38,4,1625],t:7,e:"ui-section",f:["Mech Not Found"]}],r:"data.recharge_port.mech"}],n:50,r:"data.recharge_port",p:[21,3,561]},{t:4,n:51,f:[{p:[41,5,1689],t:7,e:"ui-section",f:["Recharging Port Not Found"]}," ",{p:[42,2,1741],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}],r:"data.recharge_port"}]}]},e.exports=a.extend(r.exports)},{341:341}],406:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{t:4,f:[{p:[3,5,45],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[4,7,88],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[4,24,105]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[4,75,156]}]}]}],n:50,r:"data.siliconUser",p:[2,3,15]},{t:4,n:51,f:[{p:[7,5,247],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[7,31,273]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[10,1,358],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[11,3,389],t:7,e:"ui-section",a:{label:"Power"},f:[{t:4,f:[{p:[13,7,470],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[13,24,487]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[13,68,531]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[13,116,579]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[12,5,421]},{t:4,n:51,f:[{p:[15,7,639],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.on"],s:'_0?"good":"bad"'},p:[15,20,652]}],state:[{t:2,x:{r:["data.cell"],s:'_0?null:"disabled"'},p:[15,57,689]}]},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[15,92,724]}]}],x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"}}]}," ",{p:[18,3,791],t:7,e:"ui-section",a:{label:"Cell"},f:[{p:[19,5,822],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.cell"],s:'_0?null:"bad"'},p:[19,18,835]}]},f:[{t:2,x:{r:["data.cell","data.cellPercent"],s:'_0?_1+"%":"No Cell"'},p:[19,48,865]}]}]}," ",{p:[21,3,943],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[22,5,974],t:7,e:"span",a:{"class":[{t:2,r:"data.modeStatus",p:[22,18,987]}]},f:[{t:2,r:"data.mode",p:[22,39,1008]}]}]}," ",{p:[24,3,1049],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[25,5,1080],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.load"],s:'_0?"good":"average"'},p:[25,18,1093]}]},f:[{t:2,x:{r:["data.load"],s:'_0?_0:"None"'},p:[25,54,1129]}]}]}," ",{p:[27,3,1191],t:7,e:"ui-section",a:{label:"Destination"},f:[{p:[28,5,1229],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.destination"],s:'_0?"good":"average"'},p:[28,18,1242]}]},f:[{t:2,x:{r:["data.destination"],s:'_0?_0:"None"'},p:[28,60,1284]}]}]}]}," ",{t:4,f:[{p:{button:[{t:4,f:[{p:[35,9,1513],t:7,e:"ui-button",a:{icon:"eject",action:"unload"},f:["Unload"]}],n:50,r:"data.load",p:[34,7,1486]}," ",{t:4,f:[{p:[38,9,1623],t:7,e:"ui-button",a:{icon:"eject",action:"ejectpai"},f:["Eject PAI"]}],n:50,r:"data.haspai",p:[37,7,1594]}," ",{p:[40,7,1709],t:7,e:"ui-button",a:{icon:"pencil",action:"setid"},f:["Set ID"]}]},t:7,e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[42,5,1791],t:7,e:"ui-section",a:{label:"Destination"},f:[{p:[43,7,1831],t:7,e:"ui-button",a:{icon:"pencil",action:"destination"},f:["Set Destination"]}," ",{p:[44,7,1912],t:7,e:"ui-button",a:{icon:"stop",action:"stop"},f:["Stop"]}," ",{p:[45,7,1973],t:7,e:"ui-button",a:{icon:"play",action:"go"},f:["Go"]}]}," ",{p:[47,5,2047],t:7,e:"ui-section",a:{label:"Home"},f:[{p:[48,7,2080],t:7,e:"ui-button",a:{icon:"home",action:"home"},f:["Go Home"]}," ",{p:[49,7,2144],t:7,e:"ui-button",a:{icon:"pencil",action:"sethome"},f:["Set Home"]}]}," ",{p:[51,5,2231],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[52,7,2268],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoReturn"],s:'_0?"check-square-o":"square-o"'},p:[52,24,2285]}],style:[{t:2,x:{r:["data.autoReturn"],s:'_0?"selected":null'},p:[52,84,2345]}],action:"autoret"},f:["Auto-Return Home"]}," ",{p:[54,7,2449],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoPickup"],s:'_0?"check-square-o":"square-o"'},p:[54,24,2466]}],style:[{t:2,x:{r:["data.autoPickup"],s:'_0?"selected":null'},p:[54,84,2526]}],action:"autopick"},f:["Auto-Pickup Crate"]}," ",{p:[56,7,2632],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.reportDelivery"],s:'_0?"check-square-o":"square-o"'},p:[56,24,2649]}],style:[{t:2,x:{r:["data.reportDelivery"],s:'_0?"selected":null'},p:[56,88,2713]}],action:"report"},f:["Report Deliveries"]}]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[31,1,1373]}]},e.exports=a.extend(r.exports)},{341:341}],407:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Chamber Console"},f:[{p:[2,1,44],t:7,e:"ui-display",a:{title:"Program Disk"},f:[{t:4,f:[{p:[4,2,101],t:7,e:"ui-button",a:{icon:"eject",action:"eject"},f:["Eject Disk"]},{p:[4,63,162],t:7,e:"br"}," ",{t:4,f:[{p:[6,3,195],t:7,e:"ui-section",a:{label:"Program Name"},f:[{t:2,r:"data.disk.name",p:[6,36,228]}]}," ",{p:[7,3,262],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.disk.desc",p:[7,35,294]}]}," ",{p:[8,3,328],t:7,e:"ui-section",a:{label:"Activation Status"},f:[{t:2,x:{r:["data.disk.activated"],s:'_0?"Active":"Inactive"'},p:[8,41,366]}]}," ",{t:4,f:[{p:[10,4,468],t:7,e:"ui-section",a:{label:"Activation Delay"},f:[{t:2,r:"data.disk.activation_delay",p:[10,41,505]}]}],n:50,r:"data.disk.activation_delay",p:[9,3,430]}," ",{t:4,f:[{p:[13,4,588],t:7,e:"ui-section",a:{label:"Timer"},f:[{t:2,r:"data.disk.timer",p:[13,30,614]}]}," ",{p:[14,4,650],t:7,e:"ui-section",a:{label:"Timer Type "},f:[{t:2,r:"data.disk.timer_type",p:[14,36,682]}]}],n:50,r:"data.disk.timer",p:[12,3,561]}," ",{t:4,f:[{p:[17,4,769],t:7,e:"ui-section",a:{label:"Activation Code"},f:[{t:2,r:"data.disk.activation_code",p:[17,40,805]}]}],n:50,r:"data.disk.activation_code",p:[16,3,732]}," ",{t:4,f:[{p:[20,4,899],t:7,e:"ui-section",a:{label:"Deactivation Code"},f:[{t:2,r:"data.disk.deactivation_code",p:[20,42,937]}]}],n:50,r:"data.disk.deactivation_code",p:[19,3,860]}," ",{t:4,f:[{p:[23,4,1025],t:7,e:"ui-section",a:{label:"Kill Code"},f:[{t:2,r:"data.disk.kill_code",p:[23,34,1055]}]}],n:50,r:"data.disk.kill_code",p:[22,3,994]}," ",{t:4,f:[{p:[26,4,1138],t:7,e:"ui-section",a:{label:"Trigger Code"},f:[{t:2,r:"data.disk.trigger_code",p:[26,37,1171]}]}],n:50,r:"data.disk.trigger_code",p:[25,3,1104]}," ",{t:4,f:[{t:4,f:[{p:[30,6,1303],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[30,25,1322]}]},f:[{t:2,r:"value",p:[30,35,1332]}]}],n:52,r:"data.disk.extra_settings",p:[29,4,1263]}],n:50,r:"data.disk.has_extra_settings",p:[28,3,1223]}],n:50,r:"data.has_program",p:[5,2,168]},{t:4,n:51,f:[{p:[34,3,1390],t:7,e:"ui-notice",f:["No program detected."]}],r:"data.has_program"}],n:50,r:"data.has_disk",p:[3,1,78]},{t:4,n:51,f:[{p:[37,2,1453],t:7,e:"ui-notice",f:["Insert disk."]}],r:"data.has_disk"}]}," ",{p:[40,1,1511],t:7,e:"br"}," ",{t:4,f:[{p:[42,2,1541],t:7,e:"ui-notice",f:[{t:2,r:"data.status_msg",p:[42,13,1552]}]}],n:50,r:"data.status_msg",p:[41,1,1516]},{t:4,n:51,f:[{p:[44,2,1594],t:7,e:"ui-display",a:{title:"Chamber"},f:[{p:[45,2,1624],t:7,e:"ui-section",f:[{p:[45,14,1636],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock-open":"lock"'},p:[45,30,1652]}],action:"toggle_lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[45,90,1712]}," Chamber"]},{p:[45,146,1768],t:7,e:"br"}]}," ",{p:[46,2,1787],t:7,e:"ui-section",f:[{p:[46,14,1799],t:7,e:"b",f:["Occupant:"]}," ",{t:2,r:"data.occupant_name",p:[46,31,1816]}]}," ",{t:4,f:[{p:[48,4,1882],t:7,e:"ui-section",f:[{p:[48,16,1894],t:7,e:"ui-notice",f:["No nanites detected."]}]}," ",{p:[49,4,1954],t:7,e:"ui-section",f:[{p:[49,16,1966],t:7,e:"ui-button",a:{icon:"syringe",action:"nanite_injection"},f:["Implant Nanites"]}]}],n:50,x:{r:["data.has_nanites"],s:"!_0"},p:[47,2,1853]},{t:4,n:51,f:[{p:[51,3,2071],t:7,e:"ui-display",a:{title:"Nanites"},f:[{t:4,f:[{p:[53,5,2132],t:7,e:"ui-button",a:{icon:"download",action:"add_program"},f:["Install Program From Disk"]},{p:[53,90,2217],t:7,e:"br"}," ",{p:[54,5,2226],t:7,e:"br"}],n:50,r:"data.has_program",p:[52,4,2103]}," ",{p:[56,4,2245],t:7,e:"ui-section",f:[{p:[57,5,2262],t:7,e:"ui-section",a:{label:"Nanite Volume"},f:[{t:2,r:"data.nanite_volume",p:[57,39,2296]}]}," ",{p:[58,5,2336],t:7,e:"ui-section",a:{label:"Growth Rate"},f:[{t:2,r:"data.regen_rate",p:[58,37,2368]}]}," ",{p:[59,5,2405],t:7,e:"ui-section",a:{label:"Safety Threshold"},f:[{t:2,r:"data.safety_threshold",p:[59,42,2442]}," ",{p:[59,68,2468],t:7,e:"ui-button",a:{icon:"pencil",action:"set_safety"},f:["Set"]}]}," ",{p:[60,5,2547],t:7,e:"ui-section",a:{label:"Cloud ID"},f:[{t:2,x:{r:["data.cloud_id"],s:'_0?_0:"No Cloud"'},p:[60,34,2576]}," ",{p:[60,82,2624],t:7,e:"ui-button",a:{icon:"pencil",action:"set_cloud"},f:["Set"]}]}]}," ",{p:[62,4,2718],t:7,e:"ui-display",a:{title:"Programs"},f:[{t:4,f:[{p:[64,6,2785],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[64,25,2804]}],button:0},f:[{p:[65,6,2827],t:7,e:"ui-button",a:{icon:"minus",action:"remove_program",params:['{"program_id": "',{t:2,r:"id",p:[65,78,2899]},'"}']},f:["Uninstall"]}," ",{p:[66,6,2936],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"desc",p:[66,38,2968]}]}," ",{t:4,f:[{p:[68,7,3030],t:7,e:"ui-section",a:{label:"Activation Status"},f:[{t:2,x:{r:["activated"],s:'_0?"Active":"Inactive"'},p:[68,45,3068]}]}," ",{p:[69,7,3126],t:7,e:"ui-section",a:{label:"Nanites Consumed"},f:[{t:2,r:"use_rate",p:[69,44,3163]},"/s"]}," ",{t:4,f:[{p:[71,8,3224],t:7,e:"ui-section",a:{label:"Trigger Cost"},f:[{t:2,r:"trigger_cost",p:[71,41,3257]}]}," ",{p:[72,8,3294],t:7,e:"ui-section",a:{label:"Trigger Cooldown"},f:[{t:2,r:"trigger_cooldown",p:[72,45,3331]}," seconds"]}],n:50,r:"can_trigger",p:[70,7,3197]}," ",{t:4,f:[{t:4,f:[{p:[76,9,3462],t:7,e:"ui-section",a:{label:"Activation Delay"},f:[{t:2,r:"activation_delay",p:[76,46,3499]}]}],n:50,r:"activation_delay",p:[75,8,3429]}," ",{t:4,f:[{p:[79,9,3577],t:7,e:"ui-section",a:{label:"Timer"},f:[{t:2,r:"timer",p:[79,35,3603]}]}," ",{p:[80,9,3634],t:7,e:"ui-section",a:{label:"Timer Type"},f:[{t:2,r:"timer_type",p:[80,40,3665]}]}],n:50,r:"timer",p:[78,8,3555]}," ",{t:4,f:[{t:4,f:[{p:[84,11,3785],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,30,3804]}]},f:[{t:2,r:"value",p:[84,40,3814]}]}],n:52,r:"extra_settings",p:[83,9,3750]}],n:50,r:"has_extra_settings",p:[82,8,3715]}," ",{t:4,f:[{t:4,f:[{p:[89,10,3947],t:7,e:"ui-section",a:{label:"Activation Code"},f:[{t:2,r:"activation_code",p:[89,46,3983]}]}],n:50,r:"activation_code",p:[88,9,3914]}," ",{t:4,f:[{p:[92,10,4075],t:7,e:"ui-section",a:{label:"Deactivation Code"},f:[{t:2,r:"deactivation_code",p:[92,48,4113]}]}],n:50,r:"deactivation_code",p:[91,9,4040]}," ",{t:4,f:[{p:[95,10,4199],t:7,e:"ui-section",a:{label:"Kill Code"},f:[{t:2,r:"kill_code",p:[95,40,4229]}]}],n:50,r:"kill_code",p:[94,9,4172]}," ",{t:4,f:[{p:[98,10,4310],t:7,e:"ui-section",a:{label:"Trigger Code"},f:[{t:2,r:"trigger_code",p:[98,43,4343]}]}],n:50,r:"trigger_code",p:[97,9,4280]}],n:50,x:{r:["data.scan_level"],s:"_0>=4"},p:[87,8,3877]}],n:50,x:{r:["data.scan_level"],s:"_0>=3"},p:[74,7,3393]}],n:50,x:{r:["data.scan_level"],s:"_0>=2"},p:[67,6,2995]}]}],n:52,r:"data.mob_programs",p:[63,5,2752]}]}]}],x:{r:["data.has_nanites"],s:"!_0"}}]}],r:"data.status_msg"}]}]},e.exports=a.extend(r.exports)},{341:341}],408:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Cloud Console"},f:[{p:[2,1,42],t:7,e:"ui-display",a:{title:"Program Disk"},f:[{t:4,f:[{p:[4,3,101],t:7,e:"ui-button",a:{icon:"eject",action:"eject"},f:["Eject Disk"]},{p:[4,64,162],t:7,e:"br"}," ",{t:4,f:[{p:[6,4,197],t:7,e:"ui-section",f:[{p:[7,5,214],t:7,e:"ui-section",a:{label:"Program Name"},f:[{t:2,r:"data.disk.name",p:[7,38,247]}]}," ",{p:[8,5,283],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.disk.desc",p:[8,37,315]}]}," ",{p:[9,5,351],t:7,e:"ui-section",a:{label:"Activation Status"},f:[{t:2,x:{r:["data.disk.activated"],s:'_0?"Active":"Inactive"'},p:[9,43,389]}]}," ",{t:4,f:[{p:[11,6,495],t:7,e:"ui-section",a:{label:"Activation Delay"},f:[{t:2,r:"data.disk.activation_delay",p:[11,43,532]}]}],n:50,r:"data.disk.activation_delay",p:[10,5,455]}," ",{t:4,f:[{p:[14,6,621],t:7,e:"ui-section",a:{label:"Timer"},f:[{t:2,r:"data.disk.timer",p:[14,32,647]}]}," ",{p:[15,6,685],t:7,e:"ui-section",a:{label:"Timer Type "},f:[{t:2,r:"data.disk.timer_type",p:[15,38,717]}]}],n:50,r:"data.disk.timer",p:[13,5,592]}," ",{t:4,f:[{p:[18,6,810],t:7,e:"ui-section",a:{label:"Activation Code"},f:[{t:2,r:"data.disk.activation_code",p:[18,42,846]}]}],n:50,r:"data.disk.activation_code",p:[17,5,771]}," ",{t:4,f:[{p:[21,6,946],t:7,e:"ui-section",a:{label:"Deactivation Code"},f:[{t:2,r:"data.disk.deactivation_code",p:[21,44,984]}]}],n:50,r:"data.disk.deactivation_code",p:[20,5,905]}," ",{t:4,f:[{p:[24,6,1078],t:7,e:"ui-section",a:{label:"Kill Code"},f:[{t:2,r:"data.disk.kill_code",p:[24,36,1108]}]}],n:50,r:"data.disk.kill_code",p:[23,5,1045]}," ",{t:4,f:[{p:[27,6,1197],t:7,e:"ui-section",a:{label:"Trigger Code"},f:[{t:2,r:"data.disk.trigger_code",p:[27,39,1230]}]}],n:50,r:"data.disk.trigger_code",p:[26,5,1161]}," ",{t:4,f:[{t:4,f:[{p:[31,8,1370],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[31,27,1389]}]},f:[{t:2,r:"value",p:[31,37,1399]}]}],n:52,r:"data.disk.extra_settings",p:[30,6,1328]}],n:50,r:"data.disk.has_extra_settings",p:[29,5,1286]}]}],n:50,r:"data.has_program",p:[5,3,169]},{t:4,n:51,f:[{p:[36,4,1480],t:7,e:"ui-notice",f:["No program detected."]}],r:"data.has_program"}],n:50,r:"data.has_disk",p:[3,2,77]},{t:4,n:51,f:[{p:[39,3,1546],t:7,e:"ui-notice",f:["Insert disk."]}],r:"data.has_disk"}]}," ",{p:[42,1,1605],t:7,e:"ui-display",a:{title:"Cloud Storage"},f:[{t:4,f:[{p:[44,3,1670],t:7,e:"ui-button",a:{icon:"plus-circle",action:"create_backup"},f:["Create New Backup"]}," ",{p:[45,3,1755],t:7,e:"ui-display",a:{title:"Active Backups"},f:[{t:4,f:[{p:[47,5,1827],t:7,e:"ui-button",a:{action:"set_view",params:['{"view": "',{t:2,r:"cloud_id",p:[47,52,1874]},'"}']},f:["Backup #",{t:2,r:"cloud_id",p:[47,76,1898]}]}],n:52,r:"data.cloud_backups",p:[46,4,1794]}]}],n:50,x:{r:["data.current_view"],s:"!_0"},p:[43,2,1641]},{t:4,n:51,f:[{p:[51,3,1964],t:7,e:"ui-button",a:{icon:"undo",action:"set_view",params:'{"view": "0"}'},f:["Return"]}," ",{t:4,f:[{p:[53,4,2079],t:7,e:"ui-notice",f:["ERROR: Backup not found."]}],n:50,x:{r:["data.cloud_backup"],s:"!_0"},p:[52,3,2049]},{t:4,n:51,f:[{p:[55,4,2141],t:7,e:"ui-display",a:{title:["Backup #",{t:2,r:"data.current_view",p:[55,31,2168]}]},f:[{t:4,f:[{p:[57,6,2226],t:7,e:"ui-button",a:{icon:"upload",action:"upload_program",style:"selected"},f:["Upload Program From Disk"]},{p:[57,108,2328],t:7,e:"br"}],n:50,r:"data.has_program",p:[56,5,2196]}," ",{t:4,f:[{p:[60,6,2384],t:7,e:"hr"}," ",{p:[61,6,2394],t:7,e:"ui-section",f:[{p:[62,7,2413],t:7,e:"h3",f:[{t:2,r:"name",p:[62,11,2417]}]}," ",{p:[63,7,2437],t:7,e:"div",a:{style:"float:right"},f:[{p:[64,8,2470],t:7,e:"ui-button",a:{icon:"minus-circle",action:"remove_program",style:"danger",params:['{"program_id": "',{t:2,r:"id",p:[64,102,2564]},'"}']},f:["Uninstall"]}]}]}," ",{p:[67,6,2633],t:7,e:"ui-section",f:[{p:[68,7,2652],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"desc",p:[68,39,2684]}]}," ",{p:[69,7,2712],t:7,e:"ui-section",a:{label:"Activation Status"},f:[{t:2,x:{r:["activated"],s:'_0?"Active":"Inactive"'},p:[69,45,2750]}]}," ",{p:[70,7,2808],t:7,e:"ui-section",a:{label:"Nanites Consumed"},f:[{t:2,r:"use_rate",p:[70,44,2845]},"/s"]}," ",{t:4,f:[{p:[72,8,2906],t:7,e:"ui-section",a:{label:"Trigger Cost"},f:[{t:2,r:"trigger_cost",p:[72,41,2939]},"/s"]}," ",{p:[73,8,2978],t:7,e:"ui-section",a:{label:"Trigger Cooldown"},f:[{t:2,r:"trigger_cooldown",p:[73,45,3015]},"/s"]}],n:50,r:"can_trigger",p:[71,7,2879]}," ",{t:4,f:[{p:[76,8,3103],t:7,e:"ui-section",a:{label:"Activation Delay"},f:[{t:2,r:"activation_delay",p:[76,45,3140]}]}],n:50,r:"activation_delay",p:[75,7,3071]}," ",{t:4,f:[{p:[79,8,3215],t:7,e:"ui-section",a:{label:"Timer"},f:[{t:2,r:"timer",p:[79,34,3241]}]}," ",{p:[80,8,3271],t:7,e:"ui-section",a:{label:"Timer Type "},f:[{t:2,r:"timer_type",p:[80,40,3303]}]}],n:50,r:"timer",p:[78,7,3194]}," ",{t:4,f:[{p:[83,8,3382],t:7,e:"ui-section",a:{label:"Activation Code"},f:[{t:2,r:"activation_code",p:[83,44,3418]}]}],n:50,r:"activation_code",p:[82,7,3351]}," ",{t:4,f:[{p:[86,8,3504],t:7,e:"ui-section",a:{label:"Deactivation Code"},f:[{t:2,r:"deactivation_code",p:[86,46,3542]}]}],n:50,r:"deactivation_code",p:[85,7,3471]}," ",{t:4,f:[{p:[89,8,3622],t:7,e:"ui-section",a:{label:"Kill Code"},f:[{t:2,r:"kill_code",p:[89,38,3652]}]}],n:50,r:"kill_code",p:[88,7,3597]}," ",{t:4,f:[{p:[92,8,3727],t:7,e:"ui-section",a:{label:"Trigger Code"},f:[{t:2,r:"trigger_code",p:[92,41,3760]}]}],n:50,r:"trigger_code",p:[91,7,3699]}," ",{t:4,f:[{t:4,f:[{p:[96,10,3878],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[96,29,3897]}]},f:[{t:2,r:"value",p:[96,39,3907]}]}],n:52,r:"extra_settings",p:[95,8,3844]}],n:50,r:"has_extra_settings",p:[94,7,3810]}]}],n:52,r:"data.cloud_programs",p:[59,5,2349]}]}],x:{r:["data.cloud_backup"],s:"!_0"}}],x:{r:["data.current_view"],s:"!_0"}}]}]}]},e.exports=a.extend(r.exports)},{341:341}],409:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Program Hub"},f:[{t:4,f:[{p:[3,2,63],t:7,e:"ui-display",a:{title:"Program Disk"},f:[{p:[4,3,99],t:7,e:"ui-section",f:[{p:[5,4,115],t:7,e:"ui-button",a:{icon:"eject",action:"eject"},f:["Eject Disk"]}," ",{p:[6,4,180],t:7,e:"ui-button",a:{icon:"minus-circle",action:"clear"},f:["Delete Program"]}]}," ",{t:4,f:[{p:[9,4,299],t:7,e:"ui-section",a:{label:"Program Name"},f:[{t:2,r:"data.disk.name",p:[9,37,332]}]}," ",{p:[10,4,367],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.disk.desc",p:[10,36,399]}]}],n:50,r:"data.has_program",p:[8,3,271]},{t:4,n:51,f:[{p:[12,4,445],t:7,e:"ui-notice",f:["No program installed."]}],r:"data.has_program"}]}],n:50,r:"data.has_disk",p:[2,1,40]},{t:4,n:51,f:[{p:[16,2,525],t:7,e:"ui-notice",f:["Insert disk."]}],r:"data.has_disk"},{p:[18,1,569],t:7,e:"br"}," ",{p:[19,1,574],t:7,e:"ui-display",a:{title:"Programs"},f:[{p:[20,2,605],t:7,e:"ui-section",f:[{p:[21,3,620],t:7,e:"ui-button",a:{icon:"undo",action:"set_category",params:'{"category": "Main"}'},f:["Return"]}," ",{p:[22,3,716],t:7,e:"ui-button",a:{icon:"align-justify ",action:"toggle_details"},f:[{t:2,x:{r:["data.detail_view"],s:'_0?"Compact View":"Detailed View"'},p:[22,60,773]}]}]}," ",{t:4,f:[{p:[25,3,892],t:7,e:"ui-display",f:[{t:4,f:[{p:[27,5,938],t:7,e:"ui-section",f:[{p:[27,17,950],t:7,e:"ui-button",a:{action:"set_category",params:['{"category": "',{t:2,r:"name",p:[27,72,1005]},'"}']},f:[{t:2,r:"name",p:[27,84,1017]}]}]}],n:52,r:"data.categories",p:[26,4,908]}]}],n:50,x:{r:["data.category"],s:'_0=="Main"'},p:[24,2,858]},{t:4,n:51,f:[{p:[31,3,1092],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[31,22,1111]}]},f:[{t:4,f:[{t:4,f:[{p:[34,6,1196],t:7,e:"ui-display",f:[{p:[35,7,1215],t:7,e:"ui-section",f:[{p:[35,19,1227],t:7,e:"b",f:[{t:2,r:"name",p:[35,22,1230]}]}]}," ",{p:[36,7,1262],t:7,e:"ui-section",f:[{t:2,r:"desc",p:[36,19,1274]}]}," ",{p:[37,7,1302],t:7,e:"ui-section",f:[{p:[38,8,1322],t:7,e:"ui-button",a:{icon:"download",action:"download",params:['{"program_id": "',{t:2,r:"id",p:[38,77,1391]},'"}'],state:[{t:2,x:{r:["data.has_disk"],s:'_0?null:"disabled"'},p:[38,94,1408]}]},f:["Download"]}]}]}],n:50,r:"data.detail_view",p:[33,5,1166]},{t:4,n:51,f:[{p:[44,6,1542],t:7,e:"ui-section",f:[{p:[44,18,1554],t:7,e:"ui-button",a:{action:"download",params:['{"program_id": "',{t:2,r:"id",p:[44,71,1607]},'"}']},f:[{t:2,r:"name",p:[44,81,1617]}]}]}],r:"data.detail_view"}],n:52,r:"data.program_list",p:[32,4,1134]}]}],x:{r:["data.category"],s:'_0=="Main"'}}]}]}]},e.exports=a.extend(r.exports)},{341:341}],410:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Programming"},f:[{t:4,f:[{p:[3,3,65],t:7,e:"ui-notice",f:["Insert a nanite program disk."]}],n:50,x:{r:["data.has_disk"],s:"!_0"},p:[2,1,40]},{t:4,n:51,f:[{p:[5,3,129],t:7,e:"ui-button",a:{icon:"eject",action:"eject"},f:["Eject Disk"]}," ",{t:4,f:[{p:[7,5,223],t:7,e:"ui-notice",f:["No program detected."]}],n:50,x:{r:["data.has_program"],s:"!_0"},p:[6,3,193]},{t:4,n:51,f:[{p:[9,5,282],t:7,e:"ui-section",f:[{p:[10,7,301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.name",p:[10,26,320]}]},f:[{t:2,r:"data.desc",p:[11,9,344]}]}]}," ",{p:[14,5,400],t:7,e:"ui-section",f:[{p:[15,7,419],t:7,e:"ui-section",a:{label:"Program Info"},f:["Nanites Consumed: ",{t:2,r:"data.use_rate",p:[16,26,478]},{p:[16,43,495],t:7,e:"br"}," ",{t:4,f:["Trigger Cost: ",{t:2,r:"data.trigger_cost",p:[18,25,557]},"u",{p:[18,47,579],t:7,e:"br"}],n:50,r:"data.can_trigger",p:[17,9,508]}]}," ",{p:[22,7,627],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[23,9,663],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.activated"],s:'_0?"toggle-on":"toggle-off"'},p:[24,17,690]}],action:"toggle_active"},f:[{t:2,x:{r:["data.activated"],s:'_0?"Active":"Inactive"'},p:[26,11,784]}]}]}," ",{p:[30,7,876],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[31,9,914],t:7,e:"ui-button",a:{icon:"pencil",action:"set_activation_delay"}}," Activation Delay: ",{t:2,r:"data.activation_delay",p:[31,95,1e3]}," ",{p:[31,121,1026],t:7,e:"br"}," ",{p:[32,9,1039],t:7,e:"ui-button",a:{icon:"pencil",action:"set_timer"}}," Timer: ",{t:2,r:"data.timer",p:[32,73,1103]}," ",{p:[32,88,1118],t:7,e:"br"}," ",{p:[33,9,1131],t:7,e:"ui-button",a:{icon:"pencil",action:"set_timer_type"}}," Timer Type: ",{t:2,r:"data.timer_type",p:[33,83,1205]}," ",{p:[33,103,1225],t:7,e:"br"}]}," ",{p:[36,7,1257],t:7,e:"ui-section",a:{label:"Codes"},f:[{p:[37,9,1292],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code",params:'{"target_code": "activation"}'}}," Activation Code: ",{t:2,r:"data.activation_code",p:[37,121,1404]}," ",{p:[37,146,1429],t:7,e:"br"}," ",{p:[38,9,1442],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code",params:'{"target_code": "deactivation"}'}}," Deactivation Code: ",{t:2,r:"data.deactivation_code",p:[38,125,1558]}," ",{p:[38,152,1585],t:7,e:"br"}," ",{p:[39,9,1598],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code",params:'{"target_code": "kill"}'}}," Kill Code: ",{t:2,r:"data.kill_code",p:[39,109,1698]}," ",{p:[39,128,1717],t:7,e:"br"}," ",{t:4,f:[{p:[41,11,1765],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code",params:'{"target_code": "trigger"}'}}," Trigger Code: ",{t:2,r:"data.trigger_code",p:[41,117,1871]}," ",{p:[41,139,1893],t:7,e:"br"}],n:50,r:"data.can_trigger",p:[40,9,1730]}]}," ",{t:4,f:[{p:[46,9,1981],t:7,e:"ui-section",a:{label:"Special"},f:[{t:4,f:[{p:[48,13,2062],t:7,e:"ui-button",a:{icon:"pencil",action:"set_extra_setting",params:['{"target_setting": "',{t:2,r:"name",p:[48,93,2142]},'"}']}}," ",{t:2,r:"name",p:[48,118,2167]},": ",{t:2,r:"value",p:[48,128,2177]}," ",{p:[48,138,2187],t:7,e:"br"}],n:52,r:"data.extra_settings",p:[47,11,2020]}]}],n:50,r:"data.has_extra_settings",p:[45,7,1941]}]}],x:{r:["data.has_program"],s:"!_0"}}],x:{r:["data.has_disk"],s:"!_0"}}]}]},e.exports=a.extend(r.exports)},{341:341}],411:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Nanite Control"},f:[{t:4,f:[{p:[3,3,58],t:7,e:"ui-notice",f:["The interface is locked."]}],n:50,r:"data.locked",p:[2,1,36]},{t:4,n:51,f:[{p:[5,3,117],t:7,e:"ui-button",a:{icon:"lock",action:"lock"},f:["Lock Interface"]}," ",{p:[6,3,183],t:7,e:"ui-button",a:{icon:"save",action:"save"},f:["Save Current Setting"]}," ",{p:[7,3,255],t:7,e:"ui-section",a:{label:"Signal Code"},f:[{p:[8,5,292],t:7,e:"span",f:[{t:2,r:"data.code",p:[8,11,298]}]}," ",{p:[9,4,322],t:7,e:"ui-button",a:{icon:"pencil",action:"set_code"},f:["Set"]}]}," ",{t:4,f:[{p:[12,5,432],t:7,e:"ui-section",a:{label:"Relay Code"},f:[{p:[13,7,470],t:7,e:"span",f:[{t:2,r:"data.relay_code",p:[13,13,476]}]}," ",{p:[14,5,507],t:7,e:"ui-button",a:{icon:"pencil",action:"set_relay_code"},f:["Set"]}]}],n:50,x:{r:["data.mode"],s:'_0=="Relay"'},p:[11,3,399]}," ",{p:[17,3,602],t:7,e:"ui-section",a:{label:"Signal Mode"},f:[{p:[18,5,639],t:7,e:"span",f:[{t:2,r:"data.mode",p:[18,11,645]}]}," ",{p:[19,5,670],t:7,e:"br"}," ",{p:[20,4,678],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Off"}'},f:["Off"]}," ",{p:[21,5,755],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Local"}'},f:["Local"]}," ",{p:[22,5,836],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Targeted"}'},f:["Targeted"]}," ",{p:[23,5,923],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Area"}'},f:["Area"]}," ",{p:[24,5,1002],t:7,e:"ui-button",a:{action:"select_mode",params:'{"mode": "Relay"}'},f:["Relay"]}]}],r:"data.locked"}]}," ",{p:[28,1,1117],t:7,e:"ui-display",a:{title:"Saved Settings"},f:[{t:4,f:[{p:[30,3,1186],t:7,e:"ui-button",a:{icon:"load",action:"load",params:['{"save_id": "',{t:2,r:"id",p:[30,61,1244]},'"}']},f:[{t:2,r:"name",p:[30,71,1254]}]}," ",{t:4,f:[{p:[32,4,1301],t:7,e:"ui-button",a:{icon:"remove",action:"remove_save",params:['{"save_id": "',{t:2,r:"id",p:[32,71,1368]},'"}']},f:["Remove"]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[31,3,1277]}," ",{p:[34,3,1409],t:7,e:"br"}],n:52,r:"data.saved_settings",p:[29,2,1154]}]}]},e.exports=a.extend(r.exports)},{341:341}],412:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Ghost roles"},f:[{p:[2,2,34],t:7,e:"ui-section",a:{label:"Ignored roles"},f:[{t:4,f:[{p:[4,4,96],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["enabled"],s:'_0?"check-square-o":"square-o"'},p:[4,21,113]}],style:[{t:2,x:{r:["enabled"],s:'_0?"danger":null'},p:[4,73,165]}],action:"toggle_ignore",params:['{"key": "',{t:2,r:"key",p:[4,144,236]},'"}']},f:[{t:2,r:"desc",p:[4,155,247]}]}],n:52,r:"data.ignore",p:[3,3,71]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],413:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Relay"},f:[{t:4,f:[{p:[3,3,55],t:7,e:"h2",f:["NETWORK BUFFERS OVERLOADED"]}," ",{p:[4,3,93],t:7,e:"h3",f:["Overload Recovery Mode"]}," ",{p:[5,3,127],t:7,e:"i",f:["This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."]}," ",{p:[6,3,479],t:7,e:"h3",f:["ADMINISTRATIVE OVERRIDE"]}," ",{p:[7,3,514],t:7,e:"b",f:["CAUTION - Data loss may occur"]}," ",{p:[8,3,555],t:7,e:"ui-button",a:{icon:"signal",action:"restart"},f:["Purge buffered traffic"]}],n:50,r:"data.dos_crashed",p:[2,2,28]},{t:4,n:51,f:[{p:[12,3,652],t:7,e:"ui-section",a:{label:"Relay status"},f:[{p:[13,4,689],t:7,e:"ui-button",a:{icon:"power-off",action:"toggle"},f:[{t:2,x:{r:["data.enabled"],s:'_0?"ENABLED":"DISABLED"'},p:[14,6,739]}]}]}," ",{p:[18,3,819],t:7,e:"ui-section",a:{label:"Network buffer status"},f:[{t:2,r:"data.dos_overload",p:[19,4,865]}," / ",{t:2,r:"data.dos_capacity",p:[19,28,889]}," GQ"]}],r:"data.dos_crashed"}]}]},e.exports=a.extend(r.exports)},{341:341}],414:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{healthState:function(){var t=this.get("data.health");return t>70?"good":t>50?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,306],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[18,3,346],t:7,e:"ui-notice",f:[{p:[19,5,362],t:7,e:"span",f:["Reconstruction in progress!"]}]}],n:50,r:"data.restoring",p:[17,1,321]},{p:[24,1,428],t:7,e:"ui-display",f:[{p:[26,1,442],t:7,e:"div",a:{"class":"item"},f:[{p:[27,3,463],t:7,e:"div",a:{"class":"itemLabel"},f:["Inserted AI:"]}," ",{p:[30,3,512],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[31,2,539],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",state:[{t:2,x:{r:["data.nocard"],s:'_0?"disabled":null'},p:[31,52,589]}]},f:[{t:2,x:{r:["data.name"],s:'_0?_0:"---"'},p:[31,89,626]}]}]}]}," ",{t:4,f:[{p:[36,2,709],t:7,e:"b",f:["ERROR: ",{t:2,r:"data.error",p:[36,12,719]}]}],n:50,r:"data.error",p:[35,1,689]},{t:4,n:51,f:[{p:[38,2,748],t:7,e:"h2",f:["System Status"]}," ",{p:[39,2,772],t:7,e:"div",a:{"class":"item"},f:[{p:[40,3,793],t:7,e:"div",a:{"class":"itemLabel"},f:["Current AI:"]}," ",{p:[43,3,843],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.name",p:[44,4,872]}]}," ",{p:[46,3,897],t:7,e:"div",a:{"class":"itemLabel"},f:["Status:"]}," ",{p:[49,3,943],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["Nonfunctional"],n:50,r:"data.isDead",p:[50,4,972]},{t:4,n:51,f:["Functional"],r:"data.isDead"}]}," ",{p:[56,3,1059],t:7,e:"div",a:{"class":"itemLabel"},f:["System Integrity:"]}," ",{p:[59,3,1115],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[60,4,1144],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[60,37,1177]}],state:[{t:2,r:"healthState",p:[61,11,1204]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[61,28,1221]},"%"]}]}," ",{p:[63,3,1274],t:7,e:"div",a:{"class":"itemLabel"},f:["Active Laws:"]}," ",{p:[66,3,1325],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[67,4,1354],t:7,e:"table",f:[{t:4,f:[{p:[69,6,1394],t:7,e:"tr",f:[{p:[69,10,1398],t:7,e:"td",f:[{p:[69,14,1402],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[69,38,1426]}]}]}]}],n:52,r:"data.ai_laws",p:[68,5,1366]}]}]}," ",{p:[73,2,1475],t:7,e:"ui-section",a:{label:"Operations"},f:[{p:[74,3,1509],t:7,e:"ui-button",a:{icon:"plus",style:[{t:2,x:{r:["data.restoring"],s:'_0?"disabled":null'},p:[74,33,1539]}],action:"PRG_beginReconstruction"},f:["Begin Reconstruction"]}]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],415:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[5,1,87],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"home",params:'{"target" : "mod"}',state:[{t:2,x:{r:["data.mmode"],s:'_0==1?"disabled":null'},p:[5,80,166]}]},f:["Access Modification"]}],n:50,r:"data.have_id_slot",p:[4,1,61]},{p:[7,1,247],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"folder-open",params:'{"target" : "manage"}',state:[{t:2,x:{r:["data.mmode"],s:'_0==2?"disabled":null'},p:[7,90,336]}]},f:["Job Management"]}," ",{p:[8,1,404],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"folder-open",params:'{"target" : "manifest"}',state:[{t:2,x:{r:["data.mmode"],s:'!_0?"disabled":null'},p:[8,92,495]}]},f:["Crew Manifest"]}," ",{t:4,f:[{p:[10,1,584],t:7,e:"ui-button",a:{action:"PRG_print",icon:"print",state:[{t:2,x:{r:["data.has_id","data.mmode"],s:'!_1||_0&&_1==1?null:"disabled"'},p:[10,51,634]}]},f:["Print"]}],n:50,r:"data.have_printer",p:[9,1,558]},{t:4,f:[{p:[14,1,753],t:7,e:"div",a:{"class":"item"},f:[{p:[15,3,774],t:7,e:"h2",f:["Crew Manifest"] +}," ",{p:[16,3,799],t:7,e:"br"},"Please use security record computer to modify entries.",{p:[16,61,857],t:7,e:"br"},{p:[16,65,861],t:7,e:"br"}]}," ",{t:4,f:[{p:[19,2,898],t:7,e:"div",a:{"class":"item"},f:[{t:2,r:"name",p:[20,2,918]}," - ",{t:2,r:"rank",p:[20,13,929]}]}],n:52,r:"data.manifest",p:[18,1,873]}],n:50,x:{r:["data.mmode"],s:"!_0"},p:[13,1,733]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.mmode"],s:"_0==2"},f:[{p:[25,1,984],t:7,e:"div",a:{"class":"item"},f:[{p:[26,3,1005],t:7,e:"h2",f:["Job Management"]}]}," ",{p:[28,1,1036],t:7,e:"table",f:[{p:[29,1,1044],t:7,e:"tr",f:[{p:[29,5,1048],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,27,1070],t:7,e:"b",f:["Job"]}]},{p:[29,42,1085],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,64,1107],t:7,e:"b",f:["Slots"]}]},{p:[29,81,1124],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,103,1146],t:7,e:"b",f:["Open job"]}]},{p:[29,123,1166],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,145,1188],t:7,e:"b",f:["Close job"]}]}]}," ",{t:4,f:[{p:[32,2,1238],t:7,e:"tr",f:[{p:[32,6,1242],t:7,e:"td",f:[{t:2,r:"title",p:[32,10,1246]}]},{p:[32,24,1260],t:7,e:"td",f:[{t:2,r:"current",p:[32,28,1264]},"/",{t:2,r:"total",p:[32,40,1276]}]},{p:[32,54,1290],t:7,e:"td",f:[{p:[32,58,1294],t:7,e:"ui-button",a:{action:"PRG_open_job",params:['{"target" : "',{t:2,r:"title",p:[32,112,1348]},'"}'],state:[{t:2,x:{r:["status_open"],s:'_0?null:"disabled"'},p:[32,132,1368]}]},f:[{t:2,r:"desc_open",p:[32,169,1405]}]},{p:[32,194,1430],t:7,e:"br"}]},{p:[32,203,1439],t:7,e:"td",f:[{p:[32,207,1443],t:7,e:"ui-button",a:{action:"PRG_close_job",params:['{"target" : "',{t:2,r:"title",p:[32,262,1498]},'"}'],state:[{t:2,x:{r:["status_close"],s:'_0?null:"disabled"'},p:[32,282,1518]}]},f:[{t:2,r:"desc_close",p:[32,320,1556]}]}]}]}],n:52,r:"data.slots",p:[30,1,1215]}]}]},{t:4,n:50,x:{r:["data.mmode"],s:"!(_0==2)"},f:[" ",{p:[40,1,1626],t:7,e:"div",a:{"class":"item"},f:[{p:[41,3,1647],t:7,e:"h2",f:["Access Modification"]}]}," ",{t:4,f:[{p:[45,3,1707],t:7,e:"span",a:{"class":"alert"},f:[{p:[45,23,1727],t:7,e:"i",f:["Please insert the ID into the terminal to proceed."]}]},{p:[45,87,1791],t:7,e:"br"}],n:50,x:{r:["data.has_id"],s:"!_0"},p:[44,1,1684]},{p:[48,1,1805],t:7,e:"div",a:{"class":"item"},f:[{p:[49,3,1826],t:7,e:"div",a:{"class":"itemLabel"},f:["Target Identity:"]}," ",{p:[52,3,1879],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[53,2,1906],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "id"}'},f:[{t:2,r:"data.id_name",p:[53,72,1976]}]}]}]}," ",{p:[56,1,2021],t:7,e:"div",a:{"class":"item"},f:[{p:[57,3,2042],t:7,e:"div",a:{"class":"itemLabel"},f:["Auth Identity:"]}," ",{p:[60,3,2093],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[61,2,2120],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "auth"}'},f:[{t:2,r:"data.auth_name",p:[61,74,2192]}]}]}]}," ",{p:[64,1,2239],t:7,e:"hr"}," ",{t:4,f:[{t:4,f:[{p:[68,2,2295],t:7,e:"div",a:{"class":"item"},f:[{p:[69,4,2317],t:7,e:"h2",f:["Details"]}]}," ",{t:4,f:[{p:[73,2,2364],t:7,e:"div",a:{"class":"item"},f:[{p:[74,4,2386],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[77,4,2442],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_owner",p:[78,3,2470]}]}]}," ",{p:[81,2,2507],t:7,e:"div",a:{"class":"item"},f:[{p:[82,4,2529],t:7,e:"div",a:{"class":"itemLabel"},f:["Rank:"]}," ",{p:[85,4,2574],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_rank",p:[86,3,2602]}]}]}," ",{p:[89,2,2638],t:7,e:"div",a:{"class":"item"},f:[{p:[90,4,2660],t:7,e:"div",a:{"class":"itemLabel"},f:["Demote:"]}," ",{p:[93,4,2707],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[94,3,2735],t:7,e:"ui-button",a:{action:"PRG_terminate",icon:"gear",state:[{t:2,x:{r:["data.id_rank"],s:'_0=="Unassigned"?"disabled":null'},p:[94,56,2788]}]},f:["Demote ",{t:2,r:"data.id_owner",p:[94,117,2849]}]}]}]}],n:50,r:"data.minor",p:[72,2,2344]},{t:4,n:51,f:[{p:[99,2,2909],t:7,e:"div",a:{"class":"item"},f:[{p:[100,4,2931],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[103,4,2987],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[104,3,3015],t:7,e:"ui-button",a:{action:"PRG_edit",icon:"pencil",params:'{"name" : "1"}'},f:[{t:2,r:"data.id_owner",p:[104,70,3082]}]}]}]}," ",{p:[108,2,3132],t:7,e:"div",a:{"class":"item"},f:[{p:[109,4,3154],t:7,e:"h2",f:["Assignment"]}]}," ",{p:[111,3,3184],t:7,e:"ui-button",a:{action:"PRG_togglea",icon:"gear"},f:[{t:2,x:{r:["data.assignments"],s:'_0?"Hide assignments":"Show assignments"'},p:[111,47,3228]}]}," ",{p:[112,2,3304],t:7,e:"div",a:{"class":"item"},f:[{p:[113,4,3326],t:7,e:"span",a:{id:"allvalue.jobsslot"},f:[]}]}," ",{p:[117,2,3379],t:7,e:"div",a:{"class":"item"},f:[{t:4,f:[{p:[119,4,3429],t:7,e:"div",a:{id:"all-value.jobs"},f:[{p:[120,3,3457],t:7,e:"table",f:[{p:[121,5,3469],t:7,e:"tr",f:[{p:[122,4,3477],t:7,e:"th",f:["Command"]}," ",{p:[123,4,3497],t:7,e:"td",f:[{p:[124,6,3507],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Captain"}',state:[{t:2,x:{r:["data.id_rank"],s:'_0=="Captain"?"selected":null'},p:[124,83,3584]}]},f:["Captain"]}]}]}," ",{p:[127,5,3678],t:7,e:"tr",f:[{p:[128,4,3686],t:7,e:"th",f:["Special"]}," ",{p:[129,4,3706],t:7,e:"td",f:[{p:[130,6,3716],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Custom"}'},f:["Custom"]}]}]}," ",{p:[133,5,3827],t:7,e:"tr",f:[{p:[134,4,3835],t:7,e:"th",a:{style:"color: '#FFA500';"},f:["Engineering"]}," ",{p:[135,4,3885],t:7,e:"td",f:[{t:4,f:[{p:[137,5,3931],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[137,64,3990]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[137,82,4008]}]},f:[{t:2,r:"display_name",p:[137,127,4053]}]}],n:52,r:"data.engineering_jobs",p:[136,6,3895]}]}]}," ",{p:[141,5,4120],t:7,e:"tr",f:[{p:[142,4,4128],t:7,e:"th",a:{style:"color: '#008000';"},f:["Medical"]}," ",{p:[143,4,4174],t:7,e:"td",f:[{t:4,f:[{p:[145,5,4216],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[145,64,4275]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[145,82,4293]}]},f:[{t:2,r:"display_name",p:[145,127,4338]}]}],n:52,r:"data.medical_jobs",p:[144,6,4184]}]}]}," ",{p:[149,5,4405],t:7,e:"tr",f:[{p:[150,4,4413],t:7,e:"th",a:{style:"color: '#800080';"},f:["Science"]}," ",{p:[151,4,4459],t:7,e:"td",f:[{t:4,f:[{p:[153,5,4501],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[153,64,4560]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[153,82,4578]}]},f:[{t:2,r:"display_name",p:[153,127,4623]}]}],n:52,r:"data.science_jobs",p:[152,6,4469]}]}]}," ",{p:[157,5,4690],t:7,e:"tr",f:[{p:[158,4,4698],t:7,e:"th",a:{style:"color: '#DD0000';"},f:["Security"]}," ",{p:[159,4,4745],t:7,e:"td",f:[{t:4,f:[{p:[161,5,4788],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[161,64,4847]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[161,82,4865]}]},f:[{t:2,r:"display_name",p:[161,127,4910]}]}],n:52,r:"data.security_jobs",p:[160,6,4755]}]}]}," ",{p:[165,5,4977],t:7,e:"tr",f:[{p:[166,4,4985],t:7,e:"th",a:{style:"color: '#cc6600';"},f:["Cargo"]}," ",{p:[167,4,5029],t:7,e:"td",f:[{t:4,f:[{p:[169,5,5069],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[169,64,5128]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[169,82,5146]}]},f:[{t:2,r:"display_name",p:[169,127,5191]}]}],n:52,r:"data.cargo_jobs",p:[168,6,5039]}]}]}," ",{p:[173,5,5258],t:7,e:"tr",f:[{p:[174,4,5266],t:7,e:"th",a:{style:"color: '#808080';"},f:["Civilian"]}," ",{p:[175,4,5313],t:7,e:"td",f:[{t:4,f:[{p:[177,5,5356],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[177,64,5415]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[177,82,5433]}]},f:[{t:2,r:"display_name",p:[177,127,5478]}]}],n:52,r:"data.civilian_jobs",p:[176,6,5323]}]}]}," ",{t:4,f:[{p:[182,4,5576],t:7,e:"tr",f:[{p:[183,6,5586],t:7,e:"th",a:{style:"color: '#A52A2A';"},f:["CentCom"]}," ",{p:[184,6,5634],t:7,e:"td",f:[{t:4,f:[{p:[186,7,5677],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[186,66,5736]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[186,84,5754]}]},f:[{t:2,r:"display_name",p:[186,129,5799]}]}],n:52,r:"data.centcom_jobs",p:[185,5,5643]}]}]}],n:50,r:"data.centcom_access",p:[181,5,5545]}]}]}],n:50,r:"data.assignments",p:[118,4,3401]}]}],r:"data.minor"}," ",{t:4,f:[{p:[198,4,5956],t:7,e:"div",a:{"class":"item"},f:[{p:[199,3,5977],t:7,e:"h2",f:["Central Command"]}]}," ",{p:[201,4,6015],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[203,5,6094],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[204,5,6128],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[204,64,6187]},'", "allowed" : "',{t:2,r:"allowed",p:[204,87,6210]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[204,109,6232]}]},f:[{t:2,r:"desc",p:[204,140,6263]}]}]}],n:52,r:"data.all_centcom_access",p:[202,3,6056]}]}],n:50,r:"data.centcom_access",p:[197,2,5925]},{t:4,n:51,f:[{p:[209,4,6330],t:7,e:"div",a:{"class":"item"},f:[{p:[210,3,6351],t:7,e:"h2",f:[{t:2,r:"data.station_name",p:[210,7,6355]}]}]}," ",{p:[212,4,6395],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[214,5,6463],t:7,e:"div",a:{style:"float: left; width: 175px; min-height: 250px"},f:[{p:[215,4,6525],t:7,e:"div",a:{"class":"average"},f:[{p:[215,25,6546],t:7,e:"ui-button",a:{action:"PRG_regsel",state:[{t:2,x:{r:["selected"],s:'_0?"toggle":null'},p:[215,63,6584]}],params:['{"region" : "',{t:2,r:"regid",p:[215,116,6637]},'"}']},f:[{p:[215,129,6650],t:7,e:"b",f:[{t:2,r:"name",p:[215,132,6653]}]}]}]}," ",{p:[216,4,6687],t:7,e:"br"}," ",{t:4,f:[{p:[218,6,6721],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[219,5,6755],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[219,64,6814]},'", "allowed" : "',{t:2,r:"allowed",p:[219,87,6837]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[219,109,6859]}]},f:[{t:2,r:"desc",p:[219,140,6890]}]}]}],n:52,r:"accesses",p:[217,6,6697]}]}],n:52,r:"data.regions",p:[213,3,6436]}]}],r:"data.centcom_access"}],n:50,r:"data.has_id",p:[67,3,2274]}],n:50,r:"data.authenticated",p:[66,1,2245]}]}],x:{r:["data.mmode"],s:"!_0"}}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],416:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{chargeState:function(t){var e=this.get("data.battery.max");return t>e/2?"good":t>e/4?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,297],t:7,e:"ntosheader"}," ",{p:[17,1,312],t:7,e:"ui-display",f:[{p:[18,2,326],t:7,e:"i",f:["Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device."]},{p:[18,137,461],t:7,e:"hr"}," ",{p:[19,2,467],t:7,e:"ui-display",a:{title:"Power Supply"},f:[{p:[20,3,503],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"data.power_usage",p:[21,4,539]},"W"]}," ",{t:4,f:[{p:[25,4,606],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Active"]}," ",{p:[28,4,674],t:7,e:"ui-section",a:{label:"Battery Rating"},f:[{t:2,r:"data.battery.max",p:[29,5,714]}]}," ",{p:[31,4,755],t:7,e:"ui-section",a:{label:"Battery Charge"},f:[{p:[32,5,795],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.battery.max",p:[32,26,816]}],value:[{t:2,r:"adata.battery.charge",p:[32,56,846]}],state:[{t:2,x:{r:["chargeState","adata.battery.charge"],s:"_0(_1)"},p:[32,89,879]}]},f:[{t:2,x:{r:["adata.battery.charge"],s:"Math.round(_0)"},p:[32,128,918]},"/",{t:2,r:"adata.battery.max",p:[32,165,955]}]}]}],n:50,r:"data.battery",p:[24,3,582]},{t:4,n:51,f:[{p:[35,4,1017],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Not Available"]}],r:"data.battery"}]}," ",{p:[41,2,1116],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,3,1151],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,4,1189],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,25,1210]}],value:[{t:2,r:"adata.disk_used",p:[43,53,1238]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,87,1272]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,123,1308]},"GQ"]}]}]}," ",{p:[47,2,1373],t:7,e:"ui-display",a:{title:"Computer Components"},f:[{t:4,f:[{p:[49,4,1443],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[49,26,1465]}]},f:[{p:[50,5,1480],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"desc",p:[50,59,1534]}]}," ",{p:[52,5,1554],t:7,e:"ui-section",a:{label:"State"},f:[{p:[53,6,1586],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["critical"],s:'_0?"disabled":null'},p:[53,24,1604]}],action:"PC_toggle_component",params:['{"name": "',{t:2,r:"name",p:[53,105,1685]},'"}']},f:[{t:2,x:{r:["enabled"],s:'_0?"Enabled":"Disabled"'},p:[54,7,1704]}]}]}," ",{t:4,f:[{p:[59,6,1810],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"powerusage",p:[60,7,1849]},"W"]}],n:50,r:"powerusage",p:[58,5,1786]}]}," ",{p:[64,4,1922],t:7,e:"br"}],n:52,r:"data.hardware",p:[48,3,1416]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],417:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{p:[4,1,61],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,3,97],t:7,e:"h2",f:["An error has occurred and this program can not continue."]}," Additional information: ",{t:2,r:"data.error",p:[8,27,189]},{p:[8,41,203],t:7,e:"br"}," ",{p:[9,3,210],t:7,e:"i",f:["Please try again. If the problem persists contact your system administrator for assistance."]}," ",{p:[10,3,311],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["Restart program"]}],n:50,r:"data.error",p:[6,2,76]},{t:4,n:51,f:[{t:4,f:[{p:[13,4,410],t:7,e:"h2",f:["Viewing file ",{t:2,r:"data.filename",p:[13,21,427]}]}," ",{p:[14,4,453],t:7,e:"div",a:{"class":"item"},f:[{p:[15,4,475],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["CLOSE"]}," ",{p:[16,4,530],t:7,e:"ui-button",a:{action:"PRG_edit"},f:["EDIT"]}," ",{p:[17,4,579],t:7,e:"ui-button",a:{action:"PRG_printfile"},f:["PRINT"]}," "]},{p:[18,10,640],t:7,e:"hr"}," ",{t:3,r:"data.filedata",p:[19,4,648]}],n:50,r:"data.filename",p:[12,3,385]},{t:4,n:51,f:[{p:[21,4,682],t:7,e:"h2",f:["Available files (local):"]}," ",{p:[22,4,719],t:7,e:"table",f:[{p:[23,5,731],t:7,e:"tr",f:[{p:[24,6,741],t:7,e:"th",f:["File name"]}," ",{p:[25,6,765],t:7,e:"th",f:["File type"]}," ",{p:[26,6,789],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[27,6,818],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[30,6,878],t:7,e:"tr",f:[{p:[31,7,889],t:7,e:"td",f:[{t:2,r:"name",p:[31,11,893]}]}," ",{p:[32,7,913],t:7,e:"td",f:[".",{t:2,r:"type",p:[32,12,918]}]}," ",{p:[33,7,938],t:7,e:"td",f:[{t:2,r:"size",p:[33,11,942]},"GQ"]}," ",{p:[34,7,964],t:7,e:"td",f:[{p:[35,8,976],t:7,e:"ui-button",a:{action:"PRG_openfile",params:['{"name": "',{t:2,r:"name",p:[35,59,1027]},'"}']},f:["VIEW"]}," ",{p:[36,8,1063],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[36,26,1081]}],action:"PRG_deletefile",params:['{"name": "',{t:2,r:"name",p:[36,105,1160]},'"}']},f:["DELETE"]}," ",{p:[37,8,1198],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[37,26,1216]}],action:"PRG_rename",params:['{"name": "',{t:2,r:"name",p:[37,101,1291]},'"}']},f:["RENAME"]}," ",{p:[38,8,1329],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[38,26,1347]}],action:"PRG_clone",params:['{"name": "',{t:2,r:"name",p:[38,100,1421]},'"}']},f:["CLONE"]}," ",{t:4,f:[{p:[40,9,1492],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[40,27,1510]}],action:"PRG_copytousb",params:['{"name": "',{t:2,r:"name",p:[40,105,1588]},'"}']},f:["EXPORT"]}],n:50,r:"data.usbconnected",p:[39,8,1458]}]}]}],n:52,r:"data.files",p:[29,5,852]}]}," ",{t:4,f:[{p:[47,4,1715],t:7,e:"h2",f:["Available files (portable device):"]}," ",{p:[48,4,1762],t:7,e:"table",f:[{p:[49,5,1774],t:7,e:"tr",f:[{p:[50,6,1784],t:7,e:"th",f:["File name"]}," ",{p:[51,6,1808],t:7,e:"th",f:["File type"]}," ",{p:[52,6,1832],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[53,6,1861],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[56,6,1924],t:7,e:"tr",f:[{p:[57,7,1935],t:7,e:"td",f:[{t:2,r:"name",p:[57,11,1939]}]}," ",{p:[58,7,1959],t:7,e:"td",f:[".",{t:2,r:"type",p:[58,12,1964]}]}," ",{p:[59,7,1984],t:7,e:"td",f:[{t:2,r:"size",p:[59,11,1988]},"GQ"]}," ",{p:[60,7,2010],t:7,e:"td",f:[{p:[61,8,2022],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[61,26,2040]}],action:"PRG_usbdeletefile",params:['{"name": "',{t:2,r:"name",p:[61,108,2122]},'"}']},f:["DELETE"]}," ",{t:4,f:[{p:[63,9,2194],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[63,27,2212]}],action:"PRG_copyfromusb",params:['{"name": "',{t:2,r:"name",p:[63,107,2292]},'"}']},f:["IMPORT"]}],n:50,r:"data.usbconnected",p:[62,8,2160]}]}]}],n:52,r:"data.usbfiles",p:[55,5,1895]}]}],n:50,r:"data.usbconnected",p:[46,4,1686]}," ",{p:[70,4,2401],t:7,e:"ui-button",a:{action:"PRG_newtextfile"},f:["NEW DATA FILE"]}],r:"data.filename"}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],418:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{p:[4,1,61],t:7,e:"ui-display",f:[{p:[5,2,75],t:7,e:"i",f:["No program loaded. Please select program from list below."]}," ",{p:[6,2,141],t:7,e:"table",f:[{t:4,f:[{p:[8,4,178],t:7,e:"tr",f:[{p:[8,8,182],t:7,e:"td",f:[{p:[8,12,186],t:7,e:"ui-button",a:{action:"PC_runprogram",params:['{"name": "',{t:2,r:"name",p:[8,64,238]},'"}']},f:[{t:2,r:"desc",p:[9,5,255]}]}]},{p:[11,4,283],t:7,e:"td",f:[{p:[11,8,287],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["running"],s:'_0?null:"disabled"'},p:[11,26,305]}],icon:"close",action:"PC_killprogram",params:['{"name": "',{t:2,r:"name",p:[11,114,393]},'"}']}}]}]}],n:52,r:"data.programs",p:[7,3,151]}]}," ",{p:[14,2,441],t:7,e:"br"},{p:[14,6,445],t:7,e:"br"}," ",{t:4,f:[{p:[16,3,476],t:7,e:"ui-button",a:{action:"PC_toggle_light",style:[{t:2,x:{r:["data.light_on"],s:'_0?"selected":null'},p:[16,46,519]}]},f:["Toggle Flashlight"]},{p:[16,114,587],t:7,e:"br"}," ",{p:[17,3,594],t:7,e:"ui-button",a:{action:"PC_light_color"},f:["Change Flashlight Color ",{p:[17,62,653],t:7,e:"span",a:{style:["border:1px solid #161616; background-color: ",{t:2,r:"data.comp_light_color",p:[17,119,710]},";"]},f:["   "]}]}],n:50,r:"data.has_light",p:[15,2,451]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],419:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{p:[4,1,61],t:7,e:"ui-display",f:[{t:4,f:[{p:[6,3,100],t:7,e:"h1",f:["ADMINISTRATIVE MODE"]}],n:50,r:"data.adminmode",p:[5,2,75]}," ",{t:4,f:[{p:[10,3,161],t:7,e:"div",a:{"class":"itemLabel"},f:["Current channel:"]}," ",{p:[13,3,217],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.title",p:[14,4,246]}]}," ",{p:[16,3,272],t:7,e:"div",a:{"class":"itemLabel"},f:["Operator access:"]}," ",{p:[19,3,328],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:[{p:[21,5,386],t:7,e:"b",f:["Enabled"]}],n:50,r:"data.is_operator",p:[20,4,357]},{t:4,n:51,f:[{p:[23,5,417],t:7,e:"b",f:["Disabled"]}],r:"data.is_operator"}]}," ",{p:[26,3,455],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[29,3,504],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[30,4,533],t:7,e:"table",f:[{p:[31,5,545],t:7,e:"tr",f:[{p:[31,9,549],t:7,e:"td",f:[{p:[31,13,553],t:7,e:"ui-button",a:{action:"PRG_speak"},f:["Send message"]}]}]},{p:[32,5,612],t:7,e:"tr",f:[{p:[32,9,616],t:7,e:"td",f:[{p:[32,13,620],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[33,5,687],t:7,e:"tr",f:[{p:[33,9,691],t:7,e:"td",f:[{p:[33,13,695],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]},{p:[34,5,774],t:7,e:"tr",f:[{p:[34,9,778],t:7,e:"td",f:[{p:[34,13,782],t:7,e:"ui-button",a:{action:"PRG_leavechannel"},f:["Leave channel"]}]}]},{p:[35,5,849],t:7,e:"tr",f:[{p:[35,9,853],t:7,e:"td",f:[{p:[35,13,857],t:7,e:"ui-button",a:{action:"PRG_savelog"},f:["Save log to local drive"]}," ",{t:4,f:[{p:[37,6,959],t:7,e:"tr",f:[{p:[37,10,963],t:7,e:"td",f:[{p:[37,14,967],t:7,e:"ui-button",a:{action:"PRG_renamechannel"},f:["Rename channel"]}]}]},{p:[38,6,1037],t:7,e:"tr",f:[{p:[38,10,1041],t:7,e:"td",f:[{p:[38,14,1045],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}]}]},{p:[39,6,1111],t:7,e:"tr",f:[{p:[39,10,1115],t:7,e:"td",f:[{p:[39,14,1119],t:7,e:"ui-button",a:{action:"PRG_deletechannel"},f:["Delete channel"]}]}]}],n:50,r:"data.is_operator",p:[36,5,929]}]}]}]}]}," ",{p:[43,3,1221],t:7,e:"b",f:["Chat Window"]}," ",{p:[44,4,1243],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[45,4,1298],t:7,e:"div",a:{"class":"item"},f:[{p:[46,5,1321],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"msg",p:[48,7,1403]},{p:[48,14,1410],t:7,e:"br"}],n:52,r:"data.messages",p:[47,6,1373]}]}]}]}," ",{p:[53,3,1464],t:7,e:"b",f:["Connected Users"]},{p:[53,25,1486],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"name",p:[55,4,1519]},{p:[55,12,1527],t:7,e:"br"}],n:52,r:"data.clients",p:[54,3,1493]}],n:50,r:"data.title",p:[9,2,140]},{t:4,n:51,f:[{p:[58,3,1556],t:7,e:"b",f:["Controls:"]}," ",{p:[59,3,1575],t:7,e:"table",f:[{p:[60,4,1586],t:7,e:"tr",f:[{p:[60,8,1590],t:7,e:"td",f:[{p:[60,12,1594],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[61,4,1660],t:7,e:"tr",f:[{p:[61,8,1664],t:7,e:"td",f:[{p:[61,12,1668],t:7,e:"ui-button",a:{action:"PRG_newchannel"},f:["New Channel"]}]}]},{p:[62,4,1730],t:7,e:"tr",f:[{p:[62,8,1734],t:7,e:"td",f:[{p:[62,12,1738],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]}]}," ",{p:[64,3,1826],t:7,e:"b",f:["Available channels:"]}," ",{p:[65,3,1855],t:7,e:"table",f:[{t:4,f:[{p:[67,4,1898],t:7,e:"tr",f:[{p:[67,8,1902],t:7,e:"td",f:[{p:[67,12,1906],t:7,e:"ui-button",a:{action:"PRG_joinchannel",params:['{"id": "',{t:2,r:"id",p:[67,64,1958]},'"}']},f:[{t:2,r:"chan",p:[67,74,1968]}]},{p:[67,94,1988],t:7,e:"br"}]}]}],n:52,r:"data.all_channels",p:[66,3,1865]}]}],r:"data.title"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],420:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{p:[4,1,61],t:7,e:"ui-display",f:[{t:4,f:["##SYSTEM ERROR: ",{t:2,r:"data.error",p:[6,19,112]},{p:[6,33,126],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["RESET"]}],n:50,r:"data.error",p:[5,2,75]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.target"],s:"_0"},f:["##DoS traffic generator active. Tx: ",{t:2,r:"data.speed",p:[8,39,236]},"GQ/s",{p:[8,57,254],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"nums",p:[10,4,291]},{p:[10,12,299],t:7,e:"br"}],n:52,r:"data.dos_strings",p:[9,3,261]}," ",{p:[12,3,318],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["ABORT"]}]},{t:4,n:50,x:{r:["data.target"],s:"!(_0)"},f:[" ##DoS traffic generator ready. Select target device.",{p:[14,55,430],t:7,e:"br"}," ",{t:4,f:["Targeted device ID: ",{t:2,r:"data.focus",p:[16,24,479]}],n:50,r:"data.focus",p:[15,3,437]},{t:4,n:51,f:["Targeted device ID: None"],r:"data.focus"}," ",{p:[20,3,545],t:7,e:"ui-button",a:{action:"PRG_execute"},f:["EXECUTE"]},{p:[20,54,596],t:7,e:"div",a:{style:"clear:both"}}," Detected devices on network:",{p:[21,31,657],t:7,e:"br"}," ",{t:4,f:[{p:[23,4,689],t:7,e:"ui-button",a:{action:"PRG_target_relay",params:['{"targid": "',{t:2,r:"id",p:[23,61,746]},'"}']},f:[{t:2,r:"id",p:[23,71,756]}]}],n:52,r:"data.relays",p:[22,3,664]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],421:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{p:[4,1,61],t:7,e:"ui-display",f:[{p:[5,2,75],t:7,e:"i",f:["Welcome to software download utility. Please select which software you wish to download."]},{p:[5,97,170],t:7,e:"hr"}," ",{t:4,f:[{p:[7,3,197],t:7,e:"ui-display",a:{title:"Download Error"},f:[{p:[8,4,236],t:7,e:"ui-section",a:{label:"Information"},f:[{t:2,r:"data.error",p:[9,5,273]}]}," ",{p:[11,4,308],t:7,e:"ui-section",a:{label:"Reset Program"},f:[{p:[12,5,347],t:7,e:"ui-button",a:{icon:"times",action:"PRG_reseterror"},f:["RESET"]}]}]}],n:50,r:"data.error",p:[6,2,176]},{t:4,n:51,f:[{t:4,f:[{p:[19,4,498],t:7,e:"ui-display",a:{title:"Download Running"},f:[{p:[20,5,540],t:7,e:"i",f:["Please wait..."]}," ",{p:[21,5,566],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"data.downloadname",p:[22,6,602]}]}," ",{p:[24,5,646],t:7,e:"ui-section",a:{label:"File description"},f:[{t:2,r:"data.downloaddesc",p:[25,6,689]}]}," ",{p:[27,5,733],t:7,e:"ui-section",a:{label:"File size"},f:[{t:2,r:"data.downloadsize",p:[28,6,769]},"GQ"]}," ",{p:[30,5,815],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{t:2,r:"data.downloadspeed",p:[31,6,855]}," GQ/s"]}," ",{p:[33,5,905],t:7,e:"ui-section",a:{label:"Download progress"},f:[{p:[34,6,949],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.downloadsize",p:[34,27,970]}],value:[{t:2,r:"adata.downloadcompletion",p:[34,58,1001]}],state:"good"},f:[{t:2,x:{r:["adata.downloadcompletion"],s:"Math.round(_0)"},p:[34,101,1044]},"GQ / ",{t:2,r:"adata.downloadsize",p:[34,146,1089]},"GQ"]}]}]}],n:50,r:"data.downloadname",p:[18,3,469]}],r:"data.error"}," ",{t:4,f:[{t:4,f:[{p:[41,4,1230],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,5,1267],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,6,1307],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,27,1328]}],value:[{t:2,r:"adata.disk_used",p:[43,55,1356]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,89,1390]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,125,1426]},"GQ"]}]}]}," ",{p:[47,4,1499],t:7,e:"ui-display",a:{title:"Primary Software Repository"},f:[{t:4,f:[{p:[49,6,1594],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[49,28,1616]}]},f:[{p:[50,7,1637],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[50,61,1691]}]}," ",{p:[52,7,1723],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[53,8,1761]}," (",{t:2,r:"size",p:[53,22,1775]}," GQ)"]}," ",{p:[55,7,1814],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[56,8,1856]}]}," ",{p:[58,7,1900],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[58,80,1973]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[62,6,2052],t:7,e:"br"}],n:52,r:"data.downloadable_programs",p:[48,5,1552]}]}," ",{t:4,f:[{p:[67,5,2128],t:7,e:"ui-display",a:{title:"UNKNOWN Software Repository"},f:[{p:[68,6,2182],t:7,e:"i",f:["Please note that Nanotrasen does not recommend download of software from non-official servers."]}," ",{t:4,f:[{p:[70,7,2326],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[70,29,2348]}]},f:[{p:[71,8,2370],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[71,62,2424]}]}," ",{p:[73,8,2458],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[74,9,2497]}," (",{t:2,r:"size",p:[74,23,2511]}," GQ)"]}," ",{p:[76,8,2552],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[77,9,2595]}]}," ",{p:[79,8,2641],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[79,81,2714]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[83,7,2797],t:7,e:"br"}],n:52,r:"data.hacked_programs",p:[69,6,2289]}]}],n:50,r:"data.hackedavailable",p:[66,4,2095]}],n:50,x:{r:["data.error"],s:"!_0"},p:[40,3,1207]}],n:50,x:{r:["data.downloadname"],s:"!_0"},p:[39,2,1178]}," ",{p:[89,2,2866],t:7,e:"br"},{p:[89,6,2870],t:7,e:"br"},{p:[89,10,2874],t:7,e:"hr"},{p:[89,14,2878],t:7,e:"i",f:["NTOS v2.0.4b Copyright Nanotrasen 2557 - 2559"]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],422:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{p:[4,1,61],t:7,e:"ui-display",f:[{p:[6,2,76],t:7,e:"ui-display",a:{title:"WIRELESS CONNECTIVITY"},f:[{p:[8,3,122],t:7,e:"ui-section",a:{label:"Active NTNetRelays"},f:[{p:[9,4,165],t:7,e:"b",f:[{t:2,r:"data.ntnetrelays",p:[9,7,168]}]}]}," ",{t:4,f:[{p:[12,4,239],t:7,e:"ui-section",a:{label:"System status"},f:[{p:[13,6,279],t:7,e:"b",f:[{t:2,x:{r:["data.ntnetstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[13,9,282]}]}]}," ",{p:[15,4,352],t:7,e:"ui-section",a:{label:"Control"},f:[{p:[17,4,385],t:7,e:"ui-button",a:{icon:"plus",action:"toggleWireless"},f:["TOGGLE"]}]}," ",{p:[21,4,480],t:7,e:"br"},{p:[21,8,484],t:7,e:"br"}," ",{p:[22,4,492],t:7,e:"i",f:["Caution - Disabling wireless transmitters when using wireless device may prevent you from re-enabling them again!"]}],n:50,r:"data.ntnetrelays",p:[11,3,211]},{t:4,n:51,f:[{p:[24,4,627],t:7,e:"br"},{p:[24,8,631],t:7,e:"p",f:["Wireless coverage unavailable, no relays are connected."]}],r:"data.ntnetrelays"}]}," ",{p:[29,2,722],t:7,e:"ui-display",a:{title:"FIREWALL CONFIGURATION"},f:[{p:[31,2,768],t:7,e:"table",f:[{p:[32,3,778],t:7,e:"tr",f:[{p:[33,4,786],t:7,e:"th",f:["PROTOCOL"]},{p:[34,4,802],t:7,e:"th",f:["STATUS"]},{p:[35,4,816],t:7,e:"th",f:["CONTROL"]}]},{p:[36,3,830],t:7,e:"tr",f:[" ",{p:[37,4,838],t:7,e:"td",f:["Software Downloads"]},{p:[38,4,864],t:7,e:"td",f:[{t:2,x:{r:["data.config_softwaredownload"],s:'_0?"ENABLED":"DISABLED"'},p:[38,8,868]}]},{p:[39,4,929],t:7,e:"td",f:[" ",{p:[39,9,934],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "1"}'},f:["TOGGLE"]}]}]},{p:[40,3,1012],t:7,e:"tr",f:[" ",{p:[41,4,1020],t:7,e:"td",f:["Peer to Peer Traffic"]},{p:[42,4,1048],t:7,e:"td",f:[{t:2,x:{r:["data.config_peertopeer"],s:'_0?"ENABLED":"DISABLED"'},p:[42,8,1052]}]},{p:[43,4,1107],t:7,e:"td",f:[{p:[43,8,1111],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "2"}'},f:["TOGGLE"]}]}]},{p:[44,3,1189],t:7,e:"tr",f:[" ",{p:[45,4,1197],t:7,e:"td",f:["Communication Systems"]},{p:[46,4,1226],t:7,e:"td",f:[{t:2,x:{r:["data.config_communication"],s:'_0?"ENABLED":"DISABLED"'},p:[46,8,1230]}]},{p:[47,4,1288],t:7,e:"td",f:[{p:[47,8,1292],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "3"}'},f:["TOGGLE"]}]}]},{p:[48,3,1370],t:7,e:"tr",f:[" ",{p:[49,4,1378],t:7,e:"td",f:["Remote System Control"]},{p:[50,4,1407],t:7,e:"td",f:[{t:2,x:{r:["data.config_systemcontrol"],s:'_0?"ENABLED":"DISABLED"'},p:[50,8,1411]}]},{p:[51,4,1469],t:7,e:"td",f:[{p:[51,8,1473],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "4"}'},f:["TOGGLE"]}]}]}]}]}," ",{p:[55,2,1576],t:7,e:"ui-display",a:{title:"SECURITY SYSTEMS"},f:[{t:4,f:[{p:[58,4,1642],t:7,e:"ui-notice",f:[{p:[59,5,1658],t:7,e:"h1",f:["NETWORK INCURSION DETECTED"]}]}," ",{p:[61,5,1714],t:7,e:"i",f:["An abnormal activity has been detected in the network. Please verify system logs for more information"]}],n:50,r:"data.idsalarm",p:[57,3,1617]}," ",{p:[64,3,1839],t:7,e:"ui-section",a:{label:"Intrusion Detection System"},f:[{p:[65,4,1890],t:7,e:"b",f:[{ +t:2,x:{r:["data.idsstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[65,7,1893]}]}]}," ",{p:[68,3,1962],t:7,e:"ui-section",a:{label:"Maximal Log Count"},f:[{p:[69,4,2004],t:7,e:"b",f:[{t:2,r:"data.ntnetmaxlogs",p:[69,7,2007]}]}]}," ",{p:[72,3,2054],t:7,e:"ui-section",a:{label:"Controls"},f:[]}," ",{p:[74,4,2103],t:7,e:"table",f:[{p:[75,4,2114],t:7,e:"tr",f:[{p:[75,8,2118],t:7,e:"td",f:[{p:[75,12,2122],t:7,e:"ui-button",a:{action:"resetIDS"},f:["RESET IDS"]}]}]},{p:[76,4,2176],t:7,e:"tr",f:[{p:[76,8,2180],t:7,e:"td",f:[{p:[76,12,2184],t:7,e:"ui-button",a:{action:"toggleIDS"},f:["TOGGLE IDS"]}]}]},{p:[77,4,2240],t:7,e:"tr",f:[{p:[77,8,2244],t:7,e:"td",f:[{p:[77,12,2248],t:7,e:"ui-button",a:{action:"updatemaxlogs"},f:["SET LOG LIMIT"]}]}]},{p:[78,4,2311],t:7,e:"tr",f:[{p:[78,8,2315],t:7,e:"td",f:[{p:[78,12,2319],t:7,e:"ui-button",a:{action:"purgelogs"},f:["PURGE LOGS"]}]}]}]}," ",{p:[81,3,2387],t:7,e:"ui-subdisplay",a:{title:"System Logs"},f:[{p:[82,3,2425],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[83,3,2479],t:7,e:"div",a:{"class":"item"},f:[{p:[84,4,2501],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"entry",p:[86,6,2582]},{p:[86,15,2591],t:7,e:"br"}],n:52,r:"data.ntnetlogs",p:[85,5,2552]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],423:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{p:[4,1,61],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,2,96],t:7,e:"div",a:{"class":"item"},f:[{p:[8,3,117],t:7,e:"h2",f:["An error has occurred during operation..."]}," ",{p:[9,3,170],t:7,e:"b",f:["Additional information:"]},{t:2,r:"data.error",p:[9,34,201]},{p:[9,48,215],t:7,e:"br"}," ",{p:[10,3,222],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Clear"]}]}],n:50,r:"data.error",p:[6,2,76]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.downloading"],s:"_0"},f:[{p:[13,3,309],t:7,e:"h2",f:["Download in progress..."]}," ",{p:[14,3,344],t:7,e:"div",a:{"class":"itemLabel"},f:["Downloaded file:"]}," ",{p:[17,3,400],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_name",p:[18,4,429]}]}," ",{p:[20,3,464],t:7,e:"div",a:{"class":"itemLabel"},f:["Download progress:"]}," ",{p:[23,3,522],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_progress",p:[24,4,551]}," / ",{t:2,r:"data.download_size",p:[24,33,580]}," GQ"]}," ",{p:[26,3,617],t:7,e:"div",a:{"class":"itemLabel"},f:["Transfer speed:"]}," ",{p:[29,3,672],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_netspeed",p:[30,4,701]},"GQ/s"]}," ",{p:[32,3,743],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[35,3,792],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[36,4,821],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Abort download"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading"],s:"(!(_0))&&(_1)"},f:[" ",{p:[39,3,916],t:7,e:"h2",f:["Server enabled"]}," ",{p:[40,3,942],t:7,e:"div",a:{"class":"itemLabel"},f:["Connected clients:"]}," ",{p:[43,3,1e3],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_clients",p:[44,4,1029]}]}," ",{p:[46,3,1064],t:7,e:"div",a:{"class":"itemLabel"},f:["Provided file:"]}," ",{p:[49,3,1118],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_filename",p:[50,4,1147]}]}," ",{p:[52,3,1183],t:7,e:"div",a:{"class":"itemLabel"},f:["Server password:"]}," ",{p:[55,3,1239],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ENABLED"],n:50,r:"data.upload_haspassword",p:[56,4,1268]},{t:4,n:51,f:["DISABLED"],r:"data.upload_haspassword"}]}," ",{p:[62,3,1359],t:7,e:"div",a:{"class":"itemLabel"},f:["Commands:"]}," ",{p:[65,3,1408],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[66,4,1437],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[67,4,1501],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Exit server"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(_2))"},f:[" ",{p:[70,3,1599],t:7,e:"h2",f:["File transfer server ready. Select file to upload:"]}," ",{p:[71,3,1662],t:7,e:"table",f:[{p:[72,3,1672],t:7,e:"tr",f:[{p:[72,7,1676],t:7,e:"th",f:["File name"]},{p:[72,20,1689],t:7,e:"th",f:["File size"]},{p:[72,33,1702],t:7,e:"th",f:["Controls ",{t:4,f:[{p:[74,4,1751],t:7,e:"tr",f:[{p:[74,8,1755],t:7,e:"td",f:[{t:2,r:"filename",p:[74,12,1759]}]},{p:[75,4,1775],t:7,e:"td",f:[{t:2,r:"size",p:[75,8,1779]},"GQ"]},{p:[76,4,1793],t:7,e:"td",f:[{p:[76,8,1797],t:7,e:"ui-button",a:{action:"PRG_uploadfile",params:['{"id": "',{t:2,r:"uid",p:[76,59,1848]},'"}']},f:["Select"]}]}]}],n:52,r:"data.upload_filelist",p:[73,3,1717]}]}]}]}," ",{p:[79,3,1903],t:7,e:"hr"}," ",{p:[80,3,1910],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[81,3,1973],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Return"]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(!(_2)))"},f:[" ",{p:[83,3,2034],t:7,e:"h2",f:["Available files:"]}," ",{p:[84,3,2062],t:7,e:"table",a:{border:"1",style:"border-collapse: collapse"},f:[{p:[84,55,2114],t:7,e:"tr",f:[{p:[84,59,2118],t:7,e:"th",f:["Server UID"]},{p:[84,73,2132],t:7,e:"th",f:["File Name"]},{p:[84,86,2145],t:7,e:"th",f:["File Size"]},{p:[84,99,2158],t:7,e:"th",f:["Password Protection"]},{p:[84,122,2181],t:7,e:"th",f:["Operations ",{t:4,f:[{p:[86,5,2226],t:7,e:"tr",f:[{p:[86,9,2230],t:7,e:"td",f:[{t:2,r:"uid",p:[86,13,2234]}]},{p:[87,5,2246],t:7,e:"td",f:[{t:2,r:"filename",p:[87,9,2250]}]},{p:[88,5,2267],t:7,e:"td",f:[{t:2,r:"size",p:[88,9,2271]},"GQ ",{t:4,f:[{p:[90,6,2311],t:7,e:"td",f:["Enabled"]}],n:50,r:"haspassword",p:[89,5,2286]}," ",{t:4,f:[{p:[93,6,2365],t:7,e:"td",f:["Disabled"]}],n:50,x:{r:["haspassword"],s:"!_0"},p:[92,5,2339]}]},{p:[96,5,2399],t:7,e:"td",f:[{p:[96,9,2403],t:7,e:"ui-button",a:{action:"PRG_downloadfile",params:['{"id": "',{t:2,r:"uid",p:[96,62,2456]},'"}']},f:["Download"]}]}]}],n:52,r:"data.servers",p:[85,4,2199]}]}]}]}," ",{p:[99,3,2514],t:7,e:"hr"}," ",{p:[100,3,2521],t:7,e:"ui-button",a:{action:"PRG_uploadmenu"},f:["Send file"]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],424:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[43,1,1040],t:7,e:"ntosheader"}," ",{p:[45,1,1055],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[47,5,1111],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[47,27,1133]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[49,38,1283]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[50,15,1338]}],yinc:"9"}}],n:50,r:"config.fancy",p:[46,3,1086]},{t:4,n:51,f:[{p:[52,5,1386],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[53,7,1423],t:7,e:"span",f:[{t:2,r:"data.supply",p:[53,13,1429]}]}]}," ",{p:[55,5,1474],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[56,9,1508],t:7,e:"span",f:[{t:2,r:"data.demand",p:[56,15,1514]}]}]}],r:"config.fancy"}]}," ",{p:[60,1,1579],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[61,3,1608],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[62,5,1632],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[63,5,1668],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[64,5,1706],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[65,5,1742],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[66,5,1780],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[67,5,1821],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[68,5,1861],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[71,5,1943],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[71,24,1962]}],nowrap:0},f:[{p:[72,7,1986],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[72,28,2007]}," %"]}," ",{p:[73,7,2064],t:7,e:"div",a:{"class":"content"},f:[{t:2,rx:{r:"adata.areas",m:[{t:30,n:"@index"},"load"]},p:[73,28,2085]}]}," ",{p:[74,7,2126],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2147],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[74,41,2160]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[74,70,2189]}]}]}," ",{p:[75,7,2235],t:7,e:"div",a:{"class":"content"},f:[{p:[75,28,2256],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[75,41,2269]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[75,64,2292]}," [",{p:[75,87,2315],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[75,93,2321]}]},"]"]}]}," ",{p:[76,7,2369],t:7,e:"div",a:{"class":"content"},f:[{p:[76,28,2390],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[76,41,2403]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[76,64,2426]}," [",{p:[76,87,2449],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[76,93,2455]}]},"]"]}]}," ",{p:[77,7,2503],t:7,e:"div",a:{"class":"content"},f:[{p:[77,28,2524],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[77,41,2537]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[77,64,2560]}," [",{p:[77,87,2583],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[77,93,2589]}]},"]"]}]}]}],n:52,r:"data.areas",p:[70,3,1918]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],425:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{p:[4,1,61],t:7,e:"ui-display",f:[{p:[5,2,75],t:7,e:"div",a:{"class":"item"},f:[{p:[6,3,96],t:7,e:"div",a:{"class":"itemLabel"},f:["Payload status:"]}," ",{p:[9,3,150],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ARMED"],n:50,r:"data.armed",p:[10,4,179]},{t:4,n:51,f:["DISARMED"],r:"data.armed"}]}," ",{p:[16,3,255],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[19,3,303],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[20,4,332],t:7,e:"table",f:[{p:[21,4,343],t:7,e:"tr",f:[{p:[21,8,347],t:7,e:"td",f:[{p:[21,12,351],t:7,e:"ui-button",a:{action:"PRG_obfuscate"},f:["OBFUSCATE PROGRAM NAME"]}]}]},{p:[22,4,423],t:7,e:"tr",f:[{p:[22,8,427],t:7,e:"td",f:[{p:[22,12,431],t:7,e:"ui-button",a:{action:"PRG_arm",state:[{t:2,x:{r:["data.armed"],s:'_0?"danger":null'},p:[22,47,466]}]},f:[{t:2,x:{r:["data.armed"],s:'_0?"DISARM":"ARM"'},p:[22,81,500]}]}," ",{p:[23,4,549],t:7,e:"ui-button",a:{icon:"radiation",state:[{t:2,x:{r:["data.armed"],s:'_0?null:"disabled"'},p:[23,39,584]}],action:"PRG_activate"},f:["ACTIVATE"]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],426:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,46],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[5,3,91],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[5,22,110]}," Alarms"]},f:[{p:[6,5,133],t:7,e:"ul",f:[{t:4,f:[{p:[8,9,164],t:7,e:"li",f:[{t:2,r:".",p:[8,13,168]}]}],n:52,r:".",p:[7,7,144]},{t:4,n:51,f:[{p:[10,9,202],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[4,1,61]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],427:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{integState:function(t){var e=100;return t==e?"good":t>e/2?"average":"bad"},bigState:function(t,e,n){return charge>n?"bad":t>e?"average":"good"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[23,1,399],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[27,2,436],t:7,e:"ui-button",a:{action:"PRG_clear"},f:["Back to Menu"]},{p:[27,56,490],t:7,e:"br"}," ",{p:[28,3,497],t:7,e:"ui-display",a:{title:"Supermatter Status:"},f:[{p:[29,3,540],t:7,e:"ui-section",a:{label:"Core Integrity"},f:[{p:[30,5,580],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"adata.SM_integrity",p:[30,38,613]}],state:[{t:2,x:{r:["integState","adata.SM_integrity"],s:"_0(_1)"},p:[30,69,644]}]},f:[{t:2,r:"data.SM_integrity",p:[30,105,680]},"%"]}]}," ",{p:[32,3,730],t:7,e:"ui-section",a:{label:"Relative EER"},f:[{p:[33,5,768],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_power"],s:"_0(_1,150,300)"},p:[33,18,781]}]},f:[{t:2,r:"data.SM_power",p:[33,55,818]}," MeV/cm3"]}]}," ",{p:[35,3,869],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[36,5,906],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambienttemp"],s:"_0(_1,4000,5000)"},p:[36,18,919]}]},f:[{t:2,r:"data.SM_ambienttemp",p:[36,63,964]}," K"]}]}," ",{p:[38,3,1015],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[39,5,1049],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambientpressure"],s:"_0(_1,5000,10000)"},p:[39,18,1062]}]},f:[{t:2,r:"data.SM_ambientpressure",p:[39,68,1112]}," kPa"]}]}]}," ",{p:[42,3,1186],t:7,e:"hr"},{p:[42,7,1190],t:7,e:"br"}," ",{p:[43,3,1197],t:7,e:"ui-display",a:{title:"Gas Composition:"},f:[{t:4,f:[{p:[45,5,1263],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[45,24,1282]}]},f:[{t:2,r:"amount",p:[46,6,1298]}," %"]}],n:52,r:"data.gases",p:[44,4,1238]}]}],n:50,r:"data.active",p:[26,1,415]},{t:4,n:51,f:[{p:[51,2,1368],t:7,e:"ui-button",a:{action:"PRG_refresh"},f:["Refresh"]},{p:[51,53,1419],t:7,e:"br"}," ",{p:[52,2,1425],t:7,e:"ui-display",a:{title:"Detected Supermatters"},f:[{t:4,f:[{p:[54,3,1499],t:7,e:"ui-section",a:{label:"Area"},f:[{t:2,r:"area_name",p:[55,5,1529]}," - (#",{t:2,r:"uid",p:[55,23,1547]},")"]}," ",{p:[57,3,1574],t:7,e:"ui-section",a:{label:"Integrity"},f:[{t:2,r:"integrity",p:[58,5,1609]}," %"]}," ",{p:[60,3,1643],t:7,e:"ui-section",a:{label:"Options"},f:[{p:[61,5,1676],t:7,e:"ui-button",a:{action:"PRG_set",params:['{"target" : "',{t:2,r:"uid",p:[61,54,1725]},'"}']},f:["View Details"]}]}],n:52,r:"data.supermatters",p:[53,2,1469]}]}],r:"data.active"}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(428)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,428:428}],428:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"item",style:"float: left"},f:[{p:[2,2,40],t:7,e:"table",f:[{p:[2,9,47],t:7,e:"tr",f:[{t:4,f:[{p:[4,3,110],t:7,e:"td",f:[{p:[4,7,114],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[4,17,124]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[3,2,53]}," ",{t:4,f:[{p:[7,3,220],t:7,e:"td",f:[{p:[7,7,224],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[7,10,227]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[6,2,160]}," ",{t:4,f:[{p:[10,3,296],t:7,e:"td",f:[{p:[10,7,300],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[10,17,310]}]}}]}],n:50,r:"data.PC_ntneticon",p:[9,2,268]}," ",{t:4,f:[{p:[13,3,374],t:7,e:"td",f:[{p:[13,7,378],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[13,17,388]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[12,2,344]}," ",{t:4,f:[{p:[16,3,454],t:7,e:"td",f:[{p:[16,7,458],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[16,10,461]}]}]}],n:50,r:"data.PC_stationtime",p:[15,2,424]}," ",{t:4,f:[{p:[19,3,534],t:7,e:"td",f:[{p:[19,7,538],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[19,17,548]}]}}]}],n:52,r:"data.PC_programheaders",p:[18,2,499]}]}]}]}," ",{p:[23,1,587],t:7,e:"div",a:{style:"float: right; margin-top: 5px"},f:[{p:[24,2,632],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[26,3,720],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}," ",{p:[27,3,775],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}],n:50,r:"data.PC_showexitprogram",p:[25,2,686]}]}," ",{p:[30,1,852],t:7,e:"div",a:{style:"clear: both"}}]},e.exports=a.extend(r.exports)},{341:341}],429:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Auth. Disk:"},f:[{t:4,f:[{p:[3,7,67],t:7,e:"ui-button",a:{icon:"eject",style:"selected",action:"eject_disk"},f:["++++++++++"]}],n:50,r:"data.disk_present",p:[2,3,35]},{t:4,n:51,f:[{p:[5,7,168],t:7,e:"ui-button",a:{icon:"plus",action:"insert_disk"},f:["----------"]}],r:"data.disk_present"}]}," ",{p:[8,1,259],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[9,3,289],t:7,e:"span",f:[{t:2,r:"data.status1",p:[9,9,295]},"-",{t:2,r:"data.status2",p:[9,26,312]}]}]}," ",{p:[11,1,350],t:7,e:"ui-display",a:{title:"Timer"},f:[{p:[12,3,379],t:7,e:"ui-section",a:{label:"Time to Detonation"},f:[{p:[13,5,423],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[13,11,429]}]}]}," ",{t:4,f:[{p:[16,5,525],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[17,7,565],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_default"],s:'_0&&_1&&_2?null:"disabled"'},p:[17,40,598]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[19,7,768],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_min"],s:'_0&&_1&&_2?null:"disabled"'},p:[19,38,799]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[21,7,971],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[21,39,1003]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[22,7,1134],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_max"],s:'_0&&_1&&_2?null:"disabled"'},p:[22,37,1164]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[15,3,504]}," ",{p:[26,3,1369],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[27,5,1400],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[27,38,1433]}],action:"toggle_timer",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.safety"],s:'_0&&_1&&!_2?null:"disabled"'},p:[29,14,1514]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[30,7,1602]}]}]}]}," ",{p:[34,1,1680],t:7,e:"ui-display",a:{title:"Anchoring"},f:[{p:[35,3,1713],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[36,12,1735]}],icon:[{t:2,x:{r:["data.anchored"],s:'_0?"lock":"unlock"'},p:[37,11,1810]}],style:[{t:2,x:{r:["data.anchored"],s:'_0?null:"caution"'},p:[38,12,1860]}],action:"anchor"},f:[{t:2,x:{r:["data.anchored"],s:'_0?"Engaged":"Off"'},p:[39,21,1918]}]}]}," ",{p:[41,1,1982],t:7,e:"ui-display",a:{title:"Safety"},f:[{p:[42,3,2012],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[43,12,2034]}],icon:[{t:2,x:{r:["data.safety"],s:'_0?"lock":"unlock"'},p:[44,11,2109]}],action:"safety",style:[{t:2,x:{r:["data.safety"],s:'_0?"caution":"danger"'},p:[45,12,2173]}]},f:[{p:[46,7,2220],t:7,e:"span",f:[{t:2,x:{r:["data.safety"],s:'_0?"On":"Off"'},p:[46,13,2226]}]}]}]}," ",{p:[49,1,2293],t:7,e:"ui-display",a:{title:"Code"},f:[{p:[50,3,2321],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.message",p:[50,31,2349]}]}," ",{p:[51,3,2381],t:7,e:"ui-section",a:{label:"Keypad"},f:[{p:[52,5,2413],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[52,39,2447]}],params:'{"digit":"1"}'},f:["1"]}," ",{p:[53,5,2531],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[53,39,2565]}],params:'{"digit":"2"}'},f:["2"]}," ",{p:[54,5,2649],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[54,39,2683]}],params:'{"digit":"3"}'},f:["3"]}," ",{p:[55,5,2767],t:7,e:"br"}," ",{p:[56,5,2776],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[56,39,2810]}],params:'{"digit":"4"}'},f:["4"]}," ",{p:[57,5,2894],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[57,39,2928]}],params:'{"digit":"5"}'},f:["5"]}," ",{p:[58,5,3012],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[58,39,3046]}],params:'{"digit":"6"}'},f:["6"]}," ",{p:[59,5,3130],t:7,e:"br"}," ",{p:[60,5,3139],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[60,39,3173]}],params:'{"digit":"7"}'},f:["7"]}," ",{p:[61,5,3257],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[61,39,3291]}],params:'{"digit":"8"}'},f:["8"]}," ",{p:[62,5,3375],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[62,39,3409]}],params:'{"digit":"9"}'},f:["9"]}," ",{p:[63,5,3493],t:7,e:"br"}," ",{p:[64,5,3502],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[64,39,3536]}],params:'{"digit":"R"}'},f:["R"]}," ",{p:[65,5,3620],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[65,39,3654]}],params:'{"digit":"0"}'},f:["0"]}," ",{p:[66,5,3738],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[66,39,3772]}],params:'{"digit":"E"}'},f:["E"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],430:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,24],t:7,e:"ui-button",a:{icon:"undo",action:"change_menu",params:'{"menu": "1"}'},f:["Return"]}," ",{p:[3,2,111],t:7,e:"ui-display",a:{title:"Advanced Surgery Procedures"},f:[{p:[4,3,162],t:7,e:"ui-button",a:{icon:"download",action:"sync"},f:["Sync with research database"]}," ",{t:4,f:[{p:[6,4,273],t:7,e:"ui-display",f:[{p:[7,6,291],t:7,e:"ui-section",f:[{p:[7,18,303],t:7,e:"b",f:[{t:2,r:"name",p:[7,21,306]}]}]}," ",{p:[8,6,337],t:7,e:"ui-section",f:[{t:2,r:"desc",p:[8,18,349]}]}]}],n:52,r:"data.surgeries",p:[5,3,245]}]}],n:50,x:{r:["data.menu"],s:"_0==2"},p:[1,1,0]},{t:4,n:51,f:[{p:[13,2,425],t:7,e:"ui-button",a:{action:"change_menu",params:'{"menu": "2"}'},f:["View Surgery Procedures"]}," ",{t:4,f:[{p:[15,3,542],t:7,e:"ui-notice",f:["No table detected!"]}],n:51,r:"data.table",p:[14,2,517]}," ",{p:[19,2,605],t:7,e:"ui-display",f:[{p:[20,3,620],t:7,e:"ui-display",a:{title:"Patient State"},f:[{t:4,f:[{p:[22,5,683],t:7,e:"ui-section",a:{label:"State"},f:[{p:[23,6,715],t:7,e:"span",a:{"class":[{t:2,r:"data.patient.statstate",p:[23,19,728]}]},f:[{t:2,r:"data.patient.stat",p:[23,47,756]}]}]}," ",{p:[25,5,807],t:7,e:"ui-section",a:{label:"Blood Type"},f:[{p:[26,6,844],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.patient.blood_type",p:[26,28,866]}]}]}," ",{p:[28,5,923],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[29,6,956],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.patient.minHealth",p:[29,19,969]}],max:[{t:2,r:"data.patient.maxHealth",p:[29,52,1002]}],value:[{t:2,r:"data.patient.health",p:[29,87,1037]}],state:[{t:2,x:{r:["data.patient.health"],s:'_0>=0?"good":"average"'},p:[30,13,1074]}]},f:[{t:2,x:{r:["adata.patient.health"],s:"Math.round(_0)"},p:[30,64,1125]}]}]}," ",{t:4,f:[{p:[33,6,1357],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[33,25,1376]}]},f:[{p:[34,7,1394],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.patient.maxHealth",p:[34,28,1415]}],value:[{t:2,rx:{r:"data.patient",m:[{t:30,n:"type"}]},p:[34,63,1450]}],state:"bad"},f:[{t:2,x:{r:["type","adata.patient"],s:"Math.round(_1[_0])"},p:[34,99,1486]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}]'},p:[32,5,1193]}],n:50,r:"data.patient",p:[21,4,658]},{t:4,n:51,f:["No patient detected."],r:"data.patient"}]}," ",{p:[41,3,1630],t:7,e:"ui-display",a:{title:"Initiated Procedures"},f:[{t:4,f:[{t:4,f:[{p:[44,6,1734],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[44,28,1756]}]},f:[{p:[45,7,1773],t:7,e:"ui-section",a:{label:"Next Step"},f:[{p:[46,8,1811],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"next_step",p:[46,30,1833]}]}," ",{t:4,f:[{p:[48,9,1890],t:7,e:"span",a:{"class":"content"},f:[{p:[48,31,1912],t:7,e:"b",f:["Required chemicals:"]},{p:[48,57,1938],t:7,e:"br"}," ",{t:2,r:"chems_needed",p:[48,62,1943]}]}],n:50,r:"chems_needed",p:[47,8,1861]}]}," ",{t:4,f:[{p:[52,8,2040],t:7,e:"ui-section",a:{label:"Alternative Step"},f:[{p:[53,9,2086],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"alternative_step",p:[53,31,2108]}]}," ",{t:4,f:[{p:[55,10,2178],t:7,e:"span",a:{"class":"content"},f:[{p:[55,32,2200],t:7,e:"b",f:["Required chemicals:"]},{p:[55,58,2226],t:7,e:"br"}," ",{t:2,r:"chems_needed",p:[55,63,2231]}]}],n:50,r:"alt_chems_needed",p:[54,9,2144]}]}],n:50,r:"alternative_step",p:[51,7,2008]}]}],n:52,r:"data.procedures",p:[43,5,1703]}],n:50,r:"data.procedures",p:[42,4,1675]},{t:4,n:51,f:["No active procedures."],r:"data.procedures"}]}]}],x:{r:["data.menu"],s:"_0==2"}}]},e.exports=a.extend(r.exports)},{341:341}],431:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,14],t:7,e:"ui-section",f:["This machine only accepts ore. Gibtonite and Slag are not accepted."]}," ",{p:[5,2,113],t:7,e:"ui-section",f:["Current unclaimed points: ",{t:2,r:"data.unclaimedPoints",p:[6,29,154]}," ",{t:4,f:[{p:[8,4,213],t:7,e:"ui-button",a:{action:"Claim"},f:["Claim Points"]}],n:50,r:"data.unclaimedPoints",p:[7,3,181]}]}," ",{p:[13,2,299],t:7,e:"ui-section",f:[{t:4,f:[{p:[15,4,336],t:7,e:"ui-button",a:{action:"Eject"},f:["Eject ID"]}," You have ",{t:2,r:"data.claimedPoints",p:[18,13,404]}," mining points collected."],n:50,r:"data.hasID",p:[14,3,314]},{t:4,n:51,f:[{p:[20,4,466],t:7,e:"ui-button",a:{action:"Insert"},f:["Insert ID"]}],r:"data.hasID"}]}]}," ",{p:[26,1,563],t:7,e:"ui-display",f:[{t:4,f:[{p:[28,3,600],t:7,e:"ui-section",f:[{p:[29,4,616],t:7,e:"ui-button",a:{action:"diskEject",icon:"eject"},f:["Eject Disk"]}]}," ",{t:4,f:[{p:[34,4,739],t:7,e:"ui-section",a:{"class":"candystripe"},f:[{p:[35,5,774],t:7,e:"ui-button",a:{action:"diskUpload",state:[{t:2,x:{r:["canupload"],s:'(_0)?null:"disabled"'},p:[35,42,811]}],icon:"upload",align:"right",params:['{ "design" : "',{t:2,r:"index",p:[35,129,898]},'" }']},f:["Upload"]}," File ",{t:2,r:"index",p:[38,10,951]},": ",{t:2,r:"name",p:[38,21,962]}]}],n:52,r:"data.diskDesigns",p:[33,3,709]}],n:50,r:"data.hasDisk",p:[27,2,577]},{t:4,n:51,f:[{p:[42,3,1012],t:7,e:"ui-section",f:[{p:[43,4,1028],t:7,e:"ui-button",a:{action:"diskInsert",icon:"floppy-o"},f:["Insert Disk"]}]}],r:"data.hasDisk"}]}," ",{t:4,f:[{p:[50,2,1174],t:7,e:"ui-display",f:[{p:[51,3,1189],t:7,e:"ui-section",f:[{p:[52,4,1205],t:7,e:"b",f:["Warning"]},": ",{t:2,r:"data.disconnected",p:[52,20,1221]},". Please contact the quartermaster."]}]}],n:50,r:"data.disconnected",p:[49,1,1147]},{t:4,f:[{p:[57,2,1356],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[58,3,1388],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[59,5,1422],t:7,e:"section",a:{"class":"cell"},f:["Mineral"]}," ",{p:[62,5,1477],t:7,e:"section",a:{"class":"cell"},f:["Sheets"]}," ",{p:[65,5,1531],t:7,e:"section",a:{"class":"cell"},f:[]}," ",{p:[67,5,1573],t:7,e:"section",a:{"class":"cell"},f:[]}," ",{p:[69,5,1615],t:7,e:"section",a:{"class":"cell"},f:["Ore Value"]}]}," ",{t:4,f:[{p:[74,4,1712],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[75,5,1746],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[76,6,1774]}]}," ",{p:[78,5,1802],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[79,6,1844]}]}," ",{p:[81,5,1874],t:7,e:"section",a:{"class":"cell"},f:[{p:[82,6,1902],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[82,19,1915]}],placeholder:"###","class":"number"}}]}," ",{p:[84,5,1980],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[85,6,2022],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[85,60,2076]}],params:['{ "id" : ',{t:2,r:"id",p:[85,115,2131]},', "sheets" : ',{t:2,r:"sheets",p:[85,134,2150]}," }"]},f:["Release"]}]}," ",{p:[89,5,2217],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"value",p:[90,6,2259]}]}]}],n:52,r:"data.materials",p:[73,3,1684]}," ",{t:4,f:[{p:[95,4,2337],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[96,5,2371],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[97,6,2399]}]}," ",{p:[99,5,2427],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[100,6,2469]}]}," ",{p:[102,5,2499],t:7,e:"section",a:{"class":"cell"},f:[{p:[103,6,2527],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[103,19,2540]}],placeholder:"###","class":"number"}}]}," ",{p:[105,5,2605],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[106,6,2647],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Smelt",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[106,58,2699]}],params:['{ "id" : ',{t:2,r:"id",p:[106,114,2755]},', "sheets" : ',{t:2,r:"sheets",p:[106,133,2774]}," }"]},f:["Smelt"]}]}," ",{p:[110,5,2838],t:7,e:"section",a:{"class":"cell",align:"right"},f:[]}]}],n:52,r:"data.alloys",p:[94,3,2312]}]}],n:50,x:{r:["data.materials","data.alloys"],s:"_0||_1"},p:[56,1,1317]}]},e.exports=a.extend(r.exports)},{341:341}],432:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:{button:[{p:[4,4,84],t:7,e:"ui-button",a:{icon:"remove",state:[{t:2,x:{r:["data.has_beaker","data.beaker_empty"],s:'_0&&!_1?null:"disabled"'},p:[4,36,116]}],action:"empty_eject_beaker"},f:["Empty and Eject"]}," ",{p:[7,4,247],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.has_beaker","data.beaker_empty"],s:'_0&&!_1?null:"disabled"'},p:[7,35,278]}],action:"empty_beaker"},f:["Empty"]}," ",{p:[10,4,393],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[10,35,424]}],action:"eject_beaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{t:4,f:[{p:[15,4,558],t:7,e:"ui-section",f:[{t:4,f:[{p:[17,6,606],t:7,e:"span",a:{"class":"bad"},f:["The beaker is empty!"]}],n:50,r:"data.beaker_empty",p:[16,5,575]},{t:4,n:51,f:[{p:[19,6,670],t:7,e:"ui-subdisplay",a:{title:"Blood"},f:[{t:4,f:[{p:[21,8,736],t:7,e:"ui-section",a:{label:"Blood DNA"},f:[{t:2,r:"data.blood.dna",p:[21,38,766]}]}," ",{p:[22,8,805],t:7,e:"ui-section",a:{label:"Blood type"},f:[{t:2,r:"data.blood.type",p:[22,39,836]}]}],n:50,r:"data.has_blood",p:[20,7,706]},{t:4,n:51,f:[{p:[24,8,891],t:7,e:"ui-section",f:[{p:[25,9,912],t:7,e:"span",a:{"class":"average"},f:["No blood sample detected."]}]}],r:"data.has_blood"}]}],r:"data.beaker_empty"}]}],n:50,r:"data.has_beaker",p:[14,3,531]},{t:4,n:51,f:[{p:[32,4,1067],t:7,e:"ui-section",f:[{p:[33,5,1084],t:7,e:"span",a:{"class":"bad"},f:["No beaker loaded."]}]}],r:"data.has_beaker"}]}," ",{t:4,f:[{p:[38,3,1195],t:7,e:"ui-display",a:{title:"Diseases"},f:[{t:4,f:[{p:{button:[{t:4,f:[{p:[43,8,1345],t:7,e:"ui-button",a:{icon:"pencil",action:"rename_disease",state:[{t:2,x:{r:["can_rename"],s:'_0?"":"disabled"'},p:[43,64,1401]}],params:['{"index": ',{t:2,r:"index",p:[43,116,1453]},"}"]},f:["Name advanced disease"]}],n:50,r:"is_adv",p:[42,7,1323]}," ",{p:[47,7,1536], +t:7,e:"ui-button",a:{icon:"flask",action:"create_culture_bottle",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[47,69,1598]}],params:['{"index": ',{t:2,r:"index",p:[47,124,1653]},"}"]},f:["Create virus culture bottle"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[40,24,1274]}],button:0},f:[" ",{p:[51,6,1743],t:7,e:"ui-section",a:{label:"Disease agent"},f:[{t:2,r:"agent",p:[51,40,1777]}]}," ",{p:[52,6,1805],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[52,38,1837]}]}," ",{p:[53,6,1871],t:7,e:"ui-section",a:{label:"Spread"},f:[{t:2,r:"spread",p:[53,33,1898]}]}," ",{p:[54,6,1927],t:7,e:"ui-section",a:{label:"Possible cure"},f:[{t:2,r:"cure",p:[54,40,1961]}]}," ",{t:4,f:[{p:[56,7,2010],t:7,e:"ui-section",a:{label:"Symptoms"},f:[{t:4,f:[{p:[58,9,2074],t:7,e:"ui-button",a:{action:"symptom_details",state:"",params:['{"picked_symptom": ',{t:2,r:"sym_index",p:[58,81,2146]},', "index": ',{t:2,r:"index",p:[58,105,2170]},"}"]},f:[{t:2,r:"name",p:[59,10,2192]}," "]},{p:[60,21,2221],t:7,e:"br"}],n:52,r:"symptoms",p:[57,8,2047]}]}," ",{p:[63,7,2271],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[63,38,2302]}]}," ",{p:[64,7,2336],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[64,35,2364]}]}," ",{p:[65,7,2395],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[65,39,2427]}]}," ",{p:[66,7,2462],t:7,e:"ui-section",a:{label:"Transmittability"},f:[{t:2,r:"transmission",p:[66,44,2499]}]}],n:50,r:"is_adv",p:[55,6,1989]}]}],n:52,r:"data.viruses",p:[39,4,1228]},{t:4,n:51,f:[{p:[70,5,2576],t:7,e:"ui-section",f:[{p:[71,6,2594],t:7,e:"span",a:{"class":"average"},f:["No detectable virus in the blood sample."]}]}],r:"data.viruses"}]}," ",{p:[75,3,2713],t:7,e:"ui-display",a:{title:"Antibodies"},f:[{t:4,f:[{p:[77,5,2779],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[77,24,2798]}]},f:[{p:[78,7,2815],t:7,e:"ui-button",a:{icon:"eyedropper",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[78,43,2851]}],action:"create_vaccine_bottle",params:['{"index": ',{t:2,r:"id",p:[78,129,2937]},"}"]},f:["Create vaccine bottle"]}]}],n:52,r:"data.resistances",p:[76,4,2748]},{t:4,n:51,f:[{p:[83,5,3029],t:7,e:"ui-section",f:[{p:[84,6,3047],t:7,e:"span",a:{"class":"average"},f:["No antibodies detected in the blood sample."]}]}],r:"data.resistances"}]}],n:50,r:"data.has_blood",p:[37,2,1170]}],n:50,x:{r:["data.mode"],s:"_0==1"},p:[1,1,0]},{t:4,n:51,f:[{p:[90,2,3186],t:7,e:"ui-button",a:{icon:"undo",state:"",action:"back"},f:["Back"]}," ",{t:4,f:[{p:[94,4,3281],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[94,23,3300]}]},f:[{p:[95,4,3314],t:7,e:"ui-section",f:[{t:2,r:"desc",p:[96,5,3331]}," ",{t:4,f:[{p:[98,5,3364],t:7,e:"br"}," ",{p:[99,5,3374],t:7,e:"b",f:["This symptom has been neutered, and has no effect. It will still affect the virus' statistics."]}],n:50,r:"neutered",p:[97,4,3343]}]}," ",{p:[102,4,3507],t:7,e:"ui-section",f:[{p:[103,5,3524],t:7,e:"ui-section",a:{label:"Level"},f:[{t:2,r:"level",p:[103,31,3550]}]}," ",{p:[104,5,3577],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[104,36,3608]}]}," ",{p:[105,5,3640],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[105,33,3668]}]}," ",{p:[106,5,3697],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[106,37,3729]}]}," ",{p:[107,5,3762],t:7,e:"ui-section",a:{label:"Transmittability"},f:[{t:2,r:"transmission",p:[107,42,3799]}]}]}," ",{p:[109,4,3849],t:7,e:"ui-subdisplay",a:{title:"Effect Thresholds"},f:[{p:[110,5,3895],t:7,e:"ui-section",f:[{t:3,r:"threshold_desc",p:[110,17,3907]}]}]}]}],n:53,r:"data.symptom",p:[93,2,3255]}],x:{r:["data.mode"],s:"_0==1"}}]},e.exports=a.extend(r.exports)},{341:341}],433:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(479);e.exports={data:{filter:"",tooltiptext:function(t,e,n){var a="";return t&&(a+="REQUIREMENTS: "+t+" "),e&&(a+="CATALYSTS: "+e+" "),n&&(a+="TOOLS: "+n),a}},oninit:function(){var t=this;this.on({hover:function(t){this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}}),this.observe("filter",function(e,a,r){var i=null;i=t.get("data.display_compact")?t.findAll(".section"):t.findAll(".display:not(:first-child)"),(0,n.filterMulti)(i,t.get("filter").toLowerCase())},{init:!1})}}}(r),r.exports.template={v:3,t:[" ",{p:[48,1,1295],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[48,20,1314]},{t:4,f:[" : ",{t:2,r:"data.subcategory",p:[48,64,1358]}],n:50,r:"data.subcategory",p:[48,37,1331]}]},f:[{t:4,f:[{p:[50,3,1410],t:7,e:"ui-section",f:["Crafting... ",{p:[51,16,1438],t:7,e:"i",a:{"class":"fa-spin fa fa-spinner"}}]}],n:50,r:"data.busy",p:[49,2,1390]},{t:4,n:51,f:[{p:[54,3,1504],t:7,e:"ui-section",f:[{p:[55,4,1520],t:7,e:"table",a:{style:"width:100%"},f:[{p:[56,5,1551],t:7,e:"tr",f:[{p:[57,6,1561],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[58,7,1602],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[59,8,1660]}]}]}," ",{p:[62,6,1713],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[63,7,1754],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[64,7,1811]}]}]}," ",{p:[67,6,1864],t:7,e:"td",a:{style:"float:right!important"},f:[{t:4,f:[{p:[69,7,1946],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[68,6,1904]},{t:4,n:51,f:[{p:[73,7,2066],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}]}," ",{p:[78,6,2191],t:7,e:"td",a:{style:"float:right!important"},f:[{p:[79,7,2232],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[79,24,2249]}],action:"toggle_compact"},f:["Compact"]}]}]}," ",{p:[84,5,2391],t:7,e:"tr",f:[{t:4,f:[{p:[86,6,2430],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[87,7,2471],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardSubCat"},f:[{t:2,r:"data.prev_subcat",p:[88,8,2532]}]}]}," ",{p:[91,6,2588],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[92,7,2629],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardSubCat"},f:[{t:2,r:"data.next_subcat",p:[93,8,2690]}]}]}],n:50,r:"data.subcategory",p:[85,5,2400]}]}]}," ",{t:4,f:[{t:4,f:[" ",{p:[101,6,2892],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[101,23,2909]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[100,5,2803]}],n:50,r:"config.fancy",p:[99,4,2778]}]}," ",{t:4,f:[{p:[106,5,3039],t:7,e:"ui-display",f:[{t:4,f:[{p:[108,6,3086],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[108,25,3105]}]},f:[{p:[109,7,3122],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[109,27,3142]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[109,135,3250]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[107,5,3056]}," ",{t:4,f:[{t:4,f:[{p:[116,7,3452],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[116,26,3471]}]},f:[{p:[117,8,3489],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[117,28,3509]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[115,6,3420]}],n:51,r:"data.display_craftable_only",p:[114,5,3382]}]}],n:50,r:"data.display_compact",p:[105,4,3006]},{t:4,n:51,f:[{t:4,f:[{p:[126,6,3822],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[126,25,3841]}]},f:[{t:4,f:[{p:[128,8,3882],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[129,9,3924]}]}],n:50,r:"req_text",p:[127,7,3858]}," ",{t:4,f:[{p:[133,8,4007],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[134,9,4046]}]}],n:50,r:"catalyst_text",p:[132,7,3978]}," ",{t:4,f:[{p:[138,8,4130],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[139,9,4165]}]}],n:50,r:"tool_text",p:[137,7,4105]}," ",{p:[142,7,4220],t:7,e:"ui-section",f:[{p:[143,8,4240],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[143,66,4298]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[125,5,3792]}," ",{t:4,f:[{t:4,f:[{p:[151,7,4471],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[151,26,4490]}]},f:[{t:4,f:[{p:[153,9,4533],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[154,10,4576]}]}],n:50,r:"req_text",p:[152,8,4508]}," ",{t:4,f:[{p:[158,9,4663],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[159,10,4703]}]}],n:50,r:"catalyst_text",p:[157,8,4633]}," ",{t:4,f:[{p:[163,9,4791],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[164,10,4827]}]}],n:50,r:"tool_text",p:[162,8,4765]}]}],n:52,r:"data.cant_craft",p:[150,6,4439]}],n:51,r:"data.display_craftable_only",p:[149,5,4401]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{341:341,479:479}],434:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:[4,1,113],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[5,3,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,5,186],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[6,11,192]}," kPa"]}]}," ",{p:[8,3,254],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[9,5,285],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[9,18,298]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[9,59,339]}]}]}]}," ",{p:[12,1,430],t:7,e:"ui-display",a:{title:"Pump"},f:[{p:[13,3,459],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,491],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,508]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,559]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,616]}]}]}," ",{p:[18,3,675],t:7,e:"ui-section",a:{label:"Direction"},f:[{p:[19,5,711],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"sign-out":"sign-in"'},p:[19,22,728]}],action:"direction"},f:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"Out":"In"'},p:[20,26,808]}]}]}," ",{p:[22,3,883],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,5,925],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.min_pressure",p:[23,18,938]}],max:[{t:2,r:"data.max_pressure",p:[23,46,966]}],value:[{t:2,r:"data.target_pressure",p:[24,14,1003]}]},f:[{t:2,x:{r:["adata.target_pressure"],s:"Math.round(_0)"},p:[24,40,1029]}," kPa"]}]}," ",{p:[26,3,1100],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,1145],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.target_pressure","data.default_pressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,1178]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1328],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.target_pressure","data.min_pressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1359]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1500],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1595],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.target_pressure","data.max_pressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1625]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}," ",{p:{button:[{t:4,f:[{p:[39,7,1891],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[39,38,1922]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[38,5,1863]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[43,3,2042],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[44,4,2073]}]}," ",{p:[46,3,2115],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[47,4,2149]}," kPa"]}],n:50,r:"data.holding",p:[42,3,2018]},{t:4,n:51,f:[{p:[50,3,2223],t:7,e:"ui-section",f:[{p:[51,4,2240],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{341:341}],435:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[3,1,69],t:7,e:"ui-notice",f:[{p:[4,3,84],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[4,23,104]}," connected to a tank."]}]}," ",{p:[6,1,182],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[7,3,220],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[8,5,255],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[8,11,261]}," kPa"]}]}," ",{p:[10,3,323],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[11,5,354],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[11,18,367]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[11,59,408]}]}]}]}," ",{p:[14,1,499],t:7,e:"ui-display",a:{title:"Filter"},f:[{p:[15,3,530],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[16,5,562],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[16,22,579]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[17,14,630]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[18,22,687]}]}]}]}," ",{p:{button:[{t:4,f:[{p:[24,7,856],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[24,38,887]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[23,5,828]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[28,3,1007],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[29,4,1038]}]}," ",{p:[31,3,1080],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[32,4,1114]}," kPa"]}],n:50,r:"data.holding",p:[27,3,983]},{t:4,n:51,f:[{p:[35,3,1188],t:7,e:"ui-section",f:[{p:[36,4,1205],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}," ",{p:[40,1,1293],t:7,e:"ui-display",a:{title:"Filters"},f:[{t:4,f:[{p:[42,5,1345],t:7,e:"filters"}],n:53,r:"data",p:[41,3,1325]}]}]},r.exports.components=r.exports.components||{};var i={filters:t(452)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,452:452}],436:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" ",{p:[42,1,1035],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[44,5,1093],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[44,27,1115]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[46,38,1267]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[47,15,1323]}],yinc:"9"}}],n:50,r:"config.fancy",p:[43,3,1067]},{t:4,n:51,f:[{p:[49,5,1373],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[50,7,1411],t:7,e:"span",f:[{t:2,r:"data.supply",p:[50,13,1417]}]}]}," ",{p:[52,5,1464],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[53,9,1499],t:7,e:"span",f:[{t:2,r:"data.demand",p:[53,15,1505]}]}]}],r:"config.fancy"}]}," ",{p:[57,1,1574],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[58,3,1604],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[59,5,1629],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[60,5,1666],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[61,5,1705],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[62,5,1742],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[63,5,1781],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[64,5,1823],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[65,5,1864],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[68,5,1949],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[68,24,1968]}],nowrap:0},f:[{p:[69,7,1993],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[69,28,2014]}," %"]}," ",{p:[70,7,2072],t:7,e:"div",a:{"class":"content"},f:[{t:2,rx:{r:"adata.areas",m:[{t:30,n:"@index"},"load"]},p:[70,28,2093]}]}," ",{p:[71,7,2135],t:7,e:"div",a:{"class":"content"},f:[{p:[71,28,2156],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[71,41,2169]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[71,70,2198]}]}]}," ",{p:[72,7,2245],t:7,e:"div",a:{"class":"content"},f:[{p:[72,28,2266],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[72,41,2279]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[72,64,2302]}," [",{p:[72,87,2325],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[72,93,2331]}]},"]"]}]}," ",{p:[73,7,2380],t:7,e:"div",a:{"class":"content"},f:[{p:[73,28,2401],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[73,41,2414]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[73,64,2437]}," [",{p:[73,87,2460],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[73,93,2466]}]},"]"]}]}," ",{p:[74,7,2515],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2536],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[74,41,2549]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[74,64,2572]}," [",{p:[74,87,2595],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[74,93,2601]}]},"]"]}]}]}],n:52,r:"data.areas",p:[67,3,1923]}]}]},e.exports=a.extend(r.exports)},{341:341}],437:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{readableFrequency:function(){return Math.round(this.get("adata.frequency"))/10}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,167],t:7,e:"ui-display",a:{title:"Settings"},f:[{t:4,f:[{p:[13,5,224],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,7,257],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[14,24,274]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[14,75,325]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"On":"Off"'},p:[16,9,398]}]}]}],n:50,r:"data.headset",p:[12,3,199]},{t:4,n:51,f:[{p:[19,5,476],t:7,e:"ui-section",a:{label:"Microphone"},f:[{p:[20,7,514],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.broadcasting"],s:'_0?"power-off":"close"'},p:[20,24,531]}],style:[{t:2,x:{r:["data.broadcasting"],s:'_0?"selected":null'},p:[20,78,585]}],action:"broadcast"},f:[{t:2,x:{r:["data.broadcasting"],s:'_0?"Engaged":"Disengaged"'},p:[22,9,664]}]}]}," ",{p:[24,5,746],t:7,e:"ui-section",a:{label:"Speaker"},f:[{p:[25,7,781],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[25,24,798]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[25,75,849]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"Engaged":"Disengaged"'},p:[27,9,922]}]}]}],r:"data.headset"}," ",{t:4,f:[{p:[31,5,1034],t:7,e:"ui-section",a:{label:"High Volume"},f:[{p:[32,7,1073],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.useCommand"],s:'_0?"power-off":"close"'},p:[32,24,1090]}],style:[{t:2,x:{r:["data.useCommand"],s:'_0?"selected":null'},p:[32,76,1142]}],action:"command"},f:[{t:2,x:{r:["data.useCommand"],s:'_0?"On":"Off"'},p:[34,9,1217]}]}]}],n:50,r:"data.command",p:[30,3,1009]}]}," ",{p:[38,1,1305],t:7,e:"ui-display",a:{title:"Channel"},f:[{p:[39,3,1336],t:7,e:"ui-section",a:{label:"Frequency"},f:[{t:4,f:[{p:[41,7,1399],t:7,e:"span",f:[{t:2,r:"readableFrequency",p:[41,13,1405]}]}],n:50,r:"data.freqlock",p:[40,5,1371]},{t:4,n:51,f:[{p:[43,7,1453],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[43,46,1492]}],action:"frequency",params:'{"adjust": -1}'}}," ",{p:[44,7,1603],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[44,41,1637]}],action:"frequency",params:'{"adjust": -.2}'}}," ",{p:[45,7,1749],t:7,e:"ui-button",a:{icon:"pencil",action:"frequency",params:'{"tune": "input"}'},f:[{t:2,r:"readableFrequency",p:[45,78,1820]}]}," ",{p:[46,7,1860],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[46,40,1893]}],action:"frequency",params:'{"adjust": .2}'}}," ",{p:[47,7,2004],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[47,45,2042]}],action:"frequency",params:'{"adjust": 1}'}}],r:"data.freqlock"}]}," ",{t:4,f:[{p:[51,5,2212],t:7,e:"ui-section",a:{label:"Subspace Transmission"},f:[{p:[52,7,2261],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.subspace"],s:'_0?"power-off":"close"'},p:[52,24,2278]}],style:[{t:2,x:{r:["data.subspace"],s:'_0?"selected":null'},p:[52,74,2328]}],action:"subspace"},f:[{t:2,x:{r:["data.subspace"],s:'_0?"Active":"Inactive"'},p:[53,29,2395]}]}]}],n:50,r:"data.subspaceSwitchable",p:[50,3,2176]}," ",{t:4,f:[{p:[57,5,2522],t:7,e:"ui-section",a:{label:"Channels"},f:[{t:4,f:[{p:[59,9,2598],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["."],s:'_0?"check-square-o":"square-o"'},p:[59,26,2615]}],style:[{t:2,x:{r:["."],s:'_0?"selected":null'},p:[60,18,2671]}],action:"channel",params:['{"channel": "',{t:2,r:"channel",p:[61,49,2746]},'"}']},f:[{t:2,r:"channel",p:[62,11,2772]}]},{p:[62,34,2795],t:7,e:"br"}],n:52,i:"channel",r:"data.channels",p:[58,7,2558]}]}],n:50,x:{r:["data.subspace","data.channels"],s:"_0&&_1"},p:[56,3,2479]}]}]},e.exports=a.extend(r.exports)},{341:341}],438:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," "," "," "," "," "," ",{p:[11,1,550],t:7,e:"rdheader"}," ",{t:4,f:[{p:[13,2,583],t:7,e:"ui-display",a:{title:"CONSOLE LOCKED"},f:[{p:[14,3,621],t:7,e:"ui-button",a:{action:"Unlock"},f:["Unlock"]}]}],n:50,r:"data.locked",p:[12,1,562]},{t:4,f:[{p:[18,2,712],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[18,17,727]}]},f:[{p:[19,3,745],t:7,e:"tab",a:{name:"Technology"},f:[{p:[20,4,772],t:7,e:"techweb"}]}," ",{p:[22,3,794],t:7,e:"tab",a:{name:"View Node"},f:[{p:[23,4,820],t:7,e:"nodeview"}]}," ",{p:[25,3,843],t:7,e:"tab",a:{name:"View Design"},f:[{p:[26,4,871],t:7,e:"designview"}]}," ",{p:[28,3,896],t:7,e:"tab",a:{name:"Disk Operations - Design"},f:[{p:[29,4,937],t:7,e:"diskopsdesign"}]}," ",{p:[31,3,965],t:7,e:"tab",a:{name:"Disk Operations - Technology"},f:[{p:[32,4,1010],t:7,e:"diskopstech"}]}," ",{p:[34,3,1036],t:7,e:"tab",a:{name:"Deconstructive Analyzer"},f:[{p:[35,4,1076],t:7,e:"destruct"}]}," ",{p:[37,3,1099],t:7,e:"tab",a:{name:"Protolathe"},f:[{p:[38,4,1126],t:7,e:"protolathe"}]}," ",{p:[40,3,1151],t:7,e:"tab",a:{name:"Circuit Imprinter"},f:[{p:[41,4,1185],t:7,e:"circuit"}]}," ",{p:[43,3,1207],t:7,e:"tab",a:{name:"Settings"},f:[{p:[44,4,1232],t:7,e:"settings"}]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[17,1,690]}]},r.exports.components=r.exports.components||{};var i={settings:t(447),circuit:t(439),protolathe:t(445),destruct:t(441),diskopsdesign:t(442),diskopstech:t(443),designview:t(440),nodeview:t(444),techweb:t(448),rdheader:t(446)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,439:439,440:440,441:441,442:442,443:443,444:444,445:445,446:446,447:447,448:448}],439:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[3,3,56],t:7,e:"ui-display",a:{title:"Circuit Imprinter Busy!"}}],n:50,r:"data.circuitbusy",p:[2,2,29]},{t:4,n:51,f:[{p:[5,3,126],t:7,e:"ui-display",f:[{p:[6,4,142],t:7,e:"ui-section",f:["Search Available Designs: ",{p:[7,4,183],t:7,e:"input",a:{value:[{t:2,r:"textsearch",p:[7,17,196]}],placeholder:"Type Here","class":"text"}}," ",{p:[8,5,254],t:7,e:"ui-button",a:{action:"textSearch",params:['{"latheType" : "circuit", "inputText" : ',{t:2,r:"textsearch",p:[8,84,333]},"}"]},f:["Search"]}]}," ",{p:[10,4,389],t:7,e:"ui-section",f:["Materials: ",{t:2,r:"data.circuitmats",p:[10,27,412]}," / ",{t:2,r:"data.circuitmaxmats",p:[10,50,435]}]}," ",{p:[11,4,475],t:7,e:"ui-section",f:["Reagents: ",{t:2,r:"data.circuitchems",p:[11,26,497]}," / ",{t:2,r:"data.circuitmaxchems",p:[11,50,521]}]}," ",{p:[12,3,561],t:7,e:"ui-display",f:[{p:[14,3,577],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.lathe_tabs",p:[14,18,592]}]},f:[{p:[15,4,617],t:7,e:"tab",a:{name:"Category List"},f:[{t:4,f:[{p:[17,6,680],t:7,e:"ui-button",a:{action:"switchcat",state:[{t:2,x:{r:["data.circuitcat"],s:'_0=="{{name}}"?"selected":null'},p:[17,43,717]}],params:['{"type" : "circuit", "cat" : "',{t:2,r:"name",p:[17,135,809]},'"}']},f:[{t:2,r:"name",p:[17,147,821]}]}],n:52,r:"data.circuitcats",p:[16,5,648]}]}," ",{p:[20,4,869],t:7,e:"tab",a:{name:"Selected Category"},f:[{t:4,f:[{p:[22,6,935],t:7,e:"ui-section",f:[{t:2,r:"name",p:[22,18,947]},{t:2,r:"matstring",p:[22,26,955]}," ",{p:[23,7,975],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[23,40,1008]}],params:['{"latheType" : "circuit", "id" : "',{t:2,r:"id",p:[23,119,1087]},'"}']},f:["Print"]}]}],n:52,r:"data.circuitdes",p:[21,5,904]}]}," ",{p:[27,4,1161],t:7,e:"tab",a:{name:"Search Results"},f:[{t:4,f:[{p:[29,6,1226],t:7,e:"ui-section",f:[{t:2,r:"name",p:[29,18,1238]},{t:2,r:"matstring",p:[29,26,1246]}," ",{p:[30,7,1266],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[30,40,1299]}],params:['{"latheType" : "circuit", "id" : "',{t:2,r:"id",p:[30,119,1378]},'"}']},f:["Print"]}]}],n:52,r:"data.circuitmatch",p:[28,5,1193]}]}," ",{p:[34,4,1452],t:7,e:"tab",a:{name:"Materials"},f:[{t:4,f:[{p:[36,6,1515],t:7,e:"ui-section",f:[{t:2,r:"name",p:[36,18,1527]}," : ",{t:2,r:"amount",p:[36,29,1538]}," cm3 - ",{t:4,f:[{p:[38,7,1586],t:7,e:"input",a:{value:[{t:2,r:"number",p:[38,20,1599]}],placeholder:["1-",{t:2,r:"sheets",p:[38,46,1625]}],"class":"number"}}," ",{p:[39,7,1660],t:7,e:"ui-button",a:{action:"releasemats",params:['{"latheType" : "circuit", "mat_id" : ',{t:2,r:"mat_id",p:[39,84,1737]},', "sheets" : ',{t:2,r:"number",p:[39,107,1760]},"}"]},f:["Release"]}],n:50,x:{r:["sheets"],s:"_0>0"},p:[37,6,1561]}]}],n:52,r:"data.circuitmat_list",p:[35,5,1479]}]}," ",{p:[44,4,1852],t:7,e:"tab",a:{name:"Chemicals"},f:[{t:4,f:[{p:[46,6,1916],t:7,e:"ui-section",f:[{t:2,r:"name",p:[46,18,1928]}," : ",{t:2,r:"amount",p:[46,29,1939]}," - ",{p:[47,7,1959],t:7,e:"ui-button",a:{action:"purgechem",params:['{"latheType" : "circuit", "name" : ',{t:2,r:"name",p:[47,80,2032]},', "id" : ',{t:2,r:"reagentid",p:[47,97,2049]},"}"]},f:["Purge"]}]}],n:52,r:"data.circuitchem_list",p:[45,5,1879]}]}]}]}]}],r:"data.circuitbusy"}],n:50,r:"data.circuit_linked",p:[1,1,0]},{t:4,n:51,f:[{p:[55,2,2162],t:7,e:"ui-display",a:{title:"No Linked Circuit Imprinter"}}],r:"data.circuit_linked"}]},e.exports=a.extend(r.exports)},{341:341}],440:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,30],t:7,e:"ui-display",a:{title:[{t:2,r:"data.sdesign_name",p:[2,21,49]}]},f:[{p:[3,3,75],t:7,e:"ui-section",a:{title:"Description"},f:[{t:2,r:"data.sdesign_desc",p:[3,35,107]}]}]}," ",{p:[5,2,158],t:7,e:"ui-display",a:{title:"Lathe Types"},f:[{t:4,f:[{p:[7,4,233],t:7,e:"ui-section",a:{title:"Circuit Imprinter"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&1"},p:[6,3,193]}," ",{t:4,f:[{p:[10,4,337],t:7,e:"ui-section",a:{title:"Protolathe"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&2"},p:[9,3,297]}," ",{t:4,f:[{p:[13,4,434],t:7,e:"ui-section",a:{title:"Autolathe"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&4"},p:[12,3,394]}," ",{t:4,f:[{p:[16,4,530],t:7,e:"ui-section",a:{title:"Crafting Fabricator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&8"},p:[15,3,490]}," ",{t:4,f:[{p:[19,4,637],t:7,e:"ui-section",a:{title:"Exosuit Fabricator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&16"},p:[18,3,596]}," ",{t:4,f:[{p:[22,4,743],t:7,e:"ui-section",a:{title:"Biogenerator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&32"},p:[21,3,702]}," ",{t:4,f:[{p:[25,4,843],t:7,e:"ui-section",a:{title:"Limb Grower"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&64"},p:[24,3,802]}," ",{t:4,f:[{p:[28,4,943],t:7,e:"ui-section",a:{title:"Ore Smelter"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&128"},p:[27,3,901]}]}," ",{p:[31,2,1015],t:7,e:"ui-display",a:{title:"Materials"},f:[{t:4,f:[{p:[33,4,1084],t:7,e:"ui-section",a:{title:[{t:2,r:"matname",p:[33,23,1103]}]},f:[{t:2,r:"matamt",p:[33,36,1116]}," cm^3"]}],n:52,r:"data.sdesign_materials",p:[32,3,1048]}]}],n:50,r:"data.design_selected",p:[1,1,0]},{t:4,f:[{p:[38,2,1211],t:7,e:"ui-display",a:{title:"No Design Selected."}}],n:50,x:{r:["data.design_selected"],s:"!_0"},p:[37,1,1180]}]},e.exports=a.extend(r.exports)},{341:341}],441:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[4,3,57],t:7,e:"ui-display",a:{title:"Destructive Analyzer Busy!"}}],n:50,r:"data.destroybusy",p:[3,2,30]},{t:4,n:51,f:[{t:4,f:[{p:[7,4,162],t:7,e:"ui-display",a:{title:"Destructive Analyzer Unloaded"}}],n:50,x:{r:["data.destroy_loaded"],s:"!_0"},p:[6,3,130]},{t:4,n:51,f:[{p:[9,4,240],t:7,e:"ui-display",a:{title:"Loaded Item"},f:[{p:[10,4,276],t:7,e:"ui-section",a:{title:"Name"},f:[{t:2,r:"data.destroy_name",p:[10,29,301]}]}]}," ",{p:[12,4,356],t:7,e:"ui-display",a:{title:"Boost Nodes"},f:[{t:4,f:[{p:[14,6,425],t:7,e:"ui-section",a:{title:[{t:2,r:"name",p:[14,25,444]}," | ",{t:2,r:"value",p:[14,36,455]}]},f:[{p:[15,7,473],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["allow"],s:'_0?null:"disabled"'},p:[15,25,491]}],action:"deconstruct",params:['{"id":',{t:2,r:"id",p:[15,90,556]},"}"]},f:["Deconstruct and Boost"]}]}],n:52,r:"data.boost_paths",p:[13,5,393]}]}," ",{p:[19,4,652],t:7,e:"ui-button",a:{action:"eject_da"},f:["Eject Item"]}],x:{r:["data.destroy_loaded"],s:"!_0"}}],r:"data.destroybusy"}],n:50,r:"data.destroy_linked",p:[2,1,1]},{t:4,n:51,f:[{p:[23,2,733],t:7,e:"ui-display",a:{title:"No Linked Destructive Analyzer"}}],r:"data.destroy_linked"}]},e.exports=a.extend(r.exports)},{341:341}],442:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[3,2,22],t:7,e:"ui-display",a:{title:"No Design Disk Loaded"}}],n:50,x:{r:["data.ddisk"],s:"!_0"},p:[2,1,1]},{t:4,n:51,f:[{t:4,f:[{p:[6,3,116],t:7,e:"ui-display",a:{title:"Design Disk Updating"}}],n:50,r:"data.ddisk_update",p:[5,2,88]},{t:4,n:51,f:[{t:4,f:[{p:[9,4,213],t:7,e:"ui-display",a:{title:"Design Disk"},f:[{p:[10,5,250],t:7,e:"ui-section",a:{title:"Disk Space"},f:["Disk Capacity: ",{t:2,r:"data.ddisk_size",p:[10,51,296]}," blueprints."]}," ",{p:[11,5,345],t:7,e:"ui-section",a:{title:"Disk IO"},f:[{p:[11,33,373],t:7,e:"ui-button",a:{action:"ddisk_upall"},f:["Upload all designs"]}]}," ",{p:[12,5,453],t:7,e:"ui-section",a:{title:"Clear Disk"},f:[{p:[12,36,484],t:7,e:"ui-button",a:{action:"clear_designdisk",style:"danger"},f:["WIPE ALL DATA"]}]}," ",{p:[13,5,579],t:7,e:"ui-section",a:{title:"Eject Disk"},f:[{p:[13,36,610],t:7,e:"ui-button",a:{action:"eject_designdisk"},f:["Eject Disk"]}]}]}," ",{p:[15,4,703],t:7,e:"ui-display",a:{title:"Disk Contents"},f:[{t:4,f:[{p:[17,6,776],t:7,e:"ui-section",a:{title:"Number"},f:["#",{t:2,r:"pos",p:[17,34,804]},": ",{t:4,f:[{p:[19,8,848],t:7,e:"ui-button",a:{action:"upload_empty_ddisk_slot",params:['{"slot": "',{t:2,r:"pos",p:[19,70,910]},'"}']},f:["Upload to Empty Slot"]}],n:50,x:{r:["id"],s:'_0=="null"'},p:[18,7,820]},{t:4,n:51,f:[{p:[21,8,976],t:7,e:"ui-button",a:{action:"select_design",params:['{"id": "',{t:2,r:"id",p:[21,58,1026]},'"}'],state:[{t:2,x:{ +r:["data.sdesign_id","id"],s:'_0==_1?"selected":null'},p:[21,75,1043]}]},f:[{t:2,r:"name",p:[21,122,1090]}]}," ",{p:[22,8,1118],t:7,e:"ui-button",a:{action:"ddisk_erasepos",style:"danger",params:['{"id": "',{t:2,r:"id",p:[22,74,1184]},'"}'],state:[{t:2,x:{r:["id"],s:'_0=="null"?"disabled":null'},p:[22,91,1201]}]},f:["Delete Slot"]}],x:{r:["id"],s:'_0=="null"'}}]}],n:52,r:"data.ddisk_designs",p:[16,5,742]}]}],n:50,x:{r:["data.ddisk_upload"],s:"!_0"},p:[8,3,183]},{t:4,n:51,f:[{p:[28,4,1340],t:7,e:"ui-display",a:{title:"Upload Design to Disk"},f:[{p:[28,46,1382],t:7,e:"ui-section",f:["Available Designs:"]}]}," ",{t:4,f:[{p:[30,5,1484],t:7,e:"ui-section",f:[{p:[30,17,1496],t:7,e:"ui-button",a:{action:"ddisk_uploaddesign",params:['{"id": "',{t:2,r:"id",p:[30,72,1551]},'"}']},f:[{t:2,r:"name",p:[30,82,1561]}]}]}],n:52,r:"data.ddisk_possible_designs",p:[29,4,1442]}],x:{r:["data.ddisk_upload"],s:"!_0"}}],r:"data.ddisk_update"}],x:{r:["data.ddisk"],s:"!_0"}}]},e.exports=a.extend(r.exports)},{341:341}],443:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[3,2,22],t:7,e:"ui-display",a:{title:"No Technology Disk Loaded"}}],n:50,x:{r:["data.tdisk"],s:"!_0"},p:[2,1,1]},{t:4,n:51,f:[{t:4,f:[{p:[6,3,120],t:7,e:"ui-display",a:{title:"Technology Disk Updating"}}],n:50,r:"data.tdisk_update",p:[5,2,92]},{t:4,n:51,f:[{p:[8,3,191],t:7,e:"ui-display",a:{title:"Technology Disk"},f:[{p:[9,4,231],t:7,e:"ui-section",a:{title:"Disk IO"},f:[{p:[9,32,259],t:7,e:"ui-button",a:{action:"tdisk_down"},f:["Download Research to Disk"]},{p:[9,100,327],t:7,e:"ui-button",a:{action:"tdisk_up"},f:["Upload Research from Disk"]}," ",{p:[10,4,397],t:7,e:"ui-section",a:{title:"Clear Disk"},f:[{p:[10,35,428],t:7,e:"ui-button",a:{action:"clear_techdisk",style:"danger"},f:["WIPE ALL DATA"]}]}," ",{p:[11,4,520],t:7,e:"ui-section",a:{title:"Eject Disk"},f:[{p:[11,35,551],t:7,e:"ui-button",a:{action:"eject_techdisk"},f:["Eject Disk"]}]}]}]}," ",{p:[13,3,640],t:7,e:"ui-display",a:{title:"Disk Contents"},f:[{t:4,f:[{p:[15,5,709],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[15,53,757]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[15,70,774]}]},f:[{t:2,r:"display_name",p:[15,115,819]}]}],n:52,r:"data.tdisk_nodes",p:[14,4,678]}]}],r:"data.tdisk_update"}],x:{r:["data.tdisk"],s:"!_0"}}]},e.exports=a.extend(r.exports)},{341:341}],444:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,28],t:7,e:"ui-display",a:{title:[{t:2,r:"data.snode_name",p:[2,21,47]}]},f:[{p:[3,3,71],t:7,e:"ui-section",a:{title:"Description"},f:["Description: ",{t:2,r:"data.snode_desc",p:[3,48,116]}]}," ",{p:[4,3,151],t:7,e:"ui-section",a:{title:"Point Cost"},f:["Point Cost: ",{t:2,r:"data.snode_cost",p:[4,46,194]}]}," ",{p:[5,3,229],t:7,e:"ui-section",a:{title:"Export Price"},f:["Export Price: ",{t:2,r:"data.snode_export",p:[5,50,276]}]}," ",{p:[6,3,313],t:7,e:"ui-button",a:{action:"research_node",params:['{"id"="',{t:2,r:"id",p:[6,52,362]},'"}'],state:[{t:2,x:{r:["data.snode_researched"],s:'_0?"disabled":null'},p:[6,69,379]}]},f:[{t:2,x:{r:["data.snode_researched"],s:'_0?"Researched":"Research Node"'},p:[6,115,425]}]}]}," ",{p:[8,2,511],t:7,e:"ui-display",a:{title:"Prerequisites"},f:[{t:4,f:[{p:[10,4,579],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[10,52,627]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[10,69,644]}]},f:[{t:2,r:"display_name",p:[10,114,689]}]}],n:52,r:"data.node_prereqs",p:[9,3,548]}]}," ",{p:[13,2,747],t:7,e:"ui-display",a:{title:"Unlocks"},f:[{t:4,f:[{p:[15,4,809],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[15,52,857]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[15,69,874]}]},f:[{t:2,r:"display_name",p:[15,114,919]}]}],n:52,r:"data.node_unlocks",p:[14,3,778]}]}," ",{p:[18,2,977],t:7,e:"ui-display",a:{title:"Designs"},f:[{t:4,f:[{p:[20,4,1039],t:7,e:"ui-button",a:{action:"select_design",params:['{"id": "',{t:2,r:"id",p:[20,54,1089]},'"}'],state:[{t:2,x:{r:["data.sdesign_id","id"],s:'_0==_1?"selected":null'},p:[20,71,1106]}]},f:[{t:2,r:"name",p:[20,118,1153]}]}],n:52,r:"data.node_designs",p:[19,3,1008]}]}],n:50,r:"data.node_selected",p:[1,1,0]},{t:4,f:[{p:[25,2,1239],t:7,e:"ui-display",a:{title:"No Node Selected."}}],n:50,x:{r:["data.node_selected"],s:"!_0"},p:[24,1,1210]}]},e.exports=a.extend(r.exports)},{341:341}],445:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[3,3,57],t:7,e:"ui-display",a:{title:"Protolathe Busy!"}}],n:50,r:"data.protobusy",p:[2,2,32]},{t:4,n:51,f:[{p:[5,3,120],t:7,e:"ui-display",f:[{p:[6,4,136],t:7,e:"ui-section",f:["Search Available Designs: ",{p:[7,4,177],t:7,e:"input",a:{value:[{t:2,r:"textsearch",p:[7,17,190]}],placeholder:"Type Here","class":"text"}}," ",{p:[8,5,248],t:7,e:"ui-button",a:{action:"textSearch",params:['{"latheType" : "proto", "inputText" : ',{t:2,r:"textsearch",p:[8,82,325]},"}"]},f:["Search"]}]}," ",{p:[10,4,381],t:7,e:"ui-section",f:["Materials: ",{t:2,r:"data.protomats",p:[10,27,404]}," / ",{t:2,r:"data.protomaxmats",p:[10,48,425]}]}," ",{p:[11,4,463],t:7,e:"ui-section",f:["Reagents: ",{t:2,r:"data.protochems",p:[11,26,485]}," / ",{t:2,r:"data.protomaxchems",p:[11,48,507]}]}," ",{p:[12,3,545],t:7,e:"ui-display",f:[{p:[14,3,561],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.lathe_tabs",p:[14,18,576]}]},f:[{p:[15,4,601],t:7,e:"tab",a:{name:"Category List"},f:[{t:4,f:[{p:[17,6,662],t:7,e:"ui-button",a:{action:"switchcat",state:[{t:2,x:{r:["data.protocat","name"],s:'_0==_1?"selected":null'},p:[17,43,699]}],params:['{"type" : "proto", "cat" : "',{t:2,r:"name",p:[17,125,781]},'"}']},f:[{t:2,r:"name",p:[17,137,793]}]}],n:52,r:"data.protocats",p:[16,5,632]}]}," ",{p:[20,4,841],t:7,e:"tab",a:{name:"Selected Category"},f:[{t:4,f:[{p:[22,6,905],t:7,e:"ui-section",f:[{t:2,r:"name",p:[22,18,917]},{t:2,r:"matstring",p:[22,26,925]}," ",{t:4,f:[{p:[24,8,973],t:7,e:"input",a:{value:[{t:2,r:"number",p:[24,21,986]}],placeholder:["1-",{t:2,x:{r:["canprint"],s:"_0>10?10:_0"},p:[24,47,1012]}],"class":"number"}}],n:50,x:{r:["canprint"],s:"_0>1"},p:[23,7,945]}," ",{p:[26,7,1083],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[26,40,1116]}],params:['{"latheType" : "proto", "id" : "',{t:2,r:"id",p:[26,117,1193]},'", "amount" : "',{t:2,r:"number",p:[26,138,1214]},'"}']},f:["Print"]}]}],n:52,r:"data.protodes",p:[21,5,876]}]}," ",{p:[30,4,1292],t:7,e:"tab",a:{name:"Search Results"},f:[{t:4,f:[{p:[32,6,1355],t:7,e:"ui-section",f:[{t:2,r:"name",p:[32,18,1367]},{t:2,r:"matstring",p:[32,26,1375]}," ",{t:4,f:[{p:[34,8,1423],t:7,e:"input",a:{value:[{t:2,r:"number",p:[34,21,1436]}],placeholder:["1-",{t:2,x:{r:["canprint"],s:"_0>10?10:_0"},p:[34,47,1462]}],"class":"number"}}],n:50,x:{r:["canprint"],s:"_0>1"},p:[33,7,1395]}," ",{p:[36,7,1533],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[36,40,1566]}],params:['{"latheType" : "proto", "id" : "',{t:2,r:"id",p:[36,117,1643]},'", "amount" : "',{t:2,r:"number",p:[36,138,1664]},'"}']},f:["Print"]}]}],n:52,r:"data.protomatch",p:[31,5,1324]}]}," ",{p:[40,4,1742],t:7,e:"tab",a:{name:"Materials"},f:[{t:4,f:[{p:[42,6,1803],t:7,e:"ui-section",f:[{t:2,r:"name",p:[42,18,1815]}," : ",{t:2,r:"amount",p:[42,29,1826]}," cm3 - ",{t:4,f:[{p:[44,7,1874],t:7,e:"input",a:{value:[{t:2,r:"number",p:[44,20,1887]}],placeholder:["1-",{t:2,r:"sheets",p:[44,46,1913]}],"class":"number"}}," ",{p:[45,7,1948],t:7,e:"ui-button",a:{action:"releasemats",params:['{"latheType" : "proto", "mat_id" : ',{t:2,r:"mat_id",p:[45,82,2023]},', "sheets" : ',{t:2,r:"number",p:[45,105,2046]},"}"]},f:["Release"]}],n:50,x:{r:["sheets"],s:"_0>0"},p:[43,6,1849]}]}],n:52,r:"data.protomat_list",p:[41,5,1769]}]}," ",{p:[50,4,2138],t:7,e:"tab",a:{name:"Chemicals"},f:[{t:4,f:[{p:[52,6,2200],t:7,e:"ui-section",f:[{t:2,r:"name",p:[52,18,2212]}," : ",{t:2,r:"amount",p:[52,29,2223]}," - ",{p:[53,7,2243],t:7,e:"ui-button",a:{action:"purgechem",params:['{"latheType" : "proto", "name" : ',{t:2,r:"name",p:[53,78,2314]},', "id" : ',{t:2,r:"reagentid",p:[53,95,2331]},"}"]},f:["Purge"]}]}],n:52,r:"data.protochem_list",p:[51,5,2165]}]}]}]}]}],r:"data.protobusy"}],n:50,r:"data.protolathe_linked",p:[1,1,0]},{t:4,n:51,f:[{p:[61,2,2444],t:7,e:"ui-display",a:{title:"No Linked Protolathe"}}],r:"data.protolathe_linked"}]},e.exports=a.extend(r.exports)},{341:341}],446:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,1,13],t:7,e:"span",a:{"class":"memoedit"},f:["Nanotrasen R&D Console"]},{p:[2,53,65],t:7,e:"br"}," Available Points: ",{p:[3,19,89],t:7,e:"ui-section",a:{title:"Research Points"},f:[{t:2,r:"data.research_points_stored",p:[3,55,125]}]}," ",{p:[4,1,170],t:7,e:"ui-section",a:{title:["Page Selection - ",{t:2,r:"page",p:[4,37,206]}]},f:[{p:[4,47,216],t:7,e:"input",a:{value:[{t:2,r:"pageselect",p:[4,60,229]}],placeholder:"1","class":"number"}}," Select Page: ",{p:[5,14,290],t:7,e:"ui-button",a:{action:"page",params:['{"num" : "',{t:2,r:"pageselect",p:[5,57,333]},'"}']},f:["[Go]"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],447:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"span",a:{"class":"bad"},f:["Settings"]},{p:[1,34,33],t:7,e:"br"},{p:[1,39,38],t:7,e:"br"}," ",{p:[2,1,44],t:7,e:"ui-button",a:{action:"Resync"},f:["RESYNC MACHINERY"]},{p:[2,56,99],t:7,e:"br"}," ",{p:[3,1,105],t:7,e:"ui-button",a:{action:"Lock"},f:["LOCK"]}," ",{p:[4,1,147],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "destroy"}',state:[{t:2,x:{r:["data.destroy_linked"],s:'_0?null:"disabled"'},p:[4,71,217]}]},f:["Disconnect Destructive Analyzer"]}," ",{p:[5,1,305],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "lathe"}',state:[{t:2,x:{r:["data.protolathe_linked"],s:'_0?null:"disabled"'},p:[5,69,373]}]},f:["Disconnect Protolathe"]}," ",{p:[6,1,454],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "imprinter"}',state:[{t:2,x:{r:["data.circuit_linked"],s:'_0?null:"disabled"'},p:[6,73,526]}]},f:["Disconnect Circuit Imprinter"]}]},e.exports=a.extend(r.exports)},{341:341}],448:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Available for Research"},f:[{t:4,f:[{p:[3,3,76],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[3,51,124]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[3,68,141]}]},f:[{t:2,r:"display_name",p:[3,113,186]}]}],n:52,r:"data.techweb_avail",p:[2,2,45]}]}," ",{p:[6,1,240],t:7,e:"ui-display",a:{title:"Locked Nodes"},f:[{t:4,f:[{p:[8,3,307],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[8,51,355]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[8,68,372]}]},f:[{t:2,r:"display_name",p:[8,113,417]}]}],n:52,r:"data.techweb_locked",p:[7,2,275]}]}," ",{p:[11,1,472],t:7,e:"ui-display",a:{title:"Researched Nodes"},f:[{t:4,f:[{p:[13,3,547],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[13,51,595]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[13,68,612]}]},f:[{t:2,r:"display_name",p:[13,113,657]}]}],n:52,r:"data.techweb_researched",p:[12,2,511]}]}]},e.exports=a.extend(r.exports)},{341:341}],449:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Direction"},f:[{t:4,f:[{p:[3,3,62],t:7,e:"ui-section",f:[{t:4,f:[{p:[5,5,101],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[5,23,119]}],action:"setdir",params:['{"dir": ',{t:2,r:"dir",p:[6,22,190]},', "flipped": ',{t:2,r:"flipped",p:[6,42,210]},"}"]},f:[{p:[6,56,224],t:7,e:"span",a:{"class":["pipes32x32 ",{t:2,r:"dir",p:[6,80,248]},"-",{t:2,r:"icon_state",p:[6,88,256]}],title:[{t:2,r:"dir_name",p:[6,111,279]}]}}]}],n:52,r:"previews",p:[4,4,78]}]}],n:52,r:"data.preview_rows",p:[2,2,32]}]}," ",{t:4,f:[{p:[12,2,395],t:7,e:"ui-display",a:{title:"Color"},f:[{t:4,f:[{p:[14,4,455],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["@key","data.selected_color"],s:'_0==_1?"selected":null'},p:[14,22,473]}],action:"color",params:['{"paint_color": ',{t:2,r:"@key",p:[15,44,569]},"}"]},f:[{t:2,r:"@key",p:[15,55,580]}]}],n:52,r:"data.paint_colors",p:[13,3,424]}]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[11,1,367]},{p:[19,1,636],t:7,e:"ui-display",a:{title:"Utilities"},f:[{p:[20,2,668],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&1?"check-square-o":"square-o"'},p:[20,19,685]}],action:"mode",params:'{"mode": 1}'},f:["Build"]}," ",{p:[22,2,792],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&2?"check-square-o":"square-o"'},p:[22,19,809]}],action:"mode",params:'{"mode": 2}'},f:["Wrench"]}," ",{p:[24,2,917],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&4?"check-square-o":"square-o"'},p:[24,19,934]}],action:"mode",params:'{"mode": 4}'},f:["Destroy"]}," ",{t:4,f:[{p:[27,3,1072],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&8?"check-square-o":"square-o"'},p:[27,20,1089]}],action:"mode",params:'{"mode": 8}'},f:["Paint"]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[26,2,1043]}]}," ",{p:[31,1,1219],t:7,e:"ui-display",a:{title:"Category"},f:[{p:[32,2,1250],t:7,e:"ui-section",f:[{p:[33,3,1265],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==0?"check-square-o":"square-o"'},p:[33,20,1282]}],state:[{t:2,x:{r:["data.category"],s:'_0<=0?"selected":null'},p:[33,83,1345]}],action:"category",params:'{"category": 0}'},f:["Atmospherics"]}," ",{p:[35,3,1462],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==1?"check-square-o":"square-o"'},p:[35,20,1479]}],state:[{t:2,x:{r:["data.category"],s:'_0==1?"selected":null'},p:[35,83,1542]}],action:"category",params:'{"category": 1}'},f:["Disposals"]}," ",{p:[37,3,1656],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==2?"check-square-o":"square-o"'},p:[37,20,1673]}],state:[{t:2,x:{r:["data.category"],s:'_0==2?"selected":null'},p:[37,83,1736]}],action:"category",params:'{"category": 2}'},f:["Transit Tubes"]}]}," ",{t:4,f:[{p:[41,3,1897],t:7,e:"ui-section",a:{label:"Piping Layer"},f:[{p:[42,4,1934],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==1?"selected":null'},p:[42,22,1952]}],action:"piping_layer",params:'{"piping_layer": 1}'},f:["1"]}," ",{p:[44,4,2072],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==2?"selected":null'},p:[44,22,2090]}],action:"piping_layer",params:'{"piping_layer": 2}'},f:["2"]}," ",{p:[46,4,2210],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==3?"selected":null'},p:[46,22,2228]}],action:"piping_layer",params:'{"piping_layer": 3}'},f:["3"]}]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[40,2,1868]}]}," ",{t:4,f:[{p:[52,2,2411],t:7,e:"ui-display",a:{title:[{t:2,r:"cat_name",p:[52,21,2430]}]},f:[{t:4,f:[{p:[54,4,2468],t:7,e:"ui-section",f:[{p:[55,5,2485],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[55,23,2503]}],action:"pipe_type",params:['{"pipe_type": ',{t:2,r:"pipe_index",p:[56,28,2583]},', "category": ',{t:2,r:"cat_name",p:[56,56,2611]},"}"]},f:[{t:2,r:"pipe_name",p:[56,71,2626]}]}]}],n:52,r:"recipes",p:[53,3,2447]}]}],n:52,r:"data.categories",p:[51,1,2384]}]},e.exports=a.extend(r.exports)},{341:341}],450:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,22],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,38]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,77],t:7,e:"ui-display",a:{title:"Satellite Network Control",button:0},f:[{t:4,f:[{p:[8,4,161],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[9,9,201],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[9,31,223]}]}," ",{p:[10,9,244],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"mode",p:[10,30,265]}]}," ",{p:[11,9,288],t:7,e:"div",a:{"class":"content"},f:[{p:[12,11,320],t:7,e:"ui-button",a:{action:"toggle",params:['{"id": "',{t:2,r:"id",p:[12,54,363]},'"}']},f:[{t:2,x:{r:["active"],s:'_0?"Deactivate":"Activate"'},p:[12,64,373]}]}]}]}],n:52,r:"data.satellites",p:[7,2,132]}]}," ",{t:4,f:[{p:[18,1,511],t:7,e:"ui-display",a:{title:"Station Shield Coverage"},f:[{p:[19,3,558],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.meteor_shield_coverage_max",p:[19,24,579]}],value:[{t:2,r:"data.meteor_shield_coverage",p:[19,68,623]}]},f:[{t:2,x:{r:["data.meteor_shield_coverage","data.meteor_shield_coverage_max"],s:"100*_0/_1"},p:[19,101,656]}," %"]}," ",{p:[20,1,739],t:7,e:"ui-display",f:[]}]}],n:50,r:"data.meteor_shield",p:[17,1,484]}]},e.exports=a.extend(r.exports)},{341:341}],451:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Scanner Gate"},f:[{p:[2,2,35],t:7,e:"ui-section",a:{label:"Scan Mode"},f:[{p:[2,32,65],t:7,e:"ui-button",a:{icon:"pencil",action:"set_mode"}}," ",{t:2,r:"data.scan_mode",p:[2,88,121]}]}," ",{t:4,f:[{p:[4,3,192],t:7,e:"ui-section",a:{label:"Disease Severity"},f:[{p:[4,40,229],t:7,e:"ui-button",a:{icon:"pencil",action:"set_disease_threshold"}}," ",{t:2,r:"data.disease_threshold",p:[4,109,298]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Disease"'},p:[3,2,154]}," ",{t:4,f:[{p:[7,3,386],t:7,e:"ui-section",a:{label:"Cloud ID"},f:[{p:[7,32,415],t:7,e:"ui-button",a:{icon:"pencil",action:"set_nanite_cloud"}}," ",{t:2,r:"data.nanite_cloud",p:[7,96,479]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Nanites"'},p:[6,2,348]}," ",{t:4,f:[{p:[10,3,562],t:7,e:"ui-section",a:{label:"Target Species"},f:[{p:[10,38,597],t:7,e:"ui-button",a:{icon:"pencil",action:"set_target_species"}}," ",{t:2,r:"data.target_species",p:[10,104,663]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Species"'},p:[9,2,524]}," ",{p:[12,5,713],t:7,e:"ui-section",f:[{p:[12,17,725],t:7,e:"ui-button",a:{tooltip:"If inverted, the gate will detect all entities that do NOT meet the set requirements.","tooltip-side":"right",action:"toggle_reverse"},f:[{t:2,x:{r:["data.reverse"],s:'_0?"Inverted Scan":"Regular Scan"'},p:[12,169,877]}]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],452:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,25],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["enabled"],s:'_0?"check-square-o":"square-o"'},p:[2,20,42]}],style:[{t:2,x:{r:["enabled"],s:'_0?"selected":null'},p:[2,72,94]}],action:"toggle_filter",params:['{"id_tag": "',{t:2,r:"id_tag",p:[3,48,174]},'", "val": ',{t:2,r:"gas_id",p:[3,68,194]},"}"]},f:[{t:2,r:"gas_name",p:[3,81,207]}]}],n:52,r:"filter_types",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],453:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[" "," "," ",{p:[5,1,196],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[5,16,211]}]},f:[{p:[6,2,228],t:7,e:"tab",a:{name:"Status"},f:[{p:[7,3,250],t:7,e:"status"}]}," ",{p:[9,2,269],t:7,e:"tab",a:{name:"Templates"},f:[{p:[10,3,294],t:7,e:"templates"}]}," ",{p:[12,2,316],t:7,e:"tab",a:{name:"Modification"},f:[{t:4,f:[{p:[14,3,368],t:7,e:"modification"}],n:50,r:"data.selected",p:[13,3,344]}," ",{t:4,f:[{p:[17,3,421],t:7,e:"span",a:{"class":"bad"},f:["No shuttle selected."]}],n:50,x:{r:["data.selected"],s:"!_0"},p:[16,3,396]}]}]}]},r.exports.components=r.exports.components||{};var i={modification:t(454),templates:t(456),status:t(455)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{341:341,454:454,455:455,456:456}],454:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:["Selected: ",{t:2,r:"data.selected.name",p:[1,30,29]}]},f:[{t:4,f:[{p:[3,5,94],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.selected.description",p:[3,37,126]}]}],n:50,r:"data.selected.description",p:[2,3,56]}," ",{t:4,f:[{p:[6,5,219],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"data.selected.admin_notes",p:[6,37,251]}]}],n:50,r:"data.selected.admin_notes",p:[5,3,181]}]}," ",{t:4,f:[{p:[11,3,351],t:7,e:"ui-display",a:{title:["Existing Shuttle: ",{t:2,r:"data.existing_shuttle.name",p:[11,40,388]}]},f:["Status: ",{t:2,r:"data.existing_shuttle.status",p:[12,13,433]}," ",{t:4,f:["(",{t:2,r:"data.existing_shuttle.timeleft",p:[14,8,513]},")"],n:50,r:"data.existing_shuttle.timer",p:[13,5,470]}," ",{p:[16,5,565],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"data.existing_shuttle.id",p:[17,41,633]},'"}']},f:["Jump To"]}]}],n:50,r:"data.existing_shuttle",p:[10,1,319]},{t:4,f:[{p:[24,3,755],t:7,e:"ui-display",a:{title:"Existing Shuttle: None"}}],n:50,x:{r:["data.existing_shuttle"],s:"!_0"},p:[23,1,722]},{p:[27,1,821],t:7,e:"ui-button",a:{action:"preview",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[28,27,875]},'"}']},f:["Preview"]}," ",{p:[31,1,931],t:7,e:"ui-button",a:{action:"load",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[32,27,982]},'"}'],style:"danger"},f:["Load"]}," ",{p:[37,1,1053],t:7,e:"ui-display",a:{title:"Status"},f:[]}]},e.exports=a.extend(r.exports)},{341:341}],455:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"table",a:{width:"100%"},f:[{t:4,f:[{p:[3,3,47],t:7,e:"tr",f:[{p:[4,5,56],t:7,e:"td",f:[{p:[5,7,67],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[5,69,129]},'"}']},f:["JMP"]}]}," ",{p:[9,5,185],t:7,e:"td",f:[{p:[10,7,196],t:7,e:"ui-button",a:{action:"fly",params:['{"id": "',{t:2,r:"id",p:[10,47,236]},'"}'],state:[{t:2,x:{r:["can_fly"],s:'_0?null:"disabled"'},p:[10,64,253]}]},f:["Fly"]}]}," ",{p:[14,5,332],t:7,e:"td",f:[{t:2,r:"name",p:[15,7,343]}," (",{p:[15,17,353],t:7,e:"code",f:[{t:2,r:"id",p:[15,23,359]}]},")"]}," ",{p:[17,5,388],t:7,e:"td",f:[{t:2,r:"status",p:[18,7,399]}]}," ",{p:[20,5,424],t:7,e:"td",f:[{t:4,f:[{t:2,r:"mode",p:[22,9,456]}],n:50,r:"mode",p:[21,7,435]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[25,10,508]},") ",{p:[26,9,530],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[26,57,578]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[26,74,595]}]},f:["Fast Travel"]}],n:50,r:"timer",p:[24,7,485]}]}]}],n:52,r:"data.shuttles",p:[2,1,21]}]}]},e.exports=a.extend(r.exports)},{341:341}],456:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.templates_tabs",p:[1,16,15]}]},f:[{t:4,f:[{p:[3,5,72],t:7,e:"tab",a:{name:[{t:2,r:"port_id",p:[3,16,83]}]},f:[{t:4,f:[{p:[5,9,131],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[5,28,150]}]},f:[{t:4,f:[{p:[7,13,203],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[7,45,235]}]}],n:50,r:"description",p:[6,11,171]}," ",{t:4,f:[{p:[10,13,324],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"admin_notes",p:[10,45,356]}]}],n:50,r:"admin_notes",p:[9,11,292]}," ",{p:[13,11,414],t:7,e:"ui-button",a:{action:"select_template",params:['{"shuttle_id": "',{t:2,r:"shuttle_id",p:[14,37,486]},'"}'],state:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"selected":null'},p:[15,20,523]}]},f:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"Selected":"Select"'},p:[17,13,614]}]}]}],n:52,r:"templates",p:[4,7,103]}]}],n:52,r:"data.templates",p:[2,3,43]}]}]},e.exports=a.extend(r.exports)},{341:341}],457:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[2,3,33],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[3,3,66],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[3,9,72]}]}]}," ",{t:4,f:[{p:[6,5,186],t:7,e:"ui-section",a:{label:"State"},f:[{p:[7,7,220],t:7,e:"span",a:{"class":[{t:2,r:"data.occupant.statstate",p:[7,20,233]}]},f:[{t:2,r:"data.occupant.stat",p:[7,49,262]}]}]}," ",{p:[9,5,315],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[10,7,350],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[10,20,363]}],max:[{t:2,r:"data.occupant.maxHealth",p:[10,54,397]}],value:[{t:2,r:"data.occupant.health",p:[10,90,433]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[11,16,475]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[11,68,527]}]}]}," ",{t:4,f:[{p:[14,7,764],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[14,26,783]}]},f:[{p:[15,9,804],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[15,30,825]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[15,66,861]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[15,103,898]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[13,5,598]}," ",{p:[18,5,985],t:7,e:"ui-section",a:{label:"Cells"},f:[{p:[19,9,1021],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"bad":"good"'},p:[19,22,1034]}]},f:[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"Damaged":"Healthy"'},p:[19,68,1080]}]}]}," ",{p:[21,5,1163],t:7,e:"ui-section",a:{label:"Brain"},f:[{p:[22,9,1199],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"bad":"good"'},p:[22,22,1212]}]},f:[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"Abnormal":"Healthy"'},p:[22,68,1258]}]}]}," ",{p:[24,5,1342],t:7,e:"ui-section",a:{label:"Bloodstream"},f:[{t:4,f:[{p:[26,11,1429],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,1)"},p:[26,54,1472]}," units of ",{t:2,r:"name",p:[26,89,1507]}]},{p:[26,104,1522],t:7,e:"br"}],n:52,r:"adata.occupant.reagents",p:[25,9,1384]},{t:4,n:51,f:[{p:[28,11,1557],t:7,e:"span",a:{"class":"good"},f:["Pure"]}],r:"adata.occupant.reagents"}]}],n:50,r:"data.occupied",p:[5,3,159]}]}," ",{p:[33,1,1653],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[34,2,1685],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[35,5,1716],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[35,22,1733]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[35,71,1782]}]}]}," ",{p:[37,3,1847],t:7,e:"ui-section",a:{label:"Inject"},f:[{t:4,f:[{p:[39,7,1908],t:7,e:"ui-button",a:{icon:"flask",state:[{t:2,x:{r:["data.occupied","allowed"],s:'_0&&_1?null:"disabled"'},p:[39,38,1939]}],action:"inject",params:['{"chem": "',{t:2,r:"id",p:[39,122,2023]},'"}']},f:[{t:2,r:"name",p:[39,132,2033]}]},{p:[39,152,2053],t:7,e:"br"}],n:52,r:"data.chems",p:[38,5,1880]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],458:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,24],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,43]}],labelcolor:[{t:2,r:"htmlcolor",p:[2,44,65]}],candystripe:0,right:0},f:[{p:[3,5,103],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,32,130],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0=="Dead"?"bad bold":_0=="Unconscious"?"average bold":"good"'},p:[3,45,143]}]},f:[{t:2,r:"status",p:[3,132,230]}]}]}," ",{p:[4,5,265],t:7,e:"ui-section",a:{label:"Jelly"},f:[{t:2,r:"exoticblood",p:[4,31,291]}]}," ",{p:[5,5,324],t:7,e:"ui-section",a:{label:"Location"},f:[{t:2,r:"area",p:[5,34,353]}]}," ",{p:[7,5,380],t:7,e:"ui-button",a:{state:[{t:2,r:"swap_button_state",p:[8,14,404]}],action:"swap",params:['{"ref": "',{t:2,r:"ref",p:[9,38,464]},'"}']},f:[{t:4,f:["You Are Here"],n:50,x:{r:["occupied"],s:'_0=="owner"'},p:[10,7,482]},{t:4,n:51,f:[{t:4,f:["Occupied"],n:50,x:{r:["occupied"],s:'_0=="stranger"'},p:[13,9,554]},{t:4,n:51,f:["Swap"],x:{r:["occupied"],s:'_0=="stranger"'}}],x:{r:["occupied"],s:'_0=="owner"'}}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],459:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,23,79],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.drying"],s:'_0?"stop":"tint"'},p:[4,40,96]}],action:"Dry"},f:[{t:2,x:{r:["data.drying"],s:'_0?"Stop drying":"Dry"'},p:[4,88,144]}]}],n:50,r:"data.isdryer",p:[4,3,59]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[7,3,252],t:7,e:"ui-notice",f:[{p:[8,5,268],t:7,e:"span",f:["Unfortunately, this ",{t:2,r:"data.name",p:[8,31,294]}," is empty."]}]}],n:50,x:{r:["data.contents.length"],s:"_0==0"},p:[6,1,216]},{t:4,n:51,f:[{p:[11,1,349],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[12,2,380],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[13,4,413],t:7,e:"section",a:{"class":"cell bold"},f:["Item"]}," ",{p:[16,4,467],t:7,e:"section",a:{"class":"cell bold"},f:["Quantity"]}," ",{p:[19,4,525],t:7,e:"section",a:{"class":"cell bold",align:"center"},f:[{t:4,f:[{t:2,r:"data.verb",p:[20,22,589]}],n:50,r:"data.verb",p:[20,5,572]},{t:4,n:51,f:["Dispense"],r:"data.verb"}]}]}," ",{t:4,f:[{p:[24,3,680],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[25,4,713],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[26,5,740]}]}," ",{p:[28,4,766],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[29,5,807]}]}," ",{p:[31,4,835],t:7,e:"section",a:{"class":"table",alight:"right"},f:[{p:[32,5,878],t:7,e:"section",a:{"class":"cell"}}," ",{p:[33,5,915],t:7,e:"section",a:{"class":"cell"},f:[{p:[34,6,943],t:7,e:"ui-button",a:{grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[34,45,982]}],params:['{ "name" : ',{t:2,r:"name",p:[34,102,1039]},', "amount" : 1 }']},f:["One"]}]}," ",{p:[38,5,1114],t:7,e:"section",a:{"class":"cell"},f:[{p:[39,6,1142],t:7,e:"ui-button",a:{grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>1)?null:"disabled"'},p:[39,45,1181]}],params:['{ "name" : ',{t:2,r:"name",p:[39,101,1237]}," }"]},f:["Many"]}]}]}]}],n:52,r:"data.contents",p:[23,2,654]}]}],x:{r:["data.contents.length"],s:"_0==0"}}]}]},e.exports=a.extend(r.exports)},{341:341}],460:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{capacityPercentState:function(){var t=this.get("data.capacityPercent");return t>50?"good":t>15?"average":"bad"},inputState:function(){return this.get("data.capacityPercent")>=100?"good":this.get("data.inputting")?"average":"bad"},outputState:function(){return this.get("data.outputting")?"good":this.get("data.charge")>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[24,1,640],t:7,e:"ui-display",a:{title:"Storage"},f:[{p:[25,3,671],t:7,e:"ui-section",a:{label:"Stored Energy"},f:[{p:[26,5,710],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.capacityPercent",p:[26,38,743]}],state:[{t:2,r:"capacityPercentState",p:[26,71,776]}]},f:[{t:2,x:{r:["adata.capacityPercent"],s:"Math.fixed(_0)"},p:[26,97,802]},"%"]}]}]}," ",{p:[29,1,880],t:7,e:"ui-display",a:{title:"Input"},f:[{p:[30,3,909],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{p:[31,5,946],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"refresh":"close"'},p:[31,22,963]}],style:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"selected":null'},p:[31,74,1015]}],action:"tryinput"},f:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"Auto":"Off"'},p:[32,25,1082]}]},"   [",{p:[34,6,1149],t:7,e:"span",a:{"class":[{t:2,r:"inputState",p:[34,19,1162]}]},f:[{t:2,x:{r:["data.capacityPercent","data.inputting"],s:'_0>=100?"Fully Charged":_1?"Charging":"Not Charging"'},p:[34,35,1178]}]},"]"]}," ",{p:[36,3,1300],t:7,e:"ui-section",a:{label:"Target Input"},f:[{p:[37,5,1338],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.inputLevelMax",p:[37,26,1359]}],value:[{t:2,r:"data.inputLevel",p:[37,57,1390]}]},f:[{t:2,r:"adata.inputLevel_text",p:[37,78,1411]}]}]}," ",{p:[39,3,1463],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1501],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1540]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1634],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1668]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1763],t:7,e:"ui-button",a:{icon:"pencil", +action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1852],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[43,38,1885]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,1996],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[44,43,2034]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2159],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2192],t:7,e:"span",f:[{t:2,r:"adata.inputAvailable",p:[47,9,2198]}]}]}]}," ",{p:[50,1,2259],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2289],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2326],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2343]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2398]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2467]}]},"   [",{p:[55,6,2533],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2546]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2563]}]},"]"]}," ",{p:[57,3,2668],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2707],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2728]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2760]}]},f:[{t:2,r:"adata.outputLevel_text",p:[58,80,2782]}]}]}," ",{p:[60,3,2835],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2874],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,2913]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3009],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3043]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3140],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3230],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[64,38,3263]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3377],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[65,43,3415]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3543],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3577],t:7,e:"span",f:[{t:2,r:"adata.outputUsed",p:[68,9,3583]}]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],461:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:["\ufeff",{t:4,f:[" ",{p:[2,2,32],t:7,e:"ui-display",a:{title:"Dispersal Tank"},f:[{p:[3,3,71],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[4,4,101],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.active"],s:'_0?"power-off":"close"'},p:[4,21,118]}],style:[{t:2,x:{r:["data.active"],s:'_0?"selected":null'},p:[5,12,170]}],state:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?null:"disabled"'},p:[6,12,218]}],action:"power"},f:[{t:2,x:{r:["data.active"],s:'_0?"On":"Off"'},p:[7,20,280]}]}]}," ",{p:[10,3,345],t:7,e:"ui-section",a:{label:"Smoke Radius Setting"},f:[{p:[11,5,391],t:7,e:"div",a:{"class":"content",style:"float:left"},f:[{p:[12,6,437],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=1?null:"disabled"'},p:[12,36,467]}],style:[{t:2,x:{r:["data.setting"],s:'_0==1?"selected":null'},p:[12,89,520]}],action:"setting",params:'{"amount": 1}'},f:["3"]}," ",{p:[13,6,622],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=2?null:"disabled"'},p:[13,36,652]}],style:[{t:2,x:{r:["data.setting"],s:'_0==2?"selected":null'},p:[13,89,705]}],action:"setting",params:'{"amount": 2}'},f:["6"]}," ",{p:[14,6,807],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=3?null:"disabled"'},p:[14,36,837]}],style:[{t:2,x:{r:["data.setting"],s:'_0==3?"selected":null'},p:[14,89,890]}],action:"setting",params:'{"amount": 3}'},f:["9"]}," ",{p:[15,6,992],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=4?null:"disabled"'},p:[15,36,1022]}],style:[{t:2,x:{r:["data.setting"],s:'_0==4?"selected":null'},p:[15,89,1075]}],action:"setting",params:'{"amount": 4}'},f:["12"]}," ",{p:[16,6,1178],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=5?null:"disabled"'},p:[16,36,1208]}],style:[{t:2,x:{r:["data.setting"],s:'_0==5?"selected":null'},p:[16,89,1261]}],action:"setting",params:'{"amount": 5}'},f:["15"]}]}]}," ",{p:[19,3,1392],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[21,6,1456],t:7,e:"span",f:[{t:2,x:{r:["adata.TankCurrentVolume"],s:"Math.round(_0)"},p:[21,12,1462]},"/",{t:2,r:"data.TankMaxVolume",p:[21,52,1502]}," Units"]}," ",{p:[22,6,1543],t:7,e:"br"}," ",{p:[23,5,1553],t:7,e:"br"}," ",{t:4,f:[{p:[25,7,1599],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[25,50,1642]}," units of ",{t:2,r:"name",p:[25,85,1677]}]},{p:[25,100,1692],t:7,e:"br"}],n:52,r:"adata.TankContents",p:[24,6,1564]}],n:50,r:"data.isTankLoaded",p:[20,4,1425]},{t:4,n:51,f:[{p:[28,6,1730],t:7,e:"span",a:{"class":"bad"},f:["Tank Empty"]}],r:"data.isTankLoaded"}," ",{p:[30,4,1780],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"Eject":"Close"'},p:[30,21,1797]}],style:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"selected":null'},p:[31,12,1851]}],state:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?null:"disabled"'},p:[32,12,1905]}],action:"purge"},f:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"Purge Contents":"No chemicals detected"'},p:[33,20,1967]}]}]}]}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,2,1]}]},e.exports=a.extend(r.exports)},{341:341}],462:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,30],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{t:2,x:{r:["adata.generated"],s:"Math.round(_0)"},p:[3,5,71]},"W"]}," ",{p:[5,3,122],t:7,e:"ui-section",a:{label:"Orientation"},f:[{p:[6,5,159],t:7,e:"span",f:[{t:2,x:{r:["adata.angle"],s:"Math.round(_0)"},p:[6,11,165]},"° (",{t:2,r:"data.direction",p:[6,45,199]},")"]}]}," ",{p:[8,3,244],t:7,e:"ui-section",a:{label:"Adjust Angle"},f:[{p:[9,5,282],t:7,e:"ui-button",a:{icon:"step-backward",action:"angle",params:'{"adjust": -15}'},f:["15°"]}," ",{p:[10,5,378],t:7,e:"ui-button",a:{icon:"backward",action:"angle",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[11,5,467],t:7,e:"ui-button",a:{icon:"forward",action:"angle",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[12,5,554],t:7,e:"ui-button",a:{icon:"step-forward",action:"angle",params:'{"adjust": 15}'},f:["15°"]}]}]}," ",{p:[15,1,673],t:7,e:"ui-display",a:{title:"Tracking"},f:[{p:[16,3,705],t:7,e:"ui-section",a:{label:"Tracker Mode"},f:[{p:[17,5,743],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==0?"selected":null'},p:[17,36,774]}],action:"tracking",params:'{"mode": 0}'},f:["Off"]}," ",{p:[19,5,889],t:7,e:"ui-button",a:{icon:"clock-o",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==1?"selected":null'},p:[19,38,922]}],action:"tracking",params:'{"mode": 1}'},f:["Timed"]}," ",{p:[21,5,1039],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.connected_tracker","data.tracking_state"],s:'_0?_1==2?"selected":null:"disabled"'},p:[21,38,1072]}],action:"tracking",params:'{"mode": 2}'},f:["Auto"]}]}," ",{p:[24,3,1239],t:7,e:"ui-section",a:{label:"Tracking Rate"},f:[{p:[25,3,1276],t:7,e:"span",f:[{t:2,x:{r:["adata.tracking_rate"],s:"Math.round(_0)"},p:[25,9,1282]},"°/h (",{t:2,r:"data.rotating_way",p:[25,53,1326]},")"]}]}," ",{p:[27,3,1373],t:7,e:"ui-section",a:{label:"Adjust Rate"},f:[{p:[28,5,1410],t:7,e:"ui-button",a:{icon:"fast-backward",action:"rate",params:'{"adjust": -180}'},f:["180°"]}," ",{p:[29,5,1507],t:7,e:"ui-button",a:{icon:"step-backward",action:"rate",params:'{"adjust": -30}'},f:["30°"]}," ",{p:[30,5,1602],t:7,e:"ui-button",a:{icon:"backward",action:"rate",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[31,5,1690],t:7,e:"ui-button",a:{icon:"forward",action:"rate",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[32,5,1776],t:7,e:"ui-button",a:{icon:"step-forward",action:"rate",params:'{"adjust": 30}'},f:["30°"]}," ",{p:[33,5,1869],t:7,e:"ui-button",a:{icon:"fast-forward",action:"rate",params:'{"adjust": 180}'},f:["180°"]}]}]}," ",{p:{button:[{p:[38,5,2051],t:7,e:"ui-button",a:{icon:"refresh",action:"refresh"},f:["Refresh"]}]},t:7,e:"ui-display",a:{title:"Devices",button:0},f:[" ",{p:[40,2,2130],t:7,e:"ui-section",a:{label:"Solar Tracker"},f:[{p:[41,5,2169],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_tracker"],s:'_0?"good":"bad"'},p:[41,18,2182]}]},f:[{t:2,x:{r:["data.connected_tracker"],s:'_0?"":"Not "'},p:[41,63,2227]},"Found"]}]}," ",{p:[43,2,2296],t:7,e:"ui-section",a:{label:"Solar Panels"},f:[{p:[44,3,2332],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_panels"],s:'_0?"good":"bad"'},p:[44,16,2345]}]},f:[{t:2,x:{r:["adata.connected_panels"],s:"Math.round(_0)"},p:[44,60,2389]}," Panels Connected"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],463:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,7,84],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[4,38,115]}],action:"eject"},f:["Eject"]}],n:50,r:"data.open",p:[3,5,60]}]},t:7,e:"ui-display",a:{title:"Power",button:0},f:[" ",{p:[7,3,220],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[8,5,251],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[8,22,268]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[9,14,318]}],state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[9,54,358]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[10,22,422]}]}]}," ",{p:[12,3,479],t:7,e:"ui-section",a:{label:"Cell"},f:[{t:4,f:[{p:[14,7,541],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerLevel",p:[14,40,574]}]},f:[{t:2,x:{r:["adata.powerLevel"],s:"Math.fixed(_0)"},p:[14,61,595]},"%"]}],n:50,r:"data.hasPowercell",p:[13,5,509]},{t:4,n:51,f:[{p:[16,4,652],t:7,e:"span",a:{"class":"bad"},f:["No Cell"]}],r:"data.hasPowercell"}]}]}," ",{p:[20,1,725],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[21,3,759],t:7,e:"ui-section",a:{label:"Current Temperature"},f:[{p:[22,3,802],t:7,e:"span",f:[{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[22,9,808]},"°C"]}]}," ",{p:[24,2,871],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[25,3,913],t:7,e:"span",f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[25,9,919]},"°C"]}]}," ",{t:4,f:[{p:[28,5,1004],t:7,e:"ui-section",a:{label:"Adjust Target"},f:[{p:[29,7,1045],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[29,46,1084]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[30,7,1189],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[30,41,1223]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[31,7,1327],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:["Set"]}," ",{p:[32,7,1419],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[32,40,1452]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[33,7,1555],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[33,45,1593]}],action:"target",params:'{"adjust": 20}'}}]}],n:50,r:"data.open",p:[27,3,982]}," ",{p:[36,3,1719],t:7,e:"ui-section",a:{label:"Mode"},f:[{t:4,f:[{p:[38,7,1771],t:7,e:"ui-button",a:{icon:"long-arrow-up",state:[{t:2,x:{r:["data.mode"],s:'_0=="heat"?"selected":null'},p:[38,46,1810]}],action:"mode",params:'{"mode": "heat"}'},f:["Heat"]}," ",{p:[39,7,1918],t:7,e:"ui-button",a:{icon:"long-arrow-down",state:[{t:2,x:{r:["data.mode"],s:'_0=="cool"?"selected":null'},p:[39,48,1959]}],action:"mode",params:'{"mode": "cool"}'},f:["Cool"]}," ",{p:[40,7,2067],t:7,e:"ui-button",a:{icon:"arrows-v",state:[{t:2,x:{r:["data.mode"],s:'_0=="auto"?"selected":null'},p:[40,41,2101]}],action:"mode",params:'{"mode": "auto"}'},f:["Auto"]}],n:50,r:"data.open",p:[37,3,1747]},{t:4,n:51,f:[{p:[42,4,2217],t:7,e:"span",f:[{t:2,x:{r:["text","data.mode"],s:"_0.titleCase(_1)"},p:[42,10,2223]}]}],r:"data.open"}]}]}]},e.exports=a.extend(r.exports)},{341:341}],464:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:{button:[{p:[4,8,97],t:7,e:"ui-button",a:{action:"jump",params:['{"name" : ',{t:2,r:"name",p:[4,51,140]},"}"]},f:["Jump"]}," ",{p:[7,9,195],t:7,e:"ui-button",a:{action:"spawn",params:['{"name" : ',{t:2,r:"name",p:[7,53,239]},"}"]},f:["Spawn"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[2,22,46]}],button:0},f:[" ",{p:[11,3,308],t:7,e:"ui-section",a:{label:"Description"},f:[{p:[12,5,346],t:7,e:"span",f:[{t:3,r:"desc",p:[12,11,352]}]}]}," ",{p:[14,3,390],t:7,e:"ui-section",a:{label:"Spawners left"},f:[{p:[15,5,430],t:7,e:"span",f:[{t:2,r:"amount_left",p:[15,11,436]}]}]}]}],n:52,r:"data.spawners",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],465:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,31],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[2,22,50]}," Alarms"]},f:[{p:[3,5,74],t:7,e:"ul",f:[{t:4,f:[{p:[5,9,107],t:7,e:"li",f:[{t:2,r:".",p:[5,13,111]}]}],n:52,r:".",p:[4,7,86]},{t:4,n:51,f:[{p:[7,9,147],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{341:341}],466:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,41],t:7,e:"ui-notice",f:[{p:[3,5,57],t:7,e:"span",f:["Biological entity detected in contents. Please remove."]}]}],n:50,x:{r:["data.occupied","data.safeties"],s:"_0&&_1"},p:[1,1,0]},{t:4,f:[{p:[7,3,173],t:7,e:"ui-notice",f:[{p:[8,5,189],t:7,e:"span",f:["Contents are being decontaminated. Please wait."]}]}],n:50,r:"data.uv_active",p:[6,1,148]},{t:4,n:51,f:[{p:{button:[{t:4,f:[{p:[13,25,360],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,377]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,428]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,342]}," ",{t:4,f:[{p:[14,27,509],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,526]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,580]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,489]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,679],t:7,e:"ui-notice",f:[{p:[18,9,699],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,653]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,776],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,814],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,831]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,878]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,973]}]}]}," ",{p:[25,9,1042],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1078],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1095]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1141]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1232]}]}]}," ",{p:[29,9,1299],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1335],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1352]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1398]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1489]}]}]}," ",{p:[33,9,1556],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1595],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1612]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1661]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1758]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1839],t:7,e:"ui-button",a:{icon:"recycle",state:[{t:2,x:{r:["data.occupied","data.safeties"],s:'_0&&_1?"disabled":null'},p:[38,40,1872]}],action:"uv"},f:["Decontaminate"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{341:341}],467:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,5,18],t:7,e:"ui-section",a:{label:"Dispense"},f:[{p:[3,9,57],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.plasma"],s:'_0?"square":"square-o"'},p:[3,26,74]}],state:[{t:2,x:{r:["data.plasma"],s:'_0?null:"disabled"'},p:[3,74,122]}],action:"plasma"},f:["Plasma (",{t:2,x:{r:["adata.plasma"],s:"Math.round(_0)"},p:[4,37,196]},")"]}," ",{p:[5,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oxygen"],s:'_0?"square":"square-o"'},p:[5,26,264]}],state:[{t:2,x:{r:["data.oxygen"],s:'_0?null:"disabled"'},p:[5,74,312]}],action:"oxygen"},f:["Oxygen (",{t:2,x:{r:["adata.oxygen"],s:"Math.round(_0)"},p:[6,37,386]},")"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],468:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={computed:{tankPressureState:function(){var t=this.get("data.tankPressure");return t>=200?"good":t>=100?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,282],t:7,e:"ui-notice",f:[{p:[15,3,296],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.connected"],s:'_0?"is":"is not"'},p:[15,23,316]}," connected to a mask."]}]}," ",{p:[17,1,393],t:7,e:"ui-display",f:[{p:[18,3,408],t:7,e:"ui-section",a:{label:"Tank Pressure"},f:[{p:[19,7,449],t:7,e:"ui-bar",a:{min:"0",max:"1013",value:[{t:2,r:"data.tankPressure",p:[19,41,483]}],state:[{t:2,r:"tankPressureState",p:[20,16,521]}]},f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[20,39,544]}," kPa"]}]}," ",{p:[22,3,610],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[23,5,652],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[23,18,665]}],max:[{t:2,r:"data.maxReleasePressure",p:[23,52,699]}],value:[{t:2,r:"data.releasePressure",p:[24,14,741]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[24,40,767]}," kPa"]}]}," ",{p:[26,3,836],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,880],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,913]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1067],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1098]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1243],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1337],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1367]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],469:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,5,33],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[3,9,75],t:7,e:"span",f:[{t:2,x:{r:["adata.temperature"],s:"Math.fixed(_0,2)"},p:[3,15,81]}," K"]}]}," ",{p:[5,5,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,9,190],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.fixed(_0,2)"},p:[6,15,196]}," kPa"]}]}]}," ",{p:[9,1,276],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[10,5,311],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[11,9,347],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[11,26,364]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[11,70,408]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[12,28,469]}]}]}," ",{p:[14,5,531],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[15,9,580],t:7,e:"ui-button",a:{icon:"fast-backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[15,48,619]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[17,9,733],t:7,e:"ui-button",a:{icon:"backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[17,43,767]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[19,9,880],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.target"],s:"Math.fixed(_0,2)"},p:[19,79,950]}]}," ",{p:[20,9,1003],t:7,e:"ui-button",a:{icon:"forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[20,42,1036]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[22,9,1148],t:7,e:"ui-button",a:{icon:"fast-forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[22,47,1186]}],action:"target",params:'{"adjust": 20}'}}]}]}]},e.exports=a.extend(r.exports)},{341:341}],470:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 1:return"good";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[13,1,161],t:7,e:"ui-notice",f:[{p:[14,2,174],t:7,e:"ui-section",a:{label:"Reconnect"},f:[{p:[15,3,207],t:7,e:"div",a:{style:"float:right"},f:[{p:[16,4,236],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}]}]}]}," ",{p:[20,1,340],t:7,e:"ui-display",a:{title:"Turbine Controller"},f:[{p:[21,2,381],t:7,e:"ui-section",a:{label:"Status"},f:[{t:4,f:[{p:[23,4,434],t:7,e:"span",a:{"class":"bad"},f:["Broken"]}],n:50,r:"data.broken",p:[22,3,411]},{t:4,n:51,f:[{p:[25,4,480],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.online"],s:"_0(_1)"},p:[25,17,493]}]},f:[{t:2,x:{r:["data.online","data.compressor_broke","data.turbine_broke"],s:'_0&&!(_1||_2)?"Online":"Offline"'},p:[25,46,522]}]}],r:"data.broken"}," ",{p:[27,3,630],t:7,e:"div",a:{style:"float:right"},f:[{p:[28,4,659],t:7,e:"ui-button",a:{icon:"power-off",action:"power-on",state:[{t:2,r:"data.broken",p:[28,57,712]}],style:[{t:2,x:{r:["data.online"],s:'_0?"selected":""'},p:[28,81,736]}]},f:["On"]}," ",{p:[29,4,789],t:7,e:"ui-button",a:{icon:"close",action:"power-off",state:[{t:2,r:"data.broken",p:[29,54,839]}],style:[{t:2,x:{r:["data.online"],s:'_0?"":"selected"'},p:[29,78,863]}]},f:["Off"]}]}," ",{t:4,f:[{p:[32,4,958],t:7,e:"br"}," [ ",{p:[33,6,968],t:7,e:"span",a:{"class":"bad"},f:["Compressor is inoperable"]}," ]"],n:50,r:"data.compressor_broke",p:[31,3,925]}," ",{t:4,f:[{p:[36,4,1062],t:7,e:"br"}," [ ",{p:[37,6,1072],t:7,e:"span",a:{"class":"bad"},f:["Turbine is inoperable"]}," ]"],n:50,r:"data.turbine_broke",p:[35,3,1032]}]}]}," ",{p:[41,1,1160],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[42,2,1189],t:7,e:"ui-section",a:{label:"Turbine Speed"},f:[{p:[43,3,1226],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.rpm"],s:'_0?"--":_1'},p:[43,9,1232]}," RPM"]}]}," ",{p:[45,2,1293],t:7,e:"ui-section",a:{label:"Internal Temp"},f:[{p:[46,3,1330],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.temp"],s:'_0?"--":_1'},p:[46,9,1336]}," K"]}]}," ",{p:[48,2,1396],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{p:[49,3,1435],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.power"],s:'_0?"--":_1'},p:[49,9,1441]}]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],471:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{},oninit:function(){this.on({hover:function(t){var e=this.get("data.telecrystals");e>=t.context.params.cost&&this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}})}}}(r),r.exports.template={v:3,t:[" ",{p:{button:[{t:4,f:[{p:[23,7,482],t:7,e:"ui-button",a:{icon:"lock",action:"lock"},f:["Lock"]}],n:50,r:"data.lockable",p:[22,5,453]}]},t:7,e:"ui-display",a:{title:"Uplink",button:0},f:[" ",{p:[26,3,568],t:7,e:"ui-section",a:{label:"Telecrystals",right:0},f:[{p:[27,5,613],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.telecrystals"],s:'_0>0?"good":"bad"'},p:[27,18,626]}]},f:[{t:2,r:"data.telecrystals",p:[27,62,670]}," TC"]}]}]}," ",{t:4,f:[{p:[31,3,764],t:7,e:"ui-display",f:[{p:[32,2,779],t:7,e:"ui-button",a:{action:"select",params:['{"category": "',{t:2,r:"name",p:[32,51,828]},'"}']},f:[{t:2,r:"name",p:[32,63,840]}]}," ",{t:4,f:[{p:[34,4,883],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[34,23,902]}],candystripe:0,right:0},f:[{p:[35,3,934],t:7,e:"ui-button",a:{tooltip:[{t:2,r:"name",p:[35,23,954]},": ",{t:2,r:"desc",p:[35,33,964]}],"tooltip-side":"left",state:[{t:2,x:{r:["data.telecrystals","hovered.cost","cost","hovered.item","name"],s:'_0<_2||(_0-_1<_2&&_3!=_4)?"disabled":null'},p:[36,12,1006]}],action:"buy",params:['{"category": "',{t:2,r:"category",p:[37,40,1165]},'", "item": ',{t:2,r:"name",p:[37,63,1188]},', "cost": ',{t:2,r:"cost",p:[37,81,1206]},"}"]},v:{hover:"hover",unhover:"unhover"},f:[{t:2,r:"cost",p:[38,43,1260]}," TC"]}]}],n:52,r:"items",p:[33,2,863]}]}],n:52,r:"data.categories",p:[30,1,735]}]},e.exports=a.extend(r.exports)},{341:341}],472:[function(t,e,n){var a=t(341),r={exports:{}};!function(t){"use strict";t.exports={data:{healthState:function(t){var e=this.get("data.vr_avatar.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,279],t:7,e:"ui-display",f:[{t:4,f:[{p:[16,3,316],t:7,e:"ui-notice",f:[{p:[17,4,331],t:7,e:"span",f:["Safety restraints disabled."]}]}],n:50,r:"data.emagged",p:[15,2,293]}," ",{t:4,f:[{p:[21,3,422],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[22,4,461],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[23,5,491]}]}," ",{p:[25,4,535],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[26,5,567]}]}," ",{p:[28,4,613],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[29,5,645],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[29,26,666]}],value:[{t:2,r:"adata.vr_avatar.health",p:[29,64,704]}],state:[{t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[29,99,739]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[29,140,780]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[29,179,819]}]}]}]}],n:50,r:"data.vr_avatar",p:[20,2,397]},{t:4,n:51,f:[{p:[33,3,903],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[37,2,995],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[38,3,1030],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[38,20,1047]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[39,4,1113]}," the VR Sleeper"]}," ",{t:4,f:[{p:[42,4,1212],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[41,3,1185]}," ",{t:4,f:[{p:[47,4,1330],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[46,3,1304]}]}]}]},e.exports=a.extend(r.exports)},{341:341}],473:[function(t,e,n){var a=t(341),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{t:4,f:[{p:[3,5,40],t:7,e:"ui-section",a:{label:[{t:2,r:"color",p:[3,24,59]},{t:2,x:{r:["wire"],s:'_0?" ("+_0+")":""'},p:[3,33,68]}],labelcolor:[{t:2,r:"color",p:[3,80,115]}],candystripe:0,right:0},f:[{p:[4,7,151],t:7,e:"ui-button",a:{action:"cut",params:['{"wire":"',{t:2,r:"color",p:[4,48,192]},'"}']},f:[{t:2,x:{r:["cut"],s:'_0?"Mend":"Cut"'},p:[4,61,205]}]}," ",{p:[5,7,248],t:7,e:"ui-button",a:{action:"pulse",params:['{"wire":"',{t:2,r:"color",p:[5,50,291]},'"}']},f:["Pulse"]}," ",{p:[6,7,328],t:7,e:"ui-button",a:{action:"attach",params:['{"wire":"',{t:2,r:"color",p:[6,51,372]},'"}']},f:[{t:2,x:{r:["attached"],s:'_0?"Detach":"Attach"'},p:[6,64,385]}]}]}],n:52,r:"data.wires",p:[2,3,15]}]}," ",{t:4,f:[{p:[11,3,498],t:7,e:"ui-display",f:[{t:4,f:[{p:[13,7,543],t:7,e:"ui-section",f:[{t:2,r:".",p:[13,19,555]}]}],n:52,r:"data.status",p:[12,5,515]}]}],n:50,r:"data.status",p:[10,1,476]}]},e.exports=a.extend(r.exports)},{341:341}],474:[function(t,e,n){(function(e){"use strict";var n=t(341),a=e.interopRequireDefault(n);t(331),t(1),t(327),t(330);var r=t(475),i=e.interopRequireDefault(r),o=t(476),s=t(328),p=t(329),u=e.interopRequireDefault(p);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(480)),window.initialize=function(e){window.tgui=window.tgui||new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(477),text:t(481),config:n.config,data:n.data,adata:n.data}}})};var c=document.getElementById("data"),l=c.textContent,d=c.getAttribute("data-ref");"{}"!==l&&(window.initialize(l),c.remove()),(0,o.act)(d,"tgui:initialize"),(0,s.loadCSS)("font-awesome.min.css");var f=new u["default"]("FontAwesome");f.check("").then(function(){return document.body.classList.add("icons")})["catch"](function(){return document.body.classList.add("no-icons")})}).call(this,t("babel/external-helpers"))},{1:1,327:327,328:328,329:329,330:330,331:331,341:341,475:475,476:476,477:477,480:480,481:481,"babel/external-helpers":"babel/external-helpers"}],475:[function(t,e,n){var a=t(341),r={exports:{}};!function(e){"use strict";var n=t(476),a=t(478);e.exports={components:{"ui-bar":t(342),"ui-button":t(343),"ui-display":t(344),"ui-input":t(345),"ui-linegraph":t(346),"ui-notice":t(347),"ui-section":t(349),"ui-subdisplay":t(350),"ui-tabs":t(351)},events:{enter:t(339).enter,space:t(339).space},transitions:{fade:t(340)},onconfig:function(){var e=this.get("config.interface"),n={ai_airlock:t(355),airalarm:t(356),"airalarm/back":t(357),"airalarm/modes":t(358),"airalarm/scrubbers":t(359),"airalarm/status":t(360),"airalarm/thresholds":t(361),"airalarm/vents":t(362),airlock_electronics:t(363),apc:t(364),atmos_alert:t(365),atmos_control:t(366),atmos_filter:t(367),atmos_mixer:t(368),atmos_pump:t(369),borgopanel:t(370),brig_timer:t(371),bsa:t(372),canister:t(373),cargo:t(374),cargo_express:t(375),cellular_emporium:t(376),centcom_podlauncher:t(377),chem_dispenser:t(378),chem_heater:t(379),chem_master:t(380),chem_synthesizer:t(381),clockwork_slab:t(382),codex_gigas:t(383),computer_fabricator:t(384),crayon:t(385),crew:t(386),cryo:t(387),disposal_unit:t(388),dna_vault:t(389),eightball:t(390),emergency_shuttle_console:t(391),engraved_message:t(392),error:t(393),exonet_node:t(394),gps:t(395),gulag_console:t(396),gulag_item_reclaimer:t(397),holodeck:t(398),implantchair:t(399),intellicard:t(400),keycard_auth:t(401),labor_claim_console:t(402),language_menu:t(403),launchpad_remote:t(404),mech_bay_power_console:t(405),mulebot:t(406),nanite_chamber_control:t(407),nanite_cloud_control:t(408),nanite_program_hub:t(409),nanite_programmer:t(410),nanite_remote:t(411),notificationpanel:t(412),ntnet_relay:t(413),ntos_ai_restorer:t(414),ntos_card:t(415),ntos_configuration:t(416),ntos_file_manager:t(417),ntos_main:t(418),ntos_net_chat:t(419),ntos_net_dos:t(420),ntos_net_downloader:t(421),ntos_net_monitor:t(422),ntos_net_transfer:t(423),ntos_power_monitor:t(424),ntos_revelation:t(425),ntos_station_alert:t(426),ntos_supermatter_monitor:t(427),ntosheader:t(428),nuclear_bomb:t(429),operating_computer:t(430),ore_redemption_machine:t(431),pandemic:t(432),personal_crafting:t(433),portable_pump:t(434),portable_scrubber:t(435),power_monitor:t(436),radio:t(437),rdconsole:t(438),"rdconsole/circuit":t(439),"rdconsole/designview":t(440),"rdconsole/destruct":t(441),"rdconsole/diskopsdesign":t(442),"rdconsole/diskopstech":t(443),"rdconsole/nodeview":t(444),"rdconsole/protolathe":t(445),"rdconsole/rdheader":t(446),"rdconsole/settings":t(447),"rdconsole/techweb":t(448),rpd:t(449),sat_control:t(450),scanner_gate:t(451), +scrubbing_types:t(452),shuttle_manipulator:t(453),"shuttle_manipulator/modification":t(454),"shuttle_manipulator/status":t(455),"shuttle_manipulator/templates":t(456),sleeper:t(457),slime_swap_body:t(458),smartvend:t(459),smes:t(460),smoke_machine:t(461),solar_control:t(462),space_heater:t(463),spawners_menu:t(464),station_alert:t(465),suit_storage_unit:t(466),tank_dispenser:t(467),tanks:t(468),thermomachine:t(469),turbine_computer:t(470),uplink:t(471),vr_sleeper:t(472),wires:t(473)};e in n?this.components["interface"]=n[e]:this.components["interface"]=n.error},oninit:function(){this.observe("config.style",function(t,e,n){t&&document.body.classList.add(t),e&&document.body.classList.remove(e)})},oncomplete:function(){if(this.get("config.locked")){var t=(0,a.lock)(window.screenLeft,window.screenTop),e=t.x,r=t.y;(0,n.winset)(this.get("config.window"),"pos",e+","+r)}(0,n.winset)("mapwindow.map","focus",!0)}}}(r),r.exports.template={v:3,t:[" "," "," "," ",{p:[56,1,1819],t:7,e:"titlebar",f:[{t:3,r:"config.title",p:[56,11,1829]}]}," ",{p:[57,1,1859],t:7,e:"main",f:[{p:[58,3,1868],t:7,e:"warnings"}," ",{p:[59,3,1882],t:7,e:"interface"}]}," ",{t:4,f:[{p:[62,3,1929],t:7,e:"resize"}],n:50,r:"config.titlebar",p:[61,1,1903]}]},r.exports.components=r.exports.components||{};var i={warnings:t(354),titlebar:t(353),resize:t(348)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{339:339,340:340,341:341,342:342,343:343,344:344,345:345,346:346,347:347,348:348,349:349,350:350,351:351,353:353,354:354,355:355,356:356,357:357,358:358,359:359,360:360,361:361,362:362,363:363,364:364,365:365,366:366,367:367,368:368,369:369,370:370,371:371,372:372,373:373,374:374,375:375,376:376,377:377,378:378,379:379,380:380,381:381,382:382,383:383,384:384,385:385,386:386,387:387,388:388,389:389,390:390,391:391,392:392,393:393,394:394,395:395,396:396,397:397,398:398,399:399,400:400,401:401,402:402,403:403,404:404,405:405,406:406,407:407,408:408,409:409,410:410,411:411,412:412,413:413,414:414,415:415,416:416,417:417,418:418,419:419,420:420,421:421,422:422,423:423,424:424,425:425,426:426,427:427,428:428,429:429,430:430,431:431,432:432,433:433,434:434,435:435,436:436,437:437,438:438,439:439,440:440,441:441,442:442,443:443,444:444,445:445,446:446,447:447,448:448,449:449,450:450,451:451,452:452,453:453,454:454,455:455,456:456,457:457,458:458,459:459,460:460,461:461,462:462,463:463,464:464,465:465,466:466,467:467,468:468,469:469,470:470,471:471,472:472,473:473,476:476,478:478}],476:[function(t,e,n){"use strict";function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"byond://"+e+"?"+Object.keys(t).map(function(e){return o(e)+"="+o(t[e])}).join("&")}function r(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};window.location.href=a(Object.assign({src:t,action:e},n))}function i(t,e,n){var r;window.location.href=a((r={},r[t+"."+e]=n,r),"winset")}n.__esModule=!0,n.href=a,n.act=r,n.winset=i;var o=encodeURIComponent},{}],477:[function(t,e,n){"use strict";n.__esModule=!0;n.UI_INTERACTIVE=2,n.UI_UPDATE=1,n.UI_DISABLED=0,n.UI_CLOSE=-1},{}],478:[function(t,e,n){"use strict";function a(t,e){return 0>t?t=0:t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth),0>e?e=0:e+window.innerHeight>window.screen.availHeight&&(e=window.screen.availHeight-window.innerHeight),{x:t,y:e}}function r(t){if(t.preventDefault(),this.get("drag")){if(this.get("x")){var e=t.screenX-this.get("x")+window.screenLeft,n=t.screenY-this.get("y")+window.screenTop;if(this.get("config.locked")){var r=a(e,n);e=r.x,n=r.y}(0,s.winset)(this.get("config.window"),"pos",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}function i(t,e){return t=Math.clamp(100,window.screen.width,t),e=Math.clamp(100,window.screen.height,e),{x:t,y:e}}function o(t){if(t.preventDefault(),this.get("resize")){if(this.get("x")){var e=t.screenX-this.get("x")+window.innerWidth,n=t.screenY-this.get("y")+window.innerHeight,a=i(e,n);e=a.x,n=a.y,(0,s.winset)(this.get("config.window"),"size",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}n.__esModule=!0,n.lock=a,n.drag=r,n.sane=i,n.resize=o;var s=t(476)},{476:476}],479:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var p=s;a||p.textContent.toLowerCase().includes(e)?p.style.display="":p.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],480:[function(t,e,n){"use strict";function a(t,e,n){return Math.max(t,Math.min(n,e))}function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],481:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var p=Array(o),u=0;o>u;u++)p[u]=arguments[u+3];n.children=p}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncIterator=function(t){if("function"==typeof Symbol){if(Symbol.asyncIterator){var e=t[Symbol.asyncIterator];if(null!=e)return e.call(t)}if(Symbol.iterator)return t[Symbol.iterator]()}throw new TypeError("Object is not async iterable")},e.asyncGenerator=function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};o?o=o.next=s:(i=o=s,a(t,e))})}function a(n,i){try{var o=e[n](i),s=o.value;s instanceof t?Promise.resolve(s.value).then(function(t){a("next",t)},function(t){a("throw",t)}):r(o.done?"return":"normal",o.value)}catch(p){r("throw",p)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?a(i.key,i.arg):o=null}var i,o;this._invoke=n,"function"!=typeof e["return"]&&(this["return"]=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype["throw"]=function(t){return this._invoke("throw",t)},e.prototype["return"]=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),e.asyncGeneratorDelegate=function(t,e){function n(n,a){return r=!0,a=new Promise(function(e){e(t[n](a))}),{done:!1,value:e(a)}}var a={},r=!1;return"function"==typeof Symbol&&Symbol.iterator&&(a[Symbol.iterator]=function(){return this}),a.next=function(t){return r?(r=!1,t):n("next",t)},"function"==typeof t["throw"]&&(a["throw"]=function(t){if(r)throw r=!1,t;return n("throw",t)}),"function"==typeof t["return"]&&(a["return"]=function(t){return n("return",t)}),a},e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(p){return void n(p)}return o.done?void t(s):Promise.resolve(s).then(function(t){a("next",t)},function(t){a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e - - Bay #1 - Bay #2 - Bay #3 - Bay #4 - - - - Teleport to Centcom's Supplypod Loading Bay - Teleport Back to {{data.oldArea ? data.oldArea : "where you were"}} - - - - Clone and Launch - - - - Ordered - Random - - - - Custom Size - Adminbus - - - - Custom Damage - Gib - - - - Stun - Delimb - Yeet Organs - Bluespace - Stealth - Quiet Landing - Reverse Mode - Missile Mode - Any Descent Angle - Machine Gun Mode - Specific Target - Custom Name/Desc - Alert Ghosts - - - Custom Falling Sound - Custom Landing Sound - Custom Opening Sound - Custom Leaving Sound - Admin Sound Volume - - - - Custom Falling Duration - Custom Landing Time - Custom Opening Time - Custom Leaving Time - - - - Standard - Advanced - Syndicate - Deathsquad - Cult Pod - Missile - Syndicate Missile - Supply Crate - HONK - Fruit~ - Invisible - Gondola (alive) - + + + + Bay #1 + Bay #2 + Bay #3 + Bay #4 - - Refresh Pod Bay - + + Loading Bay + {{data.oldArea ? data.oldArea : "where you were"}} + - - + + Launch Clones + + + + + Ordered + Random + + + + + Custom Size + Adminbus + + + + + Custom Damage + Gib + + + + + Stun + Delimb + Yeet Organs + + + + + Bluespace + Stealth + Quiet Landing + Reverse Mode + Missile Mode + Any Descent Angle + Machine Gun Mode + Specific Target + + + + + Custom Name/Desc + Alert Ghosts + + + + + Custom Falling Sound + Custom Landing Sound + Custom Opening Sound + Custom Leaving Sound + Admin Sound Volume + + + + + Custom Falling Duration + Custom Landing Time + Custom Opening Time + Custom Leaving Time + + + + + Standard + Advanced + Syndicate + Deathsquad + Cult Pod + Missile + Syndicate Missile + Supply Crate + HONK + Fruit~ + Invisible + Gondola (alive) + + + + + + Refresh Pod Bay + Enter Launch Mode - + \ No newline at end of file From d1bd842a550307651c7d87f8c55c61838844afe8 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:32:23 -0800 Subject: [PATCH 64/93] Automatic changelog generation for PR #41821 [ci skip] --- html/changelogs/AutoChangeLog-pr-41821.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41821.yml diff --git a/html/changelogs/AutoChangeLog-pr-41821.yml b/html/changelogs/AutoChangeLog-pr-41821.yml new file mode 100644 index 00000000000..8ae96c79479 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41821.yml @@ -0,0 +1,4 @@ +author: "MrDoomBringer" +delete-after: True +changes: + - admin: "The Centcom Pod Launcher has been reorganized, making it easier to navigate at the expense of compact-ness." From 04276d13f9b3c736833476927ea23d675fe98030 Mon Sep 17 00:00:00 2001 From: HideAndSeekLOGIC Date: Sun, 9 Dec 2018 20:52:30 +1000 Subject: [PATCH 65/93] [READY] Allow creation of the various types of emergency oxygen tanks (#41672) [Changelogs]: cl HideAndSeekLOGIC add: Added emergency oxygen tanks and extended capacity emergency tanks to the autolathe and protolathe add: Added them to the Industrial Engineering tech node tweak: Only Cargo and Engineering can print extended capacities; the rest are available for everyone. /cl There is currently no way to produce these tanks and there is currently no reason why this should be the case. This PR fixes this problem. --- code/game/objects/items/tanks/tank_types.dm | 395 +++++++++--------- .../research/designs/autolathe_designs.dm | 26 ++ code/modules/research/techweb/all_nodes.dm | 2 +- 3 files changed, 233 insertions(+), 190 deletions(-) diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm index 3895e36286d..da7a54cdab1 100644 --- a/code/game/objects/items/tanks/tank_types.dm +++ b/code/game/objects/items/tanks/tank_types.dm @@ -1,189 +1,206 @@ -/* Types of tanks! - * Contains: - * Oxygen - * Anesthetic - * Air - * Plasma - * Emergency Oxygen - */ - -/* - * Oxygen - */ -/obj/item/tank/internals/oxygen - name = "oxygen tank" - desc = "A tank of oxygen." - icon_state = "oxygen" - distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE - force = 10 - dog_fashion = /datum/dog_fashion/back - - -/obj/item/tank/internals/oxygen/New() - ..() - air_contents.assert_gas(/datum/gas/oxygen) - air_contents.gases[/datum/gas/oxygen][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - - -/obj/item/tank/internals/oxygen/yellow - desc = "A tank of oxygen, this one is yellow." - icon_state = "oxygen_f" - dog_fashion = null - -/obj/item/tank/internals/oxygen/red - desc = "A tank of oxygen, this one is red." - icon_state = "oxygen_fr" - dog_fashion = null - -/obj/item/tank/internals/oxygen/empty/New() - ..() - air_contents.gases[/datum/gas/oxygen][MOLES] = 0 - return - -/* - * Anesthetic - */ -/obj/item/tank/internals/anesthetic - name = "anesthetic tank" - desc = "A tank with an N2O/O2 gas mix." - icon_state = "anesthetic" - item_state = "an_tank" - force = 10 - -/obj/item/tank/internals/anesthetic/New() - ..() - air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/nitrous_oxide) - air_contents.gases[/datum/gas/oxygen][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD - air_contents.gases[/datum/gas/nitrous_oxide][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD - return - -/* - * Air - */ -/obj/item/tank/internals/air - name = "air tank" - desc = "Mixed anyone?" - icon_state = "air" - item_state = "air" - force = 10 - dog_fashion = /datum/dog_fashion/back - -/obj/item/tank/internals/air/New() - ..() - air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/nitrogen) - air_contents.gases[/datum/gas/oxygen][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD - air_contents.gases[/datum/gas/nitrogen][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD - return - - -/* - * Plasma - */ -/obj/item/tank/internals/plasma - name = "plasma tank" - desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable." - icon_state = "plasma" - flags_1 = CONDUCT_1 - slot_flags = null //they have no straps! - force = 8 - - -/obj/item/tank/internals/plasma/New() - ..() - air_contents.assert_gas(/datum/gas/plasma) - air_contents.gases[/datum/gas/plasma][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - -/obj/item/tank/internals/plasma/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/flamethrower)) - var/obj/item/flamethrower/F = W - if ((!F.status)||(F.ptank)) - return - if(!user.transferItemToLoc(src, F)) - return - src.master = F - F.ptank = src - F.update_icon() - else - return ..() - -/obj/item/tank/internals/plasma/full/New() - ..() // Plasma asserted in parent - air_contents.gases[/datum/gas/plasma][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - -/obj/item/tank/internals/plasma/empty/New() - ..() - air_contents.gases[/datum/gas/plasma][MOLES] = 0 - return - -/* - * Plasmaman Plasma Tank - */ - -/obj/item/tank/internals/plasmaman - name = "plasma internals tank" - desc = "A tank of plasma gas designed specifically for use as internals, particularly for plasma-based lifeforms. If you're not a Plasmaman, you probably shouldn't use this." - icon_state = "plasmaman_tank" - item_state = "plasmaman_tank" - force = 10 - distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE - -/obj/item/tank/internals/plasmaman/New() - ..() - air_contents.assert_gas(/datum/gas/plasma) - air_contents.gases[/datum/gas/plasma][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - -/obj/item/tank/internals/plasmaman/full/New() - ..() // Plasma asserted in parent - air_contents.gases[/datum/gas/plasma][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - - -/obj/item/tank/internals/plasmaman/belt - icon_state = "plasmaman_tank_belt" - item_state = "plasmaman_tank_belt" - slot_flags = ITEM_SLOT_BELT - force = 5 - volume = 6 - w_class = WEIGHT_CLASS_SMALL //thanks i forgot this - -/obj/item/tank/internals/plasmaman/belt/full/New() - ..() // Plasma asserted in parent - air_contents.gases[/datum/gas/plasma][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - - - -/* - * Emergency Oxygen - */ -/obj/item/tank/internals/emergency_oxygen - name = "emergency oxygen tank" - desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." - icon_state = "emergency" - flags_1 = CONDUCT_1 - slot_flags = ITEM_SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - force = 4 - distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE - volume = 1 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) - - -/obj/item/tank/internals/emergency_oxygen/New() - ..() - air_contents.assert_gas(/datum/gas/oxygen) - air_contents.gases[/datum/gas/oxygen][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - return - -/obj/item/tank/internals/emergency_oxygen/engi - name = "extended-capacity emergency oxygen tank" - icon_state = "emergency_engi" - volume = 2 // should last a bit over 30 minutes if full - -/obj/item/tank/internals/emergency_oxygen/double - name = "double emergency oxygen tank" - icon_state = "emergency_double" - volume = 8 +/* Types of tanks! + * Contains: + * Oxygen + * Anesthetic + * Air + * Plasma + * Emergency Oxygen + */ + +/* + * Oxygen + */ +/obj/item/tank/internals/oxygen + name = "oxygen tank" + desc = "A tank of oxygen." + icon_state = "oxygen" + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + force = 10 + dog_fashion = /datum/dog_fashion/back + + +/obj/item/tank/internals/oxygen/New() + ..() + air_contents.assert_gas(/datum/gas/oxygen) + air_contents.gases[/datum/gas/oxygen][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/obj/item/tank/internals/oxygen/yellow + desc = "A tank of oxygen, this one is yellow." + icon_state = "oxygen_f" + dog_fashion = null + +/obj/item/tank/internals/oxygen/red + desc = "A tank of oxygen, this one is red." + icon_state = "oxygen_fr" + dog_fashion = null + +/obj/item/tank/internals/oxygen/empty/New() + ..() + air_contents.gases[/datum/gas/oxygen][MOLES] = 0 + return + +/* + * Anesthetic + */ +/obj/item/tank/internals/anesthetic + name = "anesthetic tank" + desc = "A tank with an N2O/O2 gas mix." + icon_state = "anesthetic" + item_state = "an_tank" + force = 10 + +/obj/item/tank/internals/anesthetic/New() + ..() + air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/nitrous_oxide) + air_contents.gases[/datum/gas/oxygen][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD + air_contents.gases[/datum/gas/nitrous_oxide][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD + return + +/* + * Air + */ +/obj/item/tank/internals/air + name = "air tank" + desc = "Mixed anyone?" + icon_state = "air" + item_state = "air" + force = 10 + dog_fashion = /datum/dog_fashion/back + +/obj/item/tank/internals/air/New() + ..() + air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/nitrogen) + air_contents.gases[/datum/gas/oxygen][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD + air_contents.gases[/datum/gas/nitrogen][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD + return + + +/* + * Plasma + */ +/obj/item/tank/internals/plasma + name = "plasma tank" + desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable." + icon_state = "plasma" + flags_1 = CONDUCT_1 + slot_flags = null //they have no straps! + force = 8 + + +/obj/item/tank/internals/plasma/New() + ..() + air_contents.assert_gas(/datum/gas/plasma) + air_contents.gases[/datum/gas/plasma][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/tank/internals/plasma/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/flamethrower)) + var/obj/item/flamethrower/F = W + if ((!F.status)||(F.ptank)) + return + if(!user.transferItemToLoc(src, F)) + return + src.master = F + F.ptank = src + F.update_icon() + else + return ..() + +/obj/item/tank/internals/plasma/full/New() + ..() // Plasma asserted in parent + air_contents.gases[/datum/gas/plasma][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/tank/internals/plasma/empty/New() + ..() + air_contents.gases[/datum/gas/plasma][MOLES] = 0 + return + +/* + * Plasmaman Plasma Tank + */ + +/obj/item/tank/internals/plasmaman + name = "plasma internals tank" + desc = "A tank of plasma gas designed specifically for use as internals, particularly for plasma-based lifeforms. If you're not a Plasmaman, you probably shouldn't use this." + icon_state = "plasmaman_tank" + item_state = "plasmaman_tank" + force = 10 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + +/obj/item/tank/internals/plasmaman/New() + ..() + air_contents.assert_gas(/datum/gas/plasma) + air_contents.gases[/datum/gas/plasma][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/tank/internals/plasmaman/full/New() + ..() // Plasma asserted in parent + air_contents.gases[/datum/gas/plasma][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/obj/item/tank/internals/plasmaman/belt + icon_state = "plasmaman_tank_belt" + item_state = "plasmaman_tank_belt" + slot_flags = ITEM_SLOT_BELT + force = 5 + volume = 6 + w_class = WEIGHT_CLASS_SMALL //thanks i forgot this + +/obj/item/tank/internals/plasmaman/belt/full/New() + ..() // Plasma asserted in parent + air_contents.gases[/datum/gas/plasma][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/tank/internals/plasmaman/belt/empty/Initialize() + . = ..() // Plasma asserted in parent + air_contents.gases[/datum/gas/plasma][MOLES] = 0 + + + +/* + * Emergency Oxygen + */ +/obj/item/tank/internals/emergency_oxygen + name = "emergency oxygen tank" + desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." + icon_state = "emergency" + flags_1 = CONDUCT_1 + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + force = 4 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + volume = 1 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) + + +/obj/item/tank/internals/emergency_oxygen/New() + ..() + air_contents.assert_gas(/datum/gas/oxygen) + air_contents.gases[/datum/gas/oxygen][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/tank/internals/emergency_oxygen/empty/Initialize() + . = ..() + air_contents.gases[/datum/gas/oxygen][MOLES] = 0 + +/obj/item/tank/internals/emergency_oxygen/engi + name = "extended-capacity emergency oxygen tank" + icon_state = "emergency_engi" + volume = 2 // should last a bit over 30 minutes if full + +/obj/item/tank/internals/emergency_oxygen/engi/empty/Initialize() + . = ..() + air_contents.gases[/datum/gas/oxygen][MOLES] = 0 + +/obj/item/tank/internals/emergency_oxygen/double + name = "double emergency oxygen tank" + icon_state = "emergency_double" + volume = 8 + +/obj/item/tank/internals/emergency_oxygen/double/empty/Initialize() + . = ..() + air_contents.gases[/datum/gas/oxygen][MOLES] = 0 + diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 602a42edfe1..0e88ef4fc56 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -228,6 +228,32 @@ category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/emergency_oxygen + name = "Emergency Oxygen Tank" + id = "emergency_oxygen" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 500) + build_path = /obj/item/tank/internals/emergency_oxygen/empty + category = list("initial","Misc","Equipment") + +/datum/design/emergency_oxygen_engi + name = "Extended-Capacity Emergency Oxygen Tank" + id = "emergency_oxygen_engi" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 750) + build_path = /obj/item/tank/internals/emergency_oxygen/engi/empty + category = list("hacked","Misc","Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO + +/datum/design/plasmaman_tank_belt + name = "Plasmaman Belt Tank" + id = "plasmaman_tank_belt" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 800) + build_path = /obj/item/tank/internals/plasmaman/belt/empty + category = list("hacked","Misc","Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO + /datum/design/metal name = "Metal" id = "metal" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 71050353425..28d93cd9b4c 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -125,7 +125,7 @@ design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", "scanner_gate", "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", "apc_control", "cell_charger", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", - "oxygen_tank", "plasma_tank") + "oxygen_tank", "plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) export_price = 5000 From 882fc6547f3d9bf17f97d23e81955703327cee7f Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 02:52:33 -0800 Subject: [PATCH 66/93] Automatic changelog generation for PR #41672 [ci skip] --- html/changelogs/AutoChangeLog-pr-41672.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41672.yml diff --git a/html/changelogs/AutoChangeLog-pr-41672.yml b/html/changelogs/AutoChangeLog-pr-41672.yml new file mode 100644 index 00000000000..7f01dfd6ad1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41672.yml @@ -0,0 +1,6 @@ +author: "HideAndSeekLOGIC" +delete-after: True +changes: + - rscadd: "Added emergency oxygen tanks and extended capacity emergency tanks to the autolathe and protolathe" + - rscadd: "Added them to the Industrial Engineering tech node" + - tweak: "Only Cargo and Engineering can print extended capacities; the rest are available for everyone." From 0da5cc73e4158b8be6edd3444dd9acb03b5bf773 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 03:00:53 -0800 Subject: [PATCH 67/93] Automatic changelog generation for PR #41860 [ci skip] --- html/changelogs/AutoChangeLog-pr-41860.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41860.yml diff --git a/html/changelogs/AutoChangeLog-pr-41860.yml b/html/changelogs/AutoChangeLog-pr-41860.yml new file mode 100644 index 00000000000..9d3e01cd84b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41860.yml @@ -0,0 +1,4 @@ +author: "subject217" +delete-after: True +changes: + - admin: "Admin PMs are now multi-line text prompts, making it easier to write big admin PMs." From 277c8c078c49f4dfac8cd65e56894da36fe6e22c Mon Sep 17 00:00:00 2001 From: coiax Date: Sun, 9 Dec 2018 13:29:42 +0000 Subject: [PATCH 68/93] Gibs now rot and generate miasma (#41782) * Gibs now rot and generate miasma :cl: coiax add: Gibs will now rot if not cleaned, and produce small amounts of miasma, approximately equal to a quarter of a corpse. /:cl: Miasma is fun. Gives the janitor more of a reason to do work. It will only become dangerous if you have a lot of gibs in a small space. So better keep those Hopline shutters open. * Rot component, for things that rot * Whoops * No longer processes, so doesn't need to stop --- code/__DEFINES/atmospherics.dm | 3 + code/datums/components/rot.dm | 60 +++++++++++++++++++ .../effects/decals/cleanable/humans.dm | 12 ++++ code/modules/mob/living/carbon/life.dm | 34 +---------- tgstation.dme | 1 + 5 files changed, 77 insertions(+), 33 deletions(-) create mode 100644 code/datums/components/rot.dm diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 8762a06221b..5ded1c469c8 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -298,3 +298,6 @@ GLOBAL_LIST_INIT(pipe_paint_colors, list( "violet" = rgb(64,0,128), "yellow" = rgb(255,198,0) )) + +#define MIASMA_CORPSE_MOLES 0.02 +#define MIASMA_GIBS_MOLES 0.005 diff --git a/code/datums/components/rot.dm b/code/datums/components/rot.dm new file mode 100644 index 00000000000..12fa99cdd5c --- /dev/null +++ b/code/datums/components/rot.dm @@ -0,0 +1,60 @@ +/datum/component/rot + var/amount = 1 + +/datum/component/rot/Initialize(new_amount) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + + if(new_amount) + amount = new_amount + + START_PROCESSING(SSprocessing, src) + +/datum/component/rot/process() + var/atom/A = parent + + var/turf/open/T = get_turf(A) + if(!istype(T)) + return + + var/datum/gas_mixture/air = T.return_air() + var/list/cached_gases = air.gases + + ASSERT_GAS(/datum/gas/miasma, air) + cached_gases[/datum/gas/miasma][MOLES] += amount + T.air_update_turf() + +/datum/component/rot/corpse + amount = MIASMA_CORPSE_MOLES + +/datum/component/rot/corpse/Initialize() + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + . = ..() + +/datum/component/rot/corpse/process() + var/mob/living/carbon/human/H = parent + if(H.stat != DEAD) + qdel(src) + return + + // Wait a bit before decaying + if(world.time - H.timeofdeath < 2 MINUTES) + return + + // Properly stored corpses shouldn't create miasma + if(istype(H.loc, /obj/structure/closet/crate/coffin)|| istype(H.loc, /obj/structure/closet/body_bag) || istype(H.loc, /obj/structure/bodycontainer)) + return + + // No decay if formaldehyde in corpse or when the corpse is charred + if(H.reagents.has_reagent("formaldehyde", 15) || H.has_trait(TRAIT_HUSK)) + return + + // Also no decay if corpse chilled or not organic/undead + if(H.bodytemperature <= T0C-10 || (!(MOB_ORGANIC in H.mob_biotypes) && !(MOB_UNDEAD in H.mob_biotypes))) + return + + ..() + +/datum/component/rot/gibs + amount = MIASMA_GIBS_MOLES diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index cdbba71c930..802a5bca4a3 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -54,9 +54,20 @@ random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") mergeable_decal = FALSE + var/already_rotting = FALSE + /obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases) . = ..() reagents.add_reagent("liquidgibs", 5) + if(already_rotting) + start_rotting(rename=FALSE) + else + addtimer(CALLBACK(src, .proc/start_rotting), 2 MINUTES) + +/obj/effect/decal/cleanable/blood/gibs/proc/start_rotting(rename=TRUE) + name = "rotting [initial(name)]" + desc += " It smells terrible." + AddComponent(/datum/component/rot/gibs) /obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target) return @@ -108,6 +119,7 @@ name = "old rotting gibs" desc = "Space Jesus, why didn't anyone clean this up? It smells terrible." bloodiness = 0 + already_rotting = TRUE /obj/effect/decal/cleanable/blood/gibs/old/Initialize(mapload, list/datum/disease/diseases) . = ..() diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index c5046329189..3285e1ac63c 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -33,7 +33,7 @@ if(stat == DEAD) stop_sound_channel(CHANNEL_HEARTBEAT) - rot() + LoadComponent(/datum/component/rot/corpse) //Updates the number of stored chemicals for powers handle_changeling() @@ -303,38 +303,6 @@ if(!.) return FALSE //to differentiate between no internals and active, but empty internals -// Make corpses rot, emitting miasma -/mob/living/carbon/proc/rot() - // Properly stored corpses shouldn't create miasma - if(istype(loc, /obj/structure/closet/crate/coffin)|| istype(loc, /obj/structure/closet/body_bag) || istype(loc, /obj/structure/bodycontainer)) - return - - // No decay if formaldehyde in corpse or when the corpse is charred - if(reagents.has_reagent("formaldehyde", 15) || has_trait(TRAIT_HUSK)) - return - - // Also no decay if corpse chilled or not organic/undead - if(bodytemperature <= T0C-10 || (!(MOB_ORGANIC in mob_biotypes) && !(MOB_UNDEAD in mob_biotypes))) - return - - // Wait a bit before decaying - if(world.time - timeofdeath < 1200) - return - - var/deceasedturf = get_turf(src) - - // Closed turfs don't have any air in them, so no gas building up - if(!istype(deceasedturf,/turf/open)) - return - - var/turf/open/miasma_turf = deceasedturf - - var/list/cached_gases = miasma_turf.air.gases - - ASSERT_GAS(/datum/gas/miasma, miasma_turf.air) - cached_gases[/datum/gas/miasma][MOLES] += 0.02 - miasma_turf.air_update_turf() - /mob/living/carbon/proc/handle_blood() return diff --git a/tgstation.dme b/tgstation.dme index e35878932c9..556b1a96c89 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -358,6 +358,7 @@ #include "code\datums\components\radioactive.dm" #include "code\datums\components\remote_materials.dm" #include "code\datums\components\riding.dm" +#include "code\datums\components\rot.dm" #include "code\datums\components\rotation.dm" #include "code\datums\components\signal_redirect.dm" #include "code\datums\components\slippery.dm" From 19bf8145a74a11511e232248e6cdde9f80c4d201 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 05:29:45 -0800 Subject: [PATCH 69/93] Automatic changelog generation for PR #41782 [ci skip] --- html/changelogs/AutoChangeLog-pr-41782.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41782.yml diff --git a/html/changelogs/AutoChangeLog-pr-41782.yml b/html/changelogs/AutoChangeLog-pr-41782.yml new file mode 100644 index 00000000000..c6f75d1ae4f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41782.yml @@ -0,0 +1,5 @@ +author: "coiax" +delete-after: True +changes: + - rscadd: "Gibs will now rot if not cleaned, and produce small amounts of miasma, approximately +equal to a quarter of a corpse." From 995bdfaab10e67e9fd3dc8fe90869d3fc3290179 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 05:37:10 -0800 Subject: [PATCH 70/93] Automatic changelog generation for PR #41848 [ci skip] --- html/changelogs/AutoChangeLog-pr-41848.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41848.yml diff --git a/html/changelogs/AutoChangeLog-pr-41848.yml b/html/changelogs/AutoChangeLog-pr-41848.yml new file mode 100644 index 00000000000..da69f72c4ab --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41848.yml @@ -0,0 +1,4 @@ +author: "Swindly" +delete-after: True +changes: + - bugfix: "Fixed repair droids not damaging mechs when the mech has a short circuit." From b376c7d039be99c867e3212a669da479964de27e Mon Sep 17 00:00:00 2001 From: XDTM Date: Sun, 9 Dec 2018 14:50:12 +0100 Subject: [PATCH 71/93] Adds the Ligament Hook and Ligament Reinforcement bioware surgeries (#41842) * Adds the Ligament Hook and Ligament Reinforcement bioware surgeries * techweb * missing define --- code/__DEFINES/mobs.dm | 1 + code/__DEFINES/traits.dm | 2 + .../carbon/human/species_types/corporate.dm | 2 +- .../carbon/human/species_types/synths.dm | 4 +- .../research/designs/medical_designs.dm | 16 ++++++++ code/modules/research/techweb/all_nodes.dm | 2 +- .../surgery/advanced/bioware/ligament_hook.dm | 41 +++++++++++++++++++ .../bioware/ligament_reinforcement.dm | 41 +++++++++++++++++++ code/modules/surgery/bodyparts/bodyparts.dm | 4 +- tgstation.dme | 2 + 10 files changed, 109 insertions(+), 6 deletions(-) create mode 100644 code/modules/surgery/advanced/bioware/ligament_hook.dm create mode 100644 code/modules/surgery/advanced/bioware/ligament_reinforcement.dm diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 4fe0b9c6be7..8ac2621fa9d 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -117,6 +117,7 @@ #define BIOWARE_GENERIC "generic" #define BIOWARE_NERVES "nerves" #define BIOWARE_CIRCULATION "circulation" +#define BIOWARE_LIGAMENTS "ligaments" //Health hud screws for carbon mobs #define SCREWYHUD_NONE 0 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index c45b41afa84..304a08224ec 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -35,6 +35,8 @@ #define TRAIT_NOHUNGER "no_hunger" #define TRAIT_EASYDISMEMBER "easy_dismember" #define TRAIT_LIMBATTACHMENT "limb_attach" +#define TRAIT_NOLIMBDISABLE "no_limb_disable" +#define TRAIT_EASYLIMBDISABLE "easy_limb_disable" #define TRAIT_TOXINLOVER "toxinlover" #define TRAIT_NOBREATH "no_breath" #define TRAIT_ANTIMAGIC "anti_magic" diff --git a/code/modules/mob/living/carbon/human/species_types/corporate.dm b/code/modules/mob/living/carbon/human/species_types/corporate.dm index f2d26afc59f..56fdec3c5ae 100644 --- a/code/modules/mob/living/carbon/human/species_types/corporate.dm +++ b/code/modules/mob/living/carbon/human/species_types/corporate.dm @@ -16,5 +16,5 @@ blacklisted = 1 use_skintones = 0 species_traits = list(NOBLOOD,EYECOLOR) - inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER) + inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER) sexes = 0 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 51c23fd21ae..7c27c09ec80 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -4,7 +4,7 @@ say_mod = "beep boops" //inherited from a user's real species sexes = 0 species_traits = list(NOTRANSSTING) //all of these + whatever we inherit from the real species - inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER,TRAIT_NOBREATH) + inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER,TRAIT_NOBREATH) inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) dangerous_existence = 1 blacklisted = 1 @@ -12,7 +12,7 @@ damage_overlay_type = "synth" limbs_id = "synth" var/list/initial_species_traits = list(NOTRANSSTING) //for getting these values back for assume_disguise() - var/list/initial_inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER,TRAIT_NOBREATH) + var/list/initial_inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER,TRAIT_NOBREATH) var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 97b0cf245ce..b53830b0a75 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -548,6 +548,22 @@ surgery = /datum/surgery/advanced/bioware/vein_threading research_icon_state = "surgery_chest" +/datum/design/surgery/ligament_hook + name = "Ligament Hook" + desc = "A surgical procedure which reshapes the connections between torso and limbs, making it so limbs can be attached manually if severed. \ + However this weakens the connection, making them easier to detach as well." + id = "surgery_ligament_hook" + surgery = /datum/surgery/advanced/bioware/ligament_hook + research_icon_state = "surgery_chest" + +/datum/design/surgery/ligament_reinforcement + name = "Ligament Reinforcement" + desc = "A surgical procedure which adds a protective tissue and bone cage around the connections between the torso and limbs, preventing dismemberment. \ + However, the nerve connections as a result are more easily interrupted, making it easier to disable limbs with damage." + id = "surgery_ligament_reinforcement" + surgery = /datum/surgery/advanced/bioware/ligament_reinforcement + research_icon_state = "surgery_chest" + /datum/design/surgery/necrotic_revival name = "Necrotic Revival" desc = "An experimental surgical procedure that stimulates the growth of a Romerol tumor inside the patient's brain. Requires zombie powder or rezadone." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 28d93cd9b4c..78da1af2754 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -93,7 +93,7 @@ display_name = "Experimental Surgery" description = "When evolution isn't fast enough." prereq_ids = list("adv_surgery") - design_ids = list("surgery_revival","surgery_pacify","surgery_vein_thread","surgery_nerve_splice","surgery_nerve_ground","surgery_viral_bond") + design_ids = list("surgery_revival","surgery_pacify","surgery_vein_thread","surgery_nerve_splice","surgery_nerve_ground","surgery_ligament_hook","surgery_ligament_reinforcement","surgery_viral_bond") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) export_price = 5000 diff --git a/code/modules/surgery/advanced/bioware/ligament_hook.dm b/code/modules/surgery/advanced/bioware/ligament_hook.dm new file mode 100644 index 00000000000..9d464835988 --- /dev/null +++ b/code/modules/surgery/advanced/bioware/ligament_hook.dm @@ -0,0 +1,41 @@ +/datum/surgery/advanced/bioware/ligament_hook + name = "Ligament Hook" + desc = "A surgical procedure which reshapes the connections between torso and limbs, making it so limbs can be attached manually if severed. \ + However this weakens the connection, making them easier to detach as well." + steps = list(/datum/surgery_step/incise, + /datum/surgery_step/retract_skin, + /datum/surgery_step/clamp_bleeders, + /datum/surgery_step/incise, + /datum/surgery_step/incise, + /datum/surgery_step/reshape_ligaments, + /datum/surgery_step/close) + possible_locs = list(BODY_ZONE_CHEST) + bioware_target = BIOWARE_LIGAMENTS + +/datum/surgery_step/reshape_ligaments + name = "reshape ligaments" + accept_hand = TRUE + time = 125 + +/datum/surgery_step/reshape_ligaments/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] starts reshaping [target]'s ligaments into a hook-like shape.", "You start reshaping [target]'s ligaments into a hook-like shape.") + +/datum/surgery_step/reshape_ligaments/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] reshapes [target]'s ligaments into a connective hook!", "You reshape [target]'s ligaments into a connective hook!") + new /datum/bioware/hooked_ligaments(target) + return TRUE + +/datum/bioware/hooked_ligaments + name = "Hooked Ligaments" + desc = "The ligaments and nerve endings that connect the torso to the limbs are formed into a hook-like shape, so limbs can be attached without requiring surgery, but are easier to sever." + mod_type = BIOWARE_LIGAMENTS + +/datum/bioware/hooked_ligaments/on_gain() + ..() + owner.add_trait(TRAIT_LIMBATTACHMENT, "ligament_hook") + owner.add_trait(TRAIT_EASYDISMEMBER, "ligament_hook") + +/datum/bioware/hooked_ligaments/on_lose() + ..() + owner.remove_trait(TRAIT_LIMBATTACHMENT, "ligament_hook") + owner.remove_trait(TRAIT_EASYDISMEMBER, "ligament_hook") \ No newline at end of file diff --git a/code/modules/surgery/advanced/bioware/ligament_reinforcement.dm b/code/modules/surgery/advanced/bioware/ligament_reinforcement.dm new file mode 100644 index 00000000000..a5ab51e1adb --- /dev/null +++ b/code/modules/surgery/advanced/bioware/ligament_reinforcement.dm @@ -0,0 +1,41 @@ +/datum/surgery/advanced/bioware/ligament_reinforcement + name = "Ligament Reinforcement" + desc = "A surgical procedure which adds a protective tissue and bone cage around the connections between the torso and limbs, preventing dismemberment. \ + However, the nerve connections as a result are more easily interrupted, making it easier to disable limbs with damage." + steps = list(/datum/surgery_step/incise, + /datum/surgery_step/retract_skin, + /datum/surgery_step/clamp_bleeders, + /datum/surgery_step/incise, + /datum/surgery_step/incise, + /datum/surgery_step/reinforce_ligaments, + /datum/surgery_step/close) + possible_locs = list(BODY_ZONE_CHEST) + bioware_target = BIOWARE_LIGAMENTS + +/datum/surgery_step/reinforce_ligaments + name = "reinforce ligaments" + accept_hand = TRUE + time = 125 + +/datum/surgery_step/reinforce_ligaments/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] starts reinforce [target]'s ligaments.", "You start reinforcing [target]'s ligaments.") + +/datum/surgery_step/reinforce_ligaments/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] reinforces [target]'s ligaments!", "You reinforce [target]'s ligaments!") + new /datum/bioware/reinforced_ligaments(target) + return TRUE + +/datum/bioware/reinforced_ligaments + name = "Reinforced Ligaments" + desc = "The ligaments and nerve endings that connect the torso to the limbs are protected by a mix of bone and tissues, and are much harder to separate from the body, but are also easier to disable." + mod_type = BIOWARE_LIGAMENTS + +/datum/bioware/reinforced_ligaments/on_gain() + ..() + owner.add_trait(TRAIT_NODISMEMBER, "reinforced_ligaments") + owner.add_trait(TRAIT_EASYLIMBDISABLE, "reinforced_ligaments") + +/datum/bioware/reinforced_ligaments/on_lose() + ..() + owner.remove_trait(TRAIT_NODISMEMBER, "reinforced_ligaments") + owner.remove_trait(TRAIT_EASYLIMBDISABLE, "reinforced_ligaments") \ No newline at end of file diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 1c5f9b394b8..01a38161dda 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -222,9 +222,9 @@ /obj/item/bodypart/proc/is_disabled() if(has_trait(TRAIT_PARALYSIS)) return BODYPART_DISABLED_PARALYSIS - if(can_dismember() && !owner.has_trait(TRAIT_NODISMEMBER)) + if(can_dismember() && !owner.has_trait(TRAIT_NOLIMBDISABLE)) . = disabled //inertia, to avoid limbs healing 0.1 damage and being re-enabled - if((get_damage(TRUE) >= max_damage)) + if((get_damage(TRUE) >= max_damage) || (owner.has_trait(TRAIT_EASYLIMBDISABLE) && (get_damage(TRUE) >= (max_damage * 0.6)))) //Easy limb disable disables the limb at 40% health instead of 0% return BODYPART_DISABLED_DAMAGE if(disabled && (get_damage(TRUE) <= (max_damage * 0.5))) return BODYPART_NOT_DISABLED diff --git a/tgstation.dme b/tgstation.dme index 556b1a96c89..610f4aee7a8 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2630,6 +2630,8 @@ #include "code\modules\surgery\advanced\bioware\bioware.dm" #include "code\modules\surgery\advanced\bioware\bioware_surgery.dm" #include "code\modules\surgery\advanced\bioware\experimental_dissection.dm" +#include "code\modules\surgery\advanced\bioware\ligament_hook.dm" +#include "code\modules\surgery\advanced\bioware\ligament_reinforcement.dm" #include "code\modules\surgery\advanced\bioware\nerve_grounding.dm" #include "code\modules\surgery\advanced\bioware\nerve_splicing.dm" #include "code\modules\surgery\advanced\bioware\vein_threading.dm" From d0c8f9a9e380944a70a4a9c18bbef4becb0513bb Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 05:50:15 -0800 Subject: [PATCH 72/93] Automatic changelog generation for PR #41842 [ci skip] --- html/changelogs/AutoChangeLog-pr-41842.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41842.yml diff --git a/html/changelogs/AutoChangeLog-pr-41842.yml b/html/changelogs/AutoChangeLog-pr-41842.yml new file mode 100644 index 00000000000..53dcb07f635 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41842.yml @@ -0,0 +1,7 @@ +author: "XDTM" +delete-after: True +changes: + - rscadd: "Added two new surgery procedures, under the Experimental Surgery techweb node." + - rscadd: "Ligament Hook makes it so you can attach limbs manually (like skeletons) but makes dismemberment more likely as well." + - rscadd: "Ligament Reinforcement prevents dismemberment, but makes limbs easier to disable through damage." + - tweak: "Golem limbs can now be disabled, although they are still undismemberable." From ca3d18cf9e48ff0db2878027eca5b05dcbc6af6d Mon Sep 17 00:00:00 2001 From: skoglol <33292112+kriskog@users.noreply.github.com> Date: Sun, 9 Dec 2018 15:01:46 +0100 Subject: [PATCH 73/93] Adds recycler check on xenobio console interaction (#41851) * Adds check to fix box connection. * and again * comment --- code/modules/research/xenobiology/xenobio_camera.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index ace53a4df87..058542d965e 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -118,8 +118,14 @@ RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, .proc/XenoSlimeClickShift) RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, .proc/XenoTurfClickShift) RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, .proc/XenoTurfClickCtrl) - RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, .proc/XenoMonkeyClickCtrl) + RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, .proc/XenoMonkeyClickCtrl) + //Checks for recycler on every interact, prevents issues with load order on certain maps. + if(!connected_recycler) + for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers) + if(get_area(recycler.loc) == get_area(loc)) + connected_recycler = recycler + connected_recycler.connected += src /obj/machinery/computer/camera_advanced/xenobio/remove_eye_control(mob/living/user) UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL) From c96e209f7e2c5512917c3c0af005a5bd465d438b Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 06:01:49 -0800 Subject: [PATCH 74/93] Automatic changelog generation for PR #41851 [ci skip] --- html/changelogs/AutoChangeLog-pr-41851.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41851.yml diff --git a/html/changelogs/AutoChangeLog-pr-41851.yml b/html/changelogs/AutoChangeLog-pr-41851.yml new file mode 100644 index 00000000000..174515e2144 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41851.yml @@ -0,0 +1,4 @@ +author: "Skoglol" +delete-after: True +changes: + - bugfix: "Xenobio consoles that didn't connect to recycler in the xenobio lab should now do so." From 1392b4ddb33237f56e72a4f792f2b8f2122f6334 Mon Sep 17 00:00:00 2001 From: tralezab Date: Sun, 9 Dec 2018 12:13:34 -0800 Subject: [PATCH 75/93] defines and soultapping doesn't damage you if you have missing health --- code/modules/spells/spell_types/soultap.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/spells/spell_types/soultap.dm b/code/modules/spells/spell_types/soultap.dm index 4405e1d0e94..e9cc7acdd21 100644 --- a/code/modules/spells/spell_types/soultap.dm +++ b/code/modules/spells/spell_types/soultap.dm @@ -1,7 +1,8 @@ +#define HEALTH_LOST_PER_SOUL_TAP 20 //SOUL TAP!// //Trades 20 max health for a refresh on all of your spells. I was considering making it depend on the cooldowns of your spells, but I want to support "Big spell wizard" with this loadout. -//the two spells that sound most problematic with this is mindswap and lichdom, but soul tap requires clothes for mindswap and lichdom takes your soul, so you wouldn't be able to tap at all. +//the two spells that sound most problematic with this is mindswap and lichdom, but soul tap requires clothes for mindswap and lichdom takes your soul. /obj/effect/proc_holder/spell/self/tap name = "Soul Tap" @@ -21,12 +22,12 @@ to_chat(user, "You do not possess a soul to tap into!") return to_chat(user, "Your body feels drained and there is a burning pain in your chest.") - user.maxHealth -= 20 - user.health = min(user.health - 20, user.maxHealth) + user.maxHealth -= HEALTH_LOST_PER_SOUL_TAP + user.health = min(user.health, user.maxHealth) if(user.maxHealth <= 0) to_chat(user, "Your weakened soul is completely consumed by the tap!") user.mind.hasSoul = FALSE for(var/obj/effect/proc_holder/spell/spell in user.mind.spell_list) spell.charge_counter = spell.charge_max spell.recharging = FALSE - spell.update_icon() + spell.update_icon() \ No newline at end of file From 376a6eddc63890333851e2c1ba521963b6be3e55 Mon Sep 17 00:00:00 2001 From: monster860 Date: Sun, 9 Dec 2018 15:29:31 -0500 Subject: [PATCH 76/93] Makes teleports use forceMove by default --- code/datums/helper_datums/teleport.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index b4bc3c9ce74..b8e556959b4 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -8,7 +8,7 @@ // forceMove: if false, teleport will use Move() proc (dense objects will prevent teleportation) // no_effects: disable the default effectin/effectout of sparks // forced: whether or not to ignore no_teleport -/proc/do_teleport(atom/movable/teleatom, atom/destination, precision=null, forceMove = FALSE, datum/effect_system/effectin=null, datum/effect_system/effectout=null, asoundin=null, asoundout=null, no_effects=FALSE, channel=TELEPORT_CHANNEL_BLUESPACE, forced = FALSE) +/proc/do_teleport(atom/movable/teleatom, atom/destination, precision=null, forceMove = TRUE, datum/effect_system/effectin=null, datum/effect_system/effectout=null, asoundin=null, asoundout=null, no_effects=FALSE, channel=TELEPORT_CHANNEL_BLUESPACE, forced = FALSE) // teleporting most effects just deletes them var/static/list/delete_atoms = typecacheof(list( /obj/effect, From 4eeab6634cfc507182423e28f50f4249239cf598 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Sun, 9 Dec 2018 21:35:28 +0100 Subject: [PATCH 77/93] [Ready] Makes kitchen cold rooms actually cold (Metastation) (#41799) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cl Denton tweak: Metastation's kitchen cold room is now really cold! Make sure to wear warm clothing. tweak: The kitchen clothing vendor now stocks two winter jackets by default. tweak: Goats are now fine with temperatures as low as 180°K. This is so that Pete doesn't freeze to death inside the cold room. code: Added a kitchen area subtype for cold rooms and adjusted chef CQC to work inside it (no gameplay changes). /cl You know how it's called a cold room, looks like a cold room but is actually just another storage room? I made the Meta kitchen cold room spawn at -80°C and added a freezer to it. Originally I wanted to pick a more realistic temperature (like -25°C), but the way body temperature works means that you'd have to sit inside it for minutes to feel an effect. Now, you can store bodies inside it, trap people and let them freeze to death, or lower the temperature even further and use it as a ghetto cryo chamber. Also: Kitchen clothing vendor gets two winter jackets and goats survive at lower temperatures (so Pete doesn't just die). --- _maps/map_files/MetaStation/MetaStation.dmm | 388 ++++++++---------- code/__DEFINES/atmospherics.dm | 2 +- code/game/area/Space_Station_13_areas.dm | 4 + .../turfs/simulated/floor/plasteel_floor.dm | 13 +- .../atmospherics/machinery/airalarm.dm | 4 +- .../components/unary_devices/thermomachine.dm | 7 + .../simple_animal/friendly/farm_animals.dm | 1 + code/modules/vending/wardrobes.dm | 3 +- icons/turf/areas.dmi | Bin 39875 -> 39963 bytes 9 files changed, 206 insertions(+), 216 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 354d4b9e1a4..003c69c54ec 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -17,12 +17,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plating, /area/maintenance/starboard) -"aae" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard) "aaf" = ( /obj/structure/lattice, /turf/open/space, @@ -38191,6 +38185,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/starboard) "bve" = ( @@ -47393,22 +47388,6 @@ dir = 5 }, /area/crew_quarters/kitchen) -"bNz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria{ - dir = 5 - }, -/area/crew_quarters/kitchen) -"bNA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/cafeteria{ - dir = 5 - }, -/area/crew_quarters/kitchen) "bNB" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -47433,24 +47412,30 @@ pixel_x = -27 }, /obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bNE" = ( /obj/structure/sink/kitchen{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28 }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bNF" = ( /obj/machinery/gibber, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bNG" = ( /obj/structure/kitchenspike, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bNI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -48039,7 +48024,6 @@ }, /area/crew_quarters/kitchen) "bOU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, /obj/item/book/manual/wiki/cooking_to_serve_man, /turf/open/floor/plasteel/cafeteria{ @@ -48066,8 +48050,8 @@ /area/crew_quarters/kitchen) "bOX" = ( /obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bOY" = ( /obj/structure/sign/warning/vacuum/external{ pixel_x = 32 @@ -48082,14 +48066,15 @@ name = "CondiMaster Neo"; pixel_x = -4 }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bPa" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /mob/living/simple_animal/hostile/retaliate/goat{ name = "Pete" }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bPb" = ( /obj/structure/table/wood, /obj/structure/mirror{ @@ -48811,20 +48796,17 @@ }, /area/crew_quarters/kitchen) "bQC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 2 + }, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, /area/crew_quarters/kitchen) "bQD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -48882,22 +48864,12 @@ /area/crew_quarters/kitchen) "bQI" = ( /obj/machinery/vending/wardrobe/chef_wardrobe, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bQJ" = ( -/obj/effect/landmark/start/cook, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"bQK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bQN" = ( /obj/machinery/airalarm{ dir = 8; @@ -49441,15 +49413,15 @@ }, /area/crew_quarters/kitchen) "bRU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 5 }, /obj/structure/cable/yellow{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -49458,12 +49430,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -49476,13 +49448,15 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/turf/open/floor/plasteel/showroomfloor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, /area/crew_quarters/kitchen) "bRX" = ( /obj/structure/disposalpipe/segment{ @@ -49491,25 +49465,18 @@ /obj/item/radio/intercom{ pixel_y = -29 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bRY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -49517,8 +49484,15 @@ c_tag = "Kitchen - Coldroom"; dir = 1 }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/airalarm/kitchen_cold_room{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bRZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49527,26 +49501,24 @@ pixel_y = -26 }, /obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bSa" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/pipe/manifold4w/dark/visible, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bSc" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -49951,69 +49923,66 @@ /turf/closed/wall, /area/hydroponics) "bSX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"bSY" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/pipe/manifold/dark/visible{ + icon_state = "manifold-2"; dir = 8 }, +/turf/open/floor/plasteel/kitchen_coldroom, +/area/crew_quarters/kitchen/coldroom) +"bSY" = ( +/obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/kitchen_coldroom, +/area/crew_quarters/kitchen/coldroom) "bSZ" = ( /obj/machinery/door/airlock/maintenance{ name = "Kitchen Maintenance"; req_access_txt = "28" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/starboard) "bTa" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/landmark/blobstart, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/starboard) "bTb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "2-8" }, /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plating, /area/maintenance/starboard) "bTc" = ( @@ -50051,9 +50020,6 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plating, /area/maintenance/starboard) "bTf" = ( @@ -50609,36 +50575,27 @@ /turf/open/floor/plasteel, /area/hydroponics) "bUp" = ( -/obj/structure/closet{ - name = "spare parts locker" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/item/rack_parts, -/obj/item/rack_parts, -/obj/item/wrench, /obj/structure/window/reinforced{ dir = 4 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom{ + dir = 1 + }, +/turf/open/floor/plasteel/kitchen_coldroom, +/area/crew_quarters/kitchen/coldroom) "bUq" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/machinery/door/window/eastright{ dir = 1; name = "Kitchen Delivery"; req_access_txt = "28" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) +/turf/open/floor/plasteel/kitchen_coldroom, +/area/crew_quarters/kitchen/coldroom) "bUr" = ( /obj/machinery/navbeacon{ codes_txt = "delivery;dir=8"; @@ -50650,27 +50607,23 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/bot{ dir = 1 }, /turf/open/floor/plasteel{ dir = 1 }, -/area/crew_quarters/kitchen) +/area/crew_quarters/kitchen/coldroom) "bUs" = ( /obj/structure/disposalpipe/sorting/mail{ dir = 2; sortType = 20 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -50684,8 +50637,8 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -50699,9 +50652,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plating, /area/maintenance/starboard) "bUv" = ( @@ -50711,9 +50661,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -51260,7 +51207,7 @@ icon_state = "1-2" }, /turf/open/floor/plating, -/area/hallway/secondary/service) +/area/maintenance/starboard) "bVB" = ( /obj/structure/rack, /obj/item/extinguisher, @@ -53220,11 +53167,9 @@ /area/hydroponics) "bZx" = ( /obj/machinery/icecream_vat, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "bZy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock{ @@ -53233,7 +53178,7 @@ req_one_access_txt = "25;26;35;28" }, /turf/open/floor/plating, -/area/hallway/secondary/service) +/area/maintenance/starboard) "bZB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -53254,7 +53199,7 @@ icon_state = "1-2" }, /turf/open/floor/plating, -/area/maintenance/disposal/incinerator) +/area/maintenance/starboard) "bZE" = ( /turf/closed/wall, /area/maintenance/disposal/incinerator) @@ -56293,7 +56238,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/janitor) +/area/maintenance/starboard) "cfl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -56969,7 +56914,6 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ icon_state = "2-8" }, @@ -56978,8 +56922,11 @@ pixel_x = 28 }, /obj/structure/reagent_dispensers/cooking_oil, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "cgG" = ( /obj/structure/closet/emcloset/anchored, /obj/effect/turf_decal/stripes/line{ @@ -78138,8 +78085,9 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "dbn" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "dbo" = ( /obj/machinery/light/small{ dir = 8 @@ -83028,6 +82976,17 @@ /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) +"fwt" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "fDD" = ( /obj/machinery/light_switch{ pixel_y = -25 @@ -83122,6 +83081,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/secondary) +"grA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/crew_quarters/kitchen) "gtr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -83797,14 +83764,14 @@ /turf/closed/wall, /area/engine/storage_shared) "oxX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, /obj/structure/closet, /obj/item/flashlight, /obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plating, -/area/maintenance/disposal/incinerator) +/area/maintenance/starboard) "oJW" = ( /obj/machinery/camera{ c_tag = "Engineering - Foyer - Shared Storage"; @@ -83870,7 +83837,6 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard) "pzj" = ( @@ -83938,6 +83904,17 @@ }, /turf/open/floor/plating, /area/maintenance/aft/secondary) +"pVb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/crew_quarters/kitchen) "pYC" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -84096,6 +84073,12 @@ }, /turf/open/floor/plasteel, /area/engine/break_room) +"rFZ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/crew_quarters/kitchen/coldroom) "rGl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -84127,6 +84110,9 @@ /obj/machinery/vending/snack/random, /turf/open/floor/plasteel, /area/maintenance/department/science) +"rUK" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen/coldroom) "rWg" = ( /obj/item/twohanded/required/kirbyplants/random, /obj/machinery/airalarm{ @@ -84338,22 +84324,6 @@ }, /turf/open/floor/plasteel, /area/maintenance/department/science) -"uHc" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"uJU" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard) "uLY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -118220,7 +118190,7 @@ bKf bLK bNy bOS -bQB +pVb bRR bST bUg @@ -118475,7 +118445,7 @@ bHb bMP bKg bLL -bNz +bLL bOT bQC bLK @@ -118732,7 +118702,7 @@ bHc bIw bKh bLM -bNA +bLK bOU bQD bRS @@ -119249,7 +119219,7 @@ bLN bLK ddE bQF -bNz +grA bSV bUk bVv @@ -120273,7 +120243,7 @@ bFs bHd byC bKl -bKe +rUK bND bOX bQI @@ -120530,7 +120500,7 @@ bwX bHe dCU bKm -bKe +rUK bNE dbn dbn @@ -120787,14 +120757,14 @@ bFt bHf byC bKn -bKe +rUK bNF bOZ bQJ bRZ -bKe -bKe -bKe +rUK +rUK +rUK bST bST bST @@ -121044,14 +121014,14 @@ bwX bHe byC bKo -bKe -bNE +rUK +fwt bPa -bQK +rFZ bSa bSX bUp -bKe +rUK bWV bYm bZw @@ -121301,14 +121271,14 @@ bFu bFr byC bKp -bKe +rUK bNG bNG bZx cgF bSY bUq -bKe +rUK diw bYn diz @@ -121558,14 +121528,14 @@ bFv bHg dii byN -bKe -bKe -bKe -bKe -bKe +rUK +rUK +rUK +rUK +rUK bSZ bUr -bKe +rUK bST bST bST @@ -123106,11 +123076,11 @@ bPg bHl bSc eoK -uHc -uJU -uJU +pCV +pCV +pCV pvA -aae +apf oxX bcf xdW diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 5ded1c469c8..11b742a9152 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -154,7 +154,7 @@ #define TCOMMS_ATMOS "n2=100;TEMP=80" //-193,15°C telecommunications. also used for xenobiology slime killrooms #define AIRLESS_ATMOS "TEMP=2.7" //space #define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" //-93.15°C snow and ice turfs -#define KITCHEN_COLDROOM_ATMOS "o2=22;n2=82;TEMP=223.15" //-50°C kitchen coldroom +#define KITCHEN_COLDROOM_ATMOS "o2=33;n2=124;TEMP=193.15" //-80°C kitchen coldroom; higher amount of mol to reach about 101.3 kpA #define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370" //used in the holodeck burn test program //ATMOSPHERICS DEPARTMENT GAS TANK TURFS diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index dd2f9ad9e21..2cf7bcff92e 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -379,6 +379,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Kitchen" icon_state = "kitchen" +/area/crew_quarters/kitchen/coldroom + name = "Kitchen Cold Room" + icon_state = "kitchen_cold" + /area/crew_quarters/bar name = "Bar" icon_state = "bar" diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm index e0e1927aa85..2fd612f392b 100644 --- a/code/game/turfs/simulated/floor/plasteel_floor.dm +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -78,14 +78,21 @@ icon_state = "solarpanel" - /turf/open/floor/plasteel/freezer icon_state = "freezerfloor" -/turf/open/floor/plasteel/freezer/kitchen_coldroom - initial_gas_mix = KITCHEN_COLDROOM_ATMOS + /turf/open/floor/plasteel/freezer/airless initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/plasteel/kitchen_coldroom + name = "cold room floor" + initial_gas_mix = KITCHEN_COLDROOM_ATMOS + +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor + icon_state = "freezerfloor" + + /turf/open/floor/plasteel/grimy icon_state = "grimy" tiled_dirt = FALSE diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index f0c8f92da96..6de0e9fc84c 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -121,10 +121,10 @@ /datum/gas/pluoxium = new/datum/tlv/no_checks ) -/obj/machinery/airalarm/kitchen_cold_room // Copypasta: to check temperatures. +/obj/machinery/airalarm/kitchen_cold_room // Kitchen cold rooms start off at -80°C or 193.15°K. TLV = list( "pressure" = new/datum/tlv(ONE_ATMOSPHERE * 0.8, ONE_ATMOSPHERE* 0.9, ONE_ATMOSPHERE * 1.1, ONE_ATMOSPHERE * 1.2), // kPa - "temperature" = new/datum/tlv(T0C-73.15, T0C-63.15, T0C, T0C+10), + "temperature" = new/datum/tlv(T0C-273.15, T0C-100, T0C-60, T0C), /datum/gas/oxygen = new/datum/tlv(16, 19, 135, 140), // Partial pressure, kpa /datum/gas/nitrogen = new/datum/tlv(-1, -1, 1000, 1000), /datum/gas/carbon_dioxide = new/datum/tlv(-1, -1, 5, 10), diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index 76afa14e6b7..16bf857de7c 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -178,6 +178,13 @@ if(target_temperature == initial(target_temperature)) target_temperature = min_temperature +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom + name = "cold room freezer" + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom/Initialize() + . = ..() + target_temperature = T0C-80 + /obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts() ..() var/L diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index a285a0b121f..d3896275f73 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -23,6 +23,7 @@ attack_sound = 'sound/weapons/punch1.ogg' health = 40 maxHealth = 40 + minbodytemp = 180 melee_damage_lower = 1 melee_damage_upper = 2 environment_smash = ENVIRONMENT_SMASH_NONE diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 8ddd8ed3003..869792498fd 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -240,7 +240,8 @@ /obj/item/clothing/suit/toggle/chef = 1, /obj/item/clothing/under/rank/chef = 1, /obj/item/clothing/head/chefhat = 1, - /obj/item/reagent_containers/glass/rag = 1) + /obj/item/reagent_containers/glass/rag = 1, + /obj/item/clothing/suit/hooded/wintercoat = 2) refill_canister = /obj/item/vending_refill/wardrobe/chef_wardrobe payment_department = ACCOUNT_SRV /obj/item/vending_refill/wardrobe/chef_wardrobe diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index d4c46b69e86519c2294aa1f8320b64949c061efc..25048353923084a5bacf5117345d00750b591032 100644 GIT binary patch delta 11276 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 From cdeda8c36be234e932ba7404d4733ded8540b6bb Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 12:35:30 -0800 Subject: [PATCH 78/93] Automatic changelog generation for PR #41799 [ci skip] --- html/changelogs/AutoChangeLog-pr-41799.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41799.yml diff --git a/html/changelogs/AutoChangeLog-pr-41799.yml b/html/changelogs/AutoChangeLog-pr-41799.yml new file mode 100644 index 00000000000..fa5687764fa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41799.yml @@ -0,0 +1,7 @@ +author: "Denton" +delete-after: True +changes: + - tweak: "Metastation's kitchen cold room is now really cold! Make sure to wear warm clothing." + - tweak: "The kitchen clothing vendor now stocks two winter jackets by default." + - tweak: "Goats are now fine with temperatures as low as 180°K. This is so that Pete doesn't freeze to death inside the cold room." + - code_imp: "Added a kitchen area subtype for cold rooms and adjusted chef CQC to work inside it (no gameplay changes)." From a7f59ece7213ba867aed13f87480cebc02b6fecc Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Sun, 9 Dec 2018 15:40:22 -0500 Subject: [PATCH 79/93] Fixes healing positional argument runtime --- code/modules/surgery/bodyparts/bodyparts.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 1c5f9b394b8..b90575e0ce2 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -136,7 +136,7 @@ //Return TRUE to get whatever mob this is in to update health. /obj/item/bodypart/proc/on_life() if(stamina_dam > DAMAGE_PRECISION) //DO NOT update health here, it'll be done in the carbon's life. - if(heal_damage(brute = 0, burn = 0, stamina = stam_heal_tick, null, updating_health = FALSE)) + if(heal_damage(0, 0, stam_heal_tick, null, FALSE)) . |= BODYPART_LIFE_UPDATE_HEALTH //Applies brute and burn damage to the organ. Returns 1 if the damage-icon states changed at all. From c323e8c898b1795e1b93c3bce297a674da38d6cc Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 13:04:39 -0800 Subject: [PATCH 80/93] Automatic changelog generation for PR #41879 [ci skip] --- html/changelogs/AutoChangeLog-pr-41879.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-41879.yml diff --git a/html/changelogs/AutoChangeLog-pr-41879.yml b/html/changelogs/AutoChangeLog-pr-41879.yml new file mode 100644 index 00000000000..308b55ad13b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-41879.yml @@ -0,0 +1,4 @@ +author: "monster860" +delete-after: True +changes: + - bugfix: "Teleports now go back to force-moving you instead of Move()" From 0026903857bd3a3aed2f8c7c2425f5f964e4e8c9 Mon Sep 17 00:00:00 2001 From: monster860 Date: Sun, 9 Dec 2018 16:08:21 -0500 Subject: [PATCH 81/93] Retarded TG Coder Teleport Debacle Fix Part 2 --- code/modules/antagonists/cult/runes.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index f44be97d2d3..4a6c3da348a 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -399,12 +399,12 @@ structure_check() searches for nearby cultist structures required for the invoca continue if(!A.anchored) movedsomething = TRUE - if(do_teleport(A, T, forceMove = TRUE, channel = TELEPORT_CHANNEL_CULT)) + if(do_teleport(A, target, forceMove = TRUE, channel = TELEPORT_CHANNEL_CULT)) movesuccess = TRUE if(movedsomething) ..() if(moveuserlater) - if(do_teleport(user, T, channel = TELEPORT_CHANNEL_CULT)) + if(do_teleport(user, target, channel = TELEPORT_CHANNEL_CULT)) movesuccess = TRUE if(movesuccess) visible_message("There is a sharp crack of inrushing air, and everything above the rune disappears!", null, "You hear a sharp crack.") From 67b0d335b48118cfa65d0e99416f31bf3d40d725 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Sun, 9 Dec 2018 21:17:16 +0000 Subject: [PATCH 82/93] Automatic changelog compile, [ci skip] --- html/changelog.html | 91 ++++++++++++++++++++++ html/changelogs/.all_changelog.yml | 76 ++++++++++++++++++ html/changelogs/AutoChangeLog-pr-41258.yml | 6 -- html/changelogs/AutoChangeLog-pr-41449.yml | 4 - html/changelogs/AutoChangeLog-pr-41644.yml | 4 - html/changelogs/AutoChangeLog-pr-41672.yml | 6 -- html/changelogs/AutoChangeLog-pr-41676.yml | 5 -- html/changelogs/AutoChangeLog-pr-41742.yml | 6 -- html/changelogs/AutoChangeLog-pr-41745.yml | 6 -- html/changelogs/AutoChangeLog-pr-41765.yml | 4 - html/changelogs/AutoChangeLog-pr-41767.yml | 4 - html/changelogs/AutoChangeLog-pr-41777.yml | 4 - html/changelogs/AutoChangeLog-pr-41779.yml | 4 - html/changelogs/AutoChangeLog-pr-41782.yml | 5 -- html/changelogs/AutoChangeLog-pr-41793.yml | 4 - html/changelogs/AutoChangeLog-pr-41799.yml | 7 -- html/changelogs/AutoChangeLog-pr-41800.yml | 4 - html/changelogs/AutoChangeLog-pr-41821.yml | 4 - html/changelogs/AutoChangeLog-pr-41833.yml | 4 - html/changelogs/AutoChangeLog-pr-41834.yml | 5 -- html/changelogs/AutoChangeLog-pr-41841.yml | 4 - html/changelogs/AutoChangeLog-pr-41842.yml | 7 -- html/changelogs/AutoChangeLog-pr-41848.yml | 4 - html/changelogs/AutoChangeLog-pr-41851.yml | 4 - html/changelogs/AutoChangeLog-pr-41856.yml | 4 - html/changelogs/AutoChangeLog-pr-41860.yml | 4 - html/changelogs/AutoChangeLog-pr-41879.yml | 4 - 27 files changed, 167 insertions(+), 117 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-41258.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41449.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41644.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41672.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41676.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41742.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41745.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41765.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41767.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41777.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41779.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41782.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41793.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41799.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41800.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41821.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41833.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41834.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41841.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41842.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41848.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41851.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41856.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41860.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-41879.yml diff --git a/html/changelog.html b/html/changelog.html index 295c7ddc80d..5dc31a7c5f1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,97 @@ -->

+

09 December 2018

+

Denton updated:

+
    +
  • Metastation's kitchen cold room is now really cold! Make sure to wear warm clothing.
  • +
  • The kitchen clothing vendor now stocks two winter jackets by default.
  • +
  • Goats are now fine with temperatures as low as 180°K. This is so that Pete doesn't freeze to death inside the cold room.
  • +
  • Added a kitchen area subtype for cold rooms and adjusted chef CQC to work inside it (no gameplay changes).
  • +
+

Floyd / Qustinnus updated:

+
    +
  • Bloodbags for ethereal filled with liquid electricity
  • +
  • Ethereals cant clone lightbulbs anymore
  • +
  • Fixes runtime in Ethereal charge handling
  • +
+

HideAndSeekLOGIC updated:

+
    +
  • Added emergency oxygen tanks and extended capacity emergency tanks to the autolathe and protolathe
  • +
  • Added them to the Industrial Engineering tech node
  • +
  • Only Cargo and Engineering can print extended capacities; the rest are available for everyone.
  • +
+

JJRcop updated:

+
    +
  • The chronosuit's teleport animation has been fixed, as has the gun.
  • +
+

MMMiracles updated:

+
    +
  • Fixes signalers not working properly on paystands
  • +
+

MetroidLover updated:

+
    +
  • New Abductor uniforms
  • +
+

MrDoomBringer updated:

+
    +
  • The Centcom Pod Launcher has been reorganized, making it easier to navigate at the expense of compact-ness.
  • +
+

Nich updated:

+
    +
  • Radials now have tooltips on hover
  • +
+

Skoglol updated:

+
    +
  • Reorganized the syndicate uplinks. Items are now mostly alphabetical, some misplaced items moved to more fitting categories.
  • +
  • Added a new category to the uplink: Grenades and Explosives.
  • +
  • Xenobio consoles that didn't connect to recycler in the xenobio lab should now do so.
  • +
  • Fixed gibber exploit.
  • +
+

Swindly updated:

+
    +
  • Arm-mounted implants that contain more than one item use a radial menu instead of a list menu.
  • +
  • Fixed repair droids not damaging mechs when the mech has a short circuit.
  • +
+

Time-Green updated:

+
    +
  • Goon genetics!
  • +
  • More mutations! Fire breath for lizards! Radioactive! Telepathy! Glowy! Strength, though its cosmetic and should be combined with radioactivity instead! Fiery sweat!
  • +
  • Adds void magnet mutation by @tralezab !
  • +
+

XDTM updated:

+
    +
  • Added the Vegetarian quirk, which costs 0 points and makes you dislike meat.
  • +
  • Projected forcefields can no longer be stacked onto the same tile.
  • +
  • Added two new surgery procedures, under the Experimental Surgery techweb node.
  • +
  • Ligament Hook makes it so you can attach limbs manually (like skeletons) but makes dismemberment more likely as well.
  • +
  • Ligament Reinforcement prevents dismemberment, but makes limbs easier to disable through damage.
  • +
  • Golem limbs can now be disabled, although they are still undismemberable.
  • +
+

coiax updated:

+
    +
  • Heirlooms are no longer named "Cherry family bag of dice", but rather their heirloom status can be determined by the owner on examine.
  • +
  • Any talented Musician can now use any instrument to lift spirits, and ease burdens. They can now also use the space piano and minimog to grant people the Good Music buffs, just like a handheld instrument.
  • +
  • Fixes bug where Curse of Madness was not giving proper brain traumas.
  • +
  • Gibs will now rot if not cleaned, and produce small amounts of miasma, approximately equal to a quarter of a corpse.
  • +
+

imsxz updated:

+
    +
  • glitter now uses the updated atmos overlays
  • +
+

kevinz000 updated:

+
    +
  • Sofas have been added. Make 'em with metal, 1 sheet each.
  • +
+

monster860 updated:

+
    +
  • Teleports now go back to force-moving you instead of Move()
  • +
+

subject217 updated:

+
    +
  • Admin PMs are now multi-line text prompts, making it easier to write big admin PMs.
  • +
+

08 December 2018

Steelpoint updated: