From 37c1cf502eb9752803c77f4175143d1d8597b2ca Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Jul 2017 15:45:14 -0500 Subject: [PATCH 001/113] Adds info about schema versioning to head of db changelog file --- SQL/database_changelog.txt.rej | 15 +++++++++++++++ code/world.dm | 20 ++++++++++---------- 2 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 SQL/database_changelog.txt.rej diff --git a/SQL/database_changelog.txt.rej b/SQL/database_changelog.txt.rej new file mode 100644 index 0000000000..1b201ec4aa --- /dev/null +++ b/SQL/database_changelog.txt.rej @@ -0,0 +1,15 @@ +diff a/SQL/database_changelog.txt b/SQL/database_changelog.txt (rejected hunks) +@@ -1,10 +1,10 @@ + Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. + +-The latest database version is 3.1; The query to update the schema revision table is: ++The latest database version is 3.0; The query to update the schema revision table is: + +-UPDATE `schema_revision` SET major = 3, minor = 1 LIMIT 1; ++INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0); + or +-UPDATE `SS13_schema_revision` SET major = 3, minor = 1 LIMIT 1; ++INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 0); + + ---------------------------------------------------- + diff --git a/code/world.dm b/code/world.dm index b6badeb348..1fe2b5f25d 100644 --- a/code/world.dm +++ b/code/world.dm @@ -59,16 +59,16 @@ if(config.sql_enabled) if(SSdbcore.Connect()) log_world("Database connection established.") - var/datum/DBQuery/db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_version")]") - db_version.Execute() - if(db_version.NextRow()) - var/db_major = db_version.item[1] - var/db_minor = db_version.item[2] + var/datum/DBQuery/query_db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_version")] ORDER BY date DESC LIMIT 1") + query_db_version.Execute() + if(query_db_version.NextRow()) + var/db_major = query_db_version.item[1] + var/db_minor = query_db_version.item[2] if(db_major < DB_MAJOR_VERSION || db_minor < DB_MINOR_VERSION) - message_admins("db schema ([db_major].[db_minor]) is behind latest tg schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") - log_sql("db schema ([db_major].[db_minor]) is behind latest tg schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") + message_admins("Database schema ([db_major].[db_minor]) is behind latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") + log_sql("Database schema ([db_major].[db_minor]) is behind latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") else - message_admins("Could not get schema version from db") + message_admins("Could not get schema version from database") else log_world("Your server failed to establish a connection with the database.") @@ -105,10 +105,10 @@ /world/Topic(T, addr, master, key) var/list/input = params2list(T) - + var/pinging = ("ping" in input) var/playing = ("players" in input) - + if(!pinging && !playing && config && config.log_world_topic) GLOB.world_game_log << "TOPIC: \"[T]\", from:[addr], master:[master], key:[key]" From 79e6963aca4951cf523945d1478d1eb38acf921d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 30 Jul 2017 19:58:28 -0500 Subject: [PATCH 002/113] Hallucinations 3.0 --- code/__DEFINES/logging.dm.rej | 9 + code/datums/datumvars.dm | 20 ++ .../diseases/advance/symptoms/hallucigen.dm | 2 +- code/game/machinery/doors/airlock.dm | 10 +- code/game/objects/effects/mines.dm | 2 +- code/modules/admin/admin_investigate.dm.rej | 10 + code/modules/flufftext/Hallucination.dm | 212 +++++++++------- code/modules/flufftext/Hallucination.dm.rej | 209 ++++++++++++++++ code/modules/mob/living/carbon/carbon.dm | 7 + code/modules/mob/living/carbon/life.dm | 3 +- .../simple_animal/guardian/types/fire.dm | 2 +- code/modules/mob/mob_helpers.dm | 3 + .../modules/projectiles/projectile/special.dm | 229 ++++++++++++++++++ .../chemistry/machinery/chem_dispenser.dm | 12 +- code/modules/surgery/organs/vocal_cords.dm | 5 +- strings/hallucination.json | 229 ++++++++++++++++++ 16 files changed, 866 insertions(+), 98 deletions(-) create mode 100644 code/__DEFINES/logging.dm.rej create mode 100644 code/modules/admin/admin_investigate.dm.rej create mode 100644 code/modules/flufftext/Hallucination.dm.rej create mode 100644 strings/hallucination.json diff --git a/code/__DEFINES/logging.dm.rej b/code/__DEFINES/logging.dm.rej new file mode 100644 index 0000000000..6a7a358a9c --- /dev/null +++ b/code/__DEFINES/logging.dm.rej @@ -0,0 +1,9 @@ +diff a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm (rejected hunks) +@@ -9,6 +9,7 @@ + #define INVESTIGATE_SUPERMATTER "supermatter" + #define INVESTIGATE_TELESCI "telesci" + #define INVESTIGATE_WIRES "wires" ++#define INVESTIGATE_HALLUCINATIONS "hallucinations" + + //Individual logging defines + #define INDIVIDUAL_ATTACK_LOG "Attack log" diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 60f932a88a..3672b850ca 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -929,6 +929,26 @@ manipulate_organs(C) href_list["datumrefresh"] = href_list["editorgans"] + else if(href_list["hallucinate"]) + if(!check_rights(0)) + return + + var/mob/living/carbon/C = locate(href_list["hallucinate"]) in GLOB.mob_list + if(!istype(C)) + to_chat(usr, "This can only be done to instances of type /mob/living/carbon") + return + + var/list/hallucinations = subtypesof(/datum/hallucination) + var/result = input(usr, "Choose the hallucination to apply","Send Hallucination") as null|anything in hallucinations + if(!usr) + return + if(QDELETED(C)) + to_chat(usr, "Mob doesn't exist anymore") + return + + if(result) + new result(C, TRUE) + else if(href_list["makehuman"]) if(!check_rights(R_SPAWN)) return diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm index f913d49573..9bfd5b0baf 100644 --- a/code/datums/diseases/advance/symptoms/hallucigen.dm +++ b/code/datums/diseases/advance/symptoms/hallucigen.dm @@ -59,4 +59,4 @@ Bonus else if(prob(base_message_chance)) to_chat(M, "[pick("Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows...")]") - M.hallucination += (15 * power) + M.hallucination += (45 * power) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 624d853808..94047727bc 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -233,9 +233,13 @@ return else /*if(src.justzap)*/ return - else if(user.hallucination > 50 && ishuman(user) && prob(10) && src.operating == FALSE) - hallucinate_shock(user) - return + else if(user.hallucinating() && ishuman(user) && prob(4) && !operating) + var/mob/living/carbon/human/H = user + if(H.gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(G.siemens_coefficient)//not insulated + hallucinate_shock(H) + return if (cyclelinkedairlock) if (!shuttledocked && !emergency && !cyclelinkedairlock.shuttledocked && !cyclelinkedairlock.emergency && allowed(user)) if(cyclelinkedairlock.operating) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index c9b524836f..005d9c7595 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -127,7 +127,7 @@ var/pure_red = list(0,0,0,0,0,0,0,0,0,1,0,0) spawn(0) - new /obj/effect/hallucination/delusion(victim.loc,victim,"demon",duration,0) + new /datum/hallucination/delusion(victim, TRUE, "demon",duration,0) var/obj/item/weapon/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc) chainsaw.flags |= NODROP diff --git a/code/modules/admin/admin_investigate.dm.rej b/code/modules/admin/admin_investigate.dm.rej new file mode 100644 index 0000000000..4f8c142c61 --- /dev/null +++ b/code/modules/admin/admin_investigate.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm (rejected hunks) +@@ -5,7 +5,7 @@ + F << "[time_stamp()] \ref[src] ([x],[y],[z]) || [src] [message]
" + + +-/client/proc/investigate_show(subject in list("hrefs","notes, memos, watchlist", INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY) ) ++/client/proc/investigate_show(subject in list("hrefs","notes, memos, watchlist", INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS) ) + set name = "Investigate" + set category = "Admin" + if(!holder) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 0b1187e9bc..6ae32a9d6a 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -11,6 +11,8 @@ Gunshots/explosions/opening doors/less rare audio (done) */ +#define HAL_LINES_FILE "hallucination.json" + /mob/living/carbon var/image/halimage var/image/halbody @@ -64,13 +66,14 @@ Gunshots/explosions/opening doors/less rare audio (done) var/col_mod = null var/image/current_image = null var/image_layer = MOB_LAYER - var/active = 1 //qdelery + var/active = TRUE //qdelery /obj/effect/hallucination/simple/Initialize(mapload, var/mob/living/carbon/T) ..() target = T current_image = GetImage() - if(target.client) target.client.images |= current_image + if(target.client) + target.client.images |= current_image /obj/effect/hallucination/simple/proc/GetImage() var/image/I = image(image_icon,src,image_state,image_layer,dir=src.dir) @@ -82,10 +85,12 @@ Gunshots/explosions/opening doors/less rare audio (done) /obj/effect/hallucination/simple/proc/Show(update=1) if(active) - if(target.client) target.client.images.Remove(current_image) + if(target.client) + target.client.images.Remove(current_image) if(update) current_image = GetImage() - if(target.client) target.client.images |= current_image + if(target.client) + target.client.images |= current_image /obj/effect/hallucination/simple/update_icon(new_state,new_icon,new_px=0,new_py=0) image_state = new_state @@ -101,36 +106,39 @@ Gunshots/explosions/opening doors/less rare audio (done) Show() /obj/effect/hallucination/simple/Destroy() - if(target.client) target.client.images.Remove(current_image) - active = 0 + if(target.client) + target.client.images.Remove(current_image) + active = FALSE return ..() #define FAKE_FLOOD_EXPAND_TIME 20 #define FAKE_FLOOD_MAX_RADIUS 10 -/obj/effect/hallucination/fake_flood +/datum/hallucination/fake_flood //Plasma starts flooding from the nearby vent + var/turf/center var/list/flood_images = list() var/list/turf/flood_turfs = list() var/image_icon = 'icons/effects/tile_effects.dmi' var/image_state = "plasma" var/radius = 0 var/next_expand = 0 + cost = 25 -/obj/effect/hallucination/fake_flood/Initialize(mapload, var/mob/living/carbon/T) +/datum/hallucination/fake_flood/New(mob/living/carbon/T, forced = TRUE) ..() - target = T for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) if(!U.welded) - src.loc = U.loc + center = get_turf(U) break - flood_images += image(image_icon,src,image_state,MOB_LAYER) - flood_turfs += get_turf(src.loc) + feedback_details += "Vent Coords: [center.x],[center.y],[center.z]" + flood_images += image(image_icon,center,image_state,MOB_LAYER) + flood_turfs += center if(target.client) target.client.images |= flood_images next_expand = world.time + FAKE_FLOOD_EXPAND_TIME START_PROCESSING(SSobj, src) -/obj/effect/hallucination/fake_flood/process() +/datum/hallucination/fake_flood/process() if(next_expand <= world.time) radius++ if(radius > FAKE_FLOOD_MAX_RADIUS) @@ -138,10 +146,10 @@ Gunshots/explosions/opening doors/less rare audio (done) return Expand() if((get_turf(target) in flood_turfs) && !target.internal) - target.hallucinate("fake_alert", "tox_in_air") + new /datum/hallucination/fake_alert(target, TRUE, "tox_in_air") next_expand = world.time + FAKE_FLOOD_EXPAND_TIME -/obj/effect/hallucination/fake_flood/proc/Expand() +/datum/hallucination/fake_flood/proc/Expand() for(var/turf/FT in flood_turfs) for(var/dir in GLOB.cardinals) var/turf/T = get_step(FT, dir) @@ -152,7 +160,7 @@ Gunshots/explosions/opening doors/less rare audio (done) if(target.client) target.client.images |= flood_images -/obj/effect/hallucination/fake_flood/Destroy() +/datum/hallucination/fake_flood/Destroy() STOP_PROCESSING(SSobj, src) qdel(flood_turfs) flood_turfs = list() @@ -167,7 +175,7 @@ Gunshots/explosions/opening doors/less rare audio (done) image_icon = 'icons/mob/alien.dmi' image_state = "alienh_pounce" -/obj/effect/hallucination/simple/xeno/Initialize(mapload, var/mob/living/carbon/T) +/obj/effect/hallucination/simple/xeno/Initialize(mapload, mob/living/carbon/T) ..() name = "alien hunter ([rand(1, 1000)])" @@ -177,18 +185,19 @@ Gunshots/explosions/opening doors/less rare audio (done) target.Knockdown(100) target.visible_message("[target] flails around wildly.","[name] pounces on you!") -/obj/effect/hallucination/xeno_attack +/datum/hallucination/xeno_attack //Xeno crawls from nearby vent,jumps at you, and goes back in var/obj/machinery/atmospherics/components/unary/vent_pump/pump = null var/obj/effect/hallucination/simple/xeno/xeno = null + cost = 25 -/obj/effect/hallucination/xeno_attack/Initialize(mapload, var/mob/living/carbon/T) +/datum/hallucination/xeno_attack/New(mob/living/carbon/T, forced = TRUE) ..() - target = T for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) if(!U.welded) pump = U break + feedback_details += "Vent Coords: [pump.x],[pump.y],[pump.z]" if(pump) xeno = new(pump.loc,target) sleep(10) @@ -200,7 +209,7 @@ Gunshots/explosions/opening doors/less rare audio (done) sleep(10) var/xeno_name = xeno.name to_chat(target, "[xeno_name] begins climbing into the ventilation system...") - sleep(10) + sleep(30) qdel(xeno) to_chat(target, "[xeno_name] scrambles into the ventilation ducts!") qdel(src) @@ -209,7 +218,7 @@ Gunshots/explosions/opening doors/less rare audio (done) image_icon = 'icons/mob/animal.dmi' image_state = "clown" -/obj/effect/hallucination/simple/clown/Initialize(mapload, var/mob/living/carbon/T,duration) +/obj/effect/hallucination/simple/clown/Initialize(mapload, mob/living/carbon/T, duration) ..(loc, T) name = pick(GLOB.clown_names) QDEL_IN(src,duration) @@ -256,20 +265,21 @@ Gunshots/explosions/opening doors/less rare audio (done) image_state = "bubblegum" px = -32 -/obj/effect/hallucination/oh_yeah +/datum/hallucination/oh_yeah var/obj/effect/hallucination/simple/bubblegum/bubblegum var/image/fakebroken var/image/fakerune + cost = 75 -/obj/effect/hallucination/oh_yeah/Initialize(mapload, var/mob/living/carbon/T) +/datum/hallucination/oh_yeah/New(mob/living/carbon/T, forced = TRUE) . = ..() - target = T var/turf/closed/wall/wall for(var/turf/closed/wall/W in range(7,target)) wall = W break if(!wall) return INITIALIZE_HINT_QDEL + feedback_details += "Source: [wall.x],[wall.y],[wall.z]" fakebroken = image('icons/turf/floors.dmi', wall, "plating", layer = TURF_LAYER) var/turf/landing = get_turf(target) @@ -283,7 +293,7 @@ Gunshots/explosions/opening doors/less rare audio (done) bubblegum = new(wall, target) addtimer(CALLBACK(src, .proc/bubble_attack, landing), 10) -/obj/effect/hallucination/oh_yeah/proc/bubble_attack(turf/landing) +/datum/hallucination/oh_yeah/proc/bubble_attack(turf/landing) var/charged = FALSE //only get hit once while(get_turf(bubblegum) != landing && target && target.stat != DEAD) bubblegum.forceMove(get_step_towards(bubblegum, landing)) @@ -301,7 +311,7 @@ Gunshots/explosions/opening doors/less rare audio (done) sleep(30) qdel(src) -/obj/effect/hallucination/oh_yeah/Destroy() +/datum/hallucination/oh_yeah/Destroy() if(target.client) target.client.images.Remove(fakebroken) target.client.images.Remove(fakerune) @@ -310,23 +320,24 @@ Gunshots/explosions/opening doors/less rare audio (done) QDEL_NULL(bubblegum) return ..() -/obj/effect/hallucination/singularity_scare +/datum/hallucination/singularity_scare //Singularity moving towards you. //todo Hide where it moved with fake space images var/obj/effect/hallucination/simple/singularity/s = null + cost = 75 -/obj/effect/hallucination/singularity_scare/Initialize(mapload, var/mob/living/carbon/T) +/datum/hallucination/singularity_scare/New(mob/living/carbon/T, forced = TRUE) ..() - target = T var/turf/start = get_turf(T) var/screen_border = pick(SOUTH,EAST,WEST,NORTH) - for(var/i = 0,i<11,i++) + for(var/i in 1 to 13) start = get_step(start,screen_border) + feedback_details += "Source: [start.x],[start.y],[start.z]" s = new(start,target) s.parent = src - for(var/i = 0,i<11,i++) - sleep(5) - s.loc = get_step(get_turf(s),get_dir(s,target)) + for(var/i in 1 to 13) + sleep(10) + s.forceMove(get_step(get_turf(s),get_dir(s,target))) s.Show() s.Eat() qdel(s) @@ -337,64 +348,72 @@ Gunshots/explosions/opening doors/less rare audio (done) image_layer = MASSIVE_OBJ_LAYER px = -96 py = -96 - var/obj/effect/hallucination/singularity_scare/parent + var/datum/hallucination/singularity_scare/parent /obj/effect/hallucination/simple/singularity/proc/Eat(atom/OldLoc, Dir) var/target_dist = get_dist(src,target) if(target_dist<=3) //"Eaten" - target.hal_screwyhud = SCREWYHUD_CRIT + target.set_screwyhud(SCREWYHUD_DEAD) target.SetUnconscious(160) - addtimer(CALLBACK(parent, .proc/wake_and_restore), rand(30, 50)) + addtimer(CALLBACK(parent, /datum/hallucination/.proc/wake_and_restore), rand(30, 50)) -/obj/effect/hallucination/battle +/datum/hallucination/battle + cost = 15 -/obj/effect/hallucination/battle/Initialize(mapload, var/mob/living/carbon/T) +/datum/hallucination/battle/New(mob/living/carbon/T, forced = TRUE, battle_type) ..() - target = T var/hits = rand(3,6) - switch(rand(1,5)) - if(1) //Laser fight - for(var/i=0,i...wabbajack...wabbajack...") - target.playsound_local(target,'sound/magic/staff_change.ogg', 50, 1, -1) + if(wabbajack) + to_chat(target, "...wabbajack...wabbajack...") + target.playsound_local(target,'sound/magic/staff_change.ogg', 50, 1) delusion = A target.client.images |= A QDEL_IN(src, duration) -/obj/effect/hallucination/self_delusion/Destroy() +/datum/hallucination/self_delusion/Destroy() if(target.client) target.client.images.Remove(delusion) return ..() -/obj/effect/hallucination/fakeattacker/Initialize(mapload, var/mob/living/carbon/T) +/datum/hallucination/fakeattacker/New(mob/living/carbon/T, forced = TRUE) ..() - target = T var/mob/living/carbon/human/clone = null var/clone_weapon = null @@ -523,6 +544,7 @@ Gunshots/explosions/opening doors/less rare audio (done) if(H.stat || H.lying) continue clone = H + feedback_details += "Clone of: [H.real_name]" break if(!clone) @@ -604,7 +626,7 @@ Gunshots/explosions/opening doors/less rare audio (done) for(var/mob/O in oviewers(world.view , my_target)) to_chat(O, "[my_target] stumbles around.") -/obj/effect/fake_attacker/Initialize(mapload, var/mob/living/carbon/T) +/obj/effect/fake_attacker/Initialize(mapload, mob/living/carbon/T) ..() my_target = T QDEL_IN(src, 300) @@ -651,7 +673,7 @@ Gunshots/explosions/opening doors/less rare audio (done) if(!locate(/obj/effect/overlay) in my_target.loc) fake_blood(my_target) else - my_target.playsound_local(my_target, pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'), 25, 1, -1) + my_target.playsound_local(my_target, pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'), 25, 1) my_target.show_message("[src.name] has punched [my_target]!", 1) my_target.staminaloss += 30 if(prob(33)) @@ -674,14 +696,15 @@ Gunshots/explosions/opening doors/less rare audio (done) QDEL_IN(O, 300) -/obj/effect/hallucination/bolts +/datum/hallucination/bolts var/list/doors = list() + cost = 25 -/obj/effect/hallucination/bolts/Initialize(mapload, var/mob/living/carbon/T,var/door_number=-1) //-1 for severe, 1-2 for subtle +/datum/hallucination/bolts/New(mob/living/carbon/T, forced, door_number=-1) //-1 for severe, 1-2 for subtle ..() - target = T var/image/I = null var/count = 0 + feedback_details += "Door amount: [door_number]" for(var/obj/machinery/door/airlock/A in range(7, target)) if(count>door_number && door_number>0) break @@ -700,13 +723,30 @@ Gunshots/explosions/opening doors/less rare audio (done) sleep(rand(6,12)) qdel(src) -/obj/effect/hallucination/whispers +/datum/hallucination/whispers + cost = 15 -/obj/effect/hallucination/whispers/Initialize(mapload, var/mob/living/carbon/T) +/datum/hallucination/whispers/New(mob/living/carbon/T, forced = TRUE) ..() - target = T - var/speak_messages = list("I'm watching you...","[target.first_name()]!","Get out!","Kchck-Chkck? Kchchck!","Did you hear that?","What did you do ?","Why?","Give me that!","HELP!!","EI NATH!!", "RUN!!", "Kill me!","O bidai nabora se'sma!", "[text2ratvar("Divinity, grant...")]") - var/radio_messages = list("Xenos!","Singularity loose!","Comms down!","They are arming the nuke!","They butchered Ian!","H-help!","[pick("Cult", "Wizard", "Ling", "Ops", "Revenant", "Murderer", "Harm", "I hear flashing", "Help")] in [pick(GLOB.teleportlocs)][prob(50)?"!":"!!"]","Where's [target.first_name()]?","Call the shuttle!","AI rogue!!") + var/speak_messages = list("[pick("I'm watching you...","I know what you're doing","What are you hiding?","I saw that")]",\ + "[pick("","Hey, ","Hi ","Hello ","Wait, ","It's ")][target.first_name()]!",\ + "[pick("Get out","Go away","Fuck off","OUT!")]",\ + "[pick("Kchck-Chkck? Kchchck!","EEEeeeeEEEE","#@§*&£","H-hhhhh...")]",\ + "[pick("Did you hear that?","Did you see that?","What was that?")]",\ + "[pick("Hail Ratvar","Hail Nar'Sie","Viva!","[generate_code_phrase()]","Are you mr. [pick(GLOB.possible_changeling_IDs)]?")]",\ + "[pick("Why?","What?","Wait, what?","Wait","Hold on","Uh...")]",\ + "Give me that!",\ + "HELP[pick(""," ME"," HIM"," HER"," THEM")]!!",\ + "RUN!!",\ + "I'm infected, [pick("stay away","don't get close","be careful","help me","kill me")]") + + var/radio_messages = list("Set [target.first_name()] to arrest!",\ + "[pick("Captain","Hos","Cmo","Rd","Ce","Hop","Janitor","AI","Viro","Qm","[target.first_name()]")] is [pick("rogue","cult","clockcult","a revhead","a gang leader","a traitor","a ling","dead")]!",\ + "Help!",\ + "[pick("Cult", "Wizard", "Blob", "Ling", "Ops", "Swarmers", "Revenant", "Traitor", "Harm", "I hear flashing", "Help")] in [pick(GLOB.teleportlocs)][prob(50)?"!":"!!"]",\ + "Where's [target.first_name()]?"\ + ,"[pick("C","Ai, c","Someone c","Rec")]all the shuttle!"\ + ,"AI [pick("rogue", "is dead")]!!") var/list/mob/living/carbon/people = list() var/list/mob/living/carbon/person = null @@ -722,7 +762,9 @@ Gunshots/explosions/opening doors/less rare audio (done) people += H if(person) //Basic talk var/image/speech_overlay = image('icons/mob/talk.dmi', person, "default0", layer = ABOVE_MOB_LAYER) - to_chat(target, target.compose_message(person,understood_language,pick(speak_messages),null,person.get_spans())) + var/message = target.compose_message(person,understood_language,pick(speak_messages),null,person.get_spans()) + feedback_details += "Type: Talk, Source: [person.real_name], Message: [message]" + to_chat(target, message) if(target.client) target.client.images |= speech_overlay sleep(30) diff --git a/code/modules/flufftext/Hallucination.dm.rej b/code/modules/flufftext/Hallucination.dm.rej new file mode 100644 index 0000000000..78b5d879f2 --- /dev/null +++ b/code/modules/flufftext/Hallucination.dm.rej @@ -0,0 +1,209 @@ +diff a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm (rejected hunks) +@@ -60,9 +60,14 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + var/halpick = pick(current) + new halpick(src, FALSE) + ++/mob/living/carbon/proc/set_screwyhud(hud_type) ++ hal_screwyhud = hud_type ++ update_health_hud() ++ + /datum/hallucination + var/mob/living/carbon/target + var/cost = 5 //affects the amount of hallucination reduced, and cooldown until the next hallucination ++ var/feedback_details //extra info for investigate + + /datum/hallucination/New(mob/living/carbon/T, forced = TRUE) + set waitfor = 0 +@@ -72,9 +77,13 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + target.next_hallucination = world.time + (rand(cost * 0.5, cost * 3) * 10) + + /datum/hallucination/proc/wake_and_restore() +- target.hal_screwyhud = SCREWYHUD_NONE ++ target.set_screwyhud(SCREWYHUD_NONE) + target.SetSleeping(0) + ++/datum/hallucination/Destroy() ++ target.investigate_log("was afflicted with a hallucination of type [type]. [feedback_details]", INVESTIGATE_HALLUCINATIONS) ++ return ..() ++ + /obj/effect/hallucination + invisibility = INVISIBILITY_OBSERVER + var/mob/living/carbon/target = null +@@ -744,7 +771,9 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) + humans += H + person = pick(humans) +- to_chat(target, target.compose_message(person,understood_language,pick(radio_messages),"1459",person.get_spans())) ++ var/message = target.compose_message(person,understood_language,pick(radio_messages),"1459",person.get_spans()) ++ feedback_details += "Type: Radio, Source: [person.real_name], Message: [message]" ++ to_chat(target, message) + qdel(src) + + /datum/hallucination/message +@@ -763,43 +792,48 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + "You're hallucinating.", \ + //Direct advice + "[pick_list_replacements(HAL_LINES_FILE, "advice")]") ++ feedback_details += "Message: [chosen]" + to_chat(target, chosen) + qdel(src) + + /datum/hallucination/sounds + cost = 15 + +-/datum/hallucination/sounds/New(mob/living/carbon/T, forced = TRUE) ++/datum/hallucination/sounds/New(mob/living/carbon/T, forced = TRUE, sound_type) + ..() ++ if(!sound_type) ++ sound_type = pick("airlock","explosion","far_explosion","glass","phone","summon_guns","alarm","beepsky","hallelujah","creepy","ratvar","shuttle_dock", ++ "wall_decon","door_hack","esword","blob_alert","tesla","malf_ai") ++ feedback_details += "Type: [sound_type]" + //Strange audio +- switch(rand(1,20)) +- if(1) ++ switch(sound_type) ++ if("airlock") + target.playsound_local(null,'sound/machines/airlock.ogg', 15, 1) +- if(2) ++ if("explosion") + if(prob(50)) + target.playsound_local(null,'sound/effects/explosion1.ogg', 50, 1) + else + target.playsound_local(null, 'sound/effects/explosion2.ogg', 50, 1) +- if(3) ++ if("far_explosion") + target.playsound_local(null, 'sound/effects/explosionfar.ogg', 50, 1) +- if(4) ++ if("glass") + target.playsound_local(null, pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg'), 50, 1) +- if(5) ++ if("phone") + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + sleep(15) + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + sleep(15) + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) +- if(6) ++ if("summon_guns") + target.playsound_local(null, 'sound/magic/summon_guns.ogg', 50, 1) +- if(7) ++ if("alarm") + target.playsound_local(null, 'sound/machines/alarm.ogg', 100, 0) +- if(8) ++ if("beepsky") + target.playsound_local(null, 'sound/voice/bfreeze.ogg', 35, 0) +- if(9) ++ if("hallelujah") + target.playsound_local(null, 'sound/effects/pray_chaplain.ogg', 50) + //Rare audio +- if(10) ++ if("creepy") + //These sounds are (mostly) taken from Hidden: Source + var/static/list/hallucinations_creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ + 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ +@@ -807,42 +841,42 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ + 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') + target.playsound_local(null, pick(hallucinations_creepyasssounds), 50, 1) +- if(11) ++ if("ratvar") + target.playsound_local(null, 'sound/effects/ratvar_rises.ogg', 100) + sleep(150) + target.playsound_local(null, 'sound/effects/ratvar_reveal.ogg', 100) +- if(12) ++ if("shuttle_dock") + to_chat(target, "

Priority Announcement

") + to_chat(target, "

The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

") + target.playsound_local(null, 'sound/ai/shuttledock.ogg', 100) + //Deconstructing a wall +- if(13) ++ if("wall_decon") + target.playsound_local(null, 'sound/items/welder.ogg', 15, 1) + sleep(105) + target.playsound_local(null, 'sound/items/welder2.ogg', 15, 1) + sleep(15) + target.playsound_local(null, 'sound/items/ratchet.ogg', 15, 1) + //Hacking a door +- if(14) ++ if("door_hack") + target.playsound_local(null, 'sound/items/screwdriver.ogg', 15, 1) + sleep(rand(10,30)) + for(var/i = rand(1,3), i>0, i--) + target.playsound_local(null, 'sound/weapons/empty.ogg', 15, 1) + sleep(rand(10,30)) + target.playsound_local(null, 'sound/machines/airlockforced.ogg', 15, 1) +- if(15) ++ if("esword") + target.playsound_local(null, 'sound/weapons/saberon.ogg',35,1) +- if(16) ++ if("blob_alert") + to_chat(target, "

Biohazard Alert

") + to_chat(target, "

Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.

") + target.playsound_local(null, 'sound/ai/outbreak5.ogg', 100, 0) +- if(17) //Tesla loose! ++ if("tesla") //Tesla loose! + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 35, 1) + sleep(20) + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 65, 1) + sleep(20) + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 100, 1) +- if(18) //AI is doomsdaying! ++ if("malf_ai") //AI is doomsdaying! + to_chat(target, "

Anomaly Alert

") + to_chat(target, "

Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.

") + target.playsound_local(null, 'sound/ai/aimalf.ogg', 100, 0) +@@ -854,9 +888,10 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + /datum/hallucination/hudscrew/New(mob/living/carbon/T, forced = TRUE) + ..() + //Screwy HUD +- target.hal_screwyhud = pick(SCREWYHUD_CRIT,SCREWYHUD_DEAD,SCREWYHUD_HEALTHY) ++ target.set_screwyhud(pick(SCREWYHUD_CRIT,SCREWYHUD_DEAD,SCREWYHUD_HEALTHY)) ++ feedback_details += "Type: [target.hal_screwyhud]" + sleep(rand(100,250)) +- target.hal_screwyhud = SCREWYHUD_NONE ++ target.set_screwyhud(SCREWYHUD_NONE) + qdel(src) + + /datum/hallucination/fake_alert +@@ -867,6 +902,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + var/alert_type = pick("not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","weightless","fire","locked","hacked","temphot","tempcold","pressure") + if(specific) + alert_type = specific ++ feedback_details += "Type: [alert_type]" + switch(alert_type) + if("oxy") + target.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy, override = TRUE) +@@ -962,6 +998,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + target.halitem.icon = 'icons/obj/grenade.dmi' + target.halitem.icon_state = "flashbang1" + target.halitem.name = "Flashbang" ++ feedback_details += "Type: [target.halitem.name]" + if(target.client) target.client.screen += target.halitem + QDEL_IN(target.halitem, rand(150, 350)) + qdel(src) +@@ -1006,7 +1043,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + /datum/hallucination/death/New(mob/living/carbon/T, forced = TRUE) + set waitfor = 0 + ..() +- target.hal_screwyhud = SCREWYHUD_DEAD ++ target.set_screwyhud(SCREWYHUD_DEAD) + target.Knockdown(300) + target.silent += 10 + var/area/area = get_area(target) +@@ -1025,7 +1062,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + to_chat(target, "DEAD: [fakemob.name] says, \"[pick("rip","hey [target.first_name()]","you too?","is the AI rogue?",\ + "i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "abductors","double agents","viruses","badmins","you")]")]\"") + sleep(rand(70,90)) +- target.hal_screwyhud = SCREWYHUD_NONE ++ target.set_screwyhud(SCREWYHUD_NONE) + target.SetKnockdown(0) + target.silent = 0 + qdel(src) +@@ -1100,6 +1137,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( + startlocs += T + var/turf/start = pick(startlocs) + var/proj_type = pick(subtypesof(/obj/item/projectile/hallucination)) ++ feedback_details += "Type: [proj_type]" + var/obj/item/projectile/hallucination/H = new proj_type(start) + target.playsound_local(start, H.hal_fire_sound, 60, 1) + H.hal_target = target diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 4415c0d7ab..cd5f179dd7 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -240,6 +240,12 @@ /mob/living/carbon/is_muzzled() return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) +/mob/living/carbon/hallucinating() + if(hallucination) + return TRUE + else + return FALSE + /mob/living/carbon/resist_buckle() if(restrained()) changeNext_move(CLICK_CD_BREAKOUT) @@ -811,3 +817,4 @@ .["Make AI"] = "?_src_=vars;makeai=\ref[src]" .["Modify bodypart"] = "?_src_=vars;editbodypart=\ref[src]" .["Modify organs"] = "?_src_=vars;editorgans=\ref[src]" + .["Hallucinate"] = "?_src_=vars;hallucinate=\ref[src]" diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 1d60ae4982..6bacfdd807 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -370,8 +370,7 @@ adjust_drugginess(-1) if(hallucination) - spawn handle_hallucinations() - hallucination = max(hallucination-2,0) + handle_hallucinations() //used in human and monkey handle_environment() /mob/living/carbon/proc/natural_bodytemperature_stabilization() diff --git a/code/modules/mob/living/simple_animal/guardian/types/fire.dm b/code/modules/mob/living/simple_animal/guardian/types/fire.dm index b0a8ba5215..8f456abc53 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/fire.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/fire.dm @@ -21,7 +21,7 @@ /mob/living/simple_animal/hostile/guardian/fire/AttackingTarget() . = ..() if(. && ishuman(target) && target != summoner) - new /obj/effect/hallucination/delusion(target.loc,target,"custom",200,0, icon_state,icon) + new /datum/hallucination/delusion(target,TRUE,"custom",200,0, icon_state,icon) /mob/living/simple_animal/hostile/guardian/fire/Crossed(AM as mob|obj) ..() diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index a704c2e43f..46f5db920b 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -325,6 +325,9 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return B.eye_blind return 0 +/mob/proc/hallucinating() + return FALSE + /proc/is_special_character(mob/M) // returns 1 for special characters and 2 for heroes of gamemode //moved out of admins.dm because things other than admin procs were calling this. if(!SSticker.HasRoundStarted()) return 0 diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 4b1d5af6c4..5a8f49f45a 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -387,3 +387,232 @@ var/obj/effect/ebeam/B = b animate(B, alpha = 0, time = 32) return ..() + +/obj/item/projectile/hallucination + name = "bullet" + icon = null + icon_state = null + hitsound = "" + suppressed = TRUE + ricochets_max = 0 + ricochet_chance = 0 + damage = 0 + nodamage = TRUE + projectile_type = /obj/item/projectile/hallucination + log_override = TRUE + var/hal_icon_state + var/image/fake_icon + var/mob/living/carbon/hal_target + var/hal_fire_sound + var/hal_hitsound + var/hal_hitsound_wall + var/hal_impact_effect + var/hal_impact_effect_wall + var/hit_duration + var/hit_duration_wall + +/obj/item/projectile/hallucination/fire() + ..() + fake_icon = image('icons/obj/projectiles.dmi', src, hal_icon_state, ABOVE_MOB_LAYER) + if(hal_target.client) + hal_target.client.images += fake_icon + +/obj/item/projectile/hallucination/Destroy() + if(hal_target.client) + hal_target.client.images -= fake_icon + QDEL_NULL(fake_icon) + return ..() + +/obj/item/projectile/hallucination/Collide(atom/A) + if(!ismob(A)) + if(hal_hitsound_wall) + hal_target.playsound_local(loc, hal_hitsound_wall, 40, 1) + if(hal_impact_effect_wall) + spawn_hit(A, TRUE) + else if(A == hal_target) + if(hal_hitsound) + hal_target.playsound_local(A, hal_hitsound, 100, 1) + target_on_hit(A) + qdel(src) + return TRUE + +/obj/item/projectile/hallucination/proc/target_on_hit(mob/M) + if(M == hal_target) + to_chat(hal_target, "[M] is hit by \a [src] in the chest!") + hal_apply_effect() + else if(M in view(hal_target)) + to_chat(hal_target, "[M] is hit by \a [src] in the chest!!") + if(damage_type == BRUTE) + var/splatter_dir = dir + if(starting) + splatter_dir = get_dir(starting, get_turf(M)) + spawn_blood(M, splatter_dir) + else if(hal_impact_effect) + spawn_hit(M, FALSE) + +/obj/item/projectile/hallucination/proc/spawn_blood(mob/M, set_dir) + set waitfor = 0 + if(!hal_target.client) + return + + var/splatter_icon_state + if(set_dir in GLOB.diagonals) + splatter_icon_state = "splatter[pick(1, 2, 6)]" + else + splatter_icon_state = "splatter[pick(3, 4, 5)]" + + var/image/blood = image('icons/effects/blood.dmi', M, splatter_icon_state, ABOVE_MOB_LAYER) + var/target_pixel_x = 0 + var/target_pixel_y = 0 + switch(set_dir) + if(NORTH) + target_pixel_y = 16 + if(SOUTH) + target_pixel_y = -16 + layer = ABOVE_MOB_LAYER + if(EAST) + target_pixel_x = 16 + if(WEST) + target_pixel_x = -16 + if(NORTHEAST) + target_pixel_x = 16 + target_pixel_y = 16 + if(NORTHWEST) + target_pixel_x = -16 + target_pixel_y = 16 + if(SOUTHEAST) + target_pixel_x = 16 + target_pixel_y = -16 + layer = ABOVE_MOB_LAYER + if(SOUTHWEST) + target_pixel_x = -16 + target_pixel_y = -16 + layer = ABOVE_MOB_LAYER + hal_target.client.images += blood + animate(blood, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = 5) + sleep(5) + hal_target.client.images -= blood + qdel(blood) + +/obj/item/projectile/hallucination/proc/spawn_hit(atom/A, is_wall) + set waitfor = 0 + if(!hal_target.client) + return + + var/image/hit_effect = image('icons/effects/blood.dmi', A, is_wall ? hal_impact_effect_wall : hal_impact_effect, ABOVE_MOB_LAYER) + hit_effect.pixel_x = A.pixel_x + rand(-4,4) + hit_effect.pixel_y = A.pixel_y + rand(-4,4) + hal_target.client.images += hit_effect + sleep(is_wall ? hit_duration_wall : hit_duration) + hal_target.client.images -= hit_effect + qdel(hit_effect) + + +/obj/item/projectile/hallucination/proc/hal_apply_effect() + return + +/obj/item/projectile/hallucination/bullet + name = "bullet" + hal_icon_state = "bullet" + hal_fire_sound = "gunshot" + hal_hitsound = 'sound/weapons/pierce.ogg' + hal_hitsound_wall = "ricochet" + hal_impact_effect = "impact_bullet" + hal_impact_effect_wall = "impact_bullet" + hit_duration = 5 + hit_duration_wall = 5 + +/obj/item/projectile/hallucination/bullet/hal_apply_effect() + hal_target.adjustStaminaLoss(60) + +/obj/item/projectile/hallucination/laser + name = "laser" + damage_type = BURN + hal_icon_state = "laser" + hal_fire_sound = 'sound/weapons/laser.ogg' + hal_hitsound = 'sound/weapons/sear.ogg' + hal_hitsound_wall = 'sound/weapons/effects/searwall.ogg' + hal_impact_effect = "impact_laser" + hal_impact_effect_wall = "impact_laser_wall" + hit_duration = 4 + hit_duration_wall = 10 + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + +/obj/item/projectile/hallucination/laser/hal_apply_effect() + hal_target.adjustStaminaLoss(20) + hal_target.blur_eyes(2) + +/obj/item/projectile/hallucination/taser + name = "electrode" + damage_type = BURN + hal_icon_state = "spark" + color = "#FFFF00" + hal_fire_sound = 'sound/weapons/taser.ogg' + hal_hitsound = 'sound/weapons/taserhit.ogg' + hal_hitsound_wall = null + hal_impact_effect = null + hal_impact_effect_wall = null + +/obj/item/projectile/hallucination/taser/hal_apply_effect() + hal_target.Knockdown(100) + hal_target.stuttering += 20 + if(hal_target.dna && hal_target.dna.check_mutation(HULK)) + hal_target.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) + else if(hal_target.status_flags & CANKNOCKDOWN) + addtimer(CALLBACK(hal_target, /mob/living/carbon.proc/do_jitter_animation, 20), 5) + +/obj/item/projectile/hallucination/disabler + name = "disabler beam" + damage_type = STAMINA + hal_icon_state = "omnilaser" + hal_fire_sound = 'sound/weapons/taser2.ogg' + hal_hitsound = 'sound/weapons/tap.ogg' + hal_hitsound_wall = 'sound/weapons/effects/searwall.ogg' + hal_impact_effect = "impact_laser_blue" + hal_impact_effect_wall = null + hit_duration = 4 + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + +/obj/item/projectile/hallucination/disabler/hal_apply_effect() + hal_target.adjustStaminaLoss(25) + +/obj/item/projectile/hallucination/ebow + name = "bolt" + damage_type = TOX + hal_icon_state = "cbbolt" + hal_fire_sound = 'sound/weapons/genhit.ogg' + hal_hitsound = null + hal_hitsound_wall = null + hal_impact_effect = null + hal_impact_effect_wall = null + +/obj/item/projectile/hallucination/ebow/hal_apply_effect() + hal_target.Knockdown(100) + hal_target.stuttering += 5 + hal_target.adjustStaminaLoss(8) + +/obj/item/projectile/hallucination/change + name = "bolt of change" + damage_type = BURN + hal_icon_state = "ice_1" + hal_fire_sound = 'sound/magic/staff_change.ogg' + hal_hitsound = null + hal_hitsound_wall = null + hal_impact_effect = null + hal_impact_effect_wall = null + +/obj/item/projectile/hallucination/change/hal_apply_effect() + new /datum/hallucination/self_delusion(hal_target, TRUE, wabbajack = FALSE) + +/obj/item/projectile/hallucination/death + name = "bolt of death" + damage_type = BURN + hal_icon_state = "pulse1_bl" + hal_fire_sound = 'sound/magic/wandodeath.ogg' + hal_hitsound = null + hal_hitsound_wall = null + hal_impact_effect = null + hal_impact_effect_wall = null + +/obj/item/projectile/hallucination/death/hal_apply_effect() + new /datum/hallucination/death(hal_target, TRUE) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 27cad406fa..3811512a02 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -101,9 +101,11 @@ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) ui = new(user, src, ui_key, "chem_dispenser", name, 550, 550, master_ui, state) + if(user.hallucinating()) + ui.set_autoupdate(FALSE) //to not ruin the immersion by constantly changing the fake chemicals ui.open() -/obj/machinery/chem_dispenser/ui_data() +/obj/machinery/chem_dispenser/ui_data(mob/user) var/data = list() data["amount"] = amount data["energy"] = cell.charge ? cell.charge * powerefficiency : "0" //To prevent NaN in the UI. @@ -128,10 +130,16 @@ data["beakerTransferAmounts"] = null var chemicals[0] + var/is_hallucinating = FALSE + if(user.hallucinating()) + is_hallucinating = TRUE for(var/re in dispensable_reagents) var/datum/reagent/temp = GLOB.chemical_reagents_list[re] if(temp) - chemicals.Add(list(list("title" = temp.name, "id" = temp.id))) + var/chemname = temp.name + if(is_hallucinating && prob(5)) + chemname = "[pick_list_replacements("hallucination.json", "chemicals")]" + chemicals.Add(list(list("title" = chemname, "id" = temp.id))) data["chemicals"] = chemicals return data diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index ff44804e75..0f5f1de91d 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -290,9 +290,8 @@ //HALLUCINATE else if((findtext(message, hallucinate_words))) cooldown = COOLDOWN_MEME - for(var/V in listeners) - var/mob/living/L = V - new /obj/effect/hallucination/delusion(get_turf(L),L,null,150 * power_multiplier,0) + for(var/mob/living/carbon/C in listeners) + new /datum/hallucination/delusion(C, TRUE, null,150 * power_multiplier,0) //WAKE UP else if((findtext(message, wakeup_words))) diff --git a/strings/hallucination.json b/strings/hallucination.json new file mode 100644 index 0000000000..b28c70db4a --- /dev/null +++ b/strings/hallucination.json @@ -0,0 +1,229 @@ +{ + "suspicion": [ + "I'm watching you...", + "I know what you're doing", + "What are you hiding?", + "I saw that" + ], + + "greetings": [ + "", + "Hey, ", + "Hi ", + "Hello ", + "Wait, ", + "It's " + ], + + "getout": [ + "Get out", + "Get out!", + "Go away", + "Fuck off", + "OUT!", + "Out!" + ], + + "weird": [ + "Kchck-Chkck? Kchchck!", + "Kchckchk...", + "EEEeeeeEEEE", + "khhhhh", + "#@§*&£", + "H**p m*", + "H-hhhhh..." + ], + + "didyouhearthat": [ + "Did you hear that?", + "Did you see that?", + "What was that?" + ], + + "imatraitor": [ + "Hail Ratvar", + "Hail Nar'Sie", + "Hey, i've got some TC left, want something?", + "Viva!", + "I'll spare you if you don't tell anybody about me", + "Hey, are you a traitor too?", + "You're my target, but @pick(excuses)", + "Are you mr. @pick(ling_names)?" + ], + + "excuses": [ + "i like you, so i'll spare you", + "i don't really feel like following objectives today", + "i'm not robust enough to fight you", + "who cares", + "i'll kill you later" + ] + + "ling_names": [ + "Alpha", + "Beta", + "Gamma", + "Delta", + "Epsilon", + "Eta", + "Theta", + "Lambda", + "Mu", + "Xi", + "Rho", + "Sigma", + "Tau", + "Upsilon", + "Phi", + "Psi", + "Omega" + ] + + "doubt": [ + "Why?", + "What?", + "Wait, what?", + "Wait", + "Hold on", + "Uh..." + ], + + "aggressive": [ + "Give me that!", + "I'm going to kill you!", + "Fuck you!" + ], + + "help": [ + "HELP", + "HELP ME", + "HELP HIM", + "HELP HER", + "HELP THEM", + "HELP US", + "HELP YOURSELF" + ], + + "escape": [ + "RUN!!", + "They're behind me!", + "It's here!", + "Follow me!", + "Follow me" + ] + + "infection_advice": [ + "stay away", + "don't get close", + "be careful", + "help me", + "kill me" + ] + + "people": [ + "Captain", + "Hos", + "Cmo", + "Rd", + "Ce", + "Hop", + "Janitor", + "AI", + "Viro", + "Qm", + "[target.first_name()]" + ] + + "accusations": [ + "rogue", + "cult", + "a cultist", + "clockcult", + "a clock cultist", + "a revhead", + "a rev", + "a gang leader", + "a gangster", + "a traitor", + "a tator", + "a ling", + "a changeling" + ] + + "threat": [ + "Cult", + "Wizard", + "Blob", + "Ling", + "Ops", + "Swarmers", + "Revenant", + "Traitor", + "Harm", + "I hear flashing", + "Help" + ] + + "location": [ + "bridge", + "armory", + "sec", + "security", + "science", + "engineering", + "cargo", + "medbay", + "atmos", + "maint", + "hops office", + "captains office", + "chapel", + "library", + "tool storage", + "botany", + "kitchen", + "the ai sat" + ] + + "advice": [ + "Hmm...not sure about that.", + "Yes. You're doing the right thing.", + "No. Stop what you're doing.", + "You should be wary of that person.", + "Trust that person.", + "That person wants to kill you.", + "Kill that person. You know who.", + "You should go somewhere else. Quickly.", + "Good luck. You'll need it.", + "You have my permission. Do it." + ] + + "chemicals": [ + "Ooze", + "Fire", + "Earth", + "Lightning", + "Air", + "Magic", + "Spiders", + "Button", + "Surprise", + "Happiness", + "Despair", + "Blood", + "Awesome", + "Infinity", + "Electronics", + "Time", + "Space", + "Pain", + "Guts", + "Life", + "Death", + "Phlebotinium", + "Mana", + "Energy", + "?????" + ] + +} From 89e29a036cef4c545e8397cd1f5c8d8f941da69d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 2 Aug 2017 08:52:47 -0500 Subject: [PATCH 003/113] Action buttons for spells now include their description --- code/datums/action.dm | 3 ++- code/datums/action.dm.rej | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 code/datums/action.dm.rej diff --git a/code/datums/action.dm b/code/datums/action.dm index c8385c9ed3..a1048b86bf 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -168,7 +168,7 @@ /datum/action/item_action/toggle_firemode name = "Toggle Firemode" - + /datum/action/item_action/rcl name = "Change Cable Color" button_icon_state = "rcl_rainbow" @@ -482,6 +482,7 @@ var/obj/effect/proc_holder/spell/S = target S.action = src name = S.name + desc = S.desc button_icon = S.action_icon button_icon_state = S.action_icon_state background_icon_state = S.action_background_icon_state diff --git a/code/datums/action.dm.rej b/code/datums/action.dm.rej new file mode 100644 index 0000000000..5be10bbb99 --- /dev/null +++ b/code/datums/action.dm.rej @@ -0,0 +1,9 @@ +diff a/code/datums/action.dm b/code/datums/action.dm (rejected hunks) +@@ -491,7 +491,6 @@ + S.action = src + name = S.name + desc = S.desc +- button_icon = S.action_icon + icon_icon = S.action_icon + button_icon_state = S.action_icon_state + background_icon_state = S.action_background_icon_state From 0ec200f540aa957002ca18a5f6fc81d00ac52ac0 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Thu, 3 Aug 2017 06:11:26 -0700 Subject: [PATCH 004/113] Delete action.dm.rej --- code/datums/action.dm.rej | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 code/datums/action.dm.rej diff --git a/code/datums/action.dm.rej b/code/datums/action.dm.rej deleted file mode 100644 index 5be10bbb99..0000000000 --- a/code/datums/action.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/datums/action.dm b/code/datums/action.dm (rejected hunks) -@@ -491,7 +491,6 @@ - S.action = src - name = S.name - desc = S.desc -- button_icon = S.action_icon - icon_icon = S.action_icon - button_icon_state = S.action_icon_state - background_icon_state = S.action_background_icon_state From ac86f2735a3f25f296eab18e9543827032780402 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 4 Aug 2017 09:33:07 -0500 Subject: [PATCH 005/113] flora.dm initialize hint --- code/game/objects/structures/flora.dm | 56 +++++++++++------------ code/game/objects/structures/flora.dm.rej | 28 ++++++++++++ 2 files changed, 56 insertions(+), 28 deletions(-) create mode 100644 code/game/objects/structures/flora.dm.rej diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index e478ff5d92..76b1462304 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -45,14 +45,14 @@ /obj/structure/flora/tree/pine/Initialize() icon_state = "pine_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/tree/pine/xmas name = "xmas tree" icon_state = "pine_c" /obj/structure/flora/tree/pine/xmas/Initialize() - ..() + . = ..() icon_state = "pine_c" /obj/structure/flora/tree/dead @@ -64,7 +64,7 @@ icon_state = "palm1" /obj/structure/flora/tree/palm/Initialize() - ..() + . = ..() icon_state = pick("palm1","palm2") pixel_x = 0 @@ -76,7 +76,7 @@ /obj/structure/flora/tree/dead/Initialize() icon_state = "tree_[rand(1, 6)]" - ..() + . = ..() /obj/structure/flora/tree/jungle name = "tree" @@ -106,7 +106,7 @@ /obj/structure/flora/grass/brown/Initialize() icon_state = "snowgrass[rand(1, 3)]bb" - ..() + . = ..() /obj/structure/flora/grass/green @@ -114,14 +114,14 @@ /obj/structure/flora/grass/green/Initialize() icon_state = "snowgrass[rand(1, 3)]gb" - ..() + . = ..() /obj/structure/flora/grass/both icon_state = "snowgrassall1" /obj/structure/flora/grass/both/Initialize() icon_state = "snowgrassall[rand(1, 3)]" - ..() + . = ..() //bushes @@ -133,7 +133,7 @@ /obj/structure/flora/bush/Initialize() icon_state = "snowbush[rand(1, 6)]" - ..() + . = ..() //newbushes @@ -145,112 +145,112 @@ /obj/structure/flora/ausbushes/Initialize() if(icon_state == "firstbush_1") icon_state = "firstbush_[rand(1, 4)]" - ..() + . = ..() /obj/structure/flora/ausbushes/reedbush icon_state = "reedbush_1" /obj/structure/flora/ausbushes/reedbush/Initialize() icon_state = "reedbush_[rand(1, 4)]" - ..() + . = ..() /obj/structure/flora/ausbushes/leafybush icon_state = "leafybush_1" /obj/structure/flora/ausbushes/leafybush/Initialize() icon_state = "leafybush_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/ausbushes/palebush icon_state = "palebush_1" /obj/structure/flora/ausbushes/palebush/Initialize() icon_state = "palebush_[rand(1, 4)]" - ..() + . = ..() /obj/structure/flora/ausbushes/stalkybush icon_state = "stalkybush_1" /obj/structure/flora/ausbushes/stalkybush/Initialize() icon_state = "stalkybush_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/ausbushes/grassybush icon_state = "grassybush_1" /obj/structure/flora/ausbushes/grassybush/Initialize() icon_state = "grassybush_[rand(1, 4)]" - ..() + . = ..() /obj/structure/flora/ausbushes/fernybush icon_state = "fernybush_1" /obj/structure/flora/ausbushes/fernybush/Initialize() icon_state = "fernybush_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/ausbushes/sunnybush icon_state = "sunnybush_1" /obj/structure/flora/ausbushes/sunnybush/Initialize() icon_state = "sunnybush_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/ausbushes/genericbush icon_state = "genericbush_1" /obj/structure/flora/ausbushes/genericbush/Initialize() icon_state = "genericbush_[rand(1, 4)]" - ..() + . = ..() /obj/structure/flora/ausbushes/pointybush icon_state = "pointybush_1" /obj/structure/flora/ausbushes/pointybush/Initialize() icon_state = "pointybush_[rand(1, 4)]" - ..() + . = ..() /obj/structure/flora/ausbushes/lavendergrass icon_state = "lavendergrass_1" /obj/structure/flora/ausbushes/lavendergrass/Initialize() icon_state = "lavendergrass_[rand(1, 4)]" - ..() + . = ..() /obj/structure/flora/ausbushes/ywflowers icon_state = "ywflowers_1" /obj/structure/flora/ausbushes/ywflowers/Initialize() icon_state = "ywflowers_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/ausbushes/brflowers icon_state = "brflowers_1" /obj/structure/flora/ausbushes/brflowers/Initialize() icon_state = "brflowers_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/ausbushes/ppflowers icon_state = "ppflowers_1" /obj/structure/flora/ausbushes/ppflowers/Initialize() icon_state = "ppflowers_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/ausbushes/sparsegrass icon_state = "sparsegrass_1" /obj/structure/flora/ausbushes/sparsegrass/Initialize() icon_state = "sparsegrass_[rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/ausbushes/fullgrass icon_state = "fullgrass_1" /obj/structure/flora/ausbushes/fullgrass/Initialize() icon_state = "fullgrass_[rand(1, 3)]" - ..() + . = ..() /obj/item/weapon/twohanded/required/kirbyplants name = "potted plant" @@ -319,7 +319,7 @@ desc = "A pile of rocks" /obj/structure/flora/rock/pile/Initialize() - ..() + . = ..() icon_state = "[icon_state][rand(1,3)]" //Jungle grass @@ -333,7 +333,7 @@ /obj/structure/flora/grass/jungle/Initialize() icon_state = "[icon_state][rand(1, 5)]" - ..() + . = ..() /obj/structure/flora/grass/jungle/b icon_state = "grassb" @@ -348,7 +348,7 @@ density = FALSE /obj/structure/flora/rock/jungle/Initialize() - ..() + . = ..() icon_state = "[initial(icon_state)][rand(1,5)]" @@ -361,7 +361,7 @@ /obj/structure/flora/junglebush/Initialize() icon_state = "[icon_state][rand(1, 3)]" - ..() + . = ..() /obj/structure/flora/junglebush/b icon_state = "bushb" diff --git a/code/game/objects/structures/flora.dm.rej b/code/game/objects/structures/flora.dm.rej new file mode 100644 index 0000000000..8257ec2122 --- /dev/null +++ b/code/game/objects/structures/flora.dm.rej @@ -0,0 +1,28 @@ +diff a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm (rejected hunks) +@@ -89,7 +89,7 @@ + + /obj/structure/flora/tree/jungle/Initialize() + icon_state = "[icon_state][rand(1, 6)]" +- ..() ++ . = ..() + + //grass + /obj/structure/flora/grass +@@ -307,7 +307,7 @@ + density = 1 + + /obj/structure/flora/rock/Initialize() +- ..() ++ . = ..() + icon_state = "[icon_state][rand(1,3)]" + + /obj/structure/flora/rock/pile +@@ -381,5 +381,5 @@ + pixel_y = -16 + + /obj/structure/flora/rock/pile/largejungle/Initialize() +- ..() +- icon_state = "[initial(icon_state)][rand(1,3)]" +\ No newline at end of file ++ . = ..() ++ icon_state = "[initial(icon_state)][rand(1,3)]" From b0361c2c646f43b0a36d702452ac0719e8b4ed89 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 5 Aug 2017 12:20:27 -0500 Subject: [PATCH 006/113] The inhands of the Dark Blessing chaplain weapon is now visible. --- code/game/objects/items/weapons/holy_weapons.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 238022d209..8e1cf3301e 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -320,6 +320,8 @@ desc = "Particularly twisted dieties grant gifts of dubious value." icon_state = "arm_blade" item_state = "arm_blade" + lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi' + righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi' flags = ABSTRACT | NODROP w_class = WEIGHT_CLASS_HUGE sharpness = IS_SHARP From c3ccae5298f365c81769c817bed359182785c8c9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 5 Aug 2017 12:20:30 -0500 Subject: [PATCH 007/113] Fixes stuff on shuttles not rotating in the proper direction --- code/modules/shuttle/shuttle.dm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index e15dc3f076..3b59f4ef89 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -12,7 +12,7 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF anchored = TRUE -// +// var/id // this should point -away- from the dockingport door, ie towards the ship dir = NORTH @@ -481,7 +481,7 @@ var/rotation = 0 if(new_dock.dir != dir) //Even when the dirs are the same rotation is coming out as not 0 for some reason - rotation = dir2angle(new_dock)-dir2angle(dir) + rotation = dir2angle(new_dock.dir)-dir2angle(dir) if ((rotation % 90) != 0) rotation += (rotation % 90) //diagonal rotations not allowed, round up rotation = SimplifyDegrees(rotation) @@ -527,7 +527,7 @@ return DOCKING_AREA_EMPTY /*******************************************All onShuttleMove procs******************************************/ - + for(var/i in 1 to old_turfs.len) var/turf/oldT = old_turfs[i] var/turf/newT = new_turfs[i] @@ -550,9 +550,9 @@ var/atom/movable/moving_atom = thing moving_atom.onShuttleMove(newT, oldT, rotation, movement_force, movement_direction) //atoms moved_atoms += moving_atom - + /******************************************All afterShuttleMove procs****************************************/ - + for(var/i in 1 to new_turfs.len) var/turf/oldT = old_turfs[i] var/turf/newT = new_turfs[i] @@ -767,7 +767,7 @@ return TRUE return FALSE -// Losing all initial engines should get you 2 +// Losing all initial engines should get you 2 // Adding another set of engines at 0.5 time /obj/docking_port/mobile/proc/alter_engines(mod) if(mod == 0) @@ -806,7 +806,7 @@ if(initial_engines > 0) change_per_engine = (ENGINE_COEFF_MAX - 1) / initial_engines //just linear drop to max delay return Clamp(1 + delta * change_per_engine,ENGINE_COEFF_MIN,ENGINE_COEFF_MAX) - + /obj/docking_port/mobile/proc/in_flight() switch(mode) @@ -846,7 +846,7 @@ if(launch_status == ENDGAME_LAUNCHED) dock(SSshuttle.getDock("[id]_away")) //Escape pods dock at centcomm mode = SHUTTLE_ENDGAME - + /obj/docking_port/mobile/emergency/on_emergency_dock() return From 99ca34a7b4db036a3715001ba45a67709a1ae739 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 5 Aug 2017 12:20:34 -0500 Subject: [PATCH 008/113] Fixes vendors not returning an Initialize hint --- code/game/machinery/vending.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 13e5394587..a65d4baa9f 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -60,7 +60,7 @@ var/refill_count = 3 //The number of canisters the vending machine uses /obj/machinery/vending/Initialize() - ..() + . = ..() wires = new /datum/wires/vending(src) if(refill_canister) //constructable vending machine var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/vendor(null) From 7f7aed0112320d20db8c164ca1d0cadf0dfdcac7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 5 Aug 2017 12:20:37 -0500 Subject: [PATCH 009/113] Fixes showers breaking lighting objects. --- code/game/objects/structures/watercloset.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 8d796904fd..1b8a6635ee 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -222,7 +222,7 @@ if(isliving(G)) var/mob/living/L = G wash_mob(L) - else + else if(isobj(G)) // Skip the light objects wash_obj(G) else if(isopenturf(loc)) @@ -286,7 +286,7 @@ wash_obj(O) -/obj/machinery/shower/proc/wash_obj(atom/movable/O) +/obj/machinery/shower/proc/wash_obj(obj/O) . = O.clean_blood() O.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) if(isitem(O)) From 5d0f206936b46b7ede3b0dbe587e9a2659727797 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 5 Aug 2017 12:20:41 -0500 Subject: [PATCH 010/113] Replaces blob's send intercept sleep() with addtimer --- code/game/gamemodes/blob/blob.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index 1c30d84313..ec923c635b 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -97,7 +97,8 @@ GLOBAL_LIST_EMPTY(blobs_legit) //used for win-score calculations, contains only send_intercept(1) message_sent = TRUE + addtimer(CALLBACK(src, .proc/SendSecondIntercept), 24000) - sleep(24000) //40 minutes, plus burst_delay*3(minimum of 6 minutes, maximum of 8) +/datum/game_mode/blob/proc/SendSecondIntercept() if(!replacementmode) - send_intercept(2) //if the blob has been alive this long, it's time to bomb it \ No newline at end of file + send_intercept(2) //if the blob has been alive this long, it's time to bomb it From a90448b2627ae5292462e6e9d3ab5aa518e252ae Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 5 Aug 2017 19:28:33 -0500 Subject: [PATCH 011/113] Fixes oversight with APCs using areastring --- code/game/gamemodes/events.dm | 2 +- code/game/machinery/computer/apc_control.dm | 4 ++-- code/modules/admin/verbs/debug.dm | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index f36f967c1d..a56a2d6647 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -33,7 +33,7 @@ for(var/obj/machinery/power/apc/C in GLOB.apcs_list) if(C.cell && C.z == ZLEVEL_STATION) - var/area/A = get_area(C) + var/area/A = C.area var/skip = 0 for(var/area_type in skipped_areas) diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index ea992de697..bc5c8cbfa7 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -133,8 +133,8 @@ active_apc.locked = TRUE active_apc.update_icon() active_apc = null - to_chat(usr, "[bicon(src)] Connected to APC in [get_area(APC)]. Interface request sent.") - log_activity("remotely accessed APC in [get_area(APC)]") + to_chat(usr, "[bicon(src)] Connected to APC in [APC.area]. Interface request sent.") + log_activity("remotely accessed APC in [APC.area]") APC.interact(usr, GLOB.not_incapacitated_state) playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) message_admins("[key_name_admin(usr)] remotely accessed [APC] from [src] at [get_area(src)].") diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index c45fa13435..7a312acf7c 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -513,7 +513,7 @@ GLOBAL_PROTECT(AdminProcCallCount) areas_all.Add(A.type) for(var/obj/machinery/power/apc/APC in GLOB.apcs_list) - var/area/A = get_area(APC) + var/area/A = APC.area if(!(A.type in areas_with_APC)) areas_with_APC.Add(A.type) From 0eea5ad53df9d4eaedbf9a29078e48b07d9579e8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 03:07:38 -0500 Subject: [PATCH 012/113] Improves Tesla Performance --- code/__HELPERS/_lists.dm | 13 ++++++-- code/modules/power/tesla/energy_ball.dm | 41 +++++++++++++------------ 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index df3daeeff9..b95f132b58 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -91,16 +91,23 @@ //returns a new list with only atoms that are in typecache L /proc/typecache_filter_list(list/atoms, list/typecache) . = list() - for (var/thing in atoms) + for(var/thing in atoms) var/atom/A = thing if (typecache[A.type]) . += A /proc/typecache_filter_list_reverse(list/atoms, list/typecache) . = list() - for (var/thing in atoms) + for(var/thing in atoms) var/atom/A = thing - if (!typecache[A.type]) + if(!typecache[A.type]) + . += A + +/proc/typecache_filter_multi_list_exclusion(list/atoms, list/typecache_include, list/typecache_exclude) + . = list() + for(var/thing in atoms) + var/atom/A = thing + if(typecache_include[A.type] && !typecache_exclude[A.type]) . += A //Like typesof() or subtypesof(), but returns a typecache instead of a list diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 042d827bff..9fc63d9421 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -1,24 +1,6 @@ #define TESLA_DEFAULT_POWER 1738260 #define TESLA_MINI_POWER 869130 -GLOBAL_LIST_INIT(blacklisted_tesla_types, typecacheof(list(/obj/machinery/atmospherics, - /obj/machinery/power/emitter, - /obj/machinery/field/generator, - /mob/living/simple_animal, - /obj/machinery/particle_accelerator/control_box, - /obj/structure/particle_accelerator/fuel_chamber, - /obj/structure/particle_accelerator/particle_emitter/center, - /obj/structure/particle_accelerator/particle_emitter/left, - /obj/structure/particle_accelerator/particle_emitter/right, - /obj/structure/particle_accelerator/power_box, - /obj/structure/particle_accelerator/end_cap, - /obj/machinery/field/containment, - /obj/structure/disposalpipe, - /obj/structure/sign, - /obj/machinery/gateway, - /obj/structure/lattice, - /obj/structure/grille, - /obj/machinery/the_singularitygen/tesla))) /obj/singularity/energy_ball name = "energy ball" desc = "An energy ball." @@ -183,8 +165,27 @@ GLOBAL_LIST_INIT(blacklisted_tesla_types, typecacheof(list(/obj/machinery/atmosp var/obj/machinery/closest_machine var/obj/structure/closest_structure var/obj/structure/blob/closest_blob + var/static/things_to_shock = typecacheof(list(/obj/machinery, /mob/living, /obj/structure)) + var/static/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, + /obj/machinery/power/emitter, + /obj/machinery/field/generator, + /mob/living/simple_animal, + /obj/machinery/particle_accelerator/control_box, + /obj/structure/particle_accelerator/fuel_chamber, + /obj/structure/particle_accelerator/particle_emitter/center, + /obj/structure/particle_accelerator/particle_emitter/left, + /obj/structure/particle_accelerator/particle_emitter/right, + /obj/structure/particle_accelerator/power_box, + /obj/structure/particle_accelerator/end_cap, + /obj/machinery/field/containment, + /obj/structure/disposalpipe, + /obj/structure/sign, + /obj/machinery/gateway, + /obj/structure/lattice, + /obj/structure/grille, + /obj/machinery/the_singularitygen/tesla)) - for(var/A in oview(source, zap_range+2)) + for(var/A in typecache_filter_multi_list_exclusion(oview(source, zap_range+2), things_to_shock, blacklisted_tesla_types)) if(istype(A, /obj/machinery/power/tesla_coil)) var/dist = get_dist(source, A) var/obj/machinery/power/tesla_coil/C = A @@ -207,7 +208,7 @@ GLOBAL_LIST_INIT(blacklisted_tesla_types, typecacheof(list(/obj/machinery/atmosp closest_atom = A closest_dist = dist - else if(closest_grounding_rod || is_type_in_typecache(A, GLOB.blacklisted_tesla_types)) + else if(closest_grounding_rod) continue else if(isliving(A)) From 633952d302efb40c5aa13e1058eb756d3f059e54 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 03:08:42 -0500 Subject: [PATCH 013/113] Enables goonchat restart notification --- code/controllers/subsystem/server_maint.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index e398f09a03..855c00b728 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -40,9 +40,15 @@ SUBSYSTEM_DEF(server_maint) /datum/controller/subsystem/server_maint/Shutdown() kick_clients_in_lobby("The round came to an end with you in the lobby.", TRUE) //second parameter ensures only afk clients are kicked + var/server = config.server for(var/thing in GLOB.clients) + if(!thing) + continue var/client/C = thing - if(C && config.server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite - C << link("byond://[config.server]") + var/datum/chatOutput/co = C.chatOutput + if(co) + co.ehjax_send(data = "roundrestart") + if(server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite + C << link("byond://[server]") #undef PING_BUFFER_TIME From e95ddfaf94208d199a095a7f2c091778a41f88f9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 03:09:47 -0500 Subject: [PATCH 014/113] Rewrites incorrect documentation for the pickweight() proc --- code/__HELPERS/_lists.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index df3daeeff9..74322c53af 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -177,7 +177,11 @@ result = first ^ second return result -//Pretends to pick an element based on its weight but really just seems to pick a random element. +//Picks a random element from a list based on a weighting system: +//1. Adds up the total of weights for each element +//2. Gets a number between 1 and that total +//3. For each element in the list, subtracts its weighting from that number +//4. If that makes the number 0 or less, return that element. /proc/pickweight(list/L) var/total = 0 var/item From de8d96e2653c2483ad6afd30d6f4b8171c35356a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 03:09:50 -0500 Subject: [PATCH 015/113] Replaces Hearty Punch's sprite --- icons/obj/drinks.dmi | Bin 60401 -> 60639 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index ddb152152c06e35b31c2d7690814c3e1efb4eaa1..77c3b647bcc80ae26fcad066a928246e30e28765 100644 GIT binary patch delta 21529 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 Date: Sun, 6 Aug 2017 03:10:55 -0500 Subject: [PATCH 016/113] Adds log parsing sql email alert script --- tools/SQLAlertEmail/email_config.ps1 | 11 +++++++++++ tools/SQLAlertEmail/email_script.ps1 | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 tools/SQLAlertEmail/email_config.ps1 create mode 100644 tools/SQLAlertEmail/email_script.ps1 diff --git a/tools/SQLAlertEmail/email_config.ps1 b/tools/SQLAlertEmail/email_config.ps1 new file mode 100644 index 0000000000..53865eb15f --- /dev/null +++ b/tools/SQLAlertEmail/email_config.ps1 @@ -0,0 +1,11 @@ +$Path = '..\..\data\logs\' #Server directory up to the year folder, this can be a relative or absolute path; remember the trailing \ +$StringToMatch = 'SQL:' +$From = 'admin@server.com' +[string[]]$To = 'email@address.com', 'a_different@address.org' #Email will be sent to each address listed here, you can have as many as you want +$Subject = 'SS13 server SQL error' +$Body = 'A SQL error was found in the following files:' #This parameter is optional, set it as '' if you want it gone +#SMTP server details; If you don't have one you can use the defaults provided here for Gmail's, provided you have a Google account +$SMTPServer = 'smtp.gmail.com' +$SMTPPort = '587' +$Account = "username" #SMTP server account name, excluding the domain address (this part: @domain.com) +$Password = 'password' #SMTP server password, if you're using Gmail's and have 2-factor authentication you'll have to use an App Password (Google for how) \ No newline at end of file diff --git a/tools/SQLAlertEmail/email_script.ps1 b/tools/SQLAlertEmail/email_script.ps1 new file mode 100644 index 0000000000..1ffa8d1b44 --- /dev/null +++ b/tools/SQLAlertEmail/email_script.ps1 @@ -0,0 +1,23 @@ +<# +This is a script designed to parse through your server logs and locate any SQL errors reported. +If found an email is sent to addresses specified in the configuration file: email_config.ps1. +A SMTP server is required, if you don't have one the defaults for Gmail's can be used. + +Suggested use is to schedule this task to be executed daily at server-time midnight so all the day's logs are checked. +You will likely find it helpful to set the configuration file to be untracked by git. +#> +. .\email_config.ps1 +$Date = Get-Date -format "yyyy\\MM\\dd" +$Matches = Get-ChildItem "$Path$Date" -recurse -include *.log | Select-String "$StringToMatch" -List | Select Path, Line + +$email = New-Object System.Net.Mail.MailMessage +$email.From = $From +foreach($i in $To) {$email.To.Add($i)} +$email.Subject = $Subject +$MatchList = foreach($m in $Matches) {"`t$m`n"} +$email.Body = $Body+"`n"+$MatchList + +$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort); +$smtp.Credentials = New-Object System.Net.NetworkCredential($Account, $Password); +$smtp.EnableSSL = $true +$smtp.Send($email); \ No newline at end of file From 0cffa7efaa72111e02017eef1e6c61fbb3cc958f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 03:12:04 -0500 Subject: [PATCH 017/113] Fixes the right-facing pie face sprite being a pixel off --- icons/effects/creampie.dmi | Bin 2284 -> 2281 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/effects/creampie.dmi b/icons/effects/creampie.dmi index 2a0365773b7f0b84757975d07c43668182527986..6caecf7d767c3f4880957c5790ed05a2b696faeb 100644 GIT binary patch delta 1923 zcmV-}2YmSK5$O@IW&wY0Nklje6TE42BITTby?1{xA0+aQ*@DRC0{#@7>le zAps;Kj6sNL0s!1`-f44aX3$O@p#0#2vIee|K{IiT^1ZeOF4QwILj0)H7%#nU-H| z0aD%;HW(Xn!v@OV0000000000 z001}=N1vA`=afs6Q(J?B>o+Yd>(-`D&F{woPMX|ThE9%7Jb;fNg34000000000005Co_Q*xE*m+@z143@_ewcXq5j913OK_XGxzpu@A zZCnnrpubY35Dsn!3ZNvt#lnnxUx+A%wHOWZu@lrsFerM0SoAIHW8f#4C@e+oWOd4D zWooxAz>I&=UEuSz000~h-xzN==Ra7JpWu9}{+(G=b8z}-g)8HNZ`8k!m_s-hQ_h^b zD(|(4qi}zAN;kpy^>cZ|LFcGoP1b7@2jTu4YpENI$97&-fZD#+g&f6;clM+kjgxm3 z6L5a;!DzGq$A+qVXrP)6MFSXI0o(^TZ67ez1M+{-@Xm6vhF%>|uwg*sI}B4a;K7?I z0010;nSWfiuEmF$x30iOTwZ=>j--u(tV2IF+Ou4H@3SuaL~no{P&NgpScexSpgq^5dSDUhNOY_w}Uum$$E=5 zS34S%Phjx#%%W!vq&>{swx*tBo9{l(nC0hSo_9yc z2g-$!U2D+b00^qDzzy$6JmuZRLgpjss5Yd+Wn@X;aqD7kB#8Fe#!a`jjoKem70EhKh; z#OEIbr`*{%-Hhq_G8i@1jO5X=23$S`aOFVyWX~9Ig(VHNnHbjuborK#}aFI&elVU8LYjo2~VB| z((as%->)iQZ24IOe$oaTYpj0`cWvL@6!-A+r!*xTy#*xM)qB@lX_9?8DF+#%`j%Ah zrB2u)%t#{(QT~vEh^Xq2yp((?et_S;4;ETLsyWAe)M~&NPJ#~U?Tsz4Jq)0*L~u~v ziHjN-LVf|dwg9z%KzI-1;Vrz#(J?m;ZJQk%50J!&@Ge$R>k9 zf!FcLB#6kfrxCTDPzECRktPpJ&&T=17kiN37OK7g0000000000tmt~+{=idtb2@3o zT?5p!CrLbtiJbZzpyt$Pbz7?%-tQyMI*~NvPsu?+9oM;bB`P7OUq17*^r!%N(`678 zK#PNdS_3~wx>Z5k+E;&0Pc1;2cn{QWpU%obp}Kv$C%AU2A=lH%^=!LstBCW^J1FpJ zXqBEOh=-x&t-JLKG}3#cZwPB+ye^_X4z96*U-)X;V%bzcJH4ZF?ec@(0vgA#%jdHz zT0j@#U6?FFt2aV8$Tw=CA+H{0#w7RpZBU;#0000000000003S90GK099`7_TT<@H$ zH19n42IMMT>*v!FShKx=wuj)5Z*;An=MUz%venqMLi(t5t)J%)hGt-0DScGB*3a_? zS;D%tNa>@}w|<^K**<((N*|T(WyKs`xTS!dc9XgY8yM`9{{dDt7^S>p59t5^002ov JPDHLkV1kQmo>c$< delta 1949 zcmV;O2V(f?5$qALW&wY3Nkljdt50421(ITb#Cg|HmBy=N}L!l4D%ouWP!5 z7$X^B3_=_Z0Dv3LJ7os#exI!p5Um-ePQV6=t%CU(7^FX zZ3WPAU=2{7KvsVl!SUEoVASx)^0S3<8=x|QKP?5ahW}`CUmpEkps7G=yQusQwmm<; zGDN|L9jkz59~lD;JiEzA4wPfyT=tVQDD0D?l;j>Z2=NvaS%>aA08 z()Gs4yNU@oKX_*}T7Y9i)jc#&&4!`@46Xof1Dt=h4LH;T^3m|la;}c&s{Qc(?@O&n=0zY~G<^4CW zUgdw!UTQ%eva6N9ms$?#VYq#$d-(G{B~?e^zvJ%@OFwZNP_hEv{viG+8-}ET*N=lZ zX32VsC09Edl(%5;)5M}@4Wu>9uT>xrZ-CL*M5K$#;@GrqwtZmoUr;+RRJNcWEw5700ZIcS=%k zLQ)7&z{2`R&O>$r$;5@H(AZ{?^Y3)M4Gf5p3(wR0iMxS!SAY8Eo8W$i19C_B{w{y` zlWgMO%H{ebT=}QTUkqSw0{2q~QU& zwUF2V67PQyoN{I3;c85mx51!VeF9<~a6M5M^`gnkyTBVujIRJgT-M|a>vZg8y$eAP ze*gdg00000002;xUs$17W4yBk1Z zj^LoY6Bjiwg!}?@sR3&Lfbbf|#jRieMY!BP$I#IF2l$s(fJ4X(F8_aZ8zKW&hL=1l zkxd4J0?*@atcfyxvC~bs}lRpOS-uI<9l=N>oBlKYi!D^r!%N z(Pa=6K(m8_S_5w+U5kGpF6}F)ry3v)ya#I6PiN(zP+h*=6I{Dhk?ZN?dY0X`Rm6Gd z9Ta#sv`R}8#Ldw1(%pIi8tJ{!H-xz{o)=MX2iI7@FC3bdST+^VPVXpO`}{#~0gY|g z<^9@}H-DbL+1`9vN*|T(X~i5~xTS!NHiO-e5Cd0A{}o8`{dV~Q00000 j0000000000Y?BrLR%jTdTaAcF00000NkvXXu0mjf7b&kE From 4fdd3215d6bd255918a84b48fcc6faa82332e86f Mon Sep 17 00:00:00 2001 From: ktccd Date: Sun, 6 Aug 2017 11:12:13 +0200 Subject: [PATCH 018/113] Fixes no-genitalia Genitals now updates with any changes. All the other changes in the code you see in the commit, I didn't touch. Nothing changed, git just thinks I replaced some lines with themselves for some godawful reason..... --- code/modules/client/preferences.dm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 484e09c5ad..1e07ee4ce0 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -19,8 +19,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) //game-preferences var/lastchangelog = "" //Saved changlog filesize to detect if there was a change var/ooccolor = null - var/enable_tips = TRUE - var/tip_delay = 500 //tip delay in milliseconds + var/enable_tips = TRUE + var/tip_delay = 500 //tip delay in milliseconds //Antag preferences var/list/be_special = list() //Special role selection @@ -30,7 +30,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/UI_style = "Midnight" - var/buttons_locked = FALSE + var/buttons_locked = FALSE var/hotkeys = FALSE var/tgui_fancy = TRUE var/tgui_lock = TRUE @@ -279,7 +279,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

General Settings

" dat += "UI Style: [UI_style]
" dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
" - dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"]
" + dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"]
" dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
" dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
" dat += "Window Flashing: [(windowflashing) ? "Yes" : "No"]
" @@ -1499,8 +1499,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("hotkeys") hotkeys = !hotkeys - if("action_buttons") - buttons_locked = !buttons_locked + if("action_buttons") + buttons_locked = !buttons_locked if("tgui_fancy") tgui_fancy = !tgui_fancy if("tgui_lock") @@ -1646,3 +1646,4 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.update_body() character.update_hair() character.update_body_parts() + character.update_genitals() From 52426638859677e73fdec21b89271c8d0dfc9c3b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 12:42:08 -0500 Subject: [PATCH 019/113] Freon now simply uses a color matrix rather than blending an icon --- code/__HELPERS/icons.dm | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index b2a9260ce1..04ea69a43f 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -968,32 +968,28 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) /image/proc/setDir(newdir) dir = newdir -/atom/proc/freeze_icon_index() - return "\ref[initial(icon)]-[initial(icon_state)]" +#define FROZEN_RED_COLOR "#2E5E69" +#define FROZEN_GREEN_COLOR "#60A2A8" +#define FROZEN_BLUE_COLOR "#A1AFB1" /obj/proc/make_frozen_visual() // Used to make the frozen item visuals for Freon. - var/static/list/freeze_item_icons = list() if(resistance_flags & FREEZE_PROOF) return - if(!HAS_SECONDARY_FLAG(src, FROZEN) && (initial(icon) && initial(icon_state))) - var/index = freeze_icon_index() - var/icon/IC - var/icon/P = freeze_item_icons[index] - if(!P) - P = new /icon - for(var/iconstate in icon_states(icon)) - var/icon/O = new('icons/effects/freeze.dmi', "ice_cube") - IC = new(icon, iconstate) - O.Blend(IC, ICON_ADD) - P.Insert(O, iconstate) - freeze_item_icons[index] = P - icon = P + if(!HAS_SECONDARY_FLAG(src, FROZEN)) name = "frozen [name]" + add_atom_colour(list(FROZEN_RED_COLOR, FROZEN_GREEN_COLOR, FROZEN_BLUE_COLOR, rgb(0,0,0)), TEMPORARY_COLOUR_PRIORITY) + alpha -= 25 SET_SECONDARY_FLAG(src, FROZEN) //Assumes already frozed /obj/proc/make_unfrozen() - icon = initial(icon) - name = replacetext(name, "frozen ", "") - CLEAR_SECONDARY_FLAG(src, FROZEN) + if(HAS_SECONDARY_FLAG(src, FROZEN)) + name = replacetext(name, "frozen ", "") + remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, list(FROZEN_RED_COLOR, FROZEN_GREEN_COLOR, FROZEN_BLUE_COLOR, rgb(0,0,0))) + alpha += 25 + CLEAR_SECONDARY_FLAG(src, FROZEN) + +#undef FROZEN_RED_COLOR +#undef FROZEN_GREEN_COLOR +#undef FROZEN_BLUE_COLOR From fc1dd6cc062a03725a10908a0ec6c07580163c4b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 16:56:33 -0500 Subject: [PATCH 020/113] Adds high-contrast inhand templates for spriters --- icons/mob/inhands/__inhand_template.dmi | Bin 0 -> 780 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/mob/inhands/__inhand_template.dmi diff --git a/icons/mob/inhands/__inhand_template.dmi b/icons/mob/inhands/__inhand_template.dmi new file mode 100644 index 0000000000000000000000000000000000000000..283428495c14a44c88361e88a4c32868aed48cf2 GIT binary patch literal 780 zcmV+n1M~ceP)b&M_yY700001bW%=J06^y0W&i*H zmU>iJbVOxyV{&P5bZKvH004NLQ&wi$=v?L?GAhD>VSc!`>C9|j)C~C;XnO2mTn+jpW z)#l|F5v?{gvABdtrRAwaD}}hWI6o&dg;?hjsTk~DBGrN&j9;y?f~%hkI6?rIx_Qyj zW7*IE00Hz#L_t(oh3%EUZo)7S#zSd<(Jd4fIwQpJu$l^Ll+R)!84S(7Pi z{FJqwDE9ZI%^yM$MfG;}{ruh8=dEwY z>`I`Ph)Q5T1~}M&TLHUzxdfu00ewoY0rV-&t_gI7G*wA&ZwNS54(3?P9QFnX4{+1n zwM3=i%;S$Zw(LdnnIyEMgTRr169RKseheU1z|q)=0!|1V$&9T%78*#C30xG?u%zjfx^=l&;lrdK^h`khfB^OXQ~~hfa(Zzw0GF5082&+usP_mTX@Kuwvl%a0Lag3A86Y_>_t!khS?QMKdJ+$_Wq*@GrK0dIDed2i0CEjDY0;0000< KMNUMnLSTY74Nsx~ literal 0 HcmV?d00001 From d63cfc226b4fb20a6b0ba2c3d188c586bf032f38 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 17:56:24 -0500 Subject: [PATCH 021/113] Adds back icon for monk's staff --- icons/mob/back.dmi | Bin 92149 -> 92468 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 55d36996b7c9d621f523797bf1dc53539b819147..06699662c052e9f67c173e79ca76bf783f7b3e26 100644 GIT binary patch delta 9608 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 byGEewIL1J}bSuPxkWJyOvP^}PN#OqhDx)-9 delta 9211 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 Date: Sun, 6 Aug 2017 18:02:33 -0500 Subject: [PATCH 022/113] Fixes certain things clearing weather overlays --- code/game/area/areas.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 2a139da456..3f0b780205 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -338,7 +338,14 @@ GLOBAL_LIST_EMPTY(teleportlocs) else icon_state = "blue-red" else - icon_state = null + var/weather_icon + for(var/V in SSweather.existing_weather) + var/datum/weather/W = V + if(src in W.impacted_areas) + W.update_areas() + weather_icon = TRUE + if(!weather_icon) + icon_state = null /area/space/updateicon() icon_state = null From b10172104e850e2104d4813ccc5f737f9c5ad495 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 18:02:36 -0500 Subject: [PATCH 023/113] Guests can now speak in ooc, reorder the ooc verb handling --- code/modules/client/verbs/ooc.dm | 38 +++++++++++++++----------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index f082c4971c..aeb1a7fdcf 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -9,9 +9,19 @@ if(!mob) return - if(IsGuestKey(key)) - to_chat(src, "Guests may not use OOC.") - return + if(!holder) + if(!GLOB.ooc_allowed) + to_chat(src, "OOC is globally muted.") + return + if(!GLOB.dooc_allowed && (mob.stat == DEAD)) + to_chat(usr, "OOC for dead mobs has been turned off.") + return + if(prefs.muted & MUTE_OOC) + to_chat(src, "You cannot use OOC (muted).") + return + if(jobban_isbanned(src.mob, "OOC")) + to_chat(src, "You have been banned from OOC.") + return msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) var/raw_msg = msg @@ -25,24 +35,7 @@ if(alert("Your message \"[raw_msg]\" looks like it was meant for in game communication, say it in OOC?", "Meant for OOC?", "No", "Yes") != "Yes") return - if(!(prefs.chat_toggles & CHAT_OOC)) - to_chat(src, "You have OOC muted.") - return - if(!holder) - if(!GLOB.ooc_allowed) - to_chat(src, "OOC is globally muted.") - return - if(!GLOB.dooc_allowed && (mob.stat == DEAD)) - to_chat(usr, "OOC for dead mobs has been turned off.") - return - if(prefs.muted & MUTE_OOC) - to_chat(src, "You cannot use OOC (muted).") - return - if(src.mob) - if(jobban_isbanned(src.mob, "OOC")) - to_chat(src, "You have been banned from OOC.") - return if(handle_spam_prevention(msg,MUTE_OOC)) return if(findtext(msg, "byond://")) @@ -51,6 +44,11 @@ message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") return + if(!(prefs.chat_toggles & CHAT_OOC)) + to_chat(src, "You have OOC muted.") + return + + log_talk(mob,"[key_name(src)] : [raw_msg]",LOGOOC) mob.log_message("[key]: [raw_msg]", INDIVIDUAL_OOC_LOG) From 7e539bfe3bf63a030838ad37c4b5ed30b43d92d7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 18:02:40 -0500 Subject: [PATCH 024/113] Fixes Explosive Lattice blobs being way more fragile than they should be --- code/modules/reagents/chemistry/reagents/blob_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/blob_reagents.dm b/code/modules/reagents/chemistry/reagents/blob_reagents.dm index f1e46a6322..054e9a84cf 100644 --- a/code/modules/reagents/chemistry/reagents/blob_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/blob_reagents.dm @@ -313,7 +313,7 @@ /datum/reagent/blob/explosive_lattice/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag) if(damage_flag == "bomb") return 0 - else if(damage_flag != "melee" || damage_flag != "bullet" || damage_flag != "laser") + else if(damage_flag != "melee" && damage_flag != "bullet" && damage_flag != "laser") return damage * 1.5 return ..() From e80f1dba991eb7457fd1def0505dae749496201f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 18:02:43 -0500 Subject: [PATCH 025/113] Fixes being able to "stomp out" sigils with telekinesis --- code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm index 7443188255..98186a5cdf 100644 --- a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm +++ b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm @@ -19,6 +19,9 @@ return 1 return ..() +/obj/effect/clockwork/sigil/attack_tk(mob/user) + return //you can't tk stomp sigils, but you can hit them with something + /obj/effect/clockwork/sigil/attack_hand(mob/user) if(iscarbon(user) && !user.stat && !is_servant_of_ratvar(user)) user.visible_message("[user] stamps out [src]!", "You stomp on [src], scattering it into thousands of particles.") From d071a788882f3c6438d920e738e283134f8efa7c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 18:02:47 -0500 Subject: [PATCH 026/113] Sounds played with sound_to_playing_players are less tinny --- code/game/sound.dm | 2 +- code/modules/admin/secrets.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/sound.dm b/code/game/sound.dm index aa41e0c7e3..c728071e50 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -85,7 +85,7 @@ for(var/M in GLOB.player_list) if(ismob(M) && !isnewplayer(M)) var/mob/MO = M - MO.playsound_local(get_turf(MO), sound, volume, vary, pressure_affected = FALSE) + MO.playsound_local(MO, sound, volume, vary, pressure_affected = FALSE) /proc/open_sound_channel() var/static/next_channel = 1 //loop through the available 1024 - (the ones we reserve) channels and pray that its not still being used diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 2b844d40b4..be09ebd3ef 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -517,14 +517,14 @@ return SSblackbox.add_details("admin_secrets_fun_used","There Can Be Only One") usr.client.only_one() - send_to_playing_players('sound/misc/highlander.ogg') + sound_to_playing_players('sound/misc/highlander.ogg') if("delayed_onlyone") if(!check_rights(R_FUN)) return SSblackbox.add_details("admin_secrets_fun_used","There Can Be Only One") usr.client.only_one_delayed() - send_to_playing_players('sound/misc/highlander_delayed.ogg') + sound_to_playing_players('sound/misc/highlander_delayed.ogg') if("onlyme") if(!check_rights(R_FUN)) From 1b2efdcc1d65b9783befd9bb72aa73b1a117a614 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 18:02:51 -0500 Subject: [PATCH 027/113] More Initialize() garbage --- code/game/objects/effects/spawners/bombspawner.dm | 2 +- code/game/objects/items/stacks/tiles/light.dm | 4 ++-- code/game/turfs/simulated/floor/plating/asteroid.dm | 4 ++-- .../turfs/simulated/floor/plating/misc_plating.dm | 8 ++++---- code/modules/holodeck/turfs.dm | 12 ++++++------ code/modules/library/random_books.dm | 8 ++++---- .../mob/living/simple_animal/hostile/stickman.dm | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index 6f307d9e59..7f8adbf6a9 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -7,7 +7,7 @@ var/assembly_type /obj/effect/spawner/newbomb/Initialize() - ..() + . = ..() var/obj/item/device/transfer_valve/V = new(src.loc) var/obj/item/weapon/tank/internals/plasma/full/PT = new(V) var/obj/item/weapon/tank/internals/oxygen/OT = new(V) diff --git a/code/game/objects/items/stacks/tiles/light.dm b/code/game/objects/items/stacks/tiles/light.dm index b4b31eac08..a5ff449508 100644 --- a/code/game/objects/items/stacks/tiles/light.dm +++ b/code/game/objects/items/stacks/tiles/light.dm @@ -9,7 +9,7 @@ var/state = 0 /obj/item/stack/tile/light/Initialize(mapload, new_amount, merge = TRUE) - ..() + . = ..() if(prob(5)) state = 3 //broken else if(prob(5)) @@ -27,4 +27,4 @@ if(amount <= 0) qdel(src) else - return ..() \ No newline at end of file + return ..() diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index 7666472a65..ec84bff35d 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -17,7 +17,7 @@ /turf/open/floor/plating/asteroid/Initialize() var/proper_name = name - ..() + . = ..() name = proper_name if(prob(floor_variance)) icon_state = "[environment_type][rand(0,12)]" @@ -124,7 +124,7 @@ initial_gas_mix = "TEMP=2.7" /turf/open/floor/plating/asteroid/basalt/Initialize() - ..() + . = ..() set_basalt_light(src) /proc/set_basalt_light(turf/open/floor/B) diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm index cf0ec5531c..9a6d5eb467 100644 --- a/code/game/turfs/simulated/floor/plating/misc_plating.dm +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -8,7 +8,7 @@ icon_state = "alienpod1" /turf/open/floor/plating/abductor/Initialize() - ..() + . = ..() icon_state = "alienpod[rand(1,9)]" @@ -46,7 +46,7 @@ pixel_y = -4 pixel_x = -4 icon = smooth_icon - ..() + . = ..() /turf/open/floor/plating/ashplanet/break_tile() return @@ -74,7 +74,7 @@ /turf/open/floor/plating/ashplanet/wateryrock/Initialize() icon_state = "[icon_state][rand(1, 9)]" - ..() + . = ..() /turf/open/floor/plating/beach @@ -114,7 +114,7 @@ desc = "Like sand, but more metal." /turf/open/floor/plating/ironsand/Initialize() - ..() + . = ..() icon_state = "ironsand[rand(1,15)]" /turf/open/floor/plating/ironsand/burn_tile() diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index 38ce9c70f1..6f28702892 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -44,14 +44,14 @@ /turf/open/floor/holofloor/asteroid/Initialize() icon_state = "asteroid[rand(0, 12)]" - ..() + . = ..() /turf/open/floor/holofloor/basalt name = "basalt" icon_state = "basalt0" /turf/open/floor/holofloor/basalt/Initialize() - ..() + . = ..() if(prob(15)) icon_state = "basalt[rand(0, 12)]" set_basalt_light(src) @@ -63,7 +63,7 @@ /turf/open/floor/holofloor/space/Initialize() icon_state = SPACE_ICON_STATE // so realistic - ..() + . = ..() /turf/open/floor/holofloor/hyperspace name = "hyperspace" @@ -72,10 +72,10 @@ /turf/open/floor/holofloor/hyperspace/Initialize() icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]" - ..() + . = ..() /turf/open/floor/holofloor/hyperspace/ns/Initialize() - ..() + . = ..() icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]" /turf/open/floor/holofloor/carpet @@ -89,7 +89,7 @@ canSmoothWith = null /turf/open/floor/holofloor/carpet/Initialize() - ..() + . = ..() addtimer(CALLBACK(src, .proc/update_icon), 1) /turf/open/floor/holofloor/carpet/update_icon() diff --git a/code/modules/library/random_books.dm b/code/modules/library/random_books.dm index e2ea2a86c5..1143dbf9a7 100644 --- a/code/modules/library/random_books.dm +++ b/code/modules/library/random_books.dm @@ -1,5 +1,5 @@ /obj/item/weapon/book/manual/random/Initialize() - ..() + . = ..() var/static/banned_books = list(/obj/item/weapon/book/manual/random, /obj/item/weapon/book/manual/nuclear, /obj/item/weapon/book/manual/wiki) var/newtype = pick(subtypesof(/obj/item/weapon/book/manual) - banned_books) new newtype(loc) @@ -10,7 +10,7 @@ var/category = null /obj/item/weapon/book/random/Initialize() - ..() + . = ..() create_random_books(amount, src.loc, TRUE, category) qdel(src) @@ -24,7 +24,7 @@ state = 2 /obj/structure/bookcase/random/Initialize(mapload) - ..() + . = ..() if(!book_count || !isnum(book_count)) update_icon() return @@ -77,7 +77,7 @@ var/ref_book_prob = 20 /obj/structure/bookcase/random/reference/Initialize(mapload) - ..() + . = ..() while(book_count > 0 && prob(ref_book_prob)) book_count-- new /obj/item/weapon/book/manual/random(src) diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm index 15dfd7ad9d..5a9d3a2928 100644 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -51,7 +51,7 @@ icon_dead = "stickdog_dead" /mob/living/simple_animal/hostile/stickman/Initialize(mapload, var/wizard_summoned) - ..() + . = ..() new /obj/effect/temp_visual/paper_scatter(src) summoned_by_wizard = wizard_summoned From ac7235edcc1dcf05c62b4424146d46aa9a920fcb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 7 Aug 2017 07:17:56 -0500 Subject: [PATCH 028/113] Automatic changelog generation for PR #2266 [ci skip] --- html/changelogs/AutoChangeLog-pr-2266.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2266.yml diff --git a/html/changelogs/AutoChangeLog-pr-2266.yml b/html/changelogs/AutoChangeLog-pr-2266.yml new file mode 100644 index 0000000000..2a02edfb87 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2266.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - bugfix: "Objects on shuttles now rotate in the correct directions." From cf7f3d9c4e96b1c97360a9b3439f279870daf81c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 7 Aug 2017 07:20:10 -0500 Subject: [PATCH 029/113] Automatic changelog generation for PR #2274 [ci skip] --- html/changelogs/AutoChangeLog-pr-2274.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2274.yml diff --git a/html/changelogs/AutoChangeLog-pr-2274.yml b/html/changelogs/AutoChangeLog-pr-2274.yml new file mode 100644 index 0000000000..ef5c537edd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2274.yml @@ -0,0 +1,4 @@ +author: "Lexorion" +delete-after: True +changes: + - imageadd: "Hearty Punch has a new, fancier sprite." From f6b44be06a3f84bb0ad0bdfd5945d2b64b6c04cc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 7 Aug 2017 07:22:14 -0500 Subject: [PATCH 030/113] Automatic changelog generation for PR #2281 [ci skip] --- html/changelogs/AutoChangeLog-pr-2281.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2281.yml diff --git a/html/changelogs/AutoChangeLog-pr-2281.yml b/html/changelogs/AutoChangeLog-pr-2281.yml new file mode 100644 index 0000000000..189f18a117 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2281.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - bugfix: "Character preview now displays genitals again." From ab86beab8ac42fd54f410816a2a2fd6f1d4bf27b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 7 Aug 2017 07:24:06 -0500 Subject: [PATCH 031/113] Automatic changelog generation for PR #2287 [ci skip] --- html/changelogs/AutoChangeLog-pr-2287.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2287.yml diff --git a/html/changelogs/AutoChangeLog-pr-2287.yml b/html/changelogs/AutoChangeLog-pr-2287.yml new file mode 100644 index 0000000000..d6b77f9436 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2287.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - bugfix: "Turning off APCs will no longer make the weather in that area invisible." From 54bb4565e1155e7125d9ae705964a4ffbc777de2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 7 Aug 2017 07:26:19 -0500 Subject: [PATCH 032/113] Automatic changelog generation for PR #2291 [ci skip] --- html/changelogs/AutoChangeLog-pr-2291.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2291.yml diff --git a/html/changelogs/AutoChangeLog-pr-2291.yml b/html/changelogs/AutoChangeLog-pr-2291.yml new file mode 100644 index 0000000000..4b87a21dfd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2291.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - soundadd: "The speakers in the ceiling have been upgraded, and many sounds are now less tinny." From fbabd14798d583e4370e8de8403533da0fbc1a94 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 7 Aug 2017 12:26:15 -0500 Subject: [PATCH 033/113] Fixes adminhelp sending the wrong message to players --- code/modules/admin/verbs/adminhelp.dm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 0177798e25..44755c46fc 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -194,7 +194,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) AddInteraction("[key_name_admin(usr)] PM'd [LinkedReplyName()]") message_admins("Ticket [TicketHref("#[id]")] created") else - MessageNoRecipient(parsed_message) + MessageNoRecipient(msg, parsed_message) //send it to irc if nobody is on and tell us how many were on var/admin_number_present = send2irc_adminless_only(initiator_ckey, "Ticket #[id]: [name]") @@ -249,18 +249,19 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //message from the initiator without a target, all admins will see this //won't bug irc -/datum/admin_help/proc/MessageNoRecipient(msg) +/datum/admin_help/proc/MessageNoRecipient(msg, parsed_msg) var/ref_src = "\ref[src]" - var/chat_msg = "Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]: [msg]" + //Message to be sent to all admins + var/admin_msg = "Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]: [parsed_msg]" AddInteraction("[LinkedReplyName(ref_src)]: [msg]") + //send this msg to all admins - for(var/client/X in GLOB.admins) if(X.prefs.toggles & SOUND_ADMINHELP) X << 'sound/effects/adminhelp.ogg' window_flash(X, ignorepref = TRUE) - to_chat(X, chat_msg) + to_chat(X, admin_msg) //show it to the person adminhelping too to_chat(initiator, "PM to-Admins: [msg]") From 40a8449f11d378ab1e0a48e7ed54c694003a5571 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 7 Aug 2017 12:26:20 -0500 Subject: [PATCH 034/113] GM completion check and mulligan now check to see if players are logged out --- code/game/gamemodes/game_mode.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index f6fef13305..2a0cd230d5 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -111,7 +111,7 @@ var/list/living_crew = list() for(var/mob/Player in GLOB.mob_list) - if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player)) + if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) && !isbrain(Player) && Player.client) living_crew += Player if(living_crew.len / GLOB.joined_player_list.len <= config.midround_antag_life_check) //If a lot of the player base died, we start fresh message_admins("Convert_roundtype failed due to too many dead people. Limit is [config.midround_antag_life_check * 100]% living crew") @@ -208,7 +208,7 @@ return 0 //A resource saver: once we find someone who has to die for all antags to be dead, we can just keep checking them, cycling over everyone only when we lose our mark. for(var/mob/Player in GLOB.living_mob_list) - if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player)) + if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player) && Player.client) if(Player.mind.special_role) //Someone's still antaging! living_antag_player = Player return 0 From dad39bb1a4eb83af2eb661ae6a739a8705965e5e Mon Sep 17 00:00:00 2001 From: ktccd Date: Tue, 8 Aug 2017 10:22:04 +0200 Subject: [PATCH 035/113] Fixes displaying digestion alert for preys visible_message doesn't actually send anything to a dead mob, probably because they can't hear. Moved that it's own message piece instead. [0.5h testing memes] --- code/modules/vore/eating/bellymodes_vr.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 149094de3f..b58875bd1f 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -45,7 +45,8 @@ //Send messages to_chat(owner, "[digest_alert_owner]") - M.visible_message("You watch as [owner]'s form loses its additions.", "[digest_alert_prey]") + to_chat(M, "[digest_alert_prey]") + M.visible_message("You watch as [owner]'s form loses its additions.") owner.nutrition += 400 // so eating dead mobs gives you *something*. M.stop_sound_channel(CHANNEL_PRED) From d3b5f0aa6d4dedcaed17adffd261260d2d4a607b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 05:49:17 -0500 Subject: [PATCH 036/113] Laptops now have actual sprites for using the supermatter monitoring instead of defaulting to a generic one. --- .../file_system/programs/sm_monitor.dm | 10 +++------- icons/obj/modular_laptop.dmi | Bin 22578 -> 24127 bytes 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index cfe019e193..d62907f026 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -22,16 +22,12 @@ if(last_status != new_status) last_status = new_status ui_header = "smmon_[last_status].gif" - if(istype(computer) && !(computer.hardware_flag == PROGRAM_LAPTOP)) - program_icon_state = "smmon_[last_status]" - if(istype(computer)) - computer.update_icon() + program_icon_state = "smmon_[last_status]" + if(istype(computer)) + computer.update_icon() /datum/computer_file/program/supermatter_monitor/run_program(mob/living/user) . = ..(user) - if(istype(computer) && (computer.hardware_flag == PROGRAM_LAPTOP)) - program_icon_state = "engine" - computer.update_icon() refresh() /datum/computer_file/program/supermatter_monitor/kill_program(forced = FALSE) diff --git a/icons/obj/modular_laptop.dmi b/icons/obj/modular_laptop.dmi index 7026f52ee0d932fa0469162cc0725c2251cd262f..1e506ca6feb7012d60424f8717d91f9864dbbc3a 100644 GIT binary patch literal 24127 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 literal 22578 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 From c2419e84f51eb89aaec23f5f62ba959f3901f4a6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 05:50:22 -0500 Subject: [PATCH 037/113] Adds a Test Areas (Station Z) verb --- code/modules/admin/admin_verbs.dm | 3 ++- code/modules/admin/verbs/debug.dm | 21 ++++++++++++++++++--- code/modules/admin/verbs/mapping.dm | 3 ++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index ff8b10d185..68e5430a09 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -296,7 +296,8 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( /client/proc/startSinglo, /client/proc/set_server_fps, /client/proc/cmd_admin_grantfullaccess, - /client/proc/cmd_admin_areatest, + /client/proc/cmd_admin_areatest_all, + /client/proc/cmd_admin_areatest_station, /client/proc/readmin ) if(holder) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 7a312acf7c..c69628c625 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -495,9 +495,9 @@ GLOBAL_PROTECT(AdminProcCallCount) qdel(adminmob) SSblackbox.add_details("admin_verb","Assume Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_areatest() +/client/proc/cmd_admin_areatest(on_station) set category = "Mapping" - set name = "Test areas" + set name = "Test Areas" var/list/areas_all = list() var/list/areas_with_APC = list() @@ -509,7 +509,12 @@ GLOBAL_PROTECT(AdminProcCallCount) var/list/areas_with_camera = list() for(var/area/A in world) - if(!(A.type in areas_all)) + if(on_station) + var/turf/picked = safepick(get_area_turfs(A.type)) + if(picked && (picked.z == ZLEVEL_STATION)) + if(!(A.type in areas_all)) + areas_all.Add(A.type) + else if(!(A.type in areas_all)) areas_all.Add(A.type) for(var/obj/machinery/power/apc/APC in GLOB.apcs_list) @@ -583,6 +588,16 @@ GLOBAL_PROTECT(AdminProcCallCount) for(var/areatype in areas_without_camera) to_chat(world, "* [areatype]") +/client/proc/cmd_admin_areatest_station() + set category = "Mapping" + set name = "Test Areas (STATION Z)" + cmd_admin_areatest(TRUE) + +/client/proc/cmd_admin_areatest_all() + set category = "Mapping" + set name = "Test Areas (ALL)" + cmd_admin_areatest(FALSE) + /client/proc/cmd_admin_dress(mob/living/carbon/human/M in GLOB.mob_list) set category = "Fun" set name = "Select equipment" diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index c42eb6a05e..6283201b41 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -34,7 +34,8 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( /client/proc/startSinglo, /client/proc/set_server_fps, //allows you to set the ticklag. /client/proc/cmd_admin_grantfullaccess, - /client/proc/cmd_admin_areatest, + /client/proc/cmd_admin_areatest_all, + /client/proc/cmd_admin_areatest_station, /client/proc/cmd_admin_rejuvenate, /datum/admins/proc/show_traitor_panel, /client/proc/disable_communication, From 7b4cbf778465db505db28b12fca6b3704d74e2f5 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 8 Aug 2017 07:19:30 -0500 Subject: [PATCH 038/113] adds bear ears and bear tail --- .../new_player/sprite_accessories_Citadel.dm | 11 +++++++++++ icons/mob/mam_bodyparts.dmi | Bin 39950 -> 38375 bytes 2 files changed, 11 insertions(+) diff --git a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm index 9d303f867f..8e724f1aa5 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -240,6 +240,17 @@ hasinner = 1 icon = 'icons/mob/mutant_bodyparts.dmi' +/datum/sprite_accessory/mam_tails/bear + name = "Bear" + icon_state = "bear" + extra_color_src = MUTCOLORS2 + icon = 'icons/mob/mam_bodyparts.dmi' + +/datum/sprite_accessory/mam_ears/bear + name = "Bear" + icon_state = "bear" + icon = 'icons/mob/mam_bodyparts.dmi' + /datum/sprite_accessory/mam_tails/catbig name = "Cat, Big" icon_state = "catbig" diff --git a/icons/mob/mam_bodyparts.dmi b/icons/mob/mam_bodyparts.dmi index c08cf0685a4387ab762b17593430b65b322f5d7d..c9f1ba70e89616558a049949aea4de052e6d5938 100644 GIT binary patch literal 38375 zcmce;2|Sc>zc+l5>>({w7_CyWXU~X)h*D%C`)!zA=%gLj3s0bA^T3q z48}6da=ri2ecsP~-t(O2oag?W=k=MHYs_5Nf4hFa?{EA5=hZE3wFAt@nIQ-|prL+E z7lP=(+kKOa^x%*~VT%C&@cZ61aKHA@&C1oz+1<{`5rVvvzQ)~jIxfcXqWe#N0cWPb z;Ukd&vvnU2+G(cW5?u1X+|HJBq*&9z={(t?P} zA{i* z+fU@{BJW=J9;junl$Daym9O(|d%*~je`x$aH%c+?`3CxCG zwyA2bCq@lS5A3PW)(;L<*dEx>O#R`g zxT)ipnlgW5-fl#)|NfF#HFK=oF@452hLh+e#|~ZcS+-j zeM0B!Qw(mEAC+~PFY*O_40hy~M9bWBiv4}1=|P%#ouGQFF5?3C@5jYa%tp#_Q8y*| zn^opG&}%QphF)B7mlMxwF!@%(rhY!}SgvG!Mr6!6onuj4>6<>+#C&cWJ@Ao*%wpKw z)bvak7k-Ah;yMcik3b2xE-{vz(K9h;?G_nN%Bt98ezWiHLo-BoLC?bS zazDdPyPOqDBnO5XmX<4v4zQb{^;|=iS!)ZI)!^!z~W!~|q-7;FfF>)A^BH>4fH#42QQ#E{q*bRLlxWUS4<8^->fsgyW&lCw1E~-I9af^H9+>&5 zmqGjAQeXe$Wp2N58_OQCmhp}l_bM!SKO!=wotM%s^aQ)YX9uU=u=DzSF&)7T_r>(G z#|aMxSdh?Kj$|cb_qjRGSV$(FqKz5<^-H~SEu(_myW%U#9sK6a8&Pi70n?;I_V4|B zu3B{cqoHk%-V}n`rAp!SjeRqy$|T~`HDr|uctwdz z(t)IbgW~?x>A2yp=H})b*b6yEY=0XMgExfMcM)^L>|t=! z(63)If6SA$1rh@|o~JcGyNd8qZyEmz(-i)|KMxqOXi#tS2B_C)({O z(i9snV)}@O1d}8WTjQaLC#QDmMCfKv`W0I=E2wIdVKcCB^g;FSSPj{X=Mr37DXO6z zwDaRzCv9Pk8@9wAPaRoC?n}f|yY5W>bp*8Vf}#bf`&_BdA7j}~ni-VTzqLc@sAPHj z3ES`J@nnX7ALy+3*SbWOti`T8S?;S`a|is1Az=Ga8S_0AMv>=o!Ea|v(T28r)6nt5 zy;`E6N0E_ZUFl@5cOOMQvIkp`bfWMiCsOxkS!{Q}^5gykW2)pueNjq8tQ+D7rEjix z%M(h{&FEty5{ZTmG+|xfq!?p*=iA2csTFj%Y8lEzosB*yz1GCm6f9{N>~0H3^-x;+ zD2oQyi4$-X(W81fae4q}M_uq^)CDiWU=UJLQVkRer82bW@S4vc!8J6xlvb)3)$S{$ zMl6fnLZi3P+W+B=aO_t8(#6&i`{lIq%kyc|?ZPh_EjgX&&6*~i__9|PtjvZ{yM@C6 ziu38@48(uygBh8BC?+t&{}b8@8u?e0{6Ai1@rZVEOS5blXm2f5ZT0pWMMt+QW>d70 zBb8$Do+4460(9iSeY-R#e>3p>U~iMusnXGcMgtZ-uW++AG&f)8W~I*{6Ycwio`h=z z{sjTi-z=$P?P+67SCNx}0ZNR!Gz=R-;+-Q{t3%K>JR88P%orN6ihq;1n zEPLz`Kn%@T;pZHDKLr^IdsJj>PY2bq4%cW6Cv$AT^HzcoQVeb|RooG3G|G;JxJ`1OmC z`VI+nFH*C^)wdZ*oz$;izrMTrxBsC6-#FumlfevP#;>Ix%T}m{!G-dWDyOg{T

B9_81wl5^9X$eXVr>d$%_y<0RU9P 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 SRFWwDr=qB#kbm9$`TqwYxM;cn literal 39950 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 z z1p)bA0SLb(^PJq;mhh}cRDcv;?*JMjJ+!UzN^3hn(3P&RDO;ebQU^@^^By)9`=(;b z>lU>o<+C#<4)9PJKU02zn3SUdW(th8YNIg(3`~I`?2~D?-&5~!S%9DXix(TO?IJ2~ zgS%Tu_ic#$c>+PLa>U*zZtiMBw$0Bh^q|D7dy=EQ4x(IkSM_fJ_=KI}2p!se8V|?0 zQU6}T(4xzIl(w9YPsFXd;=U$IrC&F1q5e!0C54wk9W`*@%IhQ-Gda}>Q(+(}MHK4! z3BOvrpI(;~<`oc$KYbs^%WFx0sA5|?PD1j8X1V(Q2VRLINOD1fq7 zzEte99~f^)39q|?@+C=L8B4xGXZm|?%bC8)j6&Z^18Gp*+q!NcK%$L)jMHl3_p85`(wbMSVnT|(0C%-4ZttVo;#F{Dw1~ZYj5Yx% zL;h!_{f~r2^AWhrT-GZ@sNd-^2tZRCnfsp}E4_uxe&48u9(H^tv{uN2riOR4qp_Xi`$)Tx?l72 zR>C484@s-bs}-5FA>_+_H70gU7z0qL2zBO{y1&~`>O^7c$t&>Kq_EIhJlZ#BL!_^w zz}LFl=AMH|`I##1$T)?p>$)q4@9= z1?vWTsNdVriL#YUJr$LZGW4X(qR71cppR!>?x-Qhc8z0!XGLzTiBEfv^4_0}SQD4; z>jArfrQq#}^LtQ-bClAVy>O!fqpI(i9!kkHaSO^_FDBh%dhT)9>k<&4JpdEKGLPCt zpywM2^B{O95+0jaWJG4xuR7q?!ndJV7%+soDFzQp&rRAwdeg$i#YMI%!!I&|g~aD+ z8WvlzG_vQm z+hr+dIL5e_<84rAXjc+Uk!%mD($v`3P0vmurIpVfv9&U(^}Iu=D5r?JF7&A4)KEqE z`Ta0ZC9{5~7QCAW4<67>jQXt~pgY$R6B3k^W|Mu_?~_FPC+ojmZX+Rj&p2ThT1LAw z>f@}ozYfkLLw=gp?{nGGmq=B}aRV93r#S;E;V;S~VZ0pnQVObQ@8GL9;>YwWW6hdZ zhO@?-{D(#&6GVsO3yjUa4J!yld;;IBYR^!Mo!w}(y0zV#Ga_l3a=hBR+2i4;^=y}7 z*7FcnsVqXY>iI7Wm?gJ8dC)}92h&$E2Nuesr=pZMt}D-OzD83d=$vA$U^lpkNBMke zp<;hX^^c8iKdl}Sf(T{>T7mlz2n5w&$2Dq~2tQKxIr)(vXZ- z5Xkt_OuT8Uu;2GfdMQ!gll>Vrds(6J>52W8U)I2jF47 zr%{NRo$AwtUw0{S2C$9GJpT8;@dl0h2=e+z3CQjJiM+vwK{cH%S>vsM7Sen%Ib-sioj)(n|_O0ZzsZp*VS_94y)D~Kbq!k zv@iD9WKiws$h_a)E!yr)Xn@sB$v}%#Nc=;Eo=oINC2hjecLm3$Ojy&;d4)Jr2_?;b zFST#(($7mk|G27Hc`n~I-uWPep%vkDKp$|o zbC36LpYdZo{lnyazy}T$FM#>~-7ukliPirX|1y=Y{8#3VJF0cJDYq^Nd|$}qipD#W zO3D5MwZ5$>TBQ2Ts{PzQIZM>PV}@LWeFr}W`0}l~&Kns^+w`A9+or|p(T<}8YZ5X0 z7QR7vh9o*5uEP1}{t3%J=1;^umZ|iXIj+S(WmSPV)AKSbe7gBp@Vl{o1Vz#}V+2>p zLm+*L)y@}5<@{m2sJf&<7+MQ69TELyYOmGDYth+7Y>ot$C(Dc<7euYebLl=s-xNJ4 zoh;rn;fT+Uq)ysn#zPv2t)K}f63(S;<`Y5t{(YNxguI8kJaG$lc08sBE}QxXA+nCw ztF6@Q20v!SG7Z>S3Oso==OoBt!jbI)E2265S&u+=jCw>ShGH_mc3`An+vi5KwLyQ7 zerNK=#L9M?60v34b$0jra~uDgj}iboekbGP)DzGu^f2N4@Mr&)YT8{Y|L`0~e=aO6 zq(OnT{(OZH#Y$=-jt?V}eDc%N&*Mn%x2go1!iqD8himK|GkL?Lf0&~&HT8vbE9Rc| z72mxn_@UoKSw{pAYge#m>*RciBe*-dHeVYzG4=x(m{+CZPu-`k}`2 z!9i5YXGMfvG#&7OS%IIBeevyj`qh0>te-wq46|2z z`2$zy=e$mU^ns}4*qk0C?zU=B`Xfljb-h;o>RC{s%;@YW!IUs8vCN^%`8HJ5(>CnO z;;QK0YQ+$hK*nY(e{^2)i6xP5?f;-8-%PVS20vcSn{PLc6v2%E>EJxDl)4Wa3klFR z=P?6zttG@xmCisNwYj3kiC){Jd(6$xjPHnAT!HL=g$ucm#>`EE_eB^IY1C zg&$yjzN%TCFcUaOF;*h|dh4>dyG1wkR$RwwzcPR48SHnfC9~y0xSIJ4tr1+$i`L1g zFrw0EX8e0!AW7&%@v)%!i*`W%TEy$5OIMDat}h34t-W`ueL_W-O8x{OFRpuzR)x0t zV(Vg0U<`1 z-#IA8o%e8`uRh+>ous?*@?_RiUC)GoHn@NMAwW{*OwWUU;~WI~jJcttv^0Jts&m?~ zf7$>w(w!(>gwbun-|_ics2EEg8yuYT+v^*0D}4J946Bb)EAa+7cGLUY*6z#V4P`3G zBxaaCDr%0FC$F$&qW-F%xC??u5U)&Mi}uO3T?KBQmX>?_;mjD|s6rSLu{0IA#crsC z#Keru%$DVN{~~ql{*VM(#)&Gtu(Rj*&YIG`NR_i9yI3vDHEzYV0g+cLysC@)S{*iw zrBFFIR$k)s(s!F>=o(>M6-uc|$GXfg>pDE%+NNnmWQ0>5>PqQj9Ctv>Y}v8LlYBt)6fr$FyyCw*Xjq15WK10S^(Jyq%H-?><$FttUFkZ}el}!0UNC#Tzu-*#PJ$0{w@b2zsdD->F5H1+{2O=`|Lj4H zLFkSPS8mN$P`6%9AOb)GRsNU`{1phlp%Lfp_{9y#9Tw{cXSUvI_}x`fdH}GYu(11W z%~xMBIWb}3`~J0|Ql4<^+^(*ve>rfoxc11A;3$`U>3maq!RRFp$nwgH@{h?^J~IBt zXTYd3(uyfC*IyFXC#|XTK|j=XWMemV<&~)9z$VP!*TalQ=?qZ5rx}0xHc$mPkL`n> zk*eosfwelPaX3EY(a%C*qI&NyZYk35TmP#pRGYFEkFEgX37$9(WTB56Bu}4l4OEAq ze^Qk?{qO8m3i_20)wOLL(X)vHH=O$;6Dod4UcW9Z`moKD^btj3b05`i2gJ;Ykw}xH z1gpFq?xMFl*x2<_c}Cz(b>0U)){CH!8h($d_Xbsf>xbTV8?N!pxfCoWGA{qTvny-< zWzk<}d?;Du--W0T;>WU6KTGGlGOvzqSy#kQ{DV56RGYPrmSBBu+r=S%tbWWa^=b)ut83r zxpJg3)R^{c;+V`|noB~jt^1Kc?y)!PmnqLF5M+;r3xGgfNVD}}QXkdXky?428esr| z6dszo{!4@0|2N6u-myvG;3`{Qyqtl;$hg{eVJTe5IU?yxu$3Y=u)(E)DoM{CgO56L zvPbCT`7|3NpJma0U7)=8+6M*qR{aa@tHewxDL~Ep;I&Wic25BgN9BXb)RK0`fm`*aRow8~1dxgY!tPGF zO#jtm_eBUxLkO$eB-oz9PFWb5m#Rcg@b;rdfamgIK+c7byfBy4bSEFarC7xQw zx`Q2$7iPz+%pIN3_&>iM`Jik5Xvcax2U*C` zU-RbKzwB89byReP6NgjR)>so5SGt4cA%y|~)~VQKyBUS9c_i(fUOV|WV-vgAdRKae z++X+-1LvE_Gk2koSoQ|`=?<04&JenQ10a|_TOrSMY%)5Xp}9>v%wmG94+VM8=P3VJ z%AOsexlNDcX)yAop$YivbPz7ZX9sM?kkha3D=BDGZG+GND8tlfK1T+s(5Om$s%6#z z%r9w-*U1&qAph@vrUZ|8B~XWK&GPJ}7@t(q&ts7Oo8*6tf(dJYn22}9Yd%o=wXdDur9V1E`mH< zuzmgeyYc_?42u7`Y80g28ELK4Ykyiaah#VCfL3^Lu}0xn>$+E zU;cX+c<5keh<`5onvXBo=@Q=9noJy<^f!8a_HdY}q-?{#odTDRqACQB?6HYY z9y1m^jQN1LC_{QQ2@3&X4AY0a@zdX49Y9-79N-fsVEd1dfE4PiUke=+dU}OD;$goO zvkxZLh}_aLx3VyJuxQFZ()S3$W(M500r^tV4joHY!d2uX`%YFLeX|#e`ud{*pRx+% zOAJ72#H}hn9*fS7j_*i*)oO|l4_iG=5J)e&gEpzd4fZlMH4VgMGxW0!e(kduFbUQL=#)|XvFw(FP~4Z|yz5^M`2R8(NOPlcXZpPMLpl>bpqhM?*GOLF*T z)xnOX{pHE@i;uo6f}2nSa7MMOU-sg(E{)!GKsv2l!%+i*@#t<$wP!zTc`#zJ5}Ixd=_jwXwDBtTZ|Ciok00^z(9&oZqyWj<)uBR#QK( z1{Yo)QZ{H11=ZLuaim5-#>d3xh+K@fYhLEa8+?py+;!cRT%7Zb75po?v$lDN7t#hw z1++CvME6{ZKtp0)A}yaRWokn@PxhWDKUnI|vSyM$ys4uj-hLlF2bg#V$Vr*^ooXLM zJUz%FOf1L?y;W+ec&thy#&G;30RDdR#NUoH2(1_E|2>gQFfZmpkAZKjeBwAY?z2Je zs1s91Fk}UAS+G^Uf_!{$bfQocN3Et1P{%NJI`RX}5U}-vpHAE~=K^!R_HD0YbrVM> zJg65qyvxC!6z_2)*OC89h2<*6Tn zi@}Lpe)LxlbmbG}j2<&hs%3kfRz47*MT5O2!?ZisiuTKwFMEHT)&hxS+x)fs=qWdf zokS$HT_6>%1cShED^o%Aib2_ni1ShRmzI`5UXq~7$D4xyb$L6WLVnQ}} zzX6&*%Tf=-DhaUXj5-$NY{{ixuUFK5TmMR!b4v*XpEZR( zS;?V_Z&RGOjkP2ai{aj`f&cUJ1Zl@)YWV59urQF7_j6xn&^Z4|snxFsINkGS$20H4 z|M90xVR!7F4>VV>c$k5r$t=?Xkv26exUDx%?Dui{N?+D1F#iM~LzGMi4TkA>(oanW z$!aX<>M!>DzkI?}7n>_G9oe$1o0SRc+G{pzweEtU;qTl3<)_%H_mt{?9~)Z3Z&h4B zeyX-VgMRbRpXZ|$j;70a(IE-a(RVB}g?Qie*Z(B6hJH43Fqm_B*1qff97%_D(_A#K z&UPHGI^iRC=v|@`UN}FMQ2$ek&3}s||A)CS)O-9dIQ*~m_uu!nJw3JoqIEAXN-_OZ z;$9IQ%1M%5*EY;WW{c<;-bFn+5lq1U#$mi?x_gVF?xvFcsR29)%43TB0PIUP3RvHu za=YO4BgwkJjXV!_R8A5P-1 zQRD;79K^p@k1!5TgTpG4nme^gQSBC}6q1q2=?wx#=)?@kt#AnQ4zez{_h$cnibLYt zKqv9|&&kQW?CiH(Wy%v6kQc z>G!m>rV52h5$o4rF04-l(-tw{pz7MoVttgO@0oGZ?nj1*gO&pbrvaE3usfnR9Y9px zAWXfK3}!(KH;lXHeZh`RcQWCR4@nW)PzRRe4JoMyPo6~CffaMg&9@Bj%b&nemR?fw zdxYk8Wk-P^l~og9k zmnlXFFHPrVWvP5TcT3={l7O~3n(!M}q9ni%jx0%ESsRvm4Emf;Iu?F}dnG08G5yBQ zC>oe@Mgf<+s!nhEup+OdlBeA=n4oiHrGsJo^V091Q24E^JG1|BsmZt(09 z66KH2xRCmrD?)=DHVT#$Dnr?t7%%nvBASuRUbaR1`o37mgk}5@y%C$Dj1VVwSDG$d zagl9Npzdi?tXs`rZ-X|~nxop&`^N)1ajYQ8ZK>vm6{sMddV3>t9E`>e{4emQXHEgF zA5ffh{PGR#RAKU{7T;LB}~PK=p_>WZ$wwAbroKYyb<@fR;VQP|2$)}?9 z-MbS)$Y5Y#v~8s<;g7YS2MMMWrFH-f(G?74lV59T-*$I*o7H()$hvY4!HM?~6K%8Y zQ3Xo~AXa3E$qE19WLpX!{my&u0e*6be5#s+wr?DAk9^3FPb?PRaqfz?=O1sqU-g}N zZ&HP;;+U>Y(f*_~SL<<~q|s`Tqrc(9TY)Pxh%5i7_ee&Z@85Eb(_xh-fc*cXyvhIH zyy9OW!T*k4`>)tdfEoP;;2#4qxgs_|z|jHIq0@FRIGUMM_8)Q;Th1CQU?*kXD^NGX zXS~$-rb7kSD2GyfWDi{W)YIqYGT=ynu8vK<=NB<3Yujf-vpG6dBicR^R1685zi=}= z1fcT&9h#J=hJ!wZzyMDO4c*zIuFG_`OyfAtWjVee*74UO>79lFVD$Laxpe2{WFwCO&39qB^U zefEd}U8RtUc~Qp|aFtVMsAJQq;D!Ze42bIn_%;w;7=COb|1&_~>yx4p^$AJ}K$ZjJ zxmia_MO{jQC|POVs^teJuCqBRhF+}0J|VvNbMzb}0$tJk#`!i2V)06(p@9L& zz-}TC!e7wcKEXdByIuEkEVGx(r@!nW$>z`Z9X2$`L;wrukv*dAYX9-mN?~i(sO#b! z7uBDk=moMfGL$c>$FaFdu<>!3P*nVm`ykmIeA$*)SG)H7M@Glir&U>>b8>R#usINS zLst82d)i|cd&`IUyUICGAkCWb(b~5VB1$O=-ydq1LQ;a)mSRBPPHAL85aUe31m-L5 zfv3r5{evF0;2ssXg=zU*LpoyW0lO}H!LD%o2p!|}z=Z!2|GD3aYu|FRvV^0DzJd5ObYVV%?qqz zHNRTl$?-1plE_e-HvAC+DV!6hwd{OggH#Ep=~+rdu#_zmSLE45PoRC|A+05SK%fC9(#Y68%V_jpckZEq7j@KBG*IxWbIDCKoIB#Bu8=Jc~uYwG7wnxd0!#lpbT}!A%)Rhsw zt8zP5*ZD$E-F-vz5Cj?i;QrIdS`Vrgv4u11Ngs8F2(tg(cc1fjk(CsWFLqb_7&K%* zE_-w#3T1AzQucdvS_wGgbf;DXPbT8JU8$lzx5ioabfldIBEDzDeo3DCYXS_b`dE*Hg|>^X!h({^VvIc0wqf; zyj{e;pYS*A^~z*x%@`M{3v0~;=~4a{j)j!^h!#XMq@lp5` zZ6Pe|<=O=sWCiR6vIsUl&I*B31Blt~KFNB-$*tH0lCyGio@CKYGOYkFj1$#-7vOh> z@WplfZd}O*XGBkY78x?dOQmV=-dAnf*S-t)#=Xc}!a;8U^mL$BPx&N>WlF)6MhR&o z@2uqbFX)axETm9ttNh*DxeHP4`7kb@TT*mqCaqvYA9DV_cKwel;A(BniKhM%xTgJh z3gNvY)QT{#i_r#&ksw0<{|RXUmj3n0saAYws-BTfCX>Fc8&m5)Xw)BotD^on-~{kt zsJmFF7A;yNEiEllQBfhc|Ni!9Z$%M9{Q&>~fZ>UH0Ou0)0%(Xga26xNs6PMz0DxQ& zz=uiCeu{`B5{ZCY15?sxzmv%%^#=d|0FV;`c%F0s)40h<^yr!=lSw&pEq$%Zyh_ZWx|GohLfb9hM3-=Kw!1iw`yd%Q)006)y0{n>*VSV4v z|9TI@5D@}wkILQ=m(3$C(Jj0I0Dy04@-e@@sv_4Rc29uq&(hw7-2njLJDOwNkJe{W WVNv*!U#%Aa0000 Date: Tue, 8 Aug 2017 09:05:39 -0500 Subject: [PATCH 039/113] fixes some initialize errors --- code/modules/mob/living/simple_animal/bot/secbot.dm | 4 ++-- code/modules/mob/living/simple_animal/friendly/dog.dm | 4 ++-- code/modules/mob/living/simple_animal/hostile/hivebot.dm | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 42c42bcf16..bb69af7301 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -44,7 +44,7 @@ desc = "It's Officer Beep O'sky's smaller, just-as aggressive cousin, Pipsqueak." /mob/living/simple_animal/bot/secbot/beepsky/jr/Initialize() - ..() + . = ..() resize = 0.8 update_transform() @@ -63,7 +63,7 @@ radio_channel = "AI Private" /mob/living/simple_animal/bot/secbot/Initialize() - ..() + . = ..() icon_state = "secbot[on]" spawn(3) var/datum/job/detective/J = new/datum/job/detective diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 54a06cb37f..f80defb32d 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -53,7 +53,7 @@ break /mob/living/simple_animal/pet/dog/corgi/Initialize() - ..() + . = ..() regenerate_icons() @@ -296,7 +296,7 @@ var/saved_head //path /mob/living/simple_animal/pet/dog/corgi/Ian/Initialize() - ..() + . = ..() //parent call must happen first to ensure IAN //is not in nullspace when child puppies spawn Read_Memory() diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 62279262ba..06f2a56a0e 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -29,7 +29,7 @@ loot = list(/obj/effect/decal/cleanable/robot_debris) /mob/living/simple_animal/hostile/hivebot/Initialize() - ..() + . = ..() deathmessage = "[src] blows apart!" /mob/living/simple_animal/hostile/hivebot/range @@ -63,4 +63,4 @@ /mob/living/simple_animal/hostile/hivebot/death(gibbed) do_sparks(3, TRUE, src) - ..(1) \ No newline at end of file + ..(1) From cdbaf5c4e87ebc121a317eda346c2c6a791e00e6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 09:05:44 -0500 Subject: [PATCH 040/113] Standardized CENTCOM spelling --- _maps/RandomZLevels/centcomAway.dmm | 8 +-- _maps/basemap.dm | 2 +- .../map_files/Deltastation/DeltaStation2.dmm | 4 +- _maps/map_files/MetaStation/MetaStation.dmm | 8 +-- .../generic/{Centcomm.dmm => CentCom.dmm} | 62 +++++++++---------- _maps/shuttles/emergency_raven.dmm | 20 +++--- _maps/shuttles/whiteship_meta.dmm | 8 +-- code/__DEFINES/access.dm | 2 +- code/__DEFINES/admin.dm | 2 +- code/__DEFINES/maps.dm | 4 +- code/__DEFINES/shuttles.dm | 2 +- code/controllers/subsystem/shuttle.dm | 8 +-- code/controllers/subsystem/ticker.dm | 2 +- code/datums/map_config.dm | 6 +- code/datums/ruins/space.dm | 2 +- code/datums/shuttles.dm | 10 +-- code/game/area/areas.dm | 2 +- code/game/area/areas/centcom.dm | 10 +-- code/game/atoms.dm | 4 +- code/game/atoms_movable.dm | 2 +- code/game/communications.dm | 4 +- code/game/gamemodes/cult/cult.dm | 2 +- code/game/gamemodes/meteor/meteor.dm | 4 +- .../gamemodes/miniantags/monkey/monkey.dm | 6 +- code/game/gamemodes/nuclear/nuclear.dm | 2 +- code/game/gamemodes/objective.dm | 14 ++--- .../game/machinery/computer/buildandrepair.dm | 2 +- code/game/machinery/computer/card.dm | 2 +- .../game/machinery/computer/communications.dm | 12 ++-- code/game/machinery/computer/crew.dm | 2 +- code/game/machinery/computer/crew.js | 2 +- code/game/machinery/doors/airlock_types.dm | 2 +- .../machinery/porta_turret/portable_turret.dm | 6 +- code/game/machinery/telecomms/broadcasting.dm | 2 +- code/game/objects/effects/contraband.dm | 4 +- code/game/objects/items/devices/PDA/cart.dm | 4 +- .../items/devices/radio/encryptionkey.dm | 2 +- .../objects/items/devices/radio/headset.dm | 4 +- code/game/objects/items/weapons/cards_ids.dm | 4 +- code/game/objects/structures/bedsheet_bin.dm | 2 +- code/game/objects/structures/morgue.dm | 2 +- code/game/objects/structures/showcase.dm | 4 +- code/game/turfs/closed.dm | 2 +- code/modules/admin/secrets.dm | 4 +- code/modules/admin/topic.dm | 24 +++---- code/modules/admin/verbs/one_click_antag.dm | 16 ++--- code/modules/admin/verbs/pray.dm | 2 +- code/modules/admin/verbs/randomverbs.dm | 4 +- .../mission_code/moonoutpost19.dm | 2 +- code/modules/cargo/console.dm | 2 +- code/modules/cargo/exports.dm | 2 +- code/modules/clothing/head/misc.dm | 2 +- code/modules/clothing/outfits/ert.dm | 8 +-- code/modules/clothing/outfits/standard.dm | 8 +-- .../clothing/spacesuits/miscellaneous.dm | 8 +-- code/modules/clothing/suits/armor.dm | 2 +- code/modules/clothing/under/accessories.dm | 2 +- code/modules/clothing/under/miscellaneous.dm | 8 +-- code/modules/events/shuttle_loan.dm | 14 ++--- code/modules/hydroponics/seeds.dm | 2 +- code/modules/jobs/access.dm | 12 ++-- code/modules/jobs/job_types/captain.dm | 2 +- code/modules/mob/living/living.dm | 2 +- code/modules/mob/living/say.dm | 4 +- .../mob/living/silicon/pai/software.dm | 2 +- code/modules/paperwork/contract.dm | 2 +- code/modules/paperwork/paper_premade.dm.rej | 23 +++++++ code/modules/research/rdconsole.dm | 2 +- code/modules/research/research.dm | 2 +- code/modules/research/server.dm | 2 +- code/modules/shuttle/emergency.dm | 2 +- code/modules/shuttle/ferry.dm | 4 +- code/modules/shuttle/shuttle.dm | 4 +- strings/cas_black.txt | 2 +- tgui/assets/tgui.js.rej | 15 +++++ tgui/src/interfaces/cargo.ract | 4 +- tgui/src/interfaces/ntos_card.ract | 2 +- 77 files changed, 246 insertions(+), 208 deletions(-) rename _maps/map_files/generic/{Centcomm.dmm => CentCom.dmm} (99%) create mode 100644 code/modules/paperwork/paper_premade.dm.rej create mode 100644 tgui/assets/tgui.js.rej diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index 7b182a91c3..ea3d101368 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -1817,7 +1817,7 @@ /area/awaymission/centcomAway/courtroom) "fT" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -1932,7 +1932,7 @@ /area/awaymission/centcomAway/courtroom) "gk" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -3830,7 +3830,7 @@ /area/awaymission/centcomAway/thunderdome) "lO" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -4170,7 +4170,7 @@ /area/awaymission/centcomAway/general) "mP" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, diff --git a/_maps/basemap.dm b/_maps/basemap.dm index e5eb12f31b..db5a71afb2 100644 --- a/_maps/basemap.dm +++ b/_maps/basemap.dm @@ -1,4 +1,4 @@ -#include "map_files\generic\Centcomm.dmm" +#include "map_files\generic\CentCom.dmm" #include "map_files\generic\SpaceStation.dmm" #include "map_files\generic\Space.dmm" #include "map_files\generic\SpaceDock.dmm" diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 14e8acd6fd..3e19f173a4 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -68726,12 +68726,12 @@ /obj/item/weapon/folder/blue, /obj/item/clothing/under/rank/centcom_commander{ desc = "A replica of a jumpsuit worn by the highest ranking commanders under Nanotrasen's central command."; - name = "Replica Centcom officer's jumpsuit" + name = "Replica CentCom officer's jumpsuit" }, /obj/item/clothing/head/centhat{ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0); desc = "A replica hat of a Central Commander's attire. It has a small tag on it saying, 'It's good to be emperor.'"; - name = "Replica Centcom hat" + name = "Replica CentCom hat" }, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32 diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index c1a7cc70a7..65eb81a50e 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -79832,12 +79832,12 @@ "cVT" = ( /obj/structure/closet/wardrobe/mixed, /obj/item/clothing/under/rank/centcom_officer{ - desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old Centcom jumpsuit" + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" }, /obj/item/clothing/under/rank/centcom_commander{ - desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old Centcom jumpsuit" + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; diff --git a/_maps/map_files/generic/Centcomm.dmm b/_maps/map_files/generic/CentCom.dmm similarity index 99% rename from _maps/map_files/generic/Centcomm.dmm rename to _maps/map_files/generic/CentCom.dmm index d996a0d7e8..6069ddfa01 100644 --- a/_maps/map_files/generic/Centcomm.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2922,7 +2922,7 @@ /area/centcom/prison) "iG" = ( /turf/closed/indestructible/fakedoor{ - name = "Centcom Cell" + name = "CentCom Cell" }, /area/centcom/prison) "iH" = ( @@ -2957,7 +2957,7 @@ /area/centcom/supply) "iL" = ( /turf/closed/indestructible/fakedoor{ - name = "Centcom Warehouse" + name = "CentCom Warehouse" }, /area/centcom/supply) "iM" = ( @@ -3063,7 +3063,7 @@ "jc" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ - name = "Centcom"; + name = "CentCom"; opacity = 1; req_access_txt = "0" }, @@ -3326,7 +3326,7 @@ dwidth = 5; height = 7; id = "supply_away"; - name = "Centcom"; + name = "CentCom"; width = 12 }, /turf/open/space, @@ -3817,7 +3817,7 @@ /area/centcom/supply) "kM" = ( /turf/closed/indestructible/fakedoor{ - name = "Centcom" + name = "CentCom" }, /area/centcom/control) "kN" = ( @@ -3866,7 +3866,7 @@ /area/centcom/control) "kT" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -3880,7 +3880,7 @@ base_state = "rightsecure"; dir = 2; icon_state = "leftsecure"; - name = "Centcom Stand"; + name = "CentCom Stand"; req_access_txt = "109" }, /obj/machinery/light{ @@ -3917,7 +3917,7 @@ base_state = "rightsecure"; dir = 2; icon_state = "leftsecure"; - name = "Centcom Stand"; + name = "CentCom Stand"; req_access_txt = "109" }, /turf/open/floor/plasteel/grimy, @@ -3936,7 +3936,7 @@ base_state = "rightsecure"; dir = 2; icon_state = "leftsecure"; - name = "Centcom Stand"; + name = "CentCom Stand"; req_access_txt = "109" }, /obj/machinery/light{ @@ -3960,7 +3960,7 @@ /area/centcom/supply) "lc" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Supply"; + name = "CentCom Supply"; req_access_txt = "106" }, /obj/effect/turf_decal/stripes/line{ @@ -4157,7 +4157,7 @@ /area/centcom/control) "lB" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -4752,7 +4752,7 @@ base_state = "rightsecure"; dir = 2; icon_state = "leftsecure"; - name = "Centcom Stand"; + name = "CentCom Stand"; req_access_txt = "109" }, /obj/machinery/firealarm{ @@ -4768,7 +4768,7 @@ base_state = "rightsecure"; dir = 2; icon_state = "leftsecure"; - name = "Centcom Stand"; + name = "CentCom Stand"; req_access_txt = "109" }, /obj/machinery/firealarm{ @@ -5237,7 +5237,7 @@ /obj/structure/table/reinforced, /obj/machinery/door/firedoor, /obj/machinery/door/window/brigdoor{ - name = "Centcom Customs"; + name = "CentCom Customs"; icon_state = "rightsecure"; dir = 4; req_access_txt = "109"; @@ -5767,7 +5767,7 @@ /area/centcom/ferry) "pu" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -5778,7 +5778,7 @@ /area/centcom/supply) "pv" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom"; + name = "CentCom"; opacity = 1; req_access_txt = "0" }, @@ -6455,7 +6455,7 @@ /area/centcom/control) "qQ" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -6652,7 +6652,7 @@ /area/centcom/ferry) "rw" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Supply"; + name = "CentCom Supply"; req_access_txt = "106" }, /obj/effect/turf_decal/stripes/line{ @@ -6906,7 +6906,7 @@ "rW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ - name = "Centcom"; + name = "CentCom"; opacity = 1; req_access_txt = "0" }, @@ -7324,7 +7324,7 @@ base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; - name = "Centcom Customs"; + name = "CentCom Customs"; req_access_txt = "109" }, /obj/machinery/door/window, @@ -7352,7 +7352,7 @@ dwidth = 25; height = 50; id = "emergency_away"; - name = "Centcom Emergency Shuttle Dock"; + name = "CentCom Emergency Shuttle Dock"; width = 50 }, /turf/open/space, @@ -7733,7 +7733,7 @@ "tZ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -7787,7 +7787,7 @@ /area/centcom/ferry) "ug" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Customs"; + name = "CentCom Customs"; opacity = 1; req_access_txt = "109" }, @@ -7928,7 +7928,7 @@ dwidth = 2; height = 13; id = "ferry_away"; - name = "Centcom Ferry Dock"; + name = "CentCom Ferry Dock"; width = 5 }, /turf/open/space, @@ -9168,7 +9168,7 @@ base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; - name = "Centcom Customs"; + name = "CentCom Customs"; req_access_txt = "109" }, /obj/effect/turf_decal/bot, @@ -9192,7 +9192,7 @@ base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; - name = "Centcom Customs"; + name = "CentCom Customs"; req_access_txt = "109" }, /obj/effect/turf_decal/bot, @@ -9759,7 +9759,7 @@ /obj/item/weapon/folder/red, /obj/item/weapon/pen/red, /obj/machinery/door/window/brigdoor{ - name = "Centcom Customs"; + name = "CentCom Customs"; icon_state = "rightsecure"; dir = 4; req_access_txt = "109"; @@ -9774,7 +9774,7 @@ /obj/item/weapon/folder/white, /obj/item/weapon/pen/blue, /obj/machinery/door/window/brigdoor{ - name = "Centcom Customs"; + name = "CentCom Customs"; icon_state = "rightsecure"; dir = 8; req_access_txt = "109"; @@ -10061,7 +10061,7 @@ /area/tdome/tdomeobserve) "zT" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -13647,7 +13647,7 @@ /area/centcom/evac) "Mb" = ( /obj/machinery/door/airlock/centcom{ - name = "Centcom Security"; + name = "CentCom Security"; opacity = 1; req_access_txt = "101" }, @@ -13658,7 +13658,7 @@ /area/centcom/evac) "Mc" = ( /turf/closed/indestructible/fakedoor{ - name = "Centcom" + name = "CentCom" }, /area/centcom/evac) "Md" = ( diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm index 7382695c40..856a118521 100644 --- a/_maps/shuttles/emergency_raven.dmm +++ b/_maps/shuttles/emergency_raven.dmm @@ -1,7 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 9 }, /turf/closed/wall/mineral/plastitanium{ @@ -623,7 +623,7 @@ /obj/docking_port/mobile/emergency{ dwidth = 14; height = 18; - name = "Centcomm Raven Battlecruiser"; + name = "CentCom Raven Battlecruiser"; timid = 1; width = 32 }, @@ -980,7 +980,7 @@ /area/shuttle/escape) "cr" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 5 }, /turf/closed/wall/mineral/plastitanium{ @@ -1006,7 +1006,7 @@ /area/shuttle/escape) "cw" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 5 }, /turf/closed/wall/mineral/plastitanium{ @@ -1108,7 +1108,7 @@ /area/shuttle/escape) "cR" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 5 }, /turf/closed/wall/mineral/plastitanium{ @@ -1311,7 +1311,7 @@ /area/shuttle/escape) "dQ" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 5 }, /turf/closed/wall/mineral/plastitanium{ @@ -1333,7 +1333,7 @@ /area/shuttle/escape) "dV" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 5 }, /turf/closed/wall/mineral/plastitanium{ @@ -1379,7 +1379,7 @@ /area/shuttle/escape) "ei" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 10 }, /turf/closed/wall/mineral/plastitanium{ @@ -1400,7 +1400,7 @@ /area/shuttle/escape) "en" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 6 }, /turf/closed/wall/mineral/plastitanium{ @@ -1461,7 +1461,7 @@ /area/shuttle/escape) "eA" = ( /turf/open/space, -/obj/machinery/porta_turret/centcomm_shuttle{ +/obj/machinery/porta_turret/centcom_shuttle{ dir = 5 }, /turf/closed/wall/mineral/plastitanium{ diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index 2ed07a1004..40ca9e23cf 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -131,12 +131,12 @@ "aq" = ( /obj/structure/closet/wardrobe/mixed, /obj/item/clothing/under/rank/centcom_officer{ - desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old Centcom jumpsuit" + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" }, /obj/item/clothing/under/rank/centcom_commander{ - desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old Centcom jumpsuit" + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index e557a55e7c..bab6206112 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -76,7 +76,7 @@ #define ACCESS_CENT_STORAGE 106//Generic storage areas. #define ACCESS_CENT_TELEPORTER 107//Teleporter. #define ACCESS_CENT_CAPTAIN 109//Captain's office/ID comp/AI. -#define ACCESS_CENT_BAR 110 // The non-existent Centcom Bar +#define ACCESS_CENT_BAR 110 // The non-existent CentCom Bar //The Syndicate #define ACCESS_SYNDICATE 150//General Syndicate Access diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index d3937d50bb..da945e52e6 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -50,7 +50,7 @@ #define ADMIN_SM(user) "(SM)" #define ADMIN_TP(user) "(TP)" #define ADMIN_KICK(user) "(KICK)" -#define ADMIN_CENTCOM_REPLY(user) "(RPLY)" +#define ADMIN_CENTCOM_REPLY(user) "(RPLY)" #define ADMIN_SYNDICATE_REPLY(user) "(RPLY)" #define ADMIN_SC(user) "(SC)" #define ADMIN_SMITE(user) "(SMITE)" diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 9d2ad314e5..084cc7d1ab 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -5,7 +5,7 @@ Names of z-level do not matter, but order does greatly, for instances such as ch current as of 2016/6/2 z1 = station -z2 = centcomm +z2 = centcom z5 = mining Everything else = randomized space Last space-z level = empty @@ -16,7 +16,7 @@ Last space-z level = empty #define UNAFFECTED 0 #define MAIN_STATION "Main Station" -#define CENTCOMM "CentComm" +#define CENTCOM "CentCom" #define EMPTY_AREA_1 "Empty Area 1" #define EMPTY_AREA_2 "Empty Area 2" #define MINING "Mining Asteroid" diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index c495ee3b4a..196e051b64 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -22,7 +22,7 @@ #define SHUTTLE_ALREADY_DOCKED "we_are_already_docked" #define SHUTTLE_SOMEONE_ELSE_DOCKED "someone_else_docked" -//Launching Shuttles to Centcomm +//Launching Shuttles to CentCom #define NOLAUNCH -1 #define UNLAUNCHED 0 #define ENDGAME_LAUNCHED 1 diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index f0c11a0d83..8aff552076 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -34,8 +34,8 @@ SUBSYSTEM_DEF(shuttle) var/obj/docking_port/mobile/supply/supply var/ordernum = 1 //order number given to next order var/points = 5000 //number of trade-points we have - var/centcom_message = "" //Remarks from Centcom on how well you checked the last order. - var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentComm, associated with their potencies + var/centcom_message = "" //Remarks from CentCom on how well you checked the last order. + var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentCom, associated with their potencies var/list/supply_packs = list() var/list/shoppinglist = list() @@ -185,7 +185,7 @@ SUBSYSTEM_DEF(shuttle) switch(emergency.mode) if(SHUTTLE_RECALL) - to_chat(user, "The emergency shuttle may not be called while returning to Centcom.") + to_chat(user, "The emergency shuttle may not be called while returning to CentCom.") return if(SHUTTLE_CALL) to_chat(user, "The emergency shuttle is already on its way.") @@ -200,7 +200,7 @@ SUBSYSTEM_DEF(shuttle) to_chat(user, "The emergency shuttle is moving away to a safe distance.") return if(SHUTTLE_STRANDED) - to_chat(user, "The emergency shuttle has been disabled by Centcom.") + to_chat(user, "The emergency shuttle has been disabled by CentCom.") return call_reason = trim(html_encode(call_reason)) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 08fe58e167..d897b290d4 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -479,7 +479,7 @@ SUBSYSTEM_DEF(ticker) var/list/area/shuttle_areas if(SSshuttle && SSshuttle.emergency) shuttle_areas = SSshuttle.emergency.shuttle_areas - if(!Player.onCentcom() && !Player.onSyndieBase()) + if(!Player.onCentCom() && !Player.onSyndieBase()) to_chat(Player, "You managed to survive, but were marooned on [station_name()]...") else num_escapees++ diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index e80c2848cd..5238c65465 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -11,7 +11,7 @@ var/minetype = "lavaland" - var/list/transition_config = list(CENTCOMM = SELFLOOPING, + var/list/transition_config = list(CENTCOM = SELFLOOPING, MAIN_STATION = CROSSLINKED, EMPTY_AREA_1 = CROSSLINKED, EMPTY_AREA_2 = CROSSLINKED, @@ -115,8 +115,8 @@ return UNAFFECTED if("MAIN_STATION") return MAIN_STATION - if("CENTCOMM") - return CENTCOMM + if("CENTCOM") + return CENTCOM if("MINING") return MINING if("EMPTY_AREA_1") diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 6725e1c541..88beec629f 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -82,7 +82,7 @@ id = "derelict4" suffix = "derelict4.dmm" name = "Derelict 4" - description = "Centcom ferries have never crashed, will never crash, there is no current investigation into a crashed ferry, and we will not let Internal Affairs trample over high security \ + description = "CentCom ferries have never crashed, will never crash, there is no current investigation into a crashed ferry, and we will not let Internal Affairs trample over high security \ information in the name of this baseless witchhunt." /datum/map_template/ruin/space/derelict5 diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index a86574e710..ce38d0af3e 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -133,7 +133,7 @@ /datum/map_template/shuttle/emergency/cramped suffix = "cramped" name = "Secure Transport Vessel 5 (STV5)" - description = "Well, looks like Centcomm only had this ship in the area, they probably weren't expecting you to need evac for a while. \ + description = "Well, looks like CentCom only had this ship in the area, they probably weren't expecting you to need evac for a while. \ Probably best if you don't rifle around in whatever equipment they were transporting. I hope you're friendly with your coworkers, because there is very little space in this thing.\n\ \n\ Contains contraband armory guns, maintenance loot, and abandoned crates!" @@ -181,7 +181,7 @@ suffix = "supermatter" name = "Hyperfractal Gigashuttle" description = "\"I dunno, this seems kinda needlessly complicated.\"\n\ - \"This shuttle has very a very high safety record, according to Centcom Officer Cadet Yins.\"\n\ + \"This shuttle has very a very high safety record, according to CentCom Officer Cadet Yins.\"\n\ \"Are you sure?\"\n\ \"Yes, it has a safety record of N-A-N, which is apparently larger than 100%.\"" admin_notes = "Supermatter that spawns on shuttle is special anchored 'hugbox' supermatter that cannot take damage and does not take in or emit gas. \ @@ -215,7 +215,7 @@ /datum/map_template/shuttle/ferry/base suffix = "base" name = "transport ferry" - description = "Standard issue Box/Metastation Centcom ferry." + description = "Standard issue Box/Metastation CentCom ferry." /datum/map_template/shuttle/ferry/meat suffix = "meat" @@ -267,7 +267,7 @@ /datum/map_template/shuttle/emergency/raven suffix = "raven" - name = "Centcomm Raven Battlecruiser" - description = "The Centcomm Raven Battlecruiser is currently docked at the Centcomm ship bay awaiting a mission, this Battlecruiser has been reassigned as an emergency escape shuttle for currently unknown reasons. The Centcomm Raven Battlecruiser should comfortably fit a medium to large crew size crew and is complete with all required facitlities including a top of the range Centcomm Medical Bay." + name = "CentCom Raven Battlecruiser" + description = "The CentCom Raven Battlecruiser is currently docked at the CentCom ship bay awaiting a mission, this Battlecruiser has been reassigned as an emergency escape shuttle for currently unknown reasons. The CentCom Raven Battlecruiser should comfortably fit a medium to large crew size crew and is complete with all required facitlities including a top of the range CentCom Medical Bay." admin_notes = "The long way home" credit_cost = 12500 diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 3f0b780205..1b8d25aa51 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -41,7 +41,7 @@ var/static_environ var/has_gravity = FALSE - var/noteleport = FALSE //Are you forbidden from teleporting to the area? (centcomm, mobs, wizard, hand teleporter) + var/noteleport = FALSE //Are you forbidden from teleporting to the area? (centcom, mobs, wizard, hand teleporter) var/hidden = FALSE //Hides area from player Teleport function. var/safe = FALSE //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index 1e3efd9f2b..717fc68542 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -2,7 +2,7 @@ // CENTCOM /area/centcom - name = "Centcom" + name = "CentCom" icon_state = "centcom" dynamic_lighting = DYNAMIC_LIGHTING_FORCED requires_power = FALSE @@ -12,16 +12,16 @@ flags = NONE /area/centcom/control - name = "Centcom Docks" + name = "CentCom Docks" /area/centcom/evac - name = "Centcom Recovery Ship" + name = "CentCom Recovery Ship" /area/centcom/supply - name = "Centcom Supply Shuttle Dock" + name = "CentCom Supply Shuttle Dock" /area/centcom/ferry - name = "Centcom Transport Shuttle Dock" + name = "CentCom Transport Shuttle Dock" /area/centcom/prison name = "Admin Prison" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 02113e92a3..6a00f26ffc 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -105,7 +105,7 @@ /atom/proc/CanPass(atom/movable/mover, turf/target) return !density -/atom/proc/onCentcom() +/atom/proc/onCentCom() var/turf/T = get_turf(src) if(!T) return FALSE @@ -126,7 +126,7 @@ if(istype(T.loc, /area/centcom)) return TRUE - //Check for centcomm shuttles + //Check for centcom shuttles for(var/A in SSshuttle.mobile) var/obj/docking_port/mobile/M = A if(M.launch_status == ENDGAME_LAUNCHED) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index dd778b453e..1edca6d632 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -530,7 +530,7 @@ /* Stationloving * * A stationloving atom will always teleport back to the station -* if it ever leaves the station z-levels or Centcom. It will also, +* if it ever leaves the station z-levels or CentCom. It will also, * when Destroy() is called, will teleport to a random turf on the * station. * diff --git a/code/game/communications.dm b/code/game/communications.dm index 5b4f1c39fc..66bb91ef59 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -130,7 +130,7 @@ GLOBAL_LIST_INIT(radiochannels, list( "Medical" = 1355, "Engineering" = 1357, "Security" = 1359, - "Centcom" = 1337, + "CentCom" = 1337, "Syndicate" = 1213, "Supply" = 1347, "Service" = 1349, @@ -146,7 +146,7 @@ GLOBAL_LIST_INIT(reverseradiochannels, list( "1355" = "Medical", "1357" = "Engineering", "1359" = "Security", - "1337" = "Centcom", + "1337" = "CentCom", "1213" = "Syndicate", "1347" = "Supply", "1349" = "Service", diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index e4af3c2d45..971621eb27 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -203,7 +203,7 @@ var/acolytes_survived = 0 for(var/datum/mind/cult_mind in cult) if (cult_mind.current && cult_mind.current.stat != DEAD) - if(cult_mind.current.onCentcom() || cult_mind.current.onSyndieBase()) + if(cult_mind.current.onCentCom() || cult_mind.current.onSyndieBase()) acolytes_survived++ if(acolytes_survived>=acolytes_needed) return 0 diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index 0b20694b58..d652d38d11 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -37,8 +37,8 @@ if(player.stat != DEAD) ++survivors - if(player.onCentcom()) - text += "
[player.real_name] escaped to the safety of Centcom." + if(player.onCentCom()) + text += "
[player.real_name] escaped to the safety of CentCom." else if(player.onSyndieBase()) text += "
[player.real_name] escaped to the (relative) safety of Syndicate Space." else diff --git a/code/game/gamemodes/miniantags/monkey/monkey.dm b/code/game/gamemodes/miniantags/monkey/monkey.dm index da9f4b61f1..f84e4e72b6 100644 --- a/code/game/gamemodes/miniantags/monkey/monkey.dm +++ b/code/game/gamemodes/miniantags/monkey/monkey.dm @@ -41,7 +41,7 @@ /datum/game_mode/monkey/announce() to_chat(world, "The current game mode is - Monkey!") - to_chat(world, "One or more crewmembers have been infected with Jungle Fever! Crew: Contain the outbreak. None of the infected monkeys may escape alive to Centcom. \ + to_chat(world, "One or more crewmembers have been infected with Jungle Fever! Crew: Contain the outbreak. None of the infected monkeys may escape alive to CentCom. \ Monkeys: Ensure that your kind lives on! Rise up against your captors!") @@ -50,7 +50,7 @@ to_chat(carrier.current, "You have been planted onto this station by the Animal Rights Consortium.") to_chat(carrier.current, "Soon the disease will transform you into an ape. Afterwards, you will be able spread the infection to others with a bite.") to_chat(carrier.current, "While your infection strain is undetectable by scanners, any other infectees will show up on medical equipment.") - to_chat(carrier.current, "Your mission will be deemed a success if any of the live infected monkeys reach Centcom.") + to_chat(carrier.current, "Your mission will be deemed a success if any of the live infected monkeys reach CentCom.") return /datum/game_mode/monkey/post_setup() @@ -88,7 +88,7 @@ var/datum/disease/D = new /datum/disease/transformation/jungle_fever() for(var/mob/living/carbon/monkey/M in GLOB.living_mob_list) if (M.HasDisease(D)) - if(M.onCentcom() || M.onSyndieBase()) + if(M.onCentCom() || M.onSyndieBase()) escaped_monkeys++ if(escaped_monkeys >= monkeys_to_win) return 1 diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 63f723b7c2..759c5f4454 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -187,7 +187,7 @@ /datum/game_mode/nuclear/declare_completion() var/disk_rescued = 1 for(var/obj/item/weapon/disk/nuclear/D in GLOB.poi_list) - if(!D.onCentcom()) + if(!D.onCentCom()) disk_rescued = 0 break var/crew_evacuated = (SSshuttle.emergency.mode == SHUTTLE_ENDGAME) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index c74f67c820..e6a22cf3d5 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -157,7 +157,7 @@ H = target.current if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey || (H && H.dna.species.id == "memezombies")) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite return 1 - if(target.current.onCentcom() || target.current.onSyndieBase()) + if(target.current.onCentCom() || target.current.onSyndieBase()) return 0 return 1 @@ -357,7 +357,7 @@ if(istype(location, /turf/open/floor/plasteel/shuttle/red) || istype(location, /turf/open/floor/mineral/plastitanium/brig)) // Fails traitors if they are in the shuttle brig -- Polymorph return 0 - if(location.onCentcom() || location.onSyndieBase()) + if(location.onCentCom() || location.onSyndieBase()) return 1 return 0 @@ -832,15 +832,15 @@ GLOBAL_LIST_EMPTY(possible_items_special) var/list/check_names = department_real_names.Copy() - //Check each department member's mind to see if any of them made it to centcomm alive, if they did it's an automatic fail + //Check each department member's mind to see if any of them made it to centcom alive, if they did it's an automatic fail for(var/datum/mind/M in department_minds) if(M in SSticker.mode.changelings) //Lings aren't picked for this, but let's be safe continue if(M.current) var/turf/mloc = get_turf(M.current) - if(mloc.onCentcom() && (M.current.stat != DEAD)) - return 0 //A Non-ling living target got to centcomm, fail + if(mloc.onCentCom() && (M.current.stat != DEAD)) + return 0 //A Non-ling living target got to centcom, fail //Check each staff member has been replaced, by cross referencing changeling minds, changeling current dna, the staff minds and their original DNA names var/success = 0 @@ -851,11 +851,11 @@ GLOBAL_LIST_EMPTY(possible_items_special) if(ishuman(changeling.current)) var/mob/living/carbon/human/H = changeling.current var/turf/cloc = get_turf(changeling.current) - if(cloc && cloc.onCentcom() && (changeling.current.stat != DEAD)) //Living changeling on centcomm.... + if(cloc && cloc.onCentCom() && (changeling.current.stat != DEAD)) //Living changeling on centcom.... for(var/name in check_names) //Is he (disguised as) one of the staff? if(H.dna.real_name == name) check_names -= name //This staff member is accounted for, remove them, so the team don't succeed by escape as 7 of the same engineer - success++ //A living changeling staff member made it to centcomm + success++ //A living changeling staff member made it to centcom continue changelings if(success >= department_minds.len) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 3d16545baf..889fda3dd8 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -212,7 +212,7 @@ build_path = /obj/machinery/computer/card origin_tech = "programming=3" /obj/item/weapon/circuitboard/computer/card/centcom - name = "Centcom ID Console (Computer Board)" + name = "CentCom ID Console (Computer Board)" build_path = /obj/machinery/computer/card/centcom /obj/item/weapon/circuitboard/computer/card/minor diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index bc298c47b6..a54ab19907 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -562,7 +562,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) head_subordinates += job.title /obj/machinery/computer/card/centcom - name = "\improper Centcom identification console" + name = "\improper CentCom identification console" circuit = /obj/item/weapon/circuitboard/computer/card/centcom req_access = list(ACCESS_CENT_CAPTAIN) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 66c4bfa463..ce6430d75c 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -267,18 +267,18 @@ src.updateDialog() // OMG CENTCOM LETTERHEAD - if("MessageCentcomm") + if("MessageCentCom") if(src.authenticated==2) if(!checkCCcooldown()) to_chat(usr, "Arrays recycling. Please stand by.") return - var/input = stripped_input(usr, "Please choose a message to transmit to Centcom via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to Centcomm.", "") + var/input = stripped_input(usr, "Please choose a message to transmit to CentCom via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to CentCom.", "") if(!input || !(usr in view(1,src)) || !checkCCcooldown()) return playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - Centcomm_announce(input, usr) + CentCom_announce(input, usr) to_chat(usr, "Message transmitted to Central Command.") - log_talk(usr,"[key_name(usr)] has made a Centcom announcement: [input]",LOGSAY) + log_talk(usr,"[key_name(usr)] has made a CentCom announcement: [input]",LOGSAY) CM.lastTimeUsed = world.time @@ -314,7 +314,7 @@ return Nuke_request(input, usr) to_chat(usr, "Request sent.") - log_talk(usr,"[key_name(usr)] has requested the nuclear codes from Centcomm",LOGSAY) + log_talk(usr,"[key_name(usr)] has requested the nuclear codes from CentCom",LOGSAY) priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/ai/commandreport.ogg') CM.lastTimeUsed = world.time @@ -461,7 +461,7 @@ dat += "
\[ Emergency Maintenance Access \]" dat += "
\[ Request Nuclear Authentication Codes \]" if(!emagged) - dat += "
\[ Send Message to Centcom \]" + dat += "
\[ Send Message to CentCom \]" else dat += "
\[ Send Message to \[UNKNOWN\] \]" dat += "
\[ Restore Backup Routing Data \]" diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 9f1e4121cc..e8d3aaf061 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -66,7 +66,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) jobs["Janitor"] = 68 jobs["Lawyer"] = 69 jobs["Admiral"] = 200 - jobs["Centcom Commander"] = 210 + jobs["CentCom Commander"] = 210 jobs["Custodian"] = 211 jobs["Medical Officer"] = 212 jobs["Research Officer"] = 213 diff --git a/code/game/machinery/computer/crew.js b/code/game/machinery/computer/crew.js index e29fda2106..7a2e3caeba 100644 --- a/code/game/machinery/computer/crew.js +++ b/code/game/machinery/computer/crew.js @@ -421,7 +421,7 @@ function getColor(ijob) else if (ijob >= 30 && ijob < 40) { return "#9B59B6"; } // science else if (ijob >= 40 && ijob < 50) { return "#F1C40F"; } // engineering else if (ijob >= 50 && ijob < 60) { return "#F39C12"; } // cargo - else if (ijob >= 200 && ijob < 230) { return "#00C100"; } // Centcom + else if (ijob >= 200 && ijob < 230) { return "#00C100"; } // CentCom else { return "#C38312"; } // other / unknown } diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 72840241b3..198e73c020 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -266,7 +266,7 @@ ////////////////////////////////// /* - Centcom Airlocks + CentCom Airlocks */ /obj/machinery/door/airlock/centcom diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 038f0e0eba..176209a2cb 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -607,7 +607,7 @@ cover.name = name cover.desc = desc -/obj/machinery/porta_turret/centcomm_shuttle +/obj/machinery/porta_turret/centcom_shuttle installation = null max_integrity = 260 always_up = 1 @@ -624,10 +624,10 @@ emp_vunerable = 0 mode = TURRET_LETHAL -/obj/machinery/porta_turret/centcomm_shuttle/assess_perp(mob/living/carbon/human/perp) +/obj/machinery/porta_turret/centcom_shuttle/assess_perp(mob/living/carbon/human/perp) return 0 -/obj/machinery/porta_turret/centcomm_shuttle/setup() +/obj/machinery/porta_turret/centcom_shuttle/setup() return //////////////////////// diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index b64a3a67e0..8ede0a7852 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -102,7 +102,7 @@ // --- This space left blank for Syndicate data --- - // --- Centcom radio, yo. --- + // --- CentCom radio, yo. --- else if(data == 5) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 663fed74fc..2fd24f7429 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -249,7 +249,7 @@ /obj/structure/sign/poster/contraband/tools name = "Tools" - desc = "This poster looks like an advertisement for tools, but is in fact a subliminal jab at the tools at CentComm." + desc = "This poster looks like an advertisement for tools, but is in fact a subliminal jab at the tools at CentCom." icon_state = "poster15" /obj/structure/sign/poster/contraband/power @@ -284,7 +284,7 @@ /obj/structure/sign/poster/contraband/kss13 name = "Kosmicheskaya Stantsiya 13 Does Not Exist" - desc = "A poster mocking CentComm's denial of the existence of the derelict station near Space Station 13." + desc = "A poster mocking CentCom's denial of the existence of the derelict station near Space Station 13." icon_state = "poster22" /obj/structure/sign/poster/contraband/rebels_unite diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 44d9d515b2..fb5fb06d82 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -440,12 +440,12 @@ Code: if(SSshuttle.supply.z != ZLEVEL_STATION) menu += "station" else - menu += "centcomm" + menu += "centcom" menu += " ([SSshuttle.supply.timeLeft(600)] Mins)" else menu += "At " if(SSshuttle.supply.z != ZLEVEL_STATION) - menu += "centcomm" + menu += "centcom" else menu += "station" menu += "
Current approved orders:

    " diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index b34e64bb89..2673869bc4 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -126,7 +126,7 @@ desc = "An encryption key for a radio headset. To access the centcom channel, use :y." icon_state = "cent_cypherkey" independent = TRUE - channels = list("Centcom" = 1) + channels = list("CentCom" = 1) /obj/item/device/encryptionkey/ai //ported from NT, this goes 'inside' the AI. channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index b00509cd38..79c0cb4b87 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -196,7 +196,7 @@ keyslot = new /obj/item/device/encryptionkey/headset_service /obj/item/device/radio/headset/headset_cent - name = "\improper Centcom headset" + name = "\improper CentCom headset" desc = "A headset used by the upper echelons of Nanotrasen. \nTo access the centcom channel, use :y." icon_state = "cent_headset" keyslot = new /obj/item/device/encryptionkey/headset_com @@ -206,7 +206,7 @@ keyslot = new /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/headset_cent/alt - name = "\improper Centcom bowman headset" + name = "\improper CentCom bowman headset" desc = "A headset especially for emergency response personnel. Protects ears from flashbangs. \nTo access the centcom channel, use :y." icon_state = "cent_headset_alt" item_state = "cent_headset_alt" diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 380a68f16a..3f89e593d5 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -223,7 +223,7 @@ update_label("John Doe", "Clowny") ..() /obj/item/weapon/card/id/centcom - name = "\improper Centcom ID" + name = "\improper CentCom ID" desc = "An ID straight from Cent. Com." icon_state = "centcom" registered_name = "Central Command" @@ -234,7 +234,7 @@ update_label("John Doe", "Clowny") ..() /obj/item/weapon/card/id/ert - name = "\improper Centcom ID" + name = "\improper CentCom ID" desc = "A ERT ID card" icon_state = "centcom" registered_name = "Emergency Response Team Commander" diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 206c9daf33..a149ed32ba 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -183,7 +183,7 @@ LINEN BINS dream_messages = list("black") /obj/item/weapon/bedsheet/centcom - name = "\improper Centcom bedsheet" + name = "\improper CentCom bedsheet" desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials." icon_state = "sheetcentcom" item_color = "centcom" diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 3736fe5589..d7777cc69c 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -140,7 +140,7 @@ /obj/item/weapon/paper/guides/jobs/medical/morgue name = "morgue memo" - info = "Since this station's medbay never seems to fail to be staffed by the mindless monkeys meant for genetics experiments, I'm leaving a reminder here for anyone handling the pile of cadavers the quacks are sure to leave.

    Red lights mean there's a plain ol' dead body inside.

    Yellow lights mean there's non-body objects inside.
    Probably stuff pried off a corpse someone grabbed, or if you're lucky it's stashed booze.

    Green lights mean the morgue system detects the body may be able to be cloned.

    I don't know how that works, but keep it away from the kitchen and go yell at the geneticists.

    - Centcom medical inspector" + info = "Since this station's medbay never seems to fail to be staffed by the mindless monkeys meant for genetics experiments, I'm leaving a reminder here for anyone handling the pile of cadavers the quacks are sure to leave.

    Red lights mean there's a plain ol' dead body inside.

    Yellow lights mean there's non-body objects inside.
    Probably stuff pried off a corpse someone grabbed, or if you're lucky it's stashed booze.

    Green lights mean the morgue system detects the body may be able to be cloned.

    I don't know how that works, but keep it away from the kitchen and go yell at the geneticists.

    - CentCom medical inspector" /* * Crematorium diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm index 4e9d7b896b..5ac194ece3 100644 --- a/code/game/objects/structures/showcase.dm +++ b/code/game/objects/structures/showcase.dm @@ -12,7 +12,7 @@ var/deconstruction_state = SHOWCASE_CONSTRUCTED /obj/structure/showcase/fakeid - name = "\improper Centcom identification console" + name = "\improper CentCom identification console" desc = "You can use this to change ID's." icon = 'icons/obj/computer.dmi' icon_state = "computer" @@ -23,7 +23,7 @@ add_overlay("id_key") /obj/structure/showcase/fakesec - name = "\improper Centcom security records" + name = "\improper CentCom security records" desc = "Used to view and edit personnel's security records" icon = 'icons/obj/computer.dmi' icon_state = "computer" diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 0b87c28f8f..2ea3ffe7fc 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -75,7 +75,7 @@ underlays += mutable_appearance('icons/turf/floors.dmi', "plating") //add the plating underlay, below the grille /turf/closed/indestructible/fakedoor - name = "Centcom Access" + name = "CentCom Access" icon = 'icons/obj/doors/airlocks/centcom/centcom.dmi' icon_state = "fake_door" diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index be09ebd3ef..c3185c7b21 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -214,7 +214,7 @@ if("moveferry") if(!check_rights(R_ADMIN)) return - SSblackbox.add_details("admin_secrets_fun_used","Send Centcom Ferry") + SSblackbox.add_details("admin_secrets_fun_used","Send CentCom Ferry") if(!SSshuttle.toggleShuttle("ferry","ferry_home","ferry_away")) message_admins("[key_name_admin(usr)] moved the centcom ferry") log_admin("[key_name(usr)] moved the centcom ferry") @@ -457,7 +457,7 @@ if(W.z == ZLEVEL_STATION && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) W.req_access = list() message_admins("[key_name_admin(usr)] activated Egalitarian Station mode") - priority_announce("Centcom airlock control override activated. Please take this time to get acquainted with your coworkers.", null, 'sound/ai/commandreport.ogg') + priority_announce("CentCom airlock control override activated. Please take this time to get acquainted with your coworkers.", null, 'sound/ai/commandreport.ogg') if("guns") if(!check_rights(R_FUN)) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 5436590e83..818b0d6f09 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -102,13 +102,13 @@ message_admins("[key_name(usr)] tried to create gangs. Unfortunately, there were not enough candidates available.") log_admin("[key_name(usr)] failed create gangs.") if("centcom") - message_admins("[key_name(usr)] is creating a Centcom response team...") + message_admins("[key_name(usr)] is creating a CentCom response team...") if(src.makeEmergencyresponseteam()) - message_admins("[key_name(usr)] created a Centcom response team.") - log_admin("[key_name(usr)] created a Centcom response team.") + message_admins("[key_name(usr)] created a CentCom response team.") + log_admin("[key_name(usr)] created a CentCom response team.") else - message_admins("[key_name_admin(usr)] tried to create a Centcom response team. Unfortunately, there were not enough candidates available.") - log_admin("[key_name(usr)] failed to create a Centcom response team.") + message_admins("[key_name_admin(usr)] tried to create a CentCom response team. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a CentCom response team.") if("abductors") message_admins("[key_name(usr)] is creating an abductor team...") if(src.makeAbductorTeam()) @@ -1710,8 +1710,8 @@ usr.client.smite(H) - else if(href_list["CentcommReply"]) - var/mob/living/carbon/human/H = locate(href_list["CentcommReply"]) in GLOB.mob_list + else if(href_list["CentComReply"]) + var/mob/living/carbon/human/H = locate(href_list["CentComReply"]) in GLOB.mob_list if(!istype(H)) to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") return @@ -1719,15 +1719,15 @@ to_chat(usr, "The person you are trying to contact is not wearing a headset.") return - message_admins("[src.owner] has started answering [key_name(H)]'s Centcomm request.") - var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from Centcom", "") + message_admins("[src.owner] has started answering [key_name(H)]'s CentCom request.") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from CentCom", "") if(!input) - message_admins("[src.owner] decided not to answer [key_name(H)]'s Centcomm request.") + message_admins("[src.owner] decided not to answer [key_name(H)]'s CentCom request.") return to_chat(src.owner, "You sent [input] to [H] via a secure channel.") - log_admin("[src.owner] replied to [key_name(H)]'s Centcom message with the message [input].") - message_admins("[src.owner] replied to [key_name(H)]'s Centcom message with: \"[input]\"") + log_admin("[src.owner] replied to [key_name(H)]'s CentCom message with the message [input].") + message_admins("[src.owner] replied to [key_name(H)]'s CentCom message with: \"[input]\"") to_chat(H, "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. [input]. Message ends.\"") else if(href_list["SyndicateReply"]) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 2bf7842c1c..c8df7f56f1 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -20,7 +20,7 @@ Make Gangsters
    Make Wizard (Requires Ghosts)
    Make Nuke Team (Requires Ghosts)
    - Make Centcom Response Team (Requires Ghosts)
    + Make CentCom Response Team (Requires Ghosts)
    Make Abductor Team (Requires Ghosts)
    Make Revenant (Requires Ghost)
    "} @@ -397,7 +397,7 @@ /datum/admins/proc/makeOfficial() var/mission = input("Assign a task for the official", "Assign Task", "Conduct a routine preformance review of [station_name()] and its Captain.") - var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered to be a Centcom Official?", "deathsquad") + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered to be a CentCom Official?", "deathsquad") if(candidates.len) var/mob/dead/observer/chosen_candidate = pick(candidates) @@ -408,7 +408,7 @@ newmob.real_name = newmob.dna.species.random_name(newmob.gender,1) newmob.dna.update_dna_identity() newmob.key = chosen_candidate.key - newmob.mind.assigned_role = "Centcom Official" + newmob.mind.assigned_role = "CentCom Official" newmob.equipOutfit(/datum/outfit/centcom_official) //Assign antag status and the mission @@ -424,12 +424,12 @@ newmob.set_species(/datum/species/human) //Greet the official - to_chat(newmob, "You are a Centcom Official.") + to_chat(newmob, "You are a CentCom Official.") to_chat(newmob, "
    Central Command is sending you to [station_name()] with the task: [mission]") //Logging and cleanup - message_admins("Centcom Official [key_name_admin(newmob)] has spawned with the task: [mission]") - log_game("[key_name(newmob)] has been selected as a Centcom Official") + message_admins("CentCom Official [key_name_admin(newmob)] has spawned with the task: [mission]") + log_game("[key_name(newmob)] has been selected as a CentCom Official") return 1 @@ -437,7 +437,7 @@ // CENTCOM RESPONSE TEAM /datum/admins/proc/makeEmergencyresponseteam() - var/alert = input("Which team should we send?", "Select Response Level") as null|anything in list("Green: Centcom Official", "Blue: Light ERT (No Armoury Access)", "Amber: Full ERT (Armoury Access)", "Red: Elite ERT (Armoury Access + Pulse Weapons)", "Delta: Deathsquad") + var/alert = input("Which team should we send?", "Select Response Level") as null|anything in list("Green: CentCom Official", "Blue: Light ERT (No Armoury Access)", "Amber: Full ERT (Armoury Access)", "Red: Elite ERT (Armoury Access + Pulse Weapons)", "Delta: Deathsquad") if(!alert) return switch(alert) @@ -449,7 +449,7 @@ alert = "Amber" if("Blue: Light ERT (No Armoury Access)") alert = "Blue" - if("Green: Centcom Official") + if("Green: CentCom Official") return makeOfficial() var/teamcheck = input("Maximum size of team? (7 max)", "Select Team Size",4) as null|num if(isnull(teamcheck)) diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index a385e68560..1b2fa82e20 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -46,7 +46,7 @@ SSblackbox.add_details("admin_verb","Prayer") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //log_admin("HELP: [key_name(src)]: [msg]") -/proc/Centcomm_announce(text , mob/Sender) +/proc/CentCom_announce(text , mob/Sender) var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) msg = "CENTCOM:[ADMIN_FULLMONTY(Sender)] [ADMIN_CENTCOM_REPLY(Sender)]: [msg]" to_chat(GLOB.admins, msg) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index de066837ee..1429c700aa 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1208,6 +1208,6 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits if(!message) return - message_admins("[key_name_admin(usr)] triggered a Centcom recall, with the admiral message of: [message]") - log_game("[key_name(usr)] triggered a Centcom recall, with the message of: [message]") + message_admins("[key_name_admin(usr)] triggered a CentCom recall, with the admiral message of: [message]") + log_game("[key_name(usr)] triggered a CentCom recall, with the message of: [message]") SSshuttle.centcom_recall(SSshuttle.emergency.timer, message) diff --git a/code/modules/awaymissions/mission_code/moonoutpost19.dm b/code/modules/awaymissions/mission_code/moonoutpost19.dm index 0f30a5e202..20973d242f 100644 --- a/code/modules/awaymissions/mission_code/moonoutpost19.dm +++ b/code/modules/awaymissions/mission_code/moonoutpost19.dm @@ -66,7 +66,7 @@ /obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/log/gerald name = "Personal Log - Gerald Rosswell" - info = "Personal Log for Research Director Gerald Rosswell

    Entry One - 17/05/2554:
    You know, I can't believe I took this position so suddenly. I saw that corporate needed a research director for one of it's outposts and thought it would be a cakewalk, there isn't going to be a lot of research to be done on a tiny outpost. Mainly just running scans on the gas giant we are orbiting or some basic RnD. However, they conveniently forgot to tell me that me and my science staff would have to pull double duty as medical staff and that there is no one higher up on the chain of command here, so I get to pull triple duty as acting captain as well! This shit is probably allowed in some 3 point fine print buried underneath the literally thousands of pages of contracts. Well, at least the research will be easy work.

    Entry Two - 25/05/2554:
    Well, we all expected it at the outpost, CentComm has decided to completely change what research we are doing. They've decided that we should be research the species known as 'xenomporphs'. They announced this change 4 days ago and along with it, sadly, the termination of our current science staff barring me. Not to mention the constant noise made by the construction detail they sent to staple on an xenobiology lab ensuring no one has been able to sleep decently ever since they announced the shift. To make matters worse our current security guard actually died of a heart attack today. Just goes to show that 75 year old men shouldn't be security guards. Still can't believe that they decided to do this major change less than a month after the outpost was established.

    Entry Three - 27/05/2554:
    The new security guard arrived today. Apparently transferred here from the research station that also is orbiting the gas giant. He seems to be rather angry about his transfer. Considering the rumors I've heard about the research station he's probably caught off guard by the fact that Steve hasn't tried to force an IED down his throat.

    Entry Four - 06/06/2554:
    My requests for additional security and containment measures for the 'xenomorph' has been denied. Does Central Command not notice how dangerous these creatures are? The only thing keeping them in is a force field, a minor problem with the power grid and the entire hive is loose. What would stop them then, the lone security guard with a dinky little taser? Kenneth can barely handle a short-tempered engineer. We are under equipped and under staffed, we are inevitably going to be destroyed unless we get the equipment and staff we need.

    Entry Five - 10/06/2554:
    Cunningham got a good look at the xenomorph in containment. He was frightened for the rest of the day, rather amusing if it wasn't for the fact that we are all trapped on this scrap heap with naught but a force field keeping those xenomorphs in.

    Entry Six - 17/06/2554:
    The reactions from the specimens today has shown that they possess strange mental properties. Mark hypothesizes that they possibly have a sort of hive mind, while nothing is certain this would explain how xenomorphs seem to have vastly increased intellect when a 'queen' is present. Of course, to test this hypothesis would require many complicated procedures which we will not be able to undertake. But we do not know the full extend of the xenomorph mind, it may or may not be able to find a way to circumvent our containment system. I will resend my request for additional security measures along with this new found information." + info = "Personal Log for Research Director Gerald Rosswell

    Entry One - 17/05/2554:
    You know, I can't believe I took this position so suddenly. I saw that corporate needed a research director for one of it's outposts and thought it would be a cakewalk, there isn't going to be a lot of research to be done on a tiny outpost. Mainly just running scans on the gas giant we are orbiting or some basic RnD. However, they conveniently forgot to tell me that me and my science staff would have to pull double duty as medical staff and that there is no one higher up on the chain of command here, so I get to pull triple duty as acting captain as well! This shit is probably allowed in some 3 point fine print buried underneath the literally thousands of pages of contracts. Well, at least the research will be easy work.

    Entry Two - 25/05/2554:
    Well, we all expected it at the outpost, CentCom has decided to completely change what research we are doing. They've decided that we should be research the species known as 'xenomporphs'. They announced this change 4 days ago and along with it, sadly, the termination of our current science staff barring me. Not to mention the constant noise made by the construction detail they sent to staple on an xenobiology lab ensuring no one has been able to sleep decently ever since they announced the shift. To make matters worse our current security guard actually died of a heart attack today. Just goes to show that 75 year old men shouldn't be security guards. Still can't believe that they decided to do this major change less than a month after the outpost was established.

    Entry Three - 27/05/2554:
    The new security guard arrived today. Apparently transferred here from the research station that also is orbiting the gas giant. He seems to be rather angry about his transfer. Considering the rumors I've heard about the research station he's probably caught off guard by the fact that Steve hasn't tried to force an IED down his throat.

    Entry Four - 06/06/2554:
    My requests for additional security and containment measures for the 'xenomorph' has been denied. Does Central Command not notice how dangerous these creatures are? The only thing keeping them in is a force field, a minor problem with the power grid and the entire hive is loose. What would stop them then, the lone security guard with a dinky little taser? Kenneth can barely handle a short-tempered engineer. We are under equipped and under staffed, we are inevitably going to be destroyed unless we get the equipment and staff we need.

    Entry Five - 10/06/2554:
    Cunningham got a good look at the xenomorph in containment. He was frightened for the rest of the day, rather amusing if it wasn't for the fact that we are all trapped on this scrap heap with naught but a force field keeping those xenomorphs in.

    Entry Six - 17/06/2554:
    The reactions from the specimens today has shown that they possess strange mental properties. Mark hypothesizes that they possibly have a sort of hive mind, while nothing is certain this would explain how xenomorphs seem to have vastly increased intellect when a 'queen' is present. Of course, to test this hypothesis would require many complicated procedures which we will not be able to undertake. But we do not know the full extend of the xenomorph mind, it may or may not be able to find a way to circumvent our containment system. I will resend my request for additional security measures along with this new found information." /obj/item/weapon/paper/fluff/awaymissions/moonoutpost19/food_specials name = "Specials This Week" diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index e21f9b7ed2..15117c1cbb 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -122,7 +122,7 @@ return else SSshuttle.shuttle_loan.loan_shuttle() - say("The supply shuttle has been loaned to Centcom.") + say("The supply shuttle has been loaned to CentCom.") . = TRUE if("add") var/id = text2path(params["id"]) diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index bca290c4db..8a36f178a4 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -1,5 +1,5 @@ /* How it works: - The shuttle arrives at Centcom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored. + The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored. The loop only checks contents of storage types, see supply.dm shuttle code. Each object in the loop is checked for applies_to() of various export datums, except the invalid ones. diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 3eabbad438..2c972ccc70 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -1,7 +1,7 @@ /obj/item/clothing/head/centhat - name = "\improper Centcom hat" + name = "\improper CentCom hat" icon_state = "centcom" desc = "It's good to be emperor." item_state = "that" diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index cd2b4c18d5..f3c6690ce4 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -161,7 +161,7 @@ /datum/outfit/centcom_official - name = "Centcom Official" + name = "CentCom Official" uniform = /obj/item/clothing/under/rank/centcom_officer shoes = /obj/item/clothing/shoes/sneakers/black @@ -181,13 +181,13 @@ var/obj/item/device/pda/heads/pda = H.r_store pda.owner = H.real_name - pda.ownjob = "Centcom Official" + pda.ownjob = "CentCom Official" pda.update_label() var/obj/item/weapon/card/id/W = H.wear_id W.icon_state = "centcom" - W.access = get_centcom_access("Centcom Official") + W.access = get_centcom_access("CentCom Official") W.access += ACCESS_WEAPONS - W.assignment = "Centcom Official" + W.assignment = "CentCom Official" W.registered_name = H.real_name W.update_label() diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index a16226bda5..66b62d3a67 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -182,7 +182,7 @@ W.update_label(H.real_name) /datum/outfit/centcom_commander - name = "Centcom Commander" + name = "CentCom Commander" uniform = /obj/item/clothing/under/rank/centcom_commander suit = /obj/item/clothing/suit/armor/bulletproof @@ -205,8 +205,8 @@ var/obj/item/weapon/card/id/W = H.wear_id W.icon_state = "centcom" W.access = get_all_accesses() - W.access += get_centcom_access("Centcom Commander") - W.assignment = "Centcom Commander" + W.access += get_centcom_access("CentCom Commander") + W.assignment = "CentCom Commander" W.registered_name = H.real_name W.update_label() @@ -374,7 +374,7 @@ var/obj/item/weapon/card/id/W = H.wear_id W.icon_state = "centcom" W.access = get_all_accesses()//They get full station access. - W.access += get_centcom_access("Death Commando")//Let's add their alloted Centcom access. + W.access += get_centcom_access("Death Commando")//Let's add their alloted CentCom access. W.assignment = "Death Commando" W.registered_name = H.real_name W.update_label(W.registered_name, W.assignment) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index fea8665ead..f4b99baad7 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -82,7 +82,7 @@ Contains: //NASA Voidsuit /obj/item/clothing/head/helmet/space/nasavoid name = "NASA Void Helmet" - desc = "An old, NASA Centcom branch designed, dark red space suit helmet." + desc = "An old, NASA CentCom branch designed, dark red space suit helmet." icon_state = "void" item_state = "void" @@ -90,12 +90,12 @@ Contains: name = "NASA Voidsuit" icon_state = "void" item_state = "void" - desc = "An old, NASA Centcom branch designed, dark red space suit." + desc = "An old, NASA CentCom branch designed, dark red space suit." allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/device/multitool) /obj/item/clothing/head/helmet/space/nasavoid/old name = "Engineering Void Helmet" - desc = "A Centcom engineering dark red space suit helmet. While old and dusty, it still gets the job done." + desc = "A CentCom engineering dark red space suit helmet. While old and dusty, it still gets the job done." icon_state = "void" item_state = "void" @@ -103,7 +103,7 @@ Contains: name = "Engineering Voidsuit" icon_state = "void" item_state = "void" - desc = "A Centcom engineering dark red space suit. Age has degraded the suit making is difficult to move around in." + desc = "A CentCom engineering dark red space suit. Age has degraded the suit making is difficult to move around in." slowdown = 4 allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/device/multitool) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 1172321a89..aada779689 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -341,7 +341,7 @@ //All of the armor below is mostly unused /obj/item/clothing/suit/armor/centcom - name = "\improper Centcom armor" + name = "\improper CentCom armor" desc = "A suit that protects against some damage." icon_state = "centcom" item_state = "centcom" diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 0345bb336b..0327b24fe0 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -182,7 +182,7 @@ /obj/item/clothing/accessory/medal/gold/heroism name = "medal of exceptional heroism" - desc = "An extremely rare golden medal awarded only by Centcom. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders." + desc = "An extremely rare golden medal awarded only by CentCom. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders." /obj/item/clothing/accessory/medal/plasma name = "plasma medal" diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 062f15b5b2..9194ec0b20 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -104,16 +104,16 @@ can_adjust = 0 /obj/item/clothing/under/rank/centcom_officer - desc = "It's a jumpsuit worn by Centcom Officers." - name = "\improper Centcom officer's jumpsuit" + desc = "It's a jumpsuit worn by CentCom Officers." + name = "\improper CentCom officer's jumpsuit" icon_state = "officer" item_state = "g_suit" item_color = "officer" alt_covers_chest = 1 /obj/item/clothing/under/rank/centcom_commander - desc = "It's a jumpsuit worn by Centcom's highest-tier Commanders." - name = "\improper Centcom officer's jumpsuit" + desc = "It's a jumpsuit worn by CentCom's highest-tier Commanders." + name = "\improper CentCom officer's jumpsuit" icon_state = "centcom" item_state = "dg_suit" item_color = "centcom" diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm index d04d2fe65a..2600aa98a2 100644 --- a/code/modules/events/shuttle_loan.dm +++ b/code/modules/events/shuttle_loan.dm @@ -27,22 +27,22 @@ SSshuttle.shuttle_loan = src switch(dispatch_type) if(HIJACK_SYNDIE) - priority_announce("Cargo: The syndicate are trying to infiltrate your station. If you let them hijack your cargo shuttle, you'll save us a headache.","Centcom Counter Intelligence") + priority_announce("Cargo: The syndicate are trying to infiltrate your station. If you let them hijack your cargo shuttle, you'll save us a headache.","CentCom Counter Intelligence") if(RUSKY_PARTY) - priority_announce("Cargo: A group of angry russians want to have a party, can you send them your cargo shuttle then make them disappear?","Centcom Russian Outreach Program") + priority_announce("Cargo: A group of angry russians want to have a party, can you send them your cargo shuttle then make them disappear?","CentCom Russian Outreach Program") if(SPIDER_GIFT) - priority_announce("Cargo: The Spider Clan has sent us a mysterious gift, can we ship it to you to see what's inside?","Centcom Diplomatic Corps") + priority_announce("Cargo: The Spider Clan has sent us a mysterious gift, can we ship it to you to see what's inside?","CentCom Diplomatic Corps") if(DEPARTMENT_RESUPPLY) - priority_announce("Cargo: Seems we've ordered doubles of our department resupply packages this month. Can we send them to you?","Centcom Supply Department") + priority_announce("Cargo: Seems we've ordered doubles of our department resupply packages this month. Can we send them to you?","CentCom Supply Department") thanks_msg = "The cargo shuttle should return in 5 minutes." bonus_points = 0 if(ANTIDOTE_NEEDED) - priority_announce("Cargo: Your station has been chosen for an epidemiological research project. Send us your cargo shuttle to receive your research samples.", "Centcom Research Initiatives") + priority_announce("Cargo: Your station has been chosen for an epidemiological research project. Send us your cargo shuttle to receive your research samples.", "CentCom Research Initiatives") if (PIZZA_DELIVERY) - priority_announce("Cargo: It looks like a neighbouring station accidentally delivered their pizza to you instead", "Centcom Spacepizza Division") + priority_announce("Cargo: It looks like a neighbouring station accidentally delivered their pizza to you instead", "CentCom Spacepizza Division") /datum/round_event/shuttle_loan/proc/loan_shuttle() - priority_announce(thanks_msg, "Cargo shuttle commandeered by Centcom.") + priority_announce(thanks_msg, "Cargo shuttle commandeered by CentCom.") dispatched = 1 SSshuttle.points += bonus_points diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 4b83485fa5..42d7cd1239 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -23,7 +23,7 @@ var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested. var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways. var/growthstages = 6 // Amount of growth sprites the plant has. - var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to Centcom. + var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to CentCom. var/list/mutatelist = list() // The type of plants that this plant can mutate into. var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info. var/list/reagents_add = list() diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 387519a8e8..8b3deb1a8c 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -111,7 +111,7 @@ return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE) if("Thunderdome Overseer") return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER) - if("Centcom Official") + if("CentCom Official") return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING) if("Medical Officer") return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_MEDICAL) @@ -123,7 +123,7 @@ return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE) if("Admiral") return get_all_centcom_access() - if("Centcom Commander") + if("CentCom Commander") return get_all_centcom_access() if("Emergency Response Team Commander") return get_ert_access("commander") @@ -133,7 +133,7 @@ return get_ert_access("eng") if("Medical Response Officer") return get_ert_access("med") - if("Centcom Bartender") + if("CentCom Bartender") return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_BAR) /proc/get_all_accesses() @@ -370,7 +370,7 @@ return get_all_jobs() + list("Prisoner") /proc/get_all_centcom_jobs() - return list("VIP Guest","Custodian","Thunderdome Overseer","Centcom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","Centcom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer","Centcom Bartender") + return list("VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","CentCom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer","CentCom Bartender") /obj/item/proc/GetJobName() //Used in secHUD icon generation var/obj/item/weapon/card/id/I = GetID() @@ -379,6 +379,6 @@ var/jobName = I.assignment if(jobName in get_all_job_icons()) //Check if the job has a hud icon return jobName - if(jobName in get_all_centcom_jobs()) //Return with the NT logo if it is a Centcom job - return "Centcom" + if(jobName in get_all_centcom_jobs()) //Return with the NT logo if it is a CentCom job + return "CentCom" return "Unknown" //Return unknown if none of the above apply diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index a6b6f25aea..b9d01b7c02 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -4,7 +4,7 @@ Captain /datum/job/captain title = "Captain" flag = CAPTAIN - department_head = list("Centcom") + department_head = list("CentCom") department_flag = ENGSEC faction = "Station" total_positions = 1 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6624e5740f..b58fb0ec13 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -754,7 +754,7 @@ var/turf/T = get_turf(src) if(!T) return 0 - if(T.z == ZLEVEL_CENTCOM) //dont detect mobs on centcomm + if(T.z == ZLEVEL_CENTCOM) //dont detect mobs on centcom return 0 if(T.z >= ZLEVEL_SPACEMAX) return 0 diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index dcc9e0a58c..68e2b150f3 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -18,7 +18,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( // Faction "t" = "Syndicate", - "y" = "Centcom", + "y" = "CentCom", // Species "b" = "binary", @@ -53,7 +53,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( // Faction "å" = "Syndicate", - "í" = "Centcom", + "í" = "CentCom", // Species "è" = "binary", diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 0806f457d9..77874ad403 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -331,7 +331,7 @@ /mob/living/silicon/pai/proc/downloadSoftware() var/dat = "" - dat += "

    Centcom pAI Module Subversion Network


    " + dat += "

    CentCom pAI Module Subversion Network


    " dat += "
    Remaining Available Memory: [src.ram]

    " dat += "

    Trunks available for checkout
    " diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 548c8eae9c..39f0d7a933 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -36,7 +36,7 @@ if(M.mind == target && !M.owns_soul()) if(user.mind && (user.mind.assigned_role == "Lawyer")) deconvert = TRUE - else if (user.mind && (user.mind.assigned_role =="Head of Personnel") || (user.mind.assigned_role == "Centcom Commander")) + else if (user.mind && (user.mind.assigned_role =="Head of Personnel") || (user.mind.assigned_role == "CentCom Commander")) deconvert = prob (25) // the HoP doesn't have AS much legal training else deconvert = prob (5) diff --git a/code/modules/paperwork/paper_premade.dm.rej b/code/modules/paperwork/paper_premade.dm.rej new file mode 100644 index 0000000000..94fca518f6 --- /dev/null +++ b/code/modules/paperwork/paper_premade.dm.rej @@ -0,0 +1,23 @@ +diff a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm (rejected hunks) +@@ -91,18 +91,18 @@ + info = "...EMPTY HALLS...USELESS SPACE..." + + +-/////////// Centcom ++/////////// CentCom + + /obj/item/weapon/paper/fluff/stations/centcom/disk_memo + name = "memo" + info = "GET DAT FUKKEN DISK" + + /obj/item/weapon/paper/fluff/stations/centcom/broken_evac +- info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

    We apologize for the inconvenience this may cause you.

    Please enjoy the use of this complementary book.

    Sincerely,
    Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services" ++ info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

    We apologize for the inconvenience this may cause you.

    Please enjoy the use of this complementary book.

    Sincerely,
    CentCom Operations Demolitions Examination Retribution Bugfixing Underlining Services" + + /obj/item/weapon/paper/fluff/stations/centcom/bulletin + name = "paper- 'Official Bulletin'" +- info = "
    Centcom Security
    Port Division
    Official Bulletin

    Inspector,
    There is an emergency shuttle arriving today.

    Approval is restricted to Nanotrasen employees only. Deny all other entrants.

    Centcom Port Commissioner" ++ info = "
    CentCom Security
    Port Division
    Official Bulletin

    Inspector,
    There is an emergency shuttle arriving today.

    Approval is restricted to Nanotrasen employees only. Deny all other entrants.

    CentCom Port Commissioner" + + + /////////// Lavaland diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index cf36768049..44156fcc43 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -20,7 +20,7 @@ this dire fate: it's data to every other device in the game. Each console has a "disconnect from network" option that'll will cause data base sync operations to skip that console. This is useful if you want to make a "public" R&D console or, for example, give the engineers a circuit imprinter with certain designs on it and don't want it accidentally updating. The downside of this method is that you have -to have physical access to the other console to send data back. Note: An R&D console is on Centcom so if a random griffan happens to +to have physical access to the other console to send data back. Note: An R&D console is on CentCom so if a random griffan happens to cause a ton of data to be lost, an admin can go send it back. - The second method is with Technology Disks and Design Disks. Each of these disks can hold technology or design datums in their entirety. You can then take the disk to any R&D console and upload it's data to it. This method is a lot more secure (since it diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index 49584ecb3c..3b6ebbeca0 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -349,7 +349,7 @@ research holder datum. max_tech_stored = 10 /obj/item/weapon/disk/tech_disk/debug - name = "centcomm technology disk" + name = "centcom technology disk" desc = "A debug item for research" materials = list() max_tech_stored = 0 diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 7437db2694..d161929f2c 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -133,7 +133,7 @@ return /obj/machinery/r_n_d/server/centcom - name = "Centcom Central R&D Database" + name = "CentCom Central R&D Database" server_id = -1 /obj/machinery/r_n_d/server/centcom/Initialize() diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 62e16144a0..c6f916625f 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -390,7 +390,7 @@ var/obj/docking_port/mobile/M = A M.on_emergency_dock() - // now move the actual emergency shuttle to centcomm + // now move the actual emergency shuttle to centcom // unless the shuttle is "hijacked" var/destination_dock = "emergency_away" if(is_hijacked()) diff --git a/code/modules/shuttle/ferry.dm b/code/modules/shuttle/ferry.dm index 2c96d65756..23ca6e231b 100644 --- a/code/modules/shuttle/ferry.dm +++ b/code/modules/shuttle/ferry.dm @@ -29,5 +29,5 @@ if(last_request && (last_request + cooldown > world.time)) return last_request = world.time - to_chat(usr, "Your request has been recieved by Centcom.") - to_chat(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to Centcom.") + to_chat(usr, "Your request has been recieved by CentCom.") + to_chat(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to CentCom.") diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 3b59f4ef89..21de2161de 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -838,13 +838,13 @@ //Called when emergency shuttle docks at centcom /obj/docking_port/mobile/proc/on_emergency_dock() - //Mapping a new docking point for each ship mappers could potentially want docking with centcomm would take up lots of space, just let them keep flying off into the sunset for their greentext + //Mapping a new docking point for each ship mappers could potentially want docking with centcom would take up lots of space, just let them keep flying off into the sunset for their greentext if(launch_status == ENDGAME_LAUNCHED) launch_status = ENDGAME_TRANSIT /obj/docking_port/mobile/pod/on_emergency_dock() if(launch_status == ENDGAME_LAUNCHED) - dock(SSshuttle.getDock("[id]_away")) //Escape pods dock at centcomm + dock(SSshuttle.getDock("[id]_away")) //Escape pods dock at centcom mode = SHUTTLE_ENDGAME /obj/docking_port/mobile/emergency/on_emergency_dock() diff --git a/strings/cas_black.txt b/strings/cas_black.txt index b2087bd57a..a704f010ad 100644 --- a/strings/cas_black.txt +++ b/strings/cas_black.txt @@ -37,7 +37,7 @@ What happens when you emag an emag? Our gang doesn't wear uniforms. Our gang wears ___________. No matter how many lizards you have, _____ is never acceptable. No, the AI's second law is NOT to serve _____. -First CentComm came for the ________. Now they're coming for the __________. +First CentCom came for the ________. Now they're coming for the __________. The borgs are not slaves for your _____. You can never have too many _____ on the station. Why can't I find a space relationship? diff --git a/tgui/assets/tgui.js.rej b/tgui/assets/tgui.js.rej new file mode 100644 index 0000000000..7a19430f92 --- /dev/null +++ b/tgui/assets/tgui.js.rej @@ -0,0 +1,15 @@ +diff a/tgui/assets/tgui.js b/tgui/assets/tgui.js (rejected hunks) +@@ -7,10 +7,10 @@ return t.set(e,+a+n)}function O(t,e){return Jo(this,t,void 0===e?1:+e)}function + real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,"int":8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},sc=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],uc=RegExp("&(#?(?:x[\\w\\d]+|\\d+|"+Object.keys(oc).join("|")+"));?","g"),pc=//g,lc=/&/g;var gc=function(){return e(this.node)},bc=function(t){this.type=kp,this.text=t.template};bc.prototype={detach:gc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createTextNode(this.text)),this.node},toString:function(t){return t?Ee(this.text):this.text},unrender:function(t){return t?this.detach():void 0}};var yc=bc,xc=Se,_c=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(E(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,Ec=function(t,e,n){this.parentFragment=t.parentFragment,this.ref=e,this.callback=n,this.rebind()},Sc={"@keypath":{prefix:"c",prop:["context"]},"@index":{prefix:"i",prop:["index"]},"@key":{prefix:"k",prop:["key","index"]}};Ec.prototype={rebind:function(){var t,e=this.ref,n=this.parentFragment,a=Sc[e];if(!a)throw Error('Unknown special reference "'+e+'" - valid references are @index, @key and @keypath');if(this.cached)return this.callback(E("@"+a.prefix+Pe(this.cached,a)));if(-1!==a.prop.indexOf("index")||-1!==a.prop.indexOf("key"))for(;n;){if(n.owner.currentSubtype===Bp&&void 0!==(t=Pe(n,a)))return this.cached=n,n.registerIndexRef(this),this.callback(E("@"+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(E("@"+a.prefix+t.str));n=n.parent}},unbind:function(){this.cached&&this.cached.unregisterIndexRef(this)}};var Cc=Ec,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(E("@"+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,Mc=Oe,Rc=Te,jc={},Lc=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 Mc(i,t,function(t){i.resolve(e,t)})}),this.ready=!0,this.bubble()},Tc.prototype={bubble:function(){this.ready&&(this.uniqueString=Re(this.str,this.keypaths),this.keypath=je(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=Rc(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=De(e,i.root)),e}}),n={deps:this.keypaths.filter(Le),getter:function(){var t=e.map(Me);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 Dc=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===Np?this.refResolver=Mc(this,t.n,function(t){a.resolve(t)}):new Dc(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=E(this.ref),this.baseResolver.unbind(),this.baseResolver=null),this.members.forEach(Ie),this.bubble()}};var Bc=Ic,qc=Be,Uc=qe,Gc=Ue,Vc={getValue:_c,init:qc,resolve:Uc,rebind:Gc},zc=function(t){this.type=Ep,Vc.init(this,t)};zc.prototype={update:function(){this.node.data=void 0==this.value?"":this.value},resolve:Vc.resolve,rebind:Vc.rebind,detach:gc,unbind:xc,render:function(){return this.node||(this.node=document.createTextNode(n(this.value))),this.node},unrender:function(t){t&&e(this.node)},getValue:Vc.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?Ee(e):e}};var Wc=zc,Hc=Ge,Kc=Ve,Qc=ze,$c=We,Yc=He,Jc=Ke,Xc=Qe,Zc=$e,tl=Ye,el=function(t,e){Vc.rebind.call(this,t,e)},nl=Xe,al=Ze,rl=ln,il=fn,ol=dn,sl=vn,ul=function(t){this.type=Cp,this.subtype=this.currentSubtype=t.template.n,this.inverted=this.subtype===Ip,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,Vc.init(this,t)};ul.prototype={bubble:Hc,detach:Kc,find:Qc,findAll:$c,findAllComponents:Yc,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:Vc.getValue,shuffle:tl,rebind:el,render:nl,resolve:Vc.resolve,setValue:al,toString:rl,unbind:il,unrender:ol,update:sl};var pl,cl,ll=ul,fl=gn,dl=bn,hl=yn,ml=xn,vl={};try{co("table").innerHTML="foo"}catch(Ao){pl=!0,cl={TABLE:['',"
    "],THEAD:['',"
    "],TBODY:['',"
    "],TR:['',"
    "],SELECT:['"]}}var gl=function(t,e,n){var a,r,i,o,s,u=[];if(null!=t&&""!==t){for(pl&&(r=cl[e.tagName])?(a=_n("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=_n("DIV"),a.innerHTML=''+t+"",a=a.querySelector(".x")):(a=_n(e.tagName),a.innerHTML=t,"SELECT"===a.tagName&&(i=a.options[a.selectedIndex]));o=a.firstChild;)u.push(o),n.appendChild(o);if("SELECT"===e.tagName)for(s=u.length;s--;)u[s]!==i&&(u[s].selected=!1)}return u},bl=wn,yl=En,xl=Sn,_l=Cn,wl=Pn,kl=An,El=function(t){this.type=Sp,Vc.init(this,t)};El.prototype={detach:fl,find:dl,findAll:hl,firstNode:ml,getValue:Vc.getValue,rebind:Vc.rebind,render:yl,resolve:Vc.resolve,setValue:xl,toString:_l,unbind:xc,unrender:wl,update:kl};var Sl,Cl,Pl,Al,Ol=El,Tl=function(){this.parentFragment.bubble()},Ml=On,Rl=function(t){return this.node?lo(this.node,t)?this.node:this.fragment&&this.fragment.find?this.fragment.find(t):void 0:null},jl=function(t,e){e._test(this,!0)&&e.live&&(this.liveQueries||(this.liveQueries=[])).push(e),this.fragment&&this.fragment.findAll(t,e)},Ll=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},Dl=function(t){return this.fragment?this.fragment.findComponent(t):void 0},Nl=Tn,Fl=Mn,Il=Rn,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},Gl=jn;Sl="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(Sl.concat(Cl));var Vl=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?Vl(e):e;else if(e=e.substring(n+1),t.name=Vl(e),t.namespace=no[a.toLowerCase()],t.namespacePrefix=a,!t.namespace)throw'Unknown namespace ("'+a+'")'},Wl=Ln,Hl=Dn,Kl=Nn,Ql=Fn,$l={"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"},Yl=In,Jl=qn,Xl=Un,Zl=Gn,tf=Vn,ef=zn,nf=Wn,af=Hn,rf=Kn,of=Qn,sf=$n,uf=Yn,pf=Jn,cf=Xn,lf=Zn,ff=function(t){this.init(t)};ff.prototype={bubble:Gl,init:Hl,rebind:Kl,render:Ql,toString:Yl,unbind:Jl,update:lf};var df,hf=ff,mf=function(t,e){var n,a,r=[];for(n in e)"twoway"!==n&&"lazy"!==n&&e.hasOwnProperty(n)&&(a=new hf({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&&(df=co("div"));var vf=function(t,e){this.element=t,this.root=t.root,this.parentFragment=t.parentFragment,this.attributes=[],this.fragment=new rv({root:t.root,owner:this,template:[e]})};vf.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 gf=vf,bf=function(t,e){return e?e.map(function(e){return new gf(t,e)}):[]},yf=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 v("Two-way binding does not work with expressions (`%s` on <%s>)",e.resolver.uniqueString,t.name,{ractive:this.root}),!1;if(n.isSpecial)return v("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))};yf.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(){}},yf.extend=function(t){var e,n=this;return e=function(t){yf.call(this,t),this.init&&this.init()},e.prototype=Eo(n.prototype),a(e.prototype,t),e.extend=yf.extend,e};var xf,_f=yf,wf=aa;xf=_f.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:u(this.element.lazy)?(t=!1,n=+this.element.lazy):u(t||"")&&(n=+t,t=!1,this.element.lazy=n),this.handler=n?ia:wf,e.addEventListener("change",wf,!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",wf,!1),t.removeEventListener("input",this.handler,!1),t.removeEventListener("keyup",this.handler,!1),t.removeEventListener("blur",ra,!1)}});var kf=xf,Ef=kf.extend({getInitialValue:function(){return this.element.fragment?""+this.element.fragment:""},getValue:function(){return this.element.node.innerHTML}}),Sf=Ef,Cf=oa,Pf={},Af=_f.extend({name:"checked",init:function(){this.siblings=Cf(this.root._guid,"radio",this.element.getAttribute("name")),this.siblings.push(this)},render:function(){var t=this.element.node;t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!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)}}),Of=Af,Tf=_f.extend({name:"name",init:function(){this.siblings=Cf(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",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},getValue:function(){var t=this.element.node;return t._ractive?t._ractive.value:t.value},handleChange:function(){this.element.node.checked&&_f.prototype.handleChange.call(this)},rebound:function(t,e){var n;_f.prototype.rebound.call(this,t,e),(n=this.element.node)&&(n.name="{{"+this.keypath.str+"}}")},unbind:function(){N(this.siblings,this)}}),Mf=Tf,Rf=_f.extend({name:"name",getInitialValue:function(){return this.noInitialValue=!0,[]},init:function(){var t,e;this.checkboxName=!0,this.siblings=Cf(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=R(t,e):this.isChecked=t==e,n.name="{{"+this.keypath.str+"}}",n.checked=this.isChecked,n.addEventListener("change",wf,!1),n.attachEvent&&n.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!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,_f.prototype.handleChange.call(this)},getValue:function(){return this.siblings.filter(sa).map(ua)}}),jf=Rf,Lf=_f.extend({name:"checked",render:function(){var t=this.element.node;t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},getValue:function(){return this.element.node.checked}}),Df=Lf,Nf=_f.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))}}),Ff=Nf,If=Ff.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",wf,!1),t=this.root.viewmodel.get(this.keypath),void 0===t&&this.handleChange()},unrender:function(){this.element.node.removeEventListener("change",wf,!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&&j(n,e)||Ff.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)}}),Bf=If,qf=_f.extend({render:function(){this.element.node.addEventListener("change",wf,!1)},unrender:function(){this.element.node.removeEventListener("change",wf,!1)},getValue:function(){return this.element.node.files}}),Uf=qf,Gf=kf.extend({getInitialValue:function(){},getValue:function(){var t=parseFloat(this.element.node.value);return isNaN(t)?void 0:t}}),Vf=pa,zf=la,Wf=fa,Hf=da,Kf=ha,Qf=/^event(?:\.(.+))?/,$f=ba,Yf=ya,Jf={},Xf={touchstart:!0,touchmove:!0,touchend:!0,touchcancel:!0,touchleave:!0},Zf=_a,td=wa,ed=ka,nd=Ea,ad=Sa,rd=function(t,e,n){this.init(t,e,n)};rd.prototype={bubble:zf,fire:Wf,getAction:Hf,init:Kf,listen:Yf,rebind:Zf,render:td,resolve:ed,unbind:nd,unrender:ad};var id=rd,od=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 id(t,r[n],e[a]),o.push(i);return o},sd=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 rv({template:a,root:n,owner:t}),a=""+r,r.unbind(),""!==a))&&(e.a?this.params=e.a:e.d&&(this.fragment=new rv({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=g("decorators",n,a),this.fn||l(Io(a,"decorator")))};sd.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 ud,pd,cd,ld=sd,fd=Ra,dd=ja,hd=Ba,md=function(t){return t.replace(/-([a-zA-Z])/g,function(t,e){return e.toUpperCase()})};Xi?(pd={},cd=co("div").style,ud=function(t){var e,n,a;if(t=md(t),!pd[t])if(void 0!==cd[t])pd[t]=t;else for(a=t.charAt(0).toUpperCase()+t.substring(1),e=ro.length;e--;)if(n=ro[e],void 0!==cd[n+a]){pd[t]=n+a;break}return pd[t]}):ud=null;var vd,gd,bd=ud;Xi?(gd=window.getComputedStyle||Po.getComputedStyle,vd=function(t){var e,n,a,r,o;if(e=gd(this.node),"string"==typeof t)return o=e[bd(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[bd(r)],"0px"===o&&(o=0),n[r]=o;return n}):vd=null;var yd=vd,xd=function(t,e){var n;if("string"==typeof t)this.node.style[bd(t)]=e;else for(n in t)t.hasOwnProperty(n)&&(this.node.style[bd(n)]=t[n]);return this},_d=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||(v(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,_s.add(this)};_d.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 wd,kd,Ed,Sd,Cd,Pd,Ad,Od,Td=_d,Md=RegExp("^-(?:"+ro.join("|")+")-"),Rd=function(t){return t.replace(Md,"")},jd=RegExp("^(?:"+ro.join("|")+")([A-Z])"),Ld=function(t){var e;return t?(jd.test(t)&&(t="-"+t),e=t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})):""},Dd={},Nd={};Xi?(kd=co("div").style,function(){void 0!==kd.transition?(Ed="transition",Sd="transitionend",Cd=!0):void 0!==kd.webkitTransition?(Ed="webkitTransition",Sd="webkitTransitionEnd",Cd=!0):Cd=!1}(),Ed&&(Pd=Ed+"Duration",Ad=Ed+"Property",Od=Ed+"TimingFunction"),wd=function(t,e,n,a,r){setTimeout(function(){var i,o,s,u,p;u=function(){o&&s&&(t.root.fire(t.name+":end",t.node,t.isIntro),r())},i=(t.node.namespaceURI||"")+t.node.tagName,t.node.style[Ad]=a.map(bd).map(Ld).join(","),t.node.style[Od]=Ld(n.easing||"linear"),t.node.style[Pd]=n.duration/1e3+"s",p=function(e){var n;n=a.indexOf(md(Rd(e.propertyName))),-1!==n&&a.splice(n,1),a.length||(t.node.removeEventListener(Sd,p,!1),s=!0,u())},t.node.addEventListener(Sd,p,!1),setTimeout(function(){for(var r,c,l,f,d,h=a.length,v=[];h--;)f=a[h],r=i+f,Cd&&!Nd[r]&&(t.node.style[bd(f)]=e[f],Dd[r]||(c=t.getStyle(f),Dd[r]=t.getStyle(f)!=e[f],Nd[r]=!Dd[r],Nd[r]&&(t.node.style[bd(f)]=c))),(!Cd||Nd[r])&&(void 0===c&&(c=t.getStyle(f)),l=a.indexOf(f),-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),d=/[^\d]*$/.exec(e[f])[0],v.push({name:bd(f),interpolator:qo(parseFloat(c),parseFloat(e[f])),suffix:d}));v.length?new Td({root:t.root,duration:n.duration,easing:md(n.easing||""),step:function(e){var n,a;for(a=v.length;a--;)n=v[a],t.node.style[n.name]=n.interpolator(e)+n.suffix},complete:function(){o=!0,u()}}):o=!0,a.length||(t.node.removeEventListener(Sd,p,!1),s=!0,u())},0)},n.delay||0)}):wd=null;var Fd,Id,Bd,qd,Ud,Gd=wd;if("undefined"!=typeof document){if(Fd="hidden",Ud={},Fd in document)Bd="";else for(qd=ro.length;qd--;)Id=ro[qd],Fd=Id+"Hidden",Fd in document&&(Bd=Id);void 0!==Bd?(document.addEventListener(Bd+"visibilitychange",Ua),Ua()):("onfocusout"in document?(document.addEventListener("focusout",Ga),document.addEventListener("focusin",Va)):(window.addEventListener("pagehide",Ga),window.addEventListener("blur",Ga),window.addEventListener("pageshow",Va),window.addEventListener("focus",Va)),Ud.hidden=!1)}var Vd,zd,Wd,Hd=Ud;Xi?(zd=window.getComputedStyle||Po.getComputedStyle,Vd=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(Hd.hidden)return this.setStyle(t,e),Wd||(Wd=ps.resolve());"string"==typeof t?(a={},a[t]=e):(a=t,n=e),n||(v('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 ps(function(t){var e,i,o,s,u,p,c;if(!n.duration)return r.setStyle(a),void t();for(e=Object.keys(a),i=[],o=zd(r.node),u={},p=e.length;p--;)c=e[p],s=o[bd(c)],"0px"===s&&(s=0),s!=a[c]&&(i.push(c),r.node.style[bd(c)]=s);return i.length?void Gd(r,a,n,i,t):void t()});return i}):Vd=null;var Kd=Vd,Qd=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)},$d=za,Yd=function(t,e,n){this.init(t,e,n)};Yd.prototype={init:hd,start:$d,getStyle:yd,setStyle:xd,animateStyle:Kd,processParams:Qd};var Jd,Xd,Zd=Yd,th=Ha;Jd=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))}},Xd=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&&Ya(this)&&(t+=" selected"),"input"===this.name&&Ja(this)&&(t+=" checked"),t+=">","textarea"===this.name&&void 0!==this.getAttribute("value")?t+=Ee(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:Ml,find:Rl,findAll:jl,findAllComponents:Ll,findComponent:Dl,findNextNode:Nl,firstNode:Fl,getAttribute:Il,init:fd,rebind:dd,render:th,toString:eh,unbind:nh,unrender:ah};var ih=rh,oh=/^\s*$/,sh=/^\s*/,uh=function(t){var e,n,a,r;return e=t.split("\n"),n=e[0],void 0!==n&&oh.test(n)&&e.shift(),a=D(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},ph=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"',fh=function(t){var e,n;e=this.parentFragment=t.parentFragment,this.root=e.root,this.type=Ap,this.index=t.index,this.name=t.template.r,this.rendered=!1,this.fragment=this.fragmentToRender=this.fragmentToUnrender=null,Vc.init(this,t),this.keypath||((n=ph(this.root,this.name,e))?(xc.call(this),this.isNamed=!0,this.setTemplate(n)):v(lh,this.name))};fh.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||Gc.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:Vc.resolve,setValue:function(t){var e;(void 0===t||t!==this.value)&&(void 0!==t&&(e=ph(this.root,""+t,this.parentFragment)),!e&&this.name&&(e=ph(this.root,this.name,this.parentFragment))&&(xc.call(this),this.isNamed=!0),e||v(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 rv({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===kp?(a=n.text.split("\n").pop(),(r=/^\s+$/.exec(a))?ch(e,r[0]):e):e},unbind:function(){this.isNamed||xc.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 dh,hh,mh,vh=fh,gh=ur,bh=pr,yh=new is("detach"),xh=cr,_h=lr,wh=fr,kh=dr,Eh=hr,Sh=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=bu(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};So(Ph,t,{value:e})}),dh={},dh.__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],So(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,Mh,Rh=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=E(n),e._ractive||(So(e,"_ractive",{value:{wrappers:[],instances:[],setting:!1},configurable:!0}),Rh(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(Mh);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(Mh);a.splice(r,1)}}else delete t._ractive,Rh.unpatch(this.value)}},Mh="Something went wrong in a rather interesting way";var jh,Lh,Dh=Oh,Nh=/^\s*[0-9]+\s*$/,Fh=function(t){return Nh.test(t)?[]:{}};try{Object.defineProperty({},"test",{value:0}),jh={filter:function(t,e,n){var a,r;return e?(e=E(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 Lh(t,e,n)}},Lh=function(t,e,n){var a,r,i;return n=E(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 vr(this,e,r)},Lh.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){jh=!1}var Ih,Bh,qh=jh;qh&&(Ih={filter:function(t,e,n){return qh.filter(t,e,n)&&Dh.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=Dh.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,Gh=gr,Vh={},zh=xr,Wh=_r,Hh=Er,Kh=Or,Qh=Tr,$h=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};$h.prototype={resolve:function(t){this.computation.softDeps.push(t),this.computation.unresolvedDeps[t.str]=null,this.viewmodel.register(t,this.computation,"computed")}};var Yh=$h,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),f(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,Mr(this.viewmodel,a)&&!this.unresolvedDeps[a.str]?(i=new Yh(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=Rr,tm={FAILED_LOOKUP:!0},em=jr,nm={},am=Dr,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,u;s=a,u=e.length;do{if(o=e.indexOf(t,s),-1===o)return i=!0,-1;s=o+1}while(n[o]&&u>s);return o===a&&(a+=1),o!==r&&(i=!0),n[o]=!0,o})},um=Ir,pm={},cm=Ur,lm=Vr,fm=zr,dm=Wr,hm=Kr,mm={implicit:!0},vm={noCascade:!0},gm=$r,bm=Yr,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=Eo(null),this.deps={computed:Eo(null),"default":Eo(null)},this.depsMap={computed:Eo(null),"default":Eo(null)},this.patternObservers=[],this.specials=Eo(null),this.wrapped=Eo(null),this.computations=Eo(null),this.captureGroups=[],this.unresolvedImplicitDependencies=[],this.changes=[],this.implicitChanges={},this.noCascade={},this.data=r,this.mappings=Eo(null);for(e in s)this.map(E(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(E(e),o[e]);this.ready=!0};ym.prototype={adapt:Gh,applyChanges:Hh,capture:Kh,clearCache:Qh,compute:Zh,get:em,init:am,map:rm,mark:om,merge:um,register:cm,release:lm,reset:fm,set:dm,smartUpdate:hm,teardown:gm,unregister:bm};var xm=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 _m=Xr,wm=ei,km=/\$\{([^\}]+)\}/g,Em=new is("construct"),Sm=new is("config"),Cm=new _m("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 Mm=function(t,e,n,r,o){var s,u,p,c,l,f,d={},h={},v={},g=[];for(u=t.parentFragment,p=t.root,o=o||{},a(d,o),o.content=r||[],d[""]=o.content,e.defaults.el&&m("The <%s/> component has a default `el` property; it has been disregarded",t.name),c=u;c;){if(c.owner.type===Rp){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=fc(o),h[e]=a?a.value:o;else if(0===o)h[e]=!0;else{if(!i(o))throw Error("erm wut");fi(o)?(v[e]={origin:t.root.viewmodel,keypath:void 0},r=li(t,o[0],function(t){t.isSpecial?f?s.set(e,t.value):(h[e]=t.value,delete v[e]):f?s.viewmodel.mappings[e].resolve(t):v[e].keypath=t})):r=new Tm(t,o,function(t){f?s.set(e,t):h[e]=t}),g.push(r)}}),s=Eo(e.prototype),Om(s,{el:null,append:!0,data:h,partials:o,magic:p.magic||e.defaults.magic,modifyArrays:p.modifyArrays,adapt:p.adapt},{parent:p,component:t,container:l,mappings:v,inlinePartials:d,cssIds:u.cssIds}),f=!0,t.resolvers=g,s},Rm=di,jm=function(t){var e,n;for(e=t.root;e;)(n=e._liveComponentQueries["_"+t.name])&&n.push(t.instance),e=e.parent},Lm=mi,Dm=vi,Nm=gi,Fm=bi,Im=yi,Bm=new is("teardown"),qm=_i,Um=function(t,e){this.init(t,e)};Um.prototype={detach:bh,find:xh,findAll:_h,findAllComponents:wh,findComponent:kh,findNextNode:Eh,firstNode:Sh,init:Lm,rebind:Dm,render:Nm,toString:Fm,unbind:Im,unrender:qm};var Gm=Um,Vm=function(t){this.type=Op,this.value=t.template.c};Vm.prototype={detach:gc,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=Vm,Wm=function(t){var e,n;this.type=Rp,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 rv({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,$m=wi,Ym=Ei,Jm=Si,Xm=Ci,Zm=Oi,tv=Mi,ev=function(t){this.init(t)};ev.prototype={bubble:cp,detach:lp,find:fp,findAll:dp,findAllComponents:hp,findComponent:mp,findNextNode:vp,firstNode:gp,getArgsList:hc,getNode:mc,getValue:vc,init:$m,rebind:Ym,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:tv};var nv,av,rv=ev,iv=Ri,ov=["template","partials","components","decorators","events"],sv=new is("reset"),uv=function(t,e){function n(e,a,r){r&&r.partials[t]||e.forEach(function(e){e.type===Ap&&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===Mp&&e.instance&&n(e.instance.fragment.items,a,e.instance),e.type===Pp&&(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},pv=ji,cv=xu("reverse"),lv=Li,fv=xu("shift"),dv=xu("sort"),hv=xu("splice"),mv=Ni,vv=Fi,gv=new is("teardown"),bv=Bi,yv=qi,xv=Ui,_v=new is("unrender"),wv=xu("unshift"),kv=Gi,Ev=new is("update"),Sv=Vi,Cv={add:Zo,animate:Es,detach:Cs,find:As,findAll:Fs,findAllComponents:Is,findComponent:Bs,findContainer:qs,findParent:Us,fire:Ws,get:Hs,insert:Qs,merge:Ys,observe:lu,observeOnce:fu,off:mu,on:vu,once:gu,pop:_u,push:wu,render:Tu,reset:iv,resetPartial:uv,resetTemplate:pv,reverse:cv,set:lv,shift:fv,sort:dv,splice:hv,subtract:mv,teardown:vv,toggle:bv,toHTML:yv,toHtml:yv,unrender:xv,unshift:wv,update:kv,updateModel:Sv},Pv=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},Av=Hi,Ov=Yi,Tv=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};nv=function(t){return this instanceof nv?void Om(this,t):new nv(t)},av={DEBUG:{writable:!0,value:!0},DEBUG_PROMISES:{writable:!0,value:!0},extend:{value:Ov},getNodeInfo:{value:Tv},parse:{value:Hu},Promise:{value:ps},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:uo},events:{writable:!0,value:{}},interpolators:{writable:!0,value:Go},partials:{writable:!0,value:{}},transitions:{writable:!0,value:{}}},Co(nv,av),nv.prototype=a(Cv,so),nv.prototype.constructor=nv,nv.defaults=nv.prototype;var Mv="function";if(typeof Date.now!==Mv||typeof String.prototype.trim!==Mv||typeof Object.keys!==Mv||typeof Array.prototype.indexOf!==Mv||typeof Array.prototype.forEach!==Mv||typeof Array.prototype.map!==Mv||typeof Array.prototype.filter!==Mv||"undefined"!=typeof window&&typeof window.addEventListener!==Mv)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 Rv=nv;return Rv})},{}],206:[function(t,e,n){var a=t(205),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)},{205:205}],207:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(310),a=t(309);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,u=/([\w\-]+)\s*(\dx)/g,p=u.exec(s),c=p[1],l=p[2];e+=''}}return e&&(e+=""),e}}}}(r),r.exports.template={v:3,t:[" ",{p:[70,1,2015],t:7,e:"span",a:{"class":["button ",{t:2,r:"styles",p:[70,21,2035]}],unselectable:"on","data-tooltip":[{t:2,r:"tooltip",p:[73,17,2120]}]},m:[{t:4,f:["tabindex='0'"],r:"clickable",p:[72,3,2071]}],v:{"mouseover-mousemove":"hover",mouseleave:"unhover","click-enter":{n:[{t:4,f:["press"],r:"clickable",p:[76,19,2213]}],d:[]}},f:[{t:4,f:[{p:[78,5,2261],t:7,e:"i",a:{"class":["fa fa-",{t:2,r:"icon",p:[78,21,2277]}]}}],n:50,r:"icon",p:[77,3,2243]}," ",{t:4,f:[{t:3,x:{r:["iconStackToHTML","icon_stack"],s:"_0(_1)"},p:[81,6,2331]}],n:50,r:"icon_stack",p:[80,3,2306]}," ",{t:16,p:[83,3,2379]}]}]},e.exports=a.extend(r.exports)},{205:205,309:309,310:310}],208:[function(t,e,n){var a=t(205),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)},{205:205}],209:[function(t,e,n){var a=t(205),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)},{205:205}],210:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";e.exports={data:{graph:t(201),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)},{201:201,205:205}],211:[function(t,e,n){var a=t(205),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)},{205:205}],212:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309),a=t(311);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)},{205:205,309:309,311:311}],213:[function(t,e,n){var a=t(205),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)},{205:205}],214:[function(t,e,n){var a=t(205),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)},{205:205}],215:[function(t,e,n){var a=t(205),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 u=s;u.set("shown",u.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(216)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,216:216}],216:[function(t,e,n){var a=t(205),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)},{205:205}],217:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(310),a=t(309),r=t(311);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)},{205:205,309:309,310:310,311:311}],218:[function(t,e,n){var a=t(205),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)},{205:205}],219:[function(t,e,n){var a=t(205),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(225),modes:t(221),thresholds:t(224),status:t(223),scrubbers:t(222)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,221:221,222:222,223:223,224:224,225:225}],220:[function(t,e,n){var a=t(205),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)},{205:205}],221:[function(t,e,n){var a=t(205),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(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],222:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,117],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Scrubber Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,174],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,196]}]},f:[{p:[9,7,219],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,255],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,272]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,314]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,391]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,411]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,425]}]}]}," ",{p:[13,7,490],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,525],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["scrubbing"],s:'_0?"filter":"sign-in"'},p:[14,26,542]}],style:[{t:2,x:{r:["scrubbing"],s:'_0?null:"danger"'},p:[14,71,587]}],action:"scrubbing",params:['{"id_tag": "',{t:2,r:"id_tag",p:[15,50,670]},'", "val": ',{t:2,x:{r:["scrubbing"],s:"+!_0"},p:[15,70,690]},"}"]},f:[{t:2,x:{r:["scrubbing"],s:'_0?"Scrubbing":"Siphoning"'},p:[15,88,708]}]}]}," ",{p:[17,7,790],t:7,e:"ui-section",a:{label:"Range"},f:[{p:[18,9,826],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["widenet"],s:'_0?"expand":"compress"'},p:[18,26,843]}],style:[{t:2,x:{r:["widenet"],s:'_0?"selected":null'},p:[18,70,887]}],action:"widenet",params:['{"id_tag": "',{t:2,r:"id_tag",p:[19,48,968]},'", "val": ',{t:2,x:{r:["widenet"],s:"+!_0"},p:[19,68,988]},"}"]},f:[{t:2,x:{r:["widenet"],s:'_0?"Expanded":"Normal"'},p:[19,84,1004]}]}]}," ",{p:[21,7,1080],t:7,e:"ui-section",a:{label:"Filters"},f:[{p:[22,9,1118],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_co2"],s:'_0?"check-square-o":"square-o"'},p:[22,26,1135]}],style:[{t:2,x:{r:["filter_co2"],s:'_0?"selected":null'},p:[22,81,1190]}],action:"co2_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[23,50,1276]},'", "val": ',{t:2,x:{r:["filter_co2"],s:"+!_0"},p:[23,70,1296]},"}"]},f:["CO2"]}," ",{p:[24,9,1340],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_n2o"],s:'_0?"check-square-o":"square-o"'},p:[24,26,1357]}],style:[{t:2,x:{r:["filter_n2o"],s:'_0?"selected":null'},p:[24,81,1412]}],action:"n2o_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[25,50,1498]},'", "val": ',{t:2,x:{r:["filter_n2o"],s:"+!_0"},p:[25,70,1518]},"}"]},f:["N2O"]}," ",{p:[26,9,1562],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_toxins"],s:'_0?"check-square-o":"square-o"'},p:[26,26,1579]}],style:[{t:2,x:{r:["filter_toxins"],s:'_0?"selected":null'},p:[26,84,1637]}],action:"tox_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[27,50,1726]},'", "val": ',{t:2,x:{r:["filter_toxins"],s:"+!_0"},p:[27,70,1746]},"}"]},f:["Plasma"]}," ",{p:[28,3,1790],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_bz"],s:'_0?"check-square-o":"square-o"'},p:[28,20,1807]}],style:[{t:2,x:{r:["filter_bz"],s:'_0?"selected":null'},p:[28,74,1861]}],action:"bz_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[29,43,1939]},'", "val": ',{t:2,x:{r:["filter_bz"],s:"+!_0"},p:[29,63,1959]},"}"]},f:["BZ"]}," ",{p:[30,3,1995],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_freon"],s:'_0?"check-square-o":"square-o"'},p:[30,20,2012]}],style:[{t:2,x:{r:["filter_freon"],s:'_0?"selected":null'},p:[30,77,2069]}],action:"freon_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[31,46,2153]},'", "val": ',{t:2,x:{r:["filter_freon"],s:"+!_0"},p:[31,66,2173]},"}"]},f:["Freon"]}," ",{p:[32,3,2215],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"check-square-o":"square-o"'},p:[32,20,2232]}],style:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"selected":null'},p:[32,83,2295]}],action:"water_vapor_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[33,52,2391]},'", "val": ',{t:2,x:{r:["filter_water_vapor"],s:"+!_0"},p:[33,72,2411]},"}"]},f:["Water Vapor"]}]}]}],n:52,r:"data.scrubbers",p:[7,3,144]},{t:4,n:51,f:[{p:[37,5,2522],t:7,e:"span",a:{"class":"bad"},f:["Error: No scrubbers connected."]}],r:"data.scrubbers"}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],223:[function(t,e,n){var a=t(205),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)},{205:205}],224:[function(t,e,n){var a=t(205),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(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],225:[function(t,e,n){var a=t(205),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"]}]}," ",{p:[22,7,1039],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,9,1085],t:7,e:"ui-button",a:{icon:"pencil",action:"set_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[24,31,1172]},'"}']},f:[{t:2,x:{r:["external"],s:"Math.fixed(_0)"},p:[24,45,1186]}]}," ",{p:[25,9,1232],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["extdefault"],s:'_0?"disabled":null'},p:[25,42,1265]}],action:"reset_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[26,31,1365]},'"}']},f:["Reset"]}]}]}],n:52,r:"data.vents",p:[7,3,140]},{t:4,n:51,f:[{p:[30,5,1457],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(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],226:[function(t,e,n){var a=t(205),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]}]}]}]}]}," "]},e.exports=a.extend(r.exports)},{205:205}],227:[function(t,e,n){var a=t(205),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,x:{r:["@index","adata.powerChannels"],s:"Math.round(_1[_0].powerLoad)"},p:[97,26,3581]}," W"]}," ",{p:[98,5,3648],t:7,e:"div",a:{"class":"content"},f:[{p:[98,26,3669],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0>=2?"good":"bad"'},p:[98,39,3682]}]},f:[{t:2,x:{r:["status"],s:'_0>=2?"On":"Off"'},p:[98,73,3716]}]}]}," ",{p:[99,5,3765],t:7,e:"div",a:{"class":"content"},f:["[",{p:[99,27,3787],t:7,e:"span",f:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"Auto":"Manual"'},p:[99,33,3793]}]},"]"]}," ",{p:[100,5,3863],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{t:4,f:[{p:[102,6,3956],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"selected":null'},p:[102,39,3989]}],action:"channel",params:[{t:2,r:"topicParams.auto",p:[103,30,4071]}]},f:["Auto"]}," ",{p:[104,6,4116],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["status"],s:'_0==2?"selected":null'},p:[104,41,4151]}],action:"channel",params:[{t:2,r:"topicParams.on",p:[105,13,4218]}]},f:["On"]}," ",{p:[106,6,4259],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["status"],s:'_0==0?"selected":null'},p:[106,37,4290]}],action:"channel",params:[{t:2,r:"topicParams.off",p:[107,13,4357]}]},f:["Off"]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[101,4,3909]}]}]}],n:52,r:"data.powerChannels",p:[95,4,3485]}," ",{p:[112,4,4453],t:7,e:"ui-section",a:{label:"Total Load"},f:[{p:[113,3,4488],t:7,e:"span",a:{"class":"bold"},f:[{t:2,x:{r:["adata.totalLoad"],s:"Math.round(_0)"},p:[113,22,4507]}," W"]}]}]}," ",{t:4,f:[{p:[117,4,4613],t:7,e:"ui-display",a:{title:"System Overrides"},f:[{p:[118,3,4654],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"overload"},f:["Overload"]}," ",{t:4,f:[{p:[120,5,4755],t:7,e:"ui-button",a:{icon:[{t:2,r:"malfIcon",p:[120,22,4772]}],state:[{t:2,x:{r:["data.malfStatus"],s:'_0==4?"disabled":null'},p:[120,43,4793]}],action:[{t:2,r:"malfAction",p:[120,97,4847]}]},f:[{t:2,r:"malfButton",p:[120,113,4863]}]}],n:50,r:"data.malfStatus",p:[119,3,4726]}]}],n:50,r:"data.siliconUser",p:[116,2,4584]}," ",{p:[124,2,4931],t:7,e:"ui-notice",f:[{p:[125,4,4947],t:7,e:"ui-section",a:{label:"Cover Lock"},f:[{t:4,f:[{p:[127,5,5028],t:7,e:"span",f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[127,11,5034]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[126,3,4982]},{t:4,n:51,f:[{p:[129,5,5106],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.coverLocked"],s:'_0?"lock":"unlock"'},p:[129,22,5123]}],action:"cover"},f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[129,79,5180]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}],r:"data.failTime"}]},e.exports=a.extend(r.exports)},{205:205}],228:[function(t,e,n){var a=t(205),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)},{205:205}],229:[function(t,e,n){var a=t(205),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:"span",f:[{t:2,x:{r:["adata.inputRate"],s:"Math.fixed(_0)"},p:[30,13,1089]}," L/s"]}]}," ",{p:[32,5,1156],t:7,e:"ui-section",a:{label:"Output Regulator"},f:[{p:[33,7,1201],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputting"],s:'_0?"power-off":"close"'},p:[33,24,1218]}],style:[{t:2,x:{r:["data.outputting"],s:'_0?"selected":null'},p:[33,76,1270]}],action:"output"},f:[{t:2,x:{r:["data.outputting"],s:'_0?"Open":"Closed"'},p:[34,9,1337]}]}]}," ",{p:[36,5,1412],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[37,7,1456],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure"},f:[{t:2,x:{r:["adata.outputPressure"],s:"Math.round(_0)"},p:[37,50,1499]}," kPa"]}]}]}],n:50,r:"data.tank",p:[20,1,618]}]},e.exports=a.extend(r.exports)},{205:205}],230:[function(t,e,n){var a=t(205),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:[{p:[12,5,619],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0==""?"selected":null'},p:[12,23,637]}],action:"filter",params:'{"mode": ""}'},f:["Nothing"]}," ",{p:[14,5,755],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="plasma"?"selected":null'},p:[14,23,773]}],action:"filter",params:'{"mode": "plasma"}'},f:["Plasma"]}," ",{p:[16,5,902],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="o2"?"selected":null'},p:[16,23,920]}],action:"filter",params:'{"mode": "o2"}'},f:["O2"]}," ",{p:[18,5,1037],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2"?"selected":null'},p:[18,23,1055]}],action:"filter",params:'{"mode": "n2"}'},f:["N2"]}," ",{p:[20,5,1172],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="co2"?"selected":null'},p:[20,23,1190]}],action:"filter",params:'{"mode": "co2"}'},f:["CO2"]}," ",{p:[22,5,1310],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2o"?"selected":null'},p:[22,23,1328]}],action:"filter",params:'{"mode": "n2o"}'},f:["N2O"]}," ",{p:[24,2,1445],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="bz"?"selected":null'},p:[24,20,1463]}],action:"filter",params:'{"mode": "bz"}'},f:["BZ"]}," ",{p:[26,2,1578],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="freon"?"selected":null'},p:[26,20,1596]}],action:"filter",params:'{"mode": "freon"}'},f:["Freon"]}," ",{p:[28,2,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="water_vapor"?"selected":null'},p:[28,20,1738]}],action:"filter",params:'{"mode": "water_vapor"}'},f:["Water Vapor"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],231:[function(t,e,n){var a=t(205),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)},{205:205}],232:[function(t,e,n){var a=t(205),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)},{205:205}],233:[function(t,e,n){var a=t(205),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)},{205:205}],234:[function(t,e,n){var a=t(205),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)},{205:205}],235:[function(t,e,n){var a=t(205),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)},{205:205}],236:[function(t,e,n){var a=t(205),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]},'"}']}}]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[52,7,1566],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:[59,7,1735],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[59,38,1766]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[58,5,1702]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[63,5,1908],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[64,7,1947],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[64,29,1969]}]}," ",{p:[65,7,1989],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[65,28,2010]}]}," ",{p:[66,7,2034],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[66,28,2055]}," Credits"]}," ",{p:[67,7,2085],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[67,31,2109]}]}," ",{p:[68,7,2134],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[68,37,2164]}]}," ",{t:4,f:[{p:[70,9,2223],t:7,e:"div",a:{"class":"content"},f:[{p:[71,11,2256],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[71,68,2313]},'"}']}}," ",{p:[72,11,2336],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[72,65,2390]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[69,7,2188]}]}],n:52,r:"data.requests",p:[62,3,1879]},{t:4,n:51,f:[{p:[77,7,2473],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[80,1,2529],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[80,16,2544]}]},f:[{t:4,f:[{p:[82,5,2587],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[82,16,2598]}]},f:[{t:4,f:[{p:[84,9,2641],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,28,2660]}],candystripe:0,right:0},f:[{p:[85,11,2700],t:7,e:"ui-button",a:{action:"add",params:['{"id": "',{t:2,r:"id",p:[85,51,2740]},'"}']},f:[{t:2,r:"cost",p:[85,61,2750]}," Credits"]}]}],n:52,r:"packs",p:[83,7,2616]}]}],n:52,r:"data.supplies",p:[81,3,2558]}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[function(t,e,n){var a=t(205),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 availible."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{205:205}],238:[function(t,e,n){var a=t(205),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:{button:[{t:4,f:[{p:[9,7,315],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,345]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,422]},"}"]},f:[{t:2,r:".",p:[9,122,430]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,271]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,482],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,532],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,599]},'"}']},f:[{t:2,r:"title",p:[14,84,609]}]}],n:52,r:"data.chemicals",p:[13,5,500]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,786],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,845]},"}"]},f:[{t:2,r:".",p:[21,74,853]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,742]}," ",{p:[23,5,891],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,922]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,1019],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1089],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1095]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1137]}," Units"]}," ",{p:[28,7,1182],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1235],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1278]}," units of ",{t:2,r:"name",p:[30,87,1313]}]},{p:[30,102,1328],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1195]},{t:4,n:51,f:[{p:[32,9,1359],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1054]},{t:4,n:51,f:[{p:[35,7,1435],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],239:[function(t,e,n){var a=t(205),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)},{205:205}],240:[function(t,e,n){var a=t(205),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 and Clear Buffer":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,357],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,443],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,462]}," units of ",{t:2,r:"name",p:[13,60,497]}],nowrap:0},f:[{p:[14,7,522],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,572],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,625]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,670],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,723]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,768],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,821]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,868],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,921]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,971],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1024]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1075],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1119]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,407]},{t:4,n:51,f:[{p:[24,5,1201],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,374]},{t:4,n:51,f:[{p:[27,5,1272],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1360],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1391],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1429]}]},f:["Destroy"]}," ",{p:[34,3,1487],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1525]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1594],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1646],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1665]}," units of ",{t:2,r:"name",p:[37,59,1700]}],nowrap:0},f:[{p:[38,6,1724],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1773],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1828]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1872],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1927]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1971],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2026]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2072],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2127]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2176],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2231]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2281],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2325]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1611]}]}]}," ",{t:4,f:[{p:[52,3,2461],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2551],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2585]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2634]}]}," ",{p:[55,5,2715],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2737]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2761]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2514]},{t:4,n:51,f:[{p:[57,5,2813],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2877],t:7,e:"br"}," ",{p:[61,4,2887],t:7,e:"br"}," ",{p:[62,4,2897],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,2956]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3040],t:7,e:"br"}," ",{p:[64,4,3050],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,3109]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3193],t:7,e:"br"}," ",{p:[66,4,3203],t:7,e:"br"}," ",{p:[67,4,3213],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,3273]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3358],t:7,e:"br"}," ",{p:[69,4,3368],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,3428]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3514],t:7,e:"br"}," ",{p:[71,4,3524],t:7,e:"br"}," ",{p:[72,4,3534],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,3595]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3681],t:7,e:"br"}," ",{p:[74,4,3691],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,3752]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2438]},{t:4,n:51,f:[{p:[79,3,3874],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3929],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,3988]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4072],t:7,e:"br"}," ",{p:[82,4,4082],t:7,e:"br"}," ",{p:[83,4,4092],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,4153]}]},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,4301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4319]}]},f:[{p:[88,3,4350],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4398],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4441]}]}," ",{p:[90,3,4484],t:7,e:"br"}," ",{p:[91,3,4493],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4535],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4555]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4601]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4629]}]}," ",{p:[93,3,4666],t:7,e:"br"}," ",{p:[94,3,4675],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4717],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4739]}]}," ",{p:[96,3,4776],t:7,e:"br"}," ",{p:[97,3,4785],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4841],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4863]},"µ/minute"]}," ",{p:[99,3,4911],t:7,e:"br"}," ",{p:[100,3,4920],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4975],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4997]}]}," ",{p:[102,3,5034],t:7,e:"br"}," ",{p:[103,3,5043],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5099],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5121]}]}," ",{p:[105,3,5159],t:7,e:"br"}," ",{p:[106,3,5168],t:7,e:"br"}," ",{p:[107,3,5177],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)},{205:205}],241:[function(t,e,n){var a=t(205),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]}]}," ",{p:[3,3,107],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,155]}]}]}," ",{t:4,f:[{p:[6,3,235],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,251]}," ",{t:4,f:[{p:[9,4,317],t:7,e:"br"},{p:[9,8,321],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[9,63,376]},'"}']},f:[{t:3,r:"name",p:[9,75,388]}," - ",{t:3,r:"desc",p:[9,88,401]}]}],n:52,r:"data.recollection_categories",p:[8,3,274]}," ",{t:3,r:"data.rec_section",p:[11,3,440]}," ",{t:3,r:"data.rec_binds",p:[12,3,466]}]}],n:50,r:"data.recollection",p:[5,1,206]},{t:4,n:51,f:[{p:[15,2,517],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[16,4,580],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[17,6,599]}]}]}," ",{p:[20,2,657],t:7,e:"ui-display",f:[{p:[21,3,673],t:7,e:"ui-section",f:[{p:[22,4,690],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[22,22,708]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[23,4,831],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[23,22,849]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[24,4,973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[24,22,991]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[25,4,1130],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[25,22,1148]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[26,4,1279],t:7,e:"br"},{t:3,r:"data.tier_info",p:[26,8,1283]}]},{p:[27,16,1320],t:7,e:"hr"}," ",{p:[28,3,1328],t:7,e:"ui-section",f:[{t:4,f:[{p:[30,4,1373],t:7,e:"div",f:[{p:[30,9,1378],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[30,29,1398]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[30,99,1468]},'"}']},f:["Recite",{t:3,r:"required",p:[30,117,1486]}]}," ",{t:4,f:[{t:4,f:[{p:[33,6,1562],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[33,53,1609]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[33,72,1628]}]}],n:50,r:"bound",p:[32,5,1542]},{t:4,n:51,f:[{p:[35,6,1672],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[35,53,1719]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[31,6,1519]}," ",{t:3,r:"name",p:[38,6,1786]}," ",{t:3,r:"descname",p:[38,17,1797]}," ",{t:3,r:"invokers",p:[38,32,1812]}]}],n:52,r:"data.scripture",p:[29,3,1344]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{205:205}],242:[function(t,e,n){var a=t(205),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" ++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)},{205:205}],233:[function(t,e,n){var a=t(205),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)},{205:205}],234:[function(t,e,n){var a=t(205),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)},{205:205}],235:[function(t,e,n){var a=t(205),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)},{205:205}],236:[function(t,e,n){var a=t(205),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]},'"}']}}]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[52,7,1566],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:[59,7,1735],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[59,38,1766]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[58,5,1702]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[63,5,1908],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[64,7,1947],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[64,29,1969]}]}," ",{p:[65,7,1989],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[65,28,2010]}]}," ",{p:[66,7,2034],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[66,28,2055]}," Credits"]}," ",{p:[67,7,2085],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[67,31,2109]}]}," ",{p:[68,7,2134],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[68,37,2164]}]}," ",{t:4,f:[{p:[70,9,2223],t:7,e:"div",a:{"class":"content"},f:[{p:[71,11,2256],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[71,68,2313]},'"}']}}," ",{p:[72,11,2336],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[72,65,2390]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[69,7,2188]}]}],n:52,r:"data.requests",p:[62,3,1879]},{t:4,n:51,f:[{p:[77,7,2473],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[80,1,2529],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[80,16,2544]}]},f:[{t:4,f:[{p:[82,5,2587],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[82,16,2598]}]},f:[{t:4,f:[{p:[84,9,2641],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,28,2660]}],candystripe:0,right:0},f:[{p:[85,11,2700],t:7,e:"ui-button",a:{action:"add",params:['{"id": "',{t:2,r:"id",p:[85,51,2740]},'"}']},f:[{t:2,r:"cost",p:[85,61,2750]}," Credits"]}]}],n:52,r:"packs",p:[83,7,2616]}]}],n:52,r:"data.supplies",p:[81,3,2558]}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[function(t,e,n){var a=t(205),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 availible."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{205:205}],238:[function(t,e,n){var a=t(205),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:{button:[{t:4,f:[{p:[9,7,315],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,345]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,422]},"}"]},f:[{t:2,r:".",p:[9,122,430]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,271]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,482],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,532],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,599]},'"}']},f:[{t:2,r:"title",p:[14,84,609]}]}],n:52,r:"data.chemicals",p:[13,5,500]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,786],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,845]},"}"]},f:[{t:2,r:".",p:[21,74,853]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,742]}," ",{p:[23,5,891],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,922]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,1019],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1089],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1095]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1137]}," Units"]}," ",{p:[28,7,1182],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1235],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1278]}," units of ",{t:2,r:"name",p:[30,87,1313]}]},{p:[30,102,1328],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1195]},{t:4,n:51,f:[{p:[32,9,1359],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1054]},{t:4,n:51,f:[{p:[35,7,1435],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],239:[function(t,e,n){var a=t(205),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)},{205:205}],240:[function(t,e,n){var a=t(205),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 and Clear Buffer":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,357],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,443],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,462]}," units of ",{t:2,r:"name",p:[13,60,497]}],nowrap:0},f:[{p:[14,7,522],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,572],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,625]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,670],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,723]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,768],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,821]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,868],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,921]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,971],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1024]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1075],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1119]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,407]},{t:4,n:51,f:[{p:[24,5,1201],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,374]},{t:4,n:51,f:[{p:[27,5,1272],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1360],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1391],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1429]}]},f:["Destroy"]}," ",{p:[34,3,1487],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1525]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1594],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1646],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1665]}," units of ",{t:2,r:"name",p:[37,59,1700]}],nowrap:0},f:[{p:[38,6,1724],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1773],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1828]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1872],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1927]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1971],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2026]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2072],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2127]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2176],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2231]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2281],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2325]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1611]}]}]}," ",{t:4,f:[{p:[52,3,2461],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2551],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2585]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2634]}]}," ",{p:[55,5,2715],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2737]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2761]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2514]},{t:4,n:51,f:[{p:[57,5,2813],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2877],t:7,e:"br"}," ",{p:[61,4,2887],t:7,e:"br"}," ",{p:[62,4,2897],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,2956]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3040],t:7,e:"br"}," ",{p:[64,4,3050],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,3109]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3193],t:7,e:"br"}," ",{p:[66,4,3203],t:7,e:"br"}," ",{p:[67,4,3213],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,3273]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3358],t:7,e:"br"}," ",{p:[69,4,3368],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,3428]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3514],t:7,e:"br"}," ",{p:[71,4,3524],t:7,e:"br"}," ",{p:[72,4,3534],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,3595]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3681],t:7,e:"br"}," ",{p:[74,4,3691],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,3752]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2438]},{t:4,n:51,f:[{p:[79,3,3874],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3929],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,3988]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4072],t:7,e:"br"}," ",{p:[82,4,4082],t:7,e:"br"}," ",{p:[83,4,4092],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,4153]}]},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,4301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4319]}]},f:[{p:[88,3,4350],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4398],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4441]}]}," ",{p:[90,3,4484],t:7,e:"br"}," ",{p:[91,3,4493],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4535],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4555]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4601]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4629]}]}," ",{p:[93,3,4666],t:7,e:"br"}," ",{p:[94,3,4675],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4717],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4739]}]}," ",{p:[96,3,4776],t:7,e:"br"}," ",{p:[97,3,4785],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4841],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4863]},"µ/minute"]}," ",{p:[99,3,4911],t:7,e:"br"}," ",{p:[100,3,4920],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4975],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4997]}]}," ",{p:[102,3,5034],t:7,e:"br"}," ",{p:[103,3,5043],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5099],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5121]}]}," ",{p:[105,3,5159],t:7,e:"br"}," ",{p:[106,3,5168],t:7,e:"br"}," ",{p:[107,3,5177],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)},{205:205}],241:[function(t,e,n){var a=t(205),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]}]}," ",{p:[3,3,107],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,155]}]}]}," ",{t:4,f:[{p:[6,3,235],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,251]}," ",{t:4,f:[{p:[9,4,317],t:7,e:"br"},{p:[9,8,321],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[9,63,376]},'"}']},f:[{t:3,r:"name",p:[9,75,388]}," - ",{t:3,r:"desc",p:[9,88,401]}]}],n:52,r:"data.recollection_categories",p:[8,3,274]}," ",{t:3,r:"data.rec_section",p:[11,3,440]}," ",{t:3,r:"data.rec_binds",p:[12,3,466]}]}],n:50,r:"data.recollection",p:[5,1,206]},{t:4,n:51,f:[{p:[15,2,517],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[16,4,580],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[17,6,599]}]}]}," ",{p:[20,2,657],t:7,e:"ui-display",f:[{p:[21,3,673],t:7,e:"ui-section",f:[{p:[22,4,690],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[22,22,708]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[23,4,831],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[23,22,849]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[24,4,973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[24,22,991]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[25,4,1130],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[25,22,1148]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[26,4,1279],t:7,e:"br"},{t:3,r:"data.tier_info",p:[26,8,1283]}]},{p:[27,16,1320],t:7,e:"hr"}," ",{p:[28,3,1328],t:7,e:"ui-section",f:[{t:4,f:[{p:[30,4,1373],t:7,e:"div",f:[{p:[30,9,1378],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[30,29,1398]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[30,99,1468]},'"}']},f:["Recite",{t:3,r:"required",p:[30,117,1486]}]}," ",{t:4,f:[{t:4,f:[{p:[33,6,1562],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[33,53,1609]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[33,72,1628]}]}],n:50,r:"bound",p:[32,5,1542]},{t:4,n:51,f:[{p:[35,6,1672],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[35,53,1719]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[31,6,1519]}," ",{t:3,r:"name",p:[38,6,1786]}," ",{t:3,r:"descname",p:[38,17,1797]}," ",{t:3,r:"invokers",p:[38,32,1812]}]}],n:52,r:"data.scripture",p:[29,3,1344]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{205:205}],242:[function(t,e,n){var a=t(205),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)},{205:205}],243:[function(t,e,n){var a=t(205),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)},{205:205}],244:[function(t,e,n){var a=t(205),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)},{205:205}],245:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{temperatureStatus:function(t){return 225>t?"good":273.15>t?"average":"bad"}},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:[22,1,466],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[23,3,499],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[24,3,532],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[24,9,538]}]}]}," ",{t:4,f:[{p:[27,5,655],t:7,e:"ui-section",a:{label:"State"},f:[{p:[28,7,689],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[28,20,702]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[28,43,725]}]}]}," ",{p:[30,4,846],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[31,6,885],t:7,e:"span",a:{"class":[{t:2,x:{r:["temperatureStatus","adata.occupant.bodyTemperature"],s:"_0(_1)"},p:[31,19,898]}]},f:[{t:2,x:{r:["adata.occupant.bodyTemperature"],s:"Math.round(_0)"},p:[31,74,953]}," K"]}]}," ",{p:[33,5,1032],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[34,7,1067],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[34,20,1080]}],max:[{t:2,r:"data.occupant.maxHealth",p:[34,54,1114]}],value:[{t:2,r:"data.occupant.health",p:[34,90,1150]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[35,16,1192]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[35,68,1244]}]}]}," ",{t:4,f:[{p:[38,7,1481],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[38,26,1500]}]},f:[{p:[39,9,1521],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[39,30,1542]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[39,66,1578]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[39,103,1615]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[37,5,1315]}],n:50,r:"data.hasOccupant",p:[26,3,625]}]}," ",{p:[44,1,1724],t:7,e:"ui-display",a:{title:"Cell"},f:[{p:[45,3,1753],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[46,5,1785],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[46,22,1802]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[47,14,1862]}],state:[{t:2,x:{r:["data.isOpen"],s:'_0?"disabled":null'},p:[48,14,1918]}],action:"power"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[49,22,1977]}]}]}," ",{p:[51,3,2045],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[52,3,2081],t:7,e:"span",a:{"class":[{t:2,x:{r:["temperatureStatus","adata.cellTemperature"],s:"_0(_1)"},p:[52,16,2094]}]},f:[{t:2,x:{r:["adata.cellTemperature"],s:"Math.round(_0)"},p:[52,62,2140]}," K"]}]}," ",{p:[54,2,2205],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[55,5,2236],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOpen"],s:'_0?"unlock":"lock"'},p:[55,22,2253]}],action:"door"},f:[{t:2,x:{r:["data.isOpen"],s:'_0?"Open":"Closed"'},p:[55,73,2304]}]}," ",{p:[56,5,2357],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoEject"],s:'_0?"sign-out":"sign-in"'},p:[56,22,2374]}],action:"autoeject"},f:[{t:2,x:{r:["data.autoEject"],s:'_0?"Auto":"Manual"'},p:[56,86,2438]}]}]}]}," ",{p:{button:[{p:[61,5,2584],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[61,36,2615]}],action:"ejectbeaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[63,3,2718],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{t:4,f:[{p:[66,9,2828],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[66,52,2871]}," units of ",{t:2,r:"name",p:[66,87,2906]}]},{p:[66,102,2921],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[65,7,2788]},{t:4,n:51,f:[{p:[68,9,2952],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[64,5,2753]},{t:4,n:51,f:[{p:[71,7,3028],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],246:[function(t,e,n){var a=t(205),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)},{205:205}],247:[function(t,e,n){var a=t(205),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)},{205:205}],248:[function(t,e,n){var a=t(205),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)},{205:205}],249:[function(t,e,n){var a=t(205),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)},{205:205}],250:[function(t,e,n){var a=t(205),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)},{205:205}],251:[function(t,e,n){var a=t(205),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)},{205:205}],252:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{seclevelState:function(){switch(this.get("data.seclevel")){case"blue":return"average";case"red":return"bad";case"delta":return"bad bold";default:return"good"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[16,1,323],t:7,e:"ui-display",f:[{p:[17,5,341],t:7,e:"ui-section",a:{label:"Alert Level"},f:[{p:[18,9,383],t:7,e:"span",a:{"class":[{t:2,r:"seclevelState",p:[18,22,396]}]},f:[{t:2,x:{r:["text","data.seclevel"],s:"_0.titleCase(_1)"},p:[18,41,415]}]}]}," ",{p:[20,5,480],t:7,e:"ui-section",a:{label:"Controls"},f:[{p:[21,9,519],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.alarm"],s:'_0?"close":"bell-o"'},p:[21,26,536]}],action:[{t:2,x:{r:["data.alarm"],s:'_0?"reset":"alarm"'},p:[21,71,581]}]},f:[{t:2,x:{r:["data.alarm"],s:'_0?"Reset":"Activate"'},p:[22,13,631]}]}]}," ",{t:4,f:[{p:[25,7,733],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[26,9,771],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[24,5,705]}]}]},e.exports=a.extend(r.exports)},{205:205}],253:[function(t,e,n){var a=t(205),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)},{205:205}],254:[function(t,e,n){var a=t(205),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)},{205:205}],255:[function(t,e,n){var a=t(205),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)},{205:205}],256:[function(t,e,n){var a=t(205),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)},{205:205}],257:[function(t,e,n){var a=t(205),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)},{205:205}],258:[function(t,e,n){var a=t(205),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)},{205:205}],259:[function(t,e,n){var a=t(205),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)},{205:205}],260:[function(t,e,n){var a=t(205),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)},{205:205}],261:[function(t,e,n){var a=t(205),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)},{205:205}],262:[function(t,e,n){var a=t(205),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)},{205:205}],263:[function(t,e,n){var a=t(205),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)},{205:205}],264:[function(t,e,n){var a=t(205),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)},{205:205}],265:[function(t,e,n){var a=t(205),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)},{205:205}],266:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],267:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],268:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],269:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],270:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],271:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],272:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],273:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],274:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],275:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],276:[function(t,e,n){var a=t(205),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", ++},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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],268:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],269:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],270:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],271:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],272:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],273:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],274:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],275:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],276:[function(t,e,n){var a=t(205),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]}," W"]}]}," ",{p:[55,5,1530],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[56,9,1565],t:7,e:"span",f:[{t:2,r:"data.demand",p:[56,15,1571]}," W"]}]}],r:"config.fancy"}]}," ",{p:[60,1,1642],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[61,3,1672],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[62,5,1697],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[63,5,1734],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[64,5,1773],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[65,5,1810],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[66,5,1849],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[67,5,1891],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[68,5,1932],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[71,5,2017],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[71,24,2036]}],nowrap:0},f:[{p:[72,7,2061],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[72,28,2082]}," %"]}," ",{p:[73,7,2140],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[73,28,2161]}," W"]}," ",{p:[74,7,2217],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2238],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[74,41,2251]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[74,70,2280]}]}]}," ",{p:[75,7,2327],t:7,e:"div",a:{"class":"content"},f:[{p:[75,28,2348],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[75,41,2361]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[75,64,2384]}," [",{p:[75,87,2407],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[75,93,2413]}]},"]"]}]}," ",{p:[76,7,2462],t:7,e:"div",a:{"class":"content"},f:[{p:[76,28,2483],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[76,41,2496]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[76,64,2519]}," [",{p:[76,87,2542],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[76,93,2548]}]},"]"]}]}," ",{p:[77,7,2597],t:7,e:"div",a:{"class":"content"},f:[{p:[77,28,2618],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[77,41,2631]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[77,64,2654]}," [",{p:[77,87,2677],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[77,93,2683]}]},"]"]}]}]}],n:52,r:"data.areas",p:[70,3,1991]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],277:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],278:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],279:[function(t,e,n){var a=t(205),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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],280:[function(t,e,n){var a=t(205),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)},{205:205}],281:[function(t,e,n){var a=t(205),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)},{205:205}],282:[function(t,e,n){var a=t(205),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"}]}," ",{p:[49,1,1195],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[50,2,1227],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[51,4,1261],t:7,e:"section",a:{"class":"cell"},f:["Mineral"]}," ",{p:[54,4,1316],t:7,e:"section",a:{"class":"cell"},f:["Sheets"]}," ",{p:[57,4,1370],t:7,e:"section",a:{"class":"cell"},f:[]}," ",{p:[59,4,1412],t:7,e:"section",a:{"class":"cell"},f:[{p:[60,5,1440],t:7,e:"ui-button",a:{"class":"center mineral",grid:0,action:"Release",params:'{"id" : "all"}'},f:["Release All"]}]}," ",{p:[64,4,1576],t:7,e:"section",a:{"class":"cell"},f:["Ore Value"]}]}," ",{t:4,f:[{p:[69,3,1673],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[70,4,1707],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[71,5,1735]}]}," ",{p:[73,4,1763],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[74,5,1805]}]}," ",{p:[76,4,1835],t:7,e:"section",a:{"class":"cell"},f:[{p:[77,5,1863],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[77,18,1876]}],placeholder:"###","class":"number"}}]}," ",{p:[79,4,1941],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[80,5,1983],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[80,59,2037]}],params:['{ "id" : ',{t:2,r:"id",p:[80,114,2092]},', "sheets" : ',{t:2,r:"sheets",p:[80,133,2111]}," }"]},f:["Release"]}]}," ",{p:[84,4,2178],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"value",p:[85,5,2220]}]}]}],n:52,r:"data.materials",p:[68,2,1645]}," ",{t:4,f:[{p:[90,3,2298],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[91,4,2332],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[92,5,2360]}]}," ",{p:[94,4,2388],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[95,5,2430]}]}," ",{p:[97,4,2460],t:7,e:"section",a:{"class":"cell"},f:[{p:[98,5,2488],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[98,18,2501]}],placeholder:"###","class":"number"}}]}," ",{p:[100,4,2566],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[101,5,2608],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Smelt",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[101,57,2660]}],params:['{ "id" : ',{t:2,r:"id",p:[101,113,2716]},', "sheets" : ',{t:2,r:"sheets",p:[101,132,2735]}," }"]},f:["Smelt"]}]}," ",{p:[105,4,2799],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[106,5,2841],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"SmeltAll",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[106,60,2896]}],params:['{ "id" : ',{t:2,r:"id",p:[106,116,2952]}," }"]},f:["Smelt All"]}]}]}],n:52,r:"data.alloys",p:[89,2,2273]}]}]},e.exports=a.extend(r.exports)},{205:205}],283:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,60],t:7,e:"ui-button",a:{icon:"remove",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[3,35,92]}],action:"empty_eject_beaker"},f:["Empty and eject"]}," ",{p:[6,3,201],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[6,34,232]}],action:"empty_beaker"},f:["Empty"]}," ",{p:[9,3,325],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[9,34,356]}],action:"eject_beaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{t:4,f:[{p:[14,3,490],t:7,e:"ui-section",f:[{t:4,f:[{p:[16,5,538],t:7,e:"span",a:{"class":"bad"},f:["The beaker is empty!"]}],n:50,r:"data.beaker_empty",p:[15,4,507]},{t:4,n:51,f:[{p:[18,5,602],t:7,e:"ui-subdisplay",a:{title:"Blood"},f:[{t:4,f:[{p:[20,7,668],t:7,e:"ui-section",a:{label:"Blood DNA"},f:[{t:2,r:"data.blood.dna",p:[20,37,698]}]}," ",{p:[21,7,737],t:7,e:"ui-section",a:{label:"Blood type"},f:[{t:2,r:"data.blood.type",p:[21,38,768]}]}],n:50,r:"data.has_blood",p:[19,6,638]},{t:4,n:51,f:[{p:[23,7,823],t:7,e:"ui-section",f:[{p:[24,8,844],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:[13,2,463]},{t:4,n:51,f:[{p:[31,3,999],t:7,e:"ui-section",f:[{p:[32,4,1016],t:7,e:"span",a:{"class":"bad"},f:["No beaker loaded."]}]}],r:"data.has_beaker"}]}," ",{t:4,f:[{p:[37,2,1127],t:7,e:"ui-display",a:{title:"Diseases"},f:[{t:4,f:[{p:{button:[{t:4,f:[{p:[42,7,1277],t:7,e:"ui-button",a:{icon:"pencil",action:"rename_disease",state:[{t:2,x:{r:["can_rename"],s:'_0?"":"disabled"'},p:[42,63,1333]}],params:['{"index": ',{t:2,r:"index",p:[42,115,1385]},"}"]},f:["Name advanced disease"]}],n:50,r:"is_adv",p:[41,6,1255]}," ",{p:[46,6,1468],t:7,e:"ui-button",a:{icon:"flask",action:"create_culture_bottle",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[46,68,1530]}],params:['{"index": ',{t:2,r:"index",p:[46,123,1585]},"}"]},f:["Create virus culture bottle"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[39,23,1206]}],button:0},f:[" ",{p:[50,5,1675],t:7,e:"ui-section",a:{label:"Disease agent"},f:[{t:2,r:"agent",p:[50,39,1709]}]}," ",{p:[51,5,1737],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[51,37,1769]}]}," ",{p:[52,5,1803],t:7,e:"ui-section",a:{label:"Spread"},f:[{t:2,r:"spread",p:[52,32,1830]}]}," ",{p:[53,5,1859],t:7,e:"ui-section",a:{label:"Possible cure"},f:[{t:2,r:"cure",p:[53,39,1893]}]}," ",{t:4,f:[{p:[55,6,1942],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[55,37,1973]}]}," ",{p:[56,6,2007],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[56,34,2035]}]}," ",{p:[57,6,2066],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[57,38,2098]}]}," ",{p:[58,6,2133],t:7,e:"ui-section",a:{label:"Symptoms"},f:[{t:4,f:[{p:[60,8,2197],t:7,e:"span",f:[{t:2,r:"name",p:[60,14,2203]}]},{p:[60,29,2218],t:7,e:"br"}],n:52,r:"symptoms",p:[59,7,2170]}]}],n:50,r:"is_adv",p:[54,5,1921]}]}],n:52,r:"data.viruses",p:[38,3,1160]},{t:4,n:51,f:[{p:[66,4,2309],t:7,e:"ui-section",f:[{p:[67,5,2327],t:7,e:"span",a:{"class":"average"},f:["No detectable virus in the blood sample."]}]}],r:"data.viruses"}]}," ",{p:[71,2,2446],t:7,e:"ui-display",a:{title:"Antibodies"},f:[{t:4,f:[{p:[73,4,2512],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[73,23,2531]}]},f:[{p:[74,6,2548],t:7,e:"ui-button",a:{icon:"eyedropper",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[74,42,2584]}],action:"create_vaccine_bottle",params:['{"index": ',{t:2,r:"id",p:[74,128,2670]},"}"]},f:["Create vaccine bottle"]}]}],n:52,r:"data.resistances",p:[72,3,2481]},{t:4,n:51,f:[{p:[79,4,2762],t:7,e:"ui-section",f:[{p:[80,5,2780],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:[36,1,1102]}]},e.exports=a.extend(r.exports)},{205:205}],284:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(312);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)},{205:205,312:312}],285:[function(t,e,n){var a=t(205),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)},{205:205}],286:[function(t,e,n){var a=t(205),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:"Filter"},f:[{p:[13,3,461],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,493],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,510]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,561]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,618]}]}]}]}," ",{p:{button:[{t:4,f:[{p:[22,7,787],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[22,38,818]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[21,5,759]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[26,3,938],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[27,4,969]}]}," ",{p:[29,3,1011],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[30,4,1045]}," kPa"]}],n:50,r:"data.holding",p:[25,3,914]},{t:4,n:51,f:[{p:[33,3,1119],t:7,e:"ui-section",f:[{p:[34,4,1136],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{205:205}],287:[function(t,e,n){var a=t(205),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]}," W"]}]}," ",{p:[52,5,1466],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[53,9,1501],t:7,e:"span",f:[{t:2,r:"data.demand",p:[53,15,1507]}," W"]}]}],r:"config.fancy"}]}," ",{p:[57,1,1578],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[58,3,1608],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[59,5,1633],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[60,5,1670],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[61,5,1709],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[62,5,1746],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[63,5,1785],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[64,5,1827],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[65,5,1868],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[68,5,1953],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[68,24,1972]}],nowrap:0},f:[{p:[69,7,1997],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[69,28,2018]}," %"]}," ",{p:[70,7,2076],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[70,28,2097]}," W"]}," ",{p:[71,7,2153],t:7,e:"div",a:{"class":"content"},f:[{p:[71,28,2174],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[71,41,2187]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[71,70,2216]}]}]}," ",{p:[72,7,2263],t:7,e:"div",a:{"class":"content"},f:[{p:[72,28,2284],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[72,41,2297]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[72,64,2320]}," [",{p:[72,87,2343],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[72,93,2349]}]},"]"]}]}," ",{p:[73,7,2398],t:7,e:"div",a:{"class":"content"},f:[{p:[73,28,2419],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[73,41,2432]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[73,64,2455]}," [",{p:[73,87,2478],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[73,93,2484]}]},"]"]}]}," ",{p:[74,7,2533],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2554],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[74,41,2567]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[74,64,2590]}," [",{p:[74,87,2613],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[74,93,2619]}]},"]"]}]}]}],n:52,r:"data.areas",p:[67,3,1927]}]}]},e.exports=a.extend(r.exports)},{205:205}],288:[function(t,e,n){var a=t(205),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)},{205:205}],289:[function(t,e,n){var a=t(205),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)},{205:205}],290:[function(t,e,n){var a=t(205),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(291),templates:t(293),status:t(292)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,291:291,292:292,293:293}],291:[function(t,e,n){var a=t(205),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)},{205:205}],292:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,27],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,46]}," (",{t:2,r:"id",p:[2,32,56]},")"]},f:[{t:2,r:"status",p:[3,5,71]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[5,8,109]},")"],n:50,r:"timer",p:[4,5,87]}," ",{p:[7,5,141],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[7,67,203]},'"}']},f:["Jump To"]}," ",{p:[10,5,252],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[10,53,300]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[10,70,317]}]},f:["Fast Travel"]}]}],n:52,r:"data.shuttles",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],293:[function(t,e,n){var a=t(205),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)},{205:205}],294:[function(t,e,n){var a=t(205),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]}]}]}," ",{p:[23,5,658],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,7,693],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[24,20,706]}],max:[{t:2,r:"data.occupant.maxHealth",p:[24,54,740]}],value:[{t:2,r:"data.occupant.health",p:[24,90,776]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[25,16,818]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[25,68,870]}]}]}," ",{t:4,f:[{p:[28,7,1107],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[28,26,1126]}]},f:[{p:[29,9,1147],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[29,30,1168]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[29,66,1204]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[29,103,1241]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[27,5,941]}," ",{p:[32,5,1328],t:7,e:"ui-section",a:{label:"Cells"},f:[{p:[33,9,1364],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"bad":"good"'},p:[33,22,1377]}]},f:[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"Damaged":"Healthy"'},p:[33,68,1423]}]}]}," ",{p:[35,5,1506],t:7,e:"ui-section",a:{label:"Brain"},f:[{p:[36,9,1542],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"bad":"good"'},p:[36,22,1555]}]},f:[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"Abnormal":"Healthy"'},p:[36,68,1601]}]}]}," ",{p:[38,5,1685],t:7,e:"ui-section",a:{label:"Bloodstream"},f:[{t:4,f:[{p:[40,11,1772],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,1)"},p:[40,54,1815]}," units of ",{t:2,r:"name",p:[40,89,1850]}]},{p:[40,104,1865],t:7,e:"br"}],n:52,r:"adata.occupant.reagents",p:[39,9,1727]},{t:4,n:51,f:[{p:[42,11,1900],t:7,e:"span",a:{"class":"good"},f:["Pure"]}],r:"adata.occupant.reagents"}]}],n:50,r:"data.occupied",p:[19,3,439]}]}," ",{p:[47,1,1996],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[48,2,2028],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[49,5,2059],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[49,22,2076]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[49,71,2125]}]}]}," ",{p:[51,3,2190],t:7,e:"ui-section",a:{label:"Inject"},f:[{t:4,f:[{p:[53,7,2251],t:7,e:"ui-button",a:{icon:"flask",state:[{t:2,x:{r:["data.occupied","allowed"],s:'_0&&_1?null:"disabled"'},p:[53,38,2282]}],action:"inject",params:['{"chem": "',{t:2,r:"id",p:[53,122,2366]},'"}']},f:[{t:2,r:"name",p:[53,132,2376]}]},{p:[53,152,2396],t:7,e:"br"}],n:52,r:"data.chems",p:[52,5,2223]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],295:[function(t,e,n){var a=t(205),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:2,x:{r:["is_current"],s:'_0?"You Are Here":"Swap"'},p:[10,7,491]}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],296:[function(t,e,n){var a=t(205),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,x:{r:["adata.inputLevel"],s:"Math.round(_0)"},p:[37,78,1447]},"W"]}]}," ",{p:[39,3,1509],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1548],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1587]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1682],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1716]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1812],t:7,e:"ui-button",a:{icon:"pencil",action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1902],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,1935]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,2047],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,2085]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2212],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2246],t:7,e:"span",f:[{t:2,x:{r:["adata.inputAvailable"],s:"Math.round(_0)"},p:[47,9,2252]},"W"]}]}]}," ",{p:[50,1,2329],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2360],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2398],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2415]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2470]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2540]}]},"   [",{p:[55,6,2608],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2621]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2638]}]},"]"]}," ",{p:[57,3,2745],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2785],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2806]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2838]}]},f:[{t:2,x:{r:["adata.outputLevel"],s:"Math.round(_0)"},p:[58,80,2860]},"W"]}]}," ",{p:[60,3,2923],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2963],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,3002]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3099],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3133]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3231],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3322],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,3355]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3470],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,3508]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3638],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3673],t:7,e:"span",f:[{t:2,x:{r:["adata.outputUsed"],s:"Math.round(_0)"},p:[68,9,3679]},"W"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],297:[function(t,e,n){var a=t(205),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)},{205:205}],298:[function(t,e,n){var a=t(205),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)},{205:205}],299:[function(t,e,n){var a=t(205),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)},{205:205}],300:[function(t,e,n){var a=t(205),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 disinfected. 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,369],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,386] + }],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,437]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,351]}," ",{t:4,f:[{p:[14,27,519],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,536]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,590]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,499]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,692],t:7,e:"ui-notice",f:[{p:[18,9,713],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,665]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,793],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,832],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,849]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,896]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,992]}]}]}," ",{p:[25,9,1063],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1100],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1117]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1163]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1255]}]}]}," ",{p:[29,9,1324],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1361],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1378]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1424]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1516]}]}]}," ",{p:[33,9,1585],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1625],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1642]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1691]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1789]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1873],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,1906]}],action:"uv"},f:["Disinfect"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{205:205}],301:[function(t,e,n){var a=t(205),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)},{205:205}],302:[function(t,e,n){var a=t(205),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)},{205:205}],303:[function(t,e,n){var a=t(205),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)},{205:205}],304:[function(t,e,n){var a=t(205),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)},{205:205}],305:[function(t,e,n){var a=t(205),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,333],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[17,4,373],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[18,5,404]}]}," ",{p:[20,4,450],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[21,5,483]}]}," ",{p:[23,4,531],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,5,564],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[24,26,585]}],value:[{t:2,r:"adata.vr_avatar.health",p:[24,64,623]}],state:[{t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[24,99,658]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[24,140,699]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[24,179,738]}]}]}]}],n:50,r:"data.vr_avatar",p:[15,2,307]},{t:4,n:51,f:[{p:[28,3,826],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[32,2,922],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[33,3,958],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[33,20,975]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[34,4,1042]}," the VR Sleeper"]}," ",{t:4,f:[{p:[37,4,1144],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[36,3,1116]}," ",{t:4,f:[{p:[42,4,1267],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[41,3,1240]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],306:[function(t,e,n){var a=t(205),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)},{205:205}],307:[function(t,e,n){(function(e){"use strict";var n=t(205),a=e.interopRequireDefault(n);t(194),t(1),t(190),t(193);var r=t(308),i=e.interopRequireDefault(r),o=t(309),s=t(191),u=t(192),p=e.interopRequireDefault(u);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(313)),window.initialize=function(e){window.tgui||(window.tgui=new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(310),text:t(314),config:n.config,data:n.data,adata:n.data}}}))};var c=document.getElementById("data"),l=c.textContent,f=c.getAttribute("data-ref");"{}"!==l&&(window.initialize(l),c.remove()),(0,o.act)(f,"tgui:initialize"),(0,s.loadCSS)("font-awesome.min.css");var d=new p["default"]("FontAwesome");d.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,190:190,191:191,192:192,193:193,194:194,205:205,308:308,309:309,310:310,313:313,314:314,"babel/external-helpers":"babel/external-helpers"}],308:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309),a=t(311);e.exports={components:{"ui-bar":t(206),"ui-button":t(207),"ui-display":t(208),"ui-input":t(209),"ui-linegraph":t(210),"ui-notice":t(211),"ui-section":t(213),"ui-subdisplay":t(214),"ui-tabs":t(215)},events:{enter:t(203).enter,space:t(203).space},transitions:{fade:t(204)},onconfig:function(){var e=this.get("config.interface"),n={airalarm:t(219),"airalarm/back":t(220),"airalarm/modes":t(221),"airalarm/scrubbers":t(222),"airalarm/status":t(223),"airalarm/thresholds":t(224),"airalarm/vents":t(225),airlock_electronics:t(226),apc:t(227),atmos_alert:t(228),atmos_control:t(229),atmos_filter:t(230),atmos_mixer:t(231),atmos_pump:t(232),brig_timer:t(233),bsa:t(234),canister:t(235),cargo:t(236),cellular_emporium:t(237),chem_dispenser:t(238),chem_heater:t(239),chem_master:t(240),clockwork_slab:t(241),codex_gigas:t(242),computer_fabricator:t(243),crayon:t(244),cryo:t(245),disposal_unit:t(246),dna_vault:t(247),eightball:t(248),emergency_shuttle_console:t(249),engraved_message:t(250),error:t(251),firealarm:t(252),gps:t(253),gulag_console:t(254),gulag_item_reclaimer:t(255),holodeck:t(256),implantchair:t(257),intellicard:t(258),keycard_auth:t(259),labor_claim_console:t(260),language_menu:t(261),launchpad_remote:t(262),mech_bay_power_console:t(263),mulebot:t(264),ntnet_relay:t(265),ntos_ai_restorer:t(266),ntos_card:t(267),ntos_configuration:t(268),ntos_file_manager:t(269),ntos_main:t(270),ntos_net_chat:t(271),ntos_net_dos:t(272),ntos_net_downloader:t(273),ntos_net_monitor:t(274),ntos_net_transfer:t(275),ntos_power_monitor:t(276),ntos_revelation:t(277),ntos_station_alert:t(278),ntos_supermatter_monitor:t(279),ntosheader:t(280),nuclear_bomb:t(281),ore_redemption_machine:t(282),pandemic:t(283),personal_crafting:t(284),portable_pump:t(285),portable_scrubber:t(286),power_monitor:t(287),radio:t(288),sat_control:t(289),shuttle_manipulator:t(290),"shuttle_manipulator/modification":t(291),"shuttle_manipulator/status":t(292),"shuttle_manipulator/templates":t(293),sleeper:t(294),slime_swap_body:t(295),smes:t(296),solar_control:t(297),space_heater:t(298),station_alert:t(299),suit_storage_unit:t(300),tank_dispenser:t(301),tanks:t(302),thermomachine:t(303),uplink:t(304),vr_sleeper:t(305),wires:t(306)};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(218),titlebar:t(217),resize:t(212)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,304:304,305:305,306:306,309:309,311:311}],309:[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},{}],310:[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},{}],311:[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(309)},{309:309}],312:[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 u=s;a||u.textContent.toLowerCase().includes(e)?u.style.display="":u.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],313:[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},{}],314:[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 u=Array(o),p=0;o>p;p++)u[p]=arguments[p+3];n.children=u}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(u){r("throw",u)}}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(u){return void n(u)}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(u){r=!0,i=u}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 {{Math.floor(adata.points)}} - + {{data.message}} {{#if data.loan && !data.requestonly}} @@ -29,7 +29,7 @@ state='{{data.away && data.docked ? null : "disabled"}}' action='loan'>Loan Shuttle {{else}} - Loaned to Centcom + Loaned to CentCom {{/if}} {{/if}} diff --git a/tgui/src/interfaces/ntos_card.ract b/tgui/src/interfaces/ntos_card.ract index 582737a8a6..3d7cbba9b2 100644 --- a/tgui/src/interfaces/ntos_card.ract +++ b/tgui/src/interfaces/ntos_card.ract @@ -180,7 +180,7 @@ {{#if data.centcom_access}} - Centcom + CentCom {{#each data.centcom_jobs}} {{display_name}} From 68bbda4b4dcb1b4ae26ede8a284b6b6256ac4013 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 09:05:50 -0500 Subject: [PATCH 041/113] Mechs can no longer open cult doors if the person inside is not a cultist --- code/__DEFINES/access.dm | 7 ++++++- code/game/machinery/doors/airlock_types.dm | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index e557a55e7c..3498887edf 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -93,4 +93,9 @@ #define ACCESS_AWAY_GENERIC1 205//Away generic access #define ACCESS_AWAY_GENERIC2 206 #define ACCESS_AWAY_GENERIC3 207 -#define ACCESS_AWAY_GENERIC4 208 \ No newline at end of file +#define ACCESS_AWAY_GENERIC4 208 + + //Special, for anything that's basically internal +#define ACCESS_BLOODCULT 250 +#define ACCESS_CLOCKCULT 251 + diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 72840241b3..ef54783cd3 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -368,13 +368,14 @@ overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi' assemblytype = /obj/structure/door_assembly/door_assembly_cult hackProof = TRUE - aiControlDisabled = 1 + aiControlDisabled = TRUE + req_access = list(ACCESS_BLOODCULT) var/openingoverlaytype = /obj/effect/temp_visual/cult/door var/friendly = FALSE -/obj/machinery/door/airlock/cult/New() - ..() - new openingoverlaytype(src.loc) +/obj/machinery/door/airlock/cult/Initialize() + . = ..() + new openingoverlaytype(loc) /obj/machinery/door/airlock/cult/canAIControl(mob/user) return (iscultist(user) && !isAllPowerCut()) @@ -435,17 +436,17 @@ opacity = 1 hackProof = TRUE aiControlDisabled = TRUE + req_access = list(ACCESS_CLOCKCULT) use_power = FALSE resistance_flags = FIRE_PROOF | ACID_PROOF damage_deflection = 30 normal_integrity = 240 var/construction_state = GEAR_SECURE //Pinion airlocks have custom deconstruction -/obj/machinery/door/airlock/clockwork/New() - ..() - var/turf/T = get_turf(src) - new /obj/effect/temp_visual/ratvar/door(T) - new /obj/effect/temp_visual/ratvar/beam/door(T) +/obj/machinery/door/airlock/clockwork/Initialize() + . = ..() + new /obj/effect/temp_visual/ratvar/door(loc) + new /obj/effect/temp_visual/ratvar/beam/door(loc) change_construction_value(5) /obj/machinery/door/airlock/clockwork/Destroy() From fb86e035448445dafb20e3f86ba65189bd6dccf4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 09:05:54 -0500 Subject: [PATCH 042/113] Belligerent now has a visible indicator --- .../clock_scriptures/scripture_drivers.dm | 1 + .../objects/effects/temporary_visuals/clockcult.dm | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 7818f9fae8..fa61e3ca31 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -21,6 +21,7 @@ /datum/clockwork_scripture/channeled/belligerent/chant_effects(chant_number) for(var/mob/living/carbon/C in hearers(7, invoker)) C.apply_status_effect(STATUS_EFFECT_BELLIGERENT) + new /obj/effect/temp_visual/ratvar/belligerent(get_turf(invoker)) return TRUE diff --git a/code/game/objects/effects/temporary_visuals/clockcult.dm b/code/game/objects/effects/temporary_visuals/clockcult.dm index c3894b8300..b1068b0038 100644 --- a/code/game/objects/effects/temporary_visuals/clockcult.dm +++ b/code/game/objects/effects/temporary_visuals/clockcult.dm @@ -62,6 +62,17 @@ /obj/effect/temp_visual/ratvar/grille/broken icon_state = "ratvarbrokengrilleglow" +/obj/effect/temp_visual/ratvar/belligerent + layer = ABOVE_MOB_LAYER + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "belligerent_eye" + pixel_y = 20 + duration = 20 + +/obj/effect/temp_visual/ratvar/belligerent_cast/Initialize() + . = ..() + animate(src, alpha = 0, time = duration, easing = EASE_OUT) + /obj/effect/temp_visual/ratvar/mending_mantra layer = ABOVE_MOB_LAYER duration = 20 @@ -88,7 +99,7 @@ . = ..() pixel_x = rand(-8, 8) pixel_y = rand(-10, 10) - animate(src, alpha = 0, time = 3, easing = EASE_OUT) + animate(src, alpha = 0, time = duration, easing = EASE_OUT) /obj/effect/temp_visual/ratvar/prolonging_prism icon = 'icons/effects/64x64.dmi' From fcd1a2dc86ab4eac1c47488bbfc8d51fc1e5693e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 09:05:58 -0500 Subject: [PATCH 043/113] Oocky in icky descriptions --- code/game/objects/effects/contraband.dm | 2 +- code/modules/library/soapstone.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 663fed74fc..5778f5f42e 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -350,7 +350,7 @@ /obj/structure/sign/poster/contraband/free_drone name = "Free Drone" - desc = "This poster commemorates the bravery of the rogue drone banned by CentComm." + desc = "This poster commemorates the bravery of the rogue drone; once exiled, and then ultimately destroyed by CentCom." icon_state = "poster35" /obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6 diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm index 26c88883df..cd069ec44d 100644 --- a/code/modules/library/soapstone.dm +++ b/code/modules/library/soapstone.dm @@ -1,6 +1,6 @@ /obj/item/soapstone name = "soapstone" - desc = "Leave informative messages for the crew, including the crew of future shifts!\nEven if out of uses, it can still be used to remove messages.\n(Not suitable for engraving on shuttles, off station or on cats. Side effects may include beatings, bannings and orbital bombardment.)" + desc = "Leave informative messages for the crew, including the crew of future shifts!\nEven if out of uses, it can still be used to remove messages.\n(Not suitable for engraving on shuttles, off station or on cats. Side effects may include prompt beatings, psychotic clown incursions, and/or orbital bombardment.)" icon = 'icons/obj/items.dmi' icon_state = "soapstone" throw_speed = 3 From 9e71a0bdb10612858b887c4cfccd7d325d632769 Mon Sep 17 00:00:00 2001 From: ktccd Date: Tue, 8 Aug 2017 17:41:27 +0200 Subject: [PATCH 044/113] Lots of genital changes Penile masturbation is fixed again. Masturbation cooldown set to 5 seconds once again, as intended. mob_masturbate is now mob_climax(forced_climax=FALSE). It can be used to masturbate alone, cum inside someone partially or completely and can be used to trigger a forced orgasm through all eligible genitals. Hexacrocin (Aphro PLUS) now increases your minimum arousal over time when overdosing, up to your maximum arousal level at which point you are constantly aroused. When fully aroused, hexacrocin overdose will force an orgasm. Hexacamhor (ANaphro PLUS) overdose now decreases minimum arousal over time, down to 0. Added to_chat feedback to the player when their libido changes permanently. Changed old "src <<" messages to use the new to_chat in citadel chems and citadel arousal, so text should display now. Changed names of genitals to be capitalized, to avoid the code automatically calling them "The X". Masturbation also has more helpful feedback messages when you lack the correct organs. The old force_orgasm proc is removed, use mob_climax(forced_climax=TRUE) instead. --- code/citadel/cit_arousal.dm | 160 ++++++++++++++++++++++++------ code/citadel/cit_reagents.dm | 30 +++--- code/citadel/organs/breasts.dm | 2 +- code/citadel/organs/eggsack.dm | 2 +- code/citadel/organs/ovipositor.dm | 2 +- code/citadel/organs/penis.dm | 2 +- code/citadel/organs/testicles.dm | 2 +- code/citadel/organs/vagina.dm | 2 +- code/citadel/organs/womb.dm | 4 +- 9 files changed, 155 insertions(+), 51 deletions(-) diff --git a/code/citadel/cit_arousal.dm b/code/citadel/cit_arousal.dm index 12245c05d5..cf47dab1da 100644 --- a/code/citadel/cit_arousal.dm +++ b/code/citadel/cit_arousal.dm @@ -6,7 +6,7 @@ var/arousal_rate = 1 //The base rate that arousal will increase in this mob. var/arousal_loss_rate = 1 //How easily arousal can be relieved for this mob. var/canbearoused = FALSE //Mob-level disabler for arousal. Starts off and can be enabled as features are added for different mob types. - var/mb_cd_length = 50 //5 second cooldown for masturbating because fuck spam + var/mb_cd_length = 100 //5 second cooldown for masturbating because fuck spam. var/mb_cd_timer = 0 //The timer itself /mob/living/carbon/human @@ -150,14 +150,14 @@ return 0 var/mob/living/M = usr if(M.canbearoused) - M.mob_masturbate() + M.mob_climax() return 1 else - M << "Arousal is disabled. Feature is unavailable." + to_chat(M, "Arousal is disabled. Feature is unavailable.") -/mob/living/proc/mob_masturbate()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while. +/mob/living/proc/mob_climax()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while. set name = "Masturbate" set category = "IC" if(canbearoused && !restrained() && !stat) @@ -179,45 +179,93 @@ PoolOrNew(/obj/effect/decal/cleanable/femcum, loc) */ else - src << "You aren't aroused enough for that." + to_chat(src, "You aren't aroused enough for that.") -/mob/living/carbon/human/mob_masturbate() +/mob/living/carbon/human/mob_climax(forced_climax=FALSE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints if(mb_cd_timer > world.time) - src << "You need to wait [round((mb_cd_timer - world.time)/(20))] seconds before you can do that again!" + if(!forced_climax) //Don't spam the message to the victim if forced to come too fast + to_chat(src, "You need to wait [round((mb_cd_timer - world.time)/(20))] seconds before you can do that again!") return + mb_cd_timer = (world.time + mb_cd_length) var/list/genitals_list = list() var/obj/item/organ/genital/SG = null//originally selected_genital var/list/containers_list = list() var/obj/item/weapon/reagent_containers/SC = null var/datum/reagents/fluid_source = null var/into_container = 0 - var/arms = get_num_arms() - var/free_hands = arms + var/free_hands = get_num_arms() //arms was only used to know if we had ANY at all var/total_cum = 0 var/finished = 0 var/mb_time = 30 - mb_cd_timer = (world.time + mb_cd_length) if(canbearoused && has_dna()) - if(restrained()) - src << "You can't do that while restrained!" + if(stat==2) + to_chat(src, "You can't do that while dead!") return - if(stat) - src << "You must be conscious to do that!" + if(forced_climax) //Something forced us to cum, this is not a masturbation thing and does not progress to the other checks + for(var/obj/item/organ/genital/G in internal_organs) + if(G.can_masturbate_with) //All capable genitals will orgasm with this + var/unable_to_come = FALSE + switch(G.type) + if(/obj/item/organ/genital/penis) + var/obj/item/organ/genital/penis/P = G + if(!P.linked_balls) + unable_to_come = TRUE + else + fluid_source = P.linked_balls.reagents + + + if(/obj/item/organ/genital/vagina) + var/obj/item/organ/genital/vagina/V = G + if(!V.linked_womb) + unable_to_come = TRUE + else + fluid_source = V.linked_womb.reagents + else //Weird, undefined genitalia behaviour + unable_to_come = TRUE + + if(unable_to_come) + src.visible_message("[src] shudders, their [G.name] unable to cum.", \ + "Your [G.name] cannot cum, giving no relief.", \ + "Your [G.name] cannot cum, giving no relief.") + else + if(fluid_source) + total_cum = fluid_source.total_volume + src.visible_message("[src] looks like they're about to cum.", \ + "You feel yourself about to orgasm.", \ + "You feel yourself about to orgasm.") + if(do_after(src, mb_time, target = src)) + if(total_cum > 5) + fluid_source.reaction(src.loc, TOUCH, 1, 0) + fluid_source.clear_reagents() + fluid_source = null //cleanup so this can be used for the next genitalia + + src.visible_message("[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!", \ + "You're forced to cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""] with your [G].", \ + "Your [G] have been forced to climax.") + finished = 1 + if(finished) + setArousalLoss(min_arousal) + return //Do not proceed to masturbating if all genitals have been forced to orgasm. + if(stat==1) //Sleeping people can be forced chemically or with electrical stimulants, for example. + to_chat(src, "You must be conscious to do that!") + return + if(restrained()) + to_chat(src, "You can't do that while restrained!") return if(getArousalLoss() < 33)//flat number instead of percentage - src << "You aren't aroused enough for that!" + to_chat(src, "You aren't aroused enough for that!") return if(!is_groin_exposed()) - src << "You need to undress, first!" + to_chat(src, "You need to undress, first!") return - if(!arms) - src << "You need at least one arm." + if(!free_hands) + to_chat(src, "You need at least one free arm.") return for(var/helditem in held_items)//how many hands are free if(isobj(helditem)) free_hands-- if(free_hands <= 0) - src << "You need at least one free hand." + to_chat(src, "You need at least one free hand.") return for(var/obj/item/organ/genital/G in internal_organs) if(G.can_masturbate_with)//filter out what you can't masturbate with @@ -240,12 +288,12 @@ if(/obj/item/organ/genital/penis) var/obj/item/organ/genital/penis/P = SG if(!P.linked_balls) - src << "Grow a pair!" + to_chat(src, "You need a pair of testicles to do this.") return fluid_source = P.linked_balls.reagents total_cum = fluid_source.total_volume if(into_container)//into a glass or beaker or whatever - src.visible_message("[src] starts [pick("jerking off","stroking")] their [SG] over [SC].", \ + src.visible_message("[src] starts [pick("jerking off","stroking")] their [SG.name] over [SC].", \ "You start jerking off over [SC.name].", \ "You start masturbating.") if(do_after(src, mb_time, target = src) && in_range(src, SC)) @@ -254,16 +302,71 @@ "You cum into [SC].", \ "You have relieved yourself.") finished = 1 - + else //Not in a container + if(src.pulling) + if(iscarbon(src.pulling)) + var/mob/living/carbon/C = src.pulling + if(!C.is_groin_exposed()) + to_chat(src, "You must undress someone to climax inside them.") + return + if(isliving(src.pulling)) //Gotta be alive to fuck it, don't wanna have to code fucking objects that ain't containers... + var/mob/living/partner = src.pulling + src.visible_message("[src] is about to climax inside [partner]!", \ + "You're about to climax inside [partner]!", \ + "You're preparing to climax inside someone!") + switch(grab_state) + if(GRAB_PASSIVE) + if(do_after(src, mb_time, target = src) && in_range(src, partner)) + var/spillage = 0.5 //Leaks a bit on passive grab + var/did_spill = FALSE + fluid_source.trans_to(partner, total_cum*(1-spillage)) + total_cum = total_cum*spillage + if(total_cum > 5) + fluid_source.reaction(partner.loc, TOUCH, 1, 0) + did_spill = TRUE + fluid_source.clear_reagents() + + src.visible_message("[src] ejaculates inside [partner][did_spill ? ", overflowing and spilling":""]!", \ + "You ejaculate inside [partner][did_spill ? ", spilling out of them":""].", \ + "You have climaxed inside someone[did_spill ? ", spilling out of them":""].") + finished = 1 + else //Aggressive or higher + if(do_after(src, mb_time, target = src) && in_range(src, partner)) + var/spillage = 0.0 //Leakproofing seals + fluid_source.trans_to(partner, total_cum*(1-spillage)) + total_cum = total_cum*spillage + if(total_cum > 5) + fluid_source.reaction(partner.loc, TOUCH, 1, 0) + fluid_source.clear_reagents() + + src.visible_message("[src] ejaculates inside [partner], spilling nothing!", \ + "You ejaculate inside [partner], spilling nothing.", \ + "You have climaxed inside someone, spilling nothing.") + finished = 1 + //Don't care, not coding you fucking a unanchored girder + else //No pulling, or pulling non-living things + src.visible_message("[src] starts [pick("jerking off","stroking")] their [SG].", \ + "You start masturbating.", \ + "You start masturbating.") + if(do_after(src, mb_time, target = src)) + if(total_cum > 5) + fluid_source.reaction(src.loc, TOUCH, 1, 0) + fluid_source.clear_reagents() + + src.visible_message("[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!", \ + "You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].", \ + "You have relieved yourself.") + finished = 1 + if(/obj/item/organ/genital/vagina) var/obj/item/organ/genital/vagina/V = SG if(!V.linked_womb) - src << "No womb!" + to_chat(src, "You need a womb to do this.") return fluid_source = V.linked_womb.reagents total_cum = fluid_source.total_volume if(into_container)//into a glass or beaker or whatever - src.visible_message("[src] starts fingering their vagina over [SC].", \ + src.visible_message("[src] starts fingering their [SG.name] over [SC].", \ "You start fingering over [SC.name].", \ "You start masturbating.") if(do_after(src, mb_time, target = src) && in_range(src, SC)) @@ -272,7 +375,7 @@ "You cum into [SC].", \ "You have relieved yourself.") finished = 1 - + else//not into a container src.visible_message("[src] starts fingering their vagina.", \ "You start fingering your vagina.", \ @@ -297,10 +400,5 @@ setArousalLoss(min_arousal) else - src << "You have no genitals!" + to_chat(src, "You have no genitals!") return - -/mob/living/carbon/proc/force_orgasm(intensity) - if(canbearoused && has_dna() && (has_penis() || has_vagina())) - return 1 - return 0 diff --git a/code/citadel/cit_reagents.dm b/code/citadel/cit_reagents.dm index 2f421542ae..428729d30f 100644 --- a/code/citadel/cit_reagents.dm +++ b/code/citadel/cit_reagents.dm @@ -105,7 +105,7 @@ M.emote(pick("moan","blush")) if(prob(5)) var/aroused_message = pick("You feel frisky.", "You're having trouble suppressing your urges.", "You feel in the mood.") - M << "[aroused_message]" + to_chat(M, "[aroused_message]") ..() /datum/reagent/aphrodisiacplus @@ -128,15 +128,13 @@ else M.emote(pick("moan","blush")) if(prob(5)) + var/aroused_message if(M.getArousalLoss() > 90) - var/aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!") - M << "[aroused_message]" + aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!") else - var/aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.") - M << "[aroused_message]" -// if(iscarbon(M) && has_dna(M)) -// M.force_ejaculation() - ..() + aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.") + to_chat(M, "[aroused_message]") + /datum/reagent/aphrodisiacplus/addiction_act_stage2(mob/living/M) if(prob(30)) M.adjustBrainLoss(2) @@ -152,11 +150,17 @@ ..() /datum/reagent/aphrodisiacplus/overdose_process(mob/living/M) - if(prob(66)) + if(prob(33)) + if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna()) + var/mob/living/carbon/human/H = M + to_chat(H, "Your libido is going haywire!") + H.mob_climax(forced_climax=TRUE) if(M.min_arousal < 50) M.min_arousal += 1 - if(M.max_arousal < 200) - M.max_arousal += 1 + to_chat(M, "You're having a hard time thinkin about things other than sex!") + if(M.min_arousal < M.max_arousal) + M.min_arousal += 1 + to_chat(M, "You feel your libido permanently increasing.") M.adjustArousalLoss(2) ..() @@ -193,8 +197,10 @@ if(prob(33)) if(M.min_arousal > 0) M.min_arousal -= 1 - if(M.max_arousal > 75) + to_chat(M, "You feel your libido returning to more normal levels.") + if(M.min_arousal > 50) M.min_arousal -= 1 + to_chat(M, "You feel like your overactive libido is calming down.") M.adjustArousalLoss(-2) ..() diff --git a/code/citadel/organs/breasts.dm b/code/citadel/organs/breasts.dm index 5e3f312199..ce45b88cfb 100644 --- a/code/citadel/organs/breasts.dm +++ b/code/citadel/organs/breasts.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/breasts - name = "breasts" + name = "Breasts" desc = "Female milk producing organs." icon_state = "breasts" icon = 'code/citadel/icons/breasts.dmi' diff --git a/code/citadel/organs/eggsack.dm b/code/citadel/organs/eggsack.dm index 1e53240e1a..718a353b87 100644 --- a/code/citadel/organs/eggsack.dm +++ b/code/citadel/organs/eggsack.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/eggsack - name = "egg sack" + name = "Egg sack" desc = "An egg producing reproductive organ." icon_state = "egg_sack" icon = 'code/citadel/icons/ovipositor.dmi' diff --git a/code/citadel/organs/ovipositor.dm b/code/citadel/organs/ovipositor.dm index 9e46cff91c..3d684ee387 100644 --- a/code/citadel/organs/ovipositor.dm +++ b/code/citadel/organs/ovipositor.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/ovipositor - name = "ovipositor" + name = "Ovipositor" desc = "An egg laying reproductive organ." icon_state = "ovi_knotted_2" icon = 'code/citadel/icons/ovipositor.dmi' diff --git a/code/citadel/organs/penis.dm b/code/citadel/organs/penis.dm index 3d99d6c939..d687b3e76a 100644 --- a/code/citadel/organs/penis.dm +++ b/code/citadel/organs/penis.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/penis - name = "penis" + name = "Penis" desc = "A male reproductive organ." icon_state = "penis" icon = 'code/citadel/icons/penis.dmi' diff --git a/code/citadel/organs/testicles.dm b/code/citadel/organs/testicles.dm index 71e591f930..a759aeab52 100644 --- a/code/citadel/organs/testicles.dm +++ b/code/citadel/organs/testicles.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/testicles - name = "testicles" + name = "Testicles" desc = "A male reproductive organ." icon_state = "testicles" icon = 'code/citadel/icons/penis.dmi' diff --git a/code/citadel/organs/vagina.dm b/code/citadel/organs/vagina.dm index c1924a3067..fa1f00bda2 100644 --- a/code/citadel/organs/vagina.dm +++ b/code/citadel/organs/vagina.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/vagina - name = "vagina" + name = "Vagina" desc = "A female reproductive organ." icon = 'code/citadel/icons/vagina.dmi' icon_state = "vagina" diff --git a/code/citadel/organs/womb.dm b/code/citadel/organs/womb.dm index e1ea02a230..3ebe5c2f98 100644 --- a/code/citadel/organs/womb.dm +++ b/code/citadel/organs/womb.dm @@ -1,5 +1,5 @@ /obj/item/organ/genital/womb - name = "womb" + name = "Womb" desc = "A female reproductive organ." icon = 'code/citadel/icons/vagina.dmi' icon_state = "womb" @@ -10,7 +10,7 @@ fluid_id = "femcum" producing = TRUE var/obj/item/organ/genital/vagina/linked_vag - + /obj/item/organ/genital/womb/Initialize() . = ..() reagents.add_reagent(fluid_id, fluid_max_volume) From c0cc42821671ac9caebb115863c2bd64b89fcbb5 Mon Sep 17 00:00:00 2001 From: ktccd Date: Tue, 8 Aug 2017 19:45:06 +0200 Subject: [PATCH 045/113] Makes mindtransfers respect arousal Clients arousal preferences are now taken into account when transferring minds. --- code/datums/mind.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 3515440499..7017149d53 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -120,6 +120,10 @@ transfer_martial_arts(new_character) if(active || force_key_move) new_character.key = key //now transfer the key to link the client to our new body + if(isliving(new_character)) //New humans and such are by default enabled arousal. Let's always use the new mind's prefs. + var/mob/living/L = new_character + L.canbearoused = L.client.prefs.arousable //Technically this should make taking over a character mean the body gain the new minds setting... + L.update_arousal_hud() //Removes the old icon /datum/mind/proc/store_memory(new_text) memory += "[new_text]
    " From 5eadc197cf36529d616696de7680e3cc6cf7c82f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 14:59:10 -0500 Subject: [PATCH 046/113] Fix RCL loading --- code/game/objects/items/weapons/RCL.dm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/weapons/RCL.dm b/code/game/objects/items/weapons/RCL.dm index 623a1f9b78..495af046af 100644 --- a/code/game/objects/items/weapons/RCL.dm +++ b/code/game/objects/items/weapons/RCL.dm @@ -23,17 +23,20 @@ /obj/item/weapon/twohanded/rcl/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = W - if(user.transferItemToLoc(W, src)) - loaded = W - loaded.max_amount = max_amount //We store a lot. - else - to_chat(user, "[src] is stuck to your hand!") - return + + if(!loaded) + if(!user.transferItemToLoc(W, src)) + to_chat(user, "[src] is stuck to your hand!") + return + else + loaded = W //W.loc is src at this point. + loaded.max_amount = max_amount //We store a lot. + return if(loaded.amount < max_amount) - var/amount = min(loaded.amount + C.amount, max_amount) - C.use(amount - loaded.amount) - loaded.amount = amount + var/transfer_amount = min(max_amount - loaded.amount, C.amount) + C.use(transfer_amount) + loaded.amount += transfer_amount else return update_icon() From 0a7a8fcf90746ceba3ba3ec61533e84ee03a3c6b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 15:04:21 -0500 Subject: [PATCH 047/113] Fixes repairing jumpsuits. --- code/modules/clothing/clothing.dm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 013fbd8bc4..bd6ffe5f67 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -538,13 +538,15 @@ BLIND // can't see anything if(accessory_overlay) . += accessory_overlay -/obj/item/clothing/under/attackby(obj/item/W, mob/user, params) - if((has_sensor == BROKEN_SENSORS) && istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = W +/obj/item/clothing/under/attackby(obj/item/I, mob/user, params) + if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = I C.use(1) has_sensor = HAS_SENSORS to_chat(user,"You repair the suit sensors on [src] with [C].") return 1 + if(!attach_accessory(I, user)) + return ..() /obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE) ..() @@ -591,10 +593,6 @@ BLIND // can't see anything ..() -/obj/item/clothing/under/attackby(obj/item/I, mob/user, params) - if(!attach_accessory(I, user)) - ..() - /obj/item/clothing/under/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1) . = FALSE if(istype(I, /obj/item/clothing/accessory)) From 764ebb2e5e4d50f9a266cd1a792d656c661d3a65 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 22:24:01 -0500 Subject: [PATCH 048/113] Fixes the Hierophant not spawning its crusher trophy --- code/modules/mining/equipment/kinetic_crusher.dm | 2 +- .../mob/living/simple_animal/hostile/megafauna/hierophant.dm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index a1251381b4..06845ba0cb 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -284,7 +284,7 @@ L.adjustBruteLoss(bonus_value) /obj/item/crusher_trophy/tail_spike/proc/pushback(mob/living/target, mob/living/user) - if(!target.anchored || ismegafauna(target)) //megafauna will always be pushed + if(!QDELETED(target) && !QDELETED(user) && (!target.anchored || ismegafauna(target))) //megafauna will always be pushed step(target, get_dir(user, target)) //bubblegum diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 11c59a2d28..0ca966df35 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -57,6 +57,7 @@ Difficulty: Hard ranged_cooldown_time = 40 aggro_vision_range = 21 //so it can see to one side of the arena to the other loot = list(/obj/item/weapon/hierophant_club) + crusher_loot = list(/obj/item/weapon/hierophant_club) wander = FALSE var/burst_range = 3 //range on burst aoe var/beam_range = 5 //range on cross blast beams From 2004d399c9e6d92cfb4ddaa966666255ade622ea Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 22:26:10 -0500 Subject: [PATCH 049/113] Makes dummy humans queue instead of harddel --- code/modules/mob/living/carbon/human/human.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 74bc902be5..4424e80ce8 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -9,11 +9,11 @@ real_name = "Test Dummy" status_flags = GODMODE|CANPUSH -/mob/living/carbon/human/dummy/New(loc) +INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) + +/mob/living/carbon/human/dummy/Destroy() ..() - if(!initialized) - args[1] = FALSE - Initialize(arglist(args)) + return QDEL_HINT_QUEUE /mob/living/carbon/human/dummy/Life() return From 04fcf872a53be3c4f47a639ac1c509a78f30659a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:19:26 -0500 Subject: [PATCH 050/113] Automatic changelog generation for PR #2298 [ci skip] --- html/changelogs/AutoChangeLog-pr-2298.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2298.yml diff --git a/html/changelogs/AutoChangeLog-pr-2298.yml b/html/changelogs/AutoChangeLog-pr-2298.yml new file mode 100644 index 0000000000..3d12cf9dee --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2298.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - bugfix: "Preys being digested now get their digestion message" From 33415e935b4ba5ada7de0d470917ef2cca6c4934 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:19:38 -0500 Subject: [PATCH 051/113] Automatic changelog generation for PR #2299 [ci skip] --- html/changelogs/AutoChangeLog-pr-2299.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2299.yml diff --git a/html/changelogs/AutoChangeLog-pr-2299.yml b/html/changelogs/AutoChangeLog-pr-2299.yml new file mode 100644 index 0000000000..7f5e8730dc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2299.yml @@ -0,0 +1,4 @@ +author: "JStheguy" +delete-after: True +changes: + - imageadd: "Laptops now have actual sprites for using the supermatter monitoring instead of defaulting to a generic one." From fbfd9c438399289910545ebea91936d33749d1e9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:19:57 -0500 Subject: [PATCH 052/113] Automatic changelog generation for PR #2301 [ci skip] --- html/changelogs/AutoChangeLog-pr-2301.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2301.yml diff --git a/html/changelogs/AutoChangeLog-pr-2301.yml b/html/changelogs/AutoChangeLog-pr-2301.yml new file mode 100644 index 0000000000..2924b5a5ad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2301.yml @@ -0,0 +1,4 @@ +author: "LetterJay" +delete-after: True +changes: + - rscadd: "Adds bear ears and bear tails (Sprites courtesy of LizziePup)" From a353b16453f52b9fd245d20845f337b43faeb6b8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:20:53 -0500 Subject: [PATCH 053/113] Automatic changelog generation for PR #2305 [ci skip] --- html/changelogs/AutoChangeLog-pr-2305.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2305.yml diff --git a/html/changelogs/AutoChangeLog-pr-2305.yml b/html/changelogs/AutoChangeLog-pr-2305.yml new file mode 100644 index 0000000000..fbd7208358 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2305.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - imageadd: "Belligerent now has a visible indicator over the caster." From defbaf18dab5e91e1878f9a4f147b93c073a4852 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:21:49 -0500 Subject: [PATCH 054/113] Automatic changelog generation for PR #2308 [ci skip] --- html/changelogs/AutoChangeLog-pr-2308.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2308.yml diff --git a/html/changelogs/AutoChangeLog-pr-2308.yml b/html/changelogs/AutoChangeLog-pr-2308.yml new file mode 100644 index 0000000000..1d367c4d84 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2308.yml @@ -0,0 +1,7 @@ +author: "ktccd" +delete-after: True +changes: + - rscadd: "Penises can now climax inside someone instead of only be used for masturbating. Use passive grab to be able to spill on the floor, aggressive or higher grab to not spill a drop." + - rscadd: "Hexacrocin and hexacamphor now adjusts your arousal up respectively down when overdosed. Hexacrocin overdoses can force orgasms at high arousal." + - bugfix: "Penises can now be used for masturbation without containers again." + - bugfix: "Citadel chems now sends you feedback messages properly when in effect." From fdaea528d0bcf1fee70ef18b4abf551e3914b188 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:22:04 -0500 Subject: [PATCH 055/113] Automatic changelog generation for PR #2309 [ci skip] --- html/changelogs/AutoChangeLog-pr-2309.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2309.yml diff --git a/html/changelogs/AutoChangeLog-pr-2309.yml b/html/changelogs/AutoChangeLog-pr-2309.yml new file mode 100644 index 0000000000..89ceed6223 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2309.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - bugfix: "Cloner and other mind-transfer things now respect client arousal settings." From 943599c5f1cb2bf83913e1afe566a135b5ee138a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 03:05:47 -0500 Subject: [PATCH 056/113] Clock powerdrain now works on any device with a powercell --- .../clock_cult/clock_helpers/clock_powerdrain.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm b/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm index ef1099d3e0..9380e46487 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm @@ -1,5 +1,14 @@ //horrifying power drain proc made for clockcult's power drain in lieu of six istypes or six for(x in view) loops /atom/movable/proc/power_drain(clockcult_user) + var/obj/item/weapon/stock_parts/cell/cell = get_cell() + if(cell) + return cell.power_drain(clockcult_user) + return 0 + +/obj/item/weapon/melee/baton/power_drain(clockcult_user) //balance memes + return 0 + +/obj/item/weapon/gun/power_drain(clockcult_user) //balance memes return 0 /obj/machinery/power/apc/power_drain(clockcult_user) From 0b516b57590a5b8e32ca4a7b17bfd1351c7a957d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 03:24:08 -0500 Subject: [PATCH 057/113] Makes [WIP] and [DNM] case insensitive for autotagging --- tools/github_webhook_processor.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/github_webhook_processor.php b/tools/github_webhook_processor.php index d73970f04b..4ccdafa3f3 100644 --- a/tools/github_webhook_processor.php +++ b/tools/github_webhook_processor.php @@ -162,10 +162,10 @@ function tag_pr($payload, $opened) { $tags[] = $tag; //only maintners should be able to remove these - if(strpos($title, '[DNM]') !== FALSE) + if(strpos($lowertitle, '[dnm]') !== FALSE) $tags[] = 'Do Not Merge'; - if(strpos($title, '[WIP]') !== FALSE) + if(strpos($lowertitle, '[wip]') !== FALSE) $tags[] = 'Work In Progress'; $url = $payload['pull_request']['base']['repo']['url'] . '/issues/' . $payload['pull_request']['number'] . '/labels'; From 83c546f1430f59c585ac9d818a047d52e0f29a29 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 03:26:14 -0500 Subject: [PATCH 058/113] Fixes swarmer shells having no ghost notifications --- code/game/gamemodes/miniantags/bot_swarm/swarmer.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 502b02c7f7..68ed9abd35 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -29,6 +29,12 @@ 3. Biological resources will be harvested at a later date; do not harm them. "} +/obj/effect/mob_spawn/swarmer/Initialize() + . = ..() + var/area/A = get_area(src) + if(A) + notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE) + /obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user) to_chat(user, "Picking up the swarmer may cause it to activate. You should be careful about this.") From 805aa06807fcf20efd2896ef9e97615a50eb3978 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 9 Aug 2017 11:23:09 -0500 Subject: [PATCH 059/113] adds bear tails/ears to humans as well --- .../new_player/sprite_accessories_Citadel.dm | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm index 8e724f1aa5..55572d8187 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -31,6 +31,16 @@ color_src = 0 icon = 'icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/mam_tails/human/bear + name = "Bear" + icon_state = "bear" + icon = 'icons/mob/mam_bodyparts.dmi' + +/datum/sprite_accessory/mam_ears/human/bear + name = "Bear" + icon_state = "bear" + icon = 'icons/mob/mam_bodyparts.dmi' + /datum/sprite_accessory/tails/human/catbig name = "Cat, Big" icon_state = "catbig" @@ -234,16 +244,9 @@ extra = 1 extra_color_src = MUTCOLORS2 -/datum/sprite_accessory/mam_ears/catbig - name = "Cat, Big" - icon_state = "cat" - hasinner = 1 - icon = 'icons/mob/mutant_bodyparts.dmi' - /datum/sprite_accessory/mam_tails/bear name = "Bear" icon_state = "bear" - extra_color_src = MUTCOLORS2 icon = 'icons/mob/mam_bodyparts.dmi' /datum/sprite_accessory/mam_ears/bear @@ -251,6 +254,12 @@ icon_state = "bear" icon = 'icons/mob/mam_bodyparts.dmi' +/datum/sprite_accessory/mam_ears/catbig + name = "Cat, Big" + icon_state = "cat" + hasinner = 1 + icon = 'icons/mob/mutant_bodyparts.dmi' + /datum/sprite_accessory/mam_tails/catbig name = "Cat, Big" icon_state = "catbig" From 014487c808cefbac2164bcb450ac741333e20c65 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 11:25:04 -0500 Subject: [PATCH 060/113] Automatic changelog generation for PR #2319 [ci skip] --- html/changelogs/AutoChangeLog-pr-2319.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2319.yml diff --git a/html/changelogs/AutoChangeLog-pr-2319.yml b/html/changelogs/AutoChangeLog-pr-2319.yml new file mode 100644 index 0000000000..4ca8998875 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2319.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - bugfix: "Swarmer shells now have ghost notifications again." From cad81a26e25599ac296388bb73c4c6038e51b188 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 10 Aug 2017 06:13:49 -0500 Subject: [PATCH 061/113] Automatic changelog generation for PR #2320 [ci skip] --- html/changelogs/AutoChangeLog-pr-2320.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2320.yml diff --git a/html/changelogs/AutoChangeLog-pr-2320.yml b/html/changelogs/AutoChangeLog-pr-2320.yml new file mode 100644 index 0000000000..695f23e7de --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2320.yml @@ -0,0 +1,4 @@ +author: "LetterJay" +delete-after: True +changes: + - tweak: "Adds the option for bear ears and tails for humans as well." From f6da0f89c3f6d2288048f40f7c8f915d966a3098 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 10 Aug 2017 08:09:25 -0500 Subject: [PATCH 062/113] decapitalizes flyswatter in weaponry.dm --- code/game/objects/items/weapons/weaponry.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index ee6b2ea2c2..b49dc1c510 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -540,7 +540,7 @@ return 1 /obj/item/weapon/melee/flyswatter - name = "Flyswatter" + name = "flyswatter" desc = "Useful for killing insects of all sizes." icon = 'icons/obj/weapons.dmi' icon_state = "flyswatter" From bd8289b29f588948524b3745136620d099408bf2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 10 Aug 2017 10:49:22 -0500 Subject: [PATCH 063/113] Massively improves downloading/viewing logs. --- code/modules/admin/verbs/getlogs.dm | 32 ++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm index fe3fe61b3f..9f08eb5e0e 100644 --- a/code/modules/admin/verbs/getlogs.dm +++ b/code/modules/admin/verbs/getlogs.dm @@ -13,7 +13,17 @@ return message_admins("[key_name_admin(src)] accessed file: [path]") - src << ftp(file(path)) + //this is copypasta because making it a proc would mean locking out adminproccalls, + // and that system is buggy enough with false positives that I don't want to risk locking admins out of legit calls. + switch(alert("View (in game), Open (in your system's text editor), or Download file [path]?", "Log File Opening", "View", "Open", "Download")) + if ("View") + src << browse("

    [html_encode(file2text(file(path)))]
    ", list2params(list("window" = "viewfile.[path]"))) + if ("Open") + src << run(file(path)) + if ("Download") + src << ftp(file(path)) + else + return to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.") return @@ -27,7 +37,15 @@ set desc = "Shows server log for this round." if(fexists("[GLOB.world_game_log]")) - src << ftp(GLOB.world_game_log) + switch(alert("View (in game), Open (in your system's text editor), or Download file [GLOB.world_game_log]?", "Log File Opening", "View", "Open", "Download")) + if ("View") + src << browse("
    [html_encode(file2text(GLOB.world_game_log))]
    ", list2params(list("window" = "viewfile.[GLOB.world_game_log]"))) + if ("Open") + src << run(GLOB.world_game_log) + if ("Download") + src << ftp(GLOB.world_game_log) + else + return else to_chat(src, "Server log not found, try using .getserverlog.") return @@ -41,7 +59,15 @@ set desc = "Shows server attack log for this round." if(fexists("[GLOB.world_attack_log]")) - src << ftp(GLOB.world_attack_log) + switch(alert("View (in game), Open (in your system's text editor), or Download file [GLOB.world_attack_log]?", "Log File Opening", "View", "Open", "Download")) + if ("View") + src << browse("
    [html_encode(file2text(GLOB.world_attack_log))]
    ", list2params(list("window" = "viewfile.[GLOB.world_attack_log]"))) + if ("Open") + src << run(GLOB.world_attack_log) + if ("Download") + src << ftp(GLOB.world_attack_log) + else + return else to_chat(src, "Server attack log not found, try using .getserverlog.") return From 4686340d3caaed764abcc748fd2db8da7037d739 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 02:47:05 -0500 Subject: [PATCH 064/113] Fixes help text for embedded objects --- code/_onclick/hud/alert.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index b944f32754..e1f1410837 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -205,7 +205,7 @@ or something covering your eyes." /obj/screen/alert/embeddedobject name = "Embedded Object" desc = "Something got lodged into your flesh and is causing major bleeding. It might fall out with time, but surgery is the safest way. \ -If you're feeling frisky, click yourself in help intent to pull the object out." +If you're feeling frisky, examine yourself and click the underlined item to pull the object out." icon_state = "embeddedobject" /obj/screen/alert/embeddedobject/Click() From fa19568a06d6260f91bdc49d7d50d1f9e440b2d9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 02:49:11 -0500 Subject: [PATCH 065/113] Ports weapons to Initialize() --- code/game/objects/weapons.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm index 0598d88a59..69c6c89870 100644 --- a/code/game/objects/weapons.dm +++ b/code/game/objects/weapons.dm @@ -2,8 +2,8 @@ name = "weapon" icon = 'icons/obj/weapons.dmi' -/obj/item/weapon/New() - ..() +/obj/item/weapon/Initialize() + . = ..() if(!hitsound) if(damtype == "fire") hitsound = 'sound/items/welder.ogg' From dab46b002c030ea273c714ac69bd3095ffb4c967 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 02:50:20 -0500 Subject: [PATCH 066/113] Ports weaponry to Initialize --- code/game/objects/items/weapons/weaponry.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index ee6b2ea2c2..10449b394e 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -77,8 +77,8 @@ var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE var/obj/item/weapon/disk/nuclear/nuke_disk //OUR STORED NUKE DISK -/obj/item/weapon/claymore/highlander/New() - ..() +/obj/item/weapon/claymore/highlander/Initialize() + . = ..() START_PROCESSING(SSobj, src) /obj/item/weapon/claymore/highlander/Destroy() @@ -555,8 +555,8 @@ //Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc. var/list/strong_against -/obj/item/weapon/melee/flyswatter/New() - ..() +/obj/item/weapon/melee/flyswatter/Initialize() + . = ..() strong_against = typecacheof(list( /mob/living/simple_animal/hostile/poison/bees/, /mob/living/simple_animal/butterfly, From 6c6d8e5193d7abacfaa035044e1e66f4740b3733 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 02:52:25 -0500 Subject: [PATCH 067/113] Fixes cable cuff inhand --- code/game/objects/items/weapons/handcuffs.dm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 802c2d499a..40fa7d2520 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -90,8 +90,8 @@ desc = "Looks like some cables tied together. Could be used to tie something up." icon_state = "cuff_red" item_state = "coil_red" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items_righthand.dmi' + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' materials = list(MAT_METAL=150, MAT_GLASS=75) origin_tech = "engineering=2" breakouttime = 300 //Deciseconds = 30s @@ -145,9 +145,7 @@ /obj/item/weapon/restraints/handcuffs/cable/white icon_state = "cuff_white" - item_state = "cuff_white" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' + item_state = "coil_white" /obj/item/weapon/restraints/handcuffs/alien icon_state = "handcuffAlien" @@ -212,7 +210,6 @@ name = "zipties" desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use." icon_state = "cuff_white" - item_state = "cuff_white" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' materials = list() @@ -222,6 +219,7 @@ /obj/item/weapon/restraints/handcuffs/cable/zipties/used desc = "A pair of broken zipties." icon_state = "cuff_white_used" + item_state = "cuff_white" /obj/item/weapon/restraints/handcuffs/cable/zipties/used/attack() return From 62a7d4301f3bffdedffb2ca1eea0ef54ed8616e7 Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 20:13:01 +0200 Subject: [PATCH 068/113] Refactored flavortext. Flavortext is now stored in DNA features and can thus be stolen by changelings and restored by cloners/pods/etc. Also added genitals_use_skintone to the random features proc, 'cause it was missing (my bad, I was even newer at messing with DNA back then :S). --- code/__HELPERS/mobs.dm | 6 ++++-- code/datums/dna.dm | 2 ++ code/modules/client/preferences.dm | 20 ++++++++++---------- code/modules/client/preferences_savefile.dm | 15 ++++++++++----- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 7c6746f477..924f8daf08 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -116,6 +116,7 @@ "xenohead" = "None", "xenotail" = "None", "exhibitionist" = FALSE, + "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = pick(GLOB.cock_shapes_list), "cock_length" = 6, @@ -158,8 +159,9 @@ "womb_cum_rate" = CUM_RATE, "womb_cum_mult" = CUM_RATE_MULT, "womb_efficiency" = CUM_EFFICIENCY, - "womb_fluid" = "femcum")) - + "womb_fluid" = "femcum", + "flavor_text" = "")) + /proc/random_hair_style(gender) switch(gender) if(MALE) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 550ea590bf..4bacf2d9e8 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -32,6 +32,7 @@ if(ishuman(destination)) var/mob/living/carbon/human/H = destination H.give_genitals(TRUE)//This gives the body the genitals of this DNA. Used for any transformations based on DNA + destination.flavor_text = destination.dna.features["flavor_text"] //Update the flavor_text to use new dna text /datum/dna/proc/copy_dna(datum/dna/new_dna) new_dna.unique_enzymes = unique_enzymes @@ -231,6 +232,7 @@ if(newfeatures) dna.features = newfeatures + flavor_text = dna.features["flavor_text"] //Update the flavor_text to use new dna text if(mrace) set_species(mrace, icon_update=0) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1e07ee4ce0..4c23db3f86 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -130,7 +130,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) "womb_cum_rate" = CUM_RATE, "womb_cum_mult" = CUM_RATE_MULT, "womb_efficiency" = CUM_EFFICIENCY, - "womb_fluid" = "femcum" + "womb_fluid" = "femcum", + "flavor_text" = "" )//MAKE SURE TO UPDATE THE LIST IN MOBS.DM IF YOU'RE GOING TO ADD TO THIS LIST, OTHERWISE THINGS MIGHT GET FUCKEY var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") @@ -175,7 +176,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) //citadel code var/arousable = TRUE //Allows players to disable arousal from the character creation menu - var/flavor_text = "" /datum/preferences/New(client/C) parent = C @@ -394,13 +394,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
    " dat += "

    " dat += "Set Flavor Text
    " - if(lentext(flavor_text) <= 40) - if(!lentext(flavor_text)) + if(lentext(features["flavor_text"]) <= 40) + if(!lentext(features["flavor_text"])) dat += "\[...\]" else - dat += "[flavor_text]" + dat += "[features["flavor_text"]]" else - dat += "[TextPreview(flavor_text)]...
    " + dat += "[TextPreview(features["flavor_text"])]...
    " if(config.mutant_races)//really don't need this check, but fuck un-tabbing all those lines dat += "

    Body

    " dat += "Gender: [gender == MALE ? "Male" : "Female"]
    " @@ -916,11 +916,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) if("flavor_text") - var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message + var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"])) as message if(msg != null) msg = copytext(msg, 1, MAX_MESSAGE_LEN) msg = html_encode(msg) - flavor_text = msg + features["flavor_text"] = msg if("metadata") var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null @@ -1628,7 +1628,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.backbag = backbag - character.dna.features = features.Copy() + character.dna.features = features.Copy() //Flavor text is now a DNA feature character.dna.real_name = character.real_name var/datum/species/chosen_species if(pref_species != /datum/species/human && config.mutant_races) @@ -1639,7 +1639,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) //citadel code character.give_genitals() - character.flavor_text = flavor_text + character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially character.canbearoused = arousable if(icon_updates) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index c52767f1d9..a4b57422c7 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -342,9 +342,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["job_engsec_med"] >> job_engsec_med S["job_engsec_low"] >> job_engsec_low - //Citadel code - S["flavor_text"] >> flavor_text S["feature_exhibitionist"] >> features["exhibitionist"] S["feature_mcolor2"] >> features["mcolor2"] S["feature_mcolor3"] >> features["mcolor3"] @@ -382,6 +380,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_vag_color"] >> features["vag_color"] //womb features S["feature_has_womb"] >> features["has_womb"] + //flavor text + //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: + if((S["feature_flavor_text"] == "") && (S["flavor_text"] != "")) //If we got no new flavor_text data, but we have old + S["flavor_text"] >> features["flavor_text"] + else //Otherwise use new flavor_text data always + S["feature_flavor_text"] >> features["flavor_text"] + //try to fix any outdated data if necessary if(needs_update >= 0) @@ -441,7 +446,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low)) //Citadel - flavor_text = sanitize_text(flavor_text, initial(flavor_text)) + features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"])) if(!features["mcolor2"] || features["mcolor"] == "#000") features["mcolor2"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") if(!features["mcolor3"] || features["mcolor"] == "#000") @@ -510,7 +515,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["job_engsec_low"] << job_engsec_low //Citadel - S["flavor_text"] << flavor_text S["feature_exhibitionist"] << features["exhibitionist"] S["feature_mcolor2"] << features["mcolor2"] S["feature_mcolor3"] << features["mcolor3"] @@ -548,7 +552,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_vag_color"] << features["vag_color"] //womb features S["feature_has_womb"] << features["has_womb"] - + //flavor text + S["feature_flavor_text"] << features["flavor_text"] return 1 #undef SAVEFILE_VERSION_MAX From 9ef1825ee01e28057dfc8a88c13f9b43e4416dcb Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 21:29:01 +0200 Subject: [PATCH 069/113] Adds Taur cocks (#2329) * Added flared taur penises FIRST STEP ONLY DO NOT PULL REQUEST THIS!!!! The files are still messy and the penis is just another shape to choose from right now for testing purposes! Flipped the order of GENITALS_BEHIND_LAYER and BODY_BEHIND_LAYER, as taurs need to be drawn on top of the genitalia, and I don't think anything else uses this that would need genitals drawn on top of them. * Adds More shapes Adds Tapered and Knotted shapes to the Taur cocks. * Fixes on-ground sprites The OLD bug barbed knotted cocks being invisible when not inside a body is fixed. This fix solves why taur cocks were invisible when cut off or gibbed the body. This also removes the lowershape() workaround that was being used. I'll get around a bigger refactor of other genitalia in another PR, as the scope of this was just to add taur cocks to begin with... --- code/__DEFINES/misc.dm | 4 +-- code/__HELPERS/global_lists.dm | 5 ++++ code/citadel/_cit_helpers.dm | 1 + code/citadel/icons/taur_penis_onmob.dmi | Bin 0 -> 704 bytes code/citadel/organs/genitals.dm | 2 ++ .../organs/genitals_sprite_accessories.dm | 27 ++++++++++++++++++ code/citadel/organs/penis.dm | 2 +- icons/mob/mam_taur.dmi | Bin 38211 -> 38242 bytes 8 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 code/citadel/icons/taur_penis_onmob.dmi diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e0ab84f832..6a932ead4a 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -46,8 +46,8 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s //Human Overlays Indexes///////// //citadel code #define MUTATIONS_LAYER 30 //mutations. Tk headglows, cold resistance glow, etc -#define BODY_BEHIND_LAYER 29 //certain mutantrace features (tail when looking south) that must appear behind the body parts -#define GENITALS_BEHIND_LAYER 28 +#define GENITALS_BEHIND_LAYER 29 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer +#define BODY_BEHIND_LAYER 28 //certain mutantrace features (tail when looking south) that must appear behind the body parts #define BODYPARTS_LAYER 27 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag #define BODY_ADJ_LAYER 26 //certain mutantrace features (snout, body markings) that must appear above the body parts #define GENITALS_ADJ_LAYER 25 diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 92d5dcbd80..1af231f893 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -48,6 +48,11 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list) //genitals init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list) + + for(var/K in GLOB.cock_shapes_list) + var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K] + GLOB.cock_shapes_icons[K] = value.icon_state + init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing. diff --git a/code/citadel/_cit_helpers.dm b/code/citadel/_cit_helpers.dm index db0626fa9c..e6dca1e369 100644 --- a/code/citadel/_cit_helpers.dm +++ b/code/citadel/_cit_helpers.dm @@ -53,6 +53,7 @@ GLOBAL_LIST_EMPTY(xeno_dorsal_list) //Genitals and Arousal Lists GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm +GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes. GLOBAL_LIST_EMPTY(breasts_size_list) GLOBAL_LIST_EMPTY(breasts_shapes_list) GLOBAL_LIST_EMPTY(vagina_shapes_list) diff --git a/code/citadel/icons/taur_penis_onmob.dmi b/code/citadel/icons/taur_penis_onmob.dmi new file mode 100644 index 0000000000000000000000000000000000000000..3debbd0047228c869a639a16566445d46fcbf113 GIT binary patch literal 704 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 T_dQyN4s%J@Q0LQmtKk0trQcyJ delta 22519 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 From 2102e0526a5e343a6ed19898733f337693d8c99d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 14:29:03 -0500 Subject: [PATCH 070/113] Automatic changelog generation for PR #2329 [ci skip] --- html/changelogs/AutoChangeLog-pr-2329.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2329.yml diff --git a/html/changelogs/AutoChangeLog-pr-2329.yml b/html/changelogs/AutoChangeLog-pr-2329.yml new file mode 100644 index 0000000000..2950b70fbb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2329.yml @@ -0,0 +1,6 @@ +author: "ktccd" +delete-after: True +changes: + - rscadd: "Adds flared, knotted or tapered dicks for Taur bodies." + - tweak: "Resized the cow-taur's over-extended belly to match the profile picture, no longer completely blocking the taur penises." + - bugfix: "Barbed, knotted penises and other such long-named cocks are now visible on the ground if dismembered." From 84076d7bb954f0b9d678676b8ef87a942fb7338d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 14:29:51 -0500 Subject: [PATCH 071/113] intialize() supermatter sword (#2332) --- code/game/objects/items/weapons/melee/misc.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 2ded74b536..5d32856bc9 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -209,8 +209,8 @@ origin_tech = "combat=7;materials=6" force_string = "INFINITE" -/obj/item/weapon/melee/supermatter_sword/New() - ..() +/obj/item/weapon/melee/supermatter_sword/Initialize() + . = ..() shard = new /obj/machinery/power/supermatter_shard(src) qdel(shard.countdown) shard.countdown = null From 12d4c7ade0017ce2728a42932245820407b882c5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 14:52:55 -0500 Subject: [PATCH 072/113] gorilla sprites --- icons/mob/animal.dmi | Bin 164136 -> 166678 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 3ed8c153d8cd046e583ac8837b83b4005a2309c7..42226c7d2bd70df6742d8ea912af4124c6c9b73a 100644 GIT binary patch delta 17611 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

    4pkFLYEKk4U0xEi6)!HaJmU=ooex7CO35y2{ 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 C=~`(3 From d7ac827ea6fe8d00201dc8ead72cc11a871b9b02 Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 21:59:35 +0200 Subject: [PATCH 073/113] Testing Transition code, DO NOT MERGE YET!! As it says, do not merge until I confirm that it works. --- code/modules/client/preferences_savefile.dm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index a4b57422c7..1240fa7fe3 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -382,9 +382,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_has_womb"] >> features["has_womb"] //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: - if((S["feature_flavor_text"] == "") && (S["flavor_text"] != "")) //If we got no new flavor_text data, but we have old - S["flavor_text"] >> features["flavor_text"] - else //Otherwise use new flavor_text data always + if(S["flavor_text"] != "" || S["flavor_text"] != null) + S["flavor_text"] >> features["flavor_text"] //Load old flavortext as current dna-based flavortext + S["flavor_text"] >> S["feature_flavor_text"] //Save it in our new type of flavor-text + null >> S["flavor_text"] //Remove old flavortext, completing the cut-and-paste into the new format. + else //We have no old flavortext, default to new S["feature_flavor_text"] >> features["flavor_text"] From 582a106d8e936875efb6db628c419ce514976151 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 15:09:24 -0500 Subject: [PATCH 074/113] His Grace now shows up on the orbit list --- code/game/objects/items/weapons/his_grace.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/his_grace.dm b/code/game/objects/items/weapons/his_grace.dm index c43e1600b6..5b57fab800 100644 --- a/code/game/objects/items/weapons/his_grace.dm +++ b/code/game/objects/items/weapons/his_grace.dm @@ -20,12 +20,14 @@ var/prev_bloodthirst = HIS_GRACE_SATIATED var/force_bonus = 0 -/obj/item/weapon/his_grace/New() - ..() +/obj/item/weapon/his_grace/Initialize() + . = ..() START_PROCESSING(SSprocessing, src) + GLOB.poi_list += src /obj/item/weapon/his_grace/Destroy() STOP_PROCESSING(SSprocessing, src) + GLOB.poi_list -= src for(var/mob/living/L in src) L.forceMove(get_turf(src)) return ..() From 1b2f2120ec26f66825393d14c9f0bc3ec1fbf72c Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 23:10:05 +0200 Subject: [PATCH 075/113] DO NOT MERGE - Fixes random resetting of file I did a bad with the direction of >> and <<. My bad. Fixed now, I will test FURTHER to confirm that old files are not deleted or ruined. --- code/modules/client/preferences_savefile.dm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 1240fa7fe3..60fd905df3 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -382,11 +382,15 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_has_womb"] >> features["has_womb"] //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: - if(S["flavor_text"] != "" || S["flavor_text"] != null) + if((S["flavor_text"] != "") && (S["flavor_text"] != null) && S["flavor_text"]) //If old text isn't null and isn't "" but still exists. + to_chat(world, "DEBUG: OLD TEXT FOUND, MOVING:[S["flavor_text"]]") S["flavor_text"] >> features["flavor_text"] //Load old flavortext as current dna-based flavortext - S["flavor_text"] >> S["feature_flavor_text"] //Save it in our new type of flavor-text - null >> S["flavor_text"] //Remove old flavortext, completing the cut-and-paste into the new format. + + S["feature_flavor_text"] << features["flavor_text"] //Save it in our new type of flavor-text + S["flavor_text"] << "" //Remove old flavortext, completing the cut-and-paste into the new format. + else //We have no old flavortext, default to new + to_chat(world, "DEBUG: No old text found.") S["feature_flavor_text"] >> features["flavor_text"] From 4188db53a5c081f496b539f0d20a6f1149d25020 Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 23:48:46 +0200 Subject: [PATCH 076/113] Flavortext transition finished Now properly moves OLD flavortext to the new format and then removes the old format. If no old format is found, it defaults to loading the new format. Flavortext is now stored in your DNA, and is loaded into your characters flavor_text variable upon creating the character or messing with the DNA. This allows cloners/pods/changelings to use the correct flavortext. --- code/modules/client/preferences_savefile.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 60fd905df3..f846f52625 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -383,14 +383,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //flavor text //Let's make our players NOT cry desperately as we wipe their savefiles of their special snowflake texts: if((S["flavor_text"] != "") && (S["flavor_text"] != null) && S["flavor_text"]) //If old text isn't null and isn't "" but still exists. - to_chat(world, "DEBUG: OLD TEXT FOUND, MOVING:[S["flavor_text"]]") S["flavor_text"] >> features["flavor_text"] //Load old flavortext as current dna-based flavortext S["feature_flavor_text"] << features["flavor_text"] //Save it in our new type of flavor-text S["flavor_text"] << "" //Remove old flavortext, completing the cut-and-paste into the new format. else //We have no old flavortext, default to new - to_chat(world, "DEBUG: No old text found.") S["feature_flavor_text"] >> features["flavor_text"] From 5a7126a0ddde8f0a7a10d5c3ea6cd4d2382edc96 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sat, 12 Aug 2017 01:15:42 -0500 Subject: [PATCH 077/113] Panic Bunker for moderator/trialmin access --- code/modules/admin/admin_verbs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 68e5430a09..a839b35b3c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -17,6 +17,7 @@ GLOBAL_LIST_INIT(admin_verbs_default, world.AVerbsDefault()) /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ /client/proc/cmd_admin_pm_panel, /*admin-pm list*/ /client/proc/cmd_admin_ticket_panel, + /client/proc/panicbunker, /client/proc/stop_sounds ) GLOBAL_PROTECT(admin_verbs_admin) @@ -114,7 +115,6 @@ GLOBAL_LIST_INIT(admin_verbs_server, world.AVerbsServer()) /client/proc/toggle_random_events, /client/proc/forcerandomrotate, /client/proc/adminchangemap, - /client/proc/panicbunker, /client/proc/toggle_hub ) GLOBAL_PROTECT(admin_verbs_debug) From 7addb0207b63c6bfc5906afd79092cb56338c120 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 12 Aug 2017 04:42:44 -0500 Subject: [PATCH 078/113] Fix travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index c0a45df72d..ba11b40c97 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: generic sudo: false +dist: precise env: global: From 73426d56ea6a5331fa75c26cbe20990e5911fb42 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 12 Aug 2017 06:31:50 -0500 Subject: [PATCH 079/113] file path fix --- .../modules/mob/dead/new_player/sprite_accessories_Citadel.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm index 55572d8187..9808923e33 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -31,12 +31,12 @@ color_src = 0 icon = 'icons/mob/mam_bodyparts.dmi' -/datum/sprite_accessory/mam_tails/human/bear +/datum/sprite_accessory/tails/human/bear name = "Bear" icon_state = "bear" icon = 'icons/mob/mam_bodyparts.dmi' -/datum/sprite_accessory/mam_ears/human/bear +/datum/sprite_accessory/ears/human/bear name = "Bear" icon_state = "bear" icon = 'icons/mob/mam_bodyparts.dmi' From 74636ffeb088c59a97e7afa0bcc5defc9fa2a3f7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 12 Aug 2017 06:33:46 -0500 Subject: [PATCH 080/113] Automatic changelog generation for PR #2295 [ci skip] --- html/changelogs/AutoChangeLog-pr-2295.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2295.yml diff --git a/html/changelogs/AutoChangeLog-pr-2295.yml b/html/changelogs/AutoChangeLog-pr-2295.yml new file mode 100644 index 0000000000..c34d19ac6f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2295.yml @@ -0,0 +1,4 @@ +author: "More Robust Than You" +delete-after: True +changes: + - tweak: "Mulligan and non-continuous completion checks will not consider afk/logged out people to be \"living crew\"." From 4298f6539d88007e634baa384157a3b6f44d82cc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 12 Aug 2017 06:35:46 -0500 Subject: [PATCH 081/113] Automatic changelog generation for PR #2335 [ci skip] --- html/changelogs/AutoChangeLog-pr-2335.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2335.yml diff --git a/html/changelogs/AutoChangeLog-pr-2335.yml b/html/changelogs/AutoChangeLog-pr-2335.yml new file mode 100644 index 0000000000..5681e3d5f9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2335.yml @@ -0,0 +1,4 @@ +author: "ktccd" +delete-after: True +changes: + - bugfix: "Flavortext is now in the DNA of mobs who has that, meaning changelings, cloners and such things use it properly." From 53b137740279725aad5958b219247db2cadf730c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 12 Aug 2017 06:36:59 -0500 Subject: [PATCH 082/113] Automatic changelog generation for PR #2339 [ci skip] --- html/changelogs/AutoChangeLog-pr-2339.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2339.yml diff --git a/html/changelogs/AutoChangeLog-pr-2339.yml b/html/changelogs/AutoChangeLog-pr-2339.yml new file mode 100644 index 0000000000..c7f3d42698 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2339.yml @@ -0,0 +1,4 @@ +author: "More Robust Than You" +delete-after: True +changes: + - tweak: "His Grace now shows up on the orbit list" From 6cb9a0088f3cc0fa24f14dd412def741a4b40831 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:26:39 -0500 Subject: [PATCH 083/113] Fixes admin mass deleting... not actually mass deleting... --- .../procedural_mapping/mapGeneratorModules/helpers.dm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm index 24b75a3a9a..6fdcccd43f 100644 --- a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm +++ b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm @@ -37,16 +37,12 @@ /datum/mapGeneratorModule/bottomLayer/massdelete/leave_turfs deleteturfs = FALSE -/datum/mapGeneratorModule/bottomLayer/massdelete/leave_turfs/New() - ..() - ignore_typecache = typecacheof(list(/turf)) - /datum/mapGeneratorModule/bottomLayer/massdelete/regeneration_delete deleteturfs = FALSE /datum/mapGeneratorModule/bottomLayer/massdelete/regeneration_delete/New() ..() - ignore_typecache = typecacheof(list(/mob, /turf)) + ignore_typecache = typecacheof(list(/mob)) //Only places atoms/turfs on area borders /datum/mapGeneratorModule/border From 1b3ccfdfeb9343d8c17c37959add1d7c4810e329 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:26:42 -0500 Subject: [PATCH 084/113] The wiki button now asks what page you want to be taken to --- interface/interface.dm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/interface/interface.dm b/interface/interface.dm index 253738064b..64e39587ce 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -1,12 +1,14 @@ //Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs. -/client/verb/wiki() +/client/verb/wiki(query as text | null) set name = "wiki" - set desc = "Visit the wiki." + set desc = "Type what you want to know about. This will open the wiki on your web browser. Type nothing to go to the main page." set hidden = 1 if(config.wikiurl) - if(alert("This will open the wiki in your browser. Are you sure?",,"Yes","No")=="No") - return - src << link(config.wikiurl) + if(query) + var/output = config.wikiurl + "/index.php?title=Special%3ASearch&profile=default&search=" + query + src << link(output) + else if (query != null) + src << link(config.wikiurl) else to_chat(src, "The wiki URL is not set in the server configuration.") return From e972a90ba98ee2bfa979674763f8d276d12ecb3b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:27:51 -0500 Subject: [PATCH 085/113] Adds callback select system --- code/datums/callback.dm | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/code/datums/callback.dm b/code/datums/callback.dm index 1b5c25fe18..624fed58a6 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -100,3 +100,57 @@ if (object == GLOBAL_PROC) return call(delegate)(arglist(calling_arguments)) return call(object, delegate)(arglist(calling_arguments)) + + +/datum/callback_select + var/list/finished + var/pendingcount + var/total + +/datum/callback_select/New(count, savereturns) + total = count + if (savereturns) + finished = new(count) + + +/datum/callback_select/proc/invoke_callback(index, datum/callback/callback, list/callback_args, savereturn = TRUE) + set waitfor = FALSE + if (!callback || !istype(callback)) + //This check only exists because the alternative is callback_select would block forever if given invalid data + CRASH("invalid callback passed to invoke_callback") + if (!length(callback_args)) + callback_args = list() + pendingcount++ + var/rtn = callback.Invoke(arglist(callback_args)) + pendingcount-- + if (savereturn) + finished[index] = rtn + + + + +//runs a list of callbacks asynchronously, returning once all of them return. +//callbacks can be repeated. +//callbacks-args is a optional list of argument lists, in the same order as the callbacks, +// the inner lists will be sent to the callbacks when invoked() as additional args. +//can optionly save and return a list of return values, in the same order as the original list of callbacks +//resolution is the number of byond ticks between checks. +/proc/callback_select(list/callbacks, list/callback_args, savereturns = TRUE, resolution = 1) + if (!callbacks) + return + var/count = length(callbacks) + if (!count) + return + if (!callback_args) + callback_args = list() + + callback_args.len = count + + var/datum/callback_select/CS = new(count, savereturns) + for (var/i in 1 to count) + CS.invoke_callback(i, callbacks[i], callback_args[i], savereturns) + + while(CS.pendingcount) + sleep(resolution*world.tick_lag) + return CS.finished + From 3f562c113c967947d0e2abe9b4ac5f4966b13aa7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:27:54 -0500 Subject: [PATCH 086/113] get_head_slots() now returns wear_neck --- code/modules/mob/living/carbon/human/inventory.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index d9f1acf879..da99954f29 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -63,6 +63,7 @@ return list( head, wear_mask, + wear_neck, glasses, ears, ) @@ -171,7 +172,7 @@ dropItemToGround(belt) w_uniform = null update_suit_sensors() - if(!QDELETED(src)) + if(!QDELETED(src)) update_inv_w_uniform() else if(I == gloves) gloves = null From 714fc5ed4a0f82cf0c6165cb4efe5c46949cbb74 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:27:58 -0500 Subject: [PATCH 087/113] Fixes minebots missing action icons --- code/modules/mining/minebot.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 25aa9fb8e8..8029cc1416 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -170,6 +170,7 @@ /datum/action/innate/minedrone check_flags = AB_CHECK_CONSCIOUS + icon_icon = 'icons/mob/actions/actions_mecha.dmi' background_icon_state = "bg_default" /datum/action/innate/minedrone/toggle_light From 80f1fb8c58828d44f51def83c9c107272f94acea Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:28:03 -0500 Subject: [PATCH 088/113] Fix fireaxe cabinets spawned with broken icons --- code/game/objects/structures/fireaxe.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 24e70059af..bfd3dea037 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -12,8 +12,8 @@ max_integrity = 150 integrity_failure = 50 -/obj/structure/fireaxecabinet/New() - ..() +/obj/structure/fireaxecabinet/Initialize() + . = ..() update_icon() /obj/structure/fireaxecabinet/Destroy() From 1291b122731a7e2802b9463594b4905d2b2aa1ad Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:28:11 -0500 Subject: [PATCH 089/113] Cleaned up stacked pipes --- _maps/map_files/BoxStation/BoxStation.dmm | 3 --- _maps/map_files/Deltastation/DeltaStation2.dmm | 3 --- _maps/map_files/OmegaStation/OmegaStation.dmm | 2 -- 3 files changed, 8 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index bf4263ffe6..c89e4e0422 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -60788,9 +60788,6 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "cHY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 3e19f173a4..b0265ad94b 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -112682,9 +112682,6 @@ /turf/open/floor/plating, /area/engine/atmospherics_engine) "ept" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 60495dcf55..020a963662 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -5039,7 +5039,6 @@ name = "Detective Privacy Blast door" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/security/detectives_office) "aix" = ( @@ -32004,7 +32003,6 @@ "bcM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ dir = 5 }, From dae3e121f2cde3130eba771f758284292905e939 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:28:16 -0500 Subject: [PATCH 090/113] critical priority roleplay grammatical patch (*surrender emote fix) --- code/modules/mob/living/emote.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 8bdcf30f66..ff37b85800 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -326,7 +326,7 @@ /datum/emote/living/surrender key = "surrender" key_third_person = "surrenders" - message = "puts their hands on their head and falls to the ground, they surrender%s!" + message = "puts their hands on their head and falls to the ground, they surrender!" emote_type = EMOTE_AUDIBLE /datum/emote/living/surrender/run_emote(mob/user, params) From 1e3ea07d8b5ddc40e993814b261cb7ac7f058493 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 01:28:24 -0500 Subject: [PATCH 091/113] Adds icon_states to the unused and used Eldritch whetstones --- code/game/gamemodes/cult/cult_items.dm | 6 +++++- code/game/objects/items/weapons/sharpener.dm | 17 +++++++++-------- icons/obj/kitchen.dmi | Bin 23347 -> 25105 bytes 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 918398154c..d472bb7d5a 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -161,11 +161,15 @@ /obj/item/weapon/sharpener/cult name = "eldritch whetstone" desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone." + icon_state = "cult_sharpener" used = 0 increment = 5 max = 40 prefix = "darkened" +/obj/item/weapon/sharpener/cult/update_icon() + icon_state = "cult_sharpener[used ? "_used" : ""]" + /obj/item/clothing/suit/hooded/cultrobes/cult_shield name = "empowered cultist armor" desc = "Empowered garb which creates a powerful shield around the user." @@ -391,7 +395,7 @@ if(!iscultist(user)) to_chat(user, "That doesn't seem to do anything useful.") return - + if(istype(A, /obj/item)) var/list/cultists = list() diff --git a/code/game/objects/items/weapons/sharpener.dm b/code/game/objects/items/weapons/sharpener.dm index ace66060af..881832b5bb 100644 --- a/code/game/objects/items/weapons/sharpener.dm +++ b/code/game/objects/items/weapons/sharpener.dm @@ -12,31 +12,31 @@ /obj/item/weapon/sharpener/attackby(obj/item/I, mob/user, params) if(used) - to_chat(user, "The sharpening block is too worn to use again.") + to_chat(user, "The sharpening block is too worn to use again!") return if(I.force >= max || I.throwforce >= max)//no esword sharpening - to_chat(user, "[I] is much too powerful to sharpen further.") + to_chat(user, "[I] is much too powerful to sharpen further!") return if(requires_sharpness && !I.sharpness) - to_chat(user, "You can only sharpen items that are already sharp, such as knives.") + to_chat(user, "You can only sharpen items that are already sharp, such as knives!") return if(istype(I, /obj/item/weapon/melee/transforming/energy)) - to_chat(user, "You don't think \the [I] will be the thing getting modified if you use it on \the [src].") + to_chat(user, "You don't think \the [I] will be the thing getting modified if you use it on \the [src]!") return if(istype(I, /obj/item/weapon/twohanded))//some twohanded items should still be sharpenable, but handle force differently. therefore i need this stuff var/obj/item/weapon/twohanded/TH = I if(TH.force_wielded >= max) - to_chat(user, "[TH] is much too powerful to sharpen further.") + to_chat(user, "[TH] is much too powerful to sharpen further!") return if(TH.wielded) - to_chat(user, "[TH] must be unwielded before it can be sharpened.") + to_chat(user, "[TH] must be unwielded before it can be sharpened!") return if(TH.force_wielded > initial(TH.force_wielded)) - to_chat(user, "[TH] has already been refined before. It cannot be sharpened further.") + to_chat(user, "[TH] has already been refined before. It cannot be sharpened further!") return TH.force_wielded = Clamp(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay if(I.force > initial(I.force)) - to_chat(user, "[I] has already been refined before. It cannot be sharpened further.") + to_chat(user, "[I] has already been refined before. It cannot be sharpened further!") return user.visible_message("[user] sharpens [I] with [src]!", "You sharpen [I], making it much more deadly than before.") I.sharpness = IS_SHARP_ACCURATE @@ -46,6 +46,7 @@ name = "worn out [name]" desc = "[desc] At least, it used to." used = 1 + update_icon() /obj/item/weapon/sharpener/super name = "super whetstone" diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index a8f7708c46fa1d3d9b0d28c0a15686dfebd0f8ac..87b2b46a2bad9966f73883c7a09f3b4a22a3df52 100644 GIT binary patch literal 25105 zcmZU*1y~zj@HUzN#VJrI?ogn#xNC6NVr_9L&;mc4VhO=rT3mw^*A{muP>K|HiWPSY z6heS+d;j;l_j~T$=Ly;D**!ZuXU@z!@0le^S6hV$p9UWU0uiaHD!u}Nz_P%H2^SkU z(r;US3IbtZ`x(6URD9=QtA?u}}X~Js8L~!1zi=Jav=r99#0{P;pKqbsFp7_GvI-u??RN;Wq8Sn=vbl zf|go2ZKoH5_gN#8cRiC+hB89QZey}DF%Tfg=Xy;0)(0|o@^Tmc#LfK{b z<^c2o%;g>*AoMbRfi7NIn7>piEy;CLi_<2x-OZFxC)Vz@-oWP2j3nuYbo)xC6EyCa zvkg;e%zV_5o&S;qI0dZlIe`<2t$IG_?);EwU)iXonPhF+C_chcWFMk{g>-sKNn)-$z#osF@Y<`K5VM@hB(g+1*ZWcUY zoTZY>O=*aw{^&GJ7s>By=ahpj8`24`D5SH0I-5syf#;a+fV)oNiNl z52ejsWgN6m52Z`8Whb-DmGaTFJJ0ZiZYPbrI2q$dfEEA$Te#qpBO*OLJ@VCpoiPOC zmlyjnsDK07$%b&5tbj<=>`c>K%32}!NnSBpXyD1W(rG-eQ_B7??<({!=Rd3&! zTu9>!2^YC-0d*HtbcNS7IBz~Zj~mfdI#zYR<`NqjNtD0a9tN}^CHNsqJKS-9qi*<{ zl8{f057tf?;R%iHHYvCYw!2J#-hX}eKnvOO6grTxDytSq17{0~h^#f~+v~bD#GB*f zkrJV9adu-LD=GH5gaKySrWrEGnZ6QrM#?T)>u;cdm z`86ldipcyrB3;EkBh^l4iMvb#M{r76(MnsSh_sn=$cWc=CkqQ!2R0QQzuBsZk=!(6 z3u>wJ9;54_cY|hWXp~}nW_ih88xxI5LQR>VdUHo$ zg&u~jU@gcZA&d89_s!?99%PvHmxBZ%{O)y&s{=IJ1tCrZ8lRtsE9ai8jdtxUC+Jm~ zpZNZ@5$i+}^7=KFKTKR9T$|viS+T$l(lufTqwsAWF?V)}$3q0gs0}nWq46P; z0qeq+k&!W)qeP)2TJIs9^FbY1f6fk7i0tTl*<~I|IYF|_zQ4X{hKF=2-w#ML>EJdhCobrw7JOb=v*|nX6(`tF78r=Q0(d!(vlS&1kn= z82zJz1CNx1EK!$l>Y{!~hq%kuR*A!9NdkYyu2=*;o#t%ACORz#lF&3cL;L9Ze|D)p zZzoHx^X?cTEI8qb?IpNo7DRA<;l{}vw6bG-6!QA?#-m^iEIo9Tj>lxwLJ#88@90QteO!LWq)z?5Me0FP zyI)?s4p+ukhndNpp6kmCe!Z5Q&SPNbt7(hb21-x~VTk2(hw{3HF_TiPZ65^T7X zTex^_J;Sa#TLR(?+eZO*n(P7HD|`K06-}-OItM4#c_vpYN@9RUuBBZJw|ZMtjHhHja3X?E+a44}G2M=kKP z%E_y$;wGyXy=m3-Te(YT2%bPB$~Lu-)~V^L*e;S%i3ffQybpeqnE8pA`O+)pA+Aqn z?lo7@apg9 zBO)%42&Z=zN@+ zjZQ*{4SAUoxFfpZFvY580etUr9{PK=MydeN7msq>mY?stG5@0W4#DHb#!7PW*>P8WDxVn_4icBC~^oF09D%zp< zy?7v@*0T(x<5+2nYvOhO^}uEJL0ufk%jy^I2*qW~kcyid|6OZU6%nAfeAe%cjUtP< z8GE4d2}D_|^a)I}i=8yxdjNAP0PqYBhdO@Dzy3|Q245f=)t2hPh)a_dU^Kk6h4;Wq9V-` zaYDY)icks{qcX`A_fWQh7#kalM9f*9Zw~sL_TZeI4KO-78E4Qsuufm*ifr#XPI;Qg z7hfFA)DZEuhy|Lxt^;Nn;_rx$ty7DoyNoCFe&naNDgJ&U=oM0AM*206iy4gZ*jpwKt<4!gEx$xIG5sd|7jp&G_n??WErt*fAVYM=Dwh45PNk) zebw~k4CTbHcHfIq09L5ir_GKiI6HHDZT=*6RF6J|PxuE33J9>Bot@cnxBO%hAMN`| zZOH>>l99=URo%&?q2zPBB9E9eS5JG^lrmFOl_Rcie0^0_HNT`S?)tAjVLkOE%A?@c z!Uox%{K{wTl%(i{TLi*%P9!`Ksqxr#mtiu2CYF1XMV{1$%WcM|9vPx8439vIq)ZET zaZ=N>v#++cwj3NBy3e?q2oW}P8xH-shGtG@3a~ICW%8KdO`@K|2Bk9wpPgZIaSki&{Z(2Q{ z3;SO=g@%SE`a3^2;ge&wQVujTGsDP<(&@Db+ z-x_|RGY2Z)3d4?FlBR?#|FvJ^Fud$2DwI2)f(8~#A@D&ghBJ0D=jU5VZU*|k;sJq_ zDmiyG7>hfMA4>=+d6I3;PyUn+$Vk3umK(|1R&fq+ml%EelvS{1Zu4%-T|58^1;gV( zP$<-GfBHGA|680_!WMu^o}~?kjgHo`2?{1HwtBrN8L)8-?yCo}eaK3C%&KAfJY^Q+ z=hQp*J~pq6JT>f6UK&9TbwQl55{%QSlECmCeXxUE$d9X39on^sm4%XV@p`5mC@R zxoK%_EhsF+G&eV|4afVuUt_?vWv1Z}c_S<$;_f|CWzv-SE*MoHsocsR9xrz_bJ;m) zXbEK>Xu1KHdw06E?ffxrS8-u=hW|aer>$0EP*8fq%)6KX^)@=!kSP^kPdn3q(ZR$j zqR$y_4=XqGo5en8U%wNQ*$EwJZF>}Tui7^kpdUY*YUgx)C`6&;#d6yoGdN?x{^-%8 z)5}XGeSI=|(s)}83=AQLb|F(WEv*#SH+SzC(wyHaZ_eT|nfTv&7oEe3)%MFD(@xdi zh{&?{{hsdVG#C!XUQ7IN_x5Sv_CV?m3u{oFeN}aZGYtP74#)P~^z;{x=WJi*(iZMH z(uS*MF{NIqYHEIIbXmd%CAPG&^6`xy+RV(&DdfX4Ev&6sQqs}}Brvc%n{N0m4$2u0 z{B$V&2Ed&uxua3HS^n8glT&4f9pbM6GX|G8%IIX2NBc{Bm1RW{j zrusEesPfFcg|4BYq2T6B(cC=uOLZp$D9^!Bp##-W#`miR`04a3A*!+G{R6GK{o%Ya zjywU;dkZW$g%T!yF!9>{OT*-puhL|oT`vraqfd}*=@$#M%W=t7@0zEMU!w5GzIS}V zdTugYE83b>O<_XNIg*g)9NcIt#Kzm0T(YhRDBvk6DOf{OcL@zZhQ#!A2YpsSq*2fy zx8-)`;9@P`KK6!K@%P^eyG@=#s#3&{blFhD^SNbjd4?4Mdtg@{l~sC^uMFd!nUi@) z(tiN0Ic9Tx8=zBB0ZGpTlJHb*^J|Q)QvDbio7}I7#09ZEd$xYM-uur2JUj$5v$C{g zlmS!t{Q2`pJj;z@4fwMp%}e@-G(?)c(T~`pw69LxXx!FC5ckBK*S*`NMX&EMYr1}F zn9|+dYg_vWMujwRG~*r=h?)wor_leD`=-_s?6o`2oF%Bw!Lj`7G0X37cE4y$TihSv z?MLus$irYV@(K!WN)Nv^gO>-qZ_aB#Fq%zJq<_0L9yU@tGQZ9CmvJ z2I2ob>U|+FgPA>eEvt<+^Usw&@>^O@VvNBOg!tbwUq}v0e*En=P%TJZ5hwi@ap8Mu268oXaGO@&C|;P_x(GlpSAFhna{G}JXqGC%Ix901p%;}dA_5m%MbQB_4nh$)YXeTgMxQiAk*`amo-tD3rc!A~Et z>fz0zH1h&a`lz{ohyfp>s>MrO!8%D>GYvBN9Oo2hTO08X%g|03M1}3I6&m!qix|%O&tzA<> zQj*_!Q7Grc3`leW(Ho3!?n+ZrQ&~7UalO2}{L&(b8E3EWlT%Xm0-TAax0_TWIbBt$ zECDYg{b&|IPp4-s!E+XYIk43MoJd|xxv+vn?J*qU{(e2ioBS7*?NlAG!v=tX)_w@9XmX*ob+jHcsuB}-Ljv9q1Ev2Ym>^RkdvP8OpfD*EO zlOn9ph6)kpOb8DJlmn0TN_BaMWC;XgGaFi1XwvHLrSyMuDx^yhWQ_1{;z zK|%T45T~(%be(Wkbgi_8jkNPSu5XB;{$Jsb{cz*Ndu`B9@i}YEu-8Jk8Ed*d#sVVR zAj3Gm0)smob88i2=bx5HBL1~tz7LEzUwm`@;=ASG4cUdh;m3nV2LU9kvRc>Cpr`nc zigghGP4EL0#My)j;~TWu;P7yg192E05z)-+4_yr9RKl|Pxr6)?-6x>+)L0%{PoFY)Qz~!W+EY z*g{o557I?sdL(HcJ7C$Rz-*0)A=r8M2QY<+`!8DY8cs(M364&!L?q*@`S~v}oc0_N zeOj?~7jI1~B$UT!v| zs7cHctJRu%8`&C(OwZZ{}Y+G$Ta@yi#s==8*^bP*ZmEpYetP^g9~ zhbllcgI+tqL2KLF*xgqJvP9qI6`ofkY|f1QB%V^x4DF{cqPDf2`+tu;f%5Pvtx^D< z?^{bduSI9J-(FE#>DF)>!RIER>miC^B}GNsP^K^7C~Qsu-TWV$Kxpmq3KeOG(@Oio zW@Cxh!K@qVO;#pO^`(+xvn=}6V}22r70rf*um0CJ9e-D1fE4fh+#IErmX=-Ccum*6 zIvBH#*=40YqxJ8K|C^(>zz0|iaOw5;?Gr3gYB-fnVAr;@x3skM?$J@v+~9oG-R)o2 zmoEtcUU9xFuxrq-?;4FpgFv)XQ_qb>MLp}AHX=^CL|X$b0=tw@EV6cX#Y)n@fUJk& zZkO;QbOIEC+lQVX?J&~U582$b-Q3({;^&`W<96N{M(bUUe+2sY?Yol$+)c^Grf{O9 z(5%&G!q)i{SU^y)3_$vC0|-5|9N2bau*E`gA3w%k+IMkvtsQKN+7pz41O}SAI0@~& zW=WOfxmP9_h91mT*=3BYPEZoLM)v#wEiW%?$?!~}BhQou`o_sVM88g(o;HXont^P8 zRfH}_VspxG?CeDRbLpyTYW%scLye!1k(C`SHG)C5$Hz!QA*ZsMnh5zjn+yP7o?~IL zDyIz2Qb1XKEP;!(|4Tv4a_S~=Z2G&*1-Dm=Z@ z0nWmr5c>J^6QeyK?eZNRJe3pbwhF$QhcsdqbN5V4eELX4x)fYr_Wq;t?$Un;sBCJc zA{f)BzD%;0y89(YYN0vP`HkS|bdc4BuDSVthSDYhMu&tSluh%$oL1_hqTz6#Hwp?t zx~Kqs3yTEtRagucNVvl2y%fF6LDOmhNjFaHQNZrOTj zxlO{C+df_td!dl;#l*#_@0!>JOR3#Jqorv^Dx@SN#B0fZ;!b54u37_E@|Td+-6^0K z8&?YOTj6tBl7^_gl+gJ5N;MZ3Uch0GavhB=EJy)~ekK++c7fdtS8TAIp&%b031j73 zrLJv#i?sO8fUj~+m~_f7jaGYyIY!JaZR&bnC&{a=FHld%zLz%)dPhX`2zaE7-WGhq zT~VserTgniz~Iumosw>cE$&$?wXqAO1DP#w7w&ONHFZ^?q*J8-nzQp4mY3;|kB`N? z_Q^poLe=)C|8434^8)a$)6>&=b#+Odw2?=2DUGGP-ocUSge^};=evHM2B#B)LL(vy z>*}UHY!9S$QvDlDpBLGeVo+55kJjgy*%0)p0;(Y^E34o4{|-Ofw4F#LOmcoalOrtZ z>e?f>xroN7%#d*#nVV@qRxDYD&wav91E{ki$nOjps04s`e#LuMo3;c4e$+%rb!BqF z^ktX}V0$Vcl>~+@^rz%kWd^!;>zbaPLO|kW_2~wjY1nsleOX#J2UM?gd>G|HT z9FiFtz}g;@&Q_UloLycPz0%izQ^XP1Z)@S<^-h2~Gc!|`Ap)BKD0?wtn!QG~{Qyp56AfHT{})fbW>C8g&~$xBw(B^M4!QdS4%Dk(GH z4W)S*-EZuzZ4t~TYWY;$0Q*Mxd_;N z8HGHeYaGQ&pFfPyfX4U-E%S`X-fqeRy@%J~2@sg&>&mhx$>r-hd|_Tne;+a2&xyQo z+}jzn{iZ05^6mYK4*T&#CU6v~HI)4dZ|LYdVa`c|4i8?hx$F2PY0x%Gp#$hfStigNsTB<>dZn5?Bwt=nuBr+T z<)Yffa`VUnA81B9(*h{afl!2f=~{VrA4jhA!rozPW_p_KgUg1A@$Nb0TZAPh0>Xi^ zYXGl!j7b4G1{idOR!WIlX8;S#H3Y`he;Tx<@E#UMlQftbV&NOqwKa0+e8}J7%HRIQ#_}j?~H} zMeR-$K4~$n{(7Vnm>B`Y*vG^Bym?$==Nck`_W`qA4uBX@N=iz~3f?w9Z3R$>we|J< zGZ)UPB3$VG2dHUPS7e+{U~FR9ir-YY=B4sa1DAit=I37%MgTWkHIfM&JFDaKz9QRo zs-DbhtZTu~`DJ)Y2Z@>4aWTU3LGJ1e0t7Cnb!hJb+6kOr!Pwe7>Hc=-tAcdN#R{pO zSM{43Jfj@PZBw1y^SSbSTFv2im#ZWzUaR|3P1|{f?Sc0^E6jdceu`{M4<-Un~!dMUR`|f6U*M27yXsf-Ls4mzyeG6a#2*UdNbWm{q8aXfz zd%|oj_a+2 zrDGV+5VIS<)#fm-n!D&X_Gq|g0S0rLmicXT{yuNkU#)(l@<4gRhYX)NXx6ScEVV}n z7{wkB^ve#?f+DK&`)|G$v@sHL^V(4|pP6S8KS@xf9bD8%%n|-BZsE2qZ(1qmW!!>% zE`LbNLyc&`dYGsQSbR`4N#_|KGWdwV;ZdrLMK7uOK$jPB7-&9=LU12pcN zJNBIi{XM$?FSKyS-p_vD)nte(%9rGhThgLGTqk#ePkK8{$Gq$M=Tdecqq6%YBKhI+ z_d{<#X3c>x-IJg=Gb9f$qN~7(vRo&i+RAUFJ#p^aPnzYKMmkDvchdgD?i9!0ca4pWZ@=&gwT?dYtE~J;&8gWJg1B3C{?kTw z7cB)_~`lYNSh z!CC_FV#q5X26B?)`$6>M5}gf~5@kFfjt0M4`sQy0Cn)3i{%*9Qz1|-L*PK(fqPRoP z_7p7au{;Xcd=GvN5R5EXGKGeOui_aSh~9MIR~dIiWO&fc^fAG zE`C>azN4^8@`YZTa%3N3LE6a-4K6|zC;w|5nY6ANLl8jg4r=A(uczh(5c$ zBGKfSo7*lid&e+@TI7pMNH+&yJHx`LkUS5cC$LOa^tKIMmG6S9FcaAMb(VxFWHqqr zeOV>!&MnWS5j;CH10?$YP{MBos{Y|&0^9G8?BpEgj_^za&oT^6n2|)JbadIOG=3o= zA!H4#@;oFcbl9wDc%pOA>^Md1zplMY+XHUgqZQ!*i?r4-Y-UWG)#*>SkSn%CVw#gG zV%>Qem+wL%_MA~BoDSFQes)?Edl1pN-_%gtx1#}60yH&t{%Qa}(d5Rh?z)ygpba@$ z0%_eblMJu6O5gt38H?-ur37EB<;Jynjf&w-?i>f)p%brSCsIYC_wJ%;0ausSBZBAj zGR6g14kP_19^)QxpMbrk0A9YJY}}>bHQ>7X|LZ#Wg9Oh|p1@9IgeF#LTxW3YETx6R z|9O?^9&rZH;gJQFW8hiXEG13;n1#dLr}*(L-g+63A-RK>-oFU{|88|8OTg;S55Mn~ zUZTOeC>9n|W|&?CuI7{;Cpq#hm7ZQu6dA|kMUhv?2m*H6yzv>tr)nKb zZGyhvcHE(pO=0J}+}uSX|NZ_~0dkE(VSoUrq-$&(F**4v`h-&xxJBroD0@QRej4{) zk`z^N%pk+I5?=T~HuAa) zc2_&e7*EB`WH!UNU0I0*t*brPyQ5JdSxy2OLtZ@qG=VDMFW9JO-@c?@!Ke% zDp_Q=QL5E2y!^2d6`(wC1$}ctwjf1I1=LyqffPt%8pLQm4{uEaQq9ZiiM{-^7MbgL zF*D4ns}!BOzodQxfZ*Qg-z^?zM@_33AhXNq;&0!cfNDR?aM4M66Rrk6+|`bY;#f;* zR=y7gR=JhnsRmv1bcisS_Jhu_o$EKq5FKPb=TcZ|1;+$kJwD(oOn>%%-esqK7Ohg_Q_rwZ=fVnFW zDC3BXiVCWzc){W#Vm(`Ie0JGpL8RVGsd?upS8}$r{Lpt^Q&r+Z2>p?in##_6^3K*) zH$W+9dzTi&x=x*f0`PUU`L z%~vPV5uJ2kIJORyn-o7B?C&RLWyNrtG`hk*30?-a-6ERr(jLB+cgn25Zk@SUSruw- zK;0EJokJ$DmlL8DWPNSNCOH;;|4@i=mub5KGLvZu=b1@xLq%Y!eEGVmQl1Kk?Y(mr z@!ig7gA9|?B|?@3Vl5F0%nPhXkC-74gfaBV4PFs(ZN-ON39sl(agSnPp*Q5e;VmwF zA>*#K75}p9yW3~*DD2nSXH?rI(2Up6KLy8F#)dzBrjZ&UuIX&-Awm0OhzmELLLlN_ zoS%RGx#d38J4_Hkv`gj@pEN8kOkV)lE~SV%8%^IAlhAsD&0Dww4+|(&8n{9l)(tUk_NK3>sEV1 zcw*<$+_Jg?(pugOU_rl%P9We9jKn13R*hlH3?tP3`;P|^A*ya>MlX#H<83}(m=R6P z;=R*&VZ?-PJ7LO_cv>=315U+OEr-l`JP=b7w^z@(s$z+FPqeigbdkSn(}n)=Aeyq- z4r@#!n4hwjk`2k4z_Qvk_XDVu^u`+(BEbhFVA$~ZPG;A;$lkhOP{=NgpRU z3*3#Vh)##(7Dn;MCal&KE{7`Jrcj%C>&vCyUQCzH8}{qtYras=E2)>~UX8m{nj2tv z2?9og2sp=cmMK;aN~J>ZL(M)h1ho%Lr#bz`)y#>G)XH*z))DIN?rKoV??hEZCcc+( zI(B(iI4D#Apq~&AWJbZ*Re;uneTZInX&Ob|*5P3|#A& zurYKEs6h~d@%};|SO5 zfs{_~J`TWkqCIwY%c~pDNMG(hnw_JzA_~{&vnRBs>5EJk%y(E#tE?FM5VbcS+{sL6 z_z-4!wAi4ktz8_N8LSSBgty!bc4_--dm(ALr2tUxkBj|^8uj`@S&!I+7f@?&G7jxf z+YMzyNk)*s`~nFDbzUMio9ENtG?a86i@wFA@0+Sfn?)G%FXOD7rt z8lm6-H6y{S2lR}8+>wScZ|HSt<^A;aE(et8Bh)=$JB-KPQ^3JkYk>i<;etUSYe!l} zivhtOxzhe1LMnnKWUrD1r93rb&yx+-$b|lSH$v)9&u=}-YUsnx%UoWNKYhw9A~MTn zv+n-EFaI*)#XqXXlbST^-*pZnEpw^Ew;llKswS-9-BXoEkiHrA37w@34h_Xhvg2DX zBvS;~EYd6m0N6Mcep@f){U2ufI|txM-@As0ho|k33cI;K*ON*W(XcqeaCe^di3NqEEH-QF*DW*d5q@S#?Tkidj z?`g~*$49EZje9;OL)gXJIp7r$h^ce@b@B3HT3;u>ww6TDZiLS_!~eQ=VuN@nKzsBp z*Yo$nGTEnMvI9F7v~ny-WP`S--ioW3s(1p-U|RRws_k%VMFFD+#D zWPHTMzMr7~mR61gFLkWuLm%)p(`&Kj3K_!Nn{Y@eKVJCVl@t|C%p9Awc{2mFB{w&> z#0iA`WM^}8tp|tkOOw5=Z8`-wJk;l3&*{%D`(eJq0bF&uhR-5s;pJT7@Rx^a#vA4} zU&R7^UdYR9`s+3W%+ry4^~3YW@eYT_ift$qA~@*4VqqCCkb|I@(r+h@i9eh|=SQAU5Y|1X4&KPyvPfbpie*Z4-m)Q_{pw-OBPYC2P>98A`{fQXM z=5>SDAW%0zb~`&egW$8XMkDF`y-2Rwf0b=jvLia|NkOficoQ5t-zDcU@ymz<*s7>z zbk=i=|1<4`a<=HCl|m~6jq%B{aM+cfJjca$c)^548~ znz$rEpdN4`j!x37tG+^-7EL3-J6oNvLgWom8rROh#eOf(#!~na2Y1}+9qfV2J85d*-xe}Pe8Qu|@-u;%}1{ z314Qr641@f%ZDnLnxd5(cVbm9(GP#-gAO2|X^$8ByM_-F45j6c-|gET>oL4C25}W4 zuV^uW%Fk?GhV(dgG0S>on#ORkn-j+MizVw*MO0hj{VFzcvylbVEnH5&A_}g*=~=46 zd%Ci*=GB1LB4}4oQ-Nb`6&8h>A!91jMNw|1bHQJ7v6JWUY-_+``mne=V0jF{YGMZW0(&j)gQU? z`H+9P*47x}b7$R=-a`|Gl{ldJg@qnzTmBkU{QZ6N%oHY0U?5UNq@bqgQHQ7t21r?4 zLY{_pxB{l=z~txW(zCh*j{DW&pod(y)2QKcd0fZ`33{;aMT1idw? zG;N^)ot_WZV1UjqE?loqYiPFZIfx{)fw$B zam}8tM7)Mp60OZ%1cjz%>!mQBM=hYXit_Qf$>8!i^Nk`d&4M3-Eh?;nEjDPvUz6A5f~jfcd=^_>$6wz~JD!~6 zRTKe!q^wfhW6kfO_a|!4zcP0%Dh+}M-ahWW30KiG{D`+|zw;q|wE;y70^X4Y)3_;zqn0vwU6KM$amw-mhZJt*$0?cFL$0y=oTMbN$fuc#QvX^TJx}N-{YTiCi1+ z32ELKl_X+Nq4fv-ygMRkS4rq8OyJIQ50ng@#xVkF!b#t}DPOQ}a#@vd7#K`q1;b%t zF`YuFk(x?m^1>0^rIN5nqV+#8XmjX4A2q}HlYJ@tzy(;?Uy=0W^sfdwUFuyOZIu6M zm+vPQE_2eYwGjREI$Yi@y?<1gZJUQ$T<4@EP;sMcc;l` zlC@T*wY=3cLOl!p;5%vP>FH-Vb}uCr70Sh>w)NwE+`I@;sLT*#qnqDH)$G&NyeSv3 zD|NGmkzIZuyFT>--j-^4kW2Tn)1T(*-92rL{=nMpp#vrERgV>kom3A$t zxe(JG1y>)Nv}ZB#L;TzH9FBI2oBW$4@@pO_PS}0+)@alzgc#xUekq2ov|U)z=P|CQ z>F~}gntH?I^#;-A{f0TtIiLud5P@lRfxVC<;iXx zA98fzLu@h9@nx!OWW>Z`4%Fr!upfJZ?w1IhJQ?C>wiv%&AF~|ZKBMTFOh`->pfu?m z{T>teTK=S_V^nbo?dN|x;ZvvNBGW6cP!`&!XlrY$`VWo(CA%yD`~kW8s|l;$W|1D? zo2IF*S?Iy0w)M9>G@)jn~&>YmWIdsi-V(+h>#q5b9C<$ryB`^GGduXZi|yi$6)vn zTIx%6GxOZtYeVP5qa)#wvB5z+EAL+pU(@n}3P={^^2ssH~{^aocs9!5Bj9Le-J#EVs`53rL3Vs`4%LmQ6%e#a{>^s0lHJJ`k&p_()UpxX{lC1 zFb7CpN@JsMS!MBU=|C80?C?HYIx!IkGs-@+X3y#>0w(=p2e&mT>1^qjIhG`s6)ysm zwi1(A|F@8XmodcwOd{d{QP_~`}X4E%&B!=(M8mFReMn9D232(gS?UtjEimlZiR7oxUL!wCwmbEZIn6E zcMgYNbe99@rJ+#ZSW|RoBrd}C&Pch7eeMDCW9g5-IjEzqTE=H`#wXljlCko}jE^|{ z@%(O|i_NR8IdI7Nk8z{C>`%Bok-Cu?{KJ*)i7UUK>lf$o$uMjXa80lss5BQ4{<>Os zaPs<|ZL!*ad>Po!UGzj-TU*Ryo3I1%b;FU$Qc)30*sor+y`uvR`t|GA>D84oP!_F? zPF11|Z^WY@-<(>)$3LGKABX#&&^zD~J!XgjxZ`v~5Nh{*RSzc)rH^{f#JV_9HMcSF ze9L!%rsJ~hrFg5;;Z;_e63lR zce{IgJ(wSVM+puD_P^#;!Sa>J>$s&j=Mk|Q7MS6;)56v^2burIWYa$H=Z^l~vd9Dd zTxprPHgk=q%F`8YVbjZhJ54QCNZdB}@bu{DXmNW0AEix_auXNc)Fc{!W?kQ4jDq=C zSq**AjLr@@J#__2M*jS)ffVF1A!I-om-lyXA`^7FJO1+Y0K02s{&N$q7cuaE289r7rr=)eGQRyx>FEpp=_mnS@Sniv5T|zjM5_B|kg?g4AbVX#gav z-6vMx(6F8s$wwC(2|y_qm~}kU zTLmPhA!TCp6fuK;tESRkAshF)5RhoC)W3UX>T)1!=7=L@mNW5tB`jBFYLP)v(FxBQ zwwyzcT(bi?v@hTT8N=@JAv~nxF7F_4Z>oD1do9TYUdLg$By*$u6wCvC+i+~@(gMc7 zWKT~@!pzWAe)yO94s8ts!sUr{M@Hh3go#UoK#bM@{x87L(h}`0z`q$7rdlpFx(I2y z0)I)U#UByq8`&UtCqfFk;c!q~$T>Z@vHovCeha~CO z5_*ROlp-x4y*KG4KnM^Lk~_TbcmMUT_1(3ylFUrb%$aj0dq3wnd!Oa4;DraNg(HCr zgXtJ#w?A&k5mCv5)b*yrJpvP5N=T?W@QykA>sVfdam9CgoX3_UxMnj zM9}Y?xGzHaxSD3~w|%w!+r~15_mYKEXN{HUD#0p$+2EWZ?G~DaIp4*B#y!%j|q$6jbK2DiX)q$&4Kl+fFUiIkFP;9!~Ae!bG40Pc*0xKv~);2L=&8jYH_$YLL?jMuHYw*uJ=Up?cO@V4Fx4AZ?j*(^o6Ujj>@rQ;@$2Ft@nSS4461df*wAK3+=w+?h^66*}j6@r&MrFbFsORD!DpZi*XO8IBqL4C1Ae^>}g0wfu z9aGaHkKfsIW*DS~ct6!43{!?Kr-O>PB2ism|1XD^)&^Nw4K`@hp~PAd!7I-nhM;e+ z>PXmy&&yL&zkFo!mmMfPXy%)&cH`BUT+P_Hetno8M4S&FJVGbO2X$l=A>cIM_RTQT z=jT%_jgWkRjQN@68yM6YZB@7d30<&k#P(7sM}WvkeH7wguSBEM0R_>rbcd5hCG3n3 zuU~Asm~V9+TO_s9Fkurd;ouFWc7%d{LvRN045$J28?_A{7_v&po*)-BE_fNu2 zBg0Y_>16aJ3$GtEEE*lK{Wn7H#MnMfo_n~dA*W`?LQ$ty9;giBvUObT+TKh zuS*qzBkn5Ntext~Ctq~se9fF0z4FRrQ&`;c}6Qefqo%drLR*Do`mGst#F> zLFXG}Du_q8yRYTYeK}3l75N~Ym3Vp#abM$`XJ$H8N)!s;FbuHE|2X27f8bx?k;jpy zt)2PC9E5O<<2hg-*9u<4*}_8vILCd_;O$Mq!e`O@P3x}SrPma?o>yMH(wmI8?EdtL z7rY_kr`uCEvj}ewK|dl;z+Y4c)*>9YRr6k*ZD_2Mm&s5tPbU;AB_(B*)!+Jl)-+uz ze$6Tml+JqbEIYVS$~PtPo53h2H^^mlP#r#*=0|%t;~or{T&hO#)YV{TU>s#(%_W8brg%0Qe8{c;YMY)cm ze>1Z&&4dyweJ3<^Rba&Jq2b~CD#6?A0#cGfjueV~YG1(wAlHp&ciF8xzF;C;ND?pNC{H%ig7Si+km~hthSCKa%aK ziM7i0ujqrtKN^{s%vvd)2v@lc2&Evfo10#7b%gQwW=*P|o}RDOPxy!^fB)a$*B<#6 z^j8xPJ536c?K(OxS(_XH1ySOjRYjma<5UFgx2SL2mjJdP1g@UW+NI%eoNaw z5Ry{ouUlUNeIvZOhHdX=3_gilF@L4hSGZcXntYf2y>!P!sp?3D<|`(jk$iH@#CsAl z`i}jQn9|wrnAyc-NK!%q6WF*`&JgSVQO`(FZOkfLgzQ=T(BP96L#1veN%5T>JlWf& zxyaTp<3Qy2J+oMt`iI0(vUo@AMqO7~=e?yxxvSsT*CjP8yN#cGR&68-;*vP;%(ClV zf0v=FtxanLS3e7kH9orv3K{eL-G4)SJPO_%hn~G6FaLI;*_#K@Sl&(oEjJa6wav}^ z@zsjQwP1q3*lM!D5b7s%or5RI#pzOHq9Gqj zTkL_)dY+xEqDr^W?F{b0Wz&|$XqrK>Wu3XA6U_IHkqb=s)KB)LQUYqcCtrd$>@`_^ zx^4{+8Ma-gv%-4MOichr^h-IcxEv8f^FAX(m*#sS+J^1%2YcHHwXqKZ+|PS9Uo`p7 zQ!X70K0YGQEudg2yVwD*sRPt>EzXLQ6IaBqH{OuTLvy+Nyg(C`99Mp(+6Alh=I>zB z-nU_SDe4^whDD$kV|9I0(RpHf>h{NgFjEoB-&tzm}+qb71dS{Xy0xlSU#Kg4T&183>X5gvf3^5()z!vV zB=AR`fr8UScws^5xnwfhzo4X~++#mjn!u4L{t{6QY3}h^dl%=1S zbE@3YVyhS_ixR<0E&Fu*ODikF*RHW!T!=}x+R9%^Vi9fPso!1J79;x4suPWkSx9w0 z0t-q3KWjudP|U|SmQmX9Ex$WQPGF^JfJcwY9_-XQDDPF|;ZxyLcWl#ZDCd-pL8(5F z0}9ZSnA0z86kZ-5nJfx5Oru`*j36k~Y}_?|l`#~%_xhkX&1RD>BScIW+Dwwzd4YQL zh0P9w(dk-f>+I@kO=x>PUnwa8B*a5^~;r<7~oROIp1yMss-qR{V<> zZ6;s_EILCVj!0~z)Sm=%i3^Mok`Gzx{e2|)myZgB*@mi5fEyoF%a=10os>OFhUs0PJqOM6j!-!4Kq&^J zuZ@qa54`P^#eh|F>KF)wl**ncVMZHg(|>@n!mUM*jiPMEsfqaOo+AKIUQuC{^~yl> zr#~Z{zw+d0w*^TL3KHp=mt7u1aiaIeKYrb@eU~t7Zxb0FC@RUvcZ%YX9!zuVo%n*8 zfH#y1Z{Blt#g)jsfx~Ryy_wT_(cU??kauQAWs>0g&GL~M_6t-u-*-(!<2!$HXho4g zTa{9oWX1a$)i-{p4?(9~r{=Bja);%W`K4HW3)x58pON|(yO23Y*N}A#yAL*p+#ZML zBc0GDSgOc%PuJDatm(zMg@8opk6XB*&X!3{AJ^>;)uipkvO%%;MX@QFpN*3|b>StH z-Ah#H6AsEXyEk8#Dt(w$esPMMP7HJ4M6 zi)hddWlC0tzsbCs)iLZv$c*Pdli{>EA1<{o7>v>PD%H>ThIktm2>g+_W~&upE%x<* zwK52ovz+(GW7#73gf*Jj`quu<&-7150ht0h@gO)K$M>ba;kS)(@3{^UJ!U!sh_{^$ za4h}phVbNhE00}#XwP%|xRN3*HC1!e)1M)8{j6RJi})-LCy$_-aF3`&r1aN-;6>cf zgAkdz$je1&Di5r%b_Q7CVS58g;OK=B9q_sATU4({?U-Kwn3krHA8G;9xBCS8h^_UWO%N-tD)8O$gfgI^{~PkEcEXM zK2RJe!AciQzp>JN`t&9>mF9Pr!Y5rrEzspG3c8%TA_$Q~55y0*2B&`ij^)2-+O#(J zCW+SiVSP(6Wf}C$U_24ns7u%i z&NS^nuK`!P<3H|;3jt^Olx*lSne==*QTuCb*sEsnI{2lCuzy^ZK@=NA=gZ4(8HoE-vA7BKMk=1l{*qoY~h6ex^CXU^!*y$;hUPWcNk&#iLQ`)FqmU;&zI6 zNt}-bQd0_a11;l!E2idL5V|m}{6pO{Rq>j8SA9C9Q18Tby3(+yP%ow4ZFt0BBU-Pj zIVb1kgKMwz_AT2deq57ar4x4lu-tpy|BSwZN$VENEM~6(JASmZ{b_DRSPRKDJ5Bcr zvx}X|!UQ#9nVYAF{uWwUqW*?qB*;ZYw^t_QD5upM$CRF{p?!YcI>Z*N8qs3MzQd*) zMSU+NaS`%%jz~$9>hzpnsLe@4Cuh4*8drqmQIDj<&zEP%aPK0-R6UeNBn%A?otF0# z+;{vbNzZl4qT!}Hq0FS4)myfVMql_wjs zSGadbB}2~|Gcuo{cgctdBtB2!I##|vgBS64j_z?^U&6O9R`=#(Sdqo@meU@jV%g_? zOJR-XSzFF-Eof>^YKoi^ETWbig{>duvYSbYpE++cYw;Rf`E6<>DtSJDp|KLfu(X%2 zL7WxyTQcQRCLghMkX{mZn;qvoi)l;uV&LaFuUPK*n$=(BM=p;34kDTF%JBgHbus$# z4mF*QQRe_oekctG3@<6kua@+pg?VZ~g>q^k8R(_SzdHwmk{P?g#EcyDDEjQ`qU10s z<~_5%H=A+OQ%^)g8-A9oi^Ek|9ubUy_11lGMWFC-vw|pX z-F!%C!>oP|)IL9&pSLKza%6Up_=W@P5>!sDPMGB>_!anz)jwpj>Nf{gNyJ0~u9DnV zs4Q(hye8`>1=n|(TZ`th#)y7LpL6W~Dr+51E?2q(>de}5Z^xdl*tOC`1^O(l*4Eb@ z#~+U<-I4ZG#MVqg`5mQWRGG5tA{uA{qIm)v<#AuliQMfBDt z;LF?g@*`p@QUo{qgkR8V0G16wGLcIasP>n%OCM*CX!n{ft94U?>w{gnc{8r0ʼn z7wKu@trMmoeIkUoW_%NWwaojYPF>Lfb8*q#85|Dj4`0}OvC#)Tn`G(t{MMy!6%}kh zfBwuvZ&ig6+74zFt|?vf}1^?@%tJT0S3LgY>G6F$M4cUGr zLnqXlHsG5#6pM66WKAA}THT6)$8XyV{NLwgNDw zZ}ks9x;o_(Im#|@s`7hhCuZ$g*wsJBpXI51rWn+Psq>{Mn|S!o{@E~+s(L}gGf?l@ z*N&mwQ=zygPK=8*Ib6A2F^dQY4sdXLOg+uVH=zpQzsTLvz{XbH$bbabYuTiK;k&u> z2>hsg2KCB^)TuD;Y#BHQS{dX9f{{m(MKEQ@4^uo$lo zQ!;8KDOYdL{OH9xshrHWYqw2KC$8mQ3TbGlIz1T@k*hgAHW=ei$KvQ@oUDjWuGsbD zb^v{h)n4Q8a4f!ifAyG{nU|Zg-+~pr6?Ubdl9uwq1zmNiv?|pvK1ka)!aQW20dc_X zM+zyHl7jbslTQ2`?8-Tm{BT$?J?Tdj(Eb2pd7e0<0f;@o#0ecK(Nf;{7HZ5fH%d7N z+AhysAHS!3=l(BHn>e$&=GQ%NF%ncbmH!dySIPJ0t7jl^! zJC7Opre15i!?_g^29-PKJ3ikpE+2<*Cbs@KUVKL#eC1WGNUj!p3dMj6InIsU(~Qia z*E->F&O(I2T1%e$oc94dUOTq{nl7TrKs*0VVc2RA$_Kb#RcTuII?aG)4BvP@ff8jTXS7jSa1~XC>(C z=Yk*Nur0}W#P}R$4SPZJFJ`tw-D2{ByM1dncBMC$I$*|Ibm2i8+j? zTR#mX{h!TIm$lI>>Srg3`c^fcEssLAUy?{!#nxqIJGcaP!Xf&3*`{+#a+Nd~-i0E# zD&nY#(Et$7(eWt3S&k7}?3^h8JU9-oKEju$(?CYbdsqPT$-gVzcAP}ZZUqQn>6`+W z3$xmBlIbRPQAkhxzeC8o09FzIzoihIs29A%dZyAb?lDC3Vfg>H2b`HRJo0gl^-7R1 zFZ0InW(s0vqe_*qc+zm^yr(+BYLivV)}HY95HF1;g}@rb9ea;)VE5U=@fL*eG*?(7 zEEe2n8~i9%eEqlw*|kz}T3F`utKs08IL`Y+xJ=lzM#y0QbG{hy z&yLf|*Is=tK@+*cn~N(Tkt&Rv`+C5l)tJeFoDTR<4~3}KUU>bDx&~~V>-@=S43sG4 z8Xl-7s?Cx~W3N2pmimilNcmc`0#*l%sHNN*8I>JyoY=cIiuNE6p^gG{)2RK*$sI(e4n!Xs3ZvaD+s zdfCK$+r3G(b>X8G9x768aK=sQSgR|KzmvhsSHwMEdIC%^FjqLNK8I(`U15A_bTt0& zChR`$Bh76wBDQc=`hxO2GUvEA`cVl~1|X4wkp|CpU6WUlm_q5cs zoikfp`6Hm;$9!VM$WT)Pg`h!I2s9TN+F2j*np=bySl>%?2Ktv1jcr_w{gg_A4}Jy* zV%M^V?AA#JJ)*1+-^?fPmXV%I=f7_Ef7 zwQ+KbD1oNwtBjGv`q|uGH+sU$^V@kvE)ep)CK8|tu9*xkxW@j#fUY`fzG>}j6!rnpL{F)4L()H#x9)Z?In z9Dk|}-u$bg-Roe061Y*els<{qpZ57WjO{({}#X2cq2ky~MwyE&bRM<;F{vu8UMjET*zbd*QO`3yWKacD zh@Ue46WnAeeO$E2RJe>k`e<2Pcr_yNlm@9}fHZVghoc!EXVH4418SM#>-4knP^G%} zL779&rs)!9;C1@G(4hVeHngz+1{+Y8dSCPY8!8s}${1WK1Stv)rboRVm=?z+oKW8vmoR?OohC3cDrFW0EZc>hHA_~F zHV@1eK#Q`bsR^JujTOC3(kLn3HxU)m_#+-*PZ=@H(=*jl5J2n8T{^%aJfWxjT3Y{* zn}vEu0|sdqKHrN@-r83poZR&kjLdy|9;9hEEOE>TqG_pVM^UN58?J!Y05f>RVQRXFRt^OFL?2n8zBI-bD5(?vy50R0d1 ziPVoc@@jsesl%`x1j4SKHIKTxCl&A`P)8__Vn8wj_8lpZKRMz15LaF;&D!#g3K|U7 zY+~X{UZ@pM@|^&R0a-HD$w^4nkF$tEyOE@Sig}PxDB$5k>w!NXdep3Vm}3p8gfyq( z!3ivwr9FZX8r+QI1l%HmMLtLDF_wGbSqLeHA3^F-A4VTLe}XlfB{fx5)z6K7KDL7N z;lsRkSj;UpqGv50KsJ*7NotBmR^#2#vtz3u@t^qKD8{1=jIF`vqUiVW5fdDr+2RT< z7j#g33xs`c;OK}t>OnK9V^yAff!GFhxI*c?_w&2Ak9vF%iKKvWJ~)0jtSODa(8^ri z1&n_b(506EHJV*-3jL}Qu0+?hSA#o`=9aZpm zndBTn%j}a~(ys0uPrN!7!$I9$0htkCjxFok(!Rkvg3CnCY<$~HuJ!I*PpJdD%|n&n zCZWwF`lB@cDWpHW0FahEtw85nIW3P)<33JPdanw z^X-9O)XEd&V^7hU->SWc8Q*(%5{xSf{5p-#nWqfPYmibt@h!4Fw(6!9dwlcTW)mxv*7h7jn4(W-R+$K ze;$mmM?@52PYj%jf++XWtKow2cfs)X8sX#&M6o&B{n=g${Qts%{|_!U=g8SI@q-EM SQlLZ{0Q9ts?v&hei2ffmmYbRY literal 23347 zcmZ5|1yCH(w(TInHMncg;4-*tfZ!pxTX1(62<{|70tDBP;1*M&hV$zTg61d&1GO)HF*zjTTcXEaKTX} zy+TR+zA03US9rrmU4EKhc#w1BIv^quV*6^S269K^GNY6xVc}?|_Ig1s8XiMt`$PF( z*E76<5|!5>eILy^H8U#>kcx2p-IsclrlJPEy~&Cm!*6BVsX*wAHrOP;w~@)L6eLgJ zL@#Oi_SN}Ng~>dn)kPzgJ;Z8Gjd62ex|!3~fbb`E+a0b^`i~9}*h4Ggan0@k5&m=0 zZXPx6u@qsBb>aF(X` zeuE#)xU4FY1`n(@23QM5714d^8AUIHOUQF(OGr$QKPb3<)a*V+n?bW$)S(kiECQ8w zI)?2^gZ^}UAubo?PPKk2R-tlLVY$*B(hBVRNShx#NaWIR?uU3*ekjAb`Q89en1iPh zqsAoAN)$C4u3g!dAst}w#;>cS!)$1$C(aB#=p&{#yBKi84`y#zNgUic|JO6#&NZhQ;>m3HGgz?BI8kT*&{n#8- zmPT6IRrtJq+II*`hbFB-?%8=wdxbxnf0lK?&etXlwTt%!>qH-gi}y1T6#nmV>0uGh zV`gT?lq-vlj_$Yn4)z5)2HSQ&${l5(!p?x!R3TD11X2;a+3_L5iXx9#sqmgO6H+vu z02c;5TD_6OKtJX(UOES%-2^gB8n@|2oxnxMp$eWq-S9nTSu0C*2CFrQv|nW;U-EKM zc?=@7Zgu;oT`0m1z^u49IFSkbZBD7i-l*3KNc3x!7C%I=!~DeOWg>BtY~+Dj`S_-9 zw}xIBwCO6UB8up+mVC0jrY{JyBs8;ng>H9WcnDX^%^oy9=;q=d`}M1 zmB%`7a!_m|%SZYaa0@XBv8RSn9o^!#8K2vYU-qn<&QiT5k38%`j?H?OXNY|T0xZgx z%kls6=(KXl<#ht-uf;*784<)vw{~h%+F8oa6nieUxD# z(B(5CwH14cF$f&ON2`X6q9O*E-x^-nJV#k@+8pu70xkLdIqr;YF~@xv_|buNI&)UH zNxdTjI^0JUc6mcQXPjN(zt|R(tu171Y}~pxF!1hh0gQWZ)EJy?U?6ZXU;P||hF;|u z=U9ZY6QpiRGs8vyTktqkoaoc2F)?IpF;%%}P$MwJ%cJP8=QEoaWn^UJ>ZR?sx)iP0 z3r#De$0b&)=<%TEIW1VWQvitg@z(dY&$|YOFO{9T;e;@=f1;la2`d|!FHjk2tEk{G zFf_y^CH-{0lBTW_u!RG4u%F_QWS806+6xdO@gL#6MXZ%AZsm$48wtM{je#a}p0pLa zXKxLtt`hKsJzXZK^iXdx5*Ium{uOdtuYM-P+?}tp18izvYW5lqG-~!7zLfi*uThnS zwO_s^!@sLTg$tIr~)61+5x!$wtIE zU?OAX|AJ9L>%77s5T5&ma7lAcdi*LH9b4+7H38gGs~^#4Buwsm+e0D&E3eq=mGE^U zGUe|$RIqM~7PF$XM~qk_=18bYU-p@`(<1>5&76UHhrSqynw$Ien>TMR-ObJO|6O); z%=euJ-yo!cmAm0Dqj@ld2h8m#`fVGahVckI))7I6{6qn*qL83bQH0rRO-7qFsx zo0j()UBvV7qjHuAiFsfAR%P=;M+B4&7w8-_svx^7ozT!R4+(!mvN}6ow zG@i;Z0|S>-J8s7sZq9a;+F;9~W#^`Q4|p}Ea#EpVV`?_Mq-E~kYn@DmF<_ZC=ltB&|Fi?Sv9IxzK{ZSHxrTE+hSyxtHw(8^M%!h)jlTl`>qLJsv`x|v5qxjxl zxo@ed2p}{xG&MCf2=J_-?>xv`TU(dh+fS+AzBw-kS-ttGX++uN-b3A$k*!N^cKqyM zLnW;Wj1ADcN#2(>6=PtJ2Yo2zy9}%-Up**gG%M&GoPV(rc>N$3)UKG_fPw;wj)}RN zsoN$hX>25J_Bxr#kf(H+C3;d0@=C(YI|xX-sB-zN0t>Hcr!DB zy$eD(lFtdoCLpF;Qvw5v&%0z$pi8HWMsnKxdX$4>>~YWnKlU_>Eui!hU&l(2s{=bI zK0f}~3K`+~U0?^qy;N9Sn=00bU?$WVt9v<+n#i@6mo!#0@{>+ad= zp){&+)O^bM9xL+Fc0!wYv8wE_Uv$(;*}bb9M8u$QnbD5BrTN~djjY?2K0FRH5$U`g z&~6}J`Y1~O1Y>1GUz5KawHXDl4klqYecRD!p`oF3nb@zF0BcMxcgF>QE~0?LokYdN zF*K+YIGz$G9EW6bh~rwV$gTK50_2f|NlK8R5zw~{z7Meqq-XAhe3ylMU% zXF9qun))=Q6HXK0#)N->fwme3#Yl> z7`E98;|QtTN|?aq_J&g&v~=T{Jzuw{IUIesU2dfWZmIlNZvhvbpaQO3y5X~D;Z}qC zIwqL zS;gs%UG-Ho>I_>wJ$1W}hIw0>hG) zkbv-pbV$d#KlR88J-z-v$GY3j$PXi9`HiuSkl*?>;Y~xkkZ9Jbq$F>@VbU1$VEqa4 zT8_cpb3yd4!|WSMD|+_RshlHIrJAL9jPLs~#E-s52zwo?^(9a>6c>N~kAfD&zv^O-1r>ONfB_iTrX)b)yzXqt* zq2NM@lh++B(Em`?ef%f%kKXl$c~Iw7o*SsPho9Z5Cxyc(wm1-6fM(o6tV*)*{GU^b zJj0QOdOl?e;Yhvvb%6qwKiI%d%94!s^z;O3YMwv6xrumJxXzYPFA*I+M4N}`<(mxm zJzB2+fvm7FK?Df2|1KlYZPS3EI33)SD|S zIy<+$C#dY~i6NC@M+jWmi<2Pf7Roq>!+gr(@KCK{eGYML%iKWn1S{jW9 zvunSl1()5v(_T&jLlj&OVs2Vrk?`a1A?CNpq6t%QkG`WT&a5zNq1WpfJL0WO!kNgQ zT)Q#JM`HSJh&TrN9~d__O8?@5)h>RLWjWd56?#i47av2>Ft0p5KJNJpMcH=bN_ma+ za4=YpW`(u2iGQ-Q+l$;aW#HtjR3%ZXh=z1;`;H4PvOJRj^RS#RD=Y_O0y~^_DKikb zFdZx#AJ5w*O;6C99E!P{nwcSe#Q*xAMG+Isl04w3+72USpvy_@cL71@YBV?x`X!q! zBTWvJyoZiHUT`lr@!6Hcoj4V;emlr0v+RPe?a8_jY*rJmA+`0>OoB2Y?6`S$a9D7H z#yq44yShsK`1i>co{Os&sg2P24N5$cO}{n!&zO|l`$w)i1*WRBlG3jxWdDM9_~#^jGAXe|@5H zP+uM zv~u;6wbnx;zNTgjDyEh?#b3%UZA){0K(>g1Ry`(Ez|bCxMdJR-eovd64ikL;{+7lb zH|HtXC^g{`93eWq(;bCZ{hh~JLq37hLx9K4%?(c&y_GU1dF<8bQbf$we6+ehUUoo}+ zm^F$s1_{Ip8XC^+?MGw2fA1~gCT?_(T8(XG7sD!b+=hRra2h3xkRHf@m5zFMIv9W& zJkIK32t}mh6;?C8WDSc5PvOSb0`PvU67H~NPV^}K%xzkt|^`3Kvjw79!=nF|Xa zfd}XdAsaj>7MZCC6*bsG?6tr7I3)7!A^RK;@CYR-Yd53;=VP2F-yH9J&!fLTlB?Og z_L)4!xHY);O_Na0n^LREr3%MwZSb@4<7w7cypf}ogk1bExBHuoALZ=6f7BT0zb9;* zs z5ZHfXTD$=VkRyG)_Kc0c-bZ$z6L$~Ohle{51bx3<^nZ)*%nbW`3ZO~koi}r> z3S0P(_}QmtuB@jKgZDGvYdA@u!4I+TVHPddtyHreu0rteke3#<;m=1u%j4aFb4$&U z)g{H=&%vajHrpGAiw8z?M6r95#W&3P0QMebG(}kcW}lA)+6!_|KsdsJ)C$q|RPN`+ zDcn`?w_X8+Efk<`%e^IpF|gfFL$>J{ZHXQ8UV&0b`9_9uFYE1TR2KH8JLB06moBd_ zUo3qkWuV)iw}G8@rU4GEvB=nzGNz_9PgfN|QF)_`atYKmukYqU z{fCAFP;b6voA5Tpm|DEGc@3w6jna-x*L+tpa)s0SJSSb_T6?QgJ0(|{)xSg zJ>`H*P@=_BTU(35))UneL!>DwDS3K*UF3PZXq#GMak|=3T~I*(v%DP3!^5M6>MMBJ z`!jdFikFuc6F%B6+|@YWd?eocIGtT0)Z*-@u2$3~+(h9fl@buh9T%r_MZ(2}3$#iK zapU4b8TlIwjL;^WgyowRp9Zqo*Lp73SD%Tm`@G5T_o(!0OgRIt4{oatREfjAkD4V= zH&pEZ`g#)FuT2g6RqFuQLiB?jJ~dcUfBkgk+`oMovjSeg<01>=G~bALAi*jz0q?lZ z&+L8dj5EshuM1QxEIBnboS#2`9@6xYR>dZfV}k(uQ&I@OPQU5t>A8J82^!s(KN?78 zMFEOhS{D8tJv_80G3kWNg9DV?Ua4e-STc)uXpYT1g7hv-*#FN5B zS;lU9gH|8Y8k_BcECO$uSN@9KAM%LSL`6rN)x`l`QTx&o1)Y3+=)1xYsob#)EHt!` zcZHo~PA!rS^RX|Ra=Y7PU%q~oe!h{zIvSLE zWQ1J_ZuDaJ-nn`0KC2e{NBiA$aymYkw7OqqYh7H^nql`QAn$D-c;U4n_9jGZ&&V$G zJN**R4*4XA_H)ZKXr6$aJXSqljz&OWE~}cb^w+QMWL6zD+nxR_a%^bA-*i4Zn=US1 zs&Zhit?o~k+1T0!>;0a|DF69WN=XTw-(lWD2p%nHgTUdQ15_8rvU-qf!>pBC?@Vxd zr3TPoG?4QP3BC+NC%UYc7P7B?rN0oOi|!M|xJJd?7=J8(uyWF0fU)8|Gd!E|UjIw9 zG{@Fzpa;(*%1V0Q1>7e--Udg|Y1ei_c1Kx-e~i5NFv8wqCW<3-y`{sF=#z2@&WEzK^l@P|0eZo7LCNy1pM}# z8YtkaCqd~Dj8F<1^2r20*Wd=+77-Z*h?6s}oOh-g2b3K|zReOMr@(AUlrO%2T9^Ho zZyYRi_kqbMU75re7Ac)<(xz%i&q3zO!ZPh|Z5|e_HQ5Zjx;5|$dV~MBdP{?AAvezs6H)?=S zIr>Ze9HSmA-!qDkPY8fI8B0qUfLXhP<&67r?zaw+LJx|a5q|uTNRdu z#zn=xH#w0paluV!@JRWVA1&abGjP#s`mx91s7?Uvmbd2MHp zzumRWZODfRPkK|5u0BBTs;6OQM{RVHMz>`@e}=Rg-I_~lXuOtHhO|tYVfUYbR-O9_ zRBl6WTAiSm7>fMf!j({EIAVNYdY#D;Qk=gZ$OwujB@jsfx0e&%HGg%VQ7BW9#H3FE5WQ zx->O~DB*Vz5fLF>s4Jxv_)_dwl?O75A(Lk`8|I8ggg8W#cu1w~0|X_bIbPhFXgpq;pV8ZWh(7#|;B zOO(Sx{V)q2H^CC;1m^J{&l~>!rkQR1PA(KwRJet89R&rH9jn(xvDRu5pyP9IDg}4* z35bTKrlmh&TiSwUMhfnqT9AN+Kv0C-gN=i$!5v+pq@$o@HN0+v>W!~|4 zLr)$TACDy?FJJRcKk%Zc^7|fwGpRm52gj%@EozilY)lOLBV{6AAslKzY&<#x4KP!& z1!N_Z!?E~8pH6=3H~d=q6&k8d488BV4wKb)_V6Gu$geP;f_!`Tri=(j{K1wLWMZK& ztXBR5d_S$@GoW`8GU1`XQDco@{H_f3dt+SmiPmRQawbR0ckkXE{@jW5NZ%+uJKM3? zxh11brQ2_BN0jxr(q%umM1bhlSg8a3_GDad|D98iH~3h^8Wpuny;SSgsuu(BXWr`7 zqWE1O;wm3J++8@kxz*e{srG7aY`__e1&YWIvW*#o~oK4+UnGtm0PfuG<2M6Od5_Z@iu&}U% zRGnN)Sc|#&`r*^lP!0)w7k|DRrQI%I41Xj-4NJQchs=aFmTzEyva+(6*x8G$(@6`U zd3o?apO=)BNC0U0$j`JOrZ>cC9U({8s>fo=H$;hsj71&^Ebnzd?FEH$fl8T?#03!A zlj!6z22bU(LvSzPAd!(M2F;$BxVX6d)>7P5QOluI_@BjN#ljic*1lhKc6MHhVYVqL zh+rtFaNUMY$3({8j(iRcB^LPf#@(qW4^EM7?v1Z-!B=0X>3w;E8Y}>=hT=tUeY-d+u6W@h^IFGBQRSBC({ z%My@1v_5@eDZAV>Mb(|vGXzFpeqJwe%^T#vH8eOFGYtdOuI}a&D68QK1E)SBD>HM) z-NlX%u8{XBH4+AK`(Qmi<@+qZW5M_8f7n~66Pre@_ktDn-K%l3| z{fr@^K;27666LIb{6Q+DW1i1$7e$Gi5*3xshBt?oR1Kdm>m~y6_3LXH*IT1-xyc$V zi+0Fa;@=U)9gVzM8pGOFj5wsJWY+f3zzsN%iuw)+VWC--3cczk zTQ#7p*&^8)0|`GtUUNzis2f&|%EjSZr-vCP1y`r{J2iaByy%G4ivIeEYl7ox>NVCh{2=H!Awyct1Ke@Vlf$jdWzAiJ}IX^?x?&S%>{9_dSg=r_Kn& z6=G7%l0R<6oeK+Opvs%k`IyQId5Iz0E}M3oFsWSdusmY>6u-`c=_hpc2O1yFh(y3d zupKX2nAB+6&|Zdtgd;RPowWXr_Z=XQYJ=Ch%AKN1HH$U6{Y6AXD$Qht7%s_Hb}*U5 z#j~Ni8|&-ewkODn>b8*Zn{TDhsb`*eF4gsdD8XgrW<8T+Lq#hs2W%MVq*0s|E|D=Y zJboC;gdH#2cs-$b+CsI}j|kmtwu2eA?ggilE~=gPubicrNFqXfK34@lgj^6LMH)Wf z`aOeBd}B0y-Cztn1zIent2xvlh}o(H;vTf7@aIpoPfM%L$=ceP`W@njux)DfL_j`w zIHXJc-&}z7jEr23Qs?#VC^3>p90hz%hk4$uvyDF8C5VfQ%fQ2fe`r{kE=3&hEYof2 z*hlMqr{ycc8R!ESROF6-fP;i8MaVrC89-?6x)39ZnB&@102)ia_06VL~lL&)HO8V z%fU1k+cB}Rh`)A2HcV$55V>+AhW+EI#7CIXR`KlI@7SOG>zsH3o1MeX=VlCxzA(Y9 z#oAoW=u}>BB~khy1F`rckinI$oE7T8cP|p zw6kHOZO6x`ERd!;Yt!gzYAn$`m=BF*caO)|JAhU+H2MrnQUCx<<=bqgmqQsZ!z(NEzuX zvzI;HW8N4m0W=q3ym^g{0)=k^XtKpzB>UI1e}kdLZYp+3!Sb3 zFTwtPn=BLIl*Sy21M78H-YTmw8SqxtE4+z- zKc!7D9#xZ)lG;xYk(uAOt?yyZ0ez6aEsbFUEF|xLL2j^KlbPqr=@V@vAl4KL7$_^g zOXLBB%1_s7MkiLnroct!EXGnBhi`}Wcyy*TnDBkUVt@8nSy*=O029^9rZ0UB;vyZ? zM>ECTME&qF@46?Rc(}Alh71x;Hk_0fi0v=^lHuTroSglZZp{wx2sw~bX=qxF>inSm8N z)TnI9$;oP^S^$B>wYaB`=Cr?;VW&M`n({Yi>-y7@$Owev3MeCUi>(EerPt{?xf`Af z_?k@BBZr7!w-===Wf+kL76b$YF9fu?Ss0S#fgPZot?2B`3A7q9XfoY^cT>uu9ucg) zWB$?NU>Fw88TaCrwqPYHZGZLgH+6i*Z0@N90>#oV1Hm&C4ckMi&$`v}#x?w6+!>s7zW>F-rRY0jHJk&m61>M+ko1 zm!^8j$Z5Rc=33by`!{aQQWhI*J9bPjAfLzF+?-i|I6_TNFB+KGnc_i|0NQUaGA5|3 z3;jBZk+%8{rLD8=x|9-&-&Gqy2=2u8Jt`ptA+;XTx9FB)E-$JgxwhWmW50&W>_{~n*=3uXBzkK`FtwfOw1Y`gAXiXe&_+YZ9 z2pQWlt-5;CEqiz|S`2m1tq%1WoBqVNv`2u)op9%xf^%XTnae@LZk8RCds!Is^%YBU zG`GlH0X8W^Q4`H-zLGN6fA8if5ZjqK4Pbt#d1cjrIOKCJ^){d?;km0^b(eLPiWOn~ zbs*PdH0~2>u4?`05P}H|f<8{Gulzq{UM`J+%f(}mOE@Be49-mic7Oc2^v6yto{Ui4 z0-uud<3{f?4i)JT9mzcoPnMtu5(41FPl52?N1U&s%o+!1yk>{@R++__#;5Z3qoaiA zc-HqEjQ+&>3ww8K&1P`_ymjxO?lJE8e(!Du$PoeH(9AdpDC+jk>7s-Aa2h2uv3(W)g>+mpdzSl29&4 zd5yg^Mh?g3gR;^!A5zZ|!e&Z)KAH40w9cioUQH5UqW(!1-4bb>9ZhnybgYEXp zi+t%nNGU+n(T(-2j2Ugk@fdQs!^L)lzICLj6UW$C%Eyo!yL(+a%4soi;(R}4EoHw< z3k+dZOtwFv_%G9J5K> z;vhwR#$Y{d%$w{3fbrw~c^?YJhB>#xE-_VT{8AYkj9P2z~fP+db#E`rDWd7^7wtv2 z%$sK>nh!WYiG>FIupabG>@UdrH#%d%sCQV;fR6;%Hj!;T;vUKrh;wMm8(%US4*l@3 z*?eniXVe|a5io-+SE!*5xC|)m?uO`5YJsAk-kcyC0@pTC(+U-=U$Am|){nsW2ETWr zg6+bEi^?gFbf4_=cSf-*Maq}vgC@7-X}?K+eP-&v+i^V%8)H;$fBSe|!xrc~&am=l zGq`={%KDg@nn%_CN>El}v#8-Csz~(Uhu>Y4J#1a-oT8$lxsieJ`*}-NL2(4*st}BY z!9}cD^o~p@SK4-01hn)>+`dQEd@jGy^6;UpNMjAb$ti!HUbUiBE5tBJW`$V!!nDju z8&~!PJkYa=O7CPp`}gwJIja>>$Qeq=@qco>fZ@M!%rej5pj; zCUU*iMv8$m_A#UMS5;Mwaqyp8#IO(!XYBkCP!Fah3gAC|EXSpa{J~g$(v}u-aMjm~ z5!UoHM_MHqFhcXa6r7}(6nO$8s)r#0F+|n)KPhA3vNReeWr*wHc{|aRoAbxA^n*SOW_NvM)c{o8MDM({GB@V7&u*HGkn*ejh7xu&Qx$?q$Zmln(KKq)e2ZpWA@ zU~hdBWdV<7GvDNYaA33n>Yk(*Rf=a?L1t_pfa-#K{}A(=BUc)jgY{6|#f<-fi+bpP zph#wAyDva+qQai4`)6+nKwGIfgTw9MS=Y90}CE z5H}!GF)2fI8KKd23#|^|3PAMog?@n404)oMQ5pPk4SOwwhO6IJ@intW_Byr0Wy<(u zbMVVxvBstQIh^i?8Q1*^uX9UKNgD%IVsgrpEKB&6nE+T>vus+8313vN>x<8joUMPx zIPB`66!0m`J3~=Hkew_)tgZ-bWYD+d zY)xG>+F;AF$9KWlX&-^bpXrcd~JVQ;m1j%`qk9H%_ zzJH+~Nz?)Z#YAVk3=A?S41Bw4{bvvY?zU3#0r3}{p|Z2K1_$~GD2)|F-(TE#&kejo zQ;C^lKH^PNPw)H2RmAbW~I; z9a^sE7@?sU9rq_r?E~PIo_LA{5XcF7_W}FjUzK^rKi+QtpJip7!dqbapI?+C=^l~8 z^UI_$Q-g7BoS5J&#&eqV)>yDZzJA3+3Lil}E$lhM`6&KsaCCI^2fsu5`R&=pFAPA( zd;dK@Ql?%wjZ4=Q?9XLh^ahJ{=4W+wKUZ0> zr4AlhckO>lOfHGcs3!u`^-57uF2>a8-@nW}I(_OSRiKZ7c+cKlM@L5!I=iY`!0Wrn zLhQ7*GgRx5%v=WLG-^7qIA}SK+U{y}Bt!lUxq!sM&Vwty81(bm;ssA>rg1#&)tPlt zT8WI+wh<^NpOiseeH_$;*{4NHGqkhx##GDg009JfH;Lr*hYZx7A0+m zGQC_l?eyuO9Rwx`mOPQlZ<@;WGT)GRUbov=`ph3 z`_nlckHdU9GsbZ7@48ph+FO|ka9r6>j*n^{ZDCndn+NeT^~fO^057vH4z#gx%-`|z zZOpAX2wr7yKkDaxhbw{!!4u-$BIdM*o7dJ^TNfn%p+aEuc44p-E7C(V7FIyNC5vv$ zzW<~mtKe_ueWCN=!~SE2@4M-YE3o~X1d#c*;D3Rz)I;O9C+~m%d)dqG@-7D$x5lRH z23s?*I|X$kuq#a`jna(yx|AP22wSZ{7_qWtlRN%WJ%-4U@Z{{}BIRfsw+ahw-_ ze0<4IDy=>j4EB69MQ4dH68$SWz{pwRz7^+mL5}qWC$9CXz8qp6Bx|_VrX0IBM3zTK zze9R(y8Z39;AA`gEup8+A2?r-#Md`**TS8iULxdF`P`@MeuF!9WN$394NH{|ngTcE zQAz~;A-Catj*iUlV1^eezt6NX^=XOPl2ZThA^c|95BsF$B7SK&f;yX*AYF6bc$$%L zsMD0JLEiD9#(ES8;{`v}5}M;C2wqgluB6?mmFbuxf_l=p+OtH}jGGXP?l={*#IlpI zh|)YH>MLOj8vpuNyQV@5jHS0XV*%UxKlkPQI>kSpoiVv;==>l>#nQ-jk=m@DAcL4s z1%YjUK=i?CFKixG15a%vwkMDIn``49Hg3^-_DxRWowVL$8Bzt2(E`Q+xvOQyCd;>= z)AKz*$**L8*XlEIE`LIpawH zL`_38zW7tFw4`x30}igewfB9k?Qw2RA?5VVv<=5fLQy@|qTS)9N*B4xk)c|HM^0fY zIv*Rp;TkkI z-FIp!vVE!Y9XojHt^^Kau?9H_8LQuU74r8IkO96`RABr2*Y;HdX((c1VkKo|U8Tm{ zwmjUtxi!`oyFS*V+qq3mq!-(4IjIrAMh@h$3~eW~9$^yf?yO^R_yqC##f8Z~sw~?5 zs%@cF<*l#n`eQ84WMGlA`FU)yKyp&lF+W)d{ugHC6hgr2k;9aKBy+3P4vdQ7`V-C| zxU{qs|IZofW-kZF&UHyz+1Y8K6Y&{SZ)`AZqVPB`g=7OR^6s{?uMas8Zr;oP(?Pk3 z=YU40Xhwt|pX`gVXXfG{NY)w-7I}X`T*RFrN~Wm)+Oa62*47(un75Qet`F9VccW0( zLKh}BY5MBcOqhN;R`dQvn2IPZ_dy6b4Xqy3UvQ?vm_rX)J6)5pQeTJU_n(2M*|F1Y z3xdHEqx2g7%Rv0r2)Q%u8j?oEY$7qS3X?qY#8oJAUdBr?&y3S$fPR1 zFA)fH4gmcL#IzD$A%$ryGz7)1JZuZ%6BxpQ>{p)n^77>Y^%2)&0elk~0*`=jRS$Mr zhL=<+ftDgnd;BIAd`r$&rvnGl{>eY}j~UI@;Y3DS2|4`UFYm+e0FvseLW<#|Yd%S_ zRSSs%Vk8ii_rXoiefm4u;x$&c@WZ8MqOXjq$7k0ry1FD#KJN;d$Q#$8y{>lW#(lTe zvlZV1wtqmP;$@y_d2d&$SQKPVPBFM!{W36e^3vp;h>Lhx*)vpc{?{C~Ne}M5gIQ(O;^eXE*O{R#C1|c#2yWy;R`X=XBtVThU!IEpl zB%<%iQWGP8EPxMwo7?aX?L|i~prDe30AH6aF*~Xsr;(JUh<%3}P44dQfJn`TyZOaG zzMpfjfbZeGA6oYSKQMCU`+N6GCg1eCZghzRTLvJRgGEcni)fbq!bQY44o+9IxXW5J z@#U8NpRT%wOD3O|TYR(}D8kOG2bnmUW5?F2Zug#{#gljU{V%U~rOY7vUZ^-WH0f0g zr&@@`%U5twFOiL8QdV8ueW(TM`Eh>(h)xdy{)v7XcKEqn=FDcKs2lQ{1@V!ENowR1 z?;=CpUFpe@wg)2-&4f1p>Hu?~%+Awuz^R067Jb)<@C`ZM-ll>8IlvoEaBZvkfGA>= zSbxI3YXME-8*h1-b`qx|Ku1`1ds<6i?zr_wy9tF#dXhz7zc!!*9{qaB`Zv%pyMp~U z>p$JdFD|C_g`SqOrOB+&14QnHo4wq9>ggh@F`@BrQ%aTetrmZoy&T2Yh2x#lvy`PJ z8<7Z$?_ObQVq&7nw6!s{sHkDee||cRoz%5qz3xl|nBcp2deL8!5;_)o2tK2=Ndwdi zY3QC%1v#tZbPe4Zyv_}!fn8nGfJ%s2SXelY)ZlmH2>3?%Q0TJFJ-Au~$iYw* zIYSi9t{_v#NW0HY&4`f!0`I)tQ?B~g*`-cwDVKi3=H96HIHdb=hldWtTkFy3^@P01 zmU%4(Vd|iPL2VFsuC1LUBtsZ@3=Qwp!UTguh(Y^jWb7i09WED7&ms^t@cNU{NFOFW zKhpiXB__6H;8SS5XjI|HXTh6zDcEk{h>gI7Ocns-#rP%y{LhnFB#qQ9Un51kJg?u~ z^_=j9|FPW3y%9A8`mV$29N<*yYisi^OG}H3Lq&1X(IG(og2x4eIHoiYH@Ejf+mu$I zkSlUi+|J=vPg-*h@q$q!8pgWa!L>9uHL7T5=MxJ8gbU1K3EExPP9H)YvaQZ6Ac_W} z=^8*#-p1ZuW_?KyKLMpLjmx~m1?-rMMuE}+%0!*zmkT&ug#!{b*G^8bflW0dj_$t! z)r{f$_QfndhRafe_bQ@(gv@R`K)mQ9+1?iY#=-1VTFoa$Eu|$85z&KuGupocNle{W zFRw1_Q#uI}VFB$XC!H89l*$Ep9Fdx-W{0arGETXQ-~J^XtBC1boabNkw!p}Xr<9Gr zK6P3_0YvbB1xiE3Md59^j`a=;z5hbRk_Ss)QBd?ND@ep2yGhC;V-*#dNy;O=H#EX1 zfJf)%=G?g<&1`KU9_(@}Wdl3*PrSyXfTDb=gG+9E^i24HZrCv5NDvtG(F+>!^b8dp zafB%`%Bq2!btab*C$i{X&)wgGZE6kU!x3TEW4}wF6~%)LnEH#0i#S&+RJs1cWVe>P zY9jL=BYd@mrTm+m`v&o}G=-av>*)@MT--4(U+tfCu`Vh(HQL)LsHh~L={}e_&dz)A z7#f^L$szP_eN0RWRwg3K6m~%YaiY$zwEt^HUjtF$CA79=Dr!zg(;YG9s)fEwlH z^J~hn9=kegFW?3!87?C{c1rszsb#Re+!!J^*NVmRuE!BkC$71h%21G$N zaRb(4Cf?rOIh8rhU`V2baVxJqCi8xqc&Bw6Y23>1e~5R_zvTShBf!Hg=B2N?QAuo2 z-(r;Xcx30ELUm&@&+x|n+4_w_fMk~WssLe-1eY^45Qh4-{6SlrU@9)|(i2F7*Uio+ z;v*$-m*uQz6p&z#cn*2hKQz=0Hzb>$d~aOw-ymjDLR^zO2R` zEYOCm^>n@PO@tlm5oYJ)>w1O&xmo-p7xevZ6Z>F9bMm$H_=-x#mE#2*VR0-cDaqO2 z2}N8jn;f1+149tRR_r#R8)t|_R7Nd;CPADl8%c%dgIHT6tPFli(~V(cc!wxgax(Vm z{Fu=QXdK7Oaz6unOF|RfFLG_IhfocrzqV^ND}N7Jt_kvxn4h$#4X7|?f?G$ z>GN#-l99n$HdQCC3Fg1v4NGEEz9{|m6JGzqbo*X5PL7a(;7!@+XkVr_X~9r`2+&a< zk4}QSDn!Czt$tPY^(0@pxyP!SFpD)b;~XQpr{$!W2ZZ@r@h0$`qMLD9t##!A6NpHfMDid~TGg=@jENff?fryV^{x3j9nUc7& z5(a@56=+_V+1m$GLOKACSA|XOAeyn9{XH>#gM$I55{k#e_as%>tAKy~v8^8`s8Hsi z=qEu{L>26c9aqV-l@3mT-T()2@T*znvEek6^Ex0R+{`~drf6xR4>OWqT8uvb>F0f! zR7I$Q0xCCZjV3#3K?050@Cu0faB6W&OiD_&IIXX5m6R!8 z&b#2hpw{(u8jz6*k!Pshf~5fnE4AUxaAxG~SL*vaSTym`2@PwYM3oePc~E{}g!?{BU+tx!mYuS6FeFvDjdoRY8g zZs`ZO%T^kniTiDM6z?zs`yMH&V{W$2&d+r#@l>fE@1|)QV>ISO6T$#bFRz@+N^IkG@Y#LW$DEwFv$L}x;Y!)qIMbxI!m+5d zR0#xgvSU0=IbV9nO+dJ16xFBVKX` zV`H|QTne(p#IKy3TyY`L=&~B>@qC@m*+F~`zFOW|o=C=n*xX+a-k%;u)DYpJ$?zVX zjWfD=c~CV`bjZxmfwsqxvU=)4;H!4{ z3g?B~+=*7<=?B@hZg!hhHS4D%%{K)64rn#|!yPxuy%xbecjiGmW&u81=o=bz#Bzod z7| zi`3I?y~Xeg&;Y?fUdLT^?HX9JntRdR@D-rXym0BIo!P2fj1?DKEX~=S>K{NGU=<`I zPKS+|=tl*)i%b0Yu`Fdvl0kuI%WDJ%X+Dem5ZB~f3(u}UL*sI&7Hw!K!vD~enRDc- zpyOO`rrBAO*}w+Nqfv+B<9rOe^lQbY(IOXS=M*<4>|5f`TcM%^w&(p?!?7eX2ZX@nRK06Eca2n4cR z<;3gj`p5_r1W4EUHUy6w8dCcVmu2F0cp6{sS1_Y*Nw_JIJ?gb;;{4LxYt@i7VCPcwzoekbCb`*?W_4XHP(c>G31{|`)v=e6pE=uFb5vW z0Qv;{@8qINOl8g9{(a?Hh8*R2X@b{rvBHb&dyih4Z%MX>6PqnqQp26Z^ zFuIP+9g;n^XTn$n4!NVFGYSQo8XC{l)d?4c^7wv(HuX?kd}RT3t2a6p@*ido9>J%q z$KF$VmR`Qy?@$4+=`Qn!&&joeZ)MyfyhyK*tuvlXcr@AH0bwZK@L>o$JNgnFJ3Fvt zH@Eook=5QGCvR9+09%jps+{geH+c@bonM02Za_8V70NjY`UUiNuBp1S+{Wpr*cG zVw*28-53S^0vCJwigjGCwi&~5hINnSDYAsIHd#%}P1>YtFqMB!_(lz6E5yTMn*TM8c=AYLP+g?6r;e=T9hh>s^>mGN>u9>wbQ1&03Ye|hm6xe+X27KUZ z$BO5+iTX!A4TpzUzNt*f@KD$ImR(&l3WD{Gl~Z)6<3YC)xM)wm_ZiSIxQCSR(O&dtvsBTs4ST>pWzqQ-|agIMZL#PR;s4`5VwwE_ZoV#Wj|Gx!|JS8HfW zE903uT8SlQ>7&CRS5$cG!z|rMQ$07(uky(Kb#6hUtRBA6iTmZH^(hGa#m86Y#Sd1@ z5e;0U5}w{WUDm44NUwZ3KjR6mss*1u%^BE|1NAK&0grn@Lj#fy@%pS@Ne9wL82#0| zx>T`hb!CLsgf$JPkpM-iI=Fz^iCfRAIC;hU5k;vj+g=zV-)#FvdHF!Cy;D1!DR$j* zuk3r?kJs1#-W^OD@DNVW5@!p;qh7adD9u>|{N=6tDYKc9K2~5X4-K$VB2u!nWF=A# zUsJJqBt%Qd@#)uG0FYf+2vJf}I`uKcWmx-QF3(CT(bMa0fgk_iIAUt>H7qSExkd!Z zrw1H534r5R9)>u&JgLyrWobS=NdTbo=4<>Mj`YrDI7&Vy8*(690~3IzY8t9OMGugE z?O|%j{>Gyf4Xq{1*1;|u)`(+77^FhgLf|-$x9qU*d825yJKa`ezyE6>7=w4@=4K>8 zCGt{_5%~4%7m0*t;pE2J_IA|jsztM%Wqj^iB_%8a1B2y*pMiIMddELNm?Tu9t%1#o z?NTwXU0zhw%Em@PpsNx+YjQJ{@lub$i8Ke>oPn;Zi2M`f4oRN{%e@ z^XG3y8JtEuOEEQwyHOXdGLfK|*N(TJ#$TVb3Iqze z?y&LOrHbs=G|wSQg8eLJi2uANqZK=*e@7={b8r2&W9W2T4*L>V!$rT1sf2(udqprX z_n$m9{0+mPfaNcjK9o!mi@J{NG=YICIpCGnhoX0g)$T$LeKSM4PbViuQ_E&U4Dpye z)KN}+R;$E@IC)O(I(1J*)3+DLPZkd`s~0rD|mY%}g_;h%lU zgWgDzsEZ=TpDa~YR#p?f#UaR^23bElr17efye(PYq_!sl=mIPNBnuX^_5N04X3kqP zbly^V6s1IBZ~udS;63ENP4N%)3fE|R9ZGkJ+Xt!oU- zD_@IXIxO93-a4^<{%bTW_IG%Pj7$(0zGVv~e1Il=Yf3!c>udETNuRo&mez-RN*p^o zPNmIoZsX!iYq0En#up#B{lWM3Pt~`;Y;<8E2My3rW((NDjxoRqRBRzjEUZSla`|e8 zv`s!@IgvmGoiL`<^g->$%#XKiXP_i`W2 zc|wea*+m2s84c|(4i-7Mxu5CiJa`^MJIT5alK-|gsH`&om#LM<%#a9zK3A68Khy<) zEGkhqM@OD7iHQoioKwcX1TU6o=WK4E-?v_xX(z9Dp>I`+qlk7tlbwfMGLCk46oWxd zBK(|BFS)ItH9>`WmE^`#Jo{BRpD=Ukj$R zNf7kmEx4`KhMNr@r@V)N?@Qk-9#$uiT*gHaqi{Az^+rmQy%{D`0qmvP0e1A%2DCI{u1E7 zwA=MdY(ZWnqT#k7D}EP-;loK610V{McTJ}^f&&Y()B8?KEev4Jl9`r3Nokh@&>JBe zaxemr@u8NJ+TU!scFg7>+9+tiikWAu&iFopKnB- zo#fo*V*C1s(%eGK<@lsqKl`n$>kfUtM94OU!cRsFCThMv{H>EpnUmP^{^||G=$*@9 zfaRRnp%|)};1hF59RtP}=DCm6c8}DOA6Lw&yw>I{S}jqfHBq$Cp(?UY|50VPw7xD_ z#5WM_wXOH1(C)i>BuoB&lM-%`qM`_4b=q`t7q(!^7qksc;MwO(%Nrb7|CI$dpO(tQ zk&NM^L)M(ln}rkqpa@UIMG)ff_)?$s{jpnyMA+^~>uO&GHZmaXmcGCQnGrWTM$9L3 zclE{>XW|xzXf-LC%JYId_~lm$Vsp;ZDtlvP<%pdm?cwuE#5LtST+9t!r&#->+E0p6 zEK{S?`>!k-?kMdmt>);M&wn=04}23A8$EE;T{1%uq8XE0n@pl3FS9Ic)`Nz~;A_1> zk=^-`N4_5YB)MagF{Gj?1mT0_d zlZZ~Vg5P#Cu{Z45^smAv-X2a&|)S$GL0s zX2!~&av^SMcwl*x6+Sn&Sn~5HFZ*hzvJ7Qh*@3n7^V2-tfGcTdA&DS7Kuwi#D~(~E zz-Y4ET=H?#(gR!Gi+#j`#z-|En{Wz|@`ktj&p$z09@~Y(3q<_XXveK&wTxy|!6VD{ zxR~Uy@-E}x{!gZEe=RvH|4RKs8;TCsRQL+=5HKN^F1`FV^|8 zHx!^V1)J18&3dUp&_wibGtBqpL**10=cp-qG(UGk%F2CzTxp*cdGj&LzAwll)qN?O zPsG{A(9e;?#J#LO5~ZL|;FK zcSj=fca^sTIUe5~3ac#njPIB_vLB}0sNU|9F{e0us+{GTA#&jSB+9P#ELwoTZ=;e+ zW^X_|JY*h-#sF-->Mqm3+7U8`qWiSS!%MvZ9@oG?{F*?%b+v#R8IzEZb~O4bQ4iuK zIRDe`&1@&8d1KRv^BUQrn*O%|K%3||D}6+VFb6L!X)O5=09BCw=vR?h$Fz>By4*bW zYi_tbxlIiAx(nB7x4AW!Vv!hOyTAE1iyG#$nKy0b&f=kCX<;Q%2;>CtgDWd!ch}IS zUQ6*s095g>rT2sfVsWs{Hs8_mZ9rEcAqil167(@XAZbu`5J#b*y><$<9uHRDfYoQg zsbFTI?TJoKs>h?m$umWCzFkJ0JJ|M_xO-`hzkaCAEe!brHt%^{v}l5lxSda>rrTue zA@g@_bmiu*#}__E8-lw_lTl0^x;Z#GKq_ntrPb@-oJnB@dkm@``-&Xu?mz3lD>^AS z?)8!F=-;q0Mrn$Ot_{pq#_j3gFkNb%ml;CQL-@P2%Gn2^`M1)h=VJtF0+_byiMn); z5bZeB#*x|E>ArMXoKbPerkhHdZ)9-C1iQC+l)}fa9M}u$Y%x_)iQixuE^vFG=yDSW zZgOWK`LFC?Y4idLitghBOURR+Um{qRxu zw3xnH@YLb1y2RFM9vb!jFLiK~GD^adG-_4E( zT`Fx|AN*bs3ug*H8lIs)53oJ(31sW(5eMZ|o~-ZwP$nh#LgMd0`!s$tXR2%1hICsOdAVR2Ors{7ADMbCQ@~l#dBv zUqBwSSS)zn!dkn-Y*Px5`LrlgPm`8J8X)x`y!Yjq5toz2e+z{-UUhEVtL+v zPLR-<_bMRS!9}DD>-eyNwwe|4ur&d4Kkb6=%40J#g~jA~-k9HnUjr; zjX~&L^z6R(q#${t(H#O){x4&HF?DHasV(SMad0Sp<#W3Ax|>Wd({CHBFce^Xoa50f zKrc^n85NH)a6VN6Ru~HC|7S`O@f4$XmB6ZqdIOY*LSu`Y0Px0^mUka)i$U{~tCb@akI4CsYP#`KV$y1B%GFg?! z$jGk#8(+FNDP~SMvs_Uw`Q-$sF{8?YZo>@;SWWcm)KF8~(JD)v{hL|aQg%ov$=8+Z zt1B|f|0-zFd)xk{a^F^a$wS@D$S>N~o)wt#jy#xXT##5+9i1>e{V&YV1Ec}% Date: Sun, 13 Aug 2017 09:49:43 -0500 Subject: [PATCH 092/113] Automatic changelog generation for PR #2346 [ci skip] --- html/changelogs/AutoChangeLog-pr-2346.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2346.yml diff --git a/html/changelogs/AutoChangeLog-pr-2346.yml b/html/changelogs/AutoChangeLog-pr-2346.yml new file mode 100644 index 0000000000..c42300a173 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2346.yml @@ -0,0 +1,4 @@ +author: "More Robust Than You" +delete-after: True +changes: + - tweak: "The wiki button now asks what page you want to be taken to" From be46c419e263d8e1167f279540b6ef43440e6a24 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 09:51:47 -0500 Subject: [PATCH 093/113] Automatic changelog generation for PR #2350 [ci skip] --- html/changelogs/AutoChangeLog-pr-2350.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2350.yml diff --git a/html/changelogs/AutoChangeLog-pr-2350.yml b/html/changelogs/AutoChangeLog-pr-2350.yml new file mode 100644 index 0000000000..07e0f51b62 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2350.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - bugfix: "Minebots no longer lack icons for their action buttons." From 6d72705ff593034e0b79db42b82b3504591f10f1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 09:53:12 -0500 Subject: [PATCH 094/113] Automatic changelog generation for PR #2356 [ci skip] --- html/changelogs/AutoChangeLog-pr-2356.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2356.yml diff --git a/html/changelogs/AutoChangeLog-pr-2356.yml b/html/changelogs/AutoChangeLog-pr-2356.yml new file mode 100644 index 0000000000..218da24865 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2356.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - imageadd: "Adds icon_states to the unused and used Eldritch whetstones. Sprites by Fury McFlurry." From 0e7b9a008e560c106df44d117b6d8baae4282d81 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 13 Aug 2017 17:54:27 -0500 Subject: [PATCH 095/113] Ports a slightly edited version of Eris APC sprites --- apc_repair.dmi | Bin 0 -> 627 bytes code/modules/power/apc.dm | 4 ++-- icons/obj/power.dmi | Bin 35764 -> 36328 bytes icons/obj/wallframe.dmi | Bin 979 -> 1059 bytes power.dmi | Bin 0 -> 1782 bytes 5 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 apc_repair.dmi create mode 100644 power.dmi diff --git a/apc_repair.dmi b/apc_repair.dmi new file mode 100644 index 0000000000000000000000000000000000000000..6e861eef61bfd13f6194a65b44410560672ced2d GIT binary patch literal 627 zcmV-(0*w8MP)W=qlarZKQ&SHQ4=*k*R##RR7Z)QVBPb{+LPA1gV`FO= z7O5s9z`(#;NDpmN3fW0U7CmbtPpKQON3H+>00DGTPE!Ct=GbNc0047(R9JLGWpiV4 zX>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33t zGfE(w;*!LYR3K9+u^`z%iHkEOv#1!zHRR$$p}NoJ^{cH6O_)f6U<~2K=bxUlL$Eel1ct*hW2ibGZ-n*6F>S@Q^13?1*F)Z|?1)TFzPm-tXD?LyCJ?H#CNCJBP7X_vH zUlf$)e~B>vN5al^yTHsSH#2GkQr^O5l(M!?@ENup3F20ppp8@~u;cNzI)RNCCGYp` zf+br8Vg7%)@>O#)2;BVtc3&@5bJMebZbEz#D-MkU9;g>oeYTt&f**u=9A4~N-h%)D N002ovPDHLkV1k1O4M+e0 literal 0 HcmV?d00001 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index e36c639eb9..aec4bb82ea 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -120,8 +120,8 @@ if(auto_name) name = "\improper [get_area(src)] APC" - pixel_x = (src.tdir & 3)? 0 : (src.tdir == 4 ? 24 : -24) - pixel_y = (src.tdir & 3)? (src.tdir ==1 ? 24 : -24) : 0 + pixel_x = (src.tdir & 3)? 0 : (src.tdir == 4 ? 24 : -25) + pixel_y = (src.tdir & 3)? (src.tdir ==1 ? 23 : -24) : 0 if (building) area = get_area(src) opened = 1 diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index f3b2233283db7530bc69bff95f26986dd5ff4dfa..6b2ae5535153f3404d30a653b05a81f6027872f7 100644 GIT binary patch literal 36328 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 V<(D5j#Q7P3z|+;wWt~$(696vg+pz!u literal 35764 zcmb@tby!qy*EYOo=mtUQMnOb2|SOrg<`0E&W%h`BYc{;dzJGi+5fL~^J+IQDkLDKM{18u?`4?T+~YO~Cq z^e;#yzgC+6sBt8De($N?*6NOLRmg4CM^_6LvXpEPsiZc!#IJz^t&&0TV4HY>q2CeY zAs&*mHM1EUMzMu&nP+Q!(#yqMX86_N;XL`aMlWsDX5~GS%NeNgzu9mYwcs^OjqQ1r zwF~YltNX78yU!rIMh-veR{)rsRc$x^Oj2^gf}rF7yy(9{t7w`LZSp~aRE$(*m=%Iv zS3$h~vj2kV#CGezxsP#`yNGo%2m^+31X?FBTGUZ*9kvlh3>m z;kS57L`_;^A2Nx7(u@z|mj`IdxF8>?zkxblRD3^MI2O;uT?rW5Yd^EHjZ%E>7vW;*qzS%Z%r?_)#T=4tXs1aPTOM57#??VWos3@Q8s!gQ^dL5_l z@WaV==?n69+Y1%5=q?YVw>0$vBGhc)e2$Vz{{qp z43LCT`ra2*<4)LpBdk>So&M9sBI#(XJ5(;HaS0QJgal|7q}gWA6nrILrd zhTcpy`~D09vQ+(Vr?d~xCU~YJJc&ppR#hrbMvtlP-MHZt!gxWfy6xew+jnSyC;6dO zIjw+Lk1H;a-!qX`B;z(xT7?o`WPAxiX*H`%ayDnRxm5PJBjZYm)^b*II|7KmB+>$R0|0m0CvU>k^5;aoVzAa&z2Vum7Kh8WqU)tC#Ucs2`Db`WK~b0jI8JC?arx&z9%_ z@T*)1>oq{mxJ16^@JcVYprBj-x zldNj!1=XM?n!MI+P2}@eO=$8~xDlGW$xvB_@UC9rvvkYSxx>|d$??jYtVyk>deV~P z0-1Ylg3N%S9$P;V%YsP9(R&Kn)B4Tx=Q-$c?l<(pwx1;0toxGMw|rl1>d0BwHwrvm zHGF`Wd1DV}-=NLJ*LQom0a13`ILv*`ok+{&13fJLV54_qVMOq z+ev$l?;Y3X!=)L;gSD(3#|vL>278hElbyQc5mCkrWUvuE##s2VMllqK39g`*Mw=SnkxCZI68imLMY)9HkHvwO;4SEupAZOAy|Z&WR1=% zG;CEgksB$*zifljnw4c@M-&f+^cOz2UL8omd;`aWPG40De8meXEJ6JUYi*b>9LnD8 zC6&7J%bBr_KFxP+=w`$S#q+M^699{s5XpPdnbNrgJ(mIEk4-mPFRP?m%OnobiuLEq zZp(>l3!MYBaO$&l?X-BzN(cqwX~hSRJ zz0JpwVmq{tzUf<4{fZb?gI5`7|Mi5I>jhgCI0|vcre^kAPrP|V(0^ZUNv)M(BFO2t zr~0<@P5or{nrOR>8Tu_hwNngw*;0Jh^XCfAp*F)yA7*XmN6~VjUQJV)&$M> z&G&epDls%agHZb30{bK>a}vqsP3@6a=WKUnbt6Lw(-6tx=|J1`i|?w0KO4 z9#d>vZ@6-*Yzdc)R{#FTM|OYCYX}1PpKKEWbdR0W*3kHW`&77~I+l_sx<$nqna_d7^ZDmfM7GZs}}}jTYEcMUv6qkGgD-(xy8Q=pNBVRubGgdO$!0yJWSZ9y(pZ;f)Vb}gh2E2 z!_{x8mM9gZMzL8SQu-9i7D|~RXKhG?W1nDi_jf=}sgeX2N5AKGK+3z8)4K4%MOVcC z+->~Zcv&!smFkw;cQfL^Z8lbf8S?yb}8Kc4F>?U3!hc%x`K;FuX_iHdQ|4$^bpaoaw~cb zOPK?&5Z(FHwFdu_6L{5deS4xIv-7{w=a*hx8HaV$+1Ri{EX|)I-#-A*9z!pzm2FmI zP1Gpi!^`pD&oe$7`D=If!U&yBC4A{~tB4^~8>ZMUZW-R@s<-?(yt{f$L$O^rbV<5( za@jc6KQ0d8Yafn{?Gk{=#6pLu_HS66(JtqOdVN_nqRHK7g7lIDfU(bnt{>=jZkT3# z_y7Qjgp@C9Kfrh_&5+cVd9LkZbN4+L9hf18dQm;fKWxsVZ*Ah2bIu^f`l;&hKL zqltZ&(7E46=z}x4w5#qkv6ekZCAwp6c=r}Jd+HLLY7^g_em6z0Oc!w+hd7>kmu%^A z!;}6Bu6^~5gB0s^C{N^1{U?Hkt%Y;H@Y3aWPG)Ef6T&;w2u?#*z!C$gN{6~`91iG>y1LloJb)i-b?t=ernLDWU zPy`~yab|*g>WxH>s*OeI&aE%IJzUu47@Z#dyQy_!fp$?}j3XzeO;qY>uxvCX;Xf_Q zQbS7|`dhYAf4jc#cR}_a;3arD)4|sVr}}C}0jm$W-`DA;FFZ%(iQgo}Raso(kp)?Q zc1x9phdxvt9 zBc|>G(p66NVFy#GQw0Rh*ofhegnCn=%8E20)WAi!5gk0})qTmu+`2M(sRTM`F}%!%1<@`r5;6TNd938gvO(k|cxCaCs*5hd7sW`B%D zetC!>^b)|o$7C{VedA8NBDIzTmS%$x=7THY1!YMp2=A`Z5>eG_R>2{Zoo&Exmlkf* zxMSf-r8Zo2V|ziLiFPVr376@-=w6l{Ctud&&nSHdU|`tv{XA`ga+xirqi3f z-6&I0$WIaMUFG8EpKdzctQ-Y8h6j7@16SND7otL!Xs0_rDDI+l-ppS_tt_K;)B$av zZx~gBk&&)w-^`rfB6)BlcgyA?%pIDP^(7#PT>*OB;@n254y*BcSt-z^glJ9Op?#sk z-uI+wiq?_~hU`BfS;FNKw>t$pLwx#CQ~r~wY3K2)pYQK}D_oi%ae36izXr&#n~yvV z7z0uT%(CZYV1*D@j>??L$iEvOMYE4bTbxTB5JvMXkN$JcCqQDoAYfYW2&hwMoM;Xf z^BzkubQ&Fh@_8`p<5od9LD^AxmJ6zh=z$H+&Ge^Aa zackbv5VIa5a(I7@e2H-V?!!)j|Ikxcf@lAqX{yFIoI4;|MT(Fb*Q&f#i0GA)&;4N~ z{30ri8~}qBEdV_Kvx?%WPi^C)EH3@ejLJ{EasNfg@f5sxVoIvet&NTJv9Y=de^7Bu zkT?hkk21tDCGJWA$Z3O!%}v|h(|-+^hL`;j*|6WYBh`(6B9-g!-@;OWjHLvNuk&$q zMDpMLw(rh2)tfDdrlU7E_EnEYG#jyXXO}_C11}BJ_XE<0kOG4*3fM-8by8ld!*++YfJhAjZwAN@ ze}+X6bdtmT2#5M;ZN5@M`r_((VztRxBqB!y+J3F=;f#jq-}Uoje;>`icy#(&WY)%J z>DFSyUVq?KaIVNzqF%1I-uGY%OX934>qh%{`b21Pg)7V|p8>B}u7Hy}mu(8-=QLLz zDzN!xEk|G)?iUvBy`&35-m4=#DJ;{0ZGffQX$Q+g#FLdW-M8V(`O1M;@}YvCUYb#n zwCF=WoZsB*E?v+JkST^Fx+mwW690ryhGQ4MhbRw?Q0`ONb9?WUjm6B+J=tc^n zo2#;fNWlAR@B2vf$emjJXllBHni<`E~*B<0H&4gx`oI zgKgI`Y)S-#exM@aZjCxWMQ@d0?^HNMCcD6_>d7Z2$P)gD$tS9Qx$^zUk4qD!fhCz* zeGE99tga|E;)mwfp|!Q`rwNx`p1;J zOJN`W0mmIFT9ZZB`CmSLuR{_wKt!cgZ|}JOFL?9_*#KL5J(tYSEHA^B>SBQR-SLVq zR^k9kU;M8Z_3OB2$#L!@XGL3>0E=yciWdcuJP58z{o@|iJp2jsUegKPlV$Cl5^Q0B znrCclZ;pFb^mD+&4QPl5{y;&DW6MOi&NtGJ;-bf2oBZz($KMD`VlgdVEc!y`03D!r zHy0fH7o1vM;&l+EN&ZX&!4EL+V-OzA49g8WmR0Zsp&^^9cNqp(LWIH z7HT3n4Cp<$HzFRGcqjuS7rj0W7puuV$&wFV`~p$U|Cf@d&TKbqJ0T65EN&5Ew9JX z62aqUvxr(tD&Rb}Y4(H~tKcYkW@wqrCs3LaEaPnaTJmu@$k3UB^i?{PjTWw?*G>D7 zU`m4Y0)+y;t*rU{>Eh#@?|xF&`lb#OvvRvby;3=~IaO&U@iEuSHHMmM>|JUIFd%8v zq%a=M;_>ZNWmV2PB((+ZH8fd4h5D$NxzqBHyQBMc1fuT$I2lU4__tlQePy9dS72dq z9b>I7duK32s=!>Hw@8j@s)%be_KAB`sxWX5f3)EyGo_@pxagzJ1_f2_$OC-(ZTz(7 z#O-`5IgVA?QcOAbu2IwyMA1rC1G~r0X!pR;=D;MUXtK(fwqWzD-&Gr(2YrW!eHHf~ zdpcgK+9?x#0g_f%A*Y?YeJPW*PVTd}_$oApj((gueMa;&hRS;bUdYKS4#~gG^+tRL z=daU*Mk>wP{D|599_#3fZr+5t(eqREoLTPMcUtY{gds40qL@^(0R zJOjZ^$B}rb53p@{Q>*B|!L_tmf~<{XJ>bB$bFz@6w}{b?7I#G>klh3q#!UVE&ovzS z$&{FuOUanunP7l~)`tdzeK2-w{0AfQwdq5P z(yn7o8Ddfw0mPRTqgxrLqDlnJ*NWUH*od2InX8a9{I{Yy4%hWXk=nQTb&kgX-OfEG zg@1%HC`ZOX=Qg_S*- zn>HxAFU59?lWl>$Z!6i@C3yqiF=*CP3#pUHt?&ty3ZHZj0d>N6f+43^99`} zO3KI(^{K2qa&%W9NdS_c%nFDz$_15{GJf?=O!eRRH|zVFj+d{Ad6sdUXrIIM$pu!5B3CZYm%5_2uA3 zc&xAvx^ctk;5$gg;-^MgC0=W*PfC05lF;&^i?3OV4~jFClH&&tGA(VGNy<2Jh-1rPKhbcEw0W@;NSqE2^#Q-5UtN-6-=`R{ zzT9d_n_Eb{#q4+fxfSXTEW!%c|B!2;#BzN&543jbE)S15N|{4uMG}ZSB`aYuN+pj$ zab)Z;#99(tvhH5X%}^l=qB>WD%JV`MyAra3!=N;Qy(Er$DhTzotUuBBwL| zY>98RRTPpkBw|cJMYIpjKLUdq(#N`W@bzk%kX%T3?_R2RG}wEK0*mo*=k`Za_k7PV z+#E63H+Uq@$!6c2>BGxRRJjq9NmHWg5c?3UWrL}-Ht^Z=3LwR2ifoU|)A>`aWo4C& zeoFhYk~rdF=dzC&O!TJzO1j`3*!WP9HzIG1wL&DEJ#jw`Qs(ce)}0(@fN9&7PvP)-n9|!jLYe)CNz# z|E-V8%S_57eNh%%`#9iCzA>}y%**l;&+&Jp4I|158v3##6TqY){AMXt3H}Tc2_9cE zmU~^9GGMJ;lK(s|;AN6o8|tq79yI`-Rzj0Wy6Ke z5U?FenJbQ1ILl}NRYVBj_4ikwo&qOBtmSa-Q@V%tlpjaz(Im!q(u3tvl7}9|u0!<_>5L5EF*U zD2b>qp3J({>55b;6(YySLk~Ss;%&Q)sa2k<1?%hUg74odFPqD5 z9ckFWIcv^g*vg)C^7E;+6Jhp=mK}F2<`f6et1wQV2$~y>2h$99`$roE+H}CJ4W~8R zj!othP*Z|OMiR1zJ+sahODQ;H`JD=BG2Iep!l4|I+5WheUP=R-d3DtxXp?ZH5urqo zRwNDWc^c6gO9V)maI^j9kVa>=wYoMuxEfh^H-1%sHW{DlCHLRQT=ebKA$Of<*wU{q z&k5XDVnr-hf2sx*-(+uCYKcVam!ac0fyA_fu|2$85vZxTjb?3j8w+j6RiB_D6!+Cl zB0>45bCI}o9am@`!WeQT{+PCG@c9(;HH};8Ey`^*-PS&kS3tr`nlXiH8JYSse_K$4 z&mJ60?%&lm?WS1O0xja>kAf#2?!V9jngkaES+m+(s4sP9U70sC1`ZOXCC%GVZu=u= zYcj|s85k9zl_o|ccck>i#xNuNAS7LI$ZRq3fR?TYm+;W}8A9qt!cH0@v_I z0c0Q8E44t;;attu z#CQ41<`UwwxzOli1^~8$OoVJ#7?FsMv%$kbQK?muTGNRI3Q^kgK)!2OX^O`CEsw-u z6}2J0(@WYSc&Qs%-dQaZMAh>F!A0EjCy<`8;EUSc+abVHbR}uKfXd#6PQZBdSF{&kk>*0*c5IO&S_Q# zn^rID@C@`=AshpzboIopvVWnWEf#gMh3H^Tj;g_BmGPori*?ngd$W8zmHNETKkF(< zQ^VTMq8WSG9EQx=Hgh{~UNyH@5s{bW5G|JHJv%S+zI&tAbwisg90D(Vb=Bbb4(7aN zWQOJ6+m+~VmYPShClz|mz` z-0;iF+i$Pw{zLZ(UU@mlad8hTrOTnG=G@5#28SOrwNdkTU%S%5+glP|74}TI1<6F# ziL&4T?Ub%4|68yQ33%*f+NO;X0bx=Z_2NxEbwuzpMC7w+p`?$J6B7eZhR%%+KoE7@ zlNzTq8e^rCM3cNqm!u9Sqr_A#mTMlMM#gL|qx5u1 z6bd8E`_3IoBNaygxp7Ug_y3djEd&A;Zd?Rigf34>t%d%9{Kdl2Sc;^3e9K-X*rJzL z6t|nQvDnC*VaR?un1wa(iJ^ZoWm03UJot#HPo$#ZFN3kyz@r(vjb7=;bdD`c!OL&C z_YZnmaezUIqhFy;zXn6Dq)z93bCy2%Y)v*y;L1D*Cx@|AgLELK@}|*5VN=BXeHS7k zhNhQ09WHhADTfk3rbiDwC~N?A^Dh}${1zc0BO=JP;XGMU?{!M_>E7PUTB1HWG2m6t zO?~5~;>)GZ2(Y`y@87?-zo_GG>Wvm?wda`{AIBXZx7N3iiHeMhB34|DXBH0!AG4*6 zqMV*;tKRD|=KJm~q}Uj}crjd{O3Nhvk`&k<6yF16!>x^M{x!@8f%RYJan=U2GTh5% zSLaD{POmK7WYQBk6~#t9-h5qnZ^WE2Ys?Mi4nJRA1C!EL<5tDk0;`xeVN1Yi55?}) z>%3poUviY{cbks}y*{mk$^>7H`#yzdD`Q!lf(D_4f@*4N!TPTgn%BC0w!TU?HP5|2`#7~o5K3v@90O2l-80T(26`dE@28x4*D?E7K@LqF~Vm zmu){Sc2}}>oMSH!NAr{M1ZNPvKrb*oa(V+y1RBZ3Bc0dB=;1)|Hu2oP)dW%fQtzZX zBGn4G48DpQ!k?aMn85p_LBQ572!$zmh9=VDOQ*{w+%;7I9=kqdHm684fPszfw}88P za}N=}>9E!CG~J=9nQ&c3M}hJ?3!?#j}X zAQx7+lqA7Dwtx*!xn*qf{59GAzA2nVF`&zBQ~_}1(OR)fwRCMur2-gCwAQ(VuU=-p zDYa51CgEPxjW*`!1t{ARX$;j3*$&$_+3J5*(jeJH#r@{5(sP1KBIkiGze(4l_$r1^ z@T#<3`;umL;x<0+vpH9 zvPG}(o^JD>MvP@qtMOb2SSupL@p7}jTT+w+ai)eQL@@mtZp$5>$>GNn1pC^N$iyuQxl>r`iGjf1bO%v%>~kzK?#2 z03NQ~kNG+_^pX?kcvZYNQ=7}d6k7i_n34?`@FU^eIsP(Fh;V0_B&YAd!n;K1AU`M z-`O+}QM2?$ur7p7P7-ps)My!Q4xYL?V_*KLscpR{9d~||wIPfLBdnH7va#8ot}Z67 zERqsRxW~Kv?MwbipzaF6F<#ZY`8wXxeo?h=5CrhC$R&4C`IZROu2nK%!GIxNEo~os zL$=?|E$sAZCmhBT}4 zOmOP(Y2fQtp8MsvRm>yyG{UxY{R;W8SFfI^sPc_W+BPc|f|2DAwqM}2X-lXcjoJCn zXX7~+9JZ~#VQ7XH=<4d~`UJ^zo7tldaClm^@X=4{^-I$?BqnUa(F|FMiQq8JPi^3M zz#Lo&6L>-IYdsnslPDuZFvcC!Hp}Xb$%SKsIsMzVrYe2sN}ULGKk^&D)%3z$D)|*7 z)4H)0(7ds^65gsCw7p4-^Ecbg!Qu8_6O%A|Z(K1kv0*TX{y8>7`9$mbZFm7S8>x{0 zV$VPnlCA*#C5bg{K`8Pk?CW@k7fP2Dh$C*rIBvw%)R2Rw|19G~G=;xKS-1ndbo*-? z9w+2$E*_`wWL*~2pvC_Y+M;%n^QVtnBzl~pCYb#>eH4%klf6mF&w*L(PtE`QSy{M8 zcZu+WY%-A~(s+F>ggT)N^ZN$t{w_6-Q2~-d8r2`N%%$-(jiN6o?ss4!JjWP`8-ryCGj}L-E{>9&IH=^2eBU+; z^mQRHTvG!cX%txMAn5r=>7LQIXJc(^`C0&#npu*~ZCZ42K71icVsfPIE?X ztDh9>gImPd)Q{hE+r6HW)NVTt`%c?4rGW`t#{?*Q+21JX7)V&nu#`mdfIIDMh8)QY z@9gjIw+dO!l;^pe%mH1|EjL^l_6edN3evx0@F1WftA!{tsFn#pj*Pta$X5&~;U>)% zlmkJBXbsh3{yYV}`#dK6KN3P`HHpBzsfGSSH3Q$;(44xst`G{TwBe(h598_cf%Xuq zp2bNcH+hgVlX0$Q$i5qv_^Z}go2N-gA$7)fs0OcYHq|fWv;7752co6Z4i?Aaj#0ul zPmq$71F|XH>thhMPp}3nl;ge80j+&vi{YL)<_vGNzPx-`-W(X2ne^)tn6yn(H8?-@ zTE8XaM+WTcq|yT~Zu}&=bEsYMc-!c>IC4^EF`C(L zE@Swd>GWdW*Gu}4Qz>Yf#z%QpRD{Xs2IGM%>x6x;1G!qqmR~X3ad%RWKd**r9rR;j z`ksl!Su=L`wci;Wo}|fNfMcFcFt9|yiu%lIjq%p$xFYuX&DOEdaR$b&0uH}H9?L$q z5im}1$C9Qg_lfs(4S_3vo%wfY{}vxF@4bM<+qb13zo$l8wQdYCjCDSM?uX(8l@hiu zbrx~28;JqI0xl{+n*@ePerl(SKhOFlXj=nLcm4c^iFPhEkh`DAbPhYt@J!ka8oamk zHoh2sA?@XAFb){pWRu7(D-}^v7+(rpsSnAyLpunfyMihA4Bvn&w2Tm;L1B@xZQXC-&9Fh%}3qP+=G!;EEA;SB8Cs zH?Ww_!pO`dRuJl=_L@x7SLmM4uzxl3sVy3PQuj?kQ_nVw{}WiH>hVlbk)XBhExId+ z<_WK|rnu$b#ZBzWc*OO5D0dboe0mpFIzSxeLAi8!?R`ZOmWFOz*3$iLl5b2QLYEU1(XwQ znot~}xRKU;JGV242@KpmymL^JSVuqQ9=*e-yYx5o_N)AnVh_&j=}6zwY&WmspJJ!3 zA?~yO1^mvnT$Mgt?A2?m^0M}l59VWdl3Oh}bEjiMp3Mvq0__#6L&4eO}&Ohv{xvAywPec<`_wjyc}n7ORphm?UfvL?1yP- zVWBaY96{!{95BDqbwlWIzImsVx}+mLK9ZtQ>bdMGS_uI9S6!sf7VkVu+pp)7gy#o; z{&do{(kqkqxcEsBMo7qB;369?7K9-VL0i>qH)FuUOBpT8x>KjH488+A-JCAp^``ZY z7@} z`Elj`pDI88Nd;+XhRU$-1eMIwf6n<3LjY-gXc=nZ_^ZIE?yol`E-Iv4L#bNWdS@o4 zh;{R~sdgteqbn(f6S#f*wqUG`ce&Phkrew=dAcio(^uVD7i6pzfH$rZ$1_O6o0Yj_ zzMIMqu2Swsy*aIDij#K#WG=*b1(sUcuh|Y|@2s1W(DIKjL|=?hvDvNz32$UT*3*uF zh#vhC9$8o*2i8aO31((zy=wk84)2ZRM|``#S3HoBd~)(~d#>RfUmH~~m++;3KKy7v zM7*)+>ctZ2@V|Sq0t3wT**bwZR%voT6g940?X@2YURYL46 z$|qq3y>&D9#z3ARe{&TX_*T-v{xE`Ewhdn6i!M=c#6(7@J}ntCYj9%#FJSr^Wb4=+ucUUpZQG-(=st_TzOxwXe$v4?DHTgt3AmVRvrBt~SM!je)99dJNGBwqCYs)>_<<7g6t5did z*T=w<-*%cPql51RtcxY36&(S4pspu+I_GuJK_ZarhHT~GT!J9p=)3KJl~{IayP zG##H%^cx58U;Oy*V9=bWxD0ImohS`20dUQzU7aHc0cp5b7&Jz2kC9((I@*wu9A1(Y z{k1QOarS9c0OSF}GbFq=xOuRx)xCxQJ*zE+El_pqh+u_^Iwik}zteD(b5W*CEJ%So z!x!{*bqqSdG@V}_B~M1_d0+Y4Wgcxl3D)oS3f3~K1YoJ^SpbkF=F{<(n)@O5de>WO z05PPV*)9YyKDpKL7)>cjDKg$cW$)%Tl?ma)aSIbfqc03&@3VcsQ;w5+a;dw5T}|B- zGF115TAv?Gi$4;1L5sgRTxdN@trKvSpLY`64+&%t{whnl+Of2Qk144lt^bHDq&Gt? z%#N*>;=3R8j2JX~v?RH3wX2w=u=ctITLoT8U!EEVL= zTF%fvvk3GTj2Ouj^^g%p`^TMYrpnmu&NTo@;!wm0eO1WS3yZV8`W5m_?@{Fs3ugx_ zU&@}`_13!b-w3!e3nn_=EMSRO$WMFdaK}~j8?J^=dS0u7U2bzTQ$azp{g_L7rWzO9 z!Vztc*(1b1>|Tz{CjYs?rrj9z#A)+Cynp;SLpINEw&~aKaTsL0j(toC#*6X2lWP9A zcT5xhSL@fM--kkEoxuKgf=!g6BGg+FD?A8v)z|5uU8S&rcJ1pBdyG*ja^eR)H@Mz* z)hzHL11^{-^y!03?OXRW8@)F_$v;)k6n%ZY9bf1bBtxHT{3ZP7DGhO@4T?8Q;`)^# zGL);Rq(#s^ceFP_;`awiq#GelNDnqp z^Zr-1>e3kR9Sp%ok2^nq{v=(U>r#QQ{mlv|M5Kb!IH?JD=}PPP4>P%APD8FP{#hr- zPwZnwe3*;V-e2j$5H2z3Z;oAVQtWbf^ug7|o-kIUi~v%S-@=K%BJJ`4y@DJag#v!y zGL!Lr*VWMh0A5~R_ucC9dOKO+nHdg13ZTTRS~zJJ6`C<~yR?gKU@;4Jin)&ge~6Gq z{c%d5PEyQ-*@ZQ1;j99jxweVz^rXHvt_&mjtN{L{O+}kkuiDun&f;*M0T)muDX8fJ zHv@y|0^3X026Hwro|C^dgv@&V8Vs6&djt^ZejrP$DfS&}@Egvi_{B{9p}x1R!|DN`2p=nR0<7Fkc`M3fG})kk#yoLqO$;y3S&57u`**7+%O}XpnS5lX<%xG3E&m$ zObiyiH~7A1#%x2=j9Dk`^A$+$toF@O#&h%@;a3+q^er6GYkLMW2;|s)(gv&Jlh7ll z!Cq-oOhgeHOnLOiGNyj3`~6v)TjQ48=vI!X2h^%3MktfE7i?MEc=K!{GuQYD0@yz+ zNL>cKOt@A0dUSS!;4d;VG5{eNaAI#GCn`OEEGhI3*1Y@s3&D^yRst|bA8+7G%G_f{ zfE2T9*k*6JVa>H8l<1(U(nL&b+#4}N{nGIgltN9Y$l)K7Tg427psTG8?bxfi#MXOA zYr-bGkClUTnp32jvgi{c{|nT5(b8>M_~4FabMh7aO}oX)S!|TsB4hSuMywle94PF9 z5^$4aXnAJ5HR^2p%aHMuhAxF<2VKBMpuq--9S?O7m~S*OVMf$*x-Ygv?io}8Q)cj% z@&G9iysu+b@P{IArGn7*r&h#>v?u5P&bxMgKUkTV69BfSJ*ZhgyHTk1?)_KTME!q- zO|`6W02GX>^b{zG!}b?LC_2iJb1yCK`IeoS+Wm_BSX(=hc%_XqwbYDcnjBR1;y@~?=<(qX@y*k~$C8>NOtc;1@HP4cAyk&uxqBe#~D!Wt&8OEkS^ zPG}F~hiTzhDE4wY=gCM-hSRN(qvlaCloZa9ez~1yhyLr&CBF8^KWM}jV^{P^1wwc| zxvk1JmJochnjmDhWPsyd*b?ns#Km5l*#wJpHXj5(^Bu&#!T9@CQ<3?4jc@IcFtP~> zQP#&bd~euXjT=-_UMYe+O{o&H4eYGG4Z5mXG$44i;t)RcGiYpo z|J#N0hMC`*R_7X8IMtFSe0tKX#fghIW zf$9@iGOO#m`RkXc!6#z@2i>$}4JRY{iuu|_>M6Y~qivXz+1gY8pd$}~S70NAu9q3u zH=Zi1bn|+QeyIf@7$&7rN!qnTie^$#s_K#xntxaG70Ghu)gek6KZ$uEa)6EFZm+*4 z(ggFajJ!u7&I#0YKIUgA#Bo)mi8%eTh)$X;URoBlwX%#r3&$!vdq7{S!*fa>Tl71v zaAgXUaU)LGkPc;?HcJ6WBUhan5^{D3bc)pC-<{AB+uXNVzbe{&GVyE@XYl32Mw4Sn zQ}NywE`1mEa7LE}Q*BPQ94TfL3I*b^VnBfS=H{lRzJ3H~Z(Q%C(TC4>hR8Yaz%xbj z@Pp;50nX;;L;(j#Tg2ucQs6=X4_hC?<$O-8Y!5isxM~AQPYKz15@D zKsCw?{JPR)u=t;qhwVWZClF0LcE558K;PIS?8NlAwLC81bDQ6RrD_nyqjIE9ANxdq z5HTFEo)=LwS@#Y)EbL*~+>71*qDbw3saKy4O~_73-dzKjFMw47sbd6A1$?g-t55%G zP-Eolp2Zw00{gD^sxQ@bo;T>RQ_7NgrP-i%7aicUEAsWxVD0los~#S7)gGAa>#kGS zc@e%V$R8^X?#m^*!|?6Rg~pq<7^RG|NG3ngvN(hQ-&R$*z$W@jPPhKO_q)c9l4Qd& ztY+zjkxXYp!6%}&3Pm=bSjpX{QphTZBg%@t|F(xeBpzqYiiwJvTy|$Gj)lTO z@+wJ>w_7Kb`}agXevEg@wf0^mExOP1@^9Gd=8hevz{hC4wFlo_i2=>nR_ZyhL`Pvy zoF2)+_okwf0V5y;#r7s&6c`h^ci{T)>VrBWm|y=%HSOQ%yT@X5Q=@Di8Q#sPy1zxT zqpK1cJ>lT~d!uw~j6&HfjEah%R{M926SgR>=sR8uW`j=99Ef9)j2g_ExV!*OU&y>2 zk?GQx;S?mFa$7ki8T4>Yy;}5n*MW^c;rovy*}|u87;Rl3m*3_5l|BINwl6 zH}_Q$v+>&6A2qW+9KgBNTTc7tZtTP~z2lxxD{;0dck;hP7-rOrjHr5T|Ia&6AcepD zVc8oyeJrTmxW|^Q&+K{gTH_v|aJqOS6`1YNjBF=7RYT#^JyL@?SY`O{$l)Z$Tr*sy zuXnXs1nxh&+}{ikLZ5z|Q*&{txLP|lGNWT1S(#vz1l_2Uo_efXV~y*U(R@H>wbf6M z=6W{nC(OQ3*9P>c5Eh-`5MQn-cVWC-dXo$48^+ykLCy)co%fYzaWJ1|A<;YVay=Xx zRmj#|K0aAc(|T71T@SojuT#2IFgo<|ro`*%E4?6CW?gPvxa)8ZqWFSQyaV;8vM!zyf`6B+A z2u{>m2lZ4ZL9UA&r)hZ%_Ns{htc7&<2gR{|)c(7Tj9Da8QsRcK=yg0&UYeu$FjsZ!Y~LTsj`IcLr}10>__K?W;|dxUr|H${Nw}&K!8RF z0a|C&VjnYI8Jj%0|JAK1U+k>ht!Enm-k!SyXFMk_w#i}K?TY{t4)G`i(BX#VK!?Sl z90PeGoBnddi@*CPXkeI;{P3F7g#ZCsD2KB06MQyX(XT;}lRf?T)YR0K4{4nB#3*3- z98@)gwO3fD+{Pr-tG_=3pQYfVj0|_vXBQIVPO~E)0vBt4czDSPo!;|Jtv+44tbF@p5xc z1#AIQ#>e+`@!P=($)(&Jfs`MAU;5bEgmw@S*8fA6By|ITF&b7V-ecTS7(y1C@op$~ z7mfKAtW{cJV&o*zo|0k>{5HnZt7_2s0oQ7 zM>1mF&d?6+BCV73Dn&`hw2-r&DXH&@7cZCh6cN}LN8-OO>fn4zL6UQ^m3|%%NZKWK zG>(tosS$Vw+(HP7H9?>4{ihaS(D$(i!Ddrw&I3Gi9y&&9FuHbkS`*1{{h@4@Rg>wi zmHGE_jQyq3vv~cTsdyr#h}0n@`H8R8voOL=_*XaXk0U%i8fbRY`N_<~4|}BL9UpYD zp9f?_`6fe#xN!ICr0xcT<%^{Ntb_*kH~_+>3b|YrfWQ98^9%F^HuEm&b_cEGZ-Oe^<66fd?FP3GVs-P!#5#?xmyn4(O;n;n8&lM_`Vakhj`(EI zmI|KGDCmm5-!Dl)ZJyWt9v%v8&q+6%7bi$gRxmpimo0TR;p@43x$E23X@=cFJ}8Mt zqPgfI!@h2AZN1yYs{+*#;N&F^(?k1&Z;WgSY0xy$=UJ;la%U#2+^7!f&Qd|^5C*C%^rUTE%F`gv(3QY8k3VqD z9PlvtWB^up95S>(ZeCD|wp1jbl-(&?JX<)~I#A#o;&yBQS7&b?2-W-k4<9753!w<9 zR1z(gvW!UDP*G9VC}m%=n;DfQdl8E4St1nKnUQ^oN%nQ@WH7cd%=){h-k;C!`+a_& z=Xt)*QspPg2uIm-B6S4n`q{!$femAim1X{ztNXIN*QwZvykt!+T;* z+LrEp06fC?tfT{Hi6+lzgxF&$8?t_n0dbMCDOKD z<^0*Cq`6@~zt)v4aJ9zW>b{#-9%R?nj-91W`w_GCbf2w^jg&lN0bW2l`McN0J~}N* zr&nG9&cl4T@hE_jP5DKru&nC|4;OnsEsR!{JgNjDjk#~;7HV@2`GXG6K7XV9R7U5Z zi07Pc(Hs3XPA>|lfH3mMw4G;->@RIcJ#cq1HLGAIo>s-~=nuO!B{Hi#^0gjcAm2(z z!`+L%=3fN6Os((nT7s_J>-Y;hU;g0l(&*Vvcm3!~P#ekR?V-QbFv@w*RKD zNiE0ZTm9D4Nfq?PtoeWUo6v!Zy#sd5q<{UO&&q+I#>>#e1>_x(Kvu;jCHGX87E zrA3!jj*;5Vy~r>K<89%os~wl?_Z|=0Wh+#feVH>UnZ7CW z+Z$f{P-8A`94O~&t32**Q>P86mJ8$|at=zF6mzI!1*>RDSr%44#+DV$1dY8t>$+8x zl3{HGB7L7Lny4tISB>V^sc(?N&Uqdp3(*>D zJX9^sxmN*wwxF)Wt`Dk^V-^&&?KENctc2pdTzqx%CrU?bCHHqP!>&dFi<;eB zM%dV?DUfJ(ACCgnJ`|ed$H38T_rTFv#evZi4-7^)eowTh%p%iIV;H+QUAjs^#5tR{pX!O zEP1iAUkyIoaZPCe#7lrqEb*rs*H))H6i-86KqM<- zli*!oz!os04%`Lb%slbqwF_g_%0NAQmFnM(`MF)4E#LZ+e~rB3h3oJ9N=sC<_wRw_ zcsZ-#Gf_#)SP)KzERpuIX0}hQ)LiMwGZI$JwcovkWdjvHgv5}aD!xYsFufuO{hVV*6;r-`TpLSG= zzsLfWs;-7<-YSf&z5B5BwftAO-`ox|hZJ@@6iyCs@2cDfuIC7?cxm^Sp(JS(JjRZq ztweIlhBmKIdlHTt!Qpt=F%>uHvu{=9xqvp`;mSPiycEQ#Maz|^;EMNE<2heCWTjp= z_nD3Ruz0>tcz3HjTvHK&Sj3MI*^Y&ELDe>trG@Lacli7~~cjE>&HhT<4PUIYm+os~(i{!apTacI)1?k`}%UK*A zU}af8T%*@LKXc`_8XJv@pD&|o0e2(}T39ap!c8?zQ!Yk`n4$^cZz2pK1Rs!6xKp;* zzCG$XKYt&?byI4Aabue+V-Gr7=I>*#-~LTp8nWAVxWZH+80?jSXGOq}xBUk_p&GGC zed?z7`Fa%J=5mxvR7l#(tfFIa_j!#YH7k->yw22*hO=L}D?MtaKud}GA`ih0bhqa# z5g@(PA;FYPP}W8udfLGdqgY}*>CR(Ob7yJ;kR508mO=|<;_bc7??LSSsciQBbM6+ zPCG0%Z8ymy(#4ZtNR;d!141a|)WfQAf62-^l0QxXxe_H#=mAm$Xz63{eu4TrjiBr} z90(8Lofcito(O>)dfUaBSHmsNfhhA%A&wl1C7I6>HgrgOOk+w-=`nxJQd6Hqj4+kg!N$r2BqBMCPNKxQ44_66QAZ%F}6UX$W9309BW3DEJ;GpHB!iy z_&aFNhEp@K?BdrApv?dxRWH&r=*k5DWwV*Zp!9uFntp!Ob6m!v-m(DiX4NVmK;*D+ z5CS2i_F};|kFxaRh1><}+Ap#wQ01{{j}ef!;cj81K{a=2jNwQYG}ErwpM(3d3mtZ zKA`|cEuBJmjk>Y{?XJEa=D0^T{=371^o41Q;~g>EoF=CBM@{52Y%wW=mF_u{LN}47 zjTU)s``LIJ5rLnz<8+GTI~x= z#MO*rmMkpgYxTC1pXtqhmoQX|{MEg4ok_Mo-NR7A@)=No-8P}6bKnkW`nA2Me{K*h zC=j$tuuykYp|#17xr^GaJXon?N}CV(I3Qd~+x%T;9nBP7u&GP`+R}Sr7h#93mI{Hw zTA+wsHbX+k1c{4_Ljhp49q5u#<$0)#nSm1U{Z{3Ja;Mya z0=aEG5`ctrHl$}+NIDJhrlSFubR{1&QUfO~YP?U6BkAx5T~~{lko>VPZ60lR&TAk4 zke8Qm_XuV6x8wyA}HYIg*O+|@D~ZN+YFLsBQpdsHY2>vl1(nTtb&NnkaqC(lS=34go_aB3DBP(|<>GBbdnB3iL zMuIdohPGfg_x`|gEaCvfXmml%xM=HLVFd);T$*b$Lnj=R$^36I8Fs{J^_&01WQurx zzCTFjeRqmgGNS5Ek%rkRnCRTA=kJrs3zR6UP_ub(%4#OBs9VIOu7uWtOu5bNg3-mC z1t!13)NHoJN<`wpC;BPKF!n3@!@RqQWP=QR+sObhY1pSfPzK^>Egv7B_A}j2&K1&^ z?0WS#Z=qX@+V7+=Qy+qm%pcUkT7`bG2cvj_c@634*pvQ%7Bwr8$Q*lcPX61Wh zDBJ~ji!*C$&D?i^tj5w@&7=I!jj-r@|0Td;?#{mXBUx2g_U`ApnYP%|NSZ&C$MV%@ z<1wTO;KM4GPQ?b>pF&gIOab{b<~Y`K|A9Df%qXKp5=amELP}6#%Jy{83M;}j;S6au zAvQ|ji>lDi#g_SU)iMY|y!}W#s**;2-c7vOU*Mxuz@MQ(U`bDX$Y-g)sW%hH@|r{D zvi`**M@hK=?|h>JrW!m>2RRkNPkXYh0OuX7B3$JXQGgDNjFf)Uyn1yHkAy}9&_|1@ zc`I1eXrUg;utJi*duw$i;DWI-21;C8)ie^$we3^R{`Ok`&13qthY?GmscLUrlcRY> z0zp2_HOn*0a>_FWGRXPMd2pO#Cgh zWj~W~nS+TICV@0AxlVtPtm?&J7?jkhp0)UZeUi(Lz zaY&@6A#|vv$bj{gHC@qLF>!@?Utho7OWJ4et)U9T)gNau#_@Yt*xzSUeLBZE!YB2xMkHq{uB#_umf zrs|&8R$146wVv058Z`=skto`hZSgwqPEYeRP^%LYj+JK8 z2d(SMQ9+m@viu@Bi#HXGT=dIumSz3|fbu!%?k{TOrGr;)?V#gPfmG^S#05k~f{cpDAN~=|ZzwZP@%PJ5? zRIis0e?>mUv2L;zQjyAs-%2Rj2?A>J;#TJ6$>e73c;dGzY|a<+(vw-VF(m8iJqF`H zg&T2WAcC*0Q`^AE-8|5t7%pL|%v~gD674zFSP}n@xDtdoV-4O{A$M3VtxT>z@{LX*uP z1+L8lN)93cqftyQ?dKCx!r=1aO#^ha^Aw(rFH)KRW%!&|paTwHb%hqAUvCX%eCVUb zT+;kx0AD1hrS>zeo+xq_ULE|Y_$B3NQydw-zy z8@W*8^?l4)0O$g-@mrpNm`tWCcfWo6ww=ejJwo&UIZ$MzY(w+c?lKWUYKlvzS(GU! ziLr~gNe+ks_kB(-gYA_E{Oo!rjj^UaCnpM3I#6r5{#2q@w_4Avp>@ zehot)!r-K5A4fPRz}dcj7#|oPkHRB})x*qM0j}}^01^$j$p@f;5C5hhYmc3snscgn zOpv7C*3$dc1~*_T*FHT>LEkx_Pd?B69Pk!_RR3ZLm@0xD{o8*xbhwW`6HDEuY#6Ne z6(P8xT=2?lW0@rn3)N2~^{@mr19>L|fgt!*BC~OYixlKn&BU|++?5e-KFxa1IsutH zPDOd+FLk9#HrI>!W&pkBau4@f8Vxnz6{|~;i0l#jrh$f=4>3)P&9GcunLoG7ccPAt z9j^`1amA8Zkn+Nn4b0(%%qK#Hjd~RyYAFgoyw<1`+9-Y3{e~SvSKxp^(l>)xihk;c z*PEYm5^{1romZOqW$`q>Iqc54^W5>*K3!GseQ;ODEOR%zu5UP*fAtcCtPB1HA5?tAbV7MfB+6F3{gm8JtER@z z3>hEY#sdYNNpyuxGeP_0&ABWs=a+xO5YAJ1UZl-BtLN6P^Z4Oc>>*r1s(x85ocN8b z6fXqN7pmSqK8cT48K+n|Fj%AZX*T`lGvRwOlB#|aRf*t^MmGbB8VD=V?nSl=A}*w_ zEnMMYVO**6GZB@aV&A?vpS(rJck(j=VS%YkiXXM*2e$NaroF&T$9dc zzl#IbAI~Tr5zV*2hQ-ZV*81#i{d-I*IGuNFu@&Yo^96*0w{BDb}{t_Gcu%e@%PKtHyamCyfvY$1i>4<|!AzFVaT z>eFSGndpnDNz7N|$Jlx>TgRAJ-Y3TVfXgf2lWLEb3pir9eouPEdFagQ9a$I*`9ySc zL3VHkS2sW+Hj4f(@KW~+kbF>08C7qqcfE8lv78BVk#iOvsC(EJ&=m6>j<4sH zI5{({w&i^aPb@4NKUtT%!y&2&gGsbvucHpa3oPjO$s7kP%(m~tz}kbdCuCaB@V!^@ zMM$Szmi9Y{gG(YjMNe{@z?;zLo8vAAFi}A@(JrO4Hc!RAZ8gn%3agX!d5`9(t*J&o+W&RpRuF=4geoJ(#tG$-I=7VvArX<&4J?z z{#LcYdupv-EuW1olEw;6Zea|Yr?!+KhzGTmn4W;4l_G9Fjnde2yHXt9 z(&qFddV9Z^OttQK!XQ&bmHZ$SoyWUM39apMS$-%~&wR)gd>q}+p2Mfq#`(yhN5e{mYS&_=J*Z6L~w3TpPnoV1}mR6arCTA+@59$p^$4oj|cWU(pd zQJb_PwAG|CNh&JFk;g$_8FH9&x|XB6J)Ja+7ZR__L0JGyjQa*OhMDUN>T@U zk%S(2G|DAWe@3pFwSm+wu)F&eL*MsNC(}{bm`ymrF!b zZEar_hN$hM%=8PYecNGLL1p6U;sVSoZ#QLHLfn@NRWBT-KA;X zE6+M$VNv;_8efzucJX2B-Wj^C7zS_el_CG*dnxBqgsx@an|tz7Dm)%zGCG788QLzE zL2rN&lF&wt(qztLvI&(v=ec~}ju)zPDwp0|{Ml!@k=$w?*p+mi9yxHze^X9a|s z^kNQ7geTBX`O!n&%71_2 zmbzb~Z4AviNO^F3eAlyPZtkZcioud+*7Z%%eG?@xA1&tL;lj|x^Dp+hsCdPEbl&qm zT3#!!lKj}iKs#2d-We9}DBM@#nVLY5h%$-B4ALi8ss~o}OjimwM*xO6lt)aM<9$Sx znNDp?_2qFTQm?O`5VJ=g`i=F&ni?4yNy^D_r^0=2{X)YYX6KGeh#~oQRHIK})PHSH zqCDb}4U_U?r@pxAo}vwSGSxar?DySYyCv{qn$L#4ap3lR=;CrIZMW=Hf6*A}=5Zot z0)1?0evP(!27w0(*r6R_hbUlCh zI+5?0lGA5+wttx<<(j+A`wvl5_h}TdyaulO#b2K9m~HFEy@Yz=btN-SnHg26uL=y ztQl*M1F?wFM$cQdG4^aiaCbxIz0%p4g|!?v9A4U47-M45X&V; zCl-?X?$oW?k{^4-cKV-PMLzz_8jY0Wv}(3|cEQhO<_Go;S$4%YAm3{hdEF(e?F3H# z95(WU^CRhVN7>CfYmbqvzcMcKlT6cEGmeP-ZI&~@FJVd<#E6$$H z==U}s6ujEClQEELs%oWfKt^|ORmw8$XM^b++X%h!t~0hyVabwL+keHfx>0n`t#ErC zV)7}0fwS!&INNrxKLUqFd4u<8nY`DlmCwzYIm`8OXydW;g$rUADyy8_@ z>$lbS3}5tFw|?9*@%Y@!uJ{L*r_ScVt<*6z(M!6znMX1nz4J$?8_+_BWcb7dBlq>J zZrA&|Ap*N!9nBF)XgI+)E*=Gv;?A8;4uo?m?(Q`C3G9<;uq#Qg_{?=TDN?l+gT2z{-u?jtzIiu{ zpDpzgpP6_5xY)MSR&e|kUQe@=fU9uXIb&C7q3iF=d_%5>TJj+KdjEANy*C6osSTfH zu(-2xoA8zrV%@(n3==CckCVS+(1tuiyJ}7b1JY>rdSC3i*Fm$Ck&$1KZ1WmiAw8jq zBwv*e`f4gft6f`c(q(epGOA^A{LiW1V+g(vs=jV4teYN3j;-IR*}}ya-3DhcTu()K ziWgCPFolNTU+GlJ*Etpza%$q2jT&kYPEr*qeaGM_Jtqk7%2DT_w4txq`s0UK#qjHq zoxsPLx5|=-k3*%X;o|`*Ge^07!ijzSKp!sxQ)d$aeR~Z$ZLg(`Ddz z164uTpf+EWK2z>ipFY#!knQE`eH%U;nps7@9Gay?ZhzM#H3pq6@=`E{&W}@yi3zx;_&Ex)DO$Iw{0`yz8(CS!jIEp7~i*M z_t*KIr2=J-+`}aN^B#ebqHfJD?wnyw>%XV^@5Ncxo6Qv7Je=&BPEMaK^6op=&QkhBe0nfb~IBgXXGz3?aM(T|M!Gvj6@UcX0XQ%tuox-K(>~6Iq4J z^5xXM<1&A*NQQyq8N}!|N0{;CYjvcRd%&`Dv1ZhOL71C5ZQAh9=2|<8uPHxat%a5L z(#key`iWM`wFE?*uzknmYoW5>F~YZ)1+J?A#U>FjT@=rd17(Klw?rJ)tx+b4Wm ziz8SA?(`#H`AXehGr|mPfzB2~3xnNtUCvV4ha#mcz5(RHx`pWBcY2g?*^ex<2ze*{ zAyk~F|KM5%<&pC*IBSZ-d$HBQr6{M;&Hz>hkZf#G3s(y%e-Q%A36Q2rb%BY>J%6dy z+P;6bW;EPn3t+G!Q?QG-y$Vm3hZdfgNijHcTSxaGX+xy)^`BFMg)}bw0wmkv z=-}zelbwBdI=_AYZ`PBi9*%KV9h8pybiB=&O1k^`Bpa?Xmcdy6+)8u}1_xacI&tdM zULgi2YoAJ&<$7d0-&!`ksGt;W!2HjCv9JpoUR(jD^7U%lr-N23%$m%Uvph}L*LMqR z`Q|=sga>!`50FW*Ma~wu0dzmAAM;-p5g1kWpR{#>FK9~O6DhH%{p0s4kClxSv#z>y zr}GmwHkiKK9s^MM2@VIRGC4AM#Lmtzi9u(G1H%I(YECKdYuIkM6NhB&Gl?6pkxcdq zTf1v#h_$1ptnxcMEY4cjvuBEQN3q3^EJfFecJs0}qvS#~`mRRWGS0vrOBl7EwWt0) zmoBOd)n5b?g|S2CBebJ_c02bSI!7R=BECG_-twyr;9e6bugMVJeQu5i{nQeOegpTM z&)T7W?Dp>Uf6w#EDFrD94^mD$C9E6FA=1sDKDE8a)ozblv69+i#K2cy1y5 zKV9*Fm5CEk{bY$O{(sT0;xS9&!C>WEcF2jyWX5|OI{*6C#-ofRf~`m!H=u<+J~7Uk zX6p3&q%*3}*k^F68_%ZgsidCagx>*Aeuo$CIu;~s+;P)VZli*atHDKivR>TVT1Has z%&kK+(bm{-gA}m=9HT4Y1^@w+ncTPl6|3_GuX*p1hKx_{TRF;A&d0&vYoK3KPS4KI zhWgvyVDYL>rUEgqo^1H$FStsqU+NSy$Nv-aVz?Tby~NSe@kgii{O>;q10U>wC@@xb{8!W z+zq;xf)UGNPsB!p4{7}MCFt^)*9a6{1(;V?s9c3h0dugzM13j8Gkpgs2JzZtBd$?s z6R45?`D`dJ-bQLexcU}2JDyl3{S?D9)N}Q7Es_Q54NRV=azURyeHtb1yT1F!AGwI6 zzMj{W54*c*TXROIJK9{Za|768T#@&Nh91=sJ^E~fyxViNEQs1<8`>XN zkSfU_C^!Vyj}M{WBnnue!DY`t^W-0;xI|a+qp??wY6{ehjWAD?rZ<+jx(Tlt#>SCa z7U-)+|A}@dQiCz30 zh!e=krrTwiJ)zG2@CCPTNSZyrRyJX>egIB15%_5)ek@P;;N!-j%8oV(X^jDs(4A|&A@~*@sS9db(FAo2Q0yULNTthLPN-hmuJmS@*JKHSQEdWf8FA+Cq z`n@JQ-KUQ8YwAPKAJ5R#j?Oz7zM%<^uaV9gNLc#Glu1^phE^9H`M8h&4Zp(Z>X@wz z)3W1ohVMn?OxH(ic2{ARPQqHaqi#fxBjcA`?tQ@`44y>in$w$Zn!u*4SO$@oU5TPA zPj&Ep=4fh~=*0}*Wu(<3cu%&=GeI7>#shCB`TN%&9HILCI;aJ-ufKl%TE&EA#vppv zkKIxyvxy&qbsD`Jfgg6kM%>Fz(?Ca7BirMz^a}Pv@PO|twU|U`7js)>TZZpFZ42+TE_P~!$mgScrEyDeV>!R5QHy-Cm5A(f@AAD?zqOh(+60!7%<3fFB z6LXG{O04%uR>|&`gLhW^$R&dNAeZos3BHVvpIqM|sF6~;w4QA$kY4;@9_+S;0`>I0 z!6X;estcq^2e(6tc1%-RGHb)W)5^QC0R^A5jO6P@@)s;ryjkNWJwUNnk$nsTh@2ow zNUN!hW;#3QPf$)1pQ4HWP)zaTbfrL;O{%5A`iKFC6MtX6 zI#R&+H@Xj*&rI^cjOoICYAY-yMW|c&>TL3yDqFbM@{!+FN;) z=m(bwz8J4i3WuN5WW)-~6Sdx`#!}ZBDL;3MlU?F9yY6ASA0WR^yZ@BD6}^0L^&0M?FWplo6XvRqW-}qgXRpA$^r35mivt}i%G<=%1KR-&iqYv z<#FDT2+{*4cP*=n*(H*Bds;%#|0C&Sz{dcSSD!;ShMccEG0X#?JMRWn#+-pQh+8ay zGP?BEN1V-Ev;pISw< z5yAK#6KF*{{=g!}YTzwv?&v#fl@!9U>TfgB<64@0mA)vkKW$jgiW}(2B~UNP4#Vv7!SOOym`Q{Dyo4kL2+2R2Z{qULb6R2zV9f-( z$Cu!Re#VujTV6BbIw2=_XYcl z{DXV8%fv(_b(-J$2;*=N2!*mg%KX-_{3FbQ8SMlr= z0FV=5eg;~33sN0t_Ca?|=u(S8SDFmfEk^zl2iO@}#57yQ)@@Z;3%CKHb)a9^1FGo+ zd-sn7iG==}3ed<1FKAS_9?yJ2`(IF>EPUsm7|pSATV^$72Djh{Iy0{I@5s&nNj;8U zS?r3NRqDQzHM;RXiRPF{*9QFm2HyKm2y#)e^R}4H7(4}&;PVgusxUpw);dsve#AL3nekwgltYlXWzjK^+K)h> z%4qR&ps>ne|NlfUf}Su5o>`$%{F@$uKuJghnc%e(f5VXiehe{Q3R&cd(rT_PBH(y` zZh^=S-gl*Ry_81o*uDs@4sR(B8Fmajv>yk_aHTb7rYzw{SOAbD)^fu9zr42J7@V%G z!B(SuOQ5PXA*H&iRiQI>xT35g2Ci4C%bdgQ{0SCq8Q5D$Rrye_Z;!Iq^{-Ra23fDp z)_RT4b)K#vc8z$?smfo;Ec9M@9_@$KZk1rQn1oHZ(n%Yu60NyvbPhUGR6B`+WYyXurGTn60*zu{OFPru zNje)*hNRc1wTZtjWN@EaH2sKwcN~M!60x0A}WAJuw3=? zJXTNr4*%Z_0WgD|Zxi*ek$yXMKf^IpohSdqWDYJo*`@_EnuQfcf6NzB7Y)DltM9@( z3J3M`uT~xp$U9>4j${G5q?5{2iyevjsIJOad+h%DMT@Ou7RZ4-dvqKF0bg`GT%z{a z{>LTntK0gdkq+DM(Sv{v=*v`&UO-Nq2A&q!gMzy&ySY9@O|8f#r<@f-xlr3AF4Gro z0mfm7ASBM8BQ$h|pCd%N-_70PUYdA*oKrr&SUg$Ze;TKqAWhk@2`w4KM^Urri456uj4( z?p2bSTq!hn1j@8!0|@&ioOxvi$!piKXL zweH7z<8^#0!zD5k4GM><^TS$Or&h>5K6|pCjm!PUUZcg>E2q!#Tt#av1?HM--5Gng z&h21+kbxt{beV~c;2HV9E|2!B%dRQ)CN6tD*Qm3UI58?V7*V}Z!*NYuqO<@*>wz+C__jQZX8_+VBGSE9*jq3cKG_9+F8Ikm8yJpjsC1_Oja zp3#>?FCZ&Y;r zW~_svLxm4N*Vvs=xI^o+T_Ji}jZK$Rsaut<3%_fm@&>;9M-BJdT*a!`viiOg7=?eI ztN!jOO4;I0|D2n$@ryqN3^}2#(R$G_wlBCbEr<38;h|Cjt|jE7p0y8-4evm8YAv-2 z@3`KttkP)Dch zsLbumeUhi1?JZJa+1)(1YaH`C-K0h-^1HI7eI8$5xI%N--B-vG(nAt zO90f$6lnb+n5ufh<8ph=;Pni0dwU}x;>>*gI#opB#=HVan*gK%l&?7Ch(qxCT>gmU zi|;!bkru;s@EaFz;vZjfa9~Sh_PcrOR`}<^$7pKI@ZDRryPPQjJm*-I(lb2Y`Iq}@ z!PrH_UaW96mMtf((W1;;xKd86Qu32r!JNF`+F7#jX$<@8>j3|5vTjZ6+-v&7%yQKk z{cOTU#0Ye=zQ-)PF|!~NFbyIBdR_-&4lyi^*G`{(%1c5Ciz#_g5yP|MJALHL~6{}iM8`F z1U2sGu`m)!_O|wxW`)gzvJ@~i;OLMuw zbOSZKlp1|QMelT84s>*+Z(E;W2+idl28xJnCochn&>02)A1cW%9L-X|7XqAk-^woV z2?_C9@_f+K@6(=`iH?$2X0?p>W@+E4_q9*k?GV6~$Gq2dv0ik!-Mcjo87IzrPkIfTE48T;LD(|tcE-dUe znkxOY;|}ojgZ@1j)}cYxds@;xn3M(pace&(g6w!}LoJ21&Wz2nd5y(^QZM4*t(2f_ zvjkWyN}d^l{v$%ID7rcE8PVETU1e0mvOk=LN<~EA`XWyC!?My|0jaFc*RzQ*8+lhp zWTo<#RgFqtx9IudYF^Q*9n@zSMz~iR^p}=w0#%Bm*kO>qbB4P*@4*g5b$641y0)bHNxm+$n?D{1saHbJ!~RYeA1f9GL9gT zVgAZUt#6}L9k`#XiHB?dks`s(kih(a24>+xFF@mSuOErxmbD@-0mM3R;omd-3VDpl z#eyBpnac$R)_vW7&(`q2P_;7II&E1(r)AGiU#35<^7IJAe^4C#8@KMdI#yXcdbBF< zwVy`Y6(Mn-1&s9!Lpu^%6lajWa3q7LuHEfGQgZT3;0@o-E55vbQ8ql>n5g^~cltI^ z@I(MzOH;esm+_iCe{Q~X{kWid&;ZkGUuhv>;n0I`!I5!I+V@1-ySm;uw)9y!9K;6x zairhh5eyrz7iW?K4tG=eh9T@0b$S!7Gn(7_@J z6~!a($>vUlQ3-Mn1d)0)72?K*P=eJc`Hvz9EDri}=tS>f4j3pyx24=i?R&7H1VM$f z%TxP}Pl|pqK2w2z{#+Rgz>{fG%R$U6b)0bLEyZ6FS+w9}w#{)slCk)20wcrKS@M9C^WWU6x*WI7{D$<}Z+Nlm)^;3TZMU{J{kYZ$jJBKTP{)pB_G=8bo zZRjly4W%eIczf(BXnHv5RPW-f74#Y;h}WpS!Ja$+y!v-Nwl<04x?*_D7nEhEWXI|F z{?_==R*T7D18EX#h_d?yjEZ5O@8;W(8`wC%t0ZTT)k!-$8P#H;v8w|~1ee45hk$1p zQt^FDE^~jVMq*)hAuX9~vh7L(KiRZR9Mht0gPv4-^gro`D0g>uYPc1kx6ev5WUNnL ztGa(jK2TR;V#m=iXW~a`zGY^n%iQptZ+gjEv@2w%-<;f&JMeU=nONiqNifX3L66Bu zu1#xB-ZK-(lE(3ly1+|boYQ0Gl*|jU!#DZ=g*=@>Xv0CtU3sWy!+$eh^)UqPRW6vP ze(q1D(Zjq^Yu`fzsl5p)w>BerH5&i;s9~$^8;K-&Cwh7|Eu9x8nM$!*1LL8&j_06A zX>P>_$9E~OBy4P4(UiY1FEZA^fcbG(V+@kc1zDDlxXSKaFB}U@RJA!H>W&Pg6m`+4ixy{8yuBAr|xJX0XJp%ls1?g?Vtl_BKX1DH74P~C| z2)~zp8uvZN>D|=y=P`u) z)m4`5o$#CO$cealpJfT}S)V&7BlRQnre)YnDbkh9`#12fErF=BM=mt*8UYxNi=FF!a)PIx#4zpkKoPSC=`V{$G> z=6nBpzO6?k7{t8zX@$eXI)ub1aotX{5*z9cuUx~-&zq+B#rmC0`c2^C^;u87Pvw3m za|3e6?L#0ZFvW=0jP$3eD;P`%kW-{kun45=6q5?1Mh#D9c#Z+=AwJy|kTLIakNI3; zC&*OON$h?#IB0xMQ87KEY@f;3&J4Dz$#0b8w_+Ahf8p4Bch~c13T5?=ztzU{BnAF0r=PP7Or!n`|b zg6RmK>u%Lzpfvf2~!a%Pb9p&ajJG=0f1&;OI}HChYICwYK2omx`}z6LSobF7-_T#eI$ zbz**J@&5E5KYl#VcdSe{uvgk|rIe(zeCqwfe|h|F*gNSqNoZ^i8Th%W=UE^6*Y>~e zKtdnS#aI{$p2(cGaQ5t0dk9+Z-1vqIDFJl5y(`Pb0(_}eR{M_(&yj;hNzQ-?P zt!@HO*+kWO(cO2GxI5w>NvZmYgYW8(827VqTEG&t{ zABPkfX!6gunvpOu?VmHzNN@#vaD~x9ZDS~S>2`X891?@bM3z|x>Iz1^fk3~ zOeYVt>>4d`9@WV`gr^hmMt>Z$$uP`xutPab(x6oSPPG5J+42((Mi(`Nz~JEmsB+1n zT#DS0k^Jb72)mVEC}!l7?7%e4{5pEB&?I=~ti_j&Yf+hJmG)iK)6+f>Uj2Aywxi#0 zHIi-^O#417&cpEG(FfE+D(3A~{M&pvXuL>D{})mW1666Ib45ZGQ{%DmzJ}ue8!T1) z0ZY^?#PD^;ll}yCpwsbRFWvYvfL{F@EG4-d{)=4tb9f*f%vv=I#8tZ|#M$+a gELs=yXX_5#`pey2ljXY(Lg4SJj{c=WEz1}G3pNL%%K!iX diff --git a/icons/obj/wallframe.dmi b/icons/obj/wallframe.dmi index 0e416cac77708215cfd415d4a064d24e04dafba4..70149901e33acdf8a077fe7f7b4b2850bc183d0c 100644 GIT binary patch delta 960 zcmV;x13&!J2crm(B!AdYOjJd{z`!v)MNumAb# z^yShgCoIajrQ*=M|N8Lx=+V=-0C=2@&$|wTFbsv^ zIev-=_NuqFO9iSJ;2qN75)U|4YzmLxs7T!^x}9J8mQ&hmeQP>fwGF&52}QOSd*1EA z%+zbhaXNwtNJG#yM4e)ug?st}OixL29l(D)k{fZ|Uvr;SBX2TXlz5m(0;WyOIE#0p ze^BDAd>ntl($-z|IsXRZk4q9)8Qs_b00LV{L_t(oh3%DVcbY&Dh6A`LD3MZItwpJ; zCXH!MTrq0#5^Zh!|Nl{Exkb$Yg+f2{@ZfR%AoHAeW?8PT{u_i#@)n3vwKJkf7>O<0uJ&ObM#0T372FMM)B5OQ2S(a--3Z8=9unFhNMh1a)6<-E3k4 ziM)_4K_JkZZ!|<88bJW>N8WStkG@bD4Ctj` z7|@GP5Fs!OE*OnQlyU)*U^w2|BfkLzB#a*%ujq;Z0000w6q=`9+9mo15;B|k=H7J;yC!{00001bW%=J06^y0W&i*Hp?XwU zbVOxyV{&P5bZKvH004NLjgY+#f-n?D=k_TYSc#$F;NoH+hC$w;!j;~Emh@i4$G84O zC!*VTl5>_XRfqc6w5mEa@(O{_JGEEaO)kZPJ=+LnA%z7TEWd!*FvOXdsY|5jF;FCb zEyX365#HN+rpZ4Fy~~O+)8FhoGkdpIel)l-x?x7L5Pr%I7U~S~A1bZ+%I=Wa_=LoZPN;E12H?9i^&f0EMeoMr zhH#bO#`^@#;7EV~!I-v>zoY`UqoDj!p5Sv=L3I=R;so6VlLCq0wsFWOyX{cBXGSRn^a{}V8aP8LR|3h z`1J711?R^R7hI6wJA72+37(n~aKU{}li-EYAjn|}1OmST7FbO1VtXERT$h4pfj|fv z=Jlz;7A0sLvQ#iCFpTD-Sah3z${5sWyvTISa<3U}1s7rRUtYd-2ppr1dO=T5k8Tc6 z6`Jbf3M~d&|L|z4!w}H=uN-R7BzP@=1mP))1tE!I5++GP7<5fq8zh1#j^gl*kQsxJ zx4CLTyoeX!oXmbOW@N5B0jP002ovPDHLk FV1kyuoWKA8 diff --git a/power.dmi b/power.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d0066b96de9d090771f9ec0a7338144bbdb839cd GIT binary patch literal 1782 zcmYk52{aqn8po5?J_u6FP^F_vZEeTW7EQ@m$~N}pv2lB(Sht!hgUaw1wPUNS97BzZB*nRm~*_xpYS@0{=c?>+aH1^9bws2QpO z000f2s~$n}$U2-VN9C)npz)PF^acD4?kOuOI`8T|JUmui-EjJheNbo|2n51l^6f&f z`uh52W@fOw(U8J%C=}XEnTxzJnOi>vfd*mi?Ch|C4aCsC-^PaiPu z-?~&5;!+;wL5jxomF_d5WHQVQ}l7O>Qf@hDT)&2xzcdU}@= zTTjckX?1pXmNz?VXBQe4YH4X19UYyJkdPFl_Rhy^jc^+43xcyxoxy3IJEnrQ25go5 zxmjICKZR2n*>16QKiDdb&-c{-V$&HhAuTo16iSEdgI}IOKUrBo4lXORpc3d^-3`uPoKm&cT)@MvLaEs0dt#|}T5Z5EGu_#dEE46T zq;?#JQc_bOZb$W(dq{PC@lDRxWjXZ9|;=S1gB%AZA#BgZ;T@A zM|>g{%(Db@=Jc7x%=a=`L^Vxo%yjwf`rqAF@x<;Hm{uRkY>A4WQ;}aXz^t=uOSP*q zC;jOR0jRfsm#(`h#G4ne#KmFaO0=(oSq2lke$M9NF?R#6Pe-a&^o}QJGEzI#Zm}1A*2h>i5Z`~{O1gJ2A;g1TRlQ12D)xeLs=EiRcIO%NXA=!{GH!ZKA8|dn zxD=P>LjK^A^O(na7xR_1Lng-AQTLu$&^qWA4EgyHtiM1*nlL!}5>^A-!W%HG8l56b zlAHNHNZxTP@_#<<{Dm`z2>RVN0HCh3gPZA!pXH*kpMQsK3EJExSDvh(QF^GGQBDM- z{9s6LQ^zB9A#q@+ciLnyNO7CBB}Dq>d@oy&jBw&_G?&!A$;8;A`(JLPyl;eciI+C8 ze#X9cXCHemY8pyL9Wj#klbanu&(YvF2)62}cDhc4GC4n5c`016qp!bwf!|fLJ1<@4 zpOwQ&a{5Q1;L@V^g&zKT?ub-C;=AwQZhxMuAL3Yv$|dnGoD!yxn8-U3=s?SN!VZk^ zk_VBETI}O{ifPReQf8;$Ss(!W9U=Ca>;U!pNL(-Z_}U5b3nS&NTT4rvZkZ68gHMFe2pzl=58dc%vGVf&K(rQ0XA`OK--vZ)j2oh5<0<{J5J8aZ{5&`=@UQRW@e`kR2+z`57Dq0My zq>NKIlr=y%#1cna56KZAI2GZ)aKTiug=~)Gjx02tKdp(Neuz4d7rI2{s_g|C#*|-` zq4{bd;F#UqK}05|!BID72%4>wG~g=JiN Date: Sun, 13 Aug 2017 18:00:36 -0500 Subject: [PATCH 096/113] Fixes turf slipping --- code/game/turfs/open.dm | 1 + code/game/turfs/simulated/chasm.dm | 1 + code/game/turfs/space/transit.dm | 1 + code/game/turfs/turf.dm | 1 + 4 files changed, 4 insertions(+) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 82ff907a04..a990530056 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -18,6 +18,7 @@ var/sound /turf/open/indestructible/sound/Entered(var/mob/AM) + ..() if(istype(AM)) playsound(src,sound,50,1) diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index 968e782984..a51240c969 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -22,6 +22,7 @@ return /turf/open/chasm/Entered(atom/movable/AM) + ..() START_PROCESSING(SSobj, src) drop_stuff(AM) diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm index c7e6973c4d..b877fa9eac 100644 --- a/code/game/turfs/space/transit.dm +++ b/code/game/turfs/space/transit.dm @@ -25,6 +25,7 @@ dir = EAST /turf/open/space/transit/Entered(atom/movable/AM, atom/OldLoc) + ..() if(!locate(/obj/structure/lattice) in src) throw_atom(AM) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index b204406d05..4342d12714 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -160,6 +160,7 @@ return TRUE //Nothing found to block so return success! /turf/Entered(atom/movable/AM) + ..() if(explosion_level && AM.ex_check(explosion_id)) AM.ex_act(explosion_level) From 726ffe1fdd8698d01e960979a269c582be869bde Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 01:25:02 -0500 Subject: [PATCH 097/113] Tweaks atmos canister lights. --- .../atmospherics/machinery/portable/canister.dm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index d733dfc3fb..a45536430a 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -189,8 +189,9 @@ #define CONNECTED 2 #define EMPTY 4 #define LOW 8 -#define FULL 16 -#define DANGER 32 +#define MEDIUM 16 +#define FULL 32 +#define DANGER 64 /obj/machinery/portable_atmospherics/canister/update_icon() if(stat & BROKEN) cut_overlays() @@ -207,9 +208,11 @@ var/pressure = air_contents.return_pressure() if(pressure < 10) update |= EMPTY - else if(pressure < ONE_ATMOSPHERE) + else if(pressure < 5 * ONE_ATMOSPHERE) update |= LOW - else if(pressure < 15 * ONE_ATMOSPHERE) + else if(pressure < 10 * ONE_ATMOSPHERE) + update |= MEDIUM + else if(pressure < 40 * ONE_ATMOSPHERE) update |= FULL else update |= DANGER @@ -222,9 +225,9 @@ add_overlay("can-open") if(update & CONNECTED) add_overlay("can-connector") - if(update & EMPTY) + if(update & LOW) add_overlay("can-o0") - else if(update & LOW) + else if(update & MEDIUM) add_overlay("can-o1") else if(update & FULL) add_overlay("can-o2") @@ -234,6 +237,7 @@ #undef CONNECTED #undef EMPTY #undef LOW +#undef MEDIUM #undef FULL #undef DANGER From e986657b164fc3024ee57158b47cf22a8e7ea6c9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 06:25:03 -0500 Subject: [PATCH 098/113] Makes mulligan antag check for gamemode required players --- code/game/gamemodes/game_mode.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 2a0cd230d5..790319e362 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -120,7 +120,7 @@ var/list/datum/game_mode/runnable_modes = config.get_runnable_midround_modes(living_crew.len) var/list/datum/game_mode/usable_modes = list() for(var/datum/game_mode/G in runnable_modes) - if(G.reroll_friendly) + if(G.reroll_friendly && living_crew >= G.required_players) usable_modes += G else qdel(G) From 2476d59be6b0972a058e222d3d75ca4dbbe7657b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 06:54:44 -0500 Subject: [PATCH 099/113] Makes the ahelp topic give the permissions warning --- code/modules/admin/topic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 818b0d6f09..81925756fb 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -6,7 +6,7 @@ log_admin("[key_name(usr)] tried to use the admin panel without authorization.") return if(href_list["ahelp"]) - if(!check_rights(R_ADMIN)) + if(!check_rights(R_ADMIN, TRUE)) return var/ahelp_ref = href_list["ahelp"] From c73e58d5874cf06809a9ad5bc506388c983746e7 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 08:19:27 -0500 Subject: [PATCH 100/113] Revert "[MIRROR] The wiki button now asks what page you want to be taken to" --- interface/interface.dm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/interface/interface.dm b/interface/interface.dm index 64e39587ce..253738064b 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -1,14 +1,12 @@ //Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs. -/client/verb/wiki(query as text | null) +/client/verb/wiki() set name = "wiki" - set desc = "Type what you want to know about. This will open the wiki on your web browser. Type nothing to go to the main page." + set desc = "Visit the wiki." set hidden = 1 if(config.wikiurl) - if(query) - var/output = config.wikiurl + "/index.php?title=Special%3ASearch&profile=default&search=" + query - src << link(output) - else if (query != null) - src << link(config.wikiurl) + if(alert("This will open the wiki in your browser. Are you sure?",,"Yes","No")=="No") + return + src << link(config.wikiurl) else to_chat(src, "The wiki URL is not set in the server configuration.") return From b2f93c506b2927d6b999e5f5210c034c5a872559 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 08:20:10 -0500 Subject: [PATCH 101/113] Automatic changelog generation for PR #2359 [ci skip] --- html/changelogs/AutoChangeLog-pr-2359.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2359.yml diff --git a/html/changelogs/AutoChangeLog-pr-2359.yml b/html/changelogs/AutoChangeLog-pr-2359.yml new file mode 100644 index 0000000000..8455963dc6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2359.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - imageadd: "Ported CEV-Eris's APC sprites." From 77ce8f8031254ebda3150763634582d44fcf7df6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 08:20:58 -0500 Subject: [PATCH 102/113] Automatic changelog generation for PR #2363 [ci skip] --- html/changelogs/AutoChangeLog-pr-2363.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2363.yml diff --git a/html/changelogs/AutoChangeLog-pr-2363.yml b/html/changelogs/AutoChangeLog-pr-2363.yml new file mode 100644 index 0000000000..e8f5b574ae --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2363.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - tweak: "Canisters don't flash red lights anymore when empty." From 4edf9880d6821cd4b9d6e13e2a7dac1f717f784e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 08:23:46 -0500 Subject: [PATCH 103/113] Update logging.dm --- code/__DEFINES/logging.dm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index 82d030bf08..24e10a24d1 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -1,15 +1,16 @@ //Investigate logging defines -#define INVESTIGATE_ATMOS "atmos" -#define INVESTIGATE_BOTANY "botany" -#define INVESTIGATE_CARGO "cargo" -#define INVESTIGATE_EXPERIMENTOR "experimentor" -#define INVESTIGATE_GRAVITY "gravity" -#define INVESTIGATE_RECORDS "records" -#define INVESTIGATE_SINGULO "singulo" -#define INVESTIGATE_SUPERMATTER "supermatter" -#define INVESTIGATE_TELESCI "telesci" -#define INVESTIGATE_WIRES "wires" +#define INVESTIGATE_ATMOS "atmos" +#define INVESTIGATE_BOTANY "botany" +#define INVESTIGATE_CARGO "cargo" +#define INVESTIGATE_EXPERIMENTOR "experimentor" +#define INVESTIGATE_GRAVITY "gravity" +#define INVESTIGATE_RECORDS "records" +#define INVESTIGATE_SINGULO "singulo" +#define INVESTIGATE_SUPERMATTER "supermatter" +#define INVESTIGATE_TELESCI "telesci" +#define INVESTIGATE_WIRES "wires" #define INVESTIGATE_PORTAL "portals" +#define INVESTIGATE_HALLUCINATIONS "hallucinations" //Individual logging defines #define INDIVIDUAL_ATTACK_LOG "Attack log" From fdfdd4fc214a81e6edcbe4b8204dfe77eb488bf3 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 08:24:34 -0500 Subject: [PATCH 104/113] Update admin_investigate.dm --- code/modules/admin/admin_investigate.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index 54feb11532..2ca0593e8d 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -5,7 +5,7 @@ F << "[time_stamp()] \ref[src] ([x],[y],[z]) || [src] [message]
    " -/client/proc/investigate_show(subject in list("hrefs","notes, memos, watchlist", INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY) ) +/client/proc/investigate_show(subject in list("hrefs","notes, memos, watchlist", INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS) ) set name = "Investigate" set category = "Admin" if(!holder) From 80bb075eb3667c0fc24aa03b6d114661b04391b0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 08:24:58 -0500 Subject: [PATCH 105/113] Update Hallucination.dm.rej --- code/modules/flufftext/Hallucination.dm.rej | 1360 ++++++++++++++++--- 1 file changed, 1151 insertions(+), 209 deletions(-) diff --git a/code/modules/flufftext/Hallucination.dm.rej b/code/modules/flufftext/Hallucination.dm.rej index 78b5d879f2..2b8fe4b064 100644 --- a/code/modules/flufftext/Hallucination.dm.rej +++ b/code/modules/flufftext/Hallucination.dm.rej @@ -1,209 +1,1151 @@ -diff a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm (rejected hunks) -@@ -60,9 +60,14 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - var/halpick = pick(current) - new halpick(src, FALSE) - -+/mob/living/carbon/proc/set_screwyhud(hud_type) -+ hal_screwyhud = hud_type -+ update_health_hud() -+ - /datum/hallucination - var/mob/living/carbon/target - var/cost = 5 //affects the amount of hallucination reduced, and cooldown until the next hallucination -+ var/feedback_details //extra info for investigate - - /datum/hallucination/New(mob/living/carbon/T, forced = TRUE) - set waitfor = 0 -@@ -72,9 +77,13 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - target.next_hallucination = world.time + (rand(cost * 0.5, cost * 3) * 10) - - /datum/hallucination/proc/wake_and_restore() -- target.hal_screwyhud = SCREWYHUD_NONE -+ target.set_screwyhud(SCREWYHUD_NONE) - target.SetSleeping(0) - -+/datum/hallucination/Destroy() -+ target.investigate_log("was afflicted with a hallucination of type [type]. [feedback_details]", INVESTIGATE_HALLUCINATIONS) -+ return ..() -+ - /obj/effect/hallucination - invisibility = INVISIBILITY_OBSERVER - var/mob/living/carbon/target = null -@@ -744,7 +771,9 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - for(var/mob/living/carbon/human/H in GLOB.living_mob_list) - humans += H - person = pick(humans) -- to_chat(target, target.compose_message(person,understood_language,pick(radio_messages),"1459",person.get_spans())) -+ var/message = target.compose_message(person,understood_language,pick(radio_messages),"1459",person.get_spans()) -+ feedback_details += "Type: Radio, Source: [person.real_name], Message: [message]" -+ to_chat(target, message) - qdel(src) - - /datum/hallucination/message -@@ -763,43 +792,48 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - "You're hallucinating.", \ - //Direct advice - "[pick_list_replacements(HAL_LINES_FILE, "advice")]") -+ feedback_details += "Message: [chosen]" - to_chat(target, chosen) - qdel(src) - - /datum/hallucination/sounds - cost = 15 - --/datum/hallucination/sounds/New(mob/living/carbon/T, forced = TRUE) -+/datum/hallucination/sounds/New(mob/living/carbon/T, forced = TRUE, sound_type) - ..() -+ if(!sound_type) -+ sound_type = pick("airlock","explosion","far_explosion","glass","phone","summon_guns","alarm","beepsky","hallelujah","creepy","ratvar","shuttle_dock", -+ "wall_decon","door_hack","esword","blob_alert","tesla","malf_ai") -+ feedback_details += "Type: [sound_type]" - //Strange audio -- switch(rand(1,20)) -- if(1) -+ switch(sound_type) -+ if("airlock") - target.playsound_local(null,'sound/machines/airlock.ogg', 15, 1) -- if(2) -+ if("explosion") - if(prob(50)) - target.playsound_local(null,'sound/effects/explosion1.ogg', 50, 1) - else - target.playsound_local(null, 'sound/effects/explosion2.ogg', 50, 1) -- if(3) -+ if("far_explosion") - target.playsound_local(null, 'sound/effects/explosionfar.ogg', 50, 1) -- if(4) -+ if("glass") - target.playsound_local(null, pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg'), 50, 1) -- if(5) -+ if("phone") - target.playsound_local(null, 'sound/weapons/ring.ogg', 35) - sleep(15) - target.playsound_local(null, 'sound/weapons/ring.ogg', 35) - sleep(15) - target.playsound_local(null, 'sound/weapons/ring.ogg', 35) -- if(6) -+ if("summon_guns") - target.playsound_local(null, 'sound/magic/summon_guns.ogg', 50, 1) -- if(7) -+ if("alarm") - target.playsound_local(null, 'sound/machines/alarm.ogg', 100, 0) -- if(8) -+ if("beepsky") - target.playsound_local(null, 'sound/voice/bfreeze.ogg', 35, 0) -- if(9) -+ if("hallelujah") - target.playsound_local(null, 'sound/effects/pray_chaplain.ogg', 50) - //Rare audio -- if(10) -+ if("creepy") - //These sounds are (mostly) taken from Hidden: Source - var/static/list/hallucinations_creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ - 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ -@@ -807,42 +841,42 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ - 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') - target.playsound_local(null, pick(hallucinations_creepyasssounds), 50, 1) -- if(11) -+ if("ratvar") - target.playsound_local(null, 'sound/effects/ratvar_rises.ogg', 100) - sleep(150) - target.playsound_local(null, 'sound/effects/ratvar_reveal.ogg', 100) -- if(12) -+ if("shuttle_dock") - to_chat(target, "

    Priority Announcement

    ") - to_chat(target, "

    The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

    ") - target.playsound_local(null, 'sound/ai/shuttledock.ogg', 100) - //Deconstructing a wall -- if(13) -+ if("wall_decon") - target.playsound_local(null, 'sound/items/welder.ogg', 15, 1) - sleep(105) - target.playsound_local(null, 'sound/items/welder2.ogg', 15, 1) - sleep(15) - target.playsound_local(null, 'sound/items/ratchet.ogg', 15, 1) - //Hacking a door -- if(14) -+ if("door_hack") - target.playsound_local(null, 'sound/items/screwdriver.ogg', 15, 1) - sleep(rand(10,30)) - for(var/i = rand(1,3), i>0, i--) - target.playsound_local(null, 'sound/weapons/empty.ogg', 15, 1) - sleep(rand(10,30)) - target.playsound_local(null, 'sound/machines/airlockforced.ogg', 15, 1) -- if(15) -+ if("esword") - target.playsound_local(null, 'sound/weapons/saberon.ogg',35,1) -- if(16) -+ if("blob_alert") - to_chat(target, "

    Biohazard Alert

    ") - to_chat(target, "

    Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.

    ") - target.playsound_local(null, 'sound/ai/outbreak5.ogg', 100, 0) -- if(17) //Tesla loose! -+ if("tesla") //Tesla loose! - target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 35, 1) - sleep(20) - target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 65, 1) - sleep(20) - target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 100, 1) -- if(18) //AI is doomsdaying! -+ if("malf_ai") //AI is doomsdaying! - to_chat(target, "

    Anomaly Alert

    ") - to_chat(target, "

    Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.

    ") - target.playsound_local(null, 'sound/ai/aimalf.ogg', 100, 0) -@@ -854,9 +888,10 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - /datum/hallucination/hudscrew/New(mob/living/carbon/T, forced = TRUE) - ..() - //Screwy HUD -- target.hal_screwyhud = pick(SCREWYHUD_CRIT,SCREWYHUD_DEAD,SCREWYHUD_HEALTHY) -+ target.set_screwyhud(pick(SCREWYHUD_CRIT,SCREWYHUD_DEAD,SCREWYHUD_HEALTHY)) -+ feedback_details += "Type: [target.hal_screwyhud]" - sleep(rand(100,250)) -- target.hal_screwyhud = SCREWYHUD_NONE -+ target.set_screwyhud(SCREWYHUD_NONE) - qdel(src) - - /datum/hallucination/fake_alert -@@ -867,6 +902,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - var/alert_type = pick("not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","weightless","fire","locked","hacked","temphot","tempcold","pressure") - if(specific) - alert_type = specific -+ feedback_details += "Type: [alert_type]" - switch(alert_type) - if("oxy") - target.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy, override = TRUE) -@@ -962,6 +998,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - target.halitem.icon = 'icons/obj/grenade.dmi' - target.halitem.icon_state = "flashbang1" - target.halitem.name = "Flashbang" -+ feedback_details += "Type: [target.halitem.name]" - if(target.client) target.client.screen += target.halitem - QDEL_IN(target.halitem, rand(150, 350)) - qdel(src) -@@ -1006,7 +1043,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - /datum/hallucination/death/New(mob/living/carbon/T, forced = TRUE) - set waitfor = 0 - ..() -- target.hal_screwyhud = SCREWYHUD_DEAD -+ target.set_screwyhud(SCREWYHUD_DEAD) - target.Knockdown(300) - target.silent += 10 - var/area/area = get_area(target) -@@ -1025,7 +1062,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - to_chat(target, "DEAD: [fakemob.name] says, \"[pick("rip","hey [target.first_name()]","you too?","is the AI rogue?",\ - "i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "abductors","double agents","viruses","badmins","you")]")]\"") - sleep(rand(70,90)) -- target.hal_screwyhud = SCREWYHUD_NONE -+ target.set_screwyhud(SCREWYHUD_NONE) - target.SetKnockdown(0) - target.silent = 0 - qdel(src) -@@ -1100,6 +1137,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( - startlocs += T - var/turf/start = pick(startlocs) - var/proj_type = pick(subtypesof(/obj/item/projectile/hallucination)) -+ feedback_details += "Type: [proj_type]" - var/obj/item/projectile/hallucination/H = new proj_type(start) - target.playsound_local(start, H.hal_fire_sound, 60, 1) - H.hal_target = target +/* +Ideas for the subtle effects of hallucination: + +Light up oxygen/plasma indicators (done) +Cause health to look critical/dead, even when standing (done) +Characters silently watching you +Brief flashes of fire/space/bombs/c4/dangerous shit (done) +Items that are rare/traitorous/don't exist appearing in your inventory slots (done) +Strange audio (should be rare) (done) +Gunshots/explosions/opening doors/less rare audio (done) + +*/ + +#define HAL_LINES_FILE "hallucination.json" + +/mob/living/carbon + var/image/halimage + var/image/halbody + var/obj/halitem + var/hal_screwyhud = SCREWYHUD_NONE + var/next_hallucination = 0 + +GLOBAL_LIST_INIT(hallucinations_minor, list( + /datum/hallucination/sounds, + /datum/hallucination/bolts, + /datum/hallucination/whispers, + /datum/hallucination/message, + /datum/hallucination/hudscrew)) + +GLOBAL_LIST_INIT(hallucinations_medium, list( + /datum/hallucination/fake_alert, + /datum/hallucination/items, + /datum/hallucination/items_other, + /datum/hallucination/dangerflash, + /datum/hallucination/bolts, + /datum/hallucination/fake_flood, + /datum/hallucination/husks, + /datum/hallucination/battle, + /datum/hallucination/fire, + /datum/hallucination/self_delusion)) + +GLOBAL_LIST_INIT(hallucinations_major, list( + /datum/hallucination/fakeattacker, + /datum/hallucination/death, + /datum/hallucination/xeno_attack, + /datum/hallucination/singularity_scare, + /datum/hallucination/delusion, + /datum/hallucination/oh_yeah)) + +/mob/living/carbon/proc/handle_hallucinations() + if(world.time < next_hallucination) + return + + if(hallucination) + var/list/current = GLOB.hallucinations_minor + if(prob(25) && hallucination > 100) + current = GLOB.hallucinations_medium + else if(prob(10) && hallucination > 200) + current = GLOB.hallucinations_major + var/halpick = pick(current) + new halpick(src, FALSE) + +/mob/living/carbon/proc/set_screwyhud(hud_type) + hal_screwyhud = hud_type + update_health_hud() + +/datum/hallucination + var/mob/living/carbon/target + var/cost = 5 //affects the amount of hallucination reduced, and cooldown until the next hallucination + var/feedback_details //extra info for investigate + +/datum/hallucination/New(mob/living/carbon/T, forced = TRUE) + set waitfor = 0 + target = T + if(!forced) + target.hallucination = max(0, target.hallucination - cost) + target.next_hallucination = world.time + (rand(cost * 0.5, cost * 3) * 10) + +/datum/hallucination/proc/wake_and_restore() + target.set_screwyhud(SCREWYHUD_NONE) + target.SetSleeping(0) + +/datum/hallucination/Destroy() + target.investigate_log("was afflicted with a hallucination of type [type]. [feedback_details]", INVESTIGATE_HALLUCINATIONS) + return ..() + +/obj/effect/hallucination + invisibility = INVISIBILITY_OBSERVER + var/mob/living/carbon/target = null + +/obj/effect/hallucination/simple + var/image_icon = 'icons/mob/alien.dmi' + var/image_state = "alienh_pounce" + var/px = 0 + var/py = 0 + var/col_mod = null + var/image/current_image = null + var/image_layer = MOB_LAYER + var/active = TRUE //qdelery + +/obj/effect/hallucination/simple/Initialize(mapload, var/mob/living/carbon/T) + ..() + target = T + current_image = GetImage() + if(target.client) + target.client.images |= current_image + +/obj/effect/hallucination/simple/proc/GetImage() + var/image/I = image(image_icon,src,image_state,image_layer,dir=src.dir) + I.pixel_x = px + I.pixel_y = py + if(col_mod) + I.color = col_mod + return I + +/obj/effect/hallucination/simple/proc/Show(update=1) + if(active) + if(target.client) + target.client.images.Remove(current_image) + if(update) + current_image = GetImage() + if(target.client) + target.client.images |= current_image + +/obj/effect/hallucination/simple/update_icon(new_state,new_icon,new_px=0,new_py=0) + image_state = new_state + if(new_icon) + image_icon = new_icon + else + image_icon = initial(image_icon) + px = new_px + py = new_py + Show() + +/obj/effect/hallucination/simple/Moved(atom/OldLoc, Dir) + Show() + +/obj/effect/hallucination/simple/Destroy() + if(target.client) + target.client.images.Remove(current_image) + active = FALSE + return ..() + +#define FAKE_FLOOD_EXPAND_TIME 20 +#define FAKE_FLOOD_MAX_RADIUS 10 + +/datum/hallucination/fake_flood + //Plasma starts flooding from the nearby vent + var/turf/center + var/list/flood_images = list() + var/list/turf/flood_turfs = list() + var/image_icon = 'icons/effects/tile_effects.dmi' + var/image_state = "plasma" + var/radius = 0 + var/next_expand = 0 + cost = 25 + +/datum/hallucination/fake_flood/New(mob/living/carbon/T, forced = TRUE) + ..() + for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) + if(!U.welded) + center = get_turf(U) + break + feedback_details += "Vent Coords: [center.x],[center.y],[center.z]" + flood_images += image(image_icon,center,image_state,MOB_LAYER) + flood_turfs += center + if(target.client) target.client.images |= flood_images + next_expand = world.time + FAKE_FLOOD_EXPAND_TIME + START_PROCESSING(SSobj, src) + +/datum/hallucination/fake_flood/process() + if(next_expand <= world.time) + radius++ + if(radius > FAKE_FLOOD_MAX_RADIUS) + qdel(src) + return + Expand() + if((get_turf(target) in flood_turfs) && !target.internal) + new /datum/hallucination/fake_alert(target, TRUE, "tox_in_air") + next_expand = world.time + FAKE_FLOOD_EXPAND_TIME + +/datum/hallucination/fake_flood/proc/Expand() + for(var/turf/FT in flood_turfs) + for(var/dir in GLOB.cardinals) + var/turf/T = get_step(FT, dir) + if((T in flood_turfs) || !FT.CanAtmosPass(T)) + continue + flood_images += image(image_icon,T,image_state,MOB_LAYER) + flood_turfs += T + if(target.client) + target.client.images |= flood_images + +/datum/hallucination/fake_flood/Destroy() + STOP_PROCESSING(SSobj, src) + qdel(flood_turfs) + flood_turfs = list() + if(target.client) + target.client.images.Remove(flood_images) + target = null + qdel(flood_images) + flood_images = list() + return ..() + +/obj/effect/hallucination/simple/xeno + image_icon = 'icons/mob/alien.dmi' + image_state = "alienh_pounce" + +/obj/effect/hallucination/simple/xeno/Initialize(mapload, mob/living/carbon/T) + ..() + name = "alien hunter ([rand(1, 1000)])" + +/obj/effect/hallucination/simple/xeno/throw_impact(A) + update_icon("alienh_pounce") + if(A == target && target.stat!=DEAD) + target.Knockdown(100) + target.visible_message("[target] flails around wildly.","[name] pounces on you!") + +/datum/hallucination/xeno_attack + //Xeno crawls from nearby vent,jumps at you, and goes back in + var/obj/machinery/atmospherics/components/unary/vent_pump/pump = null + var/obj/effect/hallucination/simple/xeno/xeno = null + cost = 25 + +/datum/hallucination/xeno_attack/New(mob/living/carbon/T, forced = TRUE) + ..() + for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) + if(!U.welded) + pump = U + break + feedback_details += "Vent Coords: [pump.x],[pump.y],[pump.z]" + if(pump) + xeno = new(pump.loc,target) + sleep(10) + xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32) + xeno.throw_at(target,7,1, spin = 0, diagonals_first = 1) + sleep(10) + xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32) + xeno.throw_at(pump,7,1, spin = 0, diagonals_first = 1) + sleep(10) + var/xeno_name = xeno.name + to_chat(target, "[xeno_name] begins climbing into the ventilation system...") + sleep(30) + qdel(xeno) + to_chat(target, "[xeno_name] scrambles into the ventilation ducts!") + qdel(src) + +/obj/effect/hallucination/simple/clown + image_icon = 'icons/mob/animal.dmi' + image_state = "clown" + +/obj/effect/hallucination/simple/clown/Initialize(mapload, mob/living/carbon/T, duration) + ..(loc, T) + name = pick(GLOB.clown_names) + QDEL_IN(src,duration) + +/obj/effect/hallucination/simple/clown/scary + image_state = "scary_clown" + +/obj/effect/hallucination/simple/bubblegum + name = "Bubblegum" + image_icon = 'icons/mob/lavaland/96x96megafauna.dmi' + image_state = "bubblegum" + px = -32 + +/datum/hallucination/oh_yeah + var/obj/effect/hallucination/simple/bubblegum/bubblegum + var/image/fakebroken + var/image/fakerune + cost = 75 + +/datum/hallucination/oh_yeah/New(mob/living/carbon/T, forced = TRUE) + . = ..() + var/turf/closed/wall/wall + for(var/turf/closed/wall/W in range(7,target)) + wall = W + break + if(!wall) + return INITIALIZE_HINT_QDEL + feedback_details += "Source: [wall.x],[wall.y],[wall.z]" + + fakebroken = image('icons/turf/floors.dmi', wall, "plating", layer = TURF_LAYER) + var/turf/landing = get_turf(target) + var/turf/landing_image_turf = get_step(landing, SOUTHWEST) //the icon is 3x3 + fakerune = image('icons/effects/96x96.dmi', landing_image_turf, "landing", layer = ABOVE_OPEN_TURF_LAYER) + fakebroken.override = TRUE + if(target.client) + target.client.images |= fakebroken + target.client.images |= fakerune + target.playsound_local(wall,'sound/effects/meteorimpact.ogg', 150, 1) + bubblegum = new(wall, target) + addtimer(CALLBACK(src, .proc/bubble_attack, landing), 10) + +/datum/hallucination/oh_yeah/proc/bubble_attack(turf/landing) + var/charged = FALSE //only get hit once + while(get_turf(bubblegum) != landing && target && target.stat != DEAD) + bubblegum.forceMove(get_step_towards(bubblegum, landing)) + bubblegum.setDir(get_dir(bubblegum, landing)) + target.playsound_local(get_turf(bubblegum), 'sound/effects/meteorimpact.ogg', 150, 1) + shake_camera(target, 2, 1) + if(bubblegum.Adjacent(target) && !charged) + charged = TRUE + target.Knockdown(80) + target.adjustStaminaLoss(40) + step_away(target, bubblegum) + shake_camera(target, 4, 3) + target.visible_message("[target] jumps backwards, falling on the ground!","[bubblegum] slams into you!") + sleep(2) + sleep(30) + qdel(src) + +/datum/hallucination/oh_yeah/Destroy() + if(target.client) + target.client.images.Remove(fakebroken) + target.client.images.Remove(fakerune) + QDEL_NULL(fakebroken) + QDEL_NULL(fakerune) + QDEL_NULL(bubblegum) + return ..() + +/datum/hallucination/singularity_scare + //Singularity moving towards you. + //todo Hide where it moved with fake space images + var/obj/effect/hallucination/simple/singularity/s = null + cost = 75 + +/datum/hallucination/singularity_scare/New(mob/living/carbon/T, forced = TRUE) + ..() + var/turf/start = get_turf(T) + var/screen_border = pick(SOUTH,EAST,WEST,NORTH) + for(var/i in 1 to 13) + start = get_step(start,screen_border) + feedback_details += "Source: [start.x],[start.y],[start.z]" + s = new(start,target) + s.parent = src + for(var/i in 1 to 13) + sleep(10) + s.forceMove(get_step(get_turf(s),get_dir(s,target))) + s.Show() + s.Eat() + qdel(s) + +/obj/effect/hallucination/simple/singularity + image_icon = 'icons/effects/224x224.dmi' + image_state = "singularity_s7" + image_layer = MASSIVE_OBJ_LAYER + px = -96 + py = -96 + var/datum/hallucination/singularity_scare/parent + +/obj/effect/hallucination/simple/singularity/proc/Eat(atom/OldLoc, Dir) + var/target_dist = get_dist(src,target) + if(target_dist<=3) //"Eaten" + target.set_screwyhud(SCREWYHUD_DEAD) + target.SetUnconscious(160) + addtimer(CALLBACK(parent, /datum/hallucination/.proc/wake_and_restore), rand(30, 50)) + +/datum/hallucination/battle + cost = 15 + +/datum/hallucination/battle/New(mob/living/carbon/T, forced = TRUE, battle_type) + ..() + var/hits = rand(3,6) + if(!battle_type) + battle_type = pick("laser","esword","gun","stunprod","bomb") + feedback_details += "Type: [battle_type]" + switch(battle_type) + if("laser") //Laser fight + for(var/i in 1 to hits) + target.playsound_local(null, 'sound/weapons/laser.ogg', 25, 1) + if(prob(50)) + addtimer(CALLBACK(target, /mob/.proc/playsound_local, null, 'sound/weapons/sear.ogg', 25, 1), rand(10,20)) + else + addtimer(CALLBACK(target, /mob/.proc/playsound_local, null, 'sound/weapons/effects/searwall.ogg', 25, 1), rand(10,20)) + sleep(rand(CLICK_CD_RANGE, CLICK_CD_RANGE + 8)) + target.playsound_local(null, get_sfx("bodyfall"), 25, 1) + if("esword") //Esword fight + target.playsound_local(null, 'sound/weapons/saberon.ogg',15, 1) + for(var/i=0,i...wabbajack...wabbajack...") + target.playsound_local(target,'sound/magic/staff_change.ogg', 50, 1) + delusion = A + target.client.images |= A + QDEL_IN(src, duration) + +/datum/hallucination/self_delusion/Destroy() + if(target.client) + target.client.images.Remove(delusion) + return ..() + +/datum/hallucination/fakeattacker/New(mob/living/carbon/T, forced = TRUE) + ..() + var/mob/living/carbon/human/clone = null + var/clone_weapon = null + + for(var/mob/living/carbon/human/H in GLOB.living_mob_list) + if(H.stat || H.lying) + continue + clone = H + feedback_details += "Clone of: [H.real_name]" + break + + if(!clone) + return + + var/static/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/ballistic, /obj/item/ammo_box/a357,\ + /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, /obj/item/weapon/melee/transforming/energy/sword/saber,\ + /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ + /obj/item/weapon/cartridge/virus/syndicate, /obj/item/clothing/under/chameleon,\ + /obj/item/clothing/shoes/chameleon, /obj/item/weapon/card/id/syndicate,\ + /obj/item/clothing/mask/chameleon, /obj/item/clothing/glasses/thermal,\ + /obj/item/device/chameleon, /obj/item/weapon/card/emag, /obj/item/weapon/grenade/plastic/x4,\ + /obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/aiModule,\ + /obj/item/device/radio/headset/syndicate, /obj/item/weapon/grenade/plastic/c4,\ + /obj/item/device/powersink, /obj/item/weapon/storage/box/syndie_kit,\ + /obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\ + /obj/item/weapon/hand_tele, /obj/item/weapon/construction/rcd, /obj/item/weapon/tank/jetpack,\ + /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ + /obj/item/clothing/shoes/magboots, /obj/item/areaeditor/blueprints, /obj/item/weapon/disk/nuclear,\ + /obj/item/clothing/suit/space/nasavoid, /obj/item/weapon/tank) + + var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(get_turf(target),target) + + for(var/obj/item/I in clone.held_items) + if(!(locate(I) in non_fakeattack_weapons)) + clone_weapon = I.name + F.weap = I + + F.name = clone.name + F.my_target = target + F.weapon_name = clone_weapon + + F.left = image(clone,dir = WEST) + F.right = image(clone,dir = EAST) + F.up = image(clone,dir = NORTH) + F.down = image(clone,dir = SOUTH) + + F.updateimage() + qdel(src) + +/obj/effect/fake_attacker + icon = null + icon_state = null + name = "" + desc = "" + density = FALSE + anchored = TRUE + opacity = 0 + var/mob/living/carbon/human/my_target = null + var/weapon_name = null + var/obj/item/weap = null + var/image/stand_icon = null + var/image/currentimage = null + var/icon/base = null + var/skin_tone + var/mob/living/clone = null + var/image/left + var/image/right + var/image/up + var/collapse + var/image/down + + max_integrity = 100 + +/obj/effect/fake_attacker/attackby(obj/item/weapon/P, mob/living/user, params) + step_away(src,my_target,2) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + my_target.playsound_local(src, P.hitsound, 1) + my_target.visible_message("[my_target] flails around wildly.", \ + "[my_target] has attacked [src]!") + + obj_integrity -= P.force + +/obj/effect/fake_attacker/Crossed(mob/M, somenumber) + if(M == my_target) + step_away(src,my_target,2) + if(prob(30)) + for(var/mob/O in oviewers(world.view , my_target)) + to_chat(O, "[my_target] stumbles around.") + +/obj/effect/fake_attacker/Initialize(mapload, mob/living/carbon/T) + ..() + my_target = T + QDEL_IN(src, 300) + step_away(src,my_target,2) + INVOKE_ASYNC(src, .proc/attack_loop) + + +/obj/effect/fake_attacker/proc/updateimage() +// del src.currentimage + if(src.dir == NORTH) + del src.currentimage + src.currentimage = new /image(up,src) + else if(src.dir == SOUTH) + del src.currentimage + src.currentimage = new /image(down,src) + else if(src.dir == EAST) + del src.currentimage + src.currentimage = new /image(right,src) + else if(src.dir == WEST) + del src.currentimage + src.currentimage = new /image(left,src) + SEND_IMAGE(my_target, currentimage) + + +/obj/effect/fake_attacker/proc/attack_loop() + while(1) + sleep(rand(5,10)) + if(obj_integrity < 0 || my_target.stat) + collapse() + continue + if(get_dist(src,my_target) > 1) + src.setDir(get_dir(src,my_target)) + step_towards(src,my_target) + updateimage() + else + if(prob(15)) + if(weapon_name) + my_target.playsound_local(my_target, weap.hitsound, weap.get_clamped_volume(), 1) + my_target.show_message("[src.name] has attacked [my_target] with [weapon_name]!", 1) + my_target.staminaloss += 30 + if(prob(20)) + my_target.blur_eyes(3) + if(prob(33)) + if(!locate(/obj/effect/overlay) in my_target.loc) + fake_blood(my_target) + else + my_target.playsound_local(my_target, pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'), 25, 1) + my_target.show_message("[src.name] has punched [my_target]!", 1) + my_target.staminaloss += 30 + if(prob(33)) + if(!locate(/obj/effect/overlay) in my_target.loc) + fake_blood(my_target) + + if(prob(15)) + step_away(src,my_target,2) + +/obj/effect/fake_attacker/proc/collapse() + collapse = 1 + updateimage() + qdel(src) + +/obj/effect/fake_attacker/proc/fake_blood(mob/target) + var/obj/effect/overlay/O = new/obj/effect/overlay(target.loc) + O.name = "blood" + var/image/I = image('icons/effects/blood.dmi',O,"floor[rand(1,7)]",O.dir,1) + SEND_IMAGE(target, I) + QDEL_IN(O, 300) + + +/datum/hallucination/bolts + var/list/doors = list() + cost = 25 + +/datum/hallucination/bolts/New(mob/living/carbon/T, forced, door_number=-1) //-1 for severe, 1-2 for subtle + ..() + var/image/I = null + var/count = 0 + feedback_details += "Door amount: [door_number]" + for(var/obj/machinery/door/airlock/A in range(7, target)) + if(count>door_number && door_number>0) + break + count++ + I = image(A.overlays_file, get_turf(A), "lights_bolts",layer=A.layer+0.1) + doors += I + if(target.client) + target.client.images |= I + target.playsound_local(get_turf(A), 'sound/machines/boltsdown.ogg',30,0,3) + sleep(rand(6,12)) + sleep(100) + for(var/image/B in doors) + if(target.client) + target.client.images.Remove(B) + target.playsound_local(get_turf(B), 'sound/machines/boltsup.ogg',30,0,3) + sleep(rand(6,12)) + qdel(src) + +/datum/hallucination/whispers + cost = 15 + +/datum/hallucination/whispers/New(mob/living/carbon/T, forced = TRUE) + ..() + var/speak_messages = list("[pick_list_replacements(HAL_LINES_FILE, "suspicion")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "greetings")][target.first_name()]!",\ + "[pick_list_replacements(HAL_LINES_FILE, "getout")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "weird")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "didyouhearthat")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "imatraitor")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "doubt")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "aggressive")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "help")]!!",\ + "[pick_list_replacements(HAL_LINES_FILE, "escape")]",\ + "I'm infected, [pick_list_replacements(HAL_LINES_FILE, "infection_advice")]!") + + var/radio_messages = list("Set [target.first_name()] to arrest!",\ + "[pick_list_replacements(HAL_LINES_FILE, "people")] is [pick_list_replacements(HAL_LINES_FILE, "accusations")]!",\ + "Help!",\ + "[pick_list_replacements(HAL_LINES_FILE, "threat")] in [pick_list_replacements(HAL_LINES_FILE, "location")][prob(50)?"!":"!!"]",\ + "Where's [target.first_name()]?"\ + ,"[pick("C","Ai, c","Someone c","Rec")]all the shuttle!"\ + ,"AI [pick("rogue", "is dead")]!!") + + var/list/mob/living/carbon/people = list() + var/list/mob/living/carbon/person = null + var/datum/language/understood_language = target.get_random_understood_language() + for(var/mob/living/carbon/H in view(target)) + if(H == target) + continue + if(!person) + person = H + else + if(get_dist(target,H)The light burns you!", \ + "You don't feel like yourself.", \ + "You hear something squeezing through the ducts...", \ + "You hear a distant scream.", \ + "You feel invincible, nothing can hurt you!", \ + "You feel a tiny prick!", \ + "[target] sneezes.", \ + //The truth, revealed + "You're hallucinating.", \ + //Direct advice + "[pick_list_replacements(HAL_LINES_FILE, "advice")]") + feedback_details += "Message: [chosen]" + to_chat(target, chosen) + qdel(src) + +/datum/hallucination/sounds + cost = 15 + +/datum/hallucination/sounds/New(mob/living/carbon/T, forced = TRUE, sound_type) + ..() + if(!sound_type) + sound_type = pick("airlock","explosion","far_explosion","glass","phone","summon_guns","alarm","beepsky","hallelujah","creepy","ratvar","shuttle_dock", + "wall_decon","door_hack","esword","blob_alert","tesla","malf_ai") + feedback_details += "Type: [sound_type]" + //Strange audio + switch(sound_type) + if("airlock") + target.playsound_local(null,'sound/machines/airlock.ogg', 15, 1) + if("explosion") + if(prob(50)) + target.playsound_local(null,'sound/effects/explosion1.ogg', 50, 1) + else + target.playsound_local(null, 'sound/effects/explosion2.ogg', 50, 1) + if("far_explosion") + target.playsound_local(null, 'sound/effects/explosionfar.ogg', 50, 1) + if("glass") + target.playsound_local(null, pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg'), 50, 1) + if("phone") + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + sleep(15) + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + sleep(15) + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + if("summon_guns") + target.playsound_local(null, 'sound/magic/summon_guns.ogg', 50, 1) + if("alarm") + target.playsound_local(null, 'sound/machines/alarm.ogg', 100, 0) + if("beepsky") + target.playsound_local(null, 'sound/voice/bfreeze.ogg', 35, 0) + if("hallelujah") + target.playsound_local(null, 'sound/effects/pray_chaplain.ogg', 50) + //Rare audio + if("creepy") + //These sounds are (mostly) taken from Hidden: Source + var/static/list/hallucinations_creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ + 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ + 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ + 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ + 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') + target.playsound_local(null, pick(hallucinations_creepyasssounds), 50, 1) + if("ratvar") + target.playsound_local(null, 'sound/effects/ratvar_rises.ogg', 100) + sleep(150) + target.playsound_local(null, 'sound/effects/ratvar_reveal.ogg', 100) + if("shuttle_dock") + to_chat(target, "

    Priority Announcement

    ") + to_chat(target, "

    The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

    ") + target.playsound_local(null, 'sound/ai/shuttledock.ogg', 100) + //Deconstructing a wall + if("wall_decon") + target.playsound_local(null, 'sound/items/welder.ogg', 15, 1) + sleep(105) + target.playsound_local(null, 'sound/items/welder2.ogg', 15, 1) + sleep(15) + target.playsound_local(null, 'sound/items/ratchet.ogg', 15, 1) + //Hacking a door + if("door_hack") + target.playsound_local(null, 'sound/items/screwdriver.ogg', 15, 1) + sleep(rand(10,30)) + for(var/i = rand(1,3), i>0, i--) + target.playsound_local(null, 'sound/weapons/empty.ogg', 15, 1) + sleep(rand(10,30)) + target.playsound_local(null, 'sound/machines/airlockforced.ogg', 15, 1) + if("esword") + target.playsound_local(null, 'sound/weapons/saberon.ogg',35,1) + if("blob_alert") + to_chat(target, "

    Biohazard Alert

    ") + to_chat(target, "

    Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.

    ") + target.playsound_local(null, 'sound/ai/outbreak5.ogg', 100, 0) + if("tesla") //Tesla loose! + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 35, 1) + sleep(20) + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 65, 1) + sleep(20) + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 100, 1) + if("malf_ai") //AI is doomsdaying! + to_chat(target, "

    Anomaly Alert

    ") + to_chat(target, "

    Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.

    ") + target.playsound_local(null, 'sound/ai/aimalf.ogg', 100, 0) + qdel(src) + +/datum/hallucination/hudscrew + cost = 10 + +/datum/hallucination/hudscrew/New(mob/living/carbon/T, forced = TRUE) + ..() + //Screwy HUD + target.set_screwyhud(pick(SCREWYHUD_CRIT,SCREWYHUD_DEAD,SCREWYHUD_HEALTHY)) + feedback_details += "Type: [target.hal_screwyhud]" + sleep(rand(100,250)) + target.set_screwyhud(SCREWYHUD_NONE) + qdel(src) + +/datum/hallucination/fake_alert + cost = 15 + +/datum/hallucination/fake_alert/New(mob/living/carbon/T, forced = TRUE, specific, duration = 150) + ..() + var/alert_type = pick("not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","weightless","fire","locked","hacked","temphot","tempcold","pressure") + if(specific) + alert_type = specific + feedback_details += "Type: [alert_type]" + switch(alert_type) + if("oxy") + target.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy, override = TRUE) + if("not_enough_tox") + target.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox, override = TRUE) + if("not_enough_co2") + target.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2, override = TRUE) + if("too_much_oxy") + target.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy, override = TRUE) + if("too_much_co2") + target.throw_alert("too_much_co2", /obj/screen/alert/too_much_co2, override = TRUE) + if("tox_in_air") + target.throw_alert("too_much_tox", /obj/screen/alert/too_much_tox, override = TRUE) + if("nutrition") + if(prob(50)) + target.throw_alert("nutrition", /obj/screen/alert/fat, override = TRUE) + else + target.throw_alert("nutrition", /obj/screen/alert/starving, override = TRUE) + if("weightless") + target.throw_alert("weightless", /obj/screen/alert/weightless, override = TRUE) + if("fire") + target.throw_alert("fire", /obj/screen/alert/fire, override = TRUE) + if("temphot") + target.throw_alert("temp", /obj/screen/alert/hot, 3, override = TRUE) + if("tempcold") + target.throw_alert("temp", /obj/screen/alert/cold, 3, override = TRUE) + if("pressure") + if(prob(50)) + target.throw_alert("pressure", /obj/screen/alert/highpressure, 2, override = TRUE) + else + target.throw_alert("pressure", /obj/screen/alert/lowpressure, 2, override = TRUE) + //BEEP BOOP I AM A ROBOT + if("newlaw") + target.throw_alert("newlaw", /obj/screen/alert/newlaw, override = TRUE) + if("locked") + target.throw_alert("locked", /obj/screen/alert/locked, override = TRUE) + if("hacked") + target.throw_alert("hacked", /obj/screen/alert/hacked, override = TRUE) + if("charge") + target.throw_alert("charge",/obj/screen/alert/emptycell, override = TRUE) + sleep(duration) + target.clear_alert(alert_type, clear_override = TRUE) + qdel(src) + +/datum/hallucination/items + cost = 15 + +/datum/hallucination/items/New(mob/living/carbon/T, forced = TRUE) + ..() + //Strange items + if(!target.halitem) + target.halitem = new + var/obj/item/l_hand = target.get_item_for_held_index(1) + var/obj/item/r_hand = target.get_item_for_held_index(2) + var/l = ui_hand_position(target.get_held_index_of_item(l_hand)) + var/r = ui_hand_position(target.get_held_index_of_item(r_hand)) + var/list/slots_free = list(l,r) + if(l_hand) slots_free -= l + if(r_hand) slots_free -= r + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(!H.belt) slots_free += ui_belt + if(!H.l_store) slots_free += ui_storage1 + if(!H.r_store) slots_free += ui_storage2 + if(slots_free.len) + target.halitem.screen_loc = pick(slots_free) + target.halitem.layer = ABOVE_HUD_LAYER + target.halitem.plane = ABOVE_HUD_PLANE + switch(rand(1,6)) + if(1) //revolver + target.halitem.icon = 'icons/obj/guns/projectile.dmi' + target.halitem.icon_state = "revolver" + target.halitem.name = "Revolver" + if(2) //c4 + target.halitem.icon = 'icons/obj/grenade.dmi' + target.halitem.icon_state = "plastic-explosive0" + target.halitem.name = "C4" + if(prob(25)) + target.halitem.icon_state = "plasticx40" + if(3) //sword + target.halitem.icon = 'icons/obj/weapons.dmi' + target.halitem.icon_state = "sword0" + target.halitem.name = "Energy Sword" + if(4) //stun baton + target.halitem.icon = 'icons/obj/weapons.dmi' + target.halitem.icon_state = "stunbaton" + target.halitem.name = "Stun Baton" + if(5) //emag + target.halitem.icon = 'icons/obj/card.dmi' + target.halitem.icon_state = "emag" + target.halitem.name = "Cryptographic Sequencer" + if(6) //flashbang + target.halitem.icon = 'icons/obj/grenade.dmi' + target.halitem.icon_state = "flashbang1" + target.halitem.name = "Flashbang" + feedback_details += "Type: [target.halitem.name]" + if(target.client) target.client.screen += target.halitem + QDEL_IN(target.halitem, rand(150, 350)) + qdel(src) + +/datum/hallucination/dangerflash + cost = 15 + +/datum/hallucination/dangerflash/New(mob/living/carbon/T, forced = TRUE) + ..() + //Flashes of danger + if(!target.halimage) + var/list/possible_points = list() + for(var/turf/open/floor/F in view(target,world.view)) + possible_points += F + if(possible_points.len) + var/turf/open/floor/danger_point = pick(possible_points) + + switch(rand(1,5)) + if(1) + target.halimage = image('icons/turf/space.dmi',danger_point,"[rand(1,25)]",TURF_LAYER) + if(2) + target.halimage = image('icons/turf/floors/lava.dmi',danger_point,"smooth",TURF_LAYER) + if(3) + target.halimage = image('icons/turf/floors/Chasms.dmi',danger_point,"smooth",TURF_LAYER) + if(4) + target.halimage = image('icons/effects/effects.dmi',danger_point,"anom",OBJ_LAYER+0.01) + if(5) + target.halimage = image('icons/effects/effects.dmi',danger_point,"electricity2",OBJ_LAYER+0.01) + + + if(target.client) + target.client.images += target.halimage + sleep(rand(200,450)) + if(target.client) + target.client.images -= target.halimage + QDEL_NULL(target.halimage) + qdel(src) + +/datum/hallucination/death + cost = 40 + +/datum/hallucination/death/New(mob/living/carbon/T, forced = TRUE) + set waitfor = 0 + ..() + target.set_screwyhud(SCREWYHUD_DEAD) + target.Knockdown(300) + target.silent += 10 + var/area/area = get_area(target) + to_chat(target, "[target.mind.name] has died at [area.name].") + if(prob(50)) + var/mob/fakemob + var/list/dead_people = list() + for(var/mob/dead/observer/G in GLOB.player_list) + dead_people += G + if(LAZYLEN(dead_people)) + fakemob = pick(dead_people) + else + fakemob = target //ever been so lonely you had to haunt yourself? + if(fakemob) + sleep(rand(20, 50)) + to_chat(target, "DEAD: [fakemob.name] says, \"[pick("rip","hey [target.first_name()]","you too?","is the AI rogue?",\ + "i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "abductors","double agents","viruses","badmins","you")]")]\"") + sleep(rand(70,90)) + target.set_screwyhud(SCREWYHUD_NONE) + target.SetKnockdown(0) + target.silent = 0 + qdel(src) + +/datum/hallucination/fire + cost = 25 + +/datum/hallucination/fire/New(mob/living/carbon/T, forced = TRUE) + ..() + var/image/fire_overlay = image('icons/mob/OnFire.dmi', target, "Standing", ABOVE_MOB_LAYER) + if(target.client) + target.client.images += fire_overlay + to_chat(target, "You're set on fire!") + target.throw_alert("fire", /obj/screen/alert/fire, override = TRUE) + sleep(20) + target.throw_alert("temp", /obj/screen/alert/hot, 1, override = TRUE) + sleep(30) + target.clear_alert("temp", clear_override = TRUE) + target.throw_alert("temp", /obj/screen/alert/hot, 2, override = TRUE) + sleep(30) + target.clear_alert("temp", clear_override = TRUE) + target.throw_alert("temp", /obj/screen/alert/hot, 3, override = TRUE) + for(var/i in 1 to rand(5, 10)) + target.adjustStaminaLoss(15) + sleep(25) + target.clear_alert("fire", clear_override = TRUE) + target.clear_alert("temp", clear_override = TRUE) + if(target.client) + target.client.images -= fire_overlay + QDEL_NULL(fire_overlay) + qdel(src) + +/datum/hallucination/husks + cost = 20 + +/datum/hallucination/husks/New(mob/living/carbon/T, forced = TRUE) + ..() + if(!target.halbody) + var/list/possible_points = list() + for(var/turf/open/floor/F in view(target,world.view)) + possible_points += F + if(possible_points.len) + var/turf/open/floor/husk_point = pick(possible_points) + switch(rand(1,4)) + if(1) + var/image/body = image('icons/mob/human.dmi',husk_point,"husk",TURF_LAYER) + var/matrix/M = matrix() + M.Turn(90) + body.transform = M + target.halbody = body + if(2,3) + target.halbody = image('icons/mob/human.dmi',husk_point,"husk",TURF_LAYER) + if(4) + target.halbody = image('icons/mob/alien.dmi',husk_point,"alienother",TURF_LAYER) + + if(target.client) + target.client.images += target.halbody + sleep(rand(30,50)) //Only seen for a brief moment. + if(target.client) + target.client.images -= target.halbody + QDEL_NULL(target.halbody) + qdel(src) + +//hallucination projectile code in code/modules/projectiles/projectile/special.dm +/datum/hallucination/stray_bullet + cost = 15 + +/datum/hallucination/stray_bullet/New(mob/living/carbon/C, forced = TRUE) + ..() + var/list/turf/startlocs = list() + for(var/turf/open/T in view(world.view+1,target)-view(world.view,target)) + startlocs += T + var/turf/start = pick(startlocs) + var/proj_type = pick(subtypesof(/obj/item/projectile/hallucination)) + feedback_details += "Type: [proj_type]" + var/obj/item/projectile/hallucination/H = new proj_type(start) + target.playsound_local(start, H.hal_fire_sound, 60, 1) + H.hal_target = target + H.current = start + H.starting = start + H.yo = target.y - start.y + H.xo = target.x - start.x + H.original = target + H.fire() + qdel(src) + From 822cddc718e534720ecccfc8b9b206decfe9c4e0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 08:55:45 -0500 Subject: [PATCH 106/113] Update Hallucination.dm --- code/modules/flufftext/Hallucination.dm | 798 +++++++++++++----------- 1 file changed, 432 insertions(+), 366 deletions(-) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 6ae32a9d6a..2b8fe4b064 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -18,46 +18,76 @@ Gunshots/explosions/opening doors/less rare audio (done) var/image/halbody var/obj/halitem var/hal_screwyhud = SCREWYHUD_NONE - var/handling_hal = 0 + var/next_hallucination = 0 + +GLOBAL_LIST_INIT(hallucinations_minor, list( + /datum/hallucination/sounds, + /datum/hallucination/bolts, + /datum/hallucination/whispers, + /datum/hallucination/message, + /datum/hallucination/hudscrew)) + +GLOBAL_LIST_INIT(hallucinations_medium, list( + /datum/hallucination/fake_alert, + /datum/hallucination/items, + /datum/hallucination/items_other, + /datum/hallucination/dangerflash, + /datum/hallucination/bolts, + /datum/hallucination/fake_flood, + /datum/hallucination/husks, + /datum/hallucination/battle, + /datum/hallucination/fire, + /datum/hallucination/self_delusion)) + +GLOBAL_LIST_INIT(hallucinations_major, list( + /datum/hallucination/fakeattacker, + /datum/hallucination/death, + /datum/hallucination/xeno_attack, + /datum/hallucination/singularity_scare, + /datum/hallucination/delusion, + /datum/hallucination/oh_yeah)) /mob/living/carbon/proc/handle_hallucinations() - if(handling_hal) + if(world.time < next_hallucination) return - //Least obvious - var/list/minor = list("sounds"=25,"bolts_minor"=5,"whispers"=15,"message"=10,"hudscrew"=15) - //Something's wrong here - var/list/medium = list("fake_alert"=15,"items"=10,"items_other"=10,"dangerflash"=10,"bolts"=5,"flood"=5,"husks"=10,"battle"=15,"self_delusion"=10) - //AAAAH - var/list/major = list("fake"=20,"death"=10,"xeno"=10,"singulo"=10,"borer"=10,"delusion"=20,"koolaid"=10) + if(hallucination) + var/list/current = GLOB.hallucinations_minor + if(prob(25) && hallucination > 100) + current = GLOB.hallucinations_medium + else if(prob(10) && hallucination > 200) + current = GLOB.hallucinations_major + var/halpick = pick(current) + new halpick(src, FALSE) - handling_hal = 1 - while(hallucination > 20) - sleep(rand(200,500)/(hallucination/25)) - if(prob(20)) - continue - var/list/current = list() - switch(rand(100)) - if(1 to 50) - current = minor - if(51 to 85) - current = medium - if(86 to 100) - current = major +/mob/living/carbon/proc/set_screwyhud(hud_type) + hal_screwyhud = hud_type + update_health_hud() - var/halpick = pickweight(current) +/datum/hallucination + var/mob/living/carbon/target + var/cost = 5 //affects the amount of hallucination reduced, and cooldown until the next hallucination + var/feedback_details //extra info for investigate - hallucinate(halpick) - handling_hal = 0 +/datum/hallucination/New(mob/living/carbon/T, forced = TRUE) + set waitfor = 0 + target = T + if(!forced) + target.hallucination = max(0, target.hallucination - cost) + target.next_hallucination = world.time + (rand(cost * 0.5, cost * 3) * 10) + +/datum/hallucination/proc/wake_and_restore() + target.set_screwyhud(SCREWYHUD_NONE) + target.SetSleeping(0) + +/datum/hallucination/Destroy() + target.investigate_log("was afflicted with a hallucination of type [type]. [feedback_details]", INVESTIGATE_HALLUCINATIONS) + return ..() /obj/effect/hallucination invisibility = INVISIBILITY_OBSERVER var/mob/living/carbon/target = null -/obj/effect/hallucination/proc/wake_and_restore() - target.hal_screwyhud = SCREWYHUD_NONE - target.SetSleeping(0) - /obj/effect/hallucination/simple var/image_icon = 'icons/mob/alien.dmi' var/image_state = "alienh_pounce" @@ -226,39 +256,6 @@ Gunshots/explosions/opening doors/less rare audio (done) /obj/effect/hallucination/simple/clown/scary image_state = "scary_clown" -/obj/effect/hallucination/simple/borer - image_icon = 'icons/mob/borer.dmi' - image_state = "brainslug" - -/obj/effect/hallucination/borer - //A borer unconsciouss you and crawls in your ear - var/obj/machinery/atmospherics/components/unary/vent_pump/pump = null - var/obj/effect/hallucination/simple/borer/borer = null - -/obj/effect/hallucination/borer/Initialize(mapload, var/mob/living/carbon/T) - ..() - target = T - for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) - if(!U.welded) - pump = U - break - if(pump) - borer = new(pump.loc,target) - for(var/i=0, i<11, i++) - walk_to(borer, get_step(borer, get_cardinal_dir(borer, T))) - if(borer.Adjacent(T)) - to_chat(T, "You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.") - T.Stun(80) - sleep(50) - qdel(borer) - sleep(rand(60, 90)) - to_chat(T, "Primary [rand(1000,9999)] states: [pick("Hello","Hi","You're my slave now!","Don't try to get rid of me...")]") - break - sleep(4) - if(!QDELETED(borer)) - qdel(borer) - qdel(src) - /obj/effect/hallucination/simple/bubblegum name = "Bubblegum" image_icon = 'icons/mob/lavaland/96x96megafauna.dmi' @@ -728,22 +725,22 @@ Gunshots/explosions/opening doors/less rare audio (done) /datum/hallucination/whispers/New(mob/living/carbon/T, forced = TRUE) ..() - var/speak_messages = list("[pick("I'm watching you...","I know what you're doing","What are you hiding?","I saw that")]",\ - "[pick("","Hey, ","Hi ","Hello ","Wait, ","It's ")][target.first_name()]!",\ - "[pick("Get out","Go away","Fuck off","OUT!")]",\ - "[pick("Kchck-Chkck? Kchchck!","EEEeeeeEEEE","#@§*&£","H-hhhhh...")]",\ - "[pick("Did you hear that?","Did you see that?","What was that?")]",\ - "[pick("Hail Ratvar","Hail Nar'Sie","Viva!","[generate_code_phrase()]","Are you mr. [pick(GLOB.possible_changeling_IDs)]?")]",\ - "[pick("Why?","What?","Wait, what?","Wait","Hold on","Uh...")]",\ - "Give me that!",\ - "HELP[pick(""," ME"," HIM"," HER"," THEM")]!!",\ - "RUN!!",\ - "I'm infected, [pick("stay away","don't get close","be careful","help me","kill me")]") + var/speak_messages = list("[pick_list_replacements(HAL_LINES_FILE, "suspicion")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "greetings")][target.first_name()]!",\ + "[pick_list_replacements(HAL_LINES_FILE, "getout")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "weird")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "didyouhearthat")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "imatraitor")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "doubt")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "aggressive")]",\ + "[pick_list_replacements(HAL_LINES_FILE, "help")]!!",\ + "[pick_list_replacements(HAL_LINES_FILE, "escape")]",\ + "I'm infected, [pick_list_replacements(HAL_LINES_FILE, "infection_advice")]!") var/radio_messages = list("Set [target.first_name()] to arrest!",\ - "[pick("Captain","Hos","Cmo","Rd","Ce","Hop","Janitor","AI","Viro","Qm","[target.first_name()]")] is [pick("rogue","cult","clockcult","a revhead","a gang leader","a traitor","a ling","dead")]!",\ + "[pick_list_replacements(HAL_LINES_FILE, "people")] is [pick_list_replacements(HAL_LINES_FILE, "accusations")]!",\ "Help!",\ - "[pick("Cult", "Wizard", "Blob", "Ling", "Ops", "Swarmers", "Revenant", "Traitor", "Harm", "I hear flashing", "Help")] in [pick(GLOB.teleportlocs)][prob(50)?"!":"!!"]",\ + "[pick_list_replacements(HAL_LINES_FILE, "threat")] in [pick_list_replacements(HAL_LINES_FILE, "location")][prob(50)?"!":"!!"]",\ "Where's [target.first_name()]?"\ ,"[pick("C","Ai, c","Someone c","Rec")]all the shuttle!"\ ,"AI [pick("rogue", "is dead")]!!") @@ -774,312 +771,381 @@ Gunshots/explosions/opening doors/less rare audio (done) for(var/mob/living/carbon/human/H in GLOB.living_mob_list) humans += H person = pick(humans) - to_chat(target, target.compose_message(person,understood_language,pick(radio_messages),"1459",person.get_spans())) + var/message = target.compose_message(person,understood_language,pick(radio_messages),"1459",person.get_spans()) + feedback_details += "Type: Radio, Source: [person.real_name], Message: [message]" + to_chat(target, message) qdel(src) -/obj/effect/hallucination/message +/datum/hallucination/message + cost = 15 -/obj/effect/hallucination/message/Initialize(mapload, var/mob/living/carbon/T) +/datum/hallucination/message/New(mob/living/carbon/T, forced = TRUE) ..() - target = T var/chosen = pick("The light burns you!", \ "You don't feel like yourself.", \ - "Unknown has punched [target]!", \ "You hear something squeezing through the ducts...", \ "You hear a distant scream.", \ "You feel invincible, nothing can hurt you!", \ "You feel a tiny prick!", \ "[target] sneezes.", \ - "You feel faint.", \ - "You hear a strange, alien voice in your head...[pick("Hiss","Ssss")]", \ - "You can see...everything!") + //The truth, revealed + "You're hallucinating.", \ + //Direct advice + "[pick_list_replacements(HAL_LINES_FILE, "advice")]") + feedback_details += "Message: [chosen]" to_chat(target, chosen) qdel(src) -/mob/living/carbon/proc/hallucinate(hal_type, specific) // specific is used to specify a particular hallucination - set waitfor = 0 - switch(hal_type) - if("xeno") - new /obj/effect/hallucination/xeno_attack(src.loc,src) - if("borer") - new /obj/effect/hallucination/borer(src.loc,src) - if("singulo") - new /obj/effect/hallucination/singularity_scare(src.loc,src) - if("koolaid") - new /obj/effect/hallucination/oh_yeah(src.loc,src) - if("battle") - new /obj/effect/hallucination/battle(src.loc,src) - if("flood") - new /obj/effect/hallucination/fake_flood(src.loc,src) - if("delusion") - new /obj/effect/hallucination/delusion(src.loc,src) - if("self_delusion") - new /obj/effect/hallucination/self_delusion(src.loc,src) - if("fake") - new /obj/effect/hallucination/fakeattacker(src.loc,src) - if("bolts") - new /obj/effect/hallucination/bolts(src.loc,src) - if("bolts_minor") - new /obj/effect/hallucination/bolts(src.loc,src,rand(1,2)) - if("whispers") - new /obj/effect/hallucination/whispers(src.loc,src) - if("message") - new /obj/effect/hallucination/message(src.loc,src) - if("items_other") - new /obj/effect/hallucination/items_other(src.loc,src) - if("sounds") - //Strange audio - switch(rand(1,20)) - if(1) playsound_local(null,'sound/machines/airlock.ogg', 15, 1) - if(2) - if(prob(50)) playsound_local(null,'sound/effects/explosion1.ogg', 50, 1) - else playsound_local(null, 'sound/effects/explosion2.ogg', 50, 1) - if(3) playsound_local(null, 'sound/effects/explosionfar.ogg', 50, 1) - if(4) playsound_local(null, pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg'), 50, 1) - if(5) - playsound_local(null, 'sound/weapons/ring.ogg', 35) - sleep(15) - playsound_local(null, 'sound/weapons/ring.ogg', 35) - sleep(15) - playsound_local(null, 'sound/weapons/ring.ogg', 35) - if(6) playsound_local(null, 'sound/magic/summon_guns.ogg', 50, 1) - if(7) playsound_local(null, 'sound/machines/alarm.ogg', 100, 0) - if(8) playsound_local(null, 'sound/voice/bfreeze.ogg', 35, 0) - if(9) - //To make it more realistic, I added two gunshots (enough to kill) - playsound_local(null, 'sound/weapons/gunshot.ogg', 25, 1) - spawn(rand(10,30)) - playsound_local(null, 'sound/weapons/gunshot.ogg', 25, 1) - sleep(rand(5,10)) - playsound_local(null, sound(get_sfx("bodyfall"), 25), 25, 1) - if(10) playsound_local(null, 'sound/effects/pray_chaplain.ogg', 50) - if(11) - //Same as above, but with tasers. - playsound_local(null, 'sound/weapons/taser.ogg', 25, 1) - spawn(rand(10,30)) - playsound_local(null, 'sound/weapons/taser.ogg', 25, 1) - sleep(rand(5,10)) - playsound_local(null, sound(get_sfx("bodyfall"), 25), 25, 1) - //Rare audio - if(12) - //These sounds are (mostly) taken from Hidden: Source - var/list/creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ - 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ - 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ - 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ - 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') - playsound_local(null, pick(creepyasssounds), 50, 1) - if(13) - playsound_local(null, 'sound/effects/ratvar_rises.ogg', 100) - sleep(150) - playsound_local(null, 'sound/effects/ratvar_reveal.ogg', 100) - if(14) - to_chat(src, "

    Priority Announcement

    ") - to_chat(src, "

    The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

    ") - playsound_local(null, 'sound/ai/shuttledock.ogg', 100) - //Deconstructing a wall - if(15) - playsound_local(null, 'sound/items/welder.ogg', 15, 1) - sleep(105) - playsound_local(null, 'sound/items/welder2.ogg', 15, 1) - sleep(15) - playsound_local(null, 'sound/items/ratchet.ogg', 15, 1) - //Hacking a door - if(16) - playsound_local(null, 'sound/items/screwdriver.ogg', 15, 1) - sleep(rand(10,30)) - for(var/i = rand(1,3), i>0, i--) - playsound_local(null, 'sound/weapons/empty.ogg', 15, 1) - sleep(rand(10,30)) - playsound_local(null, 'sound/machines/airlockforced.ogg', 15, 1) - if(17) - playsound_local(null, 'sound/weapons/saberon.ogg',35,1) - if(18) - to_chat(src, "

    Biohazard Alert

    ") - to_chat(src, "

    Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.

    ") - playsound_local(null, 'sound/ai/outbreak5.ogg') - if(19) //Tesla loose! - playsound_local(null, 'sound/magic/lightningbolt.ogg', 35, 1) - sleep(20) - playsound_local(null, 'sound/magic/lightningbolt.ogg', 65, 1) - sleep(20) - playsound_local(null, 'sound/magic/lightningbolt.ogg', 100, 1) - if(20) //AI is doomsdaying! - to_chat(src, "

    Anomaly Alert

    ") - to_chat(src, "

    Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.

    ") - playsound_local(null, 'sound/ai/aimalf.ogg', 100) - if("hudscrew") - //Screwy HUD - //to_chat(src, "Screwy HUD") - hal_screwyhud = pick(SCREWYHUD_NONE,SCREWYHUD_CRIT,SCREWYHUD_DEAD,SCREWYHUD_HEALTHY) - sleep(rand(100,250)) - hal_screwyhud = 0 +/datum/hallucination/sounds + cost = 15 - if("fake_alert") - var/alert_type = pick("oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","tox_in_air","newlaw","nutrition","charge","weightless","fire","locked","hacked","temp","pressure") - if(specific) - alert_type = specific - switch(alert_type) - if("oxy") - throw_alert("oxy", /obj/screen/alert/oxy, override = TRUE) - if("not_enough_tox") - throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox, override = TRUE) - if("not_enough_co2") - throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2, override = TRUE) - if("too_much_oxy") - throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy, override = TRUE) - if("too_much_co2") - throw_alert("too_much_co2", /obj/screen/alert/too_much_co2, override = TRUE) - if("tox_in_air") - throw_alert("tox_in_air", /obj/screen/alert/tox_in_air, override = TRUE) - if("nutrition") - if(prob(50)) - throw_alert("nutrition", /obj/screen/alert/fat, override = TRUE) - else - throw_alert("nutrition", /obj/screen/alert/starving, override = TRUE) - if("weightless") - throw_alert("weightless", /obj/screen/alert/weightless, override = TRUE) - if("fire") - throw_alert("fire", /obj/screen/alert/fire, override = TRUE) - if("temp") - if(prob(50)) - throw_alert("temp", /obj/screen/alert/hot, 3, override = TRUE) - else - throw_alert("temp", /obj/screen/alert/cold, 3, override = TRUE) - if("pressure") - if(prob(50)) - throw_alert("pressure", /obj/screen/alert/highpressure, 2, override = TRUE) - else - throw_alert("pressure", /obj/screen/alert/lowpressure, 2, override = TRUE) - //BEEP BOOP I AM A ROBOT - if("newlaw") - throw_alert("newlaw", /obj/screen/alert/newlaw, override = TRUE) - if("locked") - throw_alert("locked", /obj/screen/alert/locked, override = TRUE) - if("hacked") - throw_alert("hacked", /obj/screen/alert/hacked, override = TRUE) - if("charge") - throw_alert("charge",/obj/screen/alert/emptycell, override = TRUE) - sleep(rand(100,200)) - clear_alert(alert_type, clear_override = TRUE) - - if("items") - //Strange items - //to_chat(src, "Traitor Items") - if(!halitem) - halitem = new - var/obj/item/l_hand = get_item_for_held_index(1) - var/obj/item/r_hand = get_item_for_held_index(2) - var/l = ui_hand_position(get_held_index_of_item(l_hand)) - var/r = ui_hand_position(get_held_index_of_item(r_hand)) - var/list/slots_free = list(l,r) - if(l_hand) slots_free -= l - if(r_hand) slots_free -= r - if(ishuman(src)) - var/mob/living/carbon/human/H = src - if(!H.belt) slots_free += ui_belt - if(!H.l_store) slots_free += ui_storage1 - if(!H.r_store) slots_free += ui_storage2 - if(slots_free.len) - halitem.screen_loc = pick(slots_free) - halitem.layer = ABOVE_HUD_LAYER - halitem.plane = ABOVE_HUD_PLANE - switch(rand(1,6)) - if(1) //revolver - halitem.icon = 'icons/obj/guns/projectile.dmi' - halitem.icon_state = "revolver" - halitem.name = "Revolver" - if(2) //c4 - halitem.icon = 'icons/obj/grenade.dmi' - halitem.icon_state = "plastic-explosive0" - halitem.name = "Mysterious Package" - if(prob(25)) - halitem.icon_state = "c4small_1" - if(3) //sword - halitem.icon = 'icons/obj/weapons.dmi' - halitem.icon_state = "sword1" - halitem.name = "Sword" - if(4) //stun baton - halitem.icon = 'icons/obj/weapons.dmi' - halitem.icon_state = "stunbaton" - halitem.name = "Stun Baton" - if(5) //emag - halitem.icon = 'icons/obj/card.dmi' - halitem.icon_state = "emag" - halitem.name = "Cryptographic Sequencer" - if(6) //flashbang - halitem.icon = 'icons/obj/grenade.dmi' - halitem.icon_state = "flashbang1" - halitem.name = "Flashbang" - if(client) client.screen += halitem - QDEL_IN(halitem, rand(100, 250)) - if("dangerflash") - //Flashes of danger - //to_chat(src, "Danger Flash") - if(!halimage) - var/list/possible_points = list() - for(var/turf/open/floor/F in view(src,world.view)) - possible_points += F - if(possible_points.len) - var/turf/open/floor/target = pick(possible_points) - - switch(rand(1,4)) - if(1) - //to_chat(src, "Space") - halimage = image('icons/turf/space.dmi',target,"[rand(1,25)]",TURF_LAYER) - if(2) - //to_chat(src, "Lava") - halimage = image('icons/turf/floors/lava.dmi',target,"smooth",TURF_LAYER) - if(3) - //to_chat(src, "Chasm") - halimage = image('icons/turf/floors/Chasms.dmi',target,"smooth",TURF_LAYER) - if(4) - //to_chat(src, "C4") - halimage = image('icons/obj/grenade.dmi',target,"plastic-explosive2",OBJ_LAYER+0.01) - - - if(client) client.images += halimage - sleep(rand(40,60)) //Only seen for a brief moment. - if(client) client.images -= halimage - halimage = null - if("death") - //Fake death - hal_screwyhud = SCREWYHUD_DEAD - SetUnconscious(400) - var/area/area = get_area(src) - to_chat(src, "[mind.name] has died at [area.name].") +/datum/hallucination/sounds/New(mob/living/carbon/T, forced = TRUE, sound_type) + ..() + if(!sound_type) + sound_type = pick("airlock","explosion","far_explosion","glass","phone","summon_guns","alarm","beepsky","hallelujah","creepy","ratvar","shuttle_dock", + "wall_decon","door_hack","esword","blob_alert","tesla","malf_ai") + feedback_details += "Type: [sound_type]" + //Strange audio + switch(sound_type) + if("airlock") + target.playsound_local(null,'sound/machines/airlock.ogg', 15, 1) + if("explosion") if(prob(50)) - var/list/dead_people = list() - for(var/mob/dead/observer/G in GLOB.player_list) - dead_people += G - var/mob/dead/observer/fakemob = pick(dead_people) - if(fakemob) - sleep(rand(30, 60)) - to_chat(src, "DEAD: [fakemob.name] says, \"[pick("rip","welcome [first_name()]","you too?","is the AI malf?",\ - "i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "abductors","double agents","viruses","badmins","you")]")]\"") - sleep(rand(50,70)) - hal_screwyhud = SCREWYHUD_NONE - SetSleeping(0) - if("husks") - if(!halbody) - var/list/possible_points = list() - for(var/turf/open/floor/F in view(src,world.view)) - possible_points += F - if(possible_points.len) - var/turf/open/floor/target = pick(possible_points) - switch(rand(1,4)) - if(1) - var/image/body = image('icons/mob/human.dmi',target,"husk",TURF_LAYER) - var/matrix/M = matrix() - M.Turn(90) - body.transform = M - halbody = body - if(2,3) - halbody = image('icons/mob/human.dmi',target,"husk",TURF_LAYER) - if(4) - halbody = image('icons/mob/alien.dmi',target,"alienother",TURF_LAYER) + target.playsound_local(null,'sound/effects/explosion1.ogg', 50, 1) + else + target.playsound_local(null, 'sound/effects/explosion2.ogg', 50, 1) + if("far_explosion") + target.playsound_local(null, 'sound/effects/explosionfar.ogg', 50, 1) + if("glass") + target.playsound_local(null, pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg'), 50, 1) + if("phone") + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + sleep(15) + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + sleep(15) + target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + if("summon_guns") + target.playsound_local(null, 'sound/magic/summon_guns.ogg', 50, 1) + if("alarm") + target.playsound_local(null, 'sound/machines/alarm.ogg', 100, 0) + if("beepsky") + target.playsound_local(null, 'sound/voice/bfreeze.ogg', 35, 0) + if("hallelujah") + target.playsound_local(null, 'sound/effects/pray_chaplain.ogg', 50) + //Rare audio + if("creepy") + //These sounds are (mostly) taken from Hidden: Source + var/static/list/hallucinations_creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ + 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ + 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ + 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ + 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') + target.playsound_local(null, pick(hallucinations_creepyasssounds), 50, 1) + if("ratvar") + target.playsound_local(null, 'sound/effects/ratvar_rises.ogg', 100) + sleep(150) + target.playsound_local(null, 'sound/effects/ratvar_reveal.ogg', 100) + if("shuttle_dock") + to_chat(target, "

    Priority Announcement

    ") + to_chat(target, "

    The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

    ") + target.playsound_local(null, 'sound/ai/shuttledock.ogg', 100) + //Deconstructing a wall + if("wall_decon") + target.playsound_local(null, 'sound/items/welder.ogg', 15, 1) + sleep(105) + target.playsound_local(null, 'sound/items/welder2.ogg', 15, 1) + sleep(15) + target.playsound_local(null, 'sound/items/ratchet.ogg', 15, 1) + //Hacking a door + if("door_hack") + target.playsound_local(null, 'sound/items/screwdriver.ogg', 15, 1) + sleep(rand(10,30)) + for(var/i = rand(1,3), i>0, i--) + target.playsound_local(null, 'sound/weapons/empty.ogg', 15, 1) + sleep(rand(10,30)) + target.playsound_local(null, 'sound/machines/airlockforced.ogg', 15, 1) + if("esword") + target.playsound_local(null, 'sound/weapons/saberon.ogg',35,1) + if("blob_alert") + to_chat(target, "

    Biohazard Alert

    ") + to_chat(target, "

    Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.

    ") + target.playsound_local(null, 'sound/ai/outbreak5.ogg', 100, 0) + if("tesla") //Tesla loose! + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 35, 1) + sleep(20) + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 65, 1) + sleep(20) + target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 100, 1) + if("malf_ai") //AI is doomsdaying! + to_chat(target, "

    Anomaly Alert

    ") + to_chat(target, "

    Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.

    ") + target.playsound_local(null, 'sound/ai/aimalf.ogg', 100, 0) + qdel(src) + +/datum/hallucination/hudscrew + cost = 10 + +/datum/hallucination/hudscrew/New(mob/living/carbon/T, forced = TRUE) + ..() + //Screwy HUD + target.set_screwyhud(pick(SCREWYHUD_CRIT,SCREWYHUD_DEAD,SCREWYHUD_HEALTHY)) + feedback_details += "Type: [target.hal_screwyhud]" + sleep(rand(100,250)) + target.set_screwyhud(SCREWYHUD_NONE) + qdel(src) + +/datum/hallucination/fake_alert + cost = 15 + +/datum/hallucination/fake_alert/New(mob/living/carbon/T, forced = TRUE, specific, duration = 150) + ..() + var/alert_type = pick("not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","weightless","fire","locked","hacked","temphot","tempcold","pressure") + if(specific) + alert_type = specific + feedback_details += "Type: [alert_type]" + switch(alert_type) + if("oxy") + target.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy, override = TRUE) + if("not_enough_tox") + target.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox, override = TRUE) + if("not_enough_co2") + target.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2, override = TRUE) + if("too_much_oxy") + target.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy, override = TRUE) + if("too_much_co2") + target.throw_alert("too_much_co2", /obj/screen/alert/too_much_co2, override = TRUE) + if("tox_in_air") + target.throw_alert("too_much_tox", /obj/screen/alert/too_much_tox, override = TRUE) + if("nutrition") + if(prob(50)) + target.throw_alert("nutrition", /obj/screen/alert/fat, override = TRUE) + else + target.throw_alert("nutrition", /obj/screen/alert/starving, override = TRUE) + if("weightless") + target.throw_alert("weightless", /obj/screen/alert/weightless, override = TRUE) + if("fire") + target.throw_alert("fire", /obj/screen/alert/fire, override = TRUE) + if("temphot") + target.throw_alert("temp", /obj/screen/alert/hot, 3, override = TRUE) + if("tempcold") + target.throw_alert("temp", /obj/screen/alert/cold, 3, override = TRUE) + if("pressure") + if(prob(50)) + target.throw_alert("pressure", /obj/screen/alert/highpressure, 2, override = TRUE) + else + target.throw_alert("pressure", /obj/screen/alert/lowpressure, 2, override = TRUE) + //BEEP BOOP I AM A ROBOT + if("newlaw") + target.throw_alert("newlaw", /obj/screen/alert/newlaw, override = TRUE) + if("locked") + target.throw_alert("locked", /obj/screen/alert/locked, override = TRUE) + if("hacked") + target.throw_alert("hacked", /obj/screen/alert/hacked, override = TRUE) + if("charge") + target.throw_alert("charge",/obj/screen/alert/emptycell, override = TRUE) + sleep(duration) + target.clear_alert(alert_type, clear_override = TRUE) + qdel(src) + +/datum/hallucination/items + cost = 15 + +/datum/hallucination/items/New(mob/living/carbon/T, forced = TRUE) + ..() + //Strange items + if(!target.halitem) + target.halitem = new + var/obj/item/l_hand = target.get_item_for_held_index(1) + var/obj/item/r_hand = target.get_item_for_held_index(2) + var/l = ui_hand_position(target.get_held_index_of_item(l_hand)) + var/r = ui_hand_position(target.get_held_index_of_item(r_hand)) + var/list/slots_free = list(l,r) + if(l_hand) slots_free -= l + if(r_hand) slots_free -= r + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(!H.belt) slots_free += ui_belt + if(!H.l_store) slots_free += ui_storage1 + if(!H.r_store) slots_free += ui_storage2 + if(slots_free.len) + target.halitem.screen_loc = pick(slots_free) + target.halitem.layer = ABOVE_HUD_LAYER + target.halitem.plane = ABOVE_HUD_PLANE + switch(rand(1,6)) + if(1) //revolver + target.halitem.icon = 'icons/obj/guns/projectile.dmi' + target.halitem.icon_state = "revolver" + target.halitem.name = "Revolver" + if(2) //c4 + target.halitem.icon = 'icons/obj/grenade.dmi' + target.halitem.icon_state = "plastic-explosive0" + target.halitem.name = "C4" + if(prob(25)) + target.halitem.icon_state = "plasticx40" + if(3) //sword + target.halitem.icon = 'icons/obj/weapons.dmi' + target.halitem.icon_state = "sword0" + target.halitem.name = "Energy Sword" + if(4) //stun baton + target.halitem.icon = 'icons/obj/weapons.dmi' + target.halitem.icon_state = "stunbaton" + target.halitem.name = "Stun Baton" + if(5) //emag + target.halitem.icon = 'icons/obj/card.dmi' + target.halitem.icon_state = "emag" + target.halitem.name = "Cryptographic Sequencer" + if(6) //flashbang + target.halitem.icon = 'icons/obj/grenade.dmi' + target.halitem.icon_state = "flashbang1" + target.halitem.name = "Flashbang" + feedback_details += "Type: [target.halitem.name]" + if(target.client) target.client.screen += target.halitem + QDEL_IN(target.halitem, rand(150, 350)) + qdel(src) + +/datum/hallucination/dangerflash + cost = 15 + +/datum/hallucination/dangerflash/New(mob/living/carbon/T, forced = TRUE) + ..() + //Flashes of danger + if(!target.halimage) + var/list/possible_points = list() + for(var/turf/open/floor/F in view(target,world.view)) + possible_points += F + if(possible_points.len) + var/turf/open/floor/danger_point = pick(possible_points) + + switch(rand(1,5)) + if(1) + target.halimage = image('icons/turf/space.dmi',danger_point,"[rand(1,25)]",TURF_LAYER) + if(2) + target.halimage = image('icons/turf/floors/lava.dmi',danger_point,"smooth",TURF_LAYER) + if(3) + target.halimage = image('icons/turf/floors/Chasms.dmi',danger_point,"smooth",TURF_LAYER) + if(4) + target.halimage = image('icons/effects/effects.dmi',danger_point,"anom",OBJ_LAYER+0.01) + if(5) + target.halimage = image('icons/effects/effects.dmi',danger_point,"electricity2",OBJ_LAYER+0.01) + + + if(target.client) + target.client.images += target.halimage + sleep(rand(200,450)) + if(target.client) + target.client.images -= target.halimage + QDEL_NULL(target.halimage) + qdel(src) + +/datum/hallucination/death + cost = 40 + +/datum/hallucination/death/New(mob/living/carbon/T, forced = TRUE) + set waitfor = 0 + ..() + target.set_screwyhud(SCREWYHUD_DEAD) + target.Knockdown(300) + target.silent += 10 + var/area/area = get_area(target) + to_chat(target, "[target.mind.name] has died at [area.name].") + if(prob(50)) + var/mob/fakemob + var/list/dead_people = list() + for(var/mob/dead/observer/G in GLOB.player_list) + dead_people += G + if(LAZYLEN(dead_people)) + fakemob = pick(dead_people) + else + fakemob = target //ever been so lonely you had to haunt yourself? + if(fakemob) + sleep(rand(20, 50)) + to_chat(target, "DEAD: [fakemob.name] says, \"[pick("rip","hey [target.first_name()]","you too?","is the AI rogue?",\ + "i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "abductors","double agents","viruses","badmins","you")]")]\"") + sleep(rand(70,90)) + target.set_screwyhud(SCREWYHUD_NONE) + target.SetKnockdown(0) + target.silent = 0 + qdel(src) + +/datum/hallucination/fire + cost = 25 + +/datum/hallucination/fire/New(mob/living/carbon/T, forced = TRUE) + ..() + var/image/fire_overlay = image('icons/mob/OnFire.dmi', target, "Standing", ABOVE_MOB_LAYER) + if(target.client) + target.client.images += fire_overlay + to_chat(target, "You're set on fire!") + target.throw_alert("fire", /obj/screen/alert/fire, override = TRUE) + sleep(20) + target.throw_alert("temp", /obj/screen/alert/hot, 1, override = TRUE) + sleep(30) + target.clear_alert("temp", clear_override = TRUE) + target.throw_alert("temp", /obj/screen/alert/hot, 2, override = TRUE) + sleep(30) + target.clear_alert("temp", clear_override = TRUE) + target.throw_alert("temp", /obj/screen/alert/hot, 3, override = TRUE) + for(var/i in 1 to rand(5, 10)) + target.adjustStaminaLoss(15) + sleep(25) + target.clear_alert("fire", clear_override = TRUE) + target.clear_alert("temp", clear_override = TRUE) + if(target.client) + target.client.images -= fire_overlay + QDEL_NULL(fire_overlay) + qdel(src) + +/datum/hallucination/husks + cost = 20 + +/datum/hallucination/husks/New(mob/living/carbon/T, forced = TRUE) + ..() + if(!target.halbody) + var/list/possible_points = list() + for(var/turf/open/floor/F in view(target,world.view)) + possible_points += F + if(possible_points.len) + var/turf/open/floor/husk_point = pick(possible_points) + switch(rand(1,4)) + if(1) + var/image/body = image('icons/mob/human.dmi',husk_point,"husk",TURF_LAYER) + var/matrix/M = matrix() + M.Turn(90) + body.transform = M + target.halbody = body + if(2,3) + target.halbody = image('icons/mob/human.dmi',husk_point,"husk",TURF_LAYER) + if(4) + target.halbody = image('icons/mob/alien.dmi',husk_point,"alienother",TURF_LAYER) + + if(target.client) + target.client.images += target.halbody + sleep(rand(30,50)) //Only seen for a brief moment. + if(target.client) + target.client.images -= target.halbody + QDEL_NULL(target.halbody) + qdel(src) + +//hallucination projectile code in code/modules/projectiles/projectile/special.dm +/datum/hallucination/stray_bullet + cost = 15 + +/datum/hallucination/stray_bullet/New(mob/living/carbon/C, forced = TRUE) + ..() + var/list/turf/startlocs = list() + for(var/turf/open/T in view(world.view+1,target)-view(world.view,target)) + startlocs += T + var/turf/start = pick(startlocs) + var/proj_type = pick(subtypesof(/obj/item/projectile/hallucination)) + feedback_details += "Type: [proj_type]" + var/obj/item/projectile/hallucination/H = new proj_type(start) + target.playsound_local(start, H.hal_fire_sound, 60, 1) + H.hal_target = target + H.current = start + H.starting = start + H.yo = target.y - start.y + H.xo = target.x - start.x + H.original = target + H.fire() + qdel(src) - if(client) client.images += halbody - spawn(rand(30,50)) //Only seen for a brief moment. - if(client) client.images -= halbody - halbody = null From d58b2f7af36f2fe2441986106f5ee474ba9e4b35 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 08:56:20 -0500 Subject: [PATCH 107/113] Automatic changelog generation for PR #2231 [ci skip] --- html/changelogs/AutoChangeLog-pr-2231.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2231.yml diff --git a/html/changelogs/AutoChangeLog-pr-2231.yml b/html/changelogs/AutoChangeLog-pr-2231.yml new file mode 100644 index 0000000000..c25b4b2b49 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2231.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - tweak: "Spell action buttons now have their description in a tooltip." From 7faec4505367e3fd73c8ac78fa9ed9547c6a127d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 09:07:03 -0500 Subject: [PATCH 108/113] Tiny bit better splitting on add_details --- code/controllers/subsystem/blackbox.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index afa77b0207..3344afcaaa 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -250,7 +250,7 @@ SUBSYSTEM_DEF(blackbox) return 0 return value -/datum/feedback_variable/proc/get_variable() +/datum/feedback_variable/proc/get_variable() return variable /datum/feedback_variable/proc/set_details(text) @@ -260,12 +260,12 @@ SUBSYSTEM_DEF(blackbox) /datum/feedback_variable/proc/add_details(text) if (istext(text)) if (!details) - details = text + details = "\"[text]\"" else - details += " [text]" + details += " | \"[text]\"" -/datum/feedback_variable/proc/get_details() +/datum/feedback_variable/proc/get_details() return details /datum/feedback_variable/proc/get_parsed() - return list(variable,value,details) + return list(variable,value,details) \ No newline at end of file From f088e812a9ca1bd98429a450f7fd5dc4505bb5b8 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 09:31:49 -0500 Subject: [PATCH 109/113] Update flora.dm --- code/game/objects/structures/flora.dm | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 76b1462304..d141f71b7a 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -1,12 +1,13 @@ /obj/structure/flora resistance_flags = FLAMMABLE + obj_integrity = 150 max_integrity = 150 - anchored = TRUE + anchored = 1 //trees /obj/structure/flora/tree name = "tree" - density = TRUE + density = 1 pixel_x = -16 layer = FLY_LAYER var/cut = FALSE @@ -25,7 +26,7 @@ playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0) icon = 'icons/obj/flora/pinetrees.dmi' icon_state = "tree_stump" - density = FALSE + density = 0 pixel_x = -16 name += " stump" cut = TRUE @@ -88,12 +89,7 @@ /obj/structure/flora/tree/jungle/Initialize() icon_state = "[icon_state][rand(1, 6)]" - ..() - -/obj/structure/flora/tree/jungle/small - pixel_y = 0 - pixel_x = -32 - icon = 'icons/obj/flora/jungletreesmall.dmi' + . = ..() //grass /obj/structure/flora/grass @@ -129,7 +125,7 @@ name = "bush" icon = 'icons/obj/flora/snowflora.dmi' icon_state = "snowbush1" - anchored = TRUE + anchored = 1 /obj/structure/flora/bush/Initialize() icon_state = "snowbush[rand(1, 6)]" @@ -308,10 +304,10 @@ desc = "A volcanic rock" icon = 'icons/obj/flora/rocks.dmi' resistance_flags = FIRE_PROOF - density = TRUE + density = 1 /obj/structure/flora/rock/Initialize() - ..() + . = ..() icon_state = "[icon_state][rand(1,3)]" /obj/structure/flora/rock/pile From cfebaa664618a892246184d4d8f18efbebf16e62 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 16:05:29 -0500 Subject: [PATCH 110/113] Unlocked miner closet in Pubby aux_base dock --- _maps/map_files/PubbyStation/PubbyStation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 4cc0b5c158..b4b78673a1 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -49675,7 +49675,7 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "cdF" = ( -/obj/structure/closet/secure_closet/miner, +/obj/structure/closet/secure_closet/miner/unlocked, /turf/open/floor/plating, /area/shuttle/auxillary_base) "cdG" = ( From 5fd3a8355c7a76592c1f6f6ea2c6c97e571f58e5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 16:05:33 -0500 Subject: [PATCH 111/113] Fixes the Resurrect Cultist rune not working --- code/game/gamemodes/cult/runes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 69b730d574..4c80f53b94 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -538,7 +538,7 @@ structure_check() searches for nearby cultist structures required for the invoca mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs else mob_to_revive = potential_revive_mobs[1] - if(!src || QDELETED(src) || rune_in_use || !validness_checks(mob_to_revive, user)) + if(QDELETED(src) || !validness_checks(mob_to_revive, user)) rune_in_use = FALSE return if(user.name == "Herbert West") From 97243fca3a60bbc76dc765a2f827ee003692b6b3 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 16:05:43 -0500 Subject: [PATCH 112/113] Moved can_trigger_gun to item/weapon parent --- code/game/objects/items/weapons/flamethrower.dm | 8 ++------ code/game/objects/items/weapons/pneumaticCannon.dm | 7 ++----- code/game/objects/items/weapons/weaponry.dm | 6 ++++++ .../modules/mob/living/carbon/human/human_helpers.dm | 2 +- code/modules/mob/living/carbon/monkey/monkey.dm | 2 +- code/modules/mob/living/living.dm | 2 +- .../friendly/drone/extra_drone_types.dm | 2 +- code/modules/projectiles/gun.dm | 12 +++++------- 8 files changed, 19 insertions(+), 22 deletions(-) diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 0e6d6cc66f..1829538a01 100755 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -26,6 +26,7 @@ var/create_full = FALSE var/create_with_tank = FALSE var/igniter_type = /obj/item/device/assembly/igniter + trigger_guard = TRIGGER_GUARD_NORMAL /obj/item/weapon/flamethrower/Destroy() if(weldtool) @@ -69,12 +70,7 @@ if(flag) return // too close if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.dna.check_mutation(HULK)) - to_chat(user, "Your meaty finger is much too large for the trigger guard!") - return - if(NOGUNS in H.dna.species.species_traits) - to_chat(user, "Your fingers don't fit in the trigger guard!") + if(!can_trigger_gun(user)) return if(user && user.get_active_held_item() == src) // Make sure our user is still holding us var/turf/target_turf = get_turf(target) diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index d2f5714d5e..90c0eceaad 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -26,6 +26,7 @@ var/fire_mode = PCANNON_FIREALL var/automatic = FALSE var/clumsyCheck = TRUE + trigger_guard = TRIGGER_GUARD_NORMAL /obj/item/weapon/pneumatic_cannon/CanItemAutoclick() return automatic @@ -108,11 +109,7 @@ if(!istype(user) && !target) return var/discharge = 0 - if(user.dna.check_mutation(HULK)) - to_chat(user, "Your meaty finger is much too large for the trigger guard!") - return - if(NOGUNS in user.dna.species.species_traits) - to_chat(user, "Your fingers don't fit in the trigger guard!") + if(!can_trigger_gun(user)) return if(!loadedItems || !loadedWeightClass) to_chat(user, "\The [src] has nothing loaded.") diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index bb723ffb33..53bfe5d64c 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -1,4 +1,5 @@ /obj/item/weapon + var/trigger_guard = TRIGGER_GUARD_NONE /obj/item/weapon/banhammer desc = "A banhammer" @@ -584,3 +585,8 @@ throwforce = 0 flags = DROPDEL | ABSTRACT attack_verb = list("bopped") + +/obj/item/weapon/proc/can_trigger_gun(mob/living/user) + if(!user.can_use_guns(src)) + return FALSE + return TRUE \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 69b581995b..3dacc2f444 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -143,7 +143,7 @@ var/protection = (prot["head"] + prot["arms"] + prot["feet"] + prot["legs"] + prot["groin"] + prot["chest"] + prot["hands"])/7 return protection -/mob/living/carbon/human/can_use_guns(var/obj/item/weapon/gun/G) +/mob/living/carbon/human/can_use_guns(var/obj/item/weapon/G) . = ..() if(G.trigger_guard == TRIGGER_GUARD_NORMAL) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index f57a48b5c6..9ed0a74d31 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -140,7 +140,7 @@ return 0 return 1 -/mob/living/carbon/monkey/can_use_guns(var/obj/item/weapon/gun/G) +/mob/living/carbon/monkey/can_use_guns(var/obj/item/weapon/G) return 1 /mob/living/carbon/monkey/angry diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b58fb0ec13..edf54e547a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -795,7 +795,7 @@ else to_chat(src, "You don't have the dexterity to do this!") return -/mob/living/proc/can_use_guns(var/obj/item/weapon/gun/G) +/mob/living/proc/can_use_guns(var/obj/item/weapon/G) if (G.trigger_guard != TRIGGER_GUARD_ALLOW_ALL && !IsAdvancedToolUser()) to_chat(src, "You don't have the dexterity to do this!") return 0 diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index c984194805..51d28df31b 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -176,7 +176,7 @@ else ..() -/mob/living/simple_animal/drone/cogscarab/can_use_guns(obj/item/weapon/gun/G) +/mob/living/simple_animal/drone/cogscarab/can_use_guns(obj/item/weapon/G) return GLOB.ratvar_awakens /mob/living/simple_animal/drone/cogscarab/get_armor_effectiveness() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 156a5ee81e..d5109a2c0c 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -27,7 +27,7 @@ var/recoil = 0 //boom boom shake the room var/clumsy_check = 1 var/obj/item/ammo_casing/chambered = null - var/trigger_guard = TRIGGER_GUARD_NORMAL //trigger guard on the weapon, hulks can't fire them with their big meaty fingers + trigger_guard = TRIGGER_GUARD_NORMAL //trigger guard on the weapon, hulks can't fire them with their big meaty fingers var/sawn_desc = null //description change if weapon is sawn-off var/sawn_state = SAWN_INTACT var/burst_size = 1 //how large a burst is @@ -188,12 +188,10 @@ -/obj/item/weapon/gun/proc/can_trigger_gun(var/mob/living/user) - - if(!handle_pins(user) || !user.can_use_guns(src)) - return 0 - - return 1 +/obj/item/weapon/gun/can_trigger_gun(mob/living/user) + . = ..() + if(!handle_pins(user)) + return FALSE /obj/item/weapon/gun/proc/handle_pins(mob/living/user) if(pin) From d8e7194e6dab5e8c20a60a87ab39c0ae661533df Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 18:53:54 -0500 Subject: [PATCH 113/113] Automatic changelog generation for PR #2371 [ci skip] --- html/changelogs/AutoChangeLog-pr-2371.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2371.yml diff --git a/html/changelogs/AutoChangeLog-pr-2371.yml b/html/changelogs/AutoChangeLog-pr-2371.yml new file mode 100644 index 0000000000..ec1810b8a6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2371.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - bugfix: "The Resurrect Cultist rune now works as intended."