From 37c1cf502eb9752803c77f4175143d1d8597b2ca Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Jul 2017 15:45:14 -0500 Subject: [PATCH 001/120] 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/120] 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 53dd97ca8aae5ef17f648262d5eb3af85064362d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Jul 2017 21:25:46 -0500 Subject: [PATCH 003/120] Fixes the fruity pebbles in the code --- code/world.dm.rej | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 code/world.dm.rej diff --git a/code/world.dm.rej b/code/world.dm.rej new file mode 100644 index 0000000000..cde7698a21 --- /dev/null +++ b/code/world.dm.rej @@ -0,0 +1,10 @@ +diff a/code/world.dm b/code/world.dm (rejected hunks) +@@ -59,7 +59,7 @@ + if(config.sql_enabled) + if(SSdbcore.Connect()) + log_world("Database connection established.") +- var/datum/DBQuery/query_db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_version")] ORDER BY date DESC LIMIT 1") ++ var/datum/DBQuery/query_db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_revision")] ORDER BY date DESC LIMIT 1") + query_db_version.Execute() + if(query_db_version.NextRow()) + var/db_major = query_db_version.item[1] From 89e29a036cef4c545e8397cd1f5c8d8f941da69d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 2 Aug 2017 08:52:47 -0500 Subject: [PATCH 004/120] 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 005/120] 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 006/120] 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 007/120] 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 42fc6497d406e4a4f40d7f7a6ef7ef976bc30391 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 03:13:11 -0500 Subject: [PATCH 008/120] Fixes hair sticking through hats. --- code/modules/clothing/clothing.dm | 1 + code/modules/clothing/head/collectable.dm | 9 +++++++++ code/modules/clothing/head/collectable.dm.rej | 9 +++++++++ code/modules/clothing/head/hardhat.dm | 1 + code/modules/clothing/head/helmet.dm | 1 + code/modules/clothing/head/jobs.dm | 4 ++++ code/modules/clothing/head/misc.dm | 6 +++++- code/modules/clothing/head/misc.dm.rej | 16 ++++++++++++++++ code/modules/clothing/head/misc_special.dm | 2 ++ icons/mob/hair_extensions.dmi | Bin 26997 -> 26993 bytes 10 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 code/modules/clothing/head/collectable.dm.rej create mode 100644 code/modules/clothing/head/misc.dm.rej diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 013fbd8bc4..9b75bb817f 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -253,6 +253,7 @@ BLIND // can't see anything slot_flags = SLOT_HEAD var/blockTracking = 0 //For AI tracking var/can_toggle = null + dynamic_hair_suffix = "+generic" /obj/item/clothing/head/Initialize() . = ..() diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 8ec8d00c77..6c7acefe8f 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -4,6 +4,7 @@ /obj/item/clothing/head/collectable name = "collectable hat" desc = "A rare collectable hat." + dynamic_hair_suffix = "+detective" /obj/item/clothing/head/collectable/petehat name = "ultra rare Pete's hat!" @@ -14,6 +15,7 @@ name = "collectable slime cap!" desc = "It just latches right in place!" icon_state = "slime" + dynamic_hair_suffix = "" /obj/item/clothing/head/collectable/xenom name = "collectable xenomorph helmet!" @@ -25,6 +27,7 @@ desc = "A rare chef's hat meant for hat collectors!" icon_state = "chef" item_state = "chef" + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/chef @@ -53,6 +56,7 @@ name = "collectable police officer's hat" desc = "A collectable police officer's Hat. This hat emphasizes that you are THE LAW." icon_state = "policehelm" + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/warden @@ -95,6 +99,7 @@ desc = "The fur feels... a bit too realistic." icon_state = "kitty" item_state = "kitty" + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/kitty @@ -103,6 +108,7 @@ desc = "Not as lucky as the feet!" icon_state = "bunny" item_state = "bunny" + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/rabbit @@ -125,6 +131,7 @@ name = "collectable HoS hat" desc = "Now you too can beat prisoners, set silly sentences, and arrest for no reason!" icon_state = "hoscap" + dynamic_hair_suffix = "" /obj/item/clothing/head/collectable/HoP name = "collectable HoP hat" @@ -138,6 +145,7 @@ icon_state = "thunderdome" item_state = "thunderdome" resistance_flags = 0 + flags_inv = HIDEHAIR /obj/item/clothing/head/collectable/swat name = "collectable SWAT helmet" @@ -145,3 +153,4 @@ icon_state = "swat" item_state = "swat" resistance_flags = 0 + flags_inv = HIDEHAIR diff --git a/code/modules/clothing/head/collectable.dm.rej b/code/modules/clothing/head/collectable.dm.rej new file mode 100644 index 0000000000..82a9962cb8 --- /dev/null +++ b/code/modules/clothing/head/collectable.dm.rej @@ -0,0 +1,9 @@ +diff a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm (rejected hunks) +@@ -4,7 +4,6 @@ + /obj/item/clothing/head/collectable + name = "collectable hat" + desc = "A rare collectable hat." +- dynamic_hair_suffix = "+detective" + + + /obj/item/clothing/head/collectable/petehat diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 28fe8cacfb..6eefb458ed 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -10,6 +10,7 @@ flags_inv = 0 actions_types = list(/datum/action/item_action/toggle_helmet_light) resistance_flags = FIRE_PROOF + dynamic_hair_suffix = "+generic" dog_fashion = /datum/dog_fashion/head diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index f100df4366..24d8049ac7 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -12,6 +12,7 @@ strip_delay = 60 resistance_flags = 0 flags_cover = HEADCOVERSEYES + flags_inv = HIDEHAIR dog_fashion = /datum/dog_fashion/head/helmet diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 23b3da72ef..6a127f571b 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -7,6 +7,7 @@ desc = "The commander in chef's head wear." strip_delay = 10 equip_delay_other = 10 + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/chef /obj/item/clothing/head/chefhat/suicide_act(mob/user) @@ -62,6 +63,7 @@ item_state = "cage" worn_x_dimension = 64 worn_y_dimension = 64 + dynamic_hair_suffix = "" /obj/item/clothing/head/witchunter_hat @@ -99,6 +101,7 @@ desc = "A beret, a mime's favorite headwear." icon_state = "beret" dog_fashion = /datum/dog_fashion/head/beret + dynamic_hair_suffix = "" /obj/item/clothing/head/beret/black name = "black beret" @@ -118,6 +121,7 @@ icon_state = "hoscap" armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 60) strip_delay = 80 + dynamic_hair_suffix = "" /obj/item/clothing/head/HoS/syndicate name = "syndicate cap" diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 3eabbad438..ac82fc92db 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -56,6 +56,7 @@ name = "nurse's hat" desc = "It allows quick identification of trained medical personnel." icon_state = "nursehat" + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/nurse @@ -110,6 +111,7 @@ name = "rabbit ears" desc = "Wearing these makes you look useless, and only good for your sex appeal." icon_state = "bunny" + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/rabbit @@ -136,12 +138,14 @@ desc = "Yarr." icon_state = "bandana" item_state = "bandana" + dynamic_hair_suffix = "" /obj/item/clothing/head/bowler name = "bowler-hat" desc = "Gentleman, elite aboard!" icon_state = "bowler" item_state = "bowler" + dynamic_hair_suffix = "" /obj/item/clothing/head/witchwig name = "witch costume wig" @@ -183,7 +187,6 @@ item_state = "fedora" armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) desc = "A really cool hat if you're a mobster. A really lame hat if you're not." - dynamic_hair_suffix = "+detective" pockets = /obj/item/weapon/storage/internal/pocket/small /obj/item/clothing/head/fedora/suicide_act(mob/user) @@ -277,6 +280,7 @@ icon_state = "crown" armor = list(melee = 15, bullet = 0, laser = 0,energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF + dynamic_hair_suffix = "" /obj/item/clothing/head/crown/fancy name = "magnificent crown" diff --git a/code/modules/clothing/head/misc.dm.rej b/code/modules/clothing/head/misc.dm.rej new file mode 100644 index 0000000000..df85f74b20 --- /dev/null +++ b/code/modules/clothing/head/misc.dm.rej @@ -0,0 +1,16 @@ +diff a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm (rejected hunks) +@@ -250,7 +250,7 @@ + name = "jester hat" + desc = "A hat with bells, to add some merriness to the suit." + icon_state = "jester_hat" +- dynamic_hair_suffix = "null" ++ dynamic_hair_suffix = "" + + /obj/item/clothing/head/rice_hat + name = "rice hat" +@@ -302,4 +302,4 @@ + name = "jester hat" + desc = "A hat with bells, to add some merriness to the suit." + icon_state = "jester_hat2" +- dynamic_hair_suffix = "null" ++ dynamic_hair_suffix = "" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 4c14fc0422..d15c7dd5f4 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -125,6 +125,7 @@ desc = "A pair of kitty ears. Meow!" icon_state = "kitty" color = "#999999" + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/kitty @@ -150,6 +151,7 @@ flags_inv = 0 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) brightness_on = 1 //luminosity when on + dynamic_hair_suffix = "" dog_fashion = /datum/dog_fashion/head/reindeer diff --git a/icons/mob/hair_extensions.dmi b/icons/mob/hair_extensions.dmi index bd2adda94bd5bf652747baf6a360b8d63976bb47..5a4ee36157718e997c538c12d07849980ec37898 100644 GIT binary patch delta 653 zcmV;80&@NJ(gE?(0gxnrVtQ0qbVOxyV{&P5bZKvH004NLotUw18!-?>Yw0Tpy9^K{ zwo|GJYy>XsUkH}s9=SOlms#>o(ch=Au1S?)DS!_=4rh0kx_94Se!RZB=eO76#@0lO zJGrONUyg^1gr3~VJw6-{i6y4~@uPL>>`v}3k=RfFDRNyh9p_|y!IgoJXMl~*E%NP%zOpqkVum$2H}J^60}no zNdOgyoHK*_G_uHlRKOdWDbfOV3Ytv819|2o8)!MN{=8ZqfItzvUNQ`wb@95fft2wD z-YW1WS@@dBEAV(JM!P?D}->(W3ag5Rc#H_$$ntfNI#b*U6|1x5J1$~0lfS_3FS zB}09^f|Em&z?}pvxt#)g0+r6C5GaCar>I5HD5?@W2|5IS>_-DrHVx!NJq0+9nR8Vl5-*fi`YvXjJm-- zT4hF?MwR)0imG_CE$Y7;1{%YwM;&+*4}B0_xT24!Dt`p*V|&=4GJMST=u^HWwLXxO z3rFHBd(#VO!mK62L-BAbw4~OD$gCwc35*YXSxao)NMh=Hw?oJIn8wH^;eY-wxpyz` n&+hr{_4pTcrA1-|Eu^CW03ZNKL_t(|ob26UY#V8_qXN=q2tPDb delta 653 zcmV;80&@NF(gF3-0gxnrW_naubVOxyV{&P5bZKvH004NLrI;~q8!-%pXZu$O$ylIh zlXUb_Bq%Z@f1#i(p2VI`R4LuL{`Vc~TRQcrqlXW&o*wzgyLVq-zP-M?=eO76#@0lO zJGrNipN@x%gr3~VJw6-{i6y4~=SS<**`3^7BC+rOL*UNmE*sx}9S=dQxs!W39wwuO zn>)GBe*tF{2q@q=BqkW!vX+QKKe#k5C^fH*3PnM=s^!{A^1~?jWl+lvJ~3;FlSzpT z8)UWIP$W;yw*`MABU_tre@X>xxvERFj$yYW#%g^j6|ADQEY_qMuK+~ zBMGn;k#lDFtVR}pnF{=3Geuh9jzW_ud@;|QWP`2f)t^_(Ll`WF*GnG2&boNr*kI21 zGH_hrO|qV6l;Z_9{>0Q1ez7E7;YO!{N`(KRF5X~MRkDs3S=FUd&=r>B=PJ{LLTe4M z7?lk7{0dJZO#*ikxF~lH?j2M*mqM@{rk$b|!K187>?HVqNU>iLPU|$3F_BBpu>G}g zOSHW#h~1>dA_ zYxw-iA#zf9-PsQuetGyEyuur%UrS=b=e6A{Pa|F#Vem4LIA!Vsi5yIFP9$)ldx^tg zIox@x%y@HusWM-2MQ?`2eR%_6vv~EmGjBrT>)3@WzQk4eC2-f<;}RF-&o+U7VrWUN z4`uDbk@(8q^a7hRYl#En_kZL`OKN?P&01oUz$4>i))HGcl9>A58}aoarct&@__uF5 n_wMEW**(9#9)ANQOqhb69q$JK03ZNKL_t(|ob27Rn*!EmTyaCq From fbabd14798d583e4370e8de8403533da0fbc1a94 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 7 Aug 2017 12:26:15 -0500 Subject: [PATCH 009/120] 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 010/120] 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 011/120] 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 012/120] 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 013/120] 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 014/120] 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 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 WVNv*!U#%Aa0000 Date: Tue, 8 Aug 2017 09:05:39 -0500 Subject: [PATCH 015/120] 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 016/120] 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 017/120] 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 018/120] 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 019/120] 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 020/120] 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 021/120] 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 022/120] 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 023/120] 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 024/120] 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 025/120] 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 514ebfe21b792a7628093b5aa7824814cb530150 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 8 Aug 2017 22:36:27 -0500 Subject: [PATCH 026/120] updates brain damage lines --- strings/brain_damage_lines.json | 13 +++++++------ strings/brain_damage_lines.json.rej | 10 ++++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 strings/brain_damage_lines.json.rej diff --git a/strings/brain_damage_lines.json b/strings/brain_damage_lines.json index ce3e726dbc..e25af310c3 100644 --- a/strings/brain_damage_lines.json +++ b/strings/brain_damage_lines.json @@ -1,17 +1,17 @@ { "brain_damage": [ - "IM A PONY NEEEEEEIIIIIIIIIGH", + "@pick(semicolon)IM A PONY NEEEEEEIIIIIIIIIGH", "without oxigen blob don't evoluate?", - "CAPTAINS A COMDOM", - "@pick(faggot_traitor) @pick(george) @pick(mellens) is grifing me HALP!!!", + "@pick(semicolon)CAPTAINS A COMDOM", + "@pick(semicolon)@pick(faggot_traitor) @pick(george) @pick(mellens) is grifing me HALP!!!", "can u give me @pick(mutations)?", "THe saiyans screwed", "Bi is THE BEST OF BOTH WORLDS>", - "I WANNA PET TEH monkeyS", + "@pick(semicolon)I WANNA PET TEH monkeyS", "stop grifing me!!!!", "SOTP IT#", "shiggey diggey!!", - "A PIRATE APPEAR", + "@pick(semicolon)A PIRATE APPEAR", "FUS RO DAH", "fucking 4rries!", "stat me", @@ -136,7 +136,8 @@ "random_gibberish": [ "g", "squid", - "r" + "r", + "carbon dioxide" ], "y_replacements": [ diff --git a/strings/brain_damage_lines.json.rej b/strings/brain_damage_lines.json.rej new file mode 100644 index 0000000000..6d8e1cdb62 --- /dev/null +++ b/strings/brain_damage_lines.json.rej @@ -0,0 +1,10 @@ +diff a/strings/brain_damage_lines.json b/strings/brain_damage_lines.json (rejected hunks) +@@ -131,7 +131,7 @@ + "", + "IS TIS A BUG??", + "SI IST A BUGG/", +- "BUG!!!" ++ "BUG!!!" + ], + + "semicolon": [ From 04fcf872a53be3c4f47a639ac1c509a78f30659a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 9 Aug 2017 02:19:26 -0500 Subject: [PATCH 027/120] 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 028/120] 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 029/120] 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 030/120] 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 031/120] 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 032/120] 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 033/120] 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 034/120] 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 035/120] 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 036/120] 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 037/120] 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 038/120] 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 039/120] 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 040/120] 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 041/120] 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 042/120] 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 043/120] 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 044/120] 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 045/120] 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 046/120] 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 047/120] 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 048/120] 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 049/120] 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 fca1df9a2bd67815eca77496ae93e1ddb6b03d54 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 11 Aug 2017 14:54:00 -0500 Subject: [PATCH 050/120] Fixes bad dirs --- code/game/machinery/shieldgen.dm.rej | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 code/game/machinery/shieldgen.dm.rej diff --git a/code/game/machinery/shieldgen.dm.rej b/code/game/machinery/shieldgen.dm.rej new file mode 100644 index 0000000000..12ce2d21dc --- /dev/null +++ b/code/game/machinery/shieldgen.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm (rejected hunks) +@@ -12,7 +12,7 @@ + + /obj/structure/emergency_shield/Initialize() + . = ..() +- setDir(pick(1,2,3,4)) ++ setDir(pick(GLOB.cardinals)) + air_update_turf(1) + + /obj/structure/emergency_shield/Destroy() From d7ac827ea6fe8d00201dc8ead72cc11a871b9b02 Mon Sep 17 00:00:00 2001 From: ktccd Date: Fri, 11 Aug 2017 21:59:35 +0200 Subject: [PATCH 051/120] 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 052/120] 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 053/120] 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 054/120] 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 055/120] 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 056/120] 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 057/120] 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 058/120] 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 059/120] 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 060/120] 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 061/120] 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 062/120] 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 063/120] 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 064/120] 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 065/120] 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 066/120] 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 067/120] 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 068/120] 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 069/120] 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 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ʼn 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 SQlLZ{0Q9ts?v&hei2ffmmYbRY literal 23347 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 Date: Sun, 13 Aug 2017 09:49:43 -0500 Subject: [PATCH 070/120] 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 071/120] 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 072/120] 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 073/120] 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 074/120] 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 075/120] 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 7fe8dd208d96448ea18e906fd623142f8e15d104 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 02:44:24 -0500 Subject: [PATCH 076/120] [s] Clean up some inputs --- code/game/gamemodes/miniantags/bot_swarm/swarmer.dm | 2 +- code/game/machinery/computer/card.dm | 1 - code/game/machinery/computer/message.dm | 2 +- code/modules/cargo/console.dm | 2 +- .../modular_computers/file_system/programs/ntnrc_client.dm | 2 +- 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 68ed9abd35..c24ab53ef5 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -654,7 +654,7 @@ to_chat(M, "[link] [rendered]") /mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers() - var/message = input(src, "Announce to other swarmers", "Swarmer contact") + var/message = stripped_input(src, "Announce to other swarmers", "Swarmer contact") // TODO get swarmers their own colour rather than just boldtext if(message) swarmer_chat(message) diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index a54ab19907..7330f2d072 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -473,7 +473,6 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) if ("reg") if (authenticated) var/t2 = modify - //var/t1 = input(usr, "What name?", "ID computer", null) as text if ((authenticated && modify == t2 && (in_range(src, usr) || issilicon(usr)) && isturf(loc))) var/newName = reject_bad_name(href_list["reg"]) if(newName) diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index 26a7d3b729..18d86b71cf 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -309,7 +309,7 @@ message = noserver else if(auth) - var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null) + var/dkey = trim(stripped_input(usr, "Please enter the decryption key.")) if(dkey && dkey != "") if(src.linkedServer.decryptkey == dkey) var/newkey = trim(input(usr,"Please enter the new key (3 - 16 characters max):")) diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index 15117c1cbb..1cf215b9f2 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -145,7 +145,7 @@ var/reason = "" if(requestonly) - reason = input("Reason:", name, "") as text|null + reason = stripped_input("Reason:", name, "") as text|null if(isnull(reason) || ..()) return diff --git a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm index f200fbf747..10a6deb63d 100644 --- a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm @@ -110,7 +110,7 @@ if(!channel) return var/mob/living/user = usr - var/logname = input(user,"Enter desired logfile name (.log) or leave blank to cancel:") + var/logname = stripped_input(user,"Enter desired logfile name (.log) or leave blank to cancel:") if(!logname || !channel) return 1 var/datum/computer_file/data/logfile = new/datum/computer_file/data/logfile() From f840a18a9aeab00d5f2af74fc4ea495874b4b978 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 02:59:42 -0500 Subject: [PATCH 077/120] Fix compile warning --- code/modules/cargo/console.dm.rej | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 code/modules/cargo/console.dm.rej diff --git a/code/modules/cargo/console.dm.rej b/code/modules/cargo/console.dm.rej new file mode 100644 index 0000000000..e8798f179a --- /dev/null +++ b/code/modules/cargo/console.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm (rejected hunks) +@@ -145,7 +145,7 @@ + + var/reason = "" + if(requestonly) +- reason = stripped_input("Reason:", name, "") as text|null ++ reason = stripped_input("Reason:", name, "") + if(isnull(reason) || ..()) + return + From e986657b164fc3024ee57158b47cf22a8e7ea6c9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 06:25:03 -0500 Subject: [PATCH 078/120] 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 079/120] 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 080/120] 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 081/120] 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 082/120] 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 083/120] 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 084/120] 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 085/120] 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 f52d120cafdefc43694d002e3f4a2f774375086d Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 08:27:50 -0500 Subject: [PATCH 086/120] Update world.dm --- code/world.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/world.dm b/code/world.dm index b6badeb348..df267f2536 100644 --- a/code/world.dm +++ b/code/world.dm @@ -59,7 +59,7 @@ 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")]") + var/datum/DBQuery/db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_revision")]") db_version.Execute() if(db_version.NextRow()) var/db_major = db_version.item[1] From 822cddc718e534720ecccfc8b9b206decfe9c4e0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 08:55:45 -0500 Subject: [PATCH 087/120] 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 088/120] 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 089/120] 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 f8329e2a89a5308b482ec1259a3f0af422429347 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 09:17:25 -0500 Subject: [PATCH 090/120] Update brain_damage_lines.json --- strings/brain_damage_lines.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/strings/brain_damage_lines.json b/strings/brain_damage_lines.json index e25af310c3..af040d5ba0 100644 --- a/strings/brain_damage_lines.json +++ b/strings/brain_damage_lines.json @@ -172,6 +172,19 @@ "abdoocters" ], + "bug": [ + "", + "IS TIS A BUG??", + "SI IST A BUGG/", + "BUG!!!" + ], + + "semicolon": [ + "", + ";", + ".h" + ], + "roles": [ "heds", "ceptin", From f088e812a9ca1bd98429a450f7fd5dc4505bb5b8 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 09:31:49 -0500 Subject: [PATCH 091/120] 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 092/120] 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 093/120] 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 094/120] 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 048c782156035b3a7d59ff160152fdc131bfe543 Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Mon, 14 Aug 2017 17:09:11 -0600 Subject: [PATCH 095/120] xenomorph update A long overdue overhall and readdition of xenos --- .../new_player/sprite_accessories_Citadel.dm | 57 ++++++++++++------ .../carbon/human/species_types/furrypeople.dm | 24 ++++++++ icons/mob/human_parts_greyscale.dmi | Bin 43762 -> 44525 bytes icons/mob/xeno_parts_greyscale.dmi | Bin 0 -> 3061 bytes 4 files changed, 61 insertions(+), 20 deletions(-) create mode 100644 icons/mob/xeno_parts_greyscale.dmi 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 9808923e33..2d01d365ff 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -464,7 +464,6 @@ /datum/sprite_accessory/mam_tails/rabbit name = "Rabbit" icon_state = "rabbit" - color_src = 0 icon = 'icons/mob/mam_bodyparts.dmi' /datum/sprite_accessory/mam_ears/rabbit @@ -673,49 +672,67 @@ //Xeno Dorsal Tubes /datum/sprite_accessory/xeno_dorsal - icon = 'icons/mob/exotic_bodyparts.dmi' - color_src = 0 + icon = 'icons/mob/xeno_parts_greyscale.dmi' /datum/sprite_accessory/xeno_dorsal/none name = "None" -/datum/sprite_accessory/xeno_dorsal/normal - name = "Dorsal Tubes" - icon_state = "dortubes" +/datum/sprite_accessory/xeno_dorsal/standard + name = "Standard" + icon_state = "standard" + icon = 'icons/mob/xeno_parts_greyscale.dmi' + +/datum/sprite_accessory/xeno_dorsal/royal + name = "Royal" + icon_state = "royal" + icon = 'icons/mob/xeno_parts_greyscale.dmi' + +/datum/sprite_accessory/xeno_dorsal/down + name = "Dorsal Down" + icon_state = "down" + icon = 'icons/mob/xeno_parts_greyscale.dmi' //Xeno Tail /datum/sprite_accessory/xeno_tail - icon = 'icons/mob/exotic_bodyparts.dmi' - color_src = 0 + icon = 'icons/mob/xeno_parts_greyscale.dmi' /datum/sprite_accessory/xeno_tail/none name = "None" -/datum/sprite_accessory/xeno_tail/normal +/datum/sprite_accessory/xeno_tail/standard name = "Xenomorph Tail" icon_state = "xeno" + icon = 'icons/mob/xeno_parts_greyscale.dmi' //Xeno Caste Heads //unused as of October 3, 2016 /datum/sprite_accessory/xeno_head - icon = 'icons/mob/exotic_bodyparts.dmi' - color_src = 0 + icon = 'icons/mob/xeno_parts_greyscale.dmi' /datum/sprite_accessory/xeno_head/none name = "None" +/datum/sprite_accessory/xeno_head/standard + name = "Standard" + icon_state = "standard" + icon = 'icons/mob/xeno_parts_greyscale.dmi' -/datum/sprite_accessory/xeno_head/hunter - name = "Hunter" - icon_state = "hunter" -/datum/sprite_accessory/xeno_head/drone - name = "Drone" - icon_state = "drone" +/datum/sprite_accessory/xeno_head/royal + name = "royal" + icon_state = "royal" + icon = 'icons/mob/xeno_parts_greyscale.dmi' + +/datum/sprite_accessory/xeno_head/hollywood + name = "hollywood" + icon_state = "hollywood" + icon = 'icons/mob/xeno_parts_greyscale.dmi' + +/datum/sprite_accessory/xeno_head/warrior + name = "warrior" + icon_state = "warrior" + icon = 'icons/mob/xeno_parts_greyscale.dmi' -/datum/sprite_accessory/xeno_head/sentinel - name = "Sentinel" - icon_state = "sentinel" /* //Slimecoon Parts /datum/sprite_accessory/slimecoon_ears diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index d612a4f061..1fc4e848ec 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -79,6 +79,30 @@ datum/species/mammal return TRUE //HERBIVOROUS// +//Alien// +/datum/species/xeno + // A cloning mistake, crossing human and xenomorph DNA + name = "xeno" + id = "xeno" + say_mod = "hisses" + default_color = "00FF00" + species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE) + mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur",) + default_features = list("xenotail"="xeno","xenohead"="none","xenodorsal"="none","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None") + armor = 15 + heatmod = 1.5 + no_equip = list(slot_head) + attack_verb = "slash" + attack_sound = 'sound/weapons/slash.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno + skinned_type = /obj/item/stack/sheet/animalhide/xeno + exotic_bloodtype = "L" + damage_overlay_type = "xeno" + roundstart = 1 + +//Praise the Omnissiah, A challange worthy of my skills - HS + //EXOTIC// //These races will likely include lots of downsides and upsides. Keep them relatively balanced.// /* diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index 968e12949b016810264ce8387373706fdd47e056..e7309556354492f8e627ff9200c8a627397d5ac9 100644 GIT binary patch literal 44525 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

    Ltjqw{5-D@{$RpiQJ9AN+n)IA`Oh9)3>)fc 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 literal 43762 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 DQt}3> literal 0 HcmV?d00001 From 46c6a54a7578627ad3a4e661c7a141d935d1ef4d Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 18:38:55 -0500 Subject: [PATCH 096/120] Update misc.dm --- code/modules/clothing/head/misc.dm | 568 +++++++++++++++-------------- 1 file changed, 285 insertions(+), 283 deletions(-) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index ac82fc92db..348be6ad6d 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -1,291 +1,292 @@ - - -/obj/item/clothing/head/centhat - name = "\improper Centcom hat" - icon_state = "centcom" - desc = "It's good to be emperor." - item_state = "that" - flags_inv = 0 - armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) - strip_delay = 80 - -/obj/item/clothing/head/powdered_wig - name = "powdered wig" - desc = "A powdered wig." - icon_state = "pwig" - item_state = "pwig" - -/obj/item/clothing/head/that - name = "top-hat" - desc = "It's an amish looking hat." - icon_state = "tophat" - item_state = "that" - dog_fashion = /datum/dog_fashion/head - throwforce = 1 - -/obj/item/clothing/head/canada - name = "striped red tophat" - desc = "it smells like fresh donut holes / il sent comme des trous de beignets frais" - icon_state = "canada" - item_state = "canada" - -/obj/item/clothing/head/redcoat - name = "redcoat's hat" - icon_state = "redcoat" - desc = "'I guess it's a redhead.'" - -/obj/item/clothing/head/mailman - name = "mailman's hat" - icon_state = "mailman" - desc = "'Right-on-time' mail service head wear." - -/obj/item/clothing/head/plaguedoctorhat - name = "plague doctor's hat" - desc = "These were once used by plague doctors. They're pretty much useless." - icon_state = "plaguedoctor" - permeability_coefficient = 0.01 - -/obj/item/clothing/head/hasturhood - name = "hastur's hood" - desc = "It's unspeakably stylish." - icon_state = "hasturhood" - flags_inv = HIDEHAIR - flags_cover = HEADCOVERSEYES - -/obj/item/clothing/head/nursehat - name = "nurse's hat" - desc = "It allows quick identification of trained medical personnel." - icon_state = "nursehat" + + +/obj/item/clothing/head/centhat + name = "\improper Centcom hat" + icon_state = "centcom" + desc = "It's good to be emperor." + item_state = "that" + flags_inv = 0 + armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) + strip_delay = 80 + +/obj/item/clothing/head/powdered_wig + name = "powdered wig" + desc = "A powdered wig." + icon_state = "pwig" + item_state = "pwig" + +/obj/item/clothing/head/that + name = "top-hat" + desc = "It's an amish looking hat." + icon_state = "tophat" + item_state = "that" + dog_fashion = /datum/dog_fashion/head + throwforce = 1 + +/obj/item/clothing/head/canada + name = "striped red tophat" + desc = "it smells like fresh donut holes / il sent comme des trous de beignets frais" + icon_state = "canada" + item_state = "canada" + +/obj/item/clothing/head/redcoat + name = "redcoat's hat" + icon_state = "redcoat" + desc = "'I guess it's a redhead.'" + +/obj/item/clothing/head/mailman + name = "mailman's hat" + icon_state = "mailman" + desc = "'Right-on-time' mail service head wear." + +/obj/item/clothing/head/plaguedoctorhat + name = "plague doctor's hat" + desc = "These were once used by plague doctors. They're pretty much useless." + icon_state = "plaguedoctor" + permeability_coefficient = 0.01 + +/obj/item/clothing/head/hasturhood + name = "hastur's hood" + desc = "It's unspeakably stylish." + icon_state = "hasturhood" + flags_inv = HIDEHAIR + flags_cover = HEADCOVERSEYES + +/obj/item/clothing/head/nursehat + name = "nurse's hat" + desc = "It allows quick identification of trained medical personnel." + icon_state = "nursehat" dynamic_hair_suffix = "" - - dog_fashion = /datum/dog_fashion/head/nurse - -/obj/item/clothing/head/syndicatefake - name = "black space-helmet replica" - icon_state = "syndicate-helm-black-red" - item_state = "syndicate-helm-black-red" - desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/head/cueball - name = "cueball helmet" - desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?" - icon_state = "cueball" - item_state="cueball" - flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/head/snowman - name = "Snowman Head" - desc = "A ball of white styrofoam. So festive." - icon_state = "snowman_h" - item_state = "snowman_h" - flags_cover = HEADCOVERSEYES - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/head/justice - name = "justice hat" - desc = "Fight for what's righteous!" - icon_state = "justicered" - item_state = "justicered" - flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - flags_cover = HEADCOVERSEYES - -/obj/item/clothing/head/justice/blue - icon_state = "justiceblue" - item_state = "justiceblue" - -/obj/item/clothing/head/justice/yellow - icon_state = "justiceyellow" - item_state = "justiceyellow" - -/obj/item/clothing/head/justice/green - icon_state = "justicegreen" - item_state = "justicegreen" - -/obj/item/clothing/head/justice/pink - icon_state = "justicepink" - item_state = "justicepink" - -/obj/item/clothing/head/rabbitears - name = "rabbit ears" - desc = "Wearing these makes you look useless, and only good for your sex appeal." - icon_state = "bunny" + + dog_fashion = /datum/dog_fashion/head/nurse + +/obj/item/clothing/head/syndicatefake + name = "black space-helmet replica" + icon_state = "syndicate-helm-black-red" + item_state = "syndicate-helm-black-red" + desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/cueball + name = "cueball helmet" + desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?" + icon_state = "cueball" + item_state="cueball" + flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/snowman + name = "Snowman Head" + desc = "A ball of white styrofoam. So festive." + icon_state = "snowman_h" + item_state = "snowman_h" + flags_cover = HEADCOVERSEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/justice + name = "justice hat" + desc = "Fight for what's righteous!" + icon_state = "justicered" + item_state = "justicered" + flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR + flags_cover = HEADCOVERSEYES + +/obj/item/clothing/head/justice/blue + icon_state = "justiceblue" + item_state = "justiceblue" + +/obj/item/clothing/head/justice/yellow + icon_state = "justiceyellow" + item_state = "justiceyellow" + +/obj/item/clothing/head/justice/green + icon_state = "justicegreen" + item_state = "justicegreen" + +/obj/item/clothing/head/justice/pink + icon_state = "justicepink" + item_state = "justicepink" + +/obj/item/clothing/head/rabbitears + name = "rabbit ears" + desc = "Wearing these makes you look useless, and only good for your sex appeal." + icon_state = "bunny" dynamic_hair_suffix = "" - - dog_fashion = /datum/dog_fashion/head/rabbit - - -/obj/item/clothing/head/flatcap - name = "flat cap" - desc = "A working man's cap." - icon_state = "flat_cap" - item_state = "detective" - -/obj/item/clothing/head/pirate - name = "pirate hat" - desc = "Yarr." - icon_state = "pirate" - item_state = "pirate" - dog_fashion = /datum/dog_fashion/head/pirate - -/obj/item/clothing/head/pirate/captain - icon_state = "hgpiratecap" - item_state = "hgpiratecap" - -/obj/item/clothing/head/bandana - name = "pirate bandana" - desc = "Yarr." - icon_state = "bandana" - item_state = "bandana" + + dog_fashion = /datum/dog_fashion/head/rabbit + + +/obj/item/clothing/head/flatcap + name = "flat cap" + desc = "A working man's cap." + icon_state = "flat_cap" + item_state = "detective" + +/obj/item/clothing/head/pirate + name = "pirate hat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + dog_fashion = /datum/dog_fashion/head/pirate + +/obj/item/clothing/head/pirate/captain + icon_state = "hgpiratecap" + item_state = "hgpiratecap" + +/obj/item/clothing/head/bandana + name = "pirate bandana" + desc = "Yarr." + icon_state = "bandana" + item_state = "bandana" dynamic_hair_suffix = "" - -/obj/item/clothing/head/bowler - name = "bowler-hat" - desc = "Gentleman, elite aboard!" - icon_state = "bowler" - item_state = "bowler" + +/obj/item/clothing/head/bowler + name = "bowler-hat" + desc = "Gentleman, elite aboard!" + icon_state = "bowler" + item_state = "bowler" dynamic_hair_suffix = "" - -/obj/item/clothing/head/witchwig - name = "witch costume wig" - desc = "Eeeee~heheheheheheh!" - icon_state = "witch" - item_state = "witch" - flags_inv = HIDEHAIR - -/obj/item/clothing/head/chicken - name = "chicken suit head" - desc = "Bkaw!" - icon_state = "chickenhead" - item_state = "chickensuit" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/head/griffin - name = "griffon head" - desc = "Why not 'eagle head'? Who knows." - icon_state = "griffinhat" - item_state = "griffinhat" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/head/bearpelt - name = "bear pelt hat" - desc = "Fuzzy." - icon_state = "bearpelt" - item_state = "bearpelt" - -/obj/item/clothing/head/xenos - name = "xenos helmet" - icon_state = "xenos" - item_state = "xenos_helm" - desc = "A helmet made out of chitinous alien hide." - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/head/fedora - name = "fedora" - icon_state = "fedora" - item_state = "fedora" - armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) - desc = "A really cool hat if you're a mobster. A really lame hat if you're not." - pockets = /obj/item/weapon/storage/internal/pocket/small - -/obj/item/clothing/head/fedora/suicide_act(mob/user) - if(user.gender == FEMALE) - return 0 - var/mob/living/carbon/human/H = user - user.visible_message("[user] is donning [src]! It looks like they're trying to be nice to girls.") - user.say("M'lady.") - sleep(10) - H.facial_hair_style = "Neckbeard" - return(BRUTELOSS) - -/obj/item/clothing/head/sombrero - name = "sombrero" - icon_state = "sombrero" - item_state = "sombrero" - desc = "You can practically taste the fiesta." - flags_inv = HIDEHAIR - - dog_fashion = /datum/dog_fashion/head/sombrero - -/obj/item/clothing/head/sombrero/green - name = "green sombrero" - icon_state = "greensombrero" - item_state = "greensombrero" - desc = "As elegant as a dancing cactus." - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS - dog_fashion = null - -/obj/item/clothing/head/sombrero/shamebrero - name = "shamebrero" - icon_state = "shamebrero" - item_state = "shamebrero" - desc = "Once it's on, it never comes off." - flags = NODROP - dog_fashion = null - -/obj/item/clothing/head/cone - desc = "This cone is trying to warn you of something!" - name = "warning cone" - icon = 'icons/obj/janitor.dmi' - icon_state = "cone" - item_state = "cone" - force = 1 - throwforce = 3 - throw_speed = 2 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - attack_verb = list("warned", "cautioned", "smashed") - resistance_flags = 0 - -/obj/item/clothing/head/santa - name = "santa hat" - desc = "On the first day of christmas my employer gave to me!" - icon_state = "santahatnorm" - item_state = "that" - cold_protection = HEAD - min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT - dog_fashion = /datum/dog_fashion/head/santa - -/obj/item/clothing/head/jester - name = "jester hat" + +/obj/item/clothing/head/witchwig + name = "witch costume wig" + desc = "Eeeee~heheheheheheh!" + icon_state = "witch" + item_state = "witch" + flags_inv = HIDEHAIR + +/obj/item/clothing/head/chicken + name = "chicken suit head" + desc = "Bkaw!" + icon_state = "chickenhead" + item_state = "chickensuit" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/griffin + name = "griffon head" + desc = "Why not 'eagle head'? Who knows." + icon_state = "griffinhat" + item_state = "griffinhat" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/bearpelt + name = "bear pelt hat" + desc = "Fuzzy." + icon_state = "bearpelt" + item_state = "bearpelt" + +/obj/item/clothing/head/xenos + name = "xenos helmet" + icon_state = "xenos" + item_state = "xenos_helm" + desc = "A helmet made out of chitinous alien hide." + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/fedora + name = "fedora" + icon_state = "fedora" + item_state = "fedora" + armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) + desc = "A really cool hat if you're a mobster. A really lame hat if you're not." + pockets = /obj/item/weapon/storage/internal/pocket/small + +/obj/item/clothing/head/fedora/suicide_act(mob/user) + if(user.gender == FEMALE) + return 0 + var/mob/living/carbon/human/H = user + user.visible_message("[user] is donning [src]! It looks like they're trying to be nice to girls.") + user.say("M'lady.") + sleep(10) + H.facial_hair_style = "Neckbeard" + return(BRUTELOSS) + +/obj/item/clothing/head/sombrero + name = "sombrero" + icon_state = "sombrero" + item_state = "sombrero" + desc = "You can practically taste the fiesta." + flags_inv = HIDEHAIR + + dog_fashion = /datum/dog_fashion/head/sombrero + +/obj/item/clothing/head/sombrero/green + name = "green sombrero" + icon_state = "greensombrero" + item_state = "greensombrero" + desc = "As elegant as a dancing cactus." + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + dog_fashion = null + +/obj/item/clothing/head/sombrero/shamebrero + name = "shamebrero" + icon_state = "shamebrero" + item_state = "shamebrero" + desc = "Once it's on, it never comes off." + flags = NODROP + dog_fashion = null + +/obj/item/clothing/head/cone + desc = "This cone is trying to warn you of something!" + name = "warning cone" + icon = 'icons/obj/janitor.dmi' + icon_state = "cone" + item_state = "cone" + force = 1 + throwforce = 3 + throw_speed = 2 + throw_range = 5 + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("warned", "cautioned", "smashed") + resistance_flags = 0 + +/obj/item/clothing/head/santa + name = "santa hat" + desc = "On the first day of christmas my employer gave to me!" + icon_state = "santahatnorm" + item_state = "that" + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + dog_fashion = /datum/dog_fashion/head/santa + +/obj/item/clothing/head/jester + name = "jester hat" desc = "A hat with bells, to add some merriness to the suit." - icon_state = "jester_hat" - -/obj/item/clothing/head/rice_hat - name = "rice hat" - desc = "Welcome to the rice fields, motherfucker." - icon_state = "rice_hat" - -/obj/item/clothing/head/lizard - name = "lizardskin cloche hat" - desc = "How many lizards died to make this hat? Not enough." - icon_state = "lizard" - -/obj/item/clothing/head/papersack - name = "paper sack hat" - desc = "A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness." - icon_state = "papersack" - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS - -/obj/item/clothing/head/papersack/smiley - name = "paper sack hat" - desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all." - icon_state = "papersack_smile" - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS - -/obj/item/clothing/head/crown - name = "crown" - desc = "A crown fit for a king, a petty king maybe." - icon_state = "crown" - armor = list(melee = 15, bullet = 0, laser = 0,energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) - resistance_flags = FIRE_PROOF + icon_state = "jester_hat" dynamic_hair_suffix = "" - -/obj/item/clothing/head/crown/fancy - name = "magnificent crown" - desc = "A crown worn by only the highest emperors of the land." - icon_state = "fancycrown" + +/obj/item/clothing/head/rice_hat + name = "rice hat" + desc = "Welcome to the rice fields, motherfucker." + icon_state = "rice_hat" + +/obj/item/clothing/head/lizard + name = "lizardskin cloche hat" + desc = "How many lizards died to make this hat? Not enough." + icon_state = "lizard" + +/obj/item/clothing/head/papersack + name = "paper sack hat" + desc = "A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness." + icon_state = "papersack" + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + +/obj/item/clothing/head/papersack/smiley + name = "paper sack hat" + desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all." + icon_state = "papersack_smile" + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + +/obj/item/clothing/head/crown + name = "crown" + desc = "A crown fit for a king, a petty king maybe." + icon_state = "crown" + armor = list(melee = 15, bullet = 0, laser = 0,energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + dynamic_hair_suffix = "" + +/obj/item/clothing/head/crown/fancy + name = "magnificent crown" + desc = "A crown worn by only the highest emperors of the land." + icon_state = "fancycrown" /obj/item/clothing/head/scarecrow_hat name = "scarecrow hat" @@ -301,4 +302,5 @@ /obj/item/clothing/head/jester/alt name = "jester hat" desc = "A hat with bells, to add some merriness to the suit." - icon_state = "jester_hat2" \ No newline at end of file + icon_state = "jester_hat2" + dynamic_hair_suffix = "" From 9b57f5fd62c954bd2482bcee9a71664264b69101 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 18:39:22 -0500 Subject: [PATCH 097/120] Update collectable.dm --- code/modules/clothing/head/collectable.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 6c7acefe8f..67ce9ea370 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -4,7 +4,6 @@ /obj/item/clothing/head/collectable name = "collectable hat" desc = "A rare collectable hat." - dynamic_hair_suffix = "+detective" /obj/item/clothing/head/collectable/petehat name = "ultra rare Pete's hat!" From 98ff124b68213796fc98b00054dab365da6a9202 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 18:50:44 -0500 Subject: [PATCH 098/120] Update shieldgen.dm --- code/game/machinery/shieldgen.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index a7d857844a..fbfbe61c0f 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -10,10 +10,11 @@ max_integrity = 200 //The shield can only take so much beating (prevents perma-prisons) CanAtmosPass = ATMOS_PASS_DENSITY -/obj/structure/emergency_shield/New() - src.setDir(pick(1,2,3,4)) - ..() - air_update_turf(1) +/obj/structure/emergency_shield/Initialize() + . = ..() + setDir(pick(1,2,3,4)) + setDir(pick(GLOB.cardinals)) + air_update_turf(1) /obj/structure/emergency_shield/Destroy() density = FALSE From 2719f23e52a352e09323625f92210eee1b8350cb Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 18:53:01 -0500 Subject: [PATCH 099/120] Update shieldgen.dm --- code/game/machinery/shieldgen.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index fbfbe61c0f..0629eea303 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -10,9 +10,8 @@ max_integrity = 200 //The shield can only take so much beating (prevents perma-prisons) CanAtmosPass = ATMOS_PASS_DENSITY -/obj/structure/emergency_shield/Initialize() - . = ..() - setDir(pick(1,2,3,4)) + /obj/structure/emergency_shield/Initialize() + . = ..() setDir(pick(GLOB.cardinals)) air_update_turf(1) From d8e7194e6dab5e8c20a60a87ab39c0ae661533df Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 18:53:54 -0500 Subject: [PATCH 100/120] 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." From f2c011a37b2407e1249ce2ac9dd081d109ec9a6f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 18:55:25 -0500 Subject: [PATCH 101/120] Update console.dm --- code/modules/cargo/console.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index 15117c1cbb..7926cfc34d 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -145,7 +145,7 @@ var/reason = "" if(requestonly) - reason = input("Reason:", name, "") as text|null + reason = stripped_input("Reason:", name, "") if(isnull(reason) || ..()) return From 0c72b3ec53dafed312cd723314a50421921b1570 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 19:09:51 -0500 Subject: [PATCH 102/120] Update world.dm --- code/world.dm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/code/world.dm b/code/world.dm index e115ed6934..a0c5ae43f8 100644 --- a/code/world.dm +++ b/code/world.dm @@ -58,12 +58,11 @@ /world/proc/CheckSchemaVersion() if(config.sql_enabled) if(SSdbcore.Connect()) - log_world("Database connection established.") var/datum/DBQuery/query_db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_revision")] ORDER BY date DESC LIMIT 1") - db_version.Execute() - if(db_version.NextRow()) - var/db_major = db_version.item[1] - var/db_minor = db_version.item[2] + query_db_version.Execute() + if(query_db_version.NextRow()) + var/db_major = text2num(query_db_version.item[1]) + var/db_minor = text2num(query_db_version.item[2]) if(db_major < DB_MAJOR_VERSION || db_minor < DB_MINOR_VERSION) 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") From 64b3fe43d9a8412d534619c3781b62eeb26943dd Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 19:38:43 -0500 Subject: [PATCH 103/120] Update shieldgen.dm --- code/game/machinery/shieldgen.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 0629eea303..c857ddaf16 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -10,10 +10,10 @@ max_integrity = 200 //The shield can only take so much beating (prevents perma-prisons) CanAtmosPass = ATMOS_PASS_DENSITY - /obj/structure/emergency_shield/Initialize() - . = ..() +/obj/structure/emergency_shield/Initialize() + . = ..() setDir(pick(GLOB.cardinals)) - air_update_turf(1) + air_update_turf(1) /obj/structure/emergency_shield/Destroy() density = FALSE From c4090f5484559165cb81101a198ca4f2c014529f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Aug 2017 20:48:23 -0500 Subject: [PATCH 104/120] Automatic changelog generation for PR #2278 [ci skip] --- html/changelogs/AutoChangeLog-pr-2278.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2278.yml diff --git a/html/changelogs/AutoChangeLog-pr-2278.yml b/html/changelogs/AutoChangeLog-pr-2278.yml new file mode 100644 index 0000000000..111ae24812 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2278.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Fixed hair sticking through headgear." From 7e351b9b8ea6ce46887602b371108836c27003dc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 15 Aug 2017 05:09:00 -0500 Subject: [PATCH 105/120] =?UTF-8?q?=E2=9D=84=20---=20=3D=3D=3D=3D=20D=20E?= =?UTF-8?q?=20E=20P=20=20=20F=20R=20E=20E=20Z=20E=20=3D=3D=3D=3D=20---=20?= =?UTF-8?q?=E2=9D=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/PULL_REQUEST_TEMPLATE.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 82633fdc70..f67f095a4f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,3 @@ -[Feature Freeze!]: # We are currently not considering any balance or antagonist oriented pull requests. Full details, as well as ways to bypass this freeze, are available here https://github.com/tgstation/tgstation/pull/28223 - - [Changelogs]: # (Please make a changelog if you're adding, removing or changing content that'll affect players. This includes, but is not limited to, new features, sprites, sounds; balance changes; map edits and important fixes) []: # (See here for how to easily make a changelog: https://github.com/tgstation/tgstation/wiki/Changelogs. An example changelog has been provided below. Please edit or remove) From 3b1a0a0dc05e990a4c0e33dc4ef49e31336af2fe Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 15 Aug 2017 05:11:08 -0500 Subject: [PATCH 106/120] Fixes Singulo, Tesla, Reality Breaks, & Narsie being frozen by freon --- code/modules/power/singularity/singularity.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 07190b102c..1b65da86ab 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -26,7 +26,7 @@ var/last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing var/last_warning var/consumedSupermatter = 0 //If the singularity has eaten a supermatter shard and can go to stage six - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF dangerous_possession = TRUE /obj/singularity/Initialize(mapload, starting_energy = 50) From 402b9a6cab3ce916a6e661721b41240b4fef60e7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 15 Aug 2017 05:55:57 -0500 Subject: [PATCH 107/120] Fixes mining hardsuit heat_protection --- code/modules/clothing/spacesuits/hardsuit.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 00f622b751..19f777ac4a 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -200,7 +200,7 @@ item_color = "mining" max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF - heat_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = HEAD armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75) brightness_on = 7 allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator) @@ -216,6 +216,7 @@ armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75) allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/storage/bag/ore, /obj/item/weapon/pickaxe) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Syndicate hardsuit /obj/item/clothing/head/helmet/space/hardsuit/syndi From fdc4a4403bbb90bffaff791a301c493a3f877d70 Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Tue, 15 Aug 2017 07:02:57 -0600 Subject: [PATCH 108/120] headupdate --- icons/mob/xeno_parts_greyscale.dmi | Bin 3061 -> 3103 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/xeno_parts_greyscale.dmi b/icons/mob/xeno_parts_greyscale.dmi index ba6b8e5e80cad658514f4aec1204812446eaf13a..8b4630afe7f8a6a80b3fc08ef7883255c7f0ac2a 100644 GIT binary patch delta 2767 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 V-TGW(+_V4y002ovPDHLkV1lbOXEy)< delta 2725 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 From a8c706126d4f261fad9e72cf71921cdfa1da2f6c Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Tue, 15 Aug 2017 07:25:47 -0600 Subject: [PATCH 109/120] headupdates --- icons/mob/xeno_parts_greyscale.dmi | Bin 3103 -> 3103 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/xeno_parts_greyscale.dmi b/icons/mob/xeno_parts_greyscale.dmi index 8b4630afe7f8a6a80b3fc08ef7883255c7f0ac2a..3e180e8baaf9f0b7e43f116d6b0f8cdad1698cb8 100644 GIT binary patch delta 2474 zcmV;b303x=7@ruh!U2DoF~$A;@OBp}@~i8c154Q@7Bp~*PK)xZ>zf@`QC4V2Ueg;>G&#v1 zQ{U{c7irOYeTpV0`D5yv9i|>&AbP4Up5%|IZ+4iv1MOP$efxh9CFzOzW9pk7_GVWV z-FX##Z!}QST4Mf~`eui{RUYxwG-Gg*M_nI55ClOG z1VIo)UeO(|Qv_kwYb-bCScXQ6jSmdndfy|6+9k(yywu%5!&ZFr+ubVERf zVv|?h4CPhu%2t1T16J8}fx4!#I_JovMb67Ge|4|JQF&g@QeK4x4HO$F)~g&E%m%It zZqqf*aor}&FM6>4T|Y~C6)eevPUyiZY#{71?14TX!2IC>R#ACg&Qe}!;2toLg$+Q- ziPbBpOVT{R+`$0l4?T#&Wx0HsV#mtRz|euHLNVOrKK6frk3C?zHPl|QjE30AgIh3N z_tQNHyI6buMf>+K)v9pZAQ}PVBR~dQ7k!l8uJB!$eIS>Y#~?Zct<-~|H_xibKzq+a zFY>@E(waUbt&qLD8F2vbBd3M_2IVLf~tMg-ZLq~Bcy7V1beJ+M1AoQGVrZf z9s5dfxq}Q;wU649cP<-nzdEZ53aupxvL>b3I zx_y5l<~KVai+Li|=Lm<$_PbGFUC}X0S-!qB8~fq zb&`)*>>tJR04Tp)A8U7o7-&IS`|A&7c#Po1jz?t~zrzlaCAH?CZ=~bk+PY?t_ z5O?TX>3JTMmSmutTp%TR(dgHbfwIY{!29JHqoO6ZS5GvdRbHAc)3&Dv2`)@bTn2Ty zJ^k|}1LYyHTxyE;6h=?bSKPx&V^l`pqZi}TmO>-%9%PEsTCP0U+LNNjHYjZzJ>!3y zWc^}kj$6`gslm}KR$l2#`Jska5EC^| z*u&cQvAlFQ74)HG;K<~iGnIj(*vTMdfU!-SxAM5Ej%N zePoEPIBhh-N#d%E#ejv5S#ZBI|$lK!^}uDAKUpR$V^JX!`4xZmA92+apqbD+039ENKPb`z7 z|LNW~3LhO#z0Fv6V=fmcK~V4hEFEl`{^$N01r>@Pu~bBvKW`h+nfEsw=KpvgOJcCS z1LQJ`KhKp5ndc!FGVb?tII4nG_01Z67q6G ztdN%*;)Fcn{|WZt-^$uk-G!RqPLPGSh0q{-!`uLO)~V$+jX%YyC|ux*ce-Q&+3_9tv0=aGRL54~}NT=@K_ zFe>VH<^)45535dj2L`cX5S)V-jBDEC^B@54i86lo<(Kd-bItTGY*7A} zSAQ8|0}pceiN^?vHzpU;L zS68t7)zx27`37R6udxd(&@oe3 ztxVDHmR_D92!bF8f*=Tj_^2@w!`<$Ti_Z&#eU1M^Id%lY=Ha1ap<#%}v{Z`QSU&st z_HTf6w7*`xUBd?u+E*&A@F8^Oe%-_GJU;?q7P#&<7LT-2vDcGd6|gi|BN$=>c^QPA zz!mgE7W7;-4pR>>5It2FPx8mqH#TBIjk8zq;4qs5~!cDX+qU28s<7>s1a7W&_s+ zx9OVZxNZ~X7d=@2uAim63YO$SC-h(yHV}3h_CTKxVE*s`tEfCLXDP2Va1R*B!Umw^ z#Of8)C21aD?qGoOhaN=XvRpn*v14UuVCX!Di#|$kSNJZ>K9I}HV-OvJR_ejfn`c#IpuOjz z@(%ZL13pJxW|i>)dF2W;Ff89sEI$U7(DwFV=yio70|gJVzR-YKx zkBV2N^mQacmjuPwx)k+AlwYpTImJiB`f%HALDfEL@0pb05mL2Ff<4wZqQ3YD8TeML zj(sJ#+(8Da+DGllJC_Z(U!7G2h1QY;T80di*IFH+2^%_~Ah*xZFmYZ;f~$1`qKso9 z-9CR2^P3%z#XOPfbA&@=``sw8u4o_G%;XA@kF0$m)sVK9mtdE%zL+ex00*T)k;Z+* zI>|>Y_K)Iu0F+;@kF~o(474Dvea)0tO`Ho5WeXl*mb4y@@+<1IH-#$Tuuf~Aou0}S zc0ix8{a>KOBXLZQ&LdHNcIrv#NmZn`|HFR|VtP0%;7t7VQ4>HAREmt0F?MYE%84mf z>|yQuSYEoD3i?noaAfk%naaRX>|_u!L7>ze(Lkiv$$FkAmKOxYT5)0yW^}1@m6NsZ zf=dq*H$2*+w($rVDCvJ&l#MFRzWPPd9%`p@dB(~QoBY7ZW4Y)yuQ z^m2%%*u_XHk@Y`&AVi2S6lqv)t1h2qH2rl;x6}r1ZoPjtF;J9rB?D9RKgoYUN64W! zY}-~D(y&@P>hs{)`^|~R#U7C-Ns9g_=9d*t-F20Y(i>s#D-&v)(GwZ0gw?yACzeUk z|8#E~g^v!W-e#=3F_#OJAgFhLmJT*e|8swhf(pftSSq5-pSO+Z%=;S-^M5>$B{A6E z0dkqepXbVj%=3^78Tb3Sa-n}@VAc2YW#Dkh25wD0W`i9B!51)W`WK5_CK>;Vff54}ruuG4LGd@>7BybP~<9Ib&HzS4h%G0|xx%3)J; zq!mExr%D&9W7A0zbEd}Fg_{TrUzKMz2QEks>2-Usd1(tqY~&Oy!h?8{Xok9rXY`;- z!^=z;ou0euNn)sCQ_(X$^f?tq%;}^z+bljCQoxCqW>! zUV`R(nG_uog_l4zkB zgpm^y>h<=ZZ-#&c2&`9@jfz){rweQ2tHAFrm_EhY!Rar@7^Vlxr^f-x?UCwSnMMRf*=Tj zAP9n39No!BKEdw~%p;>4<@wa1C1YIXTVK>Yj86A-F7;~Z;P(gS5d8kY95Szhx@?5^ o2j-A&uFum1K@bE%5FZc!1rYGv`dnk&v;Y7A07*qoM6N<$g1)oVGXMYp From 5885d490ac2db5fdc4fdea3fdafe4f61098ffe16 Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Tue, 15 Aug 2017 07:35:35 -0600 Subject: [PATCH 110/120] futher updates to head and spines head and spine updates --- icons/mob/xeno_parts_greyscale.dmi | Bin 3103 -> 3104 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/xeno_parts_greyscale.dmi b/icons/mob/xeno_parts_greyscale.dmi index 3e180e8baaf9f0b7e43f116d6b0f8cdad1698cb8..44456309a763f59264a6812875f6cb1e32711564 100644 GIT binary patch delta 2768 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 V-hvq6Z;b!|002ovPDHLkV1i+5Qh)#e From 22ad3c6afe4441d6dfcf5651b870188b2effefa5 Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Tue, 15 Aug 2017 08:03:08 -0600 Subject: [PATCH 111/120] xeno markings addition added markings to the xenomorph, for polish --- .../new_player/sprite_accessories_Citadel.dm | 7 +++++++ .../carbon/human/species_types/furrypeople.dm | 4 ++-- icons/mob/mam_body_markings.dmi | Bin 43972 -> 45530 bytes 3 files changed, 9 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 2d01d365ff..0b21852a8e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -594,6 +594,13 @@ extra2 = 1 icon = 'icons/mob/mam_body_markings.dmi' + /datum/sprite_accessory/mam_body_markings/xeno + name = "Xeno" + icon_state = "xeno" + color_src = MUTCOLORS2 + extra_color_src = MUTCOLORS3 + gender_specific = 1 + /****************************************** ************ Taur Bodies ****************** *******************************************/ diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 1fc4e848ec..ad0cddabf1 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -87,8 +87,8 @@ datum/species/mammal say_mod = "hisses" default_color = "00FF00" species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE) - mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur",) - default_features = list("xenotail"="xeno","xenohead"="none","xenodorsal"="none","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None") + mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur","mam_body_markings") + default_features = list("xenotail"="xeno","xenohead"="none","xenodorsal"="none","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno") armor = 15 heatmod = 1.5 no_equip = list(slot_head) diff --git a/icons/mob/mam_body_markings.dmi b/icons/mob/mam_body_markings.dmi index a50181340db49512940e42edff85fd9cbb29c42d..737fa15c4276828ae4f9b4c2493a2721865494df 100644 GIT binary patch literal 45530 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 Bik|=g literal 43972 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 From 1cc9a1decf04c1e8b9c6ec7b20e2879cb42bfbaf Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Tue, 15 Aug 2017 08:06:59 -0600 Subject: [PATCH 112/120] set xeno standard parts to be default --- .../mob/living/carbon/human/species_types/furrypeople.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index ad0cddabf1..123966c453 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -88,7 +88,7 @@ datum/species/mammal default_color = "00FF00" species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur","mam_body_markings") - default_features = list("xenotail"="xeno","xenohead"="none","xenodorsal"="none","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno") + default_features = list("xenotail"="xeno","xenohead"="standard","xenodorsal"="standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno") armor = 15 heatmod = 1.5 no_equip = list(slot_head) From 313ba00dd5cb415b27522644498c8c697b4abbd8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 15 Aug 2017 09:59:51 -0500 Subject: [PATCH 113/120] Deathsquads no longer get shielded hardsuits --- code/modules/clothing/outfits/standard.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 66b62d3a67..abdb42d5b3 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -338,7 +338,7 @@ name = "Death Commando" uniform = /obj/item/clothing/under/color/green - suit = /obj/item/clothing/suit/space/hardsuit/shielded/swat + suit = /obj/item/clothing/suit/space/hardsuit/deathsquad shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat mask = /obj/item/clothing/mask/gas/sechailer/swat From f6babfeb8a3a4b506698cd3d1f55ab79cb761ca7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 15 Aug 2017 10:01:57 -0500 Subject: [PATCH 114/120] Makes IRC status return round id --- code/modules/server_tools/server_tools.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/server_tools/server_tools.dm b/code/modules/server_tools/server_tools.dm index d6a98ad2e5..be8c80ac24 100644 --- a/code/modules/server_tools/server_tools.dm +++ b/code/modules/server_tools/server_tools.dm @@ -73,7 +73,7 @@ GLOBAL_PROTECT(reboot_mode) if(rtod - last_irc_status < IRC_STATUS_THROTTLE) return last_irc_status = rtod - return "[GLOB.clients.len] players on [SSmapping.config.map_name], Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [config.server ? config.server : "[world.internet_address]:[world.port]"]" + return "[GLOB.round_id ? "Round #[GLOB.round_id]: " : ""][GLOB.clients.len] players on [SSmapping.config.map_name], Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [config.server ? config.server : "[world.internet_address]:[world.port]"]" if(SERVICE_CMD_ADMIN_MSG) return IrcPm(params[SERVICE_CMD_PARAM_TARGET], params[SERVICE_CMD_PARAM_MESSAGE], params[SERVICE_CMD_PARAM_SENDER]) From 6c3b6a261a9b69d1adfe1a7f78cd49f194d42cfa Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 15 Aug 2017 10:12:15 -0500 Subject: [PATCH 115/120] Automatic changelog generation for PR #2376 [ci skip] --- html/changelogs/AutoChangeLog-pr-2376.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2376.yml diff --git a/html/changelogs/AutoChangeLog-pr-2376.yml b/html/changelogs/AutoChangeLog-pr-2376.yml new file mode 100644 index 0000000000..1d1a2007b5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2376.yml @@ -0,0 +1,4 @@ +author: "ShizCalev" +delete-after: True +changes: + - bugfix: "The Singularity, Tesla energy ball, tears in the fabric of reality, and Narsie will no longer be frozen by freon." From 662786ba596f07e9d28d83f656856e581a8938e5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 15 Aug 2017 10:12:30 -0500 Subject: [PATCH 116/120] Automatic changelog generation for PR #2377 [ci skip] --- html/changelogs/AutoChangeLog-pr-2377.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2377.yml diff --git a/html/changelogs/AutoChangeLog-pr-2377.yml b/html/changelogs/AutoChangeLog-pr-2377.yml new file mode 100644 index 0000000000..4996a03563 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2377.yml @@ -0,0 +1,4 @@ +author: "More Robust Than You" +delete-after: True +changes: + - bugfix: "Fixes mining hardsuit heat_protection" From 93ae8c0e44bbb2e057fdd97bd4aad941efccb3df Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Tue, 15 Aug 2017 09:21:08 -0600 Subject: [PATCH 117/120] did some number crunching in regards to armor and practiced, balanced more, still no shoes from digitgrade --- .../mob/living/carbon/human/species_types/furrypeople.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 123966c453..dc70828960 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -89,8 +89,9 @@ datum/species/mammal species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur","mam_body_markings") default_features = list("xenotail"="xeno","xenohead"="standard","xenodorsal"="standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno") - armor = 15 + armor = 20 heatmod = 1.5 + stunmod = 0.9 no_equip = list(slot_head) attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' From 7eaaa2e6473128f1a0a8265bcb90c9f0f04cebb3 Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Tue, 15 Aug 2017 09:25:51 -0600 Subject: [PATCH 118/120] lowered armor value,in search of fixing digitigradelegs --- .../mob/living/carbon/human/species_types/furrypeople.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index dc70828960..774a81b4bb 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -89,7 +89,7 @@ datum/species/mammal species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur","mam_body_markings") default_features = list("xenotail"="xeno","xenohead"="standard","xenodorsal"="standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno") - armor = 20 + armor = 15 heatmod = 1.5 stunmod = 0.9 no_equip = list(slot_head) From b65234b733f1ae947ff9c047a8f784151f9b5a96 Mon Sep 17 00:00:00 2001 From: Haresay <15344918+sirelgate@users.noreply.github.com> Date: Tue, 15 Aug 2017 09:33:31 -0600 Subject: [PATCH 119/120] rebalanced armor downward, removed stunmod, and made more vulnerable to heat thanks to Pierceimmune being added --- .../mob/living/carbon/human/species_types/furrypeople.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 774a81b4bb..26e4fa16fd 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -86,12 +86,11 @@ datum/species/mammal id = "xeno" say_mod = "hisses" default_color = "00FF00" - species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE) + species_traits = list(MUTCOLORS,LIPS,DIGITIGRADE,PIERCEIMMUNE) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur","mam_body_markings") default_features = list("xenotail"="xeno","xenohead"="standard","xenodorsal"="standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "xeno") armor = 15 - heatmod = 1.5 - stunmod = 0.9 + heatmod = 1.7 no_equip = list(slot_head) attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' From 3d83b55cf649da7743112419db7254eb291bbd78 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 15 Aug 2017 10:49:55 -0500 Subject: [PATCH 120/120] Annihilates the colons! --- code/__HELPERS/_lists.dm | 4 +-- code/__HELPERS/icons.dm | 28 ++++++++------- code/datums/mind.dm | 12 +++---- code/game/communications.dm | 2 +- code/game/machinery/overview.dm | 6 ++-- code/game/machinery/robot_fabricator.dm | 36 +++++++++---------- code/game/mecha/mecha.dm | 4 +-- code/game/objects/items/devices/scanners.dm | 2 +- .../objects/items/devices/transfer_valve.dm | 6 ++-- code/modules/admin/DB_ban/functions.dm | 16 ++++----- code/modules/admin/verbs/adminjump.dm | 4 +-- code/modules/admin/verbs/debug.dm | 24 ++++++------- code/modules/admin/verbs/diagnostics.dm | 5 +-- code/modules/assembly/bomb.dm | 3 +- code/modules/hydroponics/grown/chili.dm | 10 +++--- code/modules/mob/living/carbon/carbon.dm | 7 ++-- .../mob/living/silicon/pai/software.dm | 3 +- .../modules/ninja/suit/suit_initialisation.dm | 2 +- code/modules/paperwork/photography.dm | 5 +-- .../chemistry/reagents/food_reagents.dm | 2 +- 20 files changed, 93 insertions(+), 88 deletions(-) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 9c64fb8b74..9646f03252 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -320,7 +320,7 @@ return r // Returns the key based on the index -#define KEYBYINDEX(L, index) (((index <= L:len) && (index > 0)) ? L[index] : null) +#define KEYBYINDEX(L, index) (((index <= length(L)) && (index > 0)) ? L[index] : null) /proc/count_by_type(list/L, type) var/i = 0 @@ -468,7 +468,7 @@ . |= key_list[key] //Picks from the list, with some safeties, and returns the "default" arg if it fails -#define DEFAULTPICK(L, default) ((islist(L) && L:len) ? pick(L) : default) +#define DEFAULTPICK(L, default) ((islist(L) && length(L)) ? pick(L) : default) #define LAZYINITLIST(L) if (!L) L = list() #define UNSETEMPTY(L) if (L && !L.len) L = null #define LAZYREMOVE(L, I) if(L) { L -= I; if(!L.len) { L = null; } } diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 04ea69a43f..ef20844c91 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -712,7 +712,8 @@ The _flatIcons list is a cache for generated icon files. if(!current) curIndex++ //Try the next layer continue - currentLayer = current:layer + var/image/I = current + currentLayer = I.layer if(currentLayer<0) // Special case for FLY_LAYER if(currentLayer <= -1000) return flat if(pSet == 0) // Underlay @@ -747,22 +748,22 @@ The _flatIcons list is a cache for generated icon files. // Dimensions of overlay being added var/{addX1;addX2;addY1;addY2} - for(var/I in layers) - - if(I:alpha == 0) + for(var/V in layers) + var/image/I = V + if(I.alpha == 0) continue if(I == copy) // 'I' is an /image based on the object being flattened. curblend = BLEND_OVERLAY - add = icon(I:icon, I:icon_state, I:dir) + add = icon(I.icon, I.icon_state, I.dir) else // 'I' is an appearance object. add = getFlatIcon(new/image(I), curdir, curicon, curstate, curblend) // Find the new dimensions of the flat icon to fit the added overlay - addX1 = min(flatX1, I:pixel_x+1) - addX2 = max(flatX2, I:pixel_x+add.Width()) - addY1 = min(flatY1, I:pixel_y+1) - addY2 = max(flatY2, I:pixel_y+add.Height()) + addX1 = min(flatX1, I.pixel_x+1) + addX2 = max(flatX2, I.pixel_x+add.Width()) + addY1 = min(flatY1, I.pixel_y+1) + addY2 = max(flatY2, I.pixel_y+add.Height()) if(addX1!=flatX1 || addX2!=flatX2 || addY1!=flatY1 || addY2!=flatY2) // Resize the flattened icon so the new icon fits @@ -771,7 +772,7 @@ The _flatIcons list is a cache for generated icon files. flatY1=addY1;flatY2=addY2 // Blend the overlay into the flattened icon - flat.Blend(add, blendMode2iconMode(curblend), I:pixel_x + 2 - flatX1, I:pixel_y + 2 - flatY1) + flat.Blend(add, blendMode2iconMode(curblend), I.pixel_x + 2 - flatX1, I.pixel_y + 2 - flatY1) if(A.color) flat.Blend(A.color, ICON_MULTIPLY) @@ -782,10 +783,11 @@ The _flatIcons list is a cache for generated icon files. /proc/getIconMask(atom/A)//By yours truly. Creates a dynamic mask for a mob/whatever. /N var/icon/alpha_mask = new(A.icon,A.icon_state)//So we want the default icon and icon state of A. - for(var/I in A.overlays)//For every image in overlays. var/image/I will not work, don't try it. - if(I:layer>A.layer) + for(var/V in A.overlays)//For every image in overlays. var/image/I will not work, don't try it. + var/image/I = V + if(I.layer>A.layer) continue//If layer is greater than what we need, skip it. - var/icon/image_overlay = new(I:icon,I:icon_state)//Blend only works with icon objects. + var/icon/image_overlay = new(I.icon,I.icon_state)//Blend only works with icon objects. //Also, icons cannot directly set icon_state. Slower than changing variables but whatever. alpha_mask.Blend(image_overlay,ICON_OR)//OR so they are lumped together in a nice overlay. return alpha_mask//And now return the mask. diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 7017149d53..d943e417e5 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -805,11 +805,11 @@ possible_targets += possible_target.current var/mob/def_target = null - var/objective_list[] = list(/datum/objective/assassinate, /datum/objective/protect, /datum/objective/debrain, /datum/objective/maroon) - if (objective&&(objective.type in objective_list) && objective:target) - def_target = objective:target.current + var/list/objective_list = typecacheof(list(/datum/objective/assassinate, /datum/objective/protect, /datum/objective/debrain, /datum/objective/maroon)) + if (is_type_in_typecache(objective, objective_list) && objective.target) + def_target = objective.target.current - var/new_target = input("Select target:", "Objective target", def_target) as null|anything in possible_targets + var/mob/new_target = input("Select target:", "Objective target", def_target) as null|anything in possible_targets if (!new_target) return @@ -817,12 +817,12 @@ if (new_target == "Free objective") new_objective = new objective_path new_objective.owner = src - new_objective:target = null + new_objective.target = null new_objective.explanation_text = "Free objective" else new_objective = new objective_path new_objective.owner = src - new_objective:target = new_target:mind + new_objective.target = new_target.mind //Will display as special role if the target is set as MODE. Ninjas/commandos/nuke ops. new_objective.update_explanation_text() diff --git a/code/game/communications.dm b/code/game/communications.dm index 66bb91ef59..19c3f87460 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -292,7 +292,7 @@ GLOBAL_VAR_INIT(RADIO_MAGNETS, "9") /datum/signal/proc/debug_print() if (source) - . = "signal = {source = '[source]' ([source:x],[source:y],[source:z])\n" + . = "signal = {source = '[source]' [COORD(source)]\n" else . = "signal = {source = '[source]' ()\n" for (var/i in data) diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm index ffcb36678a..0cf97586c3 100644 --- a/code/game/machinery/overview.dm +++ b/code/game/machinery/overview.dm @@ -96,7 +96,8 @@ colour2 = rgb(255,128,0) if(ismob(AM)) - if(AM:client) + var/mob/M = AM + if(M.client) colour = rgb(255,0,0) else colour = rgb(255,128,128) @@ -242,7 +243,8 @@ colour = rgb(255,255,0) if(ismob(AM)) - if(AM:client) + var/mob/M = AM + if(M.client) colour = rgb(255,0,0) else colour = rgb(255,128,128) diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm index 2183ec6448..20fd729304 100644 --- a/code/game/machinery/robot_fabricator.dm +++ b/code/game/machinery/robot_fabricator.dm @@ -11,31 +11,29 @@ idle_power_usage = 20 active_power_usage = 5000 -/obj/machinery/robotic_fabricator/attackby(obj/item/O, mob/user, params) +/obj/machinery/robotic_fabricator/attackby(obj/item/O, mob/living/user, params) if (istype(O, /obj/item/stack/sheet/metal)) - if (src.metal_amount < 150000) - var/count = 0 - src.add_overlay("fab-load-metal") - spawn(15) - if(O) - if(!O:amount) - return - while(metal_amount < 150000 && O:amount) - src.metal_amount += O:materials[MAT_METAL] /*O:height * O:width * O:length * 100000*/ - O:amount-- - count++ - - if (O:amount < 1) - qdel(O) - - to_chat(user, "You insert [count] metal sheet\s into \the [src].") - cut_overlay("fab-load-metal") - updateDialog() + if (metal_amount < 150000) + add_overlay("fab-load-metal") + addtimer(CALLBACK(src, .proc/FinishLoadingMetal, O, user), 15) else to_chat(user, "\The [src] is full.") else return ..() +/obj/machinery/robotic_fabricator/proc/FinishLoadingMetal(obj/item/stack/sheet/metal/M, mob/living/user) + cut_overlay("fab-load-metal") + if(QDELETED(M) || QDELETED(user)) + return + var/count = 0 + while(metal_amount < 150000 && !QDELETED(M)) + metal_amount += M.materials[MAT_METAL] + M.use(1) + count++ + + to_chat(user, "You insert [count] metal sheet\s into \the [src].") + updateDialog() + /obj/machinery/robotic_fabricator/power_change() if (powered()) stat &= ~NOPOWER diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 5564cd2c0a..5d5879206b 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -713,8 +713,8 @@ AI.remote_control = src AI.canmove = 1 //Much easier than adding AI checks! Be sure to set this back to 0 if you decide to allow an AI to leave a mech somehow. AI.can_shunt = 0 //ONE AI ENTERS. NO AI LEAVES. - to_chat(AI, "[AI.can_dominate_mechs ? "Takeover of [name] complete! You are now loaded onto the onboard computer. Do not attempt to leave the station sector!" \ - : "You have been uploaded to a mech's onboard computer."]") + to_chat(AI, AI.can_dominate_mechs ? "Takeover of [name] complete! You are now loaded onto the onboard computer. Do not attempt to leave the station sector!" :\ + "You have been uploaded to a mech's onboard computer.") to_chat(AI, "Use Middle-Mouse to activate mech functions and equipment. Click normally for AI interactions.") if(interaction == AI_TRANS_FROM_CARD) GrantActions(AI, FALSE) //No eject/return to core action for AI uploaded by card diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 3d7e575215..ae84bd2f2c 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -147,7 +147,7 @@ MASS SPECTROMETER if (M.getCloneLoss()) to_chat(user, "\tSubject appears to have [M.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage.") if (M.reagents && M.reagents.get_reagent_amount("epinephrine")) - to_chat(user, "\tBloodstream analysis located [M.reagents:get_reagent_amount("epinephrine")] units of rejuvenation chemicals.") + to_chat(user, "\tBloodstream analysis located [M.reagents.get_reagent_amount("epinephrine")] units of rejuvenation chemicals.") if (M.getBrainLoss() >= 100 || !M.getorgan(/obj/item/organ/brain)) to_chat(user, "\tSubject brain function is non-existent.") else if (M.getBrainLoss() >= 60) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index c21ff386bd..4663e2142a 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -8,7 +8,7 @@ desc = "Regulates the transfer of air between two tanks" var/obj/item/weapon/tank/tank_one var/obj/item/weapon/tank/tank_two - var/obj/item/device/attached_device + var/obj/item/device/assembly/attached_device var/mob/attacher = null var/valve_open = FALSE var/toggle = 1 @@ -99,8 +99,8 @@ toggle_valve() else if(attached_device) if(href_list["rem_device"]) - attached_device.loc = get_turf(src) - attached_device:holder = null + attached_device.forceMove(get_turf(src)) + attached_device.holder = null attached_device = null update_icon() if(href_list["device"]) diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index 23bf656b8c..e580b306b3 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -83,10 +83,10 @@ var/a_computerid var/a_ip - if(src.owner && istype(src.owner, /client)) - a_ckey = src.owner:ckey - a_computerid = src.owner:computer_id - a_ip = src.owner:address + if(istype(owner)) + a_ckey = owner.ckey + a_computerid = owner.computer_id + a_ip = owner.address if(blockselfban) if(a_ckey == ckey) @@ -309,12 +309,12 @@ to_chat(usr, "Database update failed due to multiple bans having the same ID. Contact the database admin.") return - if(!src.owner || !istype(src.owner, /client)) + if(!istype(owner)) return - var/unban_ckey = src.owner:ckey - var/unban_computerid = src.owner:computer_id - var/unban_ip = src.owner:address + var/unban_ckey = owner.ckey + var/unban_computerid = owner.computer_id + var/unban_ip = owner.address var/sql_update = "UPDATE [format_table_name("ban")] SET unbanned = 1, unbanned_datetime = Now(), unbanned_ckey = '[unban_ckey]', unbanned_computerid = '[unban_computerid]', unbanned_ip = INET_ATON('[unban_ip]') WHERE id = [id]" var/datum/DBQuery/query_unban = SSdbcore.NewQuery(sql_update) diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 7f4dd3ebb9..ec1091bb3c 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -84,11 +84,11 @@ var/list/keys = list() for(var/mob/M in GLOB.player_list) keys += M.client - var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) + var/client/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) if(!selection) to_chat(src, "No keys found.") return - var/mob/M = selection:mob + var/mob/M = selection.mob log_admin("[key_name(usr)] jumped to [key_name(M)]") message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]") diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index c69628c625..66438d1fac 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -316,10 +316,8 @@ GLOBAL_PROTECT(AdminProcCallCount) alert("Wait until the game starts") return if(ishuman(M)) - log_admin("[key_name(src)] has alienized [M.key].") - spawn(0) - M:Alienize() - SSblackbox.add_details("admin_verb","Make Alien") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + INVOKE_ASYNC(M, /mob/living/carbon/human/proc/Alienize) + SSblackbox.add_details("admin_verb","Make Alien") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] made [key_name(M)] into an alien.") message_admins("[key_name_admin(usr)] made [key_name(M)] into an alien.") else @@ -333,10 +331,8 @@ GLOBAL_PROTECT(AdminProcCallCount) alert("Wait until the game starts") return if(ishuman(M)) - log_admin("[key_name(src)] has slimeized [M.key].") - spawn(0) - M:slimeize() - SSblackbox.add_details("admin_verb","Make Slime") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + INVOKE_ASYNC(M, /mob/living/carbon/human/proc/slimeize) + SSblackbox.add_details("admin_verb","Make Slime") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] made [key_name(M)] into a slime.") message_admins("[key_name_admin(usr)] made [key_name(M)] into a slime.") else @@ -461,12 +457,14 @@ GLOBAL_PROTECT(AdminProcCallCount) if(worn) if(istype(worn, /obj/item/device/pda)) - worn:id = id - id.loc = worn + var/obj/item/device/pda/PDA = worn + PDA.id = id + id.forceMove(PDA) else if(istype(worn, /obj/item/weapon/storage/wallet)) - worn:front_id = id - id.loc = worn - worn.update_icon() + var/obj/item/weapon/storage/wallet/W = worn + W.front_id = id + id.forceMove(W) + W.update_icon() else H.equip_to_slot(id,slot_wear_id) diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm index 15b619f653..a4482154d8 100644 --- a/code/modules/admin/verbs/diagnostics.dm +++ b/code/modules/admin/verbs/diagnostics.dm @@ -78,8 +78,9 @@ continue output += "  [filters[filter]]: [f.len]
    " for (var/device in f) - if (isobj(device)) - output += "    [device] ([device:x],[device:y],[device:z] in area [get_area(device:loc)])
    " + if (istype(device, /atom)) + var/atom/A = device + output += "    [device] ([A.x],[A.y],[A.z] in area [get_area(device)])
    " else output += "    [device]
    " diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 2853fefcbf..f0fa90aa20 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -44,7 +44,8 @@ qdel(src) return - if((istype(W, /obj/item/weapon/weldingtool) && W:welding)) + var/obj/item/weapon/weldingtool/WT = W + if((istype(WT) && WT.welding)) if(!status) status = TRUE GLOB.bombers += "[key_name(user)] welded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]" diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 7707a4d438..66bd823a89 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -71,21 +71,21 @@ name = "ghost chili" desc = "It seems to be vibrating gently." icon_state = "ghostchilipepper" - var/mob/held_mob + var/mob/living/carbon/human/held_mob filling_color = "#F8F8FF" bitesize_mod = 4 origin_tech = "biotech=4;magnets=5" /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/attack_hand(mob/user) ..() - if( ismob(src.loc) ) - held_mob = src.loc + if( ismob(loc) ) + held_mob = loc START_PROCESSING(SSobj, src) /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/process() - if(held_mob && src.loc == held_mob) + if(held_mob && loc == held_mob) if(held_mob.is_holding(src)) - if(hasvar(held_mob,"gloves") && held_mob:gloves) + if(istype(held_mob) && held_mob.gloves) return held_mob.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT if(prob(10)) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 9179221137..8f5720164e 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -51,9 +51,10 @@ var/obj/item/item_in_hand = src.get_active_held_item() if(item_in_hand) //this segment checks if the item in your hand is twohanded. - if(istype(item_in_hand, /obj/item/weapon/twohanded)) - if(item_in_hand:wielded == 1) - to_chat(usr, "Your other hand is too busy holding the [item_in_hand.name]") + var/obj/item/weapon/twohanded/TH = item_in_hand + if(istype(TH)) + if(TH.wielded == 1) + to_chat(usr, "Your other hand is too busy holding [TH]") return var/oindex = active_hand_index active_hand_index = held_index diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 77874ad403..719b17c734 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -619,7 +619,8 @@ src.paiInterface() if(hackprogress >= 100) src.hackprogress = 0 - src.cable.machine:open() + var/obj/machinery/door/D = cable.machine + D.open() sleep(50) // Update every 5 seconds // Digital Messenger diff --git a/code/modules/ninja/suit/suit_initialisation.dm b/code/modules/ninja/suit/suit_initialisation.dm index b723ade381..5fb3fe8a62 100644 --- a/code/modules/ninja/suit/suit_initialisation.dm +++ b/code/modules/ninja/suit/suit_initialisation.dm @@ -70,7 +70,7 @@ addtimer(CALLBACK(src, .proc/deinitialize_three, delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_three(delay, mob/living/carbon/human/U) - to_chat(U, "Logging off, [U:real_name]. Shutting down SpiderOS.") + to_chat(U, "Logging off, [U.real_name]. Shutting down SpiderOS.") addtimer(CALLBACK(src, .proc/deinitialize_four, delay, U), delay) /obj/item/clothing/suit/space/space_ninja/proc/deinitialize_four(delay, mob/living/carbon/human/U) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index b1896f930a..4755f3d64a 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -222,8 +222,9 @@ var/offX = 32 * (A.x - center.x) + A.pixel_x + 33 var/offY = 32 * (A.y - center.y) + A.pixel_y + 33 if(ismovableatom(A)) - offX += A:step_x - offY += A:step_y + var/atom/movable/AM = A + offX += AM.step_x + offY += AM.step_y res.Blend(img, blendMode2iconMode(A.blend_mode), offX, offY) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 1fae98e2f3..72001d5ca9 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -390,7 +390,7 @@ T.MakeSlippery(min_wet_time = 10, wet_time_to_add = reac_volume*2) var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot) - var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) + var/datum/gas_mixture/lowertemp = T.remove_air(T.air.total_moles()) lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) lowertemp.react() T.assume_air(lowertemp)