From a87a75d0590edf51b1a7a8e2724663e06d00eb87 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 3 May 2017 22:22:07 -0500 Subject: [PATCH 01/82] Draconic language, for lizards --- code/modules/language/unathi.dm | 20 +++++++++++++++++++ .../human/species_types/lizardpeople.dm | 3 +++ code/modules/surgery/organs/tongue.dm | 1 + code/modules/surgery/organs/tongue.dm.rej | 10 ++++++++++ tgstation.dme.rej | 9 +++++++++ 5 files changed, 43 insertions(+) create mode 100644 code/modules/language/unathi.dm create mode 100644 code/modules/surgery/organs/tongue.dm.rej create mode 100644 tgstation.dme.rej diff --git a/code/modules/language/unathi.dm b/code/modules/language/unathi.dm new file mode 100644 index 0000000000..5c6da5362f --- /dev/null +++ b/code/modules/language/unathi.dm @@ -0,0 +1,20 @@ +/datum/language/unathi + name = "Unathi" + desc = "The common language of lizard-people, composed of sibilant hisses and rattles." + speech_verb = "hisses" + ask_verb = "hisses" + exclaim_verb = "roars" + key = "o" + flags = TONGUELESS_SPEECH + space_chance = 40 + syllables = list( + "za", "az", "ze", "ez", "zi", "iz", "zo", "oz", "zu", "uz", "zs", "sz", + "ha", "ah", "he", "eh", "hi", "ih", "ho", "oh", "hu", "uh", "hs", "sh", + "la", "al", "le", "el", "li", "il", "lo", "ol", "lu", "ul", "ls", "sl", + "ka", "ak", "ke", "ek", "ki", "ik", "ko", "ok", "ku", "uk", "ks", "sk", + "sa", "as", "se", "es", "si", "is", "so", "os", "su", "us", "ss", "ss", + "ra", "ar", "re", "er", "ri", "ir", "ro", "or", "ru", "ur", "rs", "sr", + "a", "a", "e", "e", "i", "i", "o", "o", "u", "u", "s", "s" + ) + icon_state = "lizard" + default_priority = 90 diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 876d2f9e34..5fa3d1e4f8 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -17,6 +17,9 @@ skinned_type = /obj/item/stack/sheet/animalhide/lizard exotic_bloodtype = "L" +/datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H) + H.grant_language(/datum/language/draconic) + /datum/species/lizard/random_name(gender,unique,lastname) if(unique) return random_unique_lizard_name(gender) diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 1ef36f3fe2..bbfa6eface 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -127,6 +127,7 @@ languages_possible = typecacheof(list( /datum/language/xenocommon, /datum/language/common, + /datum/language/draconic, /datum/language/ratvar, /datum/language/monkey)) diff --git a/code/modules/surgery/organs/tongue.dm.rej b/code/modules/surgery/organs/tongue.dm.rej new file mode 100644 index 0000000000..39d5c09394 --- /dev/null +++ b/code/modules/surgery/organs/tongue.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm (rejected hunks) +@@ -13,7 +13,7 @@ + . = ..() + languages_possible = typecacheof(list( + /datum/language/common, +- /datum/language/unathi, ++ /datum/language/draconic, + /datum/language/monkey, + /datum/language/ratvar + )) diff --git a/tgstation.dme.rej b/tgstation.dme.rej new file mode 100644 index 0000000000..b450e34a07 --- /dev/null +++ b/tgstation.dme.rej @@ -0,0 +1,9 @@ +diff a/tgstation.dme b/tgstation.dme (rejected hunks) +@@ -1377,6 +1377,7 @@ + #include "code\modules\jobs\job_types\silicon.dm" + #include "code\modules\jobs\map_changes\map_changes.dm" + #include "code\modules\language\common.dm" ++#include "code\modules\language\draconic.dm" + #include "code\modules\language\drone.dm" + #include "code\modules\language\language.dm" + #include "code\modules\language\language_menu.dm" From f5bc75c0bc1c18971cee7e6c2187c6a81b36dbee Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 4 May 2017 06:04:59 -0500 Subject: [PATCH 02/82] Moves tongues to `mutanttongue` var --- .../mob/living/carbon/human/human.dm.rej | 12 ++++++++++++ .../modules/mob/living/carbon/human/species.dm | 8 +++++++- .../mob/living/carbon/human/species.dm.rej | 18 ++++++++++++++++++ .../carbon/human/species_types/abductors.dm | 4 ++-- .../carbon/human/species_types/android.dm | 4 ++-- .../carbon/human/species_types/flypeople.dm | 2 +- .../human/species_types/lizardpeople.dm.rej | 10 ++++++++++ .../carbon/human/species_types/plasmamen.dm | 4 ++-- code/modules/surgery/organs/organ_internal.dm | 13 +++++-------- 9 files changed, 59 insertions(+), 16 deletions(-) create mode 100644 code/modules/mob/living/carbon/human/human.dm.rej create mode 100644 code/modules/mob/living/carbon/human/species.dm.rej create mode 100644 code/modules/mob/living/carbon/human/species_types/lizardpeople.dm.rej diff --git a/code/modules/mob/living/carbon/human/human.dm.rej b/code/modules/mob/living/carbon/human/human.dm.rej new file mode 100644 index 0000000000..5866cddae0 --- /dev/null +++ b/code/modules/mob/living/carbon/human/human.dm.rej @@ -0,0 +1,12 @@ +diff a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm (rejected hunks) +@@ -58,8 +58,9 @@ + if(!(NOBLOOD in dna.species.species_traits)) + internal_organs += new /obj/item/organ/heart + +- internal_organs += new dna.species.mutanteyes() ++ internal_organs += new dna.species.mutanteyes + internal_organs += new dna.species.mutantears ++ internal_organs += new dna.species.mutanttongue + internal_organs += new /obj/item/organ/brain + ..() + diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a48124e412..5b2fafcda4 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -35,7 +35,7 @@ var/say_mod = "says" // affects the speech message var/list/default_features = list() // Default mutant bodyparts for this species. Don't forget to set one for every mutant bodypart you allow this species to have. var/list/mutant_bodyparts = list() // Parts of the body that are diferent enough from the standard human model that they cause clipping with some equipment - var/list/mutant_organs = list(/obj/item/organ/tongue) //Internal organs that are unique to this race. + var/list/mutant_organs = list() //Internal organs that are unique to this race. var/speedmod = 0 // this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster var/armor = 0 // overall defense for the race... or less defense, if it's negative. var/brutemod = 1 // multiplier for brute damage @@ -131,6 +131,7 @@ var/obj/item/organ/appendix/appendix = C.getorganslot("appendix") var/obj/item/organ/eyes/eyes = C.getorganslot("eye_sight") var/obj/item/organ/ears/ears = C.getorganslot("ears") + var/obj/item/organ/tongue/tongue = C.getorganslot("tongue") if((NOBLOOD in species_traits) && heart) heart.Remove(C) @@ -153,6 +154,11 @@ ears = new mutantears ears.Insert(C) + if(tongue) + qdel(tongue) + tongue = new mutanttongue + tongue.Insert(C) + if((!(NOBREATH in species_traits)) && !lungs) if(mutantlungs) lungs = new mutantlungs() diff --git a/code/modules/mob/living/carbon/human/species.dm.rej b/code/modules/mob/living/carbon/human/species.dm.rej new file mode 100644 index 0000000000..1260400360 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species.dm.rej @@ -0,0 +1,18 @@ +diff a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm (rejected hunks) +@@ -66,15 +66,10 @@ + //Flight and floating + var/override_float = 0 + +- +- //Eyes + var/obj/item/organ/eyes/mutanteyes = /obj/item/organ/eyes +- +- //Ears + var/obj/item/organ/ears/mutantears = /obj/item/organ/ears +- +- //Hands + var/obj/item/mutanthands = null ++ var/obj/item/organ/tongue/mutanttongue = /obj/item/organ/tongue + + /////////// + // PROCS // diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm index 85b36c90c0..b76536f5bf 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -4,6 +4,6 @@ say_mod = "gibbers" sexes = 0 species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS,NOHUNGER) - mutant_organs = list(/obj/item/organ/tongue/abductor) + mutanttongue = /obj/item/organ/tongue/abductor var/scientist = 0 // vars to not pollute spieces list with castes - var/team = 1 \ No newline at end of file + var/team = 1 diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 0e63115652..1c7cc6806b 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -5,7 +5,7 @@ species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT) meat = null damage_overlay_type = "synth" - mutant_organs = list(/obj/item/organ/tongue/robot) + mutanttongue = /obj/item/organ/tongue/robot limbs_id = "synth" /datum/species/android/on_species_gain(mob/living/carbon/C) @@ -18,4 +18,4 @@ . = ..() for(var/X in C.bodyparts) var/obj/item/bodypart/O = X - O.change_bodypart_status(BODYPART_ORGANIC,FALSE, TRUE) \ No newline at end of file + O.change_bodypart_status(BODYPART_ORGANIC,FALSE, TRUE) diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 65b3eb9a65..3d6a10aae9 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -2,7 +2,7 @@ name = "Flyperson" id = "fly" say_mod = "buzzes" - mutant_organs = list(/obj/item/organ/tongue/fly) + mutanttongue = /obj/item/organ/tongue/fly meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm.rej b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm.rej new file mode 100644 index 0000000000..1aab6d751d --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm (rejected hunks) +@@ -6,7 +6,7 @@ + default_color = "00FF00" + species_traits = list(MUTCOLORS,EYECOLOR,LIPS) + mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs") +- mutant_organs = list(/obj/item/organ/tongue/lizard) ++ mutanttongue = /obj/item/organ/tongue/lizard + coldmod = 1.5 + heatmod = 0.67 + default_features = list("mcolor" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs") diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 6672c69b1e..f372968270 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -6,7 +6,7 @@ meat = /obj/item/stack/sheet/mineral/plasma species_traits = list(NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER) mutantlungs = /obj/item/organ/lungs/plasmaman - mutant_organs = list(/obj/item/organ/tongue/bone/plasmaman) + mutanttongue = /obj/item/organ/tongue/bone/plasmaman dangerous_existence = 1 //So so much blacklisted = 1 //See above burnmod = 1.5 @@ -66,4 +66,4 @@ if(lastname) randname += " [lastname]" - return randname \ No newline at end of file + return randname diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 97e794b466..78adf8268c 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -125,16 +125,13 @@ if(!getorganslot("tongue")) var/obj/item/organ/tongue/T - if(dna && dna.species) - for(var/tongue_type in dna.species.mutant_organs) - if(ispath(tongue_type, /obj/item/organ/tongue)) - T = new tongue_type() - T.Insert(src) + if(dna && dna.species && dna.species.mutanttongue) + T = new dna.species.mutanttongue() + else + T = new() // if they have no mutant tongues, give them a regular one - if(!T) - T = new() - T.Insert(src) + T.Insert(src) if(!getorganslot("eye_sight")) var/obj/item/organ/eyes/E From 56d5e12263c695b25cf10e3d25302c018a335183 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 5 May 2017 08:13:04 -0500 Subject: [PATCH 03/82] Moves languages to a holder datum, gives mind its own language holder --- code/__DEFINES/language.dm | 3 + code/__DEFINES/subsystems.dm | 1 + code/_globalvars/lists/mobs.dm | 6 +- code/_onclick/hud/ghost.dm | 4 + code/_onclick/hud/screen_objects.dm | 7 +- code/controllers/subsystem/language.dm | 18 +++ code/datums/action.dm | 7 +- code/datums/mind.dm | 12 ++ code/game/atoms.dm | 2 +- code/game/atoms_movable.dm | 2 + code/game/atoms_movable.dm.rej | 10 ++ code/game/gamemodes/clock_cult/clock_mobs.dm | 3 +- .../gamemodes/miniantags/bot_swarm/swarmer.dm | 2 +- code/game/machinery/hologram.dm.rej | 17 +++ code/game/objects/objs.dm | 2 +- code/game/say.dm | 4 +- code/modules/admin/topic.dm | 10 +- code/modules/language/language.dm | 13 +-- code/modules/language/language_holder.dm | 110 ++++++++++++++++++ code/modules/language/language_menu.dm | 66 ++++++----- .../modules/mob/dead/observer/observer.dm.rej | 15 +++ code/modules/mob/living/brain/say.dm | 9 +- code/modules/mob/living/carbon/alien/alien.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 5 - .../mob/living/carbon/human/human_defines.dm | 3 +- .../mob/living/carbon/monkey/monkey.dm | 2 +- code/modules/mob/living/carbon/say.dm | 15 +-- code/modules/mob/living/living.dm | 4 - code/modules/mob/living/living_defines.dm | 1 - code/modules/mob/living/say.dm | 33 ++---- code/modules/mob/living/silicon/ai/say.dm | 8 +- code/modules/mob/living/silicon/silicon.dm | 2 +- .../mob/living/simple_animal/bot/bot.dm | 2 +- .../simple_animal/friendly/drone/_drone.dm | 3 +- .../friendly/drone/extra_drone_types.dm | 4 +- .../hostile/megafauna/colossus.dm | 3 +- .../mob/living/simple_animal/simple_animal.dm | 3 - .../mob/living/simple_animal/slime/slime.dm | 2 +- code/modules/mob/mob.dm | 8 +- code/modules/shuttle/special.dm | 6 +- code/modules/surgery/organs/tongue.dm | 2 +- code/modules/tgui/states/language_menu.dm | 2 +- tgstation.dme | 1 + tgstation.dme.rej | 9 ++ tgui/assets/tgui.css.rej | 6 + tgui/assets/tgui.js.rej | 17 +++ tgui/src/interfaces/language_menu.ract | 37 +++--- 47 files changed, 355 insertions(+), 148 deletions(-) create mode 100644 code/controllers/subsystem/language.dm create mode 100644 code/game/atoms_movable.dm.rej create mode 100644 code/game/machinery/hologram.dm.rej create mode 100644 code/modules/language/language_holder.dm create mode 100644 code/modules/mob/dead/observer/observer.dm.rej create mode 100644 tgstation.dme.rej create mode 100644 tgui/assets/tgui.css.rej create mode 100644 tgui/assets/tgui.js.rej diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm index e7818d7bf3..dc2ac19e65 100644 --- a/code/__DEFINES/language.dm +++ b/code/__DEFINES/language.dm @@ -2,3 +2,6 @@ #define TONGUELESS_SPEECH 2 #define LANGUAGE_HIDE_ICON_IF_UNDERSTOOD 4 #define LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD 8 + +#define LANGUAGE_KNOWN "language_known" +#define LANGUAGE_SHADOWED "language_shadowed" diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index c0b9a20d3b..0a1d66c2ed 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -46,6 +46,7 @@ #define INIT_ORDER_TICKER 13 #define INIT_ORDER_MAPPING 12 #define INIT_ORDER_ATOMS 11 +#define INIT_ORDER_LANGUAGE 10 #define INIT_ORDER_MACHINES 9 #define INIT_ORDER_SHUTTLE 3 #define INIT_ORDER_TIMER 1 diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index e378970225..acb60ee68e 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -19,5 +19,7 @@ GLOBAL_LIST_EMPTY(silicon_mobs) //all silicon mobs GLOBAL_LIST_EMPTY(ai_list) GLOBAL_LIST_EMPTY(pai_list) GLOBAL_LIST_EMPTY(available_ai_shells) -GLOBAL_LIST_EMPTY(language_datums) -GLOBAL_LIST_EMPTY(simple_animals) \ No newline at end of file +GLOBAL_LIST_EMPTY(simple_animals) + +GLOBAL_LIST_EMPTY(language_datum_instances) +GLOBAL_LIST_EMPTY(all_languages) diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index 04655315b7..c2448ceb87 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -68,6 +68,10 @@ using.screen_loc = ui_ghost_pai static_inventory += using + using = new /obj/screen/language_menu + using.icon = ui_style + static_inventory += using + /datum/hud/ghost/show_hud(version = 0, mob/viewmob) ..() if(!mymob.client.prefs.ghost_hud) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index bfab19ba5f..3cd0d5bdbd 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -91,10 +91,9 @@ screen_loc = ui_language_menu /obj/screen/language_menu/Click() - var/mob/living/L = usr - if(!istype(L)) - return - L.open_language_menu(usr) + var/mob/M = usr + var/datum/language_holder/H = M.get_language_holder() + H.open_language_menu(usr) /obj/screen/inventory var/slot_id // The indentifier for the slot. It has nothing to do with ID cards. diff --git a/code/controllers/subsystem/language.dm b/code/controllers/subsystem/language.dm new file mode 100644 index 0000000000..e80a7096d8 --- /dev/null +++ b/code/controllers/subsystem/language.dm @@ -0,0 +1,18 @@ +SUBSYSTEM_DEF(language) + name = "Language" + init_order = INIT_ORDER_LANGUAGE + flags = SS_NO_FIRE + +/datum/controller/subsystem/language/Initialize(timeofday) + for(var/L in subtypesof(/datum/language)) + var/datum/language/language = L + if(!initial(language.key)) + continue + + GLOB.all_languages += language + + var/datum/language/instance = new language + + GLOB.language_datum_instances[language] = instance + + return ..() diff --git a/code/datums/action.dm b/code/datums/action.dm index 08239492f3..5a397fe3bd 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -482,6 +482,7 @@ /datum/action/language_menu/Trigger() if(!..()) return FALSE - if(isliving(owner)) - var/mob/living/L = owner - L.open_language_menu(usr) + if(ismob(owner)) + var/mob/M = owner + var/datum/language_holder/H = M.get_language_holder() + H.open_language_menu(usr) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 421cecc95b..ccbbbdd6c2 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -65,6 +65,8 @@ var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) + var/datum/language_holder + /datum/mind/New(var/key) src.key = key soulOwner = src @@ -77,11 +79,21 @@ antag_datums = null return ..() +/datum/mind/proc/get_language_holder() + if(!language_holder) + var/datum/language_holder/L = current.get_language_holder(shadow=FALSE) + language_holder = L.copy(src) + + return language_holder + /datum/mind/proc/transfer_to(mob/new_character, var/force_key_move = 0) if(current) // remove ourself from our old body's mind variable current.mind = null SStgui.on_transfer(current, new_character) + if(!language_holder) + language_holder = new_character.language_holder.copy(src) + if(key) if(new_character.key != key) //if we're transfering into a body with a key associated which is not ours new_character.ghostize(1) //we'll need to ghostize so that key isn't mobless. diff --git a/code/game/atoms.dm b/code/game/atoms.dm index ab0038f7be..cc9ea86682 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -43,7 +43,7 @@ if(SSatoms.InitAtom(src, args)) //we were deleted return - + var/list/created = SSatoms.created_atoms if(created) created += src diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index dc418cbf89..628e322c20 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -16,6 +16,7 @@ var/list/languages var/list/initial_languages = list(/datum/language/common) var/only_speaks_language = null + var/datum/language_menu/language_menu = null var/verb_say = "says" var/verb_ask = "asks" var/verb_exclaim = "exclaims" @@ -177,6 +178,7 @@ STOP_PROCESSING(SSinbounds, src) QDEL_NULL(proximity_monitor) + QDEL_NULL(language_menu) . = ..() if(loc) diff --git a/code/game/atoms_movable.dm.rej b/code/game/atoms_movable.dm.rej new file mode 100644 index 0000000000..9ef1e78e27 --- /dev/null +++ b/code/game/atoms_movable.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm (rejected hunks) +@@ -571,7 +571,7 @@ + + + /* Language procs */ +-/atom/movable/proc/get_language_holder() ++/atom/movable/proc/get_language_holder(shadow=TRUE) + if(language_holder) + return language_holder + else diff --git a/code/game/gamemodes/clock_cult/clock_mobs.dm b/code/game/gamemodes/clock_cult/clock_mobs.dm index a5e7dee4cb..d3a33c0c40 100644 --- a/code/game/gamemodes/clock_cult/clock_mobs.dm +++ b/code/game/gamemodes/clock_cult/clock_mobs.dm @@ -14,8 +14,7 @@ verb_ask = "requests" verb_exclaim = "proclaims" verb_yell = "harangues" - initial_languages = list(/datum/language/common, /datum/language/ratvar) - only_speaks_language = /datum/language/ratvar + initial_language_holder = /datum/language_holder/clockmob bubble_icon = "clock" light_color = "#E42742" death_sound = 'sound/magic/clockwork/anima_fragment_death.ogg' diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index c6248b03cc..3b315bb668 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -62,7 +62,7 @@ icon = 'icons/mob/swarmer.dmi' desc = "A robot of unknown design, they seek only to consume materials and replicate themselves indefinitely." speak_emote = list("tones") - initial_languages = list(/datum/language/swarmer) + initial_language_holder = /datum/language_holder/swarmer bubble_icon = "swarmer" health = 40 maxHealth = 40 diff --git a/code/game/machinery/hologram.dm.rej b/code/game/machinery/hologram.dm.rej new file mode 100644 index 0000000000..b8d8bbbddc --- /dev/null +++ b/code/game/machinery/hologram.dm.rej @@ -0,0 +1,17 @@ +diff a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm (rejected hunks) +@@ -294,7 +294,7 @@ GLOBAL_LIST_EMPTY(holopads) + Hologram.add_atom_colour("#77abff", FIXED_COLOUR_PRIORITY) + Hologram.Impersonation = user + +- Hologram.languages = user.languages ++ Hologram.language_holder = user.get_language_holder() + Hologram.mouse_opacity = 0//So you can't click on it. + Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. + Hologram.anchored = 1//So space wind cannot drag it. +@@ -392,4 +392,4 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ + req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) + + #undef HOLOPAD_PASSIVE_POWER_USAGE +-#undef HOLOGRAM_POWER_USAGE +\ No newline at end of file ++#undef HOLOGRAM_POWER_USAGE diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index e29d372a6c..9766dbc26d 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -23,7 +23,7 @@ var/persistence_replacement //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset. var/unique_rename = FALSE // can you customize the description/name of the thing? - + var/dangerous_possession = FALSE //Admin possession yes/no /obj/vv_edit_var(vname, vval) diff --git a/code/game/say.dm b/code/game/say.dm index deab83ad10..358fc9698d 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -61,7 +61,7 @@ GLOBAL_LIST_INIT(freqtospan, list( var/messagepart = " [lang_treat(speaker, message_language, raw_message, spans)]" var/languageicon = "" - var/datum/language/D = get_language_instance(message_language) + var/datum/language/D = GLOB.language_datum_instances[message_language] if(D.display_icon(src)) languageicon = "[D.get_icon()] " @@ -103,7 +103,7 @@ GLOBAL_LIST_INIT(freqtospan, list( return speaker.say_quote(raw_message, spans, message_mode) else if(language) var/atom/movable/AM = speaker.GetSource() - var/datum/language/D = get_language_instance(language) + var/datum/language/D = GLOB.language_datum_instances[language] raw_message = D.scramble(raw_message) if(AM) return AM.say_quote(raw_message, spans, message_mode) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index a2f124df6d..71a695f57a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1799,12 +1799,12 @@ if(!check_rights(R_ADMIN)) return - var/mob/living/L = locate(href_list["languagemenu"]) in GLOB.mob_list - if(!isliving(L)) - to_chat(usr, "This can only be used on instances of type /mob/living.") + var/mob/M = locate(href_list["languagemenu"]) in GLOB.mob_list + if(!ismob(M)) + to_chat(usr, "This can only be used on instances of type /mob.") return - - L.open_language_menu(usr) + var/datum/language_holder/H = M.get_language_holder() + H.open_language_menu(usr) else if(href_list["traitor"]) if(!check_rights(R_ADMIN)) diff --git a/code/modules/language/language.dm b/code/modules/language/language.dm index 4222982182..efeabfe73d 100644 --- a/code/modules/language/language.dm +++ b/code/modules/language/language.dm @@ -12,7 +12,8 @@ var/exclaim_verb = "exclaims" // Used when sentence ends in a ! var/whisper_verb = "whispers" // Optional. When not specified speech_verb + quietly/softly is used instead. var/list/signlang_verb = list("signs", "gestures") // list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags - var/key = "x" // Character used to speak in language + var/key // Character used to speak in language + // If key is null, then the language isn't real or learnable. var/flags // Various language flags. var/list/syllables // Used when scrambling text for a non-speaker. var/list/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. @@ -108,13 +109,3 @@ return speech_verb #undef SCRAMBLE_CACHE_LEN - -/proc/get_language_instance(langtype) - if(!ispath(langtype, /datum/language)) - return - - if(!GLOB.language_datums[langtype]) - var/datum/language/langdatum = new langtype - GLOB.language_datums[langtype] = langdatum - - . = GLOB.language_datums[langtype] diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm new file mode 100644 index 0000000000..cd0ce23b23 --- /dev/null +++ b/code/modules/language/language_holder.dm @@ -0,0 +1,110 @@ +/datum/language_holder + var/list/languages = list(/datum/language/common) + var/list/shadow_languages = list() + var/only_speaks_language = null + var/selected_default_language = null + var/datum/language_menu/language_menu + + var/omnitongue = FALSE + var/owner + +/datum/language_holder/New(owner) + src.owner = owner + + languages = typecacheof(languages) + shadow_languages = typecacheof(shadow_languages) + +/datum/language_holder/Destroy() + owner = null + QDEL_NULL(language_menu) + +/datum/language_holder/proc/copy(newowner) + var/datum/language_holder/copy = new(newowner) + copy.languages = src.languages.Copy() + // shadow languages are not copied. + copy.only_speaks_language = src.only_speaks_language + copy.selected_default_language = src.selected_default_language + // language menu is not copied, that's tied to the holder. + copy.omnitongue = src.omnitongue + return copy + +/datum/language_holder/proc/grant_language(datum/language/dt) + languages[dt] = TRUE + +/datum/language_holder/proc/grant_all_languages(omnitongue=FALSE) + for(var/la in GLOB.all_languages) + grant_language(la) + + if(omnitongue) + src.omnitongue = TRUE + +/datum/language_holder/proc/get_random_understood_language() + var/list/possible = list() + for(var/dt in languages) + possible += dt + . = safepick(possible) + +/datum/language_holder/proc/remove_language(datum/language/dt) + languages -= dt + +/datum/language_holder/proc/remove_all_languages() + languages.Cut() + +/datum/language_holder/proc/has_language(datum/language/dt) + if(is_type_in_typecache(dt, languages)) + return LANGUAGE_KNOWN + else + var/atom/movable/AM = get_atom() + var/datum/language_holder/L = AM.get_language_holder(shadow=FALSE) + if(L != src) + if(is_type_in_typecache(dt, L.shadow_languages)) + return LANGUAGE_SHADOWED + return FALSE + +/datum/language_holder/proc/open_language_menu(mob/user) + if(!language_menu) + language_menu = new(src) + language_menu.ui_interact(user) + +/datum/language_holder/proc/get_atom() + if(istype(owner, /atom/movable)) + . = owner + else if(istype(owner, /datum/mind)) + var/datum/mind/M = owner + if(M.current) + . = M.current + +/datum/language_holder/alien + languages = list(/datum/language/xenocommon) + +/datum/language_holder/monkey + languages = list(/datum/language/monkey) + +/datum/language_holder/swarmer + languages = list(/datum/language/swarmer) + +/datum/language_holder/clockmob + languages = list(/datum/language/common, /datum/language/ratvar) + only_speaks_language = /datum/language/ratvar + +/datum/language_holder/drone + languages = list(/datum/language/common, /datum/language/drone, /datum/language/machine) + only_speaks_language = /datum/language/drone + +/datum/language_holder/drone/syndicate + only_speaks_language = null + +/datum/language_holder/slime + languages = list(/datum/language/common, /datum/language/slime) + +/datum/language_holder/lightbringer + // TODO change to a lightbringer specific sign language + languages = list(/datum/language/slime) + +/datum/language_holder/synthetic + languages = list(/datum/language/common) + shadow_languages = list(/datum/language/machine, /datum/language/draconic) + +/datum/language_holder/universal/New() + ..() + grant_all_languages(omnitongue=TRUE) diff --git a/code/modules/language/language_menu.dm b/code/modules/language/language_menu.dm index 43af26a972..87fc1e0d52 100644 --- a/code/modules/language/language_menu.dm +++ b/code/modules/language/language_menu.dm @@ -1,11 +1,11 @@ /datum/language_menu - var/mob/living/owner + var/datum/language_holder/language_holder -/datum/language_menu/New(new_owner) - owner = new_owner +/datum/language_menu/New(language_holder) + src.language_holder = language_holder /datum/language_menu/Destroy() - owner = null + language_holder = null . = ..() /datum/language_menu/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.language_menu_state) @@ -17,28 +17,38 @@ /datum/language_menu/ui_data(mob/user) var/list/data = list() - var/datum/language/mob_default_language = owner.get_default_language() + var/atom/movable/AM = language_holder.get_atom() + if(isliving(AM)) + data["is_living"] = TRUE + else + data["is_living"] = FALSE data["languages"] = list() - for(var/ld in owner.languages) + for(var/ld in GLOB.all_languages) + var/result = language_holder.has_language(ld) + if(!result) + continue + var/shadow = result == LANGUAGE_SHADOWED var/datum/language/LD = ld var/list/L = list() L["name"] = initial(LD.name) L["desc"] = initial(LD.desc) L["key"] = initial(LD.key) - L["is_default"] = (LD == mob_default_language) - L["can_speak"] = owner.can_speak_in_language(LD) + L["is_default"] = (LD == language_holder.selected_default_language) + L["shadow"] = shadow + if(AM) + L["can_speak"] = AM.can_speak_in_language(LD) data["languages"] += list(L) - if(check_rights_for(user.client, R_ADMIN)) + if(check_rights_for(user.client, R_ADMIN) || isobserver(AM)) data["admin_mode"] = TRUE - data["omnitongue"] = HAS_SECONDARY_FLAG(owner, OMNITONGUE) + data["omnitongue"] = language_holder.omnitongue data["unknown_languages"] = list() - for(var/ld in subtypesof(/datum/language)) - if(owner.has_language(ld)) + for(var/ld in GLOB.all_languages) + if(language_holder.has_language(ld)) continue var/datum/language/LD = ld var/list/L = list() @@ -54,10 +64,11 @@ if(..()) return var/mob/user = usr + var/atom/movable/AM = language_holder.get_atom() var/language_name = params["language_name"] var/datum/language/language_datum - for(var/ld in subtypesof(/datum/language)) + for(var/ld in GLOB.all_languages) var/datum/language/LD = ld if(language_name == initial(LD.name)) language_datum = LD @@ -66,23 +77,26 @@ switch(action) if("select_default") if(language_datum) - owner.selected_default_language = language_datum + language_holder.selected_default_language = language_datum . = TRUE if("grant_language") - if(is_admin && language_datum) - owner.grant_language(language_datum) - message_admins("[key_name_admin(user)] granted the [language_name] language to [key_name_admin(owner)].") - log_admin("[key_name(user)] granted the language [language_name] to [key_name(owner)].") + if((is_admin || isobserver(AM)) && language_datum) + language_holder.grant_language(language_datum) + if(is_admin) + message_admins("[key_name_admin(user)] granted the [language_name] language to [key_name_admin(AM)].") + log_admin("[key_name(user)] granted the language [language_name] to [key_name(AM)].") . = TRUE if("remove_language") - if(is_admin && language_datum) - owner.remove_language(language_datum) - message_admins("[key_name_admin(user)] removed the [language_name] language to [key_name_admin(owner)].") - log_admin("[key_name(user)] removed the language [language_name] to [key_name(owner)].") + if((is_admin || isobserver(AM)) && language_datum) + language_holder.remove_language(language_datum) + if(is_admin) + message_admins("[key_name_admin(user)] removed the [language_name] language to [key_name_admin(AM)].") + log_admin("[key_name(user)] removed the language [language_name] to [key_name(AM)].") . = TRUE if("toggle_omnitongue") - if(is_admin) - TOGGLE_SECONDARY_FLAG(owner, OMNITONGUE) - message_admins("[key_name_admin(user)] [HAS_SECONDARY_FLAG(owner, OMNITONGUE) ? "enabled" : "disabled"] the ability to speak all languages (that they know) of [key_name_admin(owner)].") - log_admin("[key_name(user)] [HAS_SECONDARY_FLAG(owner, OMNITONGUE) ? "enabled" : "disabled"] the ability to speak all languages (that_they know) of [key_name(owner)].") + if(is_admin || isobserver(AM)) + language_holder.omnitongue = !language_holder.omnitongue + if(is_admin) + message_admins("[key_name_admin(user)] [language_holder.omnitongue ? "enabled" : "disabled"] the ability to speak all languages (that they know) of [key_name_admin(AM)].") + log_admin("[key_name(user)] [language_holder.omnitongue ? "enabled" : "disabled"] the ability to speak all languages (that_they know) of [key_name(AM)].") . = TRUE diff --git a/code/modules/mob/dead/observer/observer.dm.rej b/code/modules/mob/dead/observer/observer.dm.rej new file mode 100644 index 0000000000..3546c64da4 --- /dev/null +++ b/code/modules/mob/dead/observer/observer.dm.rej @@ -0,0 +1,15 @@ +diff a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm (rejected hunks) +@@ -117,10 +117,12 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) + + animate(src, pixel_y = 2, time = 10, loop = -1) + +- grant_all_languages() + GLOB.dead_mob_list += src ++ + ..() + ++ grant_all_languages() ++ + /mob/dead/observer/narsie_act() + var/old_color = color + color = "#960000" diff --git a/code/modules/mob/living/brain/say.dm b/code/modules/mob/living/brain/say.dm index 5751c65b36..0cfbf5d170 100644 --- a/code/modules/mob/living/brain/say.dm +++ b/code/modules/mob/living/brain/say.dm @@ -27,10 +27,9 @@ message = capitalize(message) return message -/mob/living/brain/can_speak_in_language(datum/language/dt) - if(HAS_SECONDARY_FLAG(src, OMNITONGUE)) - . = has_language(dt) - else if(istype(container, /obj/item/device/mmi/posibrain/soul_vessel)) - . = has_language(dt) && ispath(dt, /datum/language/ratvar) +/mob/living/brain/could_speak_in_language(datum/language/dt) + if(istype(container, /obj/item/device/mmi/posibrain/soul_vessel)) + // soul vessels can only speak ratvarian. + . = ispath(dt, /datum/language/ratvar) else . = ..() diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 5e1a91113f..322726aa62 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -14,7 +14,7 @@ sight = SEE_MOBS see_in_dark = 4 verb_say = "hisses" - initial_languages = list(/datum/language/xenocommon) + initial_language_holder = /datum/language_holder/alien bubble_icon = "alien" type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno var/nightvision = 1 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ebbe18ff11..dec8692ef7 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -5,11 +5,6 @@ icon = 'icons/mob/human.dmi' icon_state = "caucasian_m" - // ME TARZAN, YOU JANEBOT - initial_languages = list(/datum/language/common) - - - /mob/living/carbon/human/dummy real_name = "Test Dummy" status_flags = GODMODE|CANPUSH diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 7ca155ec57..8a62b4e058 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -1,5 +1,4 @@ /mob/living/carbon/human - initial_languages = list(/datum/language/common) hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,ANTAG_HUD) possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) pressure_resistance = 25 @@ -49,4 +48,4 @@ var/datum/personal_crafting/handcrafting can_buckle = TRUE buckle_lying = FALSE - can_ride_typecache = list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot) \ No newline at end of file + can_ride_typecache = list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 34017d6728..a05614fe09 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -2,7 +2,7 @@ name = "monkey" voice_name = "monkey" verb_say = "chimpers" - initial_languages = list(/datum/language/monkey) + initial_language_holder = /datum/language_holder/monkey icon = 'icons/mob/monkey.dmi' icon_state = "" gender = NEUTER diff --git a/code/modules/mob/living/carbon/say.dm b/code/modules/mob/living/carbon/say.dm index 039b40b234..ed1f5f08b5 100644 --- a/code/modules/mob/living/carbon/say.dm +++ b/code/modules/mob/living/carbon/say.dm @@ -29,14 +29,9 @@ if(I) . |= I.get_held_item_speechspans(src) -/mob/living/carbon/can_speak_in_language(datum/language/dt) - if(HAS_SECONDARY_FLAG(src, OMNITONGUE)) - . = has_language(dt) - else if(has_language(dt)) - var/obj/item/organ/tongue/T = getorganslot("tongue") - if(T) - . = T.can_speak_in_language(dt) - else - . = initial(dt.flags) & TONGUELESS_SPEECH +/mob/living/carbon/could_speak_in_language(datum/language/dt) + var/obj/item/organ/tongue/T = getorganslot("tongue") + if(T) + . = T.could_speak_in_language(dt) else - . = FALSE + . = initial(dt.flags) & TONGUELESS_SPEECH diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index fe0f5b3918..9c67b391d0 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -17,8 +17,6 @@ medhud.add_to_hud(src) faction += "\ref[src]" - language_menu = new(src) - /mob/living/prepare_huds() ..() @@ -50,8 +48,6 @@ staticOverlays.len = 0 remove_from_all_data_huds() - QDEL_NULL(language_menu) - return ..() /mob/living/ghostize(can_reenter_corpse = 1) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 9c4a2c7e90..fbf9c35303 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -74,4 +74,3 @@ var/datum/riding/riding_datum var/datum/language/selected_default_language - var/datum/language_menu/language_menu diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index bb0628e7f3..ab3dc7bb34 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -167,11 +167,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( spans += get_spans() if(language) - var/datum/language/L = GLOB.language_datums[language] - if(!istype(L)) - L = new language - GLOB.language_datums[language] = L - + var/datum/language/L = GLOB.language_datum_instances[language] spans |= L.spans //Log what we've said with an associated timestamp, using the list's len for safety/to prevent overwriting messages @@ -308,13 +304,9 @@ GLOBAL_LIST_INIT(department_radio_keys, list( return GLOB.department_radio_keys[key_symbol] /mob/living/proc/get_message_language(message) - var/static/list/langlist - if(!langlist) - langlist = subtypesof(/datum/language) - if(copytext(message, 1, 2) == ",") var/key = copytext(message, 2, 3) - for(var/ld in langlist) + for(var/ld in GLOB.all_languages) var/datum/language/LD = ld if(initial(LD.key) == key) return LD @@ -435,17 +427,14 @@ GLOBAL_LIST_INIT(department_radio_keys, list( else . = ..() -/mob/living/get_default_language() - if(selected_default_language) - if(has_language(selected_default_language)) - return selected_default_language - else - selected_default_language = null - - . = ..() - -/mob/living/proc/open_language_menu(mob/user) - language_menu.ui_interact(user) - /mob/living/whisper(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null) say("#[message]", bubble_type, spans, sanitize, language) + +/mob/living/get_language_holder(shadow=TRUE) + if(mind && shadow) + // Mind language holders shadow mob holders. + . = mind.get_language_holder() + if(.) + return . + + . = ..() diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 4080cea4fb..58e2b04d9c 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -164,11 +164,9 @@ #endif -/mob/living/silicon/ai/can_speak_in_language(datum/language/dt) - if(HAS_SECONDARY_FLAG(src, OMNITONGUE)) - . = has_language(dt) - else if(is_servant_of_ratvar(src)) +/mob/living/silicon/ai/could_speak_in_language(datum/language/dt) + if(is_servant_of_ratvar(src)) // Ratvarian AIs can only speak Ratvarian - . = ispath(dt, /datum/language/ratvar) && has_language(dt) + . = ispath(dt, /datum/language/ratvar) else . = ..() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index a69fe27da7..bb88f69781 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -6,7 +6,7 @@ verb_ask = "queries" verb_exclaim = "declares" verb_yell = "alarms" - initial_languages = list(/datum/language/common, /datum/language/machine) + initial_language_holder = /datum/language_holder/synthetic see_in_dark = 8 bubble_icon = "machine" weather_immunities = list("ash") diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 09e81582ac..4eae96bf5d 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -20,7 +20,7 @@ verb_ask = "queries" verb_exclaim = "declares" verb_yell = "alarms" - initial_languages = list(/datum/language/common, /datum/language/machine) + initial_language_holder = /datum/language_holder/synthetic bubble_icon = "machine" faction = list("neutral", "silicon" , "turret") diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index e5ba358a25..e98a57d0a6 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -37,8 +37,7 @@ voice_name = "synthesized chirp" speak_emote = list("chirps") bubble_icon = "machine" - initial_languages = list(/datum/language/common, /datum/language/machine, /datum/language/drone) - only_speaks_language = /datum/language/drone + initial_language_holder = /datum/language_holder/drone mob_size = MOB_SIZE_SMALL has_unlimited_silicon_privilege = 1 damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 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 7cd6567ecb..1c70ca57e5 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 @@ -17,6 +17,7 @@ picked = TRUE //the appearence of syndrones is static, you don't get to change it. health = 30 maxHealth = 120 //If you murder other drones and cannibalize them you can get much stronger + initial_language_holder = /datum/language_holder/drone/syndicate faction = list("syndicate") speak_emote = list("hisses") bubble_icon = "syndibot" @@ -110,8 +111,7 @@ verb_exclaim = "proclaims" verb_yell = "harangues" bubble_icon = "clock" - initial_languages = list(/datum/language/common, /datum/language/ratvar) - only_speaks_language = /datum/language/ratvar + initial_language_holder = /datum/language_holder/clockmob light_color = "#E42742" heavy_emp_damage = 0 laws = "0. Purge all untruths and honor Ratvar." diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index d822a05886..a390ecae71 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -647,8 +647,7 @@ Difficulty: Very Hard verb_ask = "floats inquisitively" verb_exclaim = "zaps" verb_yell = "bangs" - initial_languages = list(/datum/language/common, /datum/language/slime) - only_speaks_language = /datum/language/slime + initial_language_holder = /datum/language_holder/lightbringer damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) light_range = 4 faction = list("neutral") diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 8db43623dc..767d869c8f 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -7,9 +7,6 @@ status_flags = CANPUSH - // goats bray, cows go moo, and the fox says Geckers - initial_languages = list(/datum/language/common) - var/icon_living = "" var/icon_dead = "" //icon when the animal is dead. Don't use animated icons for this. var/icon_gib = null //We only try to show a gibbing animation if this exists. diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 8971d33b28..c14efe30c2 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -18,7 +18,7 @@ emote_see = list("jiggles", "bounces in place") speak_emote = list("telepathically chirps") bubble_icon = "slime" - initial_languages = list(/datum/language/common, /datum/language/slime) + initial_language_holder = /datum/language_holder/slime atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 24b4d228cc..a4c85962c5 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -751,7 +751,6 @@ client.move_delay += movement_delay() return 1 - /mob/proc/IsAdvancedToolUser()//This might need a rename but it should replace the can this mob use things check return 0 @@ -1014,3 +1013,10 @@ if("logging") return debug_variable(var_name, logging, 0, src, FALSE) . = ..() + +/mob/verb/open_language_menu() + set name = "Open Language Menu" + set category = "IC" + + var/datum/language_holder/H = get_language_holder() + H.open_language_menu(usr) diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index 78732d82e4..aa28f2402c 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -60,7 +60,6 @@ obj_integrity = 1000 max_integrity = 1000 verb_say = "chants" - initial_languages = list(/datum/language/common) var/obj/machinery/power/emitter/energycannon/magical/our_statue var/list/mob/living/sleepers = list() var/never_spoken = TRUE @@ -148,11 +147,11 @@ 3. Don't get messed up in their affairs." status_flags = GODMODE // Please don't punch the barkeeper unique_name = FALSE // disables the (123) number suffix + initial_language_holder = /datum/language_holder/universal /mob/living/simple_animal/drone/snowflake/bardrone/Initialize() . = ..() access_card.access |= GLOB.access_cent_bar - grant_all_languages(omnitongue=TRUE) /mob/living/simple_animal/hostile/alien/maid/barmaid gold_core_spawnable = 0 @@ -163,6 +162,7 @@ unique_name = FALSE AIStatus = AI_OFF stop_automated_movement = TRUE + initial_language_holder = /datum/language_holder/universal /mob/living/simple_animal/hostile/alien/maid/barmaid/Initialize() . = ..() @@ -172,8 +172,6 @@ access_card.access |= GLOB.access_cent_bar access_card.flags |= NODROP - grant_all_languages(omnitongue=TRUE) - /mob/living/simple_animal/hostile/alien/maid/barmaid/Destroy() qdel(access_card) . = ..() diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 1ef36f3fe2..b6a62cacd2 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -33,7 +33,7 @@ if(say_mod && M.dna && M.dna.species) M.dna.species.say_mod = initial(M.dna.species.say_mod) -/obj/item/organ/tongue/can_speak_in_language(datum/language/dt) +/obj/item/organ/tongue/could_speak_in_language(datum/language/dt) . = is_type_in_typecache(dt, languages_possible) /obj/item/organ/tongue/lizard diff --git a/code/modules/tgui/states/language_menu.dm b/code/modules/tgui/states/language_menu.dm index 4a370e8213..fedc4320e4 100644 --- a/code/modules/tgui/states/language_menu.dm +++ b/code/modules/tgui/states/language_menu.dm @@ -10,5 +10,5 @@ GLOBAL_DATUM_INIT(language_menu_state, /datum/ui_state/language_menu, new) . = UI_INTERACTIVE else if(istype(src_object, /datum/language_menu)) var/datum/language_menu/LM = src_object - if(LM.owner == user) + if(LM.language_holder.get_atom() == user) . = UI_INTERACTIVE diff --git a/tgstation.dme b/tgstation.dme index 1f3ef27802..e421aebadf 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -202,6 +202,7 @@ #include "code\controllers\subsystem\inbounds.dm" #include "code\controllers\subsystem\ipintel.dm" #include "code\controllers\subsystem\job.dm" +#include "code\controllers\subsystem\language.dm" #include "code\controllers\subsystem\lighting.dm" #include "code\controllers\subsystem\machines.dm" #include "code\controllers\subsystem\mapping.dm" diff --git a/tgstation.dme.rej b/tgstation.dme.rej new file mode 100644 index 0000000000..050e4d5029 --- /dev/null +++ b/tgstation.dme.rej @@ -0,0 +1,9 @@ +diff a/tgstation.dme b/tgstation.dme (rejected hunks) +@@ -1373,6 +1373,7 @@ + #include "code\modules\language\draconic.dm" + #include "code\modules\language\drone.dm" + #include "code\modules\language\language.dm" ++#include "code\modules\language\language_holder.dm" + #include "code\modules\language\language_menu.dm" + #include "code\modules\language\machine.dm" + #include "code\modules\language\monkey.dm" diff --git a/tgui/assets/tgui.css.rej b/tgui/assets/tgui.css.rej new file mode 100644 index 0000000000..a9dbe93889 --- /dev/null +++ b/tgui/assets/tgui.css.rej @@ -0,0 +1,6 @@ +diff a/tgui/assets/tgui.css b/tgui/assets/tgui.css (rejected hunks) +@@ -1 +1 @@ +-@charset "utf-8";body,html{box-sizing:border-box;height:100%;margin:0}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff;background-color:#2a2a2a;background-image:linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff2a2a2a",endColorstr="#ff202020",GradientType=0)}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}body.clockwork{background:linear-gradient(180deg,#b18b25 0,#5f380e);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffb18b25",endColorstr="#ff5f380e",GradientType=0)}body.clockwork .normal{color:#b18b25}body.clockwork .good{color:#cfba47}body.clockwork .average{color:#896b19}body.clockwork .bad{color:#5f380e}body.clockwork .highlight{color:#b18b25}body.clockwork main{display:block;margin-top:32px;padding:2px 6px 0}body.clockwork hr{height:2px;background-color:#b18b25;border:none}body.clockwork .hidden{display:none}body.clockwork .bar .barText,body.clockwork span.button{color:#b18b25;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.clockwork .bold{font-weight:700}body.clockwork .italic{font-style:italic}body.clockwork [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.clockwork div[data-tooltip],body.clockwork span[data-tooltip]{position:relative}body.clockwork div[data-tooltip]:after,body.clockwork span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #170800;background-color:#2d1400}body.clockwork div[data-tooltip]:hover:after,body.clockwork span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.clockwork div[data-tooltip].tooltip-top:after,body.clockwork span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-top:hover:after,body.clockwork span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:after,body.clockwork span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:hover:after,body.clockwork span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-left:after,body.clockwork span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-left:hover:after,body.clockwork span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:after,body.clockwork span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:hover:after,body.clockwork span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #170800;background:#2d1400}body.clockwork .bar .barText{position:absolute;top:0;right:3px}body.clockwork .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#b18b25}body.clockwork .bar .barFill.good{background-color:#cfba47}body.clockwork .bar .barFill.average{background-color:#896b19}body.clockwork .bar .barFill.bad{background-color:#5f380e}body.clockwork span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #170800}body.clockwork span.button .fa{padding-right:2px}body.clockwork span.button.normal{transition:background-color .5s;background-color:#5f380e}body.clockwork span.button.normal.active:focus,body.clockwork span.button.normal.active:hover{transition:background-color .25s;background-color:#704211;outline:0}body.clockwork span.button.disabled{transition:background-color .5s;background-color:#2d1400}body.clockwork span.button.disabled.active:focus,body.clockwork span.button.disabled.active:hover{transition:background-color .25s;background-color:#441e00;outline:0}body.clockwork span.button.selected{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.selected.active:focus,body.clockwork span.button.selected.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.toggle{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.toggle.active:focus,body.clockwork span.button.toggle.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.caution{transition:background-color .5s;background-color:#be6209}body.clockwork span.button.caution.active:focus,body.clockwork span.button.caution.active:hover{transition:background-color .25s;background-color:#cd6a0a;outline:0}body.clockwork span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.clockwork span.button.danger.active:focus,body.clockwork span.button.danger.active:hover{transition:background-color .25s;background-color:#abaf00;outline:0}body.clockwork span.button.gridable{width:125px;margin:2px 0}body.clockwork span.button+span:not(.button),body.clockwork span:not(.button)+span.button{margin-left:5px}body.clockwork div.display{width:100%;padding:4px;margin:6px 0;background-color:#2d1400;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400);background-color:rgba(45,20,0,.9);box-shadow:inset 0 0 5px rgba(0,0,0,.3)}body.clockwork div.display header,body.clockwork div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#cfba47;border-bottom:2px solid #b18b25}body.clockwork div.display header .buttonRight,body.clockwork div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.clockwork div.display article,body.clockwork div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.clockwork input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#b18b25;background-color:#cfba47;border:1px solid #272727}body.clockwork input::-webkit-input-placeholder{color:#999}body.clockwork input:-ms-input-placeholder{color:#999}body.clockwork input::placeholder{color:#999}body.clockwork input::-ms-clear{display:none}body.clockwork svg.linegraph{overflow:hidden}body.clockwork div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#2d1400;font-weight:700;font-style:italic;background-color:#000;background-image:repeating-linear-gradient(-45deg,#000,#000 10px,#170800 0,#170800 20px)}body.clockwork div.notice .label{color:#2d1400}body.clockwork div.notice .content:only-of-type{padding:0}body.clockwork div.notice hr{background-color:#896b19}body.clockwork div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #5f380e;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.clockwork section .content,body.clockwork section .label,body.clockwork section .line,body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.clockwork section{display:table-row;width:100%}body.clockwork section:not(:first-child){padding-top:4px}body.clockwork section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.clockwork section .label{width:1%;padding-right:32px;white-space:nowrap;color:#b18b25}body.clockwork section .content:not(:last-child){padding-right:16px}body.clockwork section .line{width:100%}body.clockwork div.subdisplay{width:100%;margin:0}body.clockwork header.titlebar .close,body.clockwork header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#cfba47}body.clockwork header.titlebar .close:hover,body.clockwork header.titlebar .minimize:hover{color:#d1bd50}body.clockwork header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#5f380e;border-bottom:1px solid #170800;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.clockwork header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.clockwork header.titlebar .title{position:absolute;top:6px;left:46px;color:#cfba47;font-size:16px;white-space:nowrap}body.clockwork header.titlebar .minimize{position:absolute;top:6px;right:46px}body.clockwork header.titlebar .close{position:absolute;top:4px;right:12px}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff2a2a2a",endColorstr="#ff202020",GradientType=0)}body.nanotrasen .normal{color:#40628a}body.nanotrasen .good{color:#537d29}body.nanotrasen .average{color:#be6209}body.nanotrasen .bad{color:#b00e0e}body.nanotrasen .highlight{color:#8ba5c4}body.nanotrasen main{display:block;margin-top:32px;padding:2px 6px 0}body.nanotrasen hr{height:2px;background-color:#40628a;border:none}body.nanotrasen .hidden{display:none}body.nanotrasen .bar .barText,body.nanotrasen span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.nanotrasen .bold{font-weight:700}body.nanotrasen .italic{font-style:italic}body.nanotrasen [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.nanotrasen div[data-tooltip],body.nanotrasen span[data-tooltip]{position:relative}body.nanotrasen div[data-tooltip]:after,body.nanotrasen span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.nanotrasen div[data-tooltip]:hover:after,body.nanotrasen span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.nanotrasen div[data-tooltip].tooltip-top:after,body.nanotrasen span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-top:hover:after,body.nanotrasen span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-left:after,body.nanotrasen span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-left:hover:after,body.nanotrasen span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}body.nanotrasen .bar .barText{position:absolute;top:0;right:3px}body.nanotrasen .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}body.nanotrasen .bar .barFill.good{background-color:#537d29}body.nanotrasen .bar .barFill.average{background-color:#be6209}body.nanotrasen .bar .barFill.bad{background-color:#b00e0e}body.nanotrasen span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.nanotrasen span.button .fa{padding-right:2px}body.nanotrasen span.button.normal{transition:background-color .5s;background-color:#40628a}body.nanotrasen span.button.normal.active:focus,body.nanotrasen span.button.normal.active:hover{transition:background-color .25s;background-color:#4f78aa;outline:0}body.nanotrasen span.button.disabled{transition:background-color .5s;background-color:#999}body.nanotrasen span.button.disabled.active:focus,body.nanotrasen span.button.disabled.active:hover{transition:background-color .25s;background-color:#a8a8a8;outline:0}body.nanotrasen span.button.selected{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.selected.active:focus,body.nanotrasen span.button.selected.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.toggle{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.toggle.active:focus,body.nanotrasen span.button.toggle.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.caution{transition:background-color .5s;background-color:#9a9d00}body.nanotrasen span.button.caution.active:focus,body.nanotrasen span.button.caution.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.nanotrasen span.button.danger{transition:background-color .5s;background-color:#9d0808}body.nanotrasen span.button.danger.active:focus,body.nanotrasen span.button.danger.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.nanotrasen span.button.gridable{width:125px;margin:2px 0}body.nanotrasen span.button+span:not(.button),body.nanotrasen span:not(.button)+span.button{margin-left:5px}body.nanotrasen div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}body.nanotrasen div.display header,body.nanotrasen div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #40628a}body.nanotrasen div.display header .buttonRight,body.nanotrasen div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.nanotrasen div.display article,body.nanotrasen div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.nanotrasen input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#000;background-color:#fff;border:1px solid #272727}body.nanotrasen input::-webkit-input-placeholder{color:#999}body.nanotrasen input:-ms-input-placeholder{color:#999}body.nanotrasen input::placeholder{color:#999}body.nanotrasen input::-ms-clear{display:none}body.nanotrasen svg.linegraph{overflow:hidden}body.nanotrasen div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px)}body.nanotrasen div.notice .label{color:#000}body.nanotrasen div.notice .content:only-of-type{padding:0}body.nanotrasen div.notice hr{background-color:#272727}body.nanotrasen div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.nanotrasen section{display:table-row;width:100%}body.nanotrasen section:not(:first-child){padding-top:4px}body.nanotrasen section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.nanotrasen section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}body.nanotrasen section .content:not(:last-child){padding-right:16px}body.nanotrasen section .line{width:100%}body.nanotrasen div.subdisplay{width:100%;margin:0}body.nanotrasen header.titlebar .close,body.nanotrasen header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#8ba5c4}body.nanotrasen header.titlebar .close:hover,body.nanotrasen header.titlebar .minimize:hover{color:#9cb2cd}body.nanotrasen header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.nanotrasen header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.nanotrasen header.titlebar .title{position:absolute;top:6px;left:46px;color:#8ba5c4;font-size:16px;white-space:nowrap}body.nanotrasen header.titlebar .minimize{position:absolute;top:6px;right:46px}body.nanotrasen header.titlebar .close{position:absolute;top:4px;right:12px}body.syndicate{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjAwIDI4OS43NDIiIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGQ9Im0gOTMuNTM3Njc3LDAgYyAtMTguMTEzMTI1LDAgLTM0LjIyMDEzMywzLjExMTY0IC00OC4zMjM0ODQsOS4zMzQzNyAtMTMuOTY1MDkyLDYuMjIxNjcgLTI0LjYxMjQ0MiwxNS4wNzExNCAtMzEuOTQwNjUxLDI2LjU0NzEgLTcuMTg5OTM5OCwxMS4zMzc4OSAtMTAuMzAxMjI2NiwyNC43NDkxMSAtMTAuMzAxMjI2Niw0MC4yMzQ3OCAwLDEwLjY0NjYyIDIuNzI1MDAyNiwyMC40NjQ2NSA4LjE3NTExMTYsMjkuNDUyNTggNS42MTUyNzcsOC45ODY4NiAxNC4wMzgyNzcsMTcuMzUyMDQgMjUuMjY4ODIxLDI1LjA5NDM2IDExLjIzMDU0NCw3LjYwNTMxIDI2LjUwNzQyMSwxNS40MTgzNSA0NS44MzA1MTQsMjMuNDM3ODIgMTkuOTgzNzQ4LDguMjk1NTcgMzQuODQ4ODQ4LDE1LjU1NDcxIDQ0LjU5Mjk5OCwyMS43NzYzOCA5Ljc0NDE0LDYuMjIyNzMgMTYuNzYxNywxMi44NTg1IDIxLjA1NTcyLDE5LjkwOTUxIDQuMjk0MDQsNy4wNTIwOCA2LjQ0MTkzLDE1Ljc2NDA4IDYuNDQxOTMsMjYuMTM0NTkgMCwxNi4xNzcwMiAtNS4yMDE5NiwyOC40ODIyMiAtMTUuNjA2NzMsMzYuOTE2ODIgLTEwLjIzOTYsOC40MzQ3IC0yNS4wMjIwMywxMi42NTIzIC00NC4zNDUxNjksMTIuNjUyMyAtMTQuMDM4MTcxLDAgLTI1LjUxNTI0NywtMS42NTk0IC0zNC40MzM2MTgsLTQuOTc3NyAtOC45MTgzNywtMy40NTY2IC0xNi4xODU1NzIsLTguNzExMyAtMjEuODAwODM5LC0xNS43NjMzIC01LjYxNTI3NywtNy4wNTIxIC0xMC4wNzQ3OTUsLTE2LjY2MDg4IC0xMy4zNzc4OTksLTI4LjgyODEyIGwgLTI0Ljc3MzE2MjYyOTM5NDUsMCAwLDU2LjgyNjMyIEMgMzMuODU2NzY5LDI4Ni4wNzYwMSA2My43NDkwNCwyODkuNzQyMDEgODkuNjc4MzgzLDI4OS43NDIwMSBjIDE2LjAyMDAyNywwIDMwLjcxOTc4NywtMS4zODI3IDQ0LjA5NzMzNywtNC4xNDc5IDEzLjU0MjcyLC0yLjkwNDMgMjUuMTA0MSwtNy40Njc2IDM0LjY4MzA5LC0xMy42ODkzIDkuNzQ0MTMsLTYuMzU5NyAxNy4zNDA0MiwtMTQuNTE5NSAyMi43OTA1MiwtMjQuNDc0OCA1LjQ1MDEsLTEwLjA5MzMyIDguMTc1MTEsLTIyLjM5OTU5IDguMTc1MTEsLTM2LjkxNjgyIDAsLTEyLjk5NzY0IC0zLjMwMjEsLTI0LjMzNTM5IC05LjkwODI5LC0zNC4wMTQ2IC02LjQ0MTA1LC05LjgxNzI1IC0xNS41MjU0NSwtMTguNTI3MDcgLTI3LjI1MTQ2LC0yNi4xMzEzMyAtMTEuNTYwODUsLTcuNjA0MjcgLTI3LjkxMDgzLC0xNS44MzE0MiAtNDkuMDUwNjYsLTI0LjY4MDIyIC0xNy41MDY0NCwtNy4xOTAxMiAtMzAuNzE5NjY4LC0xMy42ODk0OCAtMzkuNjM4MDM4LC0xOS40OTcwMSAtOC45MTgzNzEsLTUuODA3NTIgLTE4LjYwNzQ3NCwtMTIuNDM0MDkgLTI0LjA5NjUyNCwtMTguODc0MTcgLTUuNDI2MDQzLC02LjM2NjE2IC05LjY1ODgyNiwtMTUuMDcwMDMgLTkuNjU4ODI2LC0yNC44ODcyOSAwLC05LjI2NDAxIDIuMDc1NDE0LC0xNy4yMTM0NSA2LjIyMzQ1NCwtMjMuODUwMzMgMTEuMDk4Mjk4LC0xNC4zOTc0OCA0MS4yODY2MzgsLTEuNzk1MDcgNDUuMDc1NjA5LDI0LjM0NzYyIDQuODM5MzkyLDYuNzc0OTEgOC44NDkzNSwxNi4yNDcyOSAxMi4wMjk1MTUsMjguNDE1NiBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNC40NzgyNSwtNS45MjQ0OCAtOS45NTQ4OCwtMTAuNjMyMjIgLTE1LjkwODM3LC0xNC4zNzQxMSAxLjY0MDU1LDAuNDc5MDUgMy4xOTAzOSwxLjAyMzc2IDQuNjM4NjUsMS42NDAyNCA2LjQ5ODYxLDIuNjI2MDcgMTIuMTY3OTMsNy4zMjc0NyAxNy4wMDczLDE0LjEwMzQ1IDQuODM5MzksNi43NzQ5MSA4Ljg0OTM1LDE2LjI0NTY3IDEyLjAyOTUyLDI4LjQxMzk3IDAsMCA4LjQ4MTI4LC0wLjEyODk0IDguNDg5NzgsLTAuMDAyIDAuNDE3NzYsNi40MTQ5NCAtMS43NTMzOSw5LjQ1Mjg2IC00LjEyMzQyLDEyLjU2MTA0IC0yLjQxNzQsMy4xNjk3OCAtNS4xNDQ4Niw2Ljc4OTczIC00LjAwMjc4LDEzLjAwMjkgMS41MDc4Niw4LjIwMzE4IDEwLjE4MzU0LDEwLjU5NjQyIDE0LjYyMTk0LDkuMzExNTQgLTMuMzE4NDIsLTAuNDk5MTEgLTUuMzE4NTUsLTEuNzQ5NDggLTUuMzE4NTUsLTEuNzQ5NDggMCwwIDEuODc2NDYsMC45OTg2OCA1LjY1MTE3LC0xLjM1OTgxIC0zLjI3Njk1LDAuOTU1NzEgLTEwLjcwNTI5LC0wLjc5NzM4IC0xMS44MDEyNSwtNi43NjMxMyAtMC45NTc1MiwtNS4yMDg2MSAwLjk0NjU0LC03LjI5NTE0IDMuNDAxMTMsLTEwLjUxNDgyIDIuNDU0NjIsLTMuMjE5NjggNS4yODQyNiwtNi45NTgzMSA0LjY4NDMsLTE0LjQ4ODI0IGwgMC4wMDMsMC4wMDIgOC45MjY3NiwwIDAsLTU1Ljk5OTY3IGMgLTE1LjA3MTI1LC0zLjg3MTY4IC0yNy42NTMxNCwtNi4zNjA0MiAtMzcuNzQ2NzEsLTcuNDY1ODYgLTkuOTU1MzEsLTEuMTA3NTUgLTIwLjE4ODIzLC0xLjY1OTgxIC0zMC42OTY2MTMsLTEuNjU5ODEgeiBtIDcwLjMyMTYwMywxNy4zMDg5MyAwLjIzODA1LDQwLjMwNDkgYyAxLjMxODA4LDEuMjI2NjYgMi40Mzk2NSwyLjI3ODE1IDMuMzQwODEsMy4xMDYwMiA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNCwxNi4yNDU2NiAxMi4wMjk1MSwyOC40MTM5NyBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNi42NzczMSwtNC41OTM4MSAtMTkuODM2NDMsLTEwLjQ3MzA5IC0zNi4xNDA3MSwtMTUuODI1MjIgeiBtIC0yOC4xMjA0OSw1LjYwNTUxIDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzcsLTYuNDY2OTcgLTEzLjg0Njc4LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDUsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gMTUuMjIxOTUsMjQuMDA4NDggOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzOCwtNi40NjY5NyAtMTMuODQ2NzksLTkuNzE3MjYgLTguNTY0NzksLTE3LjcxNjU1IHogbSAyMi43OTcwNCwwIGMgMi43NzE1LDcuOTk5MjkgMS43ODc0MSwxMS4yNDk1OCAtNC40OTM1NCwxNy43MTY1NSBsIDQuNDkzNTQsLTE3LjcxNjU1IHogbSAtOTkuMTEzODQsMi4yMDc2NCA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM4MiwtNi40NjY5NyAtMTMuODQ2NzgyLC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk1NDIsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#750000 0,#340404);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff750000",endColorstr="#ff340404",GradientType=0)}body.syndicate .normal{color:#40628a}body.syndicate .good{color:#73e573}body.syndicate .average{color:#be6209}body.syndicate .bad{color:#b00e0e}body.syndicate .highlight{color:#000}body.syndicate main{display:block;margin-top:32px;padding:2px 6px 0}body.syndicate hr{height:2px;background-color:#272727;border:none}body.syndicate .hidden{display:none}body.syndicate .bar .barText,body.syndicate span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.syndicate .bold{font-weight:700}body.syndicate .italic{font-style:italic}body.syndicate [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.syndicate div[data-tooltip],body.syndicate span[data-tooltip]{position:relative}body.syndicate div[data-tooltip]:after,body.syndicate span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.syndicate div[data-tooltip]:hover:after,body.syndicate span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.syndicate div[data-tooltip].tooltip-top:after,body.syndicate span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-top:hover:after,body.syndicate span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-left:after,body.syndicate span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-left:hover:after,body.syndicate span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:hover:after,body.syndicate span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #000;background:#272727}body.syndicate .bar .barText{position:absolute;top:0;right:3px}body.syndicate .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#000}body.syndicate .bar .barFill.good{background-color:#73e573}body.syndicate .bar .barFill.average{background-color:#be6209}body.syndicate .bar .barFill.bad{background-color:#b00e0e}body.syndicate span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.syndicate span.button .fa{padding-right:2px}body.syndicate span.button.normal{transition:background-color .5s;background-color:#397439}body.syndicate span.button.normal.active:focus,body.syndicate span.button.normal.active:hover{transition:background-color .25s;background-color:#4a964a;outline:0}body.syndicate span.button.disabled{transition:background-color .5s;background-color:#363636}body.syndicate span.button.disabled.active:focus,body.syndicate span.button.disabled.active:hover{transition:background-color .25s;background-color:#545454;outline:0}body.syndicate span.button.selected{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.selected.active:focus,body.syndicate span.button.selected.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.toggle{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.toggle.active:focus,body.syndicate span.button.toggle.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.caution{transition:background-color .5s;background-color:#be6209}body.syndicate span.button.caution.active:focus,body.syndicate span.button.caution.active:hover{transition:background-color .25s;background-color:#eb790b;outline:0}body.syndicate span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.syndicate span.button.danger.active:focus,body.syndicate span.button.danger.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.syndicate span.button.gridable{width:125px;margin:2px 0}body.syndicate span.button+span:not(.button),body.syndicate span:not(.button)+span.button{margin-left:5px}body.syndicate div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000);background-color:rgba(0,0,0,.5);box-shadow:inset 0 0 5px rgba(0,0,0,.75)}body.syndicate div.display header,body.syndicate div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #272727}body.syndicate div.display header .buttonRight,body.syndicate div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.syndicate div.display article,body.syndicate div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.syndicate input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#fff;background-color:#9d0808;border:1px solid #272727}body.syndicate input::-webkit-input-placeholder{color:#999}body.syndicate input:-ms-input-placeholder{color:#999}body.syndicate input::placeholder{color:#999}body.syndicate input::-ms-clear{display:none}body.syndicate svg.linegraph{overflow:hidden}body.syndicate div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#750000;background-image:repeating-linear-gradient(-45deg,#750000,#750000 10px,#910101 0,#910101 20px)}body.syndicate div.notice .label{color:#000}body.syndicate div.notice .content:only-of-type{padding:0}body.syndicate div.notice hr{background-color:#272727}body.syndicate div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.syndicate section{display:table-row;width:100%}body.syndicate section:not(:first-child){padding-top:4px}body.syndicate section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.syndicate section .label{width:1%;padding-right:32px;white-space:nowrap;color:#fff}body.syndicate section .content:not(:last-child){padding-right:16px}body.syndicate section .line{width:100%}body.syndicate div.subdisplay{width:100%;margin:0}body.syndicate header.titlebar .close,body.syndicate header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#e74242}body.syndicate header.titlebar .close:hover,body.syndicate header.titlebar .minimize:hover{color:#eb5e5e}body.syndicate header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.syndicate header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.syndicate header.titlebar .title{position:absolute;top:6px;left:46px;color:#e74242;font-size:16px;white-space:nowrap}body.syndicate header.titlebar .minimize{position:absolute;top:6px;right:46px}body.syndicate header.titlebar .close{position:absolute;top:4px;right:12px}.no-icons header.titlebar .statusicon{font-size:20px}.no-icons header.titlebar .statusicon:after{content:"O"}.no-icons header.titlebar .minimize{top:-2px;font-size:20px}.no-icons header.titlebar .minimize:after{content:"—"}.no-icons header.titlebar .close{font-size:20px}.no-icons header.titlebar .close:after{content:"X"} +\ No newline at end of file ++@charset "utf-8";body,html{box-sizing:border-box;height:100%;margin:0}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff;background-color:#2a2a2a;background-image:linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}body.clockwork{background:linear-gradient(180deg,#b18b25 0,#5f380e);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb18b25',endColorstr='#ff5f380e',GradientType=0)}body.clockwork .normal{color:#b18b25}body.clockwork .good{color:#cfba47}body.clockwork .average{color:#896b19}body.clockwork .bad{color:#5f380e}body.clockwork .highlight{color:#b18b25}body.clockwork main{display:block;margin-top:32px;padding:2px 6px 0}body.clockwork hr{height:2px;background-color:#b18b25;border:none}body.clockwork .hidden{display:none}body.clockwork .bar .barText,body.clockwork span.button{color:#b18b25;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.clockwork .bold{font-weight:700}body.clockwork .italic{font-style:italic}body.clockwork [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.clockwork div[data-tooltip],body.clockwork span[data-tooltip]{position:relative}body.clockwork div[data-tooltip]:after,body.clockwork span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #170800;background-color:#2d1400}body.clockwork div[data-tooltip]:hover:after,body.clockwork span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.clockwork div[data-tooltip].tooltip-top:after,body.clockwork span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-bottom:after,body.clockwork div[data-tooltip].tooltip-top:hover:after,body.clockwork span[data-tooltip].tooltip-bottom:after,body.clockwork span[data-tooltip].tooltip-top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:after,body.clockwork span[data-tooltip].tooltip-bottom:after{top:100%;left:50%}body.clockwork div[data-tooltip].tooltip-bottom:hover:after,body.clockwork span[data-tooltip].tooltip-bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-left:after,body.clockwork span[data-tooltip].tooltip-left:after{top:50%;right:100%;-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-left:hover:after,body.clockwork div[data-tooltip].tooltip-right:after,body.clockwork span[data-tooltip].tooltip-left:hover:after,body.clockwork span[data-tooltip].tooltip-right:after{-webkit-transform:translateX(-8px) translateY(-50%);-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:after,body.clockwork span[data-tooltip].tooltip-right:after{top:50%;left:100%}body.clockwork div[data-tooltip].tooltip-right:hover:after,body.clockwork span[data-tooltip].tooltip-right:hover:after{-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #170800;background:#2d1400}body.clockwork .bar .barText{position:absolute;top:0;right:3px}body.clockwork .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#b18b25}body.clockwork .bar .barFill.good{background-color:#cfba47}body.clockwork .bar .barFill.average{background-color:#896b19}body.clockwork .bar .barFill.bad{background-color:#5f380e}body.clockwork span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #170800}body.clockwork span.button .fa{padding-right:2px}body.clockwork span.button.normal{transition:background-color .5s;background-color:#5f380e}body.clockwork span.button.normal.active:focus,body.clockwork span.button.normal.active:hover{transition:background-color .25s;background-color:#704211;outline:0}body.clockwork span.button.disabled{transition:background-color .5s;background-color:#2d1400}body.clockwork span.button.disabled.active:focus,body.clockwork span.button.disabled.active:hover{transition:background-color .25s;background-color:#441e00;outline:0}body.clockwork span.button.selected{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.selected.active:focus,body.clockwork span.button.selected.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.toggle{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.toggle.active:focus,body.clockwork span.button.toggle.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.caution{transition:background-color .5s;background-color:#be6209}body.clockwork span.button.caution.active:focus,body.clockwork span.button.caution.active:hover{transition:background-color .25s;background-color:#cd6a0a;outline:0}body.clockwork span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.clockwork span.button.danger.active:focus,body.clockwork span.button.danger.active:hover{transition:background-color .25s;background-color:#abaf00;outline:0}body.clockwork span.button.gridable{width:125px;margin:2px 0}body.clockwork span.button+span:not(.button),body.clockwork span:not(.button)+span.button{margin-left:5px}body.clockwork div.display{width:100%;padding:4px;margin:6px 0;background-color:#2d1400;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400);background-color:rgba(45,20,0,.9);box-shadow:inset 0 0 5px rgba(0,0,0,.3)}body.clockwork div.display header,body.clockwork div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#cfba47;border-bottom:2px solid #b18b25}body.clockwork div.display header .buttonRight,body.clockwork div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.clockwork div.display article,body.clockwork div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.clockwork input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#b18b25;background-color:#cfba47;border:1px solid #272727}body.clockwork input::-webkit-input-placeholder{color:#999}body.clockwork input::-moz-placeholder{color:#999}body.clockwork input:-ms-input-placeholder{color:#999}body.clockwork input::placeholder{color:#999}body.clockwork input::-ms-clear{display:none}body.clockwork svg.linegraph{overflow:hidden}body.clockwork div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#2d1400;font-weight:700;font-style:italic;background-color:#000;background-image:repeating-linear-gradient(-45deg,#000,#000 10px,#170800 0,#170800 20px)}body.clockwork div.notice .label{color:#2d1400}body.clockwork div.notice .content:only-of-type{padding:0}body.clockwork div.notice hr{background-color:#896b19}body.clockwork div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #5f380e;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}body.clockwork section .content,body.clockwork section .label,body.clockwork section .line,body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.clockwork section{display:table-row;width:100%}body.clockwork section:not(:first-child){padding-top:4px}body.clockwork section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.clockwork section .label{width:1%;padding-right:32px;white-space:nowrap;color:#b18b25}body.clockwork section .content:not(:last-child){padding-right:16px}body.clockwork section .line{width:100%}body.clockwork div.subdisplay{width:100%;margin:0}body.clockwork header.titlebar .close,body.clockwork header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#cfba47}body.clockwork header.titlebar .close:hover,body.clockwork header.titlebar .minimize:hover{color:#d1bd50}body.clockwork header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#5f380e;border-bottom:1px solid #170800;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.clockwork header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.clockwork header.titlebar .title{position:absolute;top:6px;left:46px;color:#cfba47;font-size:16px;white-space:nowrap}body.clockwork header.titlebar .minimize{position:absolute;top:6px;right:46px}body.clockwork header.titlebar .close{position:absolute;top:4px;right:12px}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMzMiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPgo=") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}body.nanotrasen .normal{color:#40628a}body.nanotrasen .good{color:#537d29}body.nanotrasen .average{color:#be6209}body.nanotrasen .bad{color:#b00e0e}body.nanotrasen .highlight{color:#8ba5c4}body.nanotrasen main{display:block;margin-top:32px;padding:2px 6px 0}body.nanotrasen hr{height:2px;background-color:#40628a;border:none}body.nanotrasen .hidden{display:none}body.nanotrasen .bar .barText,body.nanotrasen span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.nanotrasen .bold{font-weight:700}body.nanotrasen .italic{font-style:italic}body.nanotrasen [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.nanotrasen div[data-tooltip],body.nanotrasen span[data-tooltip]{position:relative}body.nanotrasen div[data-tooltip]:after,body.nanotrasen span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.nanotrasen div[data-tooltip]:hover:after,body.nanotrasen span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.nanotrasen div[data-tooltip].tooltip-top:after,body.nanotrasen span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen div[data-tooltip].tooltip-top:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after{top:100%;left:50%}body.nanotrasen div[data-tooltip].tooltip-bottom:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-left:after,body.nanotrasen span[data-tooltip].tooltip-left:after{top:50%;right:100%;-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-left:hover:after,body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-left:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:after{-webkit-transform:translateX(-8px) translateY(-50%);-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-right:after{top:50%;left:100%}body.nanotrasen div[data-tooltip].tooltip-right:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:hover:after{-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}body.nanotrasen .bar .barText{position:absolute;top:0;right:3px}body.nanotrasen .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}body.nanotrasen .bar .barFill.good{background-color:#537d29}body.nanotrasen .bar .barFill.average{background-color:#be6209}body.nanotrasen .bar .barFill.bad{background-color:#b00e0e}body.nanotrasen span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.nanotrasen span.button .fa{padding-right:2px}body.nanotrasen span.button.normal{transition:background-color .5s;background-color:#40628a}body.nanotrasen span.button.normal.active:focus,body.nanotrasen span.button.normal.active:hover{transition:background-color .25s;background-color:#4f78aa;outline:0}body.nanotrasen span.button.disabled{transition:background-color .5s;background-color:#999}body.nanotrasen span.button.disabled.active:focus,body.nanotrasen span.button.disabled.active:hover{transition:background-color .25s;background-color:#a8a8a8;outline:0}body.nanotrasen span.button.selected{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.selected.active:focus,body.nanotrasen span.button.selected.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.toggle{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.toggle.active:focus,body.nanotrasen span.button.toggle.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.caution{transition:background-color .5s;background-color:#9a9d00}body.nanotrasen span.button.caution.active:focus,body.nanotrasen span.button.caution.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.nanotrasen span.button.danger{transition:background-color .5s;background-color:#9d0808}body.nanotrasen span.button.danger.active:focus,body.nanotrasen span.button.danger.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.nanotrasen span.button.gridable{width:125px;margin:2px 0}body.nanotrasen span.button+span:not(.button),body.nanotrasen span:not(.button)+span.button{margin-left:5px}body.nanotrasen div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}body.nanotrasen div.display header,body.nanotrasen div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #40628a}body.nanotrasen div.display header .buttonRight,body.nanotrasen div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.nanotrasen div.display article,body.nanotrasen div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.nanotrasen input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#000;background-color:#fff;border:1px solid #272727}body.nanotrasen input::-webkit-input-placeholder{color:#999}body.nanotrasen input::-moz-placeholder{color:#999}body.nanotrasen input:-ms-input-placeholder{color:#999}body.nanotrasen input::placeholder{color:#999}body.nanotrasen input::-ms-clear{display:none}body.nanotrasen svg.linegraph{overflow:hidden}body.nanotrasen div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px)}body.nanotrasen div.notice .label{color:#000}body.nanotrasen div.notice .content:only-of-type{padding:0}body.nanotrasen div.notice hr{background-color:#272727}body.nanotrasen div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.nanotrasen section{display:table-row;width:100%}body.nanotrasen section:not(:first-child){padding-top:4px}body.nanotrasen section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.nanotrasen section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}body.nanotrasen section .content:not(:last-child){padding-right:16px}body.nanotrasen section .line{width:100%}body.nanotrasen div.subdisplay{width:100%;margin:0}body.nanotrasen header.titlebar .close,body.nanotrasen header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#8ba5c4}body.nanotrasen header.titlebar .close:hover,body.nanotrasen header.titlebar .minimize:hover{color:#9cb2cd}body.nanotrasen header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.nanotrasen header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.nanotrasen header.titlebar .title{position:absolute;top:6px;left:46px;color:#8ba5c4;font-size:16px;white-space:nowrap}body.nanotrasen header.titlebar .minimize{position:absolute;top:6px;right:46px}body.nanotrasen header.titlebar .close{position:absolute;top:4px;right:12px}body.syndicate{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCAyMDAgMjg5Ljc0MiIgb3BhY2l0eT0iLjMzIj4KICA8cGF0aCBkPSJtIDkzLjUzNzY3NywwIGMgLTE4LjExMzEyNSwwIC0zNC4yMjAxMzMsMy4xMTE2NCAtNDguMzIzNDg0LDkuMzM0MzcgLTEzLjk2NTA5Miw2LjIyMTY3IC0yNC42MTI0NDIsMTUuMDcxMTQgLTMxLjk0MDY1MSwyNi41NDcxIC03LjE4OTkzOTgsMTEuMzM3ODkgLTEwLjMwMTIyNjYsMjQuNzQ5MTEgLTEwLjMwMTIyNjYsNDAuMjM0NzggMCwxMC42NDY2MiAyLjcyNTAwMjYsMjAuNDY0NjUgOC4xNzUxMTE2LDI5LjQ1MjU4IDUuNjE1Mjc3LDguOTg2ODYgMTQuMDM4Mjc3LDE3LjM1MjA0IDI1LjI2ODgyMSwyNS4wOTQzNiAxMS4yMzA1NDQsNy42MDUzMSAyNi41MDc0MjEsMTUuNDE4MzUgNDUuODMwNTE0LDIzLjQzNzgyIDE5Ljk4Mzc0OCw4LjI5NTU3IDM0Ljg0ODg0OCwxNS41NTQ3MSA0NC41OTI5OTgsMjEuNzc2MzggOS43NDQxNCw2LjIyMjczIDE2Ljc2MTcsMTIuODU4NSAyMS4wNTU3MiwxOS45MDk1MSA0LjI5NDA0LDcuMDUyMDggNi40NDE5MywxNS43NjQwOCA2LjQ0MTkzLDI2LjEzNDU5IDAsMTYuMTc3MDIgLTUuMjAxOTYsMjguNDgyMjIgLTE1LjYwNjczLDM2LjkxNjgyIC0xMC4yMzk2LDguNDM0NyAtMjUuMDIyMDMsMTIuNjUyMyAtNDQuMzQ1MTY5LDEyLjY1MjMgLTE0LjAzODE3MSwwIC0yNS41MTUyNDcsLTEuNjU5NCAtMzQuNDMzNjE4LC00Ljk3NzcgLTguOTE4MzcsLTMuNDU2NiAtMTYuMTg1NTcyLC04LjcxMTMgLTIxLjgwMDgzOSwtMTUuNzYzMyAtNS42MTUyNzcsLTcuMDUyMSAtMTAuMDc0Nzk1LC0xNi42NjA4OCAtMTMuMzc3ODk5LC0yOC44MjgxMiBsIC0yNC43NzMxNjI2MjkzOTQ1LDAgMCw1Ni44MjYzMiBDIDMzLjg1Njc2OSwyODYuMDc2MDEgNjMuNzQ5MDQsMjg5Ljc0MjAxIDg5LjY3ODM4MywyODkuNzQyMDEgYyAxNi4wMjAwMjcsMCAzMC43MTk3ODcsLTEuMzgyNyA0NC4wOTczMzcsLTQuMTQ3OSAxMy41NDI3MiwtMi45MDQzIDI1LjEwNDEsLTcuNDY3NiAzNC42ODMwOSwtMTMuNjg5MyA5Ljc0NDEzLC02LjM1OTcgMTcuMzQwNDIsLTE0LjUxOTUgMjIuNzkwNTIsLTI0LjQ3NDggNS40NTAxLC0xMC4wOTMzMiA4LjE3NTExLC0yMi4zOTk1OSA4LjE3NTExLC0zNi45MTY4MiAwLC0xMi45OTc2NCAtMy4zMDIxLC0yNC4zMzUzOSAtOS45MDgyOSwtMzQuMDE0NiAtNi40NDEwNSwtOS44MTcyNSAtMTUuNTI1NDUsLTE4LjUyNzA3IC0yNy4yNTE0NiwtMjYuMTMxMzMgLTExLjU2MDg1LC03LjYwNDI3IC0yNy45MTA4MywtMTUuODMxNDIgLTQ5LjA1MDY2LC0yNC42ODAyMiAtMTcuNTA2NDQsLTcuMTkwMTIgLTMwLjcxOTY2OCwtMTMuNjg5NDggLTM5LjYzODAzOCwtMTkuNDk3MDEgLTguOTE4MzcxLC01LjgwNzUyIC0xOC42MDc0NzQsLTEyLjQzNDA5IC0yNC4wOTY1MjQsLTE4Ljg3NDE3IC01LjQyNjA0MywtNi4zNjYxNiAtOS42NTg4MjYsLTE1LjA3MDAzIC05LjY1ODgyNiwtMjQuODg3MjkgMCwtOS4yNjQwMSAyLjA3NTQxNCwtMTcuMjEzNDUgNi4yMjM0NTQsLTIzLjg1MDMzIDExLjA5ODI5OCwtMTQuMzk3NDggNDEuMjg2NjM4LC0xLjc5NTA3IDQ1LjA3NTYwOSwyNC4zNDc2MiA0LjgzOTM5Miw2Ljc3NDkxIDguODQ5MzUsMTYuMjQ3MjkgMTIuMDI5NTE1LDI4LjQxNTYgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTQuNDc4MjUsLTUuOTI0NDggLTkuOTU0ODgsLTEwLjYzMjIyIC0xNS45MDgzNywtMTQuMzc0MTEgMS42NDA1NSwwLjQ3OTA1IDMuMTkwMzksMS4wMjM3NiA0LjYzODY1LDEuNjQwMjQgNi40OTg2MSwyLjYyNjA3IDEyLjE2NzkzLDcuMzI3NDcgMTcuMDA3MywxNC4xMDM0NSA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNSwxNi4yNDU2NyAxMi4wMjk1MiwyOC40MTM5NyAwLDAgOC40ODEyOCwtMC4xMjg5NCA4LjQ4OTc4LC0wLjAwMiAwLjQxNzc2LDYuNDE0OTQgLTEuNzUzMzksOS40NTI4NiAtNC4xMjM0MiwxMi41NjEwNCAtMi40MTc0LDMuMTY5NzggLTUuMTQ0ODYsNi43ODk3MyAtNC4wMDI3OCwxMy4wMDI5IDEuNTA3ODYsOC4yMDMxOCAxMC4xODM1NCwxMC41OTY0MiAxNC42MjE5NCw5LjMxMTU0IC0zLjMxODQyLC0wLjQ5OTExIC01LjMxODU1LC0xLjc0OTQ4IC01LjMxODU1LC0xLjc0OTQ4IDAsMCAxLjg3NjQ2LDAuOTk4NjggNS42NTExNywtMS4zNTk4MSAtMy4yNzY5NSwwLjk1NTcxIC0xMC43MDUyOSwtMC43OTczOCAtMTEuODAxMjUsLTYuNzYzMTMgLTAuOTU3NTIsLTUuMjA4NjEgMC45NDY1NCwtNy4yOTUxNCAzLjQwMTEzLC0xMC41MTQ4MiAyLjQ1NDYyLC0zLjIxOTY4IDUuMjg0MjYsLTYuOTU4MzEgNC42ODQzLC0xNC40ODgyNCBsIDAuMDAzLDAuMDAyIDguOTI2NzYsMCAwLC01NS45OTk2NyBjIC0xNS4wNzEyNSwtMy44NzE2OCAtMjcuNjUzMTQsLTYuMzYwNDIgLTM3Ljc0NjcxLC03LjQ2NTg2IC05Ljk1NTMxLC0xLjEwNzU1IC0yMC4xODgyMywtMS42NTk4MSAtMzAuNjk2NjEzLC0xLjY1OTgxIHogbSA3MC4zMjE2MDMsMTcuMzA4OTMgMC4yMzgwNSw0MC4zMDQ5IGMgMS4zMTgwOCwxLjIyNjY2IDIuNDM5NjUsMi4yNzgxNSAzLjM0MDgxLDMuMTA2MDIgNC44MzkzOSw2Ljc3NDkxIDguODQ5MzQsMTYuMjQ1NjYgMTIuMDI5NTEsMjguNDEzOTcgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTYuNjc3MzEsLTQuNTkzODEgLTE5LjgzNjQzLC0xMC40NzMwOSAtMzYuMTQwNzEsLTE1LjgyNTIyIHogbSAtMjguMTIwNDksNS42MDU1MSA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM3LC02LjQ2Njk3IC0xMy44NDY3OCwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NzA1LDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiBtIDE1LjIyMTk1LDI0LjAwODQ4IDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzgsLTYuNDY2OTcgLTEzLjg0Njc5LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDQsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gLTk5LjExMzg0LDIuMjA3NjQgOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzODIsLTYuNDY2OTcgLTEzLjg0Njc4MiwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NTQyLDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiIgLz4KPC9zdmc+CjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPgo8IS0tIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8gLS0+Cg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#750000 0,#340404);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff750000',endColorstr='#ff340404',GradientType=0)}body.syndicate .normal{color:#40628a}body.syndicate .good{color:#73e573}body.syndicate .average{color:#be6209}body.syndicate .bad{color:#b00e0e}body.syndicate .highlight{color:#000}body.syndicate main{display:block;margin-top:32px;padding:2px 6px 0}body.syndicate hr{height:2px;background-color:#272727;border:none}body.syndicate .hidden{display:none}body.syndicate .bar .barText,body.syndicate span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.syndicate .bold{font-weight:700}body.syndicate .italic{font-style:italic}body.syndicate [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.syndicate div[data-tooltip],body.syndicate span[data-tooltip]{position:relative}body.syndicate div[data-tooltip]:after,body.syndicate span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.syndicate div[data-tooltip]:hover:after,body.syndicate span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.syndicate div[data-tooltip].tooltip-top:after,body.syndicate span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate div[data-tooltip].tooltip-top:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-bottom:after{top:100%;left:50%}body.syndicate div[data-tooltip].tooltip-bottom:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-left:after,body.syndicate span[data-tooltip].tooltip-left:after{top:50%;right:100%;-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-left:hover:after,body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-left:hover:after,body.syndicate span[data-tooltip].tooltip-right:after{-webkit-transform:translateX(-8px) translateY(-50%);-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-right:after{top:50%;left:100%}body.syndicate div[data-tooltip].tooltip-right:hover:after,body.syndicate span[data-tooltip].tooltip-right:hover:after{-webkit-transform:translateX(8px) translateY(-50%);-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #000;background:#272727}body.syndicate .bar .barText{position:absolute;top:0;right:3px}body.syndicate .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#000}body.syndicate .bar .barFill.good{background-color:#73e573}body.syndicate .bar .barFill.average{background-color:#be6209}body.syndicate .bar .barFill.bad{background-color:#b00e0e}body.syndicate span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.syndicate span.button .fa{padding-right:2px}body.syndicate span.button.normal{transition:background-color .5s;background-color:#397439}body.syndicate span.button.normal.active:focus,body.syndicate span.button.normal.active:hover{transition:background-color .25s;background-color:#4a964a;outline:0}body.syndicate span.button.disabled{transition:background-color .5s;background-color:#363636}body.syndicate span.button.disabled.active:focus,body.syndicate span.button.disabled.active:hover{transition:background-color .25s;background-color:#545454;outline:0}body.syndicate span.button.selected{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.selected.active:focus,body.syndicate span.button.selected.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.toggle{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.toggle.active:focus,body.syndicate span.button.toggle.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.caution{transition:background-color .5s;background-color:#be6209}body.syndicate span.button.caution.active:focus,body.syndicate span.button.caution.active:hover{transition:background-color .25s;background-color:#eb790b;outline:0}body.syndicate span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.syndicate span.button.danger.active:focus,body.syndicate span.button.danger.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.syndicate span.button.gridable{width:125px;margin:2px 0}body.syndicate span.button+span:not(.button),body.syndicate span:not(.button)+span.button{margin-left:5px}body.syndicate div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000);background-color:rgba(0,0,0,.5);box-shadow:inset 0 0 5px rgba(0,0,0,.75)}body.syndicate div.display header,body.syndicate div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #272727}body.syndicate div.display header .buttonRight,body.syndicate div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.syndicate div.display article,body.syndicate div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.syndicate input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#fff;background-color:#9d0808;border:1px solid #272727}body.syndicate input::-webkit-input-placeholder{color:#999}body.syndicate input::-moz-placeholder{color:#999}body.syndicate input:-ms-input-placeholder{color:#999}body.syndicate input::placeholder{color:#999}body.syndicate input::-ms-clear{display:none}body.syndicate svg.linegraph{overflow:hidden}body.syndicate div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#750000;background-image:repeating-linear-gradient(-45deg,#750000,#750000 10px,#910101 0,#910101 20px)}body.syndicate div.notice .label{color:#000}body.syndicate div.notice .content:only-of-type{padding:0}body.syndicate div.notice hr{background-color:#272727}body.syndicate div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.syndicate section{display:table-row;width:100%}body.syndicate section:not(:first-child){padding-top:4px}body.syndicate section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.syndicate section .label{width:1%;padding-right:32px;white-space:nowrap;color:#fff}body.syndicate section .content:not(:last-child){padding-right:16px}body.syndicate section .line{width:100%}body.syndicate div.subdisplay{width:100%;margin:0}body.syndicate header.titlebar .close,body.syndicate header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#e74242}body.syndicate header.titlebar .close:hover,body.syndicate header.titlebar .minimize:hover{color:#eb5e5e}body.syndicate header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.syndicate header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.syndicate header.titlebar .title{position:absolute;top:6px;left:46px;color:#e74242;font-size:16px;white-space:nowrap}body.syndicate header.titlebar .minimize{position:absolute;top:6px;right:46px}body.syndicate header.titlebar .close{position:absolute;top:4px;right:12px}.no-icons header.titlebar .statusicon{font-size:20px}.no-icons header.titlebar .statusicon:after{content:"O"}.no-icons header.titlebar .minimize{top:-2px;font-size:20px}.no-icons header.titlebar .minimize:after{content:"—"}.no-icons header.titlebar .close{font-size:20px}.no-icons header.titlebar .close:after{content:"X"} +\ No newline at end of file diff --git a/tgui/assets/tgui.js.rej b/tgui/assets/tgui.js.rej new file mode 100644 index 0000000000..48314f313a --- /dev/null +++ b/tgui/assets/tgui.js.rej @@ -0,0 +1,17 @@ +diff a/tgui/assets/tgui.js b/tgui/assets/tgui.js (rejected hunks) +@@ -9,8 +9,8 @@ return this.node},render:function(){return this.node||(this.node=document.create + t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[31,11,744]},{p:[31,34,767],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[30,3,706]}," ",{t:4,f:[{p:[34,4,819],t:7,e:"td",f:[{p:[34,8,823],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[34,18,833]}]}}]}],n:52,r:"data.PC_programheaders",p:[33,3,783]}]}]}]}]}," ",{p:[39,1,882],t:7,e:"div",a:{style:"float: right"},f:[{p:[40,2,910],t:7,e:"table",f:[{p:[40,9,917],t:7,e:"tr",f:[{p:[41,3,924],t:7,e:"td",f:[{p:[41,7,928],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[43,4,1018],t:7,e:"td",f:[{p:[43,8,1022],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[44,4,1078],t:7,e:"td",f:[{p:[44,8,1082],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[42,3,983]}]}]}]}]}," ",{p:[48,1,1170],t:7,e:"div",a:{style:"clear: both"},f:[{t:4,f:[{p:[52,3,1223],t:7,e:"ui-notice",f:[{p:[53,5,1239],t:7,e:"span",f:["Reconstruction in progress!"]}]}],n:50,r:"data.restoring",p:[51,1,1198]},{p:[58,1,1305],t:7,e:"ui-display",f:[{p:[60,1,1319],t:7,e:"div",a:{"class":"item"},f:[{p:[61,3,1340],t:7,e:"div",a:{"class":"itemLabel"},f:["Inserted AI:"]}," ",{p:[64,3,1389],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[65,2,1416],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",state:[{t:2,x:{r:["data.nocard"],s:'_0?"disabled":null'},p:[65,52,1466]}]},f:[{t:2,x:{r:["data.name"],s:'_0?_0:"---"'},p:[65,89,1503]}]}]}]}," ",{t:4,f:[{p:[70,2,1586],t:7,e:"b",f:["ERROR: ",{t:2,r:"data.error",p:[70,12,1596]}]}],n:50,r:"data.error",p:[69,1,1566]},{t:4,n:51,f:[{p:[72,2,1625],t:7,e:"h2",f:["System Status"]}," ",{p:[73,2,1649],t:7,e:"div",a:{"class":"item"},f:[{p:[74,3,1670],t:7,e:"div",a:{"class":"itemLabel"},f:["Current AI:"]}," ",{p:[77,3,1720],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.name",p:[78,4,1749]}]}," ",{p:[80,3,1774],t:7,e:"div",a:{"class":"itemLabel"},f:["Status:"]}," ",{p:[83,3,1820],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["Nonfunctional"],n:50,r:"data.isDead",p:[84,4,1849]},{t:4,n:51,f:["Functional"],r:"data.isDead"}]}," ",{p:[90,3,1936],t:7,e:"div",a:{"class":"itemLabel"},f:["System Integrity:"]}," ",{p:[93,3,1992],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[94,4,2021],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[94,37,2054]}],state:[{t:2,r:"healthState",p:[95,11,2081]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[95,28,2098]},"%"]}]}," ",{p:[97,3,2151],t:7,e:"div",a:{"class":"itemLabel"},f:["Active Laws:"]}," ",{p:[100,3,2202],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[101,4,2231],t:7,e:"table",f:[{t:4,f:[{p:[103,6,2271],t:7,e:"tr",f:[{p:[103,10,2275],t:7,e:"td",f:[{p:[103,14,2279],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[103,38,2303]}]}]}]}],n:52,r:"data.ai_laws",p:[102,5,2243]}]}]}," ",{p:[107,2,2352],t:7,e:"ui-section",a:{label:"Operations"},f:[{p:[108,3,2386],t:7,e:"ui-button",a:{icon:"plus",style:[{t:2,x:{r:["data.restoring"],s:'_0?"disabled":null'},p:[108,33,2416]}],action:"PRG_beginReconstruction"},f:["Begin Reconstruction"]}]}]}],r:"data.error"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],220:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," ",{p:[7,1,261],t:7,e:"ui-notice",f:[{t:4,f:[{p:[9,5,304],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[10,7,346],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[10,24,363]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[10,75,414]}]}]}],n:50,r:"data.siliconUser",p:[8,3,275]},{t:4,n:51,f:[{p:[13,5,502],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,31,528]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[16,1,610],t:7,e:"status"}," ",{t:4,f:[{t:4,f:[{p:[19,7,701],t:7,e:"ui-display",a:{title:"Air Controls"},f:[{p:[20,9,743],t:7,e:"ui-section",f:[{p:[21,11,766],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"exclamation-triangle":"exclamation"'},p:[21,28,783]}],style:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"caution":null'},p:[21,98,853]}],action:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"reset":"alarm"'},p:[22,23,916]}]},f:["Area Atmosphere Alarm"]}]}," ",{p:[24,9,1022],t:7,e:"ui-section",f:[{p:[25,11,1045],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0==3?"exclamation-triangle":"exclamation"'},p:[25,28,1062]}],style:[{t:2,x:{r:["data.mode"],s:'_0==3?"danger":null'},p:[25,96,1130]}],action:"mode",params:['{"mode": ',{t:2,x:{r:["data.mode"],s:"_0==3?1:3"},p:[26,44,1211]},"}"]},f:["Panic Siphon"]}]}," ",{p:[28,9,1295],t:7,e:"br"}," ",{p:[29,9,1309],t:7,e:"ui-section",f:[{p:[30,11,1332],t:7,e:"ui-button",a:{icon:"sign-out",action:"tgui:view",params:'{"screen": "vents"}'},f:["Vent Controls"]}]}," ",{p:[32,9,1463],t:7,e:"ui-section",f:[{p:[33,11,1486],t:7,e:"ui-button",a:{icon:"filter",action:"tgui:view",params:'{"screen": "scrubbers"}'},f:["Scrubber Controls"]}]}," ",{p:[35,9,1623],t:7,e:"ui-section",f:[{p:[36,11,1646],t:7,e:"ui-button",a:{icon:"cog",action:"tgui:view",params:'{"screen": "modes"}'},f:["Operating Mode"]}]}," ",{p:[38,9,1773],t:7,e:"ui-section",f:[{p:[39,11,1796],t:7,e:"ui-button",a:{icon:"bar-chart",action:"tgui:view",params:'{"screen": "thresholds"}'},f:["Alarm Thresholds"]}]}]}],n:50,x:{r:["config.screen"],s:'_0=="home"'},p:[18,3,663]},{t:4,n:51,f:[{t:4,n:50,x:{r:["config.screen"],s:'_0=="vents"'},f:[{p:[43,5,1990],t:7,e:"vents"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&(_0=="scrubbers")'},f:[" ",{p:[45,5,2045],t:7,e:"scrubbers"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&(_0=="modes"))'},f:[" ",{p:[47,5,2100],t:7,e:"modes"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&((!(_0=="modes"))&&(_0=="thresholds")))'},f:[" ",{p:[49,5,2156],t:7,e:"thresholds"}]}],x:{r:["config.screen"],s:'_0=="home"'}}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[17,1,620]}]},r.exports.components=r.exports.components||{};var i={vents:t(226),modes:t(222),thresholds:t(225),status:t(224),scrubbers:t(223)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,222:222,223:223,224:224,225:225,226:226}],221:[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}],222:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,111],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Operating Modes",button:0},f:[" ",{t:4,f:[{p:[8,5,161],t:7,e:"ui-section",f:[{p:[9,7,180],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["selected"],s:'_0?"check-square-o":"square-o"'},p:[9,24,197]}],state:[{t:2,x:{r:["selected","danger"],s:'_0?_1?"danger":"selected":null'},p:[10,16,258]}],action:"mode",params:['{"mode": ',{t:2,r:"mode",p:[11,40,351]},"}"]},f:[{t:2,r:"name",p:[11,51,362]}]}]}],n:52,r:"data.modes",p:[7,3,136]}]}]},r.exports.components=r.exports.components||{};var i={back:t(221)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,221:221}],223:[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:"Scrubber Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,167],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,189]}]},f:[{p:[9,7,211],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,246],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,263]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,305]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,381]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,401]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,415]}]}]}," ",{p:[13,7,478],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,512],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["scrubbing"],s:'_0?"filter":"sign-in"'},p:[14,26,529]}],style:[{t:2,x:{r:["scrubbing"],s:'_0?null:"danger"'},p:[14,71,574]}],action:"scrubbing",params:['{"id_tag": "',{t:2,r:"id_tag",p:[15,50,656]},'", "val": ',{t:2,x:{r:["scrubbing"],s:"+!_0"},p:[15,70,676]},"}"]},f:[{t:2,x:{r:["scrubbing"],s:'_0?"Scrubbing":"Siphoning"'},p:[15,88,694]}]}]}," ",{p:[17,7,774],t:7,e:"ui-section",a:{label:"Range"},f:[{p:[18,9,809],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["widenet"],s:'_0?"expand":"compress"'},p:[18,26,826]}],style:[{t:2,x:{r:["widenet"],s:'_0?"selected":null'},p:[18,70,870]}],action:"widenet",params:['{"id_tag": "',{t:2,r:"id_tag",p:[19,48,950]},'", "val": ',{t:2,x:{r:["widenet"],s:"+!_0"},p:[19,68,970]},"}"]},f:[{t:2,x:{r:["widenet"],s:'_0?"Expanded":"Normal"'},p:[19,84,986]}]}]}," ",{p:[21,7,1060],t:7,e:"ui-section",a:{label:"Filters"},f:[{p:[22,9,1097],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_co2"],s:'_0?"check-square-o":"square-o"'},p:[22,26,1114]}],style:[{t:2,x:{r:["filter_co2"],s:'_0?"selected":null'},p:[22,81,1169]}],action:"co2_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[23,50,1254]},'", "val": ',{t:2,x:{r:["filter_co2"],s:"+!_0"},p:[23,70,1274]},"}"]},f:["CO2"]}," ",{p:[24,9,1317],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_n2o"],s:'_0?"check-square-o":"square-o"'},p:[24,26,1334]}],style:[{t:2,x:{r:["filter_n2o"],s:'_0?"selected":null'},p:[24,81,1389]}],action:"n2o_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[25,50,1474]},'", "val": ',{t:2,x:{r:["filter_n2o"],s:"+!_0"},p:[25,70,1494]},"}"]},f:["N2O"]}," ",{p:[26,9,1537],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_toxins"],s:'_0?"check-square-o":"square-o"'},p:[26,26,1554]}],style:[{t:2,x:{r:["filter_toxins"],s:'_0?"selected":null'},p:[26,84,1612]}],action:"tox_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[27,50,1700]},'", "val": ',{t:2,x:{r:["filter_toxins"],s:"+!_0"},p:[27,70,1720]},"}"]},f:["Plasma"]}," ",{p:[28,3,1763],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_bz"],s:'_0?"check-square-o":"square-o"'},p:[28,20,1780]}],style:[{t:2,x:{r:["filter_bz"],s:'_0?"selected":null'},p:[28,74,1834]}],action:"bz_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[29,43,1911]},'", "val": ',{t:2,x:{r:["filter_bz"],s:"+!_0"},p:[29,63,1931]},"}"]},f:["BZ"]}," ",{p:[30,3,1966],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_freon"],s:'_0?"check-square-o":"square-o"'},p:[30,20,1983]}],style:[{t:2,x:{r:["filter_freon"],s:'_0?"selected":null'},p:[30,77,2040]}],action:"freon_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[31,46,2123]},'", "val": ',{t:2,x:{r:["filter_freon"],s:"+!_0"},p:[31,66,2143]},"}"]},f:["Freon"]}," ",{p:[32,3,2184],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"check-square-o":"square-o"'},p:[32,20,2201]}],style:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"selected":null'},p:[32,83,2264]}],action:"water_vapor_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[33,52,2359]},'", "val": ',{t:2,x:{r:["filter_water_vapor"],s:"+!_0"},p:[33,72,2379]},"}"]},f:["Water Vapor"]}]}]}],n:52,r:"data.scrubbers",p:[7,3,138]},{t:4,n:51,f:[{p:[37,5,2486],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(221)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,221:221}],224:[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,107],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[4,26,126]}]},f:[{p:[5,6,142],t:7,e:"span",a:{"class":[{t:2,x:{r:["danger_level"],s:'_0==2?"bad":_0==1?"average":"good"'},p:[5,19,155]}]},f:[{t:2,x:{r:["value"],s:"Math.fixed(_0,2)"},p:[6,5,232]},{t:2,r:"unit",p:[6,29,256]}]}]}],n:52,r:"adata.environment_data",p:[3,5,68]}," ",{p:[10,5,313],t:7,e:"ui-section",a:{label:"Local Status"},f:[{p:[11,7,353],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.danger_level"],s:'_0==2?"bad bold":_0==1?"average bold":"good"'},p:[11,20,366]}]},f:[{t:2,x:{r:["data.danger_level"],s:'_0==2?"Danger (Internals Required)":_0==1?"Caution":"Optimal"'},p:[12,6,464]}]}]}," ",{p:[15,5,605],t:7,e:"ui-section",a:{label:"Area Status"},f:[{p:[16,7,644],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.atmos_alarm","data.fire_alarm"],s:'_0||_1?"bad bold":"good"'},p:[16,20,657]}]},f:[{t:2,x:{r:["data.atmos_alarm","fire_alarm"],s:'_0?"Atmosphere Alarm":_1?"Fire Alarm":"Nominal"'},p:[17,8,728]}]}]}],n:50,r:"data.environment_data",p:[2,3,34]},{t:4,n:51,f:[{p:[21,5,856],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[22,7,891],t:7,e:"span",a:{"class":"bad bold"},f:["Cannot obtain air sample for analysis."]}]}],r:"data.environment_data"}," ",{t:4,f:[{p:[26,5,1015],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[27,7,1050],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[25,3,990]}]}]},e.exports=a.extend(r.exports)},{205:205}],225:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.css=" th, td {\n padding-right: 16px;\n text-align: left;\n }",r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,112],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Alarm Thresholds",button:0},f:[" ",{p:[7,3,137],t:7,e:"table",f:[{p:[8,5,149],t:7,e:"thead",f:[{p:[8,12,156],t:7,e:"tr",f:[{p:[9,7,167],t:7,e:"th"}," ",{p:[10,7,183],t:7,e:"th",f:[{p:[10,11,187],t:7,e:"span",a:{"class":"bad"},f:["min2"]}]}," ",{p:[11,7,228],t:7,e:"th",f:[{p:[11,11,232],t:7,e:"span",a:{"class":"average"},f:["min1"]}]}," ",{p:[12,7,277],t:7,e:"th",f:[{p:[12,11,281],t:7,e:"span",a:{"class":"average"},f:["max1"]}]}," ",{p:[13,7,326],t:7,e:"th",f:[{p:[13,11,330],t:7,e:"span",a:{"class":"bad"},f:["max2"]}]}]}]}," ",{p:[15,5,387],t:7,e:"tbody",f:[{t:4,f:[{p:[16,32,426],t:7,e:"tr",f:[{p:[17,9,439],t:7,e:"th",f:[{t:3,r:"name",p:[17,13,443]}]}," ",{t:4,f:[{p:[18,27,485],t:7,e:"td",f:[{p:[19,11,500],t:7,e:"ui-button",a:{action:"threshold",params:['{"env": "',{t:2,r:"env",p:[19,58,547]},'", "var": "',{t:2,r:"val",p:[19,76,565]},'"}']},f:[{t:2,x:{r:["selected"],s:"Math.fixed(_0,2)"},p:[19,87,576]}]}]}],n:52,r:"settings",p:[18,9,467]}]}],n:52,r:"data.thresholds",p:[16,7,401]}]}," ",{p:[23,3,675],t:7,e:"table",f:[]}]}]}," "]},r.exports.components=r.exports.components||{};var i={back:t(221)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,221:221}],226:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,109],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Vent Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,159],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,181]}]},f:[{p:[9,7,203],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,238],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,255]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,297]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,373]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,393]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,407]}]}]}," ",{p:[13,7,470],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,504],t:7,e:"span",f:[{t:2,x:{r:["direction"],s:'_0=="release"?"Pressurizing":"Siphoning"'},p:[14,15,510]}]}]}," ",{p:[16,7,601],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[17,9,649],t:7,e:"ui-button",a:{icon:"sign-in",style:[{t:2,x:{r:["incheck"],s:'_0?"selected":null'},p:[17,42,682]}],action:"incheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[18,48,762]},'", "val": ',{t:2,r:"checks",p:[18,68,782]},"}"]},f:["Internal"]}," ",{p:[19,9,824],t:7,e:"ui-button",a:{icon:"sign-out",style:[{t:2,x:{r:["excheck"],s:'_0?"selected":null'},p:[19,43,858]}],action:"excheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[20,48,938]},'", "val": ',{t:2,r:"checks",p:[20,68,958]},"}"]},f:["External"]}]}," ",{p:[22,7,1018],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,9,1063],t:7,e:"ui-button",a:{icon:"pencil",action:"set_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[24,31,1149]},'"}']},f:[{t:2,x:{r:["external"],s:"Math.fixed(_0)"},p:[24,45,1163]}]}," ",{p:[25,9,1208],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["extdefault"],s:'_0?"disabled":null'},p:[25,42,1241]}],action:"reset_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[26,31,1340]},'"}']},f:["Reset"]}]}]}],n:52,r:"data.vents",p:[7,3,134]},{t:4,n:51,f:[{p:[30,5,1428],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(221)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,221:221}],227:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.css=" table {\n width: 100%;\n border-spacing: 2px;\n }\n th {\n text-align: left;\n }\n td {\n vertical-align: top;\n }\n td .button {\n margin-top: 4px\n }",r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,15],t:7,e:"ui-section",f:[{p:[3,5,32],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oneAccess"],s:'_0?"unlock":"lock"'},p:[3,22,49]}],action:"one_access"},f:[{t:2,x:{r:["data.oneAccess"],s:'_0?"One":"All"'},p:[3,82,109]}," Required"]}," ",{p:[4,5,169],t:7,e:"ui-button",a:{icon:"refresh",action:"clear"},f:["Clear"]}]}," ",{p:[6,3,246],t:7,e:"hr"}," ",{p:[7,3,254],t:7,e:"table",f:[{p:[8,3,264],t:7,e:"thead",f:[{p:[9,4,275],t:7,e:"tr",f:[{t:4,f:[{p:[10,5,306],t:7,e:"th",f:[{p:[10,9,310],t:7,e:"span",a:{"class":"highlight bold"},f:[{t:2,r:"name",p:[10,38,339]}]}]}],n:52,r:"data.regions",p:[9,8,279]}]}]}," ",{p:[13,3,391],t:7,e:"tbody",f:[{p:[14,4,402],t:7,e:"tr",f:[{t:4,f:[{p:[15,5,433],t:7,e:"td",f:[{t:4,f:[{p:[16,11,466],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["req"],s:'_0?"check-square-o":"square-o"'},p:[16,28,483]}],style:[{t:2,x:{r:["req"],s:'_0?"selected":null'},p:[16,76,531]}],action:"set",params:['{"access": "',{t:2,r:"id",p:[17,46,605]},'"}']},f:[{t:2,r:"name",p:[17,56,615]}]}," ",{p:[18,9,644],t:7,e:"br"}],n:52,r:"accesses",p:[15,9,437]}]}],n:52,r:"data.regions",p:[14,8,406]}]}]}]}]}," "]},e.exports=a.extend(r.exports)},{205:205}],228:[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,1161],t:7,e:"ui-notice",f:[{p:[47,3,1175],t:7,e:"b",f:[{p:[47,6,1178],t:7,e:"h3",f:["SYSTEM FAILURE"]}]}," ",{p:[48,3,1208],t:7,e:"i",f:["I/O regulators malfunction detected! Waiting for system reboot..."]},{p:[48,75,1280],t:7,e:"br"}," Automatic reboot in ",{t:2,r:"data.failTime",p:[49,23,1307]}," seconds... ",{p:[50,3,1338],t:7,e:"ui-button",a:{icon:"refresh",action:"reboot"},f:["Reboot Now"]},{p:[50,67,1402],t:7,e:"br"},{p:[50,71,1406],t:7,e:"br"},{p:[50,75,1410],t:7,e:"br"}]}],n:50,r:"data.failTime",p:[45,1,1138]},{t:4,n:51,f:[{p:[53,2,1439],t:7,e:"ui-notice",f:[{t:4,f:[{p:[55,3,1481],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[56,5,1521],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[56,22,1538]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[56,73,1589]}]}]}],n:50,r:"data.siliconUser",p:[54,4,1454]},{t:4,n:51,f:[{p:[59,3,1674],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[59,29,1700]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[62,2,1785],t:7,e:"ui-display",a:{title:"Power Status"},f:[{p:[63,4,1822],t:7,e:"ui-section",a:{label:"Main Breaker"},f:[{t:4,f:[{p:[65,5,1903],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isOperating"],s:'_0?"good":"bad"'},p:[65,18,1916]}]},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[65,57,1955]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[64,3,1858]},{t:4,n:51,f:[{p:[67,5,2013],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[67,22,2030]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[67,75,2083]}],action:"breaker"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[68,21,2145]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}," ",{p:[71,4,2223],t:7,e:"ui-section",a:{label:"External Power"},f:[{p:[72,3,2261],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.externalPower"],s:"_0(_1)"},p:[72,16,2274]}]},f:[{t:2,x:{r:["data.externalPower"],s:'_0==2?"Good":_0==1?"Low":"None"'},p:[72,52,2310]}]}]}," ",{p:[74,4,2417],t:7,e:"ui-section",a:{label:"Power Cell"},f:[{t:4,f:[{p:[76,5,2492],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerCellStatus",p:[76,38,2525]}],state:[{t:2,r:"powerCellStatusState",p:[76,71,2558]}]},f:[{t:2,x:{r:["adata.powerCellStatus"],s:"Math.fixed(_0)"},p:[76,97,2584]},"%"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[75,3,2451]},{t:4,n:51,f:[{p:[78,5,2647],t:7,e:"span",a:{"class":"bad"},f:["Removed"]}],x:{r:["data.powerCellStatus"],s:"_0!=null"}}]}," ",{t:4,f:[{p:[82,3,2749],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{t:4,f:[{p:[84,4,2830],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.chargeMode"],s:'_0?"good":"bad"'},p:[84,17,2843]}]},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[84,55,2881]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[83,5,2786]},{t:4,n:51,f:[{p:[86,4,2941],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.chargeMode"],s:'_0?"refresh":"close"'},p:[86,21,2958]}],style:[{t:2,x:{r:["data.chargeMode"],s:'_0?"selected":null'},p:[86,71,3008]}],action:"charge"},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[87,22,3070]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}," [",{p:[90,6,3147],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.chargingStatus"],s:"_0(_1)"},p:[90,19,3160]}]},f:[{t:2,x:{r:["data.chargingStatus"],s:'_0==2?"Fully Charged":_0==1?"Charging":"Not Charging"'},p:[90,56,3197]}]},"]"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[81,4,2710]}]}," ",{p:[94,2,3352],t:7,e:"ui-display",a:{title:"Power Channels"},f:[{t:4,f:[{p:[96,3,3422],t:7,e:"ui-section",a:{label:[{t:2,r:"title",p:[96,22,3441]}],nowrap:0},f:[{p:[97,5,3464],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.powerChannels"],s:"Math.round(_1[_0].powerLoad)"},p:[97,26,3485]}," W"]}," ",{p:[98,5,3551],t:7,e:"div",a:{"class":"content"},f:[{p:[98,26,3572],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0>=2?"good":"bad"'},p:[98,39,3585]}]},f:[{t:2,x:{r:["status"],s:'_0>=2?"On":"Off"'},p:[98,73,3619]}]}]}," ",{p:[99,5,3667],t:7,e:"div",a:{"class":"content"},f:["[",{p:[99,27,3689],t:7,e:"span",f:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"Auto":"Manual"'},p:[99,33,3695]}]},"]"]}," ",{p:[100,5,3764],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{t:4,f:[{p:[102,6,3855],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"selected":null'},p:[102,39,3888]}],action:"channel",params:[{t:2,r:"topicParams.auto",p:[103,30,3969]}]},f:["Auto"]}," ",{p:[104,6,4013],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["status"],s:'_0==2?"selected":null'},p:[104,41,4048]}],action:"channel",params:[{t:2,r:"topicParams.on",p:[105,13,4114]}]},f:["On"]}," ",{p:[106,6,4154],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["status"],s:'_0==0?"selected":null'},p:[106,37,4185]}],action:"channel",params:[{t:2,r:"topicParams.off",p:[107,13,4251]}]},f:["Off"]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[101,4,3809]}]}]}],n:52,r:"data.powerChannels",p:[95,4,3391]}," ",{p:[112,4,4342],t:7,e:"ui-section",a:{label:"Total Load"},f:[{p:[113,3,4376],t:7,e:"span",a:{"class":"bold"},f:[{t:2,x:{r:["adata.totalLoad"],s:"Math.round(_0)"},p:[113,22,4395]}," W"]}]}]}," ",{t:4,f:[{p:[117,4,4497],t:7,e:"ui-display",a:{title:"System Overrides"},f:[{p:[118,3,4537],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"overload"},f:["Overload"]}," ",{t:4,f:[{p:[120,5,4636],t:7,e:"ui-button",a:{icon:[{t:2,r:"malfIcon",p:[120,22,4653]}],state:[{t:2,x:{r:["data.malfStatus"],s:'_0==4?"disabled":null'},p:[120,43,4674]}],action:[{t:2,r:"malfAction",p:[120,97,4728]}]},f:[{t:2,r:"malfButton",p:[120,113,4744]}]}],n:50,r:"data.malfStatus",p:[119,3,4608]}]}],n:50,r:"data.siliconUser",p:[116,2,4469]}," ",{p:[124,2,4808],t:7,e:"ui-notice",f:[{p:[125,4,4823],t:7,e:"ui-section",a:{label:"Cover Lock"},f:[{t:4,f:[{p:[127,5,4902],t:7,e:"span",f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[127,11,4908]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[126,3,4857]},{t:4,n:51,f:[{p:[129,5,4978],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.coverLocked"],s:'_0?"lock":"unlock"'},p:[129,22,4995]}],action:"cover"},f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[129,79,5052]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}],r:"data.failTime"}]},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:"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}],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",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}],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,15],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,46],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,63]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,107]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,161]}]}]}," ",{p:[6,3,218],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,259],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,353],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,383]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,510],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[9,11,516]}," kPa"]}]}," ",{p:[11,3,576],t:7,e:"ui-section",a:{label:"Filter"},f:[{p:[12,5,608],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0==""?"selected":null'},p:[12,23,626]}],action:"filter",params:'{"mode": ""}'},f:["Nothing"]}," ",{p:[14,5,742],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="plasma"?"selected":null'},p:[14,23,760]}],action:"filter",params:'{"mode": "plasma"}'},f:["Plasma"]}," ",{p:[16,5,887],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="o2"?"selected":null'},p:[16,23,905]}],action:"filter",params:'{"mode": "o2"}'},f:["O2"]}," ",{p:[18,5,1020],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2"?"selected":null'},p:[18,23,1038]}],action:"filter",params:'{"mode": "n2"}'},f:["N2"]}," ",{p:[20,5,1153],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="co2"?"selected":null'},p:[20,23,1171]}],action:"filter",params:'{"mode": "co2"}'},f:["CO2"]}," ",{p:[22,5,1289],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2o"?"selected":null'},p:[22,23,1307]}],action:"filter",params:'{"mode": "n2o"}'},f:["N2O"]}," ",{p:[24,2,1422],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="bz"?"selected":null'},p:[24,20,1440]}],action:"filter",params:'{"mode": "bz"}'},f:["BZ"]}," ",{p:[26,2,1553],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="freon"?"selected":null'},p:[26,20,1571]}],action:"filter",params:'{"mode": "freon"}'},f:["Freon"]}," ",{p:[28,2,1693],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="water_vapor"?"selected":null'},p:[28,20,1711]}],action:"filter",params:'{"mode": "water_vapor"}'},f:["Water Vapor"]}]}]}]},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,15],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,46],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,63]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,107]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,161]}]}]}," ",{p:[6,3,218],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,259],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}' + },f:["Set"]}," ",{p:[8,5,353],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.set_pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,383]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,514],t:7,e:"span",f:[{t:2,x:{r:["adata.set_pressure"],s:"Math.round(_0)"},p:[9,11,520]}," kPa"]}]}," ",{p:[11,3,584],t:7,e:"ui-section",a:{label:"Node 1"},f:[{p:[12,5,616],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[12,44,655]}],action:"node1",params:'{"concentration": -0.1}'}}," ",{p:[14,5,770],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[14,39,804]}],action:"node1",params:'{"concentration": -0.01}'}}," ",{p:[16,5,920],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[16,38,953]}],action:"node1",params:'{"concentration": 0.01}'}}," ",{p:[18,5,1070],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[18,43,1108]}],action:"node1",params:'{"concentration": 0.1}'}}," ",{p:[20,5,1224],t:7,e:"span",f:[{t:2,x:{r:["adata.node1_concentration"],s:"Math.round(_0)"},p:[20,11,1230]},"%"]}]}," ",{p:[22,3,1298],t:7,e:"ui-section",a:{label:"Node 2"},f:[{p:[23,5,1330],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[23,44,1369]}],action:"node2",params:'{"concentration": -0.1}'}}," ",{p:[25,5,1484],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[25,39,1518]}],action:"node2",params:'{"concentration": -0.01}'}}," ",{p:[27,5,1634],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[27,38,1667]}],action:"node2",params:'{"concentration": 0.01}'}}," ",{p:[29,5,1784],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[29,43,1822]}],action:"node2",params:'{"concentration": 0.1}'}}," ",{p:[31,5,1938],t:7,e:"span",f:[{t:2,x:{r:["adata.node2_concentration"],s:"Math.round(_0)"},p:[31,11,1944]},"%"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],233:[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,15],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,46],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,63]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,107]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,161]}]}]}," ",{t:4,f:[{p:[7,5,244],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{p:[8,7,285],t:7,e:"ui-button",a:{icon:"pencil",action:"rate",params:'{"rate": "input"}'},f:["Set"]}," ",{p:[9,7,373],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.rate","data.max_rate"],s:'_0==_1?"disabled":null'},p:[9,37,403]}],action:"rate",params:'{"rate": "max"}'},f:["Max"]}," ",{p:[10,7,516],t:7,e:"span",f:[{t:2,x:{r:["adata.rate"],s:"Math.round(_0)"},p:[10,13,522]}," L/s"]}]}],n:50,r:"data.max_rate",p:[6,3,218]},{t:4,n:51,f:[{p:[13,5,593],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,636],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,732],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,762]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,891],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,897]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{205:205}],234:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,65],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,98]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,143]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,179]}]}," ",{p:[4,5,230],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,282]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,327]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,405],t:7,e:"ui-section",f:[{p:[7,5,422],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,511],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,595],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,601]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,635]}]}," ",{p:[10,5,680],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,762],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,863],t:7,e:"ui-section",f:[{p:[14,7,882],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,985],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1090],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],235:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,22],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,38]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,77],t:7,e:"ui-display",a:{title:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,160],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,192],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,242]}]}]}," ",{p:[11,3,288],t:7,e:"ui-section",a:{label:"Controls"},f:[{p:[12,5,322],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[12,38,355]}],action:"fire"},f:["FIRE!"]}]}],n:50,r:"data.connected",p:[7,3,135]}," ",{t:4,f:[{p:[16,3,477],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[17,7,516],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[15,3,451]}]}]},e.exports=a.extend(r.exports)},{205:205}],236:[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,14],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,34]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,180],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,259],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,293],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,299]}," kPa"]}]}," ",{p:[11,3,363],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,393],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,406]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,451]}]}]}," ",{t:4,f:[{p:[15,3,559],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,593],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,610]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,664]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,705]}]}]}],n:50,r:"data.isPrototype",p:[14,3,531]}]}," ",{p:[22,1,818],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,847],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,889],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,902]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,936]}],value:[{t:2,r:"data.releasePressure",p:[25,14,978]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1004]}," kPa"]}]}," ",{p:[27,3,1073],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1117],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1150]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1304],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1335]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1480],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1574],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1604]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1763],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1794],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1811]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1864]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1957]}]}]}]}," ",{t:4,f:[{p:[42,1,2049],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2112],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2152],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2185]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2312],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2343]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2472],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2504]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2587],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2617]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2091]}," ",{p:[55,3,2779],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2811],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2844]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2913]}]}," ",{p:[59,2,2959],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3005],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3011]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2022]},{p:{button:[{t:4,f:[{p:[69,7,3209],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3240]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3175]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3370],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3400]}]}," ",{p:[76,3,3444],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3477]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3340]},{t:4,n:51,f:[{p:[80,3,3556],t:7,e:"ui-section",f:[{p:[81,4,3572],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[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}],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:"Cellular Emporium",button:0},f:[{p:[2,3,48],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,81]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,166],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,222]}]}]}," ",{p:[8,1,286],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,326],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,345]}],candystripe:0,right:0},f:[{p:[11,5,378],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,384]}]}," ",{p:[12,5,404],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,410]}]}," ",{p:[13,5,434],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,446]}]}," ",{p:[14,5,470],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,494]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,599]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,618]}]}]}],n:52,r:"data.abilities",p:[9,1,299]},{t:4,f:[{p:[23,3,716],t:7,e:"span",a:{"class":"warning"},f:["No abilities availible."]}],n:51,r:"data.abilities",p:[22,1,694]}]}]},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:"Status"},f:[{p:[2,3,30],t:7,e:"ui-section",a:{label:"Energy"},f:[{p:[3,5,62],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,83]}],value:[{t:2,r:"data.energy",p:[3,53,110]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,127]}," Units"]}]}]}," ",{p:{button:[{t:4,f:[{p:[9,7,307],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,337]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,414]},"}"]},f:[{t:2,r:".",p:[9,122,422]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,264]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,471],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,519],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,586]},'"}']},f:[{t:2,r:"title",p:[14,84,596]}]}],n:52,r:"data.chemicals",p:[13,5,488]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,766],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,825]},"}"]},f:[{t:2,r:".",p:[21,74,833]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,723]}," ",{p:[23,5,869],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,900]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,995],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1063],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1069]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1111]}," Units"]}," ",{p:[28,7,1155],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1206],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1249]}," units of ",{t:2,r:"name",p:[30,87,1284]}]},{p:[30,102,1299],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1167]},{t:4,n:51,f:[{p:[32,9,1328],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1029]},{t:4,n:51,f:[{p:[35,7,1401],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:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[2,3,34],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,65],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,82]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,134]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,182]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,244]}]}]}," ",{p:[8,3,307],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,338],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,413]}," K"]}]}]}," ",{p:{button:[{p:[14,5,551],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,582]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,677],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,745],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,764]}," K"]}," ",{p:[19,7,813],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,865],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,908]}," units of ",{t:2,r:"name",p:[21,87,943]}]},{p:[21,102,958],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,826]},{t:4,n:51,f:[{p:[23,9,987],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,711]},{t:4,n:51,f:[{p:[26,7,1060],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],241:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,31],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,68],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,85]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,140]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,195]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject and Clear Buffer":"No beaker"'},p:[7,5,262]}]}," ",{p:[10,3,348],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,431],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,450]}," units of ",{t:2,r:"name",p:[13,60,485]}],nowrap:0},f:[{p:[14,7,509],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,558],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,611]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,655],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,708]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,752],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,805]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,851],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,904]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,953],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1006]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1056],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1100]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,396]},{t:4,n:51,f:[{p:[24,5,1178],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,364]},{t:4,n:51,f:[{p:[27,5,1246],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1329],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1359],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1397]}]},f:["Destroy"]}," ",{p:[34,3,1454],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1492]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1560],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1610],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1629]}," units of ",{t:2,r:"name",p:[37,59,1664]}],nowrap:0},f:[{p:[38,6,1687],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1735],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1790]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1833],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1888]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1931],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,1986]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2031],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2086]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2134],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2189]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2238],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2282]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1576]}]}]}," ",{t:4,f:[{p:[52,3,2410],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2498],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2532]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2581]}]}," ",{p:[55,5,2661],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2683]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2707]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2462]},{t:4,n:51,f:[{p:[57,5,2757],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2818],t:7,e:"br"}," ",{p:[61,4,2827],t:7,e:"br"}," ",{p:[62,4,2836],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,2895]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,2978],t:7,e:"br"}," ",{p:[64,4,2987],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,3046]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3129],t:7,e:"br"}," ",{p:[66,4,3138],t:7,e:"br"}," ",{p:[67,4,3147],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,3207]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3291],t:7,e:"br"}," ",{p:[69,4,3300],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,3360]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3445],t:7,e:"br"}," ",{p:[71,4,3454],t:7,e:"br"}," ",{p:[72,4,3463],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,3524]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3609],t:7,e:"br"}," ",{p:[74,4,3618],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,3679]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2388]},{t:4,n:51,f:[{p:[79,3,3796],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3850],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,3909]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,3992],t:7,e:"br"}," ",{p:[82,4,4001],t:7,e:"br"}," ",{p:[83,4,4010],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,4071]}]},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,4215],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4233]}]},f:[{p:[88,3,4263],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4310],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4353]}]}," ",{p:[90,3,4395],t:7,e:"br"}," ",{p:[91,3,4403],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4444],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4464]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4510]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4538]}]}," ",{p:[93,3,4574],t:7,e:"br"}," ",{p:[94,3,4582],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4623],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4645]}]}," ",{p:[96,3,4681],t:7,e:"br"}," ",{p:[97,3,4689],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4744],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4766]},"µ/minute"]}," ",{p:[99,3,4813],t:7,e:"br"}," ",{p:[100,3,4821],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4875],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4897]}]}," ",{p:[102,3,4933],t:7,e:"br"}," ",{p:[103,3,4941],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,4996],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5018]}]}," ",{p:[105,3,5055],t:7,e:"br"}," ",{p:[106,3,5063],t:7,e:"br"}," ",{p:[107,3,5071],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}],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",f:[{p:[2,3,15],t:7,e:"ui-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,42]}]}," ",{p:[3,3,105],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,153]}]}]}," ",{t:4,f:[{p:[6,3,230],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,245]}]}],n:50,r:"data.recollection",p:[5,1,202]},{t:4,n:51,f:[{p:[10,2,292],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[11,4,354],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[12,6,372]}]}]}," ",{p:[15,2,427],t:7,e:"ui-display",f:[{p:[16,3,442],t:7,e:"ui-section",f:[{p:[17,4,458],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[17,22,476]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[18,4,598],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[18,22,616]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[19,4,739],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[19,22,757]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[20,4,895],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Revenant"?"selected":null'},p:[20,22,913]}],action:"select",params:'{"category": "Revenant"}'},f:["Revenant"]}," ",{p:[21,4,1041],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[21,22,1059]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[22,4,1189],t:7,e:"br"},{t:3,r:"data.tier_info",p:[22,8,1193]}]},{p:[23,16,1229],t:7,e:"hr"}," ",{p:[24,3,1236],t:7,e:"ui-section",f:[{t:4,f:[{p:[26,4,1279],t:7,e:"div",f:[{p:[26,9,1284],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[26,29,1304]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[26,99,1374]},'"}']},f:["Recite",{t:3,r:"required",p:[26,117,1392]}]}," ",{t:4,f:[{t:4,f:[{p:[29,6,1465],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[29,53,1512]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[29,72,1531]}]}],n:50,r:"bound",p:[28,5,1446]},{t:4,n:51,f:[{p:[31,6,1573],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[31,53,1620]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[27,6,1424]}," ",{t:3,r:"name",p:[34,6,1684]}," ",{t:3,r:"descname",p:[34,17,1695]}," ",{t:3,r:"invokers",p:[34,32,1710]}]}],n:52,r:"data.scripture",p:[25,3,1251]}]}]}],r:"data.recollection"}]},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,1],t:7,e:"ui-button",a:{icon:"circle",action:"clean_order"},f:["Clear Order"]},{p:[2,70,70],t:7,e:"br"},{p:[2,74,74],t:7,e:"br"}," ",{p:[3,1,79],t:7,e:"i",f:["Your new computer device you always dreamed of is just four steps away..."]},{p:[3,81,159],t:7,e:"hr"}," ",{t:4,f:[" ",{p:[5,1,219],t:7,e:"div",a:{"class":"item"},f:[{p:[6,2,239],t:7,e:"h2",f:["Step 1: Select your device type"]}," ",{p:[7,2,281],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "1"}'},f:["Laptop"]}," ",{p:[8,2,370],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "2"}'},f:["LTablet"]}]}],n:50,x:{r:["data.state"],s:"_0==0"},p:[4,1,164]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.state"],s:"_0==1"},f:[{p:[11,1,492],t:7,e:"div",a:{"class":"item"},f:[{p:[12,2,512],t:7,e:"h2",f:["Step 2: Personalise your device"]}," ",{p:[13,2,554],t:7,e:"table",f:[{p:[14,3,564],t:7,e:"tr",f:[{p:[15,4,572],t:7,e:"td",f:[{p:[15,8,576],t:7,e:"b",f:["Current Price:"]}]},{p:[16,4,601],t:7,e:"td",f:[{t:2,r:"data.totalprice",p:[16,8,605]},"C"]}]}," ",{p:[18,3,636],t:7,e:"tr",f:[{p:[19,4,645],t:7,e:"td",f:[{p:[19,8,649],t:7,e:"b",f:["Battery:"]}]},{p:[20,4,668],t:7,e:"td",f:[{p:[20,8,672],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "1"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==1?"selected":null'},p:[20,73,737]}]},f:["Standard"]}]},{p:[21,4,807],t:7,e:"td",f:[{p:[21,8,811],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "2"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==2?"selected":null'},p:[21,73,876]}]},f:["Upgraded"]}]},{p:[22,4,946],t:7,e:"td",f:[{p:[22,8,950],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "3"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==3?"selected":null'},p:[22,73,1015]}]},f:["Advanced"]}]}]}," ",{p:[24,3,1092],t:7,e:"tr",f:[{p:[25,4,1100],t:7,e:"td",f:[{p:[25,8,1104],t:7,e:"b",f:["Hard Drive:"]}]},{p:[26,4,1126],t:7,e:"td",f:[{p:[26,8,1130],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "1"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==1?"selected":null'},p:[26,67,1189]}]},f:["Standard"]}]},{p:[27,4,1256],t:7,e:"td",f:[{p:[27,8,1260],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "2"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==2?"selected":null'},p:[27,67,1319]}]},f:["Upgraded"]}]},{p:[28,4,1386],t:7,e:"td",f:[{p:[28,8,1390],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "3"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==3?"selected":null'},p:[28,67,1449]}]},f:["Advanced"]}]}]}," ",{p:[30,3,1523],t:7,e:"tr",f:[{p:[31,4,1531],t:7,e:"td",f:[{p:[31,8,1535],t:7,e:"b",f:["Network Card:"]}]},{p:[32,4,1559],t:7,e:"td",f:[{p:[32,8,1563],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "0"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==0?"selected":null'},p:[32,73,1628]}]},f:["None"]}]},{p:[33,4,1694],t:7,e:"td",f:[{p:[33,8,1698],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "1"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==1?"selected":null'},p:[33,73,1763]}]},f:["Standard"]}]},{p:[34,4,1833],t:7,e:"td",f:[{p:[34,8,1837],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "2"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==2?"selected":null'},p:[34,73,1902]}]},f:["Advanced"]}]}]}," ",{p:[36,3,1979],t:7,e:"tr",f:[{p:[37,4,1987],t:7,e:"td",f:[{p:[37,8,1991],t:7,e:"b",f:["Nano Printer:"]}]},{p:[38,4,2015],t:7,e:"td",f:[{p:[38,8,2019],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "0"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==0?"selected":null'},p:[38,73,2084]}]},f:["None"]}]},{p:[39,4,2152],t:7,e:"td",f:[{p:[39,8,2156],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "1"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==1?"selected":null'},p:[39,73,2221]}]},f:["Standard"]}]}]}," ",{p:[41,3,2300],t:7,e:"tr",f:[{p:[42,4,2308],t:7,e:"td",f:[{p:[42,8,2312],t:7,e:"b",f:["Card Reader:"]}]},{p:[43,4,2335],t:7,e:"td",f:[{p:[43,8,2339],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "0"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==0?"selected":null'},p:[43,67,2398]}]},f:["None"]}]},{p:[44,4,2461],t:7,e:"td",f:[{p:[44,8,2465],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "1"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==1?"selected":null'},p:[44,67,2524]}]},f:["Standard"]}]}]}]}," ",{t:4,f:[" ",{p:[49,4,2658],t:7,e:"table",f:[{p:[50,5,2670],t:7,e:"tr",f:[{p:[51,6,2680],t:7,e:"td",f:[{p:[51,10,2684],t:7,e:"b",f:["Processor Unit:"]}]},{p:[52,6,2712],t:7,e:"td",f:[{p:[52,10,2716],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "1"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==1?"selected":null'},p:[52,67,2773]}]},f:["Standard"]}]},{p:[53,6,2841],t:7,e:"td",f:[{p:[53,10,2845],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "2"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==2?"selected":null'},p:[53,67,2902]}]},f:["Advanced"]}]}]}," ",{p:[55,5,2979],t:7,e:"tr",f:[{p:[56,6,2989],t:7,e:"td",f:[{p:[56,10,2993],t:7,e:"b",f:["Tesla Relay:"]}]},{p:[57,6,3018],t:7,e:"td",f:[{p:[57,10,3022],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "0"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==0?"selected":null'},p:[57,71,3083]}]},f:["None"]}]},{p:[58,6,3149],t:7,e:"td",f:[{p:[58,10,3153],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "1"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==1?"selected":null'},p:[58,71,3214]}]},f:["Standard"]}]}]}]}],n:50,x:{r:["data.devtype"],s:"_0!=2"},p:[48,3,2612]}," ",{p:[62,3,3313],t:7,e:"table",f:[{p:[63,4,3324],t:7,e:"tr",f:[{p:[64,5,3333],t:7,e:"td",f:[{p:[64,9,3337],t:7,e:"b",f:["Confirm Order:"]}]},{p:[65,5,3363],t:7,e:"td",f:[{p:[65,9,3367],t:7,e:"ui-button",a:{action:"confirm_order"},f:["CONFIRM"]}]}]}]}," ",{p:[69,2,3444],t:7,e:"hr"}," ",{p:[70,2,3450],t:7,e:"b",f:["Battery"]}," allows your device to operate without external utility power source. Advanced batteries increase battery life.",{p:[70,127,3575],t:7,e:"br"}," ",{p:[71,2,3581],t:7,e:"b",f:["Hard Drive"]}," stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.",{p:[71,130,3709],t:7,e:"br"}," ",{p:[72,2,3715],t:7,e:"b",f:["Network Card"]}," allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.",{p:[72,233,3946],t:7,e:"br"}," ",{p:[73,2,3952],t:7,e:"b",f:["Processor Unit"]}," is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.",{p:[73,208,4158],t:7,e:"br"}," ",{p:[74,2,4164],t:7,e:"b",f:["Tesla Relay"]}," is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.",{p:[74,246,4408],t:7,e:"br"}," ",{p:[75,2,4414],t:7,e:"b",f:["Nano Printer"]}," is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.",{p:[75,241,4653],t:7,e:"br"}," ",{p:[76,2,4659],t:7,e:"b",f:["Card Reader"]}," adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards."]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&(_0==2)"},f:[" ",{p:[79,2,4903],t:7,e:"h2",f:["Step 3: Payment"]}," ",{p:[80,2,4929],t:7,e:"b",f:["Your device is now ready for fabrication.."]},{p:[80,51,4978],t:7,e:"br"}," ",{p:[81,2,4984],t:7,e:"i",f:["Please ensure the required amount of credits are in the machine, then press purchase."]},{p:[81,94,5076],t:7,e:"br"}," ",{p:[82,2,5082],t:7,e:"i",f:["Current credits: ",{p:[82,22,5102],t:7,e:"b",f:[{t:2,r:"data.credits",p:[82,25,5105]},"C"]}]},{p:[82,50,5130],t:7,e:"br"}," ",{p:[83,2,5136],t:7,e:"i",f:["Total price: ",{p:[83,18,5152],t:7,e:"b",f:[{t:2,r:"data.totalprice",p:[83,21,5155]},"C"]}]},{p:[83,49,5183],t:7,e:"br"},{p:[83,53,5187],t:7,e:"br"}," ",{p:[84,2,5193],t:7,e:"ui-button",a:{action:"purchase",state:[{t:2,x:{r:["data.credits","data.totalprice"],s:'_0>=_1?null:"disabled"'},p:[84,38,5229]}]},f:["PURCHASE"]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&((!(_0==2))&&(_0==3))"},f:[" ",{p:[87,2,5337],t:7,e:"h2",f:["Step 4: Thank you for your purchase"]},{p:[87,46,5381],t:7,e:"br"}," ",{p:[88,2,5387],t:7,e:"b",f:["Should you experience any issues with your new device, contact your local network admin for assistance."]}]}],x:{r:["data.state"],s:"_0==0"}}]},e.exports=a.extend(r.exports)},{205:205}],244:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[37,1,938],t:7,e:"ui-display",f:[{p:[38,2,952],t:7,e:"i",f:["No program loaded. Please select program from list below."]}," ",{p:[39,2,1018],t:7,e:"table",f:[{t:4,f:[{p:[41,4,1055],t:7,e:"tr",f:[{p:[41,8,1059],t:7,e:"td",f:[{p:[41,12,1063],t:7,e:"ui-button",a:{action:"PC_runprogram",params:['{"name": "',{t:2,r:"name",p:[41,64,1115]},'"}']},f:[{t:2,r:"desc",p:[42,5,1132]}]}]},{p:[44,4,1160],t:7,e:"td",f:[{p:[44,8,1164],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["running"],s:'_0?null:"disabled"'},p:[44,26,1182]}],icon:"close",action:"PC_killprogram",params:['{"name": "',{t:2,r:"name",p:[44,114,1270]},'"}']}}]}]}],n:52,r:"data.programs",p:[40,3,1028]}]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],245:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,1,21],t:7,e:"ui-display",f:[{p:[3,2,35],t:7,e:"ui-section",a:{label:"Cap"},f:[{p:[4,3,62],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.is_capped"],s:'_0?"power-off":"close"'},p:[4,20,79]}],style:[{t:2,x:{r:["data.is_capped"],s:'_0?null:"selected"'},p:[4,71,130]}],action:"toggle_cap"},f:[{t:2,x:{r:["data.is_capped"],s:'_0?"On":"Off"'},p:[6,4,197]}]}]}]}],n:50,r:"data.has_cap",p:[1,1,0]},{p:[10,1,279],t:7,e:"ui-display",f:[{t:4,f:[{p:[14,2,406],t:7,e:"ui-section",f:[{p:[15,3,421],t:7,e:"ui-button",a:{action:"select_colour"},f:["Select New Colour"]}]}],n:50,r:"data.can_change_colour",p:[13,1,374]}]}," ",{p:[19,1,522],t:7,e:"ui-display",a:{title:"Stencil"},f:[{t:4,f:[{p:[21,2,579],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[21,21,598]}]},f:[{t:4,f:[{p:[23,7,633],t:7,e:"ui-button",a:{action:"select_stencil",params:['{"item":"',{t:2,r:"item",p:[23,59,685]},'"}'],style:[{t:2,x:{r:["item","data.selected_stencil"],s:'_0==_1?"selected":null'},p:[24,12,708]}]},f:[{t:2,r:"item",p:[25,4,767]}]}],n:52,r:"items",p:[22,3,611]}]}],n:52,r:"data.drawables",p:[20,3,553]}]}," ",{p:[31,1,844],t:7,e:"ui-display",a:{title:"Text Mode"},f:[{p:[32,2,876],t:7,e:"ui-section",a:{label:"Current Buffer"},f:[{t:2,r:"text_buffer",p:[32,37,911]}]}," ",{p:[34,2,943],t:7,e:"ui-section",f:[{p:[34,14,955],t:7,e:"ui-button",a:{action:"enter_text"},f:["New Text"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],246:[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,445],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[23,3,477],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[24,3,509],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[24,9,515]}]}]}," ",{t:4,f:[{p:[27,5,629],t:7,e:"ui-section",a:{label:"State"},f:[{p:[28,7,662],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[28,20,675]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[28,43,698]}]}]}," ",{p:[30,4,817],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[31,6,855],t:7,e:"span",a:{"class":[{t:2,x:{r:["temperatureStatus","adata.occupant.bodyTemperature"],s:"_0(_1)"},p:[31,19,868]}]},f:[{t:2,x:{r:["adata.occupant.bodyTemperature"],s:"Math.round(_0)"},p:[31,74,923]}," K"]}]}," ",{p:[33,5,1e3],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[34,7,1034],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[34,20,1047]}],max:[{t:2,r:"data.occupant.maxHealth",p:[34,54,1081]}],value:[{t:2,r:"data.occupant.health",p:[34,90,1117]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[35,16,1158]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[35,68,1210]}]}]}," ",{t:4,f:[{p:[38,7,1444],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[38,26,1463]}]},f:[{p:[39,9,1483],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[39,30,1504]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[39,66,1540]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[39,103,1577]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[37,5,1279]}],n:50,r:"data.hasOccupant",p:[26,3,600]}]}," ",{p:[44,1,1681],t:7,e:"ui-display",a:{title:"Cell"},f:[{p:[45,3,1709],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[46,5,1740],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[46,22,1757]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[47,14,1816]}],state:[{t:2,x:{r:["data.isOpen"],s:'_0?"disabled":null'},p:[48,14,1871]}],action:"power"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[49,22,1929]}]}]}," ",{p:[51,3,1995],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[52,3,2030],t:7,e:"span",a:{"class":[{t:2,x:{r:["temperatureStatus","adata.cellTemperature"],s:"_0(_1)"},p:[52,16,2043]}]},f:[{t:2,x:{r:["adata.cellTemperature"],s:"Math.round(_0)"},p:[52,62,2089]}," K"]}]}," ",{p:[54,2,2152],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[55,5,2182],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOpen"],s:'_0?"unlock":"lock"'},p:[55,22,2199]}],action:"door"},f:[{t:2,x:{r:["data.isOpen"],s:'_0?"Open":"Closed"'},p:[55,73,2250]}]}," ",{p:[56,5,2302],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoEject"],s:'_0?"sign-out":"sign-in"'},p:[56,22,2319]}],action:"autoeject"},f:[{t:2,x:{r:["data.autoEject"],s:'_0?"Auto":"Manual"'},p:[56,86,2383]}]}]}]}," ",{p:{button:[{p:[61,5,2524],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[61,36,2555]}],action:"ejectbeaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[63,3,2656],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{t:4,f:[{p:[66,9,2763],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[66,52,2806]}," units of ",{t:2,r:"name",p:[66,87,2841]}]},{p:[66,102,2856],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[65,7,2724]},{t:4,n:51,f:[{p:[68,9,2885],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[64,5,2690]},{t:4,n:51,f:[{p:[71,7,2958],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},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",f:[{p:[2,2,14],t:7,e:"ui-section",a:{label:"State"},f:[{t:4,f:[{p:[4,4,73],t:7,e:"span",a:{"class":"good"},f:["Ready"]}],n:50,r:"data.full_pressure",p:[3,3,43]},{t:4,n:51,f:[{t:4,f:[{p:[7,5,147],t:7,e:"span",a:{"class":"bad"},f:["Power Disabled"]}],n:50,r:"data.panel_open",p:[6,4,119]},{t:4,n:51,f:[{t:4,f:[{p:[10,6,239],t:7,e:"span",a:{"class":"average"},f:["Pressurizing"]}],n:50,r:"data.pressure_charging",p:[9,5,203]},{t:4,n:51,f:[{p:[12,6,299],t:7,e:"span",a:{"class":"bad"},f:["Off"]}],r:"data.pressure_charging"}],r:"data.panel_open"}],r:"data.full_pressure"}]}," ",{p:[17,2,377],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[18,3,409],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.per",p:[18,36,442]}],state:"good"},f:[{t:2,r:"data.per",p:[18,63,469]},"%"]}]}," ",{p:[20,5,511],t:7,e:"ui-section",a:{label:"Handle"},f:[{p:[21,9,547],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.flush"],s:'_0?"toggle-on":"toggle-off"'},p:[22,10,568]}],state:[{t:2,x:{r:["data.isai","data.panel_open"],s:'_0||_1?"disabled":null'},p:[23,11,625]}],action:[{t:2,x:{r:["data.flush"],s:'_0?"handle-0":"handle-1"'},p:[24,12,691]}]},f:[{t:2,x:{r:["data.flush"],s:'_0?"Disengage":"Engage"'},p:[25,5,739]}]}]}," ",{p:[27,2,811],t:7,e:"ui-section",a:{label:"Eject"},f:[{p:[28,3,840],t:7,e:"ui-button",a:{icon:"sign-out",state:[{t:2,x:{r:["data.isai"],s:'_0?"disabled":null'},p:[28,37,874]}],action:"eject"},f:["Eject Contents"]},{p:[28,114,951],t:7,e:"br"}]}," ",{p:[30,2,973],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,3,1002],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["data.panel_open"],s:'_0?"disabled":null'},p:[31,38,1037]}],action:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"pump-0":"pump-1"'},p:[31,87,1086]}],style:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"selected":null'},p:[31,145,1144]}]}},{p:[31,206,1205],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],248:[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,42],t:7,e:"ui-section",a:{label:"Human DNA"},f:[{p:[3,7,79],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.dna_max",p:[3,28,100]}],value:[{t:2,r:"data.dna",p:[3,53,125]}]},f:[{t:2,r:"data.dna",p:[3,67,139]},"/",{t:2,r:"data.dna_max",p:[3,80,152]}," Samples"]}]}," ",{p:[5,3,204],t:7,e:"ui-section",a:{label:"Plant Data"},f:[{p:[6,5,240],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.plants_max",p:[6,26,261]}],value:[{t:2,r:"data.plants",p:[6,54,289]}]},f:[{t:2,r:"data.plants",p:[6,71,306]},"/",{t:2,r:"data.plants_max",p:[6,87,322]}," Samples"]}]}," ",{p:[8,3,377],t:7,e:"ui-section",a:{label:"Animal Data"},f:[{p:[9,5,414],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.animals_max",p:[9,26,435]}],value:[{t:2,r:"data.animals",p:[9,55,464]}]},f:[{t:2,r:"data.animals",p:[9,73,482]},"/",{t:2,r:"data.animals_max",p:[9,90,499]}," Samples"]}]}]}," ",{t:4,f:[{p:[13,1,604],t:7,e:"ui-display",a:{title:"Personal Gene Therapy"},f:[{p:[14,3,650],t:7,e:"ui-section",f:[{p:[15,2,664],t:7,e:"span",f:["Applicable gene therapy treatments:"]}]}," ",{p:[17,3,731],t:7,e:"ui-section",f:[{p:[18,2,745],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceA",p:[18,47,790]},'"}']},f:[{t:2,r:"data.choiceA",p:[18,67,810]}]}," ",{p:[19,2,840],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceB",p:[19,47,885]},'"}']},f:[{t:2,r:"data.choiceB",p:[19,67,905]}]}]}]}],n:50,x:{r:["data.completed","data.used"],s:"_0&&!_1"},p:[12,1,567]}]},e.exports=a.extend(r.exports)},{205:205}],249:[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-display",a:{title:[{t:2,r:"data.question",p:[2,21,41]}]},f:[{p:[3,5,64],t:7,e:"ui-section",f:[{t:4,f:[{p:[5,9,114],t:7,e:"ui-button",a:{action:"vote",params:['{"answer": "',{t:2,r:"answer",p:[6,45,169]},'"}'],style:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[7,18,200]}]},f:[{t:2,r:"answer",p:[7,53,235]}," (",{t:2,r:"amount",p:[7,65,247]},")"]}],n:52,r:"data.answers",p:[4,7,83]}]}]}],n:50,r:"data.shaking",p:[1,1,0]},{t:4,n:51,f:[{p:[13,3,341],t:7,e:"ui-notice",f:["The eightball is not currently being shaken."]}],r:"data.shaking"}]},e.exports=a.extend(r.exports)},{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-notice",f:[{p:[2,5,16],t:7,e:"span",f:["Time Until Launch: ",{t:2,r:"data.timer_str",p:[2,30,41]}]}]}," ",{p:[4,1,80],t:7,e:"ui-notice",f:[{p:[5,3,94],t:7,e:"span",f:["Engines: ",{t:2,x:{r:["data.engines_started"],s:'_0?"Online":"Idle"'},p:[5,18,109]}]}]}," ",{p:[7,1,174],t:7,e:"ui-display",a:{title:"Early Launch"},f:[{p:[8,2,209],t:7,e:"span",f:["Authorizations Remaining: ",{t:2,x:{r:["data.emagged","data.authorizations_remaining"],s:'_0?"ERROR":_1'},p:[9,2,242]}]}," ",{p:[10,2,309],t:7,e:"ui-button",a:{icon:"exclamation-triangle",action:"authorize",style:"danger",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[12,10,393]}]},f:["AUTHORIZE"]}," ",{p:[15,2,459],t:7,e:"ui-button",a:{icon:"minus",action:"repeal",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[16,10,508]}]},f:["Repeal"]}," ",{p:[19,2,571],t:7,e:"ui-button",a:{icon:"close",action:"abort",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[20,10,619]}]},f:["Repeal All"]}]}," ",{p:[24,1,699],t:7,e:"ui-display",a:{title:"Authorizations"},f:[{t:4,f:[{p:[26,3,768],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{t:2,r:"name",p:[26,34,799]}," (",{t:2,r:"job",p:[26,44,809]},")"]}],n:52,r:"data.authorizations",p:[25,2,736]},{t:4,n:51,f:[{p:[28,3,843],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:["No authorizations."]}],r:"data.authorizations"}]}]},e.exports=a.extend(r.exports)},{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-display",f:[{p:[2,3,15],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.hidden_message",p:[3,5,48]}]}," ",{p:[5,3,90],t:7,e:"ui-section",a:{label:"Created On"},f:[{t:2,r:"data.realdate",p:[6,5,126]}]}," ",{p:[8,3,162],t:7,e:"ui-section",a:{label:"Approval"},f:[{p:[9,5,196],t:7,e:"ui-button",a:{icon:"arrow-up",state:[{t:2,x:{r:["data.is_creator","data.has_liked"],s:'_0?"disabled":_1?"selected":null'},p:[11,14,242]}],action:"like"},f:[{t:2,r:"data.num_likes",p:[12,21,333]}]}," ",{p:[13,5,368],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.is_creator","data.has_liked","data.has_disliked"],s:'_0?"disabled":!_1&&!_2?"selected":null'},p:[15,14,412]}],action:"neutral"}}," ",{p:[17,5,546],t:7,e:"ui-button",a:{icon:"arrow-down",state:[{t:2,x:{r:["data.is_creator","data.has_disliked"],s:'_0?"disabled":_1?"selected":null'},p:[19,14,594]}],action:"dislike"},f:[{t:2,r:"data.num_dislikes",p:[20,24,691]}]}]}]}," ",{t:4,f:[{p:[24,3,782],t:7,e:"ui-display",a:{title:"Admin Panel"},f:[{p:[25,5,819],t:7,e:"ui-section",a:{label:"Creator Ckey"},f:[{t:2,r:"data.creator_key",p:[25,38,852]}]}," ",{p:[26,5,890],t:7,e:"ui-section",a:{label:"Creator Character Name"},f:[{t:2,r:"data.creator_name",p:[26,48,933]}]}," ",{p:[27,5,972],t:7,e:"ui-button",a:{icon:"remove",action:"delete",style:"danger"},f:["Delete"]}]}],n:50,r:"data.admin_mode",p:[23,1,756]}]},e.exports=a.extend(r.exports)},{205:205}],252:[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,14],t:7,e:"span",f:["The requested interface (",{t:2,r:"config.interface",p:[2,34,45]},") was not found. Does it exist?"]}]}]},e.exports=a.extend(r.exports)},{205:205}],253:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"ui-display",f:[{p:[4,2,16],t:7,e:"div",a:{style:"float: left"},f:[{p:[5,3,44],t:7,e:"div",a:{"class":"item"},f:[{p:[6,4,66],t:7,e:"table",f:[{p:[6,11,73],t:7,e:"tr",f:[{t:4,f:[{p:[8,5,140],t:7,e:"td",f:[{p:[8,9,144],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[8,19,154]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[7,4,81]}," ",{t:4,f:[{p:[11,5,256],t:7,e:"td",f:[{p:[11,9,260],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[11,12,263]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[10,4,194]}," ",{t:4,f:[{p:[14,5,338],t:7,e:"td",f:[{p:[14,9,342],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[14,19,352]}]}}]}],n:50,r:"data.PC_ntneticon",p:[13,4,308]}," ",{t:4,f:[{p:[17,5,422],t:7,e:"td",f:[{p:[17,9,426],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[17,19,436]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[16,4,390]}," ",{t:4,f:[{p:[20,5,508],t:7,e:"td",f:[{p:[20,9,512],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[20,12,515]},{p:[20,35,538],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[19,4,476]}," ",{t:4,f:[{p:[23,5,593],t:7,e:"td",f:[{p:[23,9,597],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[23,19,607]}]}}]}],n:52,r:"data.PC_programheaders",p:[22,4,556]}]}]}]}]}," ",{p:[28,2,661],t:7,e:"div",a:{style:"float: right"},f:[{p:[29,3,690],t:7,e:"table",f:[{p:[29,10,697],t:7,e:"tr",f:[{p:[30,4,705],t:7,e:"td",f:[{p:[30,8,709],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[32,5,801],t:7,e:"td",f:[{p:[32,9,805],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[33,5,862],t:7,e:"td",f:[{p:[33,9,866],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[31,4,765]}]}]}]}]}," ",{p:[37,2,958],t:7,e:"div",a:{style:"clear: both"},f:[{t:4,f:[{p:[40,3,1007],t:7,e:"h2",f:["An error has occurred and this program can not continue."]}," Additional information: ",{t:2,r:"data.error",p:[41,27,1099]},{p:[41,41,1113],t:7,e:"br"}," ",{p:[42,3,1120],t:7,e:"i",f:["Please try again. If the problem persists contact your system administrator for assistance."]}," ",{p:[43,3,1221],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["Restart program"]}],n:50,r:"data.error",p:[39,2,986]},{t:4,n:51,f:[{t:4,f:[{p:[46,4,1320],t:7,e:"h2",f:["Viewing file ",{t:2,r:"data.filename",p:[46,21,1337]}]}," ",{p:[47,4,1363],t:7,e:"div",a:{"class":"item"},f:[{p:[48,4,1385],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["CLOSE"]}," ",{p:[49,4,1440],t:7,e:"ui-button",a:{action:"PRG_edit"},f:["EDIT"]}," ",{p:[50,4,1489],t:7,e:"ui-button",a:{action:"PRG_printfile"},f:["PRINT"]}," "]},{p:[51,10,1550],t:7,e:"hr"}," ",{t:3,r:"data.filedata",p:[52,4,1558]}],n:50,r:"data.filename",p:[45,3,1295]},{t:4,n:51,f:[{p:[54,4,1592],t:7,e:"h2",f:["Available files (local):"]}," ",{p:[55,4,1629],t:7,e:"table",f:[{p:[56,5,1641],t:7,e:"tr",f:[{p:[57,6,1651],t:7,e:"th",f:["File name"]}," ",{p:[58,6,1675],t:7,e:"th",f:["File type"]}," ",{p:[59,6,1699],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[60,6,1728],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[63,6,1788],t:7,e:"tr",f:[{p:[64,7,1799],t:7,e:"td",f:[{t:2,r:"name",p:[64,11,1803]}]}," ",{p:[65,7,1823],t:7,e:"td",f:[".",{t:2,r:"type",p:[65,12,1828]}]}," ",{p:[66,7,1848],t:7,e:"td",f:[{t:2,r:"size",p:[66,11,1852]},"GQ"]}," ",{p:[67,7,1874],t:7,e:"td",f:[{p:[68,8,1886],t:7,e:"ui-button",a:{action:"PRG_openfile",params:['{"name": "',{t:2,r:"name",p:[68,59,1937]},'"}']},f:["VIEW"]}," ",{p:[69,8,1973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[69,26,1991]}],action:"PRG_deletefile",params:['{"name": "',{t:2,r:"name",p:[69,105,2070]},'"}']},f:["DELETE"]}," ",{p:[70,8,2108],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[70,26,2126]}],action:"PRG_rename",params:['{"name": "',{t:2,r:"name",p:[70,101,2201]},'"}']},f:["RENAME"]}," ",{p:[71,8,2239],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[71,26,2257]}],action:"PRG_clone",params:['{"name": "',{t:2,r:"name",p:[71,100,2331]},'"}']},f:["CLONE"]}," ",{t:4,f:[{p:[73,9,2402],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[73,27,2420]}],action:"PRG_copytousb",params:['{"name": "',{t:2,r:"name",p:[73,105,2498]},'"}']},f:["EXPORT"]}],n:50,r:"data.usbconnected",p:[72,8,2368]}]}]}],n:52,r:"data.files",p:[62,5,1762]}]}," ",{t:4,f:[{p:[80,4,2625],t:7,e:"h2",f:["Available files (portable device):"]}," ",{p:[81,4,2672],t:7,e:"table",f:[{p:[82,5,2684],t:7,e:"tr",f:[{p:[83,6,2694],t:7,e:"th",f:["File name"]}," ",{p:[84,6,2718],t:7,e:"th",f:["File type"]}," ",{p:[85,6,2742],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[86,6,2771],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[89,6,2834],t:7,e:"tr",f:[{p:[90,7,2845],t:7,e:"td",f:[{t:2,r:"name",p:[90,11,2849]}]}," ",{p:[91,7,2869],t:7,e:"td",f:[".",{t:2,r:"type",p:[91,12,2874]}]}," ",{p:[92,7,2894],t:7,e:"td",f:[{t:2,r:"size",p:[92,11,2898]},"GQ"]}," ",{p:[93,7,2920],t:7,e:"td",f:[{p:[94,8,2932],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[94,26,2950]}],action:"PRG_usbdeletefile",params:['{"name": "',{t:2,r:"name",p:[94,108,3032]},'"}']},f:["DELETE"]}," ",{t:4,f:[{p:[96,9,3104],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[96,27,3122]}],action:"PRG_copyfromusb",params:['{"name": "',{t:2,r:"name",p:[96,107,3202]},'"}']},f:["IMPORT"]}],n:50,r:"data.usbconnected",p:[95,8,3070]}]}]}],n:52,r:"data.usbfiles",p:[88,5,2805]}]}],n:50,r:"data.usbconnected",p:[79,4,2596]}," ",{p:[103,4,3311],t:7,e:"ui-button",a:{action:"PRG_newtextfile"},f:["NEW DATA FILE"]}],r:"data.filename"}],r:"data.error"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],254:[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}],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",a:{title:"Controls"},f:[{p:[2,1,30],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,2,58],t:7,e:"ui-button",a:{icon:"power-off",style:[{t:2,x:{r:["data.power"],s:'_0?"selected":"danger"'},p:[3,37,93] +-}],action:"power"},f:[{t:2,x:{r:["data.power"],s:'_0?"Enabled":"Disabled"'},p:[3,92,148]}]}]}," ",{p:[5,1,214],t:7,e:"ui-section",a:{label:"Tag"},f:[{p:[6,2,240],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:[{t:2,r:"data.tag",p:[6,43,281]}]}]}," ",{p:[8,1,320],t:7,e:"ui-section",a:{label:"Scanning mode"},f:[{p:[9,2,356],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.updating"],s:'_0?"unlock":"lock"'},p:[9,18,372]}],style:[{t:2,x:{r:["data.updating"],s:'_0?null:"danger"'},p:[9,63,417]}],action:"updating",tooltip:"Toggle between automatic scanning or scan only when a button is pressed.","tooltip-side":"right"},f:[{t:2,x:{r:["data.updating"],s:'_0?"AUTO":"MANUAL"'},p:[9,221,575]}]}]}," ",{p:[11,1,639],t:7,e:"ui-section",a:{label:"Detection range"},f:[{p:[12,2,677],t:7,e:"ui-button",a:{icon:"refresh",style:[{t:2,x:{r:["data.globalmode"],s:'_0?null:"selected"'},p:[12,35,710]}],action:"globalmode",tooltip:"Local sector or whole region scanning.","tooltip-side":"right"},f:[{t:2,x:{r:["data.globalmode"],s:'_0?"MAXIMUM":"LOCAL"'},p:[12,165,840]}]}]}]}," ",{t:4,f:[{p:[16,2,942],t:7,e:"ui-display",a:{title:"Current Location"},f:[{p:[17,3,982],t:7,e:"span",f:[{t:2,r:"data.current",p:[17,9,988]}]}]}," ",{p:[20,2,1029],t:7,e:"ui-display",a:{title:"Detected Signals"},f:[{t:4,f:[{p:[22,3,1093],t:7,e:"ui-section",a:{label:[{t:2,r:"entrytag",p:[22,21,1111]}]},f:[{p:[23,3,1127],t:7,e:"span",f:[{t:2,r:"area",p:[23,9,1133]}," (",{t:2,r:"coord",p:[23,19,1143]},")"]}," ",{t:4,f:[{p:[25,4,1185],t:7,e:"span",f:["Dist: ",{t:2,r:"dist",p:[25,16,1197]},"m Dir: ",{t:2,r:"degrees",p:[25,31,1212]},"° (",{t:2,r:"direction",p:[25,45,1226]},")"]}],n:50,r:"direction",p:[24,3,1164]}]}],n:52,r:"data.signals",p:[21,2,1068]}]}],n:50,r:"data.power",p:[15,1,922]}]},e.exports=a.extend(r.exports)},{205:205}],256:[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,44],t:7,e:"ui-section",a:{label:"Teleporter Status"},f:[{p:[3,3,85],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.teleporter"],s:'_0?"good":"bad"'},p:[3,16,98]}]},f:[{t:2,x:{r:["data.teleporter"],s:'_0?"Connected":"Not connected"'},p:[3,54,136]}]}]}," ",{t:4,f:[{p:[6,4,239],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[7,5,273],t:7,e:"span",f:[{t:2,r:"data.teleporter_location",p:[7,11,279]}]}]}," ",{p:[9,4,335],t:7,e:"ui-section",a:{label:"Locked status"},f:[{p:[10,5,374],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"lock":"unlock"'},p:[10,22,391]}],action:"teleporter_lock"},f:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"Locked":"Unlocked"'},p:[10,93,462]}]}," ",{p:[11,5,527],t:7,e:"ui-button",a:{action:"toggle_open"},f:[{t:2,x:{r:["data.teleporter_state_open"],s:'_0?"Open":"Closed"'},p:[11,37,559]}]}]}],n:50,r:"data.teleporter",p:[5,3,212]},{t:4,n:51,f:[{p:[14,4,653],t:7,e:"span",f:[{p:[14,10,659],t:7,e:"ui-button",a:{action:"scan_teleporter"},f:["Scan Teleporter"]}]}],r:"data.teleporter"}]}," ",{p:[17,1,754],t:7,e:"ui-display",a:{title:"Labor Camp Beacon"},f:[{p:[18,2,794],t:7,e:"ui-section",a:{label:"Beacon Status"},f:[{p:[19,3,831],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.beacon"],s:'_0?"good":"bad"'},p:[19,16,844]}]},f:[{t:2,x:{r:["data.beacon"],s:'_0?"Connected":"Not connected"'},p:[19,50,878]}]}]}," ",{t:4,f:[{p:[22,3,971],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[23,4,1004],t:7,e:"span",f:[{t:2,r:"data.beacon_location",p:[23,10,1010]}]}]}],n:50,r:"data.beacon",p:[21,2,949]},{t:4,n:51,f:[{p:[26,4,1072],t:7,e:"span",f:[{p:[26,10,1078],t:7,e:"ui-button",a:{action:"scan_beacon"},f:["Scan Beacon"]}]}],r:"data.beacon"}]}," ",{p:[29,1,1165],t:7,e:"ui-display",a:{title:"Prisoner details"},f:[{p:[30,2,1204],t:7,e:"ui-section",a:{label:"Prisoner ID"},f:[{p:[31,3,1239],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[31,33,1269]}]}]}," ",{t:4,f:[{p:[34,2,1359],t:7,e:"ui-section",a:{label:"Set ID goal"},f:[{p:[35,4,1395],t:7,e:"ui-button",a:{action:"set_goal"},f:[{t:2,r:"data.goal",p:[35,33,1424]}]}]}],n:50,r:"data.id",p:[33,2,1342]}," ",{p:[38,2,1475],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[39,3,1507],t:7,e:"span",f:[{t:2,x:{r:["data.prisoner.name"],s:'_0?_0:"No Occupant"'},p:[39,9,1513]}]}]}," ",{t:4,f:[{p:[42,3,1620],t:7,e:"ui-section",a:{label:"Criminal Status"},f:[{p:[43,4,1660],t:7,e:"span",f:[{t:2,r:"data.prisoner.crimstat",p:[43,10,1666]}]}]}],n:50,r:"data.prisoner",p:[41,2,1596]}]}," ",{p:[47,1,1739],t:7,e:"ui-display",f:[{p:[48,2,1753],t:7,e:"center",f:[{p:[48,10,1761],t:7,e:"ui-button",a:{action:"teleport",state:[{t:2,x:{r:["data.can_teleport"],s:'_0?null:"disabled"'},p:[48,45,1796]}]},f:["Process Prisoner"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],257:[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,14],t:7,e:"center",f:[{p:[2,10,22],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[2,40,52]}]}]}]}," ",{p:[4,1,132],t:7,e:"ui-display",a:{title:"Stored Items"},f:[{t:4,f:[{p:[6,3,189],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[6,22,208]}]},f:[{p:[7,4,222],t:7,e:"ui-button",a:{action:"release_items",params:['{"mobref":',{t:2,r:"mob",p:[7,56,274]},"}"],state:[{t:2,x:{r:["data.can_reclaim"],s:'_0?null:"disabled"'},p:[7,72,290]}]},f:["Drop Items"]}]}],n:52,r:"data.mobs",p:[5,2,167]}]}]},e.exports=a.extend(r.exports)},{205:205}],258:[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:{style:"float: left"},f:[{p:[2,2,27],t:7,e:"div",a:{"class":"item"},f:[{p:[3,3,48],t:7,e:"table",f:[{p:[3,10,55],t:7,e:"tr",f:[{t:4,f:[{p:[5,4,120],t:7,e:"td",f:[{p:[5,8,124],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[5,18,134]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[4,3,62]}," ",{t:4,f:[{p:[8,4,233],t:7,e:"td",f:[{p:[8,8,237],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[8,11,240]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[7,3,172]}," ",{t:4,f:[{p:[11,4,312],t:7,e:"td",f:[{p:[11,8,316],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[11,18,326]}]}}]}],n:50,r:"data.PC_ntneticon",p:[10,3,283]}," ",{t:4,f:[{p:[14,4,393],t:7,e:"td",f:[{p:[14,8,397],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[14,18,407]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[13,3,362]}," ",{t:4,f:[{p:[17,4,476],t:7,e:"td",f:[{p:[17,8,480],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[17,11,483]},{p:[17,34,506],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[16,3,445]}," ",{t:4,f:[{p:[20,4,558],t:7,e:"td",f:[{p:[20,8,562],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[20,18,572]}]}}]}],n:52,r:"data.PC_programheaders",p:[19,3,522]}]}]}]}]}," ",{p:[25,1,621],t:7,e:"div",a:{style:"float: right"},f:[{p:[26,2,649],t:7,e:"table",f:[{p:[26,9,656],t:7,e:"tr",f:[{p:[27,3,663],t:7,e:"td",f:[{p:[27,7,667],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[29,4,757],t:7,e:"td",f:[{p:[29,8,761],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[30,4,817],t:7,e:"td",f:[{p:[30,8,821],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[28,3,722]}]}]}]}]}," ",{p:[34,1,909],t:7,e:"div",a:{style:"clear: both"},f:[{t:4,f:[{p:[37,1,962],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:[37,80,1041]}]},f:["Access Modification"]}],n:50,r:"data.have_id_slot",p:[36,1,936]},{p:[39,1,1122],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:[39,90,1211]}]},f:["Job Management"]}," ",{p:[40,1,1279],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:[40,92,1370]}]},f:["Crew Manifest"]}," ",{t:4,f:[{p:[42,1,1459],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:[42,51,1509]}]},f:["Print"]}],n:50,r:"data.have_printer",p:[41,1,1433]},{t:4,f:[{p:[46,1,1628],t:7,e:"div",a:{"class":"item"},f:[{p:[47,3,1649],t:7,e:"h2",f:["Crew Manifest"]}," ",{p:[48,3,1674],t:7,e:"br"},"Please use security record computer to modify entries.",{p:[48,61,1732],t:7,e:"br"},{p:[48,65,1736],t:7,e:"br"}]}," ",{t:4,f:[{p:[51,2,1773],t:7,e:"div",a:{"class":"item"},f:[{t:2,r:"name",p:[52,2,1793]}," - ",{t:2,r:"rank",p:[52,13,1804]}]}],n:52,r:"data.manifest",p:[50,1,1748]}],n:50,x:{r:["data.mmode"],s:"!_0"},p:[45,1,1608]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.mmode"],s:"_0==2"},f:[{p:[57,1,1859],t:7,e:"div",a:{"class":"item"},f:[{p:[58,3,1880],t:7,e:"h2",f:["Job Management"]}]}," ",{p:[60,1,1911],t:7,e:"table",f:[{p:[61,1,1919],t:7,e:"tr",f:[{p:[61,5,1923],t:7,e:"td",a:{style:"width:25%"},f:[{p:[61,27,1945],t:7,e:"b",f:["Job"]}]},{p:[61,42,1960],t:7,e:"td",a:{style:"width:25%"},f:[{p:[61,64,1982],t:7,e:"b",f:["Slots"]}]},{p:[61,81,1999],t:7,e:"td",a:{style:"width:25%"},f:[{p:[61,103,2021],t:7,e:"b",f:["Open job"]}]},{p:[61,123,2041],t:7,e:"td",a:{style:"width:25%"},f:[{p:[61,145,2063],t:7,e:"b",f:["Close job"]}]}]}," ",{t:4,f:[{p:[64,2,2113],t:7,e:"tr",f:[{p:[64,6,2117],t:7,e:"td",f:[{t:2,r:"title",p:[64,10,2121]}]},{p:[64,24,2135],t:7,e:"td",f:[{t:2,r:"current",p:[64,28,2139]},"/",{t:2,r:"total",p:[64,40,2151]}]},{p:[64,54,2165],t:7,e:"td",f:[{p:[64,58,2169],t:7,e:"ui-button",a:{action:"PRG_open_job",params:['{"target" : "',{t:2,r:"title",p:[64,112,2223]},'"}'],state:[{t:2,x:{r:["status_open"],s:'_0?null:"disabled"'},p:[64,132,2243]}]},f:[{t:2,r:"desc_open",p:[64,169,2280]}]},{p:[64,194,2305],t:7,e:"br"}]},{p:[64,203,2314],t:7,e:"td",f:[{p:[64,207,2318],t:7,e:"ui-button",a:{action:"PRG_close_job",params:['{"target" : "',{t:2,r:"title",p:[64,262,2373]},'"}'],state:[{t:2,x:{r:["status_close"],s:'_0?null:"disabled"'},p:[64,282,2393]}]},f:[{t:2,r:"desc_close",p:[64,320,2431]}]}]}]}],n:52,r:"data.slots",p:[62,1,2090]}]}]},{t:4,n:50,x:{r:["data.mmode"],s:"!(_0==2)"},f:[" ",{p:[72,1,2501],t:7,e:"div",a:{"class":"item"},f:[{p:[73,3,2522],t:7,e:"h2",f:["Access Modification"]}]}," ",{t:4,f:[{p:[77,3,2582],t:7,e:"span",a:{"class":"alert"},f:[{p:[77,23,2602],t:7,e:"i",f:["Please insert the ID into the terminal to proceed."]}]},{p:[77,87,2666],t:7,e:"br"}],n:50,x:{r:["data.has_id"],s:"!_0"},p:[76,1,2559]},{p:[80,1,2680],t:7,e:"div",a:{"class":"item"},f:[{p:[81,3,2701],t:7,e:"div",a:{"class":"itemLabel"},f:["Target Identity:"]}," ",{p:[84,3,2754],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[85,2,2781],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "id"}'},f:[{t:2,r:"data.id_name",p:[85,72,2851]}]}]}]}," ",{p:[88,1,2896],t:7,e:"div",a:{"class":"item"},f:[{p:[89,3,2917],t:7,e:"div",a:{"class":"itemLabel"},f:["Auth Identity:"]}," ",{p:[92,3,2968],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[93,2,2995],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "auth"}'},f:[{t:2,r:"data.auth_name",p:[93,74,3067]}]}]}]}," ",{p:[96,1,3114],t:7,e:"hr"}," ",{t:4,f:[{t:4,f:[{p:[100,2,3170],t:7,e:"div",a:{"class":"item"},f:[{p:[101,4,3192],t:7,e:"h2",f:["Details"]}]}," ",{t:4,f:[{p:[105,2,3239],t:7,e:"div",a:{"class":"item"},f:[{p:[106,4,3261],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[109,4,3317],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_owner",p:[110,3,3345]}]}]}," ",{p:[113,2,3382],t:7,e:"div",a:{"class":"item"},f:[{p:[114,4,3404],t:7,e:"div",a:{"class":"itemLabel"},f:["Rank:"]}," ",{p:[117,4,3449],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_rank",p:[118,3,3477]}]}]}," ",{p:[121,2,3513],t:7,e:"div",a:{"class":"item"},f:[{p:[122,4,3535],t:7,e:"div",a:{"class":"itemLabel"},f:["Demote:"]}," ",{p:[125,4,3582],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[126,3,3610],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:[126,56,3663]}]},f:["Demote ",{t:2,r:"data.id_owner",p:[126,117,3724]}]}]}]}],n:50,r:"data.minor",p:[104,2,3219]},{t:4,n:51,f:[{p:[131,2,3784],t:7,e:"div",a:{"class":"item"},f:[{p:[132,4,3806],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[135,4,3862],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[136,3,3890],t:7,e:"ui-button",a:{action:"PRG_edit",icon:"pencil",params:'{"name" : "1"}'},f:[{t:2,r:"data.id_owner",p:[136,70,3957]}]}]}]}," ",{p:[140,2,4007],t:7,e:"div",a:{"class":"item"},f:[{p:[141,4,4029],t:7,e:"h2",f:["Assignment"]}]}," ",{p:[143,3,4059],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:[143,47,4103]}]}," ",{p:[144,2,4179],t:7,e:"div",a:{"class":"item"},f:[{p:[145,4,4201],t:7,e:"span",a:{id:"allvalue.jobsslot"},f:[]}]}," ",{p:[149,2,4254],t:7,e:"div",a:{"class":"item"},f:[{t:4,f:[{p:[151,4,4304],t:7,e:"div",a:{id:"all-value.jobs"},f:[{p:[152,3,4332],t:7,e:"table",f:[{p:[153,5,4344],t:7,e:"tr",f:[{p:[154,4,4352],t:7,e:"th"},{p:[154,13,4361],t:7,e:"th",f:["Command"]}]}," ",{p:[156,5,4392],t:7,e:"tr",f:[{p:[157,4,4400],t:7,e:"th",f:["Special"]}," ",{p:[158,4,4420],t:7,e:"td",f:[{p:[159,6,4430],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:[159,83,4507]}]},f:["Captain"]}," ",{p:[160,6,4583],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Custom"}'},f:["Custom"]}]}]}," ",{p:[163,5,4694],t:7,e:"tr",f:[{p:[164,4,4702],t:7,e:"th",a:{style:"color: '#FFA500';"},f:["Engineering"]}," ",{p:[165,4,4752],t:7,e:"td",f:[{t:4,f:[{p:[167,5,4798],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[167,64,4857]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[167,82,4875]}]},f:[{t:2,r:"display_name",p:[167,127,4920]}]}],n:52,r:"data.engineering_jobs",p:[166,6,4762]}]}]}," ",{p:[171,5,4987],t:7,e:"tr",f:[{p:[172,4,4995],t:7,e:"th",a:{style:"color: '#008000';"},f:["Medical"]}," ",{p:[173,4,5041],t:7,e:"td",f:[{t:4,f:[{p:[175,5,5083],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[175,64,5142]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[175,82,5160]}]},f:[{t:2,r:"display_name",p:[175,127,5205]}]}],n:52,r:"data.medical_jobs",p:[174,6,5051]}]}]}," ",{p:[179,5,5272],t:7,e:"tr",f:[{p:[180,4,5280],t:7,e:"th",a:{style:"color: '#800080';"},f:["Science"]}," ",{p:[181,4,5326],t:7,e:"td",f:[{t:4,f:[{p:[183,5,5368],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[183,64,5427]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[183,82,5445]}]},f:[{t:2,r:"display_name",p:[183,127,5490]}]}],n:52,r:"data.science_jobs",p:[182,6,5336]}]}]}," ",{p:[187,5,5557],t:7,e:"tr",f:[{p:[188,4,5565],t:7,e:"th",a:{style:"color: '#DD0000';"},f:["Security"]}," ",{p:[189,4,5612],t:7,e:"td",f:[{t:4,f:[{p:[191,5,5655],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[191,64,5714]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[191,82,5732]}]},f:[{t:2,r:"display_name",p:[191,127,5777]}]}],n:52,r:"data.security_jobs",p:[190,6,5622]}]}]}," ",{p:[195,5,5844],t:7,e:"tr",f:[{p:[196,4,5852],t:7,e:"th",a:{style:"color: '#cc6600';"},f:["Cargo"]}," ",{p:[197,4,5896],t:7,e:"td",f:[{t:4,f:[{p:[199,5,5936],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[199,64,5995]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[199,82,6013]}]},f:[{t:2,r:"display_name",p:[199,127,6058]}]}],n:52,r:"data.cargo_jobs",p:[198,6,5906]}]}]}," ",{p:[203,5,6125],t:7,e:"tr",f:[{p:[204,4,6133],t:7,e:"th",a:{style:"color: '#808080';"},f:["Civilian"]}," ",{p:[205,4,6180],t:7,e:"td",f:[{t:4,f:[{p:[207,5,6223],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[207,64,6282]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[207,82,6300]}]},f:[{t:2,r:"display_name",p:[207,127,6345]}]}],n:52,r:"data.civilian_jobs",p:[206,6,6190]}]}]}," ",{t:4,f:[{p:[212,4,6443],t:7,e:"tr",f:[{p:[213,6,6453],t:7,e:"th",a:{style:"color: '#A52A2A';"},f:["CentCom"]}," ",{p:[214,6,6501],t:7,e:"td",f:[{t:4,f:[{p:[217,7,6545],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[217,66,6604]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[217,84,6622]}]},f:[{t:2,r:"display_name",p:[217,129,6667]}]}],n:52,r:"data.centcom_jobs",p:[215,5,6510]}]}]}],n:50,r:"data.centcom_access",p:[211,5,6412]}]}]}],n:50,r:"data.assignments",p:[150,4,4276]}]}],r:"data.minor"}," ",{t:4,f:[{p:[229,4,6824],t:7,e:"div",a:{"class":"item"},f:[{p:[230,3,6845],t:7,e:"h2",f:["Central Command"]}]}," ",{p:[232,4,6883],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[234,5,6962],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[235,5,6996],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[235,64,7055]},'", "allowed" : "',{t:2,r:"allowed",p:[235,87,7078]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[235,109,7100]}]},f:[{t:2,r:"desc",p:[235,140,7131]}]}]}],n:52,r:"data.all_centcom_access",p:[233,3,6924]}]}],n:50,r:"data.centcom_access",p:[228,2,6793]},{t:4,n:51,f:[{p:[240,4,7198],t:7,e:"div",a:{"class":"item"},f:[{p:[241,3,7219],t:7,e:"h2",f:[{t:2,r:"data.station_name",p:[241,7,7223]}]}]}," ",{p:[243,4,7263],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[245,5,7331],t:7,e:"div",a:{style:"float: left; width: 175px; min-height: 250px"},f:[{p:[246,4,7393],t:7,e:"div",a:{"class":"average"},f:[{p:[246,25,7414],t:7,e:"ui-button",a:{action:"PRG_regsel",state:[{t:2,x:{r:["selected"],s:'_0?"toggle":null'},p:[246,63,7452]}],params:['{"region" : "',{t:2,r:"regid",p:[246,116,7505]},'"}']},f:[{p:[246,129,7518],t:7,e:"b",f:[{t:2,r:"name",p:[246,132,7521]}]}]}]}," ",{p:[247,4,7555],t:7,e:"br"}," ",{t:4,f:[{p:[249,6,7589],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[250,5,7623],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[250,64,7682]},'", "allowed" : "',{t:2,r:"allowed",p:[250,87,7705]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[250,109,7727]}]},f:[{t:2,r:"desc",p:[250,140,7758]}]}]}],n:52,r:"accesses",p:[248,6,7565]}]}],n:52,r:"data.regions",p:[244,3,7304]}]}],r:"data.centcom_access"}],n:50,r:"data.has_id",p:[99,3,3149]}],n:50,r:"data.authenticated",p:[98,1,3120]}]}],x:{r:["data.mmode"],s:"!_0"}}]}]},e.exports=a.extend(r.exports)},{205:205}],259:[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,266],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[16,3,298],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[17,3,330],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[17,9,336]}]}]}," ",{t:4,f:[{p:[20,5,447],t:7,e:"ui-section",a:{label:"State"},f:[{p:[21,7,480],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[21,20,493]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[21,43,516]}]}]}],n:50,r:"data.occupied",p:[19,3,421]}]}," ",{p:[25,1,656],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[26,2,687],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[27,5,717],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[27,22,734]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[27,71,783]}]}]}," ",{p:[29,3,846],t:7,e:"ui-section",a:{label:"Uses"},f:[{t:2,r:"data.ready_implants",p:[30,5,876]}," ",{t:4,f:[{p:[32,7,938],t:7,e:"span",a:{"class":"fa fa-cog fa-spin"}}],n:50,r:"data.replenishing",p:[31,5,906]}]}," ",{p:[35,3,1002],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[36,7,1038],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.occupied","data.ready_implants","data.ready"],s:'_0&&_1>0&&_2?null:"disabled"'},p:[36,25,1056]}],action:"implant"},f:[{t:2,x:{r:["data.ready","data.special_name"],s:'_0?(_1?_1:"Implant"):"Recharging"'},p:[37,9,1162]}," "]},{p:[38,19,1265],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],260:[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,282],t:7,e:"ui-notice",f:[{p:[16,5,298],t:7,e:"span",f:["Wipe in progress!"]}]}],n:50,r:"data.wiping",p:[14,1,260]},{p:{button:[{t:4,f:[{p:[22,7,458],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.isDead"],s:'_0?"disabled":null'},p:[22,38,489]}],action:"wipe"},f:[{t:2,x:{r:["data.wiping"],s:'_0?"Stop Wiping":"Wipe"'},p:[22,89,540]}," AI"]}],n:50,r:"data.name",p:[21,5,434]}]},t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.name"],s:'_0||"Empty Card"'},p:[19,19,370]}],button:0},f:[" ",{t:4,f:[{p:[26,5,647],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[27,9,683],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"bad":"good"'},p:[27,22,696]}]},f:[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"Offline":"Operational"'},p:[27,76,750]}]}]}," ",{p:[29,5,843],t:7,e:"ui-section",a:{label:"Software Integrity"},f:[{p:[30,7,889],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[30,40,922]}],state:[{t:2,r:"healthState",p:[30,64,946]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[30,81,963]},"%"]}]}," ",{p:[32,5,1024],t:7,e:"ui-section",a:{label:"Laws"},f:[{t:4,f:[{p:[34,9,1084],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[34,33,1108]}]},{p:[34,45,1120],t:7,e:"br"}],n:52,r:"data.laws",p:[33,7,1056]}]}," ",{p:[37,5,1164],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[38,7,1200],t:7,e:"ui-button",a:{icon:"signal",style:[{t:2,x:{r:["data.wireless"],s:'_0?"selected":null'},p:[38,39,1232]}],action:"wireless"},f:["Wireless Activity"]}," ",{p:[39,7,1325],t:7,e:"ui-button",a:{icon:"microphone",style:[{t:2,x:{r:["data.radio"],s:'_0?"selected":null'},p:[39,43,1361]}],action:"radio"},f:["Subspace Radio"]}]}],n:50,r:"data.name",p:[25,3,625]}]}]},e.exports=a.extend(r.exports)},{205:205}],261:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,22],t:7,e:"ui-notice",f:[{p:[3,3,36],t:7,e:"span",f:["Waiting for another device to confirm your request..."]}]}],n:50,r:"data.waiting",p:[1,1,0]},{t:4,n:51,f:[{p:[6,2,127],t:7,e:"ui-display",f:[{p:[7,3,142],t:7,e:"ui-section",f:[{t:4,f:[{p:[9,5,189],t:7,e:"ui-button",a:{icon:"check",action:"auth_swipe"},f:["Authorize ",{t:2,r:"data.auth_required",p:[9,59,243]}]}],n:50,r:"data.auth_required",p:[8,4,158]},{t:4,n:51,f:[{p:[11,5,294],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.red_alert"],s:'_0?"disabled":null'},p:[11,38,327]}],action:"red_alert"},f:["Red Alert"]}," ",{p:[12,5,412],t:7,e:"ui-button",a:{icon:"wrench",state:[{t:2,x:{r:["data.emergency_maint"],s:'_0?"disabled":null'},p:[12,37,444]}],action:"emergency_maint"},f:["Emergency Maintenance Access"]}],r:"data.auth_required"}]}]}],r:"data.waiting"}]},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:"Ore values"},f:[{t:4,f:[{p:[3,3,55],t:7,e:"ui-section",a:{label:[{t:2,r:"ore",p:[3,22,74]}]},f:[{p:[4,4,87],t:7,e:"span",f:[{t:2,r:"value",p:[4,10,93]}]}]}],n:52,r:"data.ores",p:[2,2,33]}]}," ",{p:[8,1,151],t:7,e:"ui-display",a:{title:"Points"},f:[{p:[9,2,180],t:7,e:"ui-section",a:{label:"ID"},f:[{p:[10,3,206],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[10,33,236]}]}]}," ",{t:4,f:[{p:[13,3,327],t:7,e:"ui-section",a:{label:"Points collected"},f:[{p:[14,4,368],t:7,e:"span",f:[{t:2,r:"data.points",p:[14,10,374]}]}]}," ",{p:[16,3,415],t:7,e:"ui-section",a:{label:"Goal"},f:[{p:[17,4,444],t:7,e:"span",f:[{t:2,r:"data.goal",p:[17,10,450]}]}]}," ",{p:[19,3,489],t:7,e:"ui-section",a:{label:"Unclaimed points"},f:[{p:[20,4,530],t:7,e:"span",f:[{t:2,r:"data.unclaimed_points",p:[20,10,536]}]}," ",{p:[21,4,572],t:7,e:"ui-button",a:{action:"claim_points",state:[{t:2,x:{r:["data.unclaimed_points"],s:'_0?null:"disabled"'},p:[21,43,611]}]},f:["Claim points"]}]}],n:50,r:"data.id",p:[12,2,309]}]}," ",{p:[25,1,721],t:7,e:"ui-display",f:[{p:[26,2,735],t:7,e:"center",f:[{p:[27,3,746],t:7,e:"ui-button",a:{action:"move_shuttle",state:[{t:2,x:{r:["data.can_go_home"],s:'_0?null:"disabled"'},p:[27,42,785]}]},f:["Move shuttle"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],263:[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,68],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[3,23,86]}]},f:[{p:[4,7,102],t:7,e:"span",f:[{t:2,r:"desc",p:[4,13,108]}]}," ",{p:[5,7,130],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[5,19,142]}]}," ",{p:[6,7,163],t:7,e:"span",f:[{t:2,x:{r:["can_speak"],s:'_0?"Can Speak":"Cannot Speak"'},p:[6,13,169]}]}," ",{t:4,f:[{p:[8,9,258],t:7,e:"ui-button",a:{action:"select_default",params:['{"language_name":"',{t:2,r:"name",p:[10,37,339]},'"}'],style:[{t:2,x:{r:["is_default","can_speak"],s:'_0?"selected":_1?null:"disabled"'},p:[11,18,368]}]},f:[{t:2,x:{r:["is_default"],s:'_0?"Default Language":"Select as Default"'},p:[12,10,438]}]}],n:50,r:"data.is_living",p:[7,7,227]}," ",{t:4,f:[{p:[16,9,567],t:7,e:"ui-button",a:{action:"remove_language",params:['{"language_name":"',{t:2,r:"name",p:[18,37,649]},'"}']},f:["Remove"]}],n:50,r:"data.admin_mode",p:[15,7,535]}]}],n:52,r:"data.languages",p:[2,3,39]}]}," ",{t:4,f:[{t:4,f:[{p:[27,5,809],t:7,e:"ui-button",a:{action:"toggle_omnitongue",style:[{t:2,x:{r:["data.omnitongue"],s:'_0?"selected":null'},p:[29,14,866]}]},f:["Omnitongue ",{t:2,x:{r:["data.omnitongue"],s:'_0?"Enabled":"Disabled"'},p:[30,19,925]}]}],n:50,r:"data.is_living",p:[26,3,782]}," ",{p:[33,3,1001],t:7,e:"ui-display",a:{title:"Unknown Languages"},f:[{t:4,f:[{p:[35,7,1083],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[35,25,1101]}]},f:[{p:[36,9,1119],t:7,e:"span",f:[{t:2,r:"desc",p:[36,15,1125]}]}," ",{p:[37,9,1149],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[37,21,1161]}]}," ",{p:[38,9,1184],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[40,37,1265]},'"}']},f:["Grant"]}]}],n:52,r:"data.unknown_languages",p:[34,5,1044]}]}],n:50,r:"data.admin_mode",p:[25,1,756]}]},e.exports=a.extend(r.exports)},{205:205}],264:[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,252],t:7,e:"div",a:{style:"float: left"},f:[{p:[16,2,279],t:7,e:"div",a:{"class":"item"},f:[{p:[17,3,300],t:7,e:"table",f:[{p:[17,10,307],t:7,e:"tr",f:[{t:4,f:[{p:[19,4,372],t:7,e:"td",f:[{p:[19,8,376],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[19,18,386]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[18,3,314]}," ",{t:4,f:[{p:[22,4,485],t:7,e:"td",f:[{p:[22,8,489],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[22,11,492]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[21,3,424]}," ",{t:4,f:[{p:[25,4,564],t:7,e:"td",f:[{p:[25,8,568],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[25,18,578]}]}}]}],n:50,r:"data.PC_ntneticon",p:[24,3,535]}," ",{t:4,f:[{p:[28,4,645],t:7,e:"td",f:[{p:[28,8,649],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[28,18,659]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[27,3,614]}," ",{t:4,f:[{p:[31,4,728],t:7,e:"td",f:[{p:[31,8,732],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[31,11,735]},{p:[31,34,758],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[30,3,697]}," ",{t:4,f:[{p:[34,4,810],t:7,e:"td",f:[{p:[34,8,814],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[34,18,824]}]}}]}],n:52,r:"data.PC_programheaders",p:[33,3,774]}]}]}]}]}," ",{p:[39,1,873],t:7,e:"div",a:{style:"float: right"},f:[{p:[40,2,901],t:7,e:"table",f:[{p:[40,9,908],t:7,e:"tr",f:[{p:[41,3,915],t:7,e:"td",f:[{p:[41,7,919],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[43,4,1009],t:7,e:"td",f:[{p:[43,8,1013],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[44,4,1069],t:7,e:"td",f:[{p:[44,8,1073],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[42,3,974]}]}]}]}]}," ",{p:[48,1,1161],t:7,e:"div",a:{style:"clear: both"},f:[{p:[49,1,1187],t:7,e:"ui-display",f:[{p:[50,2,1201],t:7,e:"i",f:["Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device."]},{p:[50,137,1336],t:7,e:"hr"}," ",{p:[51,2,1342],t:7,e:"ui-display",a:{title:"Power Supply"},f:[{t:4,f:[{p:[53,4,1402],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Active"]}," ",{p:[56,4,1470],t:7,e:"ui-section",a:{label:"Battery Rating"},f:[{t:2,r:"data.battery.max",p:[57,5,1510]}]}," ",{p:[59,4,1551],t:7,e:"ui-section",a:{label:"Battery Charge"},f:[{p:[60,5,1591],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.battery.max",p:[60,26,1612]}],value:[{t:2,r:"adata.battery.charge",p:[60,56,1642]}],state:[{t:2,x:{r:["chargeState","adata.battery.charge"],s:"_0(_1)"},p:[60,89,1675]}]},f:[{t:2,x:{r:["adata.battery.charge"],s:"Math.round(_0)"},p:[60,128,1714]},"/",{t:2,r:"adata.battery.max",p:[60,165,1751]}]}]}],n:50,r:"data.battery",p:[52,3,1378]},{t:4,n:51,f:[{p:[63,4,1813],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Not Available"]}],r:"data.battery"}," ",{p:[68,3,1897],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"data.power_usage",p:[69,4,1933]},"W"]}]}," ",{p:[73,2,1989],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[74,3,2024],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[75,4,2062],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[75,25,2083]}],value:[{t:2,r:"adata.disk_used",p:[75,53,2111]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[75,87,2145]},"GQ/",{t:2,r:"adata.disk_size",p:[75,121,2179]},"GQ"]}]}]}," ",{p:[79,2,2244],t:7,e:"ui-display",a:{title:"Computer Components"},f:[{t:4,f:[{p:[82,4,2315],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[82,26,2337]}]},f:[{p:[84,5,2353],t:7,e:"i",f:[{t:2,r:"desc",p:[84,8,2356]}]},{p:[84,20,2368],t:7,e:"br"}," ",{p:[85,5,2377],t:7,e:"ui-section",a:{label:"State"},f:[{t:2,x:{r:["enabled"],s:'_0?"Enabled":"Disabled"'},p:[88,6,2415]}]}," ",{p:[91,5,2478],t:7,e:"ui-section",a:{Label:"Power Usage"},f:[{t:2,r:"powerusage",p:[92,6,2516]},"W"]}," ",{t:4,f:[{p:[95,6,2577],t:7,e:"ui-section",a:{label:"Toggle Component"},f:[{p:[96,7,2621],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["enabled"],s:'_0?"power-off":"close"'},p:[96,24,2638]}],action:"PC_toggle_component",params:['{"name": "',{t:2,r:"name",p:[96,108,2722]},'"}']},f:[{t:2,x:{r:["enabled"],s:'_0?"On":"Off"'},p:[97,8,2742]}]}]}],n:50,x:{r:["critical"],s:"!_0"},p:[94,5,2554]}," ",{p:[101,4,2822],t:7,e:"br"},{p:[101,8,2826],t:7,e:"br"}]}],n:52,r:"data.hardware",p:[81,3,2288]}]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],265:[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,526],t:7,e:"ui-display", +-a:{title:"Mech Status"},f:[{t:4,f:[{t:4,f:[{p:[23,4,624],t:7,e:"ui-section",a:{label:"Integrity"},f:[{p:[24,6,660],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,27,681]}],value:[{t:2,r:"adata.recharge_port.mech.health",p:[24,74,728]}],state:[{t:2,x:{r:["mechHealthState","adata.recharge_port.mech.health"],s:"_0(_1)"},p:[24,117,771]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.health"],s:"Math.round(_0)"},p:[24,171,825]},"/",{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,219,873]}]}]}," ",{t:4,f:[{t:4,f:[{p:[28,5,1034],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[28,31,1060],t:7,e:"span",a:{"class":"bad"},f:["Cell Critical Failure"]}]}],n:50,r:"data.recharge_port.mech.cell.critfail",p:[27,3,984]},{t:4,n:51,f:[{p:[30,11,1141],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,13,1180],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.cell.maxcharge",p:[31,34,1201]}],value:[{t:2,r:"adata.recharge_port.mech.cell.charge",p:[31,86,1253]}],state:[{t:2,x:{r:["mechChargeState","adata.recharge_port.mech.cell.charge"],s:"_0(_1)"},p:[31,134,1301]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.cell.charge"],s:"Math.round(_0)"},p:[31,193,1360]},"/",{t:2,x:{r:["adata.recharge_port.mech.cell.maxcharge"],s:"Math.round(_0)"},p:[31,246,1413]}]}]}],r:"data.recharge_port.mech.cell.critfail"}],n:50,r:"data.recharge_port.mech.cell",p:[26,4,945]},{t:4,n:51,f:[{p:[35,3,1524],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[35,29,1550],t:7,e:"span",a:{"class":"bad"},f:["Cell Missing"]}]}],r:"data.recharge_port.mech.cell"}],n:50,r:"data.recharge_port.mech",p:[22,2,589]},{t:4,n:51,f:[{p:[38,4,1625],t:7,e:"ui-section",f:["Mech Not Found"]}],r:"data.recharge_port.mech"}],n:50,r:"data.recharge_port",p:[21,3,561]},{t:4,n:51,f:[{p:[41,5,1689],t:7,e:"ui-section",f:["Recharging Port Not Found"]}," ",{p:[42,2,1741],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}],r:"data.recharge_port"}]}]},e.exports=a.extend(r.exports)},{205:205}],266:[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}],267:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[36,1,936],t:7,e:"ui-display",f:[{t:4,f:[{p:[38,3,975],t:7,e:"h1",f:["ADMINISTRATIVE MODE"]}],n:50,r:"data.adminmode",p:[37,2,950]}," ",{t:4,f:[{p:[42,3,1036],t:7,e:"div",a:{"class":"itemLabel"},f:["Current channel:"]}," ",{p:[45,3,1092],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.title",p:[46,4,1121]}]}," ",{p:[48,3,1147],t:7,e:"div",a:{"class":"itemLabel"},f:["Operator access:"]}," ",{p:[51,3,1203],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:[{p:[53,5,1261],t:7,e:"b",f:["Enabled"]}],n:50,r:"data.is_operator",p:[52,4,1232]},{t:4,n:51,f:[{p:[55,5,1292],t:7,e:"b",f:["Disabled"]}],r:"data.is_operator"}]}," ",{p:[58,3,1330],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[61,3,1379],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[62,4,1408],t:7,e:"table",f:[{p:[63,5,1420],t:7,e:"tr",f:[{p:[63,9,1424],t:7,e:"td",f:[{p:[63,13,1428],t:7,e:"ui-button",a:{action:"PRG_speak"},f:["Send message"]}]}]},{p:[64,5,1487],t:7,e:"tr",f:[{p:[64,9,1491],t:7,e:"td",f:[{p:[64,13,1495],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[65,5,1562],t:7,e:"tr",f:[{p:[65,9,1566],t:7,e:"td",f:[{p:[65,13,1570],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]},{p:[66,5,1649],t:7,e:"tr",f:[{p:[66,9,1653],t:7,e:"td",f:[{p:[66,13,1657],t:7,e:"ui-button",a:{action:"PRG_leavechannel"},f:["Leave channel"]}]}]},{p:[67,5,1724],t:7,e:"tr",f:[{p:[67,9,1728],t:7,e:"td",f:[{p:[67,13,1732],t:7,e:"ui-button",a:{action:"PRG_savelog"},f:["Save log to local drive"]}," ",{t:4,f:[{p:[69,6,1834],t:7,e:"tr",f:[{p:[69,10,1838],t:7,e:"td",f:[{p:[69,14,1842],t:7,e:"ui-button",a:{action:"PRG_renamechannel"},f:["Rename channel"]}]}]},{p:[70,6,1912],t:7,e:"tr",f:[{p:[70,10,1916],t:7,e:"td",f:[{p:[70,14,1920],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}]}]},{p:[71,6,1986],t:7,e:"tr",f:[{p:[71,10,1990],t:7,e:"td",f:[{p:[71,14,1994],t:7,e:"ui-button",a:{action:"PRG_deletechannel"},f:["Delete channel"]}]}]}],n:50,r:"data.is_operator",p:[68,5,1804]}]}]}]}]}," ",{p:[75,3,2096],t:7,e:"b",f:["Chat Window"]}," ",{p:[76,4,2118],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[77,4,2173],t:7,e:"div",a:{"class":"item"},f:[{p:[78,5,2196],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"msg",p:[80,7,2278]},{p:[80,14,2285],t:7,e:"br"}],n:52,r:"data.messages",p:[79,6,2248]}]}]}]}," ",{p:[85,3,2339],t:7,e:"b",f:["Connected Users"]},{p:[85,25,2361],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"name",p:[87,4,2394]},{p:[87,12,2402],t:7,e:"br"}],n:52,r:"data.clients",p:[86,3,2368]}],n:50,r:"data.title",p:[41,2,1015]},{t:4,n:51,f:[{p:[90,3,2431],t:7,e:"b",f:["Controls:"]}," ",{p:[91,3,2450],t:7,e:"table",f:[{p:[92,4,2461],t:7,e:"tr",f:[{p:[92,8,2465],t:7,e:"td",f:[{p:[92,12,2469],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[93,4,2535],t:7,e:"tr",f:[{p:[93,8,2539],t:7,e:"td",f:[{p:[93,12,2543],t:7,e:"ui-button",a:{action:"PRG_newchannel"},f:["New Channel"]}]}]},{p:[94,4,2605],t:7,e:"tr",f:[{p:[94,8,2609],t:7,e:"td",f:[{p:[94,12,2613],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]}]}," ",{p:[96,3,2701],t:7,e:"b",f:["Available channels:"]}," ",{p:[97,3,2730],t:7,e:"table",f:[{t:4,f:[{p:[99,4,2773],t:7,e:"tr",f:[{p:[99,8,2777],t:7,e:"td",f:[{p:[99,12,2781],t:7,e:"ui-button",a:{action:"PRG_joinchannel",params:['{"id": "',{t:2,r:"id",p:[99,64,2833]},'"}']},f:[{t:2,r:"chan",p:[99,74,2843]}]},{p:[99,94,2863],t:7,e:"br"}]}]}],n:52,r:"data.all_channels",p:[98,3,2740]}]}],r:"data.title"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],268:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[36,1,936],t:7,e:"ui-display",f:[{t:4,f:["##SYSTEM ERROR: ",{t:2,r:"data.error",p:[38,19,987]},{p:[38,33,1001],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["RESET"]}],n:50,r:"data.error",p:[37,2,950]},{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:[40,39,1111]},"GQ/s",{p:[40,57,1129],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"nums",p:[42,4,1166]},{p:[42,12,1174],t:7,e:"br"}],n:52,r:"data.dos_strings",p:[41,3,1136]}," ",{p:[44,3,1193],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:[46,55,1305],t:7,e:"br"}," ",{t:4,f:["Targeted device ID: ",{t:2,r:"data.focus",p:[48,24,1354]}],n:50,r:"data.focus",p:[47,3,1312]},{t:4,n:51,f:["Targeted device ID: None"],r:"data.focus"}," ",{p:[52,3,1420],t:7,e:"ui-button",a:{action:"PRG_execute"},f:["EXECUTE"]},{p:[52,54,1471],t:7,e:"div",a:{style:"clear:both"}}," Detected devices on network:",{p:[53,31,1532],t:7,e:"br"}," ",{t:4,f:[{p:[55,4,1564],t:7,e:"ui-button",a:{action:"PRG_target_relay",params:['{"targid": "',{t:2,r:"id",p:[55,61,1621]},'"}']},f:[{t:2,r:"id",p:[55,71,1631]}]}],n:52,r:"data.relays",p:[54,3,1539]}]}],r:"data.error"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],269:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[37,1,937],t:7,e:"ui-display",f:[{p:[38,2,951],t:7,e:"i",f:["Welcome to software download utility. Please select which software you wish to download."]},{p:[38,97,1046],t:7,e:"hr"}," ",{t:4,f:[{p:[40,3,1073],t:7,e:"ui-display",a:{title:"Download Error"},f:[{p:[41,4,1112],t:7,e:"ui-section",a:{label:"Information"},f:[{t:2,r:"data.error",p:[42,5,1149]}]}," ",{p:[44,4,1184],t:7,e:"ui-section",a:{label:"Reset Program"},f:[{p:[45,5,1223],t:7,e:"ui-button",a:{icon:"times",action:"PRG_reseterror"},f:["RESET"]}]}]}],n:50,r:"data.error",p:[39,2,1052]},{t:4,n:51,f:[{t:4,f:[{p:[52,4,1374],t:7,e:"ui-display",a:{title:"Download Running"},f:[{p:[53,5,1416],t:7,e:"i",f:["Please wait..."]}," ",{p:[54,5,1442],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"data.downloadname",p:[55,6,1478]}]}," ",{p:[57,5,1522],t:7,e:"ui-section",a:{label:"File description"},f:[{t:2,r:"data.downloaddesc",p:[58,6,1565]}]}," ",{p:[60,5,1609],t:7,e:"ui-section",a:{label:"File size"},f:[{t:2,r:"data.downloadcompletion",p:[61,6,1645]},"GQ / ",{t:2,r:"data.downloadsize",p:[61,38,1677]},"GQ"]}," ",{p:[63,5,1723],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{t:2,r:"data.downloadspeed",p:[64,6,1763]}," GQ/s"]}," ",{p:[66,5,1813],t:7,e:"ui-section",a:{label:"Download progress"},f:[{p:[67,6,1857],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.downloadsize",p:[67,27,1878]}],value:[{t:2,r:"adata.downloadcompletion",p:[67,58,1909]}],state:"good"},f:[{t:2,x:{r:["adata.downloadcompletion"],s:"Math.round(_0)"},p:[67,101,1952]},"/",{t:2,r:"adata.downloadsize",p:[67,142,1993]}]}]}]}],n:50,r:"data.downloadname",p:[51,3,1345]}],r:"data.error"}," ",{t:4,f:[{t:4,f:[{p:[74,4,2132],t:7,e:"ui-display",a:{title:"Primary software repository"},f:[{p:[75,5,2185],t:7,e:"ui-section",a:{label:"Hard drive"},f:[{p:[76,6,2222],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[76,27,2243]}],value:[{t:2,r:"adata.disk_used",p:[76,55,2271]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[76,89,2305]},"GQ/",{t:2,r:"adata.disk_size",p:[76,123,2339]},"GQ"]}]}," ",{t:4,f:[{p:[79,6,2434],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[80,7,2471]}," (",{t:2,r:"size",p:[80,21,2485]}," GQ)"]}," ",{p:[82,6,2522],t:7,e:"ui-section",a:{label:"Program name"},f:[{t:2,r:"filedesc",p:[83,7,2562]}]}," ",{p:[85,6,2600],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"fileinfo",p:[86,7,2639]}]}," ",{p:[88,6,2676],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[89,7,2717]}]}," ",{p:[91,6,2759],t:7,e:"ui-section",a:{label:"File controls"},f:[{p:[92,7,2800],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[92,80,2873]},'"}']},f:["DOWNLOAD"]}]}],n:52,r:"data.downloadable_programs",p:[78,5,2392]}]}," ",{t:4,f:[{p:[99,5,3011],t:7,e:"ui-display",a:{title:"UNKNOWN software repository"},f:[{p:[100,6,3065],t:7,e:"i",f:["Please note that NanoTrasen does not recommend download of software from non-official servers."]}," ",{t:4,f:[{p:[102,7,3209],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[103,8,3247]}," (",{t:2,r:"size",p:[103,22,3261]}," GQ)"]}," ",{p:[105,7,3300],t:7,e:"ui-section",a:{label:"Program name"},f:[{t:2,r:"filedesc",p:[106,8,3341]}]}," ",{p:[108,7,3381],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"fileinfo",p:[109,8,3421]}]}," ",{p:[111,7,3460],t:7,e:"ui-section",a:{label:"File controls"},f:[{p:[112,8,3502],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[112,81,3575]},'"}']},f:["DOWNLOAD"]}]}],n:52,r:"data.hacked_programs",p:[101,6,3172]}]}],n:50,r:"data.hackedavailable",p:[98,4,2978]}],n:50,x:{r:["data.error"],s:"!_0"},p:[73,3,2109]}],n:50,x:{r:["data.downloadname"],s:"!_0"},p:[72,2,2080]}," ",{p:[121,2,3714],t:7,e:"br"},{p:[121,6,3718],t:7,e:"br"},{p:[121,10,3722],t:7,e:"hr"},{p:[121,14,3726],t:7,e:"i",f:["NTOS v2.0.4b Copyright NanoTrasen 2557 - 2559"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],270:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[3,1,2],t:7,e:"ui-display",f:[{p:[4,2,16],t:7,e:"div",a:{style:"float: left"},f:[{p:[5,3,44],t:7,e:"div",a:{"class":"item"},f:[{p:[6,4,66],t:7,e:"table",f:[{p:[6,11,73],t:7,e:"tr",f:[{t:4,f:[{p:[8,5,140],t:7,e:"td",f:[{p:[8,9,144],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[8,19,154]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[7,4,81]}," ",{t:4,f:[{p:[11,5,256],t:7,e:"td",f:[{p:[11,9,260],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[11,12,263]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[10,4,194]}," ",{t:4,f:[{p:[14,5,338],t:7,e:"td",f:[{p:[14,9,342],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[14,19,352]}]}}]}],n:50,r:"data.PC_ntneticon",p:[13,4,308]}," ",{t:4,f:[{p:[17,5,422],t:7,e:"td",f:[{p:[17,9,426],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[17,19,436]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[16,4,390]}," ",{t:4,f:[{p:[20,5,508],t:7,e:"td",f:[{p:[20,9,512],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[20,12,515]},{p:[20,35,538],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[19,4,476]}," ",{t:4,f:[{p:[23,5,593],t:7,e:"td",f:[{p:[23,9,597],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[23,19,607]}]}}]}],n:52,r:"data.PC_programheaders",p:[22,4,556]}]}]}]}]}," ",{p:[28,2,661],t:7,e:"div",a:{style:"float: right"},f:[{p:[29,3,690],t:7,e:"table",f:[{p:[29,10,697],t:7,e:"tr",f:[{p:[30,4,705],t:7,e:"td",f:[{p:[30,8,709],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[32,5,801],t:7,e:"td",f:[{p:[32,9,805],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[33,5,862],t:7,e:"td",f:[{p:[33,9,866],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[31,4,765]}]}]}]}]}," ",{p:[37,2,958],t:7,e:"div",a:{style:"clear: both"},f:[{p:[39,2,986],t:7,e:"ui-display",a:{title:"WIRELESS CONNECTIVITY"},f:[{p:[41,3,1032],t:7,e:"ui-section",a:{label:"Active NTNetRelays"},f:[{p:[42,4,1075],t:7,e:"b",f:[{t:2,r:"data.ntnetrelays",p:[42,7,1078]}]}]}," ",{t:4,f:[{p:[45,4,1149],t:7,e:"ui-section",a:{label:"System status"},f:[{p:[46,6,1189],t:7,e:"b",f:[{t:2,x:{r:["data.ntnetstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[46,9,1192]}]}]}," ",{p:[48,4,1262],t:7,e:"ui-section",a:{label:"Control"},f:[{p:[50,4,1295],t:7,e:"ui-button",a:{icon:"plus",action:"toggleWireless"},f:["TOGGLE"]}]}," ",{p:[54,4,1390],t:7,e:"br"},{p:[54,8,1394],t:7,e:"br"}," ",{p:[55,4,1402],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:[44,3,1121]},{t:4,n:51,f:[{p:[57,4,1537],t:7,e:"br"},{p:[57,8,1541],t:7,e:"p",f:["Wireless coverage unavailable, no relays are connected."]}],r:"data.ntnetrelays"}]}," ",{p:[62,2,1632],t:7,e:"ui-display",a:{title:"FIREWALL CONFIGURATION"},f:[{p:[64,2,1678],t:7,e:"table",f:[{p:[65,3,1688],t:7,e:"tr",f:[{p:[66,4,1696],t:7,e:"th",f:["PROTOCOL"]},{p:[67,4,1712],t:7,e:"th",f:["STATUS"]},{p:[68,4,1726],t:7,e:"th",f:["CONTROL"]}]},{p:[69,3,1740],t:7,e:"tr",f:[" ",{p:[70,4,1748],t:7,e:"td",f:["Software Downloads"]},{p:[71,4,1774],t:7,e:"td",f:[{t:2,x:{r:["data.config_softwaredownload"],s:'_0?"ENABLED":"DISABLED"'},p:[71,8,1778]}]},{p:[72,4,1839],t:7,e:"td",f:[" ",{p:[72,9,1844],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "1"}'},f:["TOGGLE"]}]}]},{p:[73,3,1922],t:7,e:"tr",f:[" ",{p:[74,4,1930],t:7,e:"td",f:["Peer to Peer Traffic"]},{p:[75,4,1958],t:7,e:"td",f:[{t:2,x:{r:["data.config_peertopeer"],s:'_0?"ENABLED":"DISABLED"'},p:[75,8,1962]}]},{p:[76,4,2017],t:7,e:"td",f:[{p:[76,8,2021],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "2"}'},f:["TOGGLE"]}]}]},{p:[77,3,2099],t:7,e:"tr",f:[" ",{p:[78,4,2107],t:7,e:"td",f:["Communication Systems"]},{p:[79,4,2136],t:7,e:"td",f:[{t:2,x:{r:["data.config_communication"],s:'_0?"ENABLED":"DISABLED"'},p:[79,8,2140]}]},{p:[80,4,2198],t:7,e:"td",f:[{p:[80,8,2202],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "3"}'},f:["TOGGLE"]}]}]},{p:[81,3,2280],t:7,e:"tr",f:[" ",{p:[82,4,2288],t:7,e:"td",f:["Remote System Control"]},{p:[83,4,2317],t:7,e:"td",f:[{t:2,x:{r:["data.config_systemcontrol"],s:'_0?"ENABLED":"DISABLED"'},p:[83,8,2321]}]},{p:[84,4,2379],t:7,e:"td",f:[{p:[84,8,2383],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "4"}'},f:["TOGGLE"]}]}]}]}]}," ",{p:[88,2,2486],t:7,e:"ui-display",a:{title:"SECURITY SYSTEMS"},f:[{t:4,f:[{p:[91,4,2552],t:7,e:"ui-notice",f:[{p:[92,5,2568],t:7,e:"h1",f:["NETWORK INCURSION DETECTED"]}]}," ",{p:[94,5,2624],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:[90,3,2527]}," ",{p:[97,3,2749],t:7,e:"ui-section",a:{label:"Intrusion Detection System"},f:[{p:[98,4,2800],t:7,e:"b",f:[{t:2,x:{r:["data.idsstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[98,7,2803]}]}]}," ",{p:[101,3,2872],t:7,e:"ui-section",a:{label:"Maximal Log Count"},f:[{p:[102,4,2914],t:7,e:"b",f:[{t:2,r:"data.ntnetmaxlogs",p:[102,7,2917]}]}]}," ",{p:[105,3,2964],t:7,e:"ui-section",a:{label:"Controls"},f:[]}," ",{p:[107,4,3013],t:7,e:"table",f:[{p:[108,4,3024],t:7,e:"tr",f:[{p:[108,8,3028],t:7,e:"td",f:[{p:[108,12,3032],t:7,e:"ui-button",a:{action:"resetIDS"},f:["RESET IDS"]}]}]},{p:[109,4,3086],t:7,e:"tr",f:[{p:[109,8,3090],t:7,e:"td",f:[{p:[109,12,3094],t:7,e:"ui-button",a:{action:"toggleIDS"},f:["TOGGLE IDS"]}]}]},{p:[110,4,3150],t:7,e:"tr",f:[{p:[110,8,3154],t:7,e:"td",f:[{p:[110,12,3158],t:7,e:"ui-button",a:{action:"updatemaxlogs"},f:["SET LOG LIMIT"]}]}]},{p:[111,4,3221],t:7,e:"tr",f:[{p:[111,8,3225],t:7,e:"td",f:[{p:[111,12,3229],t:7,e:"ui-button",a:{action:"purgelogs"},f:["PURGE LOGS"]}]}]}]}," ",{p:[114,3,3297],t:7,e:"ui-subdisplay",a:{title:"System Logs"},f:[{p:[115,3,3335],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[116,3,3389],t:7,e:"div",a:{"class":"item"},f:[{p:[117,4,3411],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"entry",p:[119,6,3492]},{p:[119,15,3501],t:7,e:"br"}],n:52,r:"data.ntnetlogs",p:[118,5,3462]}]}]}]}]}]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],271:[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,55],t:7,e:"h2",f:["NETWORK BUFFERS OVERLOADED"]}," ",{p:[4,3,93],t:7,e:"h3",f:["Overload Recovery Mode"]}," ",{p:[5,3,127],t:7,e:"i",f:["This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."]}," ",{p:[6,3,479],t:7,e:"h3",f:["ADMINISTRATIVE OVERRIDE"]}," ",{p:[7,3,514],t:7,e:"b",f:["CAUTION - Data loss may occur"]}," ",{p:[8,3,555],t:7,e:"ui-button",a:{icon:"signal",action:"restart"},f:["Purge buffered traffic"]}],n:50,r:"data.dos_crashed",p:[2,2,28]},{t:4,n:51,f:[{p:[12,3,652],t:7,e:"ui-section",a:{label:"Relay status"},f:[{p:[13,4,689],t:7,e:"ui-button",a:{icon:"power-off",action:"toggle"},f:[{t:2,x:{r:["data.enabled"],s:'_0?"ENABLED":"DISABLED"'},p:[14,6,739]}]}]}," ",{p:[18,3,819],t:7,e:"ui-section",a:{label:"Network buffer status"},f:[{t:2,r:"data.dos_overload",p:[19,4,865]}," / ",{t:2,r:"data.dos_capacity",p:[19,28,889]}," GQ"]}],r:"data.dos_crashed"}]}]},e.exports=a.extend(r.exports)},{205:205}],272:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"ui-display",f:[{p:[4,2,16],t:7,e:"div",a:{style:"float: left"},f:[{p:[5,3,44],t:7,e:"div",a:{"class":"item"},f:[{p:[6,4,66],t:7,e:"table",f:[{p:[6,11,73],t:7,e:"tr",f:[{t:4,f:[{p:[8,5,140],t:7,e:"td",f:[{p:[8,9,144],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[8,19,154]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[7,4,81]}," ",{t:4,f:[{p:[11,5,256],t:7,e:"td",f:[{p:[11,9,260],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[11,12,263]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[10,4,194]}," ",{t:4,f:[{p:[14,5,338],t:7,e:"td",f:[{p:[14,9,342],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[14,19,352]}]}}]}],n:50,r:"data.PC_ntneticon",p:[13,4,308]}," ",{t:4,f:[{p:[17,5,422],t:7,e:"td",f:[{p:[17,9,426],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[17,19,436]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[16,4,390]}," ",{t:4,f:[{p:[20,5,508],t:7,e:"td",f:[{p:[20,9,512],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[20,12,515]},{p:[20,35,538],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[19,4,476]}," ",{t:4,f:[{p:[23,5,593],t:7,e:"td",f:[{p:[23,9,597],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[23,19,607]}]}}]}],n:52,r:"data.PC_programheaders",p:[22,4,556]}]}]}]}]}," ",{p:[28,2,661],t:7,e:"div",a:{style:"float: right"},f:[{p:[29,3,690],t:7,e:"table",f:[{p:[29,10,697],t:7,e:"tr",f:[{p:[30,4,705],t:7,e:"td",f:[{p:[30,8,709],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[32,5,801],t:7,e:"td",f:[{p:[32,9,805],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[33,5,862],t:7,e:"td",f:[{p:[33,9,866],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[31,4,765]}]}]}]}]}," ",{p:[37,2,958],t:7,e:"div",a:{style:"clear: both"},f:[{t:4,f:[{p:[40,2,1006],t:7,e:"div",a:{"class":"item"},f:[{p:[41,3,1027],t:7,e:"h2",f:["An error has occurred during operation..."]}," ",{p:[42,3,1080],t:7,e:"b",f:["Additional information:"]},{t:2,r:"data.error",p:[42,34,1111]},{p:[42,48,1125],t:7,e:"br"}," ",{p:[43,3,1132],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Clear"]}]}],n:50,r:"data.error",p:[39,2,986]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.downloading"],s:"_0"},f:[{p:[46,3,1219],t:7,e:"h2",f:["Download in progress..."]}," ",{p:[47,3,1254],t:7,e:"div",a:{"class":"itemLabel"},f:["Downloaded file:"]}," ",{p:[50,3,1310],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_name",p:[51,4,1339]}]}," ",{p:[53,3,1374],t:7,e:"div",a:{"class":"itemLabel"},f:["Download progress:"]}," ",{p:[56,3,1432],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_progress",p:[57,4,1461]}," / ",{t:2,r:"data.download_size",p:[57,33,1490]}," GQ"]}," ",{p:[59,3,1527],t:7,e:"div",a:{"class":"itemLabel"},f:["Transfer speed:"]}," ",{p:[62,3,1582],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_netspeed",p:[63,4,1611]},"GQ/s"]}," ",{p:[65,3,1653],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[68,3,1702],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[69,4,1731],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:[72,3,1826],t:7,e:"h2",f:["Server enabled"]}," ",{p:[73,3,1852],t:7,e:"div",a:{"class":"itemLabel"},f:["Connected clients:"]}," ",{p:[76,3,1910],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_clients",p:[77,4,1939]}]}," ",{p:[79,3,1974],t:7,e:"div",a:{"class":"itemLabel"},f:["Provided file:"]}," ",{p:[82,3,2028],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_filename", +-p:[83,4,2057]}]}," ",{p:[85,3,2093],t:7,e:"div",a:{"class":"itemLabel"},f:["Server password:"]}," ",{p:[88,3,2149],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ENABLED"],n:50,r:"data.upload_haspassword",p:[89,4,2178]},{t:4,n:51,f:["DISABLED"],r:"data.upload_haspassword"}]}," ",{p:[95,3,2269],t:7,e:"div",a:{"class":"itemLabel"},f:["Commands:"]}," ",{p:[98,3,2318],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[99,4,2347],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[100,4,2411],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:[103,3,2509],t:7,e:"h2",f:["File transfer server ready. Select file to upload:"]}," ",{p:[104,3,2572],t:7,e:"table",f:[{p:[105,3,2582],t:7,e:"tr",f:[{p:[105,7,2586],t:7,e:"th",f:["File name"]},{p:[105,20,2599],t:7,e:"th",f:["File size"]},{p:[105,33,2612],t:7,e:"th",f:["Controls ",{t:4,f:[{p:[107,4,2661],t:7,e:"tr",f:[{p:[107,8,2665],t:7,e:"td",f:[{t:2,r:"filename",p:[107,12,2669]}]},{p:[108,4,2685],t:7,e:"td",f:[{t:2,r:"size",p:[108,8,2689]},"GQ"]},{p:[109,4,2703],t:7,e:"td",f:[{p:[109,8,2707],t:7,e:"ui-button",a:{action:"PRG_uploadfile",params:['{"id": "',{t:2,r:"uid",p:[109,59,2758]},'"}']},f:["Select"]}]}]}],n:52,r:"data.upload_filelist",p:[106,3,2627]}]}]}]}," ",{p:[112,3,2813],t:7,e:"hr"}," ",{p:[113,3,2820],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[114,3,2883],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:[116,3,2944],t:7,e:"h2",f:["Available files:"]}," ",{p:[117,3,2972],t:7,e:"table",a:{border:"1",style:"border-collapse: collapse"},f:[{p:[117,55,3024],t:7,e:"tr",f:[{p:[117,59,3028],t:7,e:"th",f:["Server UID"]},{p:[117,73,3042],t:7,e:"th",f:["File Name"]},{p:[117,86,3055],t:7,e:"th",f:["File Size"]},{p:[117,99,3068],t:7,e:"th",f:["Password Protection"]},{p:[117,122,3091],t:7,e:"th",f:["Operations ",{t:4,f:[{p:[119,5,3136],t:7,e:"tr",f:[{p:[119,9,3140],t:7,e:"td",f:[{t:2,r:"uid",p:[119,13,3144]}]},{p:[120,5,3156],t:7,e:"td",f:[{t:2,r:"filename",p:[120,9,3160]}]},{p:[121,5,3177],t:7,e:"td",f:[{t:2,r:"size",p:[121,9,3181]},"GQ ",{t:4,f:[{p:[123,6,3221],t:7,e:"td",f:["Enabled"]}],n:50,r:"haspassword",p:[122,5,3196]}," ",{t:4,f:[{p:[126,6,3275],t:7,e:"td",f:["Disabled"]}],n:50,x:{r:["haspassword"],s:"!_0"},p:[125,5,3249]}]},{p:[129,5,3309],t:7,e:"td",f:[{p:[129,9,3313],t:7,e:"ui-button",a:{action:"PRG_downloadfile",params:['{"id": "',{t:2,r:"uid",p:[129,62,3366]},'"}']},f:["Download"]}]}]}],n:52,r:"data.servers",p:[118,4,3109]}]}]}]}," ",{p:[132,3,3424],t:7,e:"hr"}," ",{p:[133,3,3431],t:7,e:"ui-button",a:{action:"PRG_uploadmenu"},f:["Send file"]}]}],r:"data.error"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],273:[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,67],t:7,e:"ui-button",a:{icon:"eject",style:"selected",action:"eject_disk"},f:["++++++++++"]}],n:50,r:"data.disk_present",p:[2,3,35]},{t:4,n:51,f:[{p:[5,7,168],t:7,e:"ui-button",a:{icon:"plus",action:"insert_disk"},f:["----------"]}],r:"data.disk_present"}]}," ",{p:[8,1,259],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[9,3,289],t:7,e:"span",f:[{t:2,r:"data.status1",p:[9,9,295]},"-",{t:2,r:"data.status2",p:[9,26,312]}]}]}," ",{p:[11,1,350],t:7,e:"ui-display",a:{title:"Timer"},f:[{p:[12,3,379],t:7,e:"ui-section",a:{label:"Time to Detonation"},f:[{p:[13,5,423],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[13,11,429]}]}]}," ",{t:4,f:[{p:[16,5,525],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[17,7,565],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_default"],s:'_0&&_1&&_2?null:"disabled"'},p:[17,40,598]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[19,7,768],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_min"],s:'_0&&_1&&_2?null:"disabled"'},p:[19,38,799]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[21,7,971],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[21,39,1003]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[22,7,1134],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_max"],s:'_0&&_1&&_2?null:"disabled"'},p:[22,37,1164]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[15,3,504]}," ",{p:[26,3,1369],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[27,5,1400],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[27,38,1433]}],action:"toggle_timer",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.safety"],s:'_0&&_1&&!_2?null:"disabled"'},p:[29,14,1514]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[30,7,1602]}]}]}]}," ",{p:[34,1,1680],t:7,e:"ui-display",a:{title:"Anchoring"},f:[{p:[35,3,1713],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[36,12,1735]}],icon:[{t:2,x:{r:["data.anchored"],s:'_0?"lock":"unlock"'},p:[37,11,1810]}],style:[{t:2,x:{r:["data.anchored"],s:'_0?null:"caution"'},p:[38,12,1860]}],action:"anchor"},f:[{t:2,x:{r:["data.anchored"],s:'_0?"Engaged":"Off"'},p:[39,21,1918]}]}]}," ",{p:[41,1,1982],t:7,e:"ui-display",a:{title:"Safety"},f:[{p:[42,3,2012],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[43,12,2034]}],icon:[{t:2,x:{r:["data.safety"],s:'_0?"lock":"unlock"'},p:[44,11,2109]}],action:"safety",style:[{t:2,x:{r:["data.safety"],s:'_0?"caution":"danger"'},p:[45,12,2173]}]},f:[{p:[46,7,2220],t:7,e:"span",f:[{t:2,x:{r:["data.safety"],s:'_0?"On":"Off"'},p:[46,13,2226]}]}]}]}," ",{p:[49,1,2293],t:7,e:"ui-display",a:{title:"Code"},f:[{p:[50,3,2321],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.message",p:[50,31,2349]}]}," ",{p:[51,3,2381],t:7,e:"ui-section",a:{label:"Keypad"},f:[{p:[52,5,2413],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[52,39,2447]}],params:'{"digit":"1"}'},f:["1"]}," ",{p:[53,5,2531],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[53,39,2565]}],params:'{"digit":"2"}'},f:["2"]}," ",{p:[54,5,2649],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[54,39,2683]}],params:'{"digit":"3"}'},f:["3"]}," ",{p:[55,5,2767],t:7,e:"br"}," ",{p:[56,5,2776],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[56,39,2810]}],params:'{"digit":"4"}'},f:["4"]}," ",{p:[57,5,2894],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[57,39,2928]}],params:'{"digit":"5"}'},f:["5"]}," ",{p:[58,5,3012],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[58,39,3046]}],params:'{"digit":"6"}'},f:["6"]}," ",{p:[59,5,3130],t:7,e:"br"}," ",{p:[60,5,3139],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[60,39,3173]}],params:'{"digit":"7"}'},f:["7"]}," ",{p:[61,5,3257],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[61,39,3291]}],params:'{"digit":"8"}'},f:["8"]}," ",{p:[62,5,3375],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[62,39,3409]}],params:'{"digit":"9"}'},f:["9"]}," ",{p:[63,5,3493],t:7,e:"br"}," ",{p:[64,5,3502],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[64,39,3536]}],params:'{"digit":"R"}'},f:["R"]}," ",{p:[65,5,3620],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[65,39,3654]}],params:'{"digit":"0"}'},f:["0"]}," ",{p:[66,5,3738],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[66,39,3772]}],params:'{"digit":"E"}'},f:["E"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],274:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(305);e.exports={data:{filter:"",tooltiptext:function(t,e,n){var a="";return t&&(a+="REQUIREMENTS: "+t+" "),e&&(a+="CATALYSTS: "+e+" "),n&&(a+="TOOLS: "+n),a}},oninit:function(){var t=this;this.on({hover:function(t){this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}}),this.observe("filter",function(e,a,r){var i=null;i=t.get("data.display_compact")?t.findAll(".section"):t.findAll(".display:not(:first-child)"),(0,n.filterMulti)(i,t.get("filter").toLowerCase())},{init:!1})}}}(r),r.exports.template={v:3,t:[" ",{p:[48,1,1295],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[48,20,1314]}]},f:[{t:4,f:[{p:[50,3,1355],t:7,e:"ui-section",f:["Crafting... ",{p:[51,16,1383],t:7,e:"i",a:{"class":"fa-spin fa fa-spinner"}}]}],n:50,r:"data.busy",p:[49,2,1335]},{t:4,n:51,f:[{p:[54,3,1449],t:7,e:"ui-section",f:[{p:[55,4,1465],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[56,5,1520]}]}," ",{p:[58,4,1557],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[59,5,1612]}]}," ",{t:4,f:[{p:[62,5,1689],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[61,4,1649]},{t:4,n:51,f:[{p:[66,5,1801],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}," ",{p:[70,4,1907],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[70,21,1924]}],action:"toggle_compact"},f:["Compact"]}," ",{t:4,f:[{t:4,f:[" ",{p:[75,6,2152],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[75,23,2169]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[74,5,2063]}],n:50,r:"config.fancy",p:[73,4,2038]}]}," ",{t:4,f:[{p:[80,5,2299],t:7,e:"ui-display",f:[{t:4,f:[{p:[82,6,2346],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[82,25,2365]}]},f:[{p:[83,7,2382],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[83,27,2402]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[83,135,2510]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[81,5,2316]}," ",{t:4,f:[{t:4,f:[{p:[90,7,2712],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[90,26,2731]}]},f:[{p:[91,8,2749],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[91,28,2769]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[89,6,2680]}],n:51,r:"data.display_craftable_only",p:[88,5,2642]}]}],n:50,r:"data.display_compact",p:[79,4,2266]},{t:4,n:51,f:[{t:4,f:[{p:[100,6,3082],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[100,25,3101]}]},f:[{t:4,f:[{p:[102,8,3142],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[103,9,3184]}]}],n:50,r:"req_text",p:[101,7,3118]}," ",{t:4,f:[{p:[107,8,3267],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[108,9,3306]}]}],n:50,r:"catalyst_text",p:[106,7,3238]}," ",{t:4,f:[{p:[112,8,3390],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[113,9,3425]}]}],n:50,r:"tool_text",p:[111,7,3365]}," ",{p:[116,7,3480],t:7,e:"ui-section",f:[{p:[117,8,3500],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[117,66,3558]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[99,5,3052]}," ",{t:4,f:[{t:4,f:[{p:[125,7,3731],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[125,26,3750]}]},f:[{t:4,f:[{p:[127,9,3793],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[128,10,3836]}]}],n:50,r:"req_text",p:[126,8,3768]}," ",{t:4,f:[{p:[132,9,3923],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[133,10,3963]}]}],n:50,r:"catalyst_text",p:[131,8,3893]}," ",{t:4,f:[{p:[137,9,4051],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[138,10,4087]}]}],n:50,r:"tool_text",p:[136,8,4025]}]}],n:52,r:"data.cant_craft",p:[124,6,3699]}],n:51,r:"data.display_craftable_only",p:[123,5,3661]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{205:205,305:305}],275:[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}],276:[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}],277:[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}],278:[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,994],t:7,e:"div",a:{style:"float: left"},f:[{p:[43,2,1021],t:7,e:"div",a:{"class":"item"},f:[{p:[44,3,1042],t:7,e:"table",f:[{p:[44,10,1049],t:7,e:"tr",f:[{t:4,f:[{p:[46,4,1114],t:7,e:"td",f:[{p:[46,8,1118],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[46,18,1128]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[45,3,1056]}," ",{t:4,f:[{p:[49,4,1227],t:7,e:"td",f:[{p:[49,8,1231],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[49,11,1234]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[48,3,1166]}," ",{t:4,f:[{p:[52,4,1306],t:7,e:"td",f:[{p:[52,8,1310],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[52,18,1320]}]}}]}],n:50,r:"data.PC_ntneticon",p:[51,3,1277]}," ",{t:4,f:[{p:[55,4,1387],t:7,e:"td",f:[{p:[55,8,1391],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[55,18,1401]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[54,3,1356]}," ",{t:4,f:[{p:[58,4,1470],t:7,e:"td",f:[{p:[58,8,1474],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[58,11,1477]},{p:[58,34,1500],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[57,3,1439]}," ",{t:4,f:[{p:[61,4,1552],t:7,e:"td",f:[{p:[61,8,1556],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[61,18,1566]}]}}]}],n:52,r:"data.PC_programheaders",p:[60,3,1516]}]}]}]}]}," ",{p:[66,1,1615],t:7,e:"div",a:{style:"float: right"},f:[{p:[67,2,1643],t:7,e:"table",f:[{p:[67,9,1650],t:7,e:"tr",f:[{p:[68,3,1657],t:7,e:"td",f:[{p:[68,7,1661],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[70,4,1751],t:7,e:"td",f:[{p:[70,8,1755],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[71,4,1811],t:7,e:"td",f:[{p:[71,8,1815],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[69,3,1716]}]}]}]}]}," ",{p:[75,1,1903],t:7,e:"div",a:{style:"clear: both"},f:[{p:[77,1,1930],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[79,5,1986],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[79,27,2008]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[81,38,2158]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[82,15,2213]}],yinc:"9"}}],n:50,r:"config.fancy",p:[78,3,1961]},{t:4,n:51,f:[{p:[84,5,2261],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[85,7,2298],t:7,e:"span",f:[{t:2,r:"data.supply",p:[85,13,2304]}," W"]}]}," ",{p:[87,5,2351],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[88,9,2385],t:7,e:"span",f:[{t:2,r:"data.demand",p:[88,15,2391]}," W"]}]}],r:"config.fancy"}]}," ",{p:[92,1,2458],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[93,3,2487],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[94,5,2511],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[95,5,2547],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[96,5,2585],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[97,5,2621],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[98,5,2659],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[99,5,2700],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[100,5,2740],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[103,5,2822],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[103,24,2841]}],nowrap:0},f:[{p:[104,7,2865],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[104,28,2886]}," %"]}," ",{p:[105,7,2943],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[105,28,2964]}," W"]}," ",{p:[106,7,3019],t:7,e:"div",a:{"class":"content"},f:[{p:[106,28,3040],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[106,41,3053]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[106,70,3082]}]}]}," ",{p:[107,7,3128],t:7,e:"div",a:{"class":"content"},f:[{p:[107,28,3149],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[107,41,3162]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[107,64,3185]}," [",{p:[107,87,3208],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[107,93,3214]}]},"]"]}]}," ",{p:[108,7,3262],t:7,e:"div",a:{"class":"content"},f:[{p:[108,28,3283],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[108,41,3296]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[108,64,3319]}," [",{p:[108,87,3342],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[108,93,3348]}]},"]"]}]}," ",{p:[109,7,3396],t:7,e:"div",a:{"class":"content"},f:[{p:[109,28,3417],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[109,41,3430]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[109,64,3453]}," [",{p:[109,87,3476],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[109,93,3482]}]},"]"]}]}]}],n:52,r:"data.areas",p:[102,3,2797]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],279:[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,167],t:7,e:"ui-display",a:{title:"Settings"},f:[{t:4,f:[{p:[13,5,224],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,7,257],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[14,24,274]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[14,75,325]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"On":"Off"'},p:[16,9,398]}]}]}],n:50,r:"data.headset",p:[12,3,199]},{t:4,n:51,f:[{p:[19,5,476],t:7,e:"ui-section",a:{label:"Microphone"},f:[{p:[20,7,514],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.broadcasting"],s:'_0?"power-off":"close"'},p:[20,24,531]}],style:[{t:2,x:{r:["data.broadcasting"],s:'_0?"selected":null'},p:[20,78,585]}],action:"broadcast"},f:[{t:2,x:{r:["data.broadcasting"],s:'_0?"Engaged":"Disengaged"'},p:[22,9,664]}]}]}," ",{p:[24,5,746],t:7,e:"ui-section",a:{label:"Speaker"},f:[{p:[25,7,781],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[25,24,798]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[25,75,849]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"Engaged":"Disengaged"'},p:[27,9,922]}]}]}],r:"data.headset"}," ",{t:4,f:[{p:[31,5,1034],t:7,e:"ui-section",a:{label:"High Volume"},f:[{p:[32,7,1073],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.useCommand"],s:'_0?"power-off":"close"'},p:[32,24,1090]}],style:[{t:2,x:{r:["data.useCommand"],s:'_0?"selected":null'},p:[32,76,1142]}],action:"command"},f:[{t:2,x:{r:["data.useCommand"],s:'_0?"On":"Off"'},p:[34,9,1217]}]}]}],n:50,r:"data.command",p:[30,3,1009]}]}," ",{p:[38,1,1305],t:7,e:"ui-display",a:{title:"Channel"},f:[{p:[39,3,1336],t:7,e:"ui-section",a:{label:"Frequency"},f:[{t:4,f:[{p:[41,7,1399],t:7,e:"span",f:[{t:2,r:"readableFrequency",p:[41,13,1405]}]}],n:50,r:"data.freqlock",p:[40,5,1371]},{t:4,n:51,f:[{p:[43,7,1453],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[43,46,1492]}],action:"frequency",params:'{"adjust": -1}'}}," ",{p:[44,7,1603],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[44,41,1637]}],action:"frequency",params:'{"adjust": -.2}'}}," ",{p:[45,7,1749],t:7,e:"ui-button",a:{icon:"pencil",action:"frequency",params:'{"tune": "input"}'},f:[{t:2,r:"readableFrequency",p:[45,78,1820]}]}," ",{p:[46,7,1860],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[46,40,1893]}],action:"frequency",params:'{"adjust": .2}'}}," ",{p:[47,7,2004],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[47,45,2042]}],action:"frequency",params:'{"adjust": 1}'}}],r:"data.freqlock"}]}," ",{t:4,f:[{p:[51,5,2212],t:7,e:"ui-section",a:{label:"Subspace Transmission"},f:[{p:[52,7,2261],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.subspace"],s:'_0?"power-off":"close"'},p:[52,24,2278]}],style:[{t:2,x:{r:["data.subspace"],s:'_0?"selected":null'},p:[52,74,2328]}],action:"subspace"},f:[{t:2,x:{r:["data.subspace"],s:'_0?"Active":"Inactive"'},p:[53,29,2395]}]}]}],n:50,r:"data.subspaceSwitchable",p:[50,3,2176]}," ",{t:4,f:[{p:[57,5,2522],t:7,e:"ui-section",a:{label:"Channels"},f:[{t:4,f:[{p:[59,9,2598],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["."],s:'_0?"check-square-o":"square-o"'},p:[59,26,2615]}],style:[{t:2,x:{r:["."],s:'_0?"selected":null'},p:[60,18,2671]}],action:"channel",params:['{"channel": "',{t:2,r:"channel",p:[61,49,2746]},'"}']},f:[{t:2,r:"channel",p:[62,11,2772]}]},{p:[62,34,2795],t:7,e:"br"}],n:52,i:"channel",r:"data.channels",p:[58,7,2558]}]}],n:50,x:{r:["data.subspace","data.channels"],s:"_0&&_1"},p:[56,3,2479]}]}]},e.exports=a.extend(r.exports)},{205:205}],280:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img", +-a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[37,1,937],t:7,e:"ui-display",f:[{p:[38,2,951],t:7,e:"div",a:{"class":"item"},f:[{p:[39,3,972],t:7,e:"div",a:{"class":"itemLabel"},f:["Payload status:"]}," ",{p:[42,3,1026],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ARMED"],n:50,r:"data.armed",p:[43,4,1055]},{t:4,n:51,f:["DISARMED"],r:"data.armed"}]}," ",{p:[49,3,1131],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[52,3,1179],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[53,4,1208],t:7,e:"table",f:[{p:[54,4,1219],t:7,e:"tr",f:[{p:[54,8,1223],t:7,e:"td",f:[{p:[54,12,1227],t:7,e:"ui-button",a:{action:"PRG_obfuscate"},f:["OBFUSCATE PROGRAM NAME"]}]}]},{p:[55,4,1299],t:7,e:"tr",f:[{p:[55,8,1303],t:7,e:"td",f:[{p:[55,12,1307],t:7,e:"ui-button",a:{action:"PRG_arm",state:[{t:2,x:{r:["data.armed"],s:'_0?"danger":null'},p:[55,47,1342]}]},f:[{t:2,x:{r:["data.armed"],s:'_0?"DISARM":"ARM"'},p:[55,81,1376]}]}," ",{p:[56,4,1425],t:7,e:"ui-button",a:{icon:"radiation",state:[{t:2,x:{r:["data.armed"],s:'_0?null:"disabled"'},p:[56,39,1460]}],action:"PRG_activate"},f:["ACTIVATE"]}]}]}]}]}]}]}]}]},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:[{t:4,f:[{p:[2,3,22],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,38]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,77],t:7,e:"ui-display",a:{title:"Satellite Network Control",button:0},f:[{t:4,f:[{p:[8,4,161],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[9,9,201],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[9,31,223]}]}," ",{p:[10,9,244],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"mode",p:[10,30,265]}]}," ",{p:[11,9,288],t:7,e:"div",a:{"class":"content"},f:[{p:[12,11,320],t:7,e:"ui-button",a:{action:"toggle",params:['{"id": "',{t:2,r:"id",p:[12,54,363]},'"}']},f:[{t:2,x:{r:["active"],s:'_0?"Deactivate":"Activate"'},p:[12,64,373]}]}]}]}],n:52,r:"data.satellites",p:[7,2,132]}]}," ",{t:4,f:[{p:[18,1,511],t:7,e:"ui-display",a:{title:"Station Shield Coverage"},f:[{p:[19,3,558],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.meteor_shield_coverage_max",p:[19,24,579]}],value:[{t:2,r:"data.meteor_shield_coverage",p:[19,68,623]}]},f:[{t:2,x:{r:["data.meteor_shield_coverage","data.meteor_shield_coverage_max"],s:"100*_0/_1"},p:[19,101,656]}," %"]}," ",{p:[20,1,739],t:7,e:"ui-display",f:[]}]}],n:50,r:"data.meteor_shield",p:[17,1,484]}]},e.exports=a.extend(r.exports)},{205:205}],282:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," ",{p:[5,1,196],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[5,16,211]}]},f:[{p:[6,2,228],t:7,e:"tab",a:{name:"Status"},f:[{p:[7,3,250],t:7,e:"status"}]}," ",{p:[9,2,269],t:7,e:"tab",a:{name:"Templates"},f:[{p:[10,3,294],t:7,e:"templates"}]}," ",{p:[12,2,316],t:7,e:"tab",a:{name:"Modification"},f:[{t:4,f:[{p:[14,3,368],t:7,e:"modification"}],n:50,r:"data.selected",p:[13,3,344]}," ",{t:4,f:[{p:[17,3,421],t:7,e:"span",a:{"class":"bad"},f:["No shuttle selected."]}],n:50,x:{r:["data.selected"],s:"!_0"},p:[16,3,396]}]}]}]},r.exports.components=r.exports.components||{};var i={modification:t(283),templates:t(285),status:t(284)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,283:283,284:284,285:285}],283:[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,94],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.selected.description",p:[3,37,126]}]}],n:50,r:"data.selected.description",p:[2,3,56]}," ",{t:4,f:[{p:[6,5,219],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"data.selected.admin_notes",p:[6,37,251]}]}],n:50,r:"data.selected.admin_notes",p:[5,3,181]}]}," ",{t:4,f:[{p:[11,3,351],t:7,e:"ui-display",a:{title:["Existing Shuttle: ",{t:2,r:"data.existing_shuttle.name",p:[11,40,388]}]},f:["Status: ",{t:2,r:"data.existing_shuttle.status",p:[12,13,433]}," ",{t:4,f:["(",{t:2,r:"data.existing_shuttle.timeleft",p:[14,8,513]},")"],n:50,r:"data.existing_shuttle.timer",p:[13,5,470]}," ",{p:[16,5,565],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"data.existing_shuttle.id",p:[17,41,633]},'"}']},f:["Jump To"]}]}],n:50,r:"data.existing_shuttle",p:[10,1,319]},{t:4,f:[{p:[24,3,755],t:7,e:"ui-display",a:{title:"Existing Shuttle: None"}}],n:50,x:{r:["data.existing_shuttle"],s:"!_0"},p:[23,1,722]},{p:[27,1,821],t:7,e:"ui-button",a:{action:"preview",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[28,27,875]},'"}']},f:["Preview"]}," ",{p:[31,1,931],t:7,e:"ui-button",a:{action:"load",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[32,27,982]},'"}'],style:"danger"},f:["Load"]}," ",{p:[37,1,1053],t:7,e:"ui-display",a:{title:"Status"},f:[]}]},e.exports=a.extend(r.exports)},{205:205}],284:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,26],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,45]}," (",{t:2,r:"id",p:[2,32,55]},")"]},f:[{t:2,r:"status",p:[3,5,69]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[5,8,105]},")"],n:50,r:"timer",p:[4,5,84]}," ",{p:[7,5,135],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[7,67,197]},'"}']},f:["Jump To"]}," ",{p:[10,5,243],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[10,53,291]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[10,70,308]}]},f:["Fast Travel"]}]}],n:52,r:"data.shuttles",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],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-tabs",a:{tabs:[{t:2,r:"data.templates_tabs",p:[1,16,15]}]},f:[{t:4,f:[{p:[3,5,72],t:7,e:"tab",a:{name:[{t:2,r:"port_id",p:[3,16,83]}]},f:[{t:4,f:[{p:[5,9,131],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[5,28,150]}]},f:[{t:4,f:[{p:[7,13,203],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[7,45,235]}]}],n:50,r:"description",p:[6,11,171]}," ",{t:4,f:[{p:[10,13,324],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"admin_notes",p:[10,45,356]}]}],n:50,r:"admin_notes",p:[9,11,292]}," ",{p:[13,11,414],t:7,e:"ui-button",a:{action:"select_template",params:['{"shuttle_id": "',{t:2,r:"shuttle_id",p:[14,37,486]},'"}'],state:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"selected":null'},p:[15,20,523]}]},f:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"Selected":"Select"'},p:[17,13,614]}]}]}],n:52,r:"templates",p:[4,7,103]}]}],n:52,r:"data.templates",p:[2,3,43]}]}]},e.exports=a.extend(r.exports)},{205:205}],286:[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}],287:[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-section",a:{label:[{t:2,r:"name",p:[2,22,43]}],labelcolor:[{t:2,r:"htmlcolor",p:[2,44,65]}],candystripe:0,right:0},f:[{p:[3,5,103],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,32,130],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0=="Dead"?"bad bold":_0=="Unconscious"?"average bold":"good"'},p:[3,45,143]}]},f:[{t:2,r:"status",p:[3,132,230]}]}]}," ",{p:[4,5,265],t:7,e:"ui-section",a:{label:"Jelly"},f:[{t:2,r:"exoticblood",p:[4,31,291]}]}," ",{p:[5,5,324],t:7,e:"ui-section",a:{label:"Location"},f:[{t:2,r:"area",p:[5,34,353]}]}," ",{p:[7,5,380],t:7,e:"ui-button",a:{state:[{t:2,r:"swap_button_state",p:[8,14,404]}],action:"swap",params:['{"ref": "',{t:2,r:"ref",p:[9,38,464]},'"}']},f:[{t:2,x:{r:["is_current"],s:'_0?"You Are Here":"Swap"'},p:[10,7,482]}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},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:{capacityPercentState:function(){var t=this.get("data.capacityPercent");return t>50?"good":t>15?"average":"bad"},inputState:function(){return this.get("data.capacityPercent")>=100?"good":this.get("data.inputting")?"average":"bad"},outputState:function(){return this.get("data.outputting")?"good":this.get("data.charge")>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[24,1,640],t:7,e:"ui-display",a:{title:"Storage"},f:[{p:[25,3,671],t:7,e:"ui-section",a:{label:"Stored Energy"},f:[{p:[26,5,710],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.capacityPercent",p:[26,38,743]}],state:[{t:2,r:"capacityPercentState",p:[26,71,776]}]},f:[{t:2,x:{r:["adata.capacityPercent"],s:"Math.fixed(_0)"},p:[26,97,802]},"%"]}]}]}," ",{p:[29,1,880],t:7,e:"ui-display",a:{title:"Input"},f:[{p:[30,3,909],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{p:[31,5,946],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"refresh":"close"'},p:[31,22,963]}],style:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"selected":null'},p:[31,74,1015]}],action:"tryinput"},f:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"Auto":"Off"'},p:[32,25,1082]}]},"   [",{p:[34,6,1149],t:7,e:"span",a:{"class":[{t:2,r:"inputState",p:[34,19,1162]}]},f:[{t:2,x:{r:["data.capacityPercent","data.inputting"],s:'_0>=100?"Fully Charged":_1?"Charging":"Not Charging"'},p:[34,35,1178]}]},"]"]}," ",{p:[36,3,1300],t:7,e:"ui-section",a:{label:"Target Input"},f:[{p:[37,5,1338],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.inputLevelMax",p:[37,26,1359]}],value:[{t:2,r:"data.inputLevel",p:[37,57,1390]}]},f:[{t:2,x:{r:["adata.inputLevel"],s:"Math.round(_0)"},p:[37,78,1411]},"W"]}]}," ",{p:[39,3,1471],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1509],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1548]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1642],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1676]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1771],t:7,e:"ui-button",a:{icon:"pencil",action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1860],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,1893]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,2004],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,2042]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2167],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2200],t:7,e:"span",f:[{t:2,x:{r:["adata.inputAvailable"],s:"Math.round(_0)"},p:[47,9,2206]},"W"]}]}]}," ",{p:[50,1,2280],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2310],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2347],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2364]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2419]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2488]}]},"   [",{p:[55,6,2554],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2567]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2584]}]},"]"]}," ",{p:[57,3,2689],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2728],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2749]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2781]}]},f:[{t:2,x:{r:["adata.outputLevel"],s:"Math.round(_0)"},p:[58,80,2803]},"W"]}]}," ",{p:[60,3,2864],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2903],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,2942]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3038],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3072]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3169],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3259],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,3292]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3406],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,3444]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3572],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3606],t:7,e:"span",f:[{t:2,x:{r:["adata.outputUsed"],s:"Math.round(_0)"},p:[68,9,3612]},"W"]}]}]}]},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:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,30],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{t:2,x:{r:["adata.generated"],s:"Math.round(_0)"},p:[3,5,71]},"W"]}," ",{p:[5,3,122],t:7,e:"ui-section",a:{label:"Orientation"},f:[{p:[6,5,159],t:7,e:"span",f:[{t:2,x:{r:["adata.angle"],s:"Math.round(_0)"},p:[6,11,165]},"° (",{t:2,r:"data.direction",p:[6,45,199]},")"]}]}," ",{p:[8,3,244],t:7,e:"ui-section",a:{label:"Adjust Angle"},f:[{p:[9,5,282],t:7,e:"ui-button",a:{icon:"step-backward",action:"angle",params:'{"adjust": -15}'},f:["15°"]}," ",{p:[10,5,378],t:7,e:"ui-button",a:{icon:"backward",action:"angle",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[11,5,467],t:7,e:"ui-button",a:{icon:"forward",action:"angle",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[12,5,554],t:7,e:"ui-button",a:{icon:"step-forward",action:"angle",params:'{"adjust": 15}'},f:["15°"]}]}]}," ",{p:[15,1,673],t:7,e:"ui-display",a:{title:"Tracking"},f:[{p:[16,3,705],t:7,e:"ui-section",a:{label:"Tracker Mode"},f:[{p:[17,5,743],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==0?"selected":null'},p:[17,36,774]}],action:"tracking",params:'{"mode": 0}'},f:["Off"]}," ",{p:[19,5,889],t:7,e:"ui-button",a:{icon:"clock-o",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==1?"selected":null'},p:[19,38,922]}],action:"tracking",params:'{"mode": 1}'},f:["Timed"]}," ",{p:[21,5,1039],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.connected_tracker","data.tracking_state"],s:'_0?_1==2?"selected":null:"disabled"'},p:[21,38,1072]}],action:"tracking",params:'{"mode": 2}'},f:["Auto"]}]}," ",{p:[24,3,1239],t:7,e:"ui-section",a:{label:"Tracking Rate"},f:[{p:[25,3,1276],t:7,e:"span",f:[{t:2,x:{r:["adata.tracking_rate"],s:"Math.round(_0)"},p:[25,9,1282]},"°/h (",{t:2,r:"data.rotating_way",p:[25,53,1326]},")"]}]}," ",{p:[27,3,1373],t:7,e:"ui-section",a:{label:"Adjust Rate"},f:[{p:[28,5,1410],t:7,e:"ui-button",a:{icon:"fast-backward",action:"rate",params:'{"adjust": -180}'},f:["180°"]}," ",{p:[29,5,1507],t:7,e:"ui-button",a:{icon:"step-backward",action:"rate",params:'{"adjust": -30}'},f:["30°"]}," ",{p:[30,5,1602],t:7,e:"ui-button",a:{icon:"backward",action:"rate",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[31,5,1690],t:7,e:"ui-button",a:{icon:"forward",action:"rate",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[32,5,1776],t:7,e:"ui-button",a:{icon:"step-forward",action:"rate",params:'{"adjust": 30}'},f:["30°"]}," ",{p:[33,5,1869],t:7,e:"ui-button",a:{icon:"fast-forward",action:"rate",params:'{"adjust": 180}'},f:["180°"]}]}]}," ",{p:{button:[{p:[38,5,2051],t:7,e:"ui-button",a:{icon:"refresh",action:"refresh"},f:["Refresh"]}]},t:7,e:"ui-display",a:{title:"Devices",button:0},f:[" ",{p:[40,2,2130],t:7,e:"ui-section",a:{label:"Solar Tracker"},f:[{p:[41,5,2169],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_tracker"],s:'_0?"good":"bad"'},p:[41,18,2182]}]},f:[{t:2,x:{r:["data.connected_tracker"],s:'_0?"":"Not "'},p:[41,63,2227]},"Found"]}]}," ",{p:[43,2,2296],t:7,e:"ui-section",a:{label:"Solar Panels"},f:[{p:[44,3,2332],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_panels"],s:'_0?"good":"bad"'},p:[44,16,2345]}]},f:[{t:2,x:{r:["adata.connected_panels"],s:"Math.round(_0)"},p:[44,60,2389]}," Panels Connected"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],290:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,7,84],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[4,38,115]}],action:"eject"},f:["Eject"]}],n:50,r:"data.open",p:[3,5,60]}]},t:7,e:"ui-display",a:{title:"Power",button:0},f:[" ",{p:[7,3,220],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[8,5,251],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[8,22,268]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[9,14,318]}],state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[9,54,358]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[10,22,422]}]}]}," ",{p:[12,3,479],t:7,e:"ui-section",a:{label:"Cell"},f:[{t:4,f:[{p:[14,7,541],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerLevel",p:[14,40,574]}]},f:[{t:2,x:{r:["adata.powerLevel"],s:"Math.fixed(_0)"},p:[14,61,595]},"%"]}],n:50,r:"data.hasPowercell",p:[13,5,509]},{t:4,n:51,f:[{p:[16,4,652],t:7,e:"span",a:{"class":"bad"},f:["No Cell"]}],r:"data.hasPowercell"}]}]}," ",{p:[20,1,725],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[21,3,759],t:7,e:"ui-section",a:{label:"Current Temperature"},f:[{p:[22,3,802],t:7,e:"span",f:[{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[22,9,808]},"°C"]}]}," ",{p:[24,2,871],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[25,3,913],t:7,e:"span",f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[25,9,919]},"°C"]}]}," ",{t:4,f:[{p:[28,5,1004],t:7,e:"ui-section",a:{label:"Adjust Target"},f:[{p:[29,7,1045],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[29,46,1084]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[30,7,1189],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[30,41,1223]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[31,7,1327],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:["Set"]}," ",{p:[32,7,1419],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[32,40,1452]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[33,7,1555],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[33,45,1593]}],action:"target",params:'{"adjust": 20}'}}]}],n:50,r:"data.open",p:[27,3,982]}," ",{p:[36,3,1719],t:7,e:"ui-section",a:{label:"Mode"},f:[{t:4,f:[{p:[38,7,1771],t:7,e:"ui-button",a:{icon:"long-arrow-up",state:[{t:2,x:{r:["data.mode"],s:'_0=="heat"?"selected":null'},p:[38,46,1810]}],action:"mode",params:'{"mode": "heat"}'},f:["Heat"]}," ",{p:[39,7,1918],t:7,e:"ui-button",a:{icon:"long-arrow-down",state:[{t:2,x:{r:["data.mode"],s:'_0=="cool"?"selected":null'},p:[39,48,1959]}],action:"mode",params:'{"mode": "cool"}'},f:["Cool"]}," ",{p:[40,7,2067],t:7,e:"ui-button",a:{icon:"arrows-v",state:[{t:2,x:{r:["data.mode"],s:'_0=="auto"?"selected":null'},p:[40,41,2101]}],action:"mode",params:'{"mode": "auto"}'},f:["Auto"]}],n:50,r:"data.open",p:[37,3,1747]},{t:4,n:51,f:[{p:[42,4,2217],t:7,e:"span",f:[{t:2,x:{r:["text","data.mode"],s:"_0.titleCase(_1)"},p:[42,10,2223]}]}],r:"data.open"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],291:[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}],292:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{t:4,f:[{p:[38,3,967],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[38,22,986]}," Alarms"]},f:[{p:[39,5,1009],t:7,e:"ul",f:[{t:4,f:[{p:[41,9,1040],t:7,e:"li",f:[{t:2,r:".",p:[41,13,1044]}]}],n:52,r:".",p:[40,7,1020]},{t:4,n:51,f:[{p:[43,9,1078],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[37,1,937]}]}]},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:[{t:4,f:[{p:[2,3,41],t:7,e:"ui-notice",f:[{p:[3,5,57],t:7,e:"span",f:["Biological entity detected in contents. Please remove."]}]}],n:50,x:{r:["data.occupied","data.safeties"],s:"_0&&_1"},p:[1,1,0]},{t:4,f:[{p:[7,3,173],t:7,e:"ui-notice",f:[{p:[8,5,189],t:7,e:"span",f:["Contents are being disinfected. Please wait."]}]}],n:50,r:"data.uv_active",p:[6,1,148]},{t:4,n:51,f:[{p:{button:[{t:4,f:[{p:[13,25,357],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,374]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,425]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,339]}," ",{t:4,f:[{p:[14,27,506],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,523]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,577]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,486]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,676],t:7,e:"ui-notice",f:[{p:[18,9,696],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,650]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,773],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,811],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,828]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,875]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,970]}]}]}," ",{p:[25,9,1039],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1075],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1092]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1138]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1229]}]}]}," ",{p:[29,9,1296],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1332],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1349]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1395]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1486]}]}]}," ",{p:[33,9,1553],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1592],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1609]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1658]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1755]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1836],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,1869]}],action:"uv"},f:["Disinfect"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{205:205}],294:[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}],295:[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,282],t:7,e:"ui-notice",f:[{p:[15,3,296],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.connected"],s:'_0?"is":"is not"'},p:[15,23,316]}," connected to a mask."]}]}," ",{p:[17,1,393],t:7,e:"ui-display",f:[{p:[18,3,408],t:7,e:"ui-section",a:{label:"Tank Pressure"},f:[{p:[19,7,449],t:7,e:"ui-bar",a:{min:"0",max:"1013",value:[{t:2,r:"data.tankPressure",p:[19,41,483]}],state:[{t:2,r:"tankPressureState",p:[20,16,521]}]},f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[20,39,544]}," kPa"]}]}," ",{p:[22,3,610],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[23,5,652],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[23,18,665]}],max:[{t:2,r:"data.maxReleasePressure",p:[23,52,699]}],value:[{t:2,r:"data.releasePressure",p:[24,14,741]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[24,40,767]}," kPa"]}]}," ",{p:[26,3,836],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,880],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,913]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1067],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1098]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1243],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1337],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"' +-},p:[32,35,1367]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],296:[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}],297:[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}],298:[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,279],t:7,e:"ui-display",f:[{t:4,f:[{p:[16,3,318],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[17,4,357],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[18,5,387]}]}," ",{p:[20,4,431],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[21,5,463]}]}," ",{p:[23,4,509],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,5,541],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[24,26,562]}],value:[{t:2,r:"adata.vr_avatar.health",p:[24,64,600]}],state:[{t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[24,99,635]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[24,140,676]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[24,179,715]}]}]}]}],n:50,r:"data.vr_avatar",p:[15,2,293]},{t:4,n:51,f:[{p:[28,3,799],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[32,2,891],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[33,3,926],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[33,20,943]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[34,4,1009]}," the VR Sleeper"]}," ",{t:4,f:[{p:[37,4,1108],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[36,3,1081]}," ",{t:4,f:[{p:[42,4,1226],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[41,3,1200]}]}]}]},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:[{p:[1,1,0],t:7,e:"ui-display",f:[{t:4,f:[{p:[3,5,40],t:7,e:"ui-section",a:{label:[{t:2,r:"color",p:[3,24,59]},{t:2,x:{r:["wire"],s:'_0?" ("+_0+")":""'},p:[3,33,68]}],labelcolor:[{t:2,r:"color",p:[3,80,115]}],candystripe:0,right:0},f:[{p:[4,7,151],t:7,e:"ui-button",a:{action:"cut",params:['{"wire":"',{t:2,r:"color",p:[4,48,192]},'"}']},f:[{t:2,x:{r:["cut"],s:'_0?"Mend":"Cut"'},p:[4,61,205]}]}," ",{p:[5,7,248],t:7,e:"ui-button",a:{action:"pulse",params:['{"wire":"',{t:2,r:"color",p:[5,50,291]},'"}']},f:["Pulse"]}," ",{p:[6,7,328],t:7,e:"ui-button",a:{action:"attach",params:['{"wire":"',{t:2,r:"color",p:[6,51,372]},'"}']},f:[{t:2,x:{r:["attached"],s:'_0?"Detach":"Attach"'},p:[6,64,385]}]}]}],n:52,r:"data.wires",p:[2,3,15]}]}," ",{t:4,f:[{p:[11,3,498],t:7,e:"ui-display",f:[{t:4,f:[{p:[13,7,543],t:7,e:"ui-section",f:[{t:2,r:".",p:[13,19,555]}]}],n:52,r:"data.status",p:[12,5,515]}]}],n:50,r:"data.status",p:[10,1,476]}]},e.exports=a.extend(r.exports)},{205:205}],300:[function(t,e,n){(function(e){"use strict";var n=t(205),a=e.interopRequireDefault(n);t(195),t(1),t(191),t(194);var r=t(301),i=e.interopRequireDefault(r),o=t(302),s=t(192),p=t(193),u=e.interopRequireDefault(p);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(306)),window.initialize=function(e){window.tgui||(window.tgui=new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(303),text:t(307),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 u["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,191:191,192:192,193:193,194:194,195:195,205:205,301:301,302:302,303:303,306:306,307:307,"babel/external-helpers":"babel/external-helpers"}],301:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(302),a=t(304);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={ai_restorer:t(219),airalarm:t(220),"airalarm/back":t(221),"airalarm/modes":t(222),"airalarm/scrubbers":t(223),"airalarm/status":t(224),"airalarm/thresholds":t(225),"airalarm/vents":t(226),airlock_electronics:t(227),apc:t(228),atmos_alert:t(229),atmos_control:t(230),atmos_filter:t(231),atmos_mixer:t(232),atmos_pump:t(233),brig_timer:t(234),bsa:t(235),canister:t(236),cargo:t(237),cellular_emporium:t(238),chem_dispenser:t(239),chem_heater:t(240),chem_master:t(241),clockwork_slab:t(242),computer_fabricator:t(243),computer_main:t(244),crayon:t(245),cryo:t(246),disposal_unit:t(247),dna_vault:t(248),eightball:t(249),emergency_shuttle_console:t(250),engraved_message:t(251),error:t(252),file_manager:t(253),firealarm:t(254),gps:t(255),gulag_console:t(256),gulag_item_reclaimer:t(257),identification_computer:t(258),implantchair:t(259),intellicard:t(260),keycard_auth:t(261),labor_claim_console:t(262),language_menu:t(263),laptop_configuration:t(264),mech_bay_power_console:t(265),mulebot:t(266),ntnet_chat:t(267),ntnet_dos:t(268),ntnet_downloader:t(269),ntnet_monitor:t(270),ntnet_relay:t(271),ntnet_transfer:t(272),nuclear_bomb:t(273),personal_crafting:t(274),portable_pump:t(275),portable_scrubber:t(276),power_monitor:t(277),power_monitor_prog:t(278),radio:t(279),revelation:t(280),sat_control:t(281),shuttle_manipulator:t(282),"shuttle_manipulator/modification":t(283),"shuttle_manipulator/status":t(284),"shuttle_manipulator/templates":t(285),sleeper:t(286),slime_swap_body:t(287),smes:t(288),solar_control:t(289),space_heater:t(290),station_alert:t(291),station_alert_prog:t(292),suit_storage_unit:t(293),tank_dispenser:t(294),tanks:t(295),thermomachine:t(296),uplink:t(297),vr_sleeper:t(298),wires:t(299)};e in n?this.components["interface"]=n[e]:this.components["interface"]=n.error},oninit:function(){this.observe("config.style",function(t,e,n){t&&document.body.classList.add(t),e&&document.body.classList.remove(e)})},oncomplete:function(){if(this.get("config.locked")){var t=(0,a.lock)(window.screenLeft,window.screenTop),e=t.x,r=t.y;(0,n.winset)(this.get("config.window"),"pos",e+","+r)}(0,n.winset)("mapwindow.map","focus",!0)}}}(r),r.exports.template={v:3,t:[" "," "," "," ",{p:[56,1,1819],t:7,e:"titlebar",f:[{t:3,r:"config.title",p:[56,11,1829]}]}," ",{p:[57,1,1859],t:7,e:"main",f:[{p:[58,3,1868],t:7,e:"warnings"}," ",{p:[59,3,1882],t:7,e:"interface"}]}," ",{t:4,f:[{p:[62,3,1929],t:7,e:"resize"}],n:50,r:"config.titlebar",p:[61,1,1903]}]},r.exports.components=r.exports.components||{};var i={warnings:t(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,302:302,304:304}],302:[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},{}],303:[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},{}],304:[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(302)},{302:302}],305:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var p=s;a||p.textContent.toLowerCase().includes(e)?p.style.display="":p.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],306:[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]?1:arguments[1];return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],307:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var p=Array(o),u=0;o>u;u++)p[u]=arguments[u+3];n.children=p}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(p){return void n(p)}return o.done?void t(s):Promise.resolve(s).then(function(t){return a("next",t)},function(t){return a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e0&&_2?null:"disabled"'},p:[36,25,1056]}],action:"implant"},f:[{t:2,x:{r:["data.ready","data.special_name"],s:'_0?(_1?_1:"Implant"):"Recharging"'},p:[37,9,1162]}," "]},{p:[38,19,1265],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],260:[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,282],t:7,e:"ui-notice",f:[{p:[16,5,298],t:7,e:"span",f:["Wipe in progress!"]}]}],n:50,r:"data.wiping",p:[14,1,260]},{p:{button:[{t:4,f:[{p:[22,7,458],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.isDead"],s:'_0?"disabled":null'},p:[22,38,489]}],action:"wipe"},f:[{t:2,x:{r:["data.wiping"],s:'_0?"Stop Wiping":"Wipe"'},p:[22,89,540]}," AI"]}],n:50,r:"data.name",p:[21,5,434]}]},t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.name"],s:'_0||"Empty Card"'},p:[19,19,370]}],button:0},f:[" ",{t:4,f:[{p:[26,5,647],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[27,9,683],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"bad":"good"'},p:[27,22,696]}]},f:[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"Offline":"Operational"'},p:[27,76,750]}]}]}," ",{p:[29,5,843],t:7,e:"ui-section",a:{label:"Software Integrity"},f:[{p:[30,7,889],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[30,40,922]}],state:[{t:2,r:"healthState",p:[30,64,946]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[30,81,963]},"%"]}]}," ",{p:[32,5,1024],t:7,e:"ui-section",a:{label:"Laws"},f:[{t:4,f:[{p:[34,9,1084],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[34,33,1108]}]},{p:[34,45,1120],t:7,e:"br"}],n:52,r:"data.laws",p:[33,7,1056]}]}," ",{p:[37,5,1164],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[38,7,1200],t:7,e:"ui-button",a:{icon:"signal",style:[{t:2,x:{r:["data.wireless"],s:'_0?"selected":null'},p:[38,39,1232]}],action:"wireless"},f:["Wireless Activity"]}," ",{p:[39,7,1325],t:7,e:"ui-button",a:{icon:"microphone",style:[{t:2,x:{r:["data.radio"],s:'_0?"selected":null'},p:[39,43,1361]}],action:"radio"},f:["Subspace Radio"]}]}],n:50,r:"data.name",p:[25,3,625]}]}]},e.exports=a.extend(r.exports)},{205:205}],261:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,22],t:7,e:"ui-notice",f:[{p:[3,3,36],t:7,e:"span",f:["Waiting for another device to confirm your request..."]}]}],n:50,r:"data.waiting",p:[1,1,0]},{t:4,n:51,f:[{p:[6,2,127],t:7,e:"ui-display",f:[{p:[7,3,142],t:7,e:"ui-section",f:[{t:4,f:[{p:[9,5,189],t:7,e:"ui-button",a:{icon:"check",action:"auth_swipe"},f:["Authorize ",{t:2,r:"data.auth_required",p:[9,59,243]}]}],n:50,r:"data.auth_required",p:[8,4,158]},{t:4,n:51,f:[{p:[11,5,294],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.red_alert"],s:'_0?"disabled":null'},p:[11,38,327]}],action:"red_alert"},f:["Red Alert"]}," ",{p:[12,5,412],t:7,e:"ui-button",a:{icon:"wrench",state:[{t:2,x:{r:["data.emergency_maint"],s:'_0?"disabled":null'},p:[12,37,444]}],action:"emergency_maint"},f:["Emergency Maintenance Access"]}],r:"data.auth_required"}]}]}],r:"data.waiting"}]},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:"Ore values"},f:[{t:4,f:[{p:[3,3,55],t:7,e:"ui-section",a:{label:[{t:2,r:"ore",p:[3,22,74]}]},f:[{p:[4,4,87],t:7,e:"span",f:[{t:2,r:"value",p:[4,10,93]}]}]}],n:52,r:"data.ores",p:[2,2,33]}]}," ",{p:[8,1,151],t:7,e:"ui-display",a:{title:"Points"},f:[{p:[9,2,180],t:7,e:"ui-section",a:{label:"ID"},f:[{p:[10,3,206],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[10,33,236]}]}]}," ",{t:4,f:[{p:[13,3,327],t:7,e:"ui-section",a:{label:"Points collected"},f:[{p:[14,4,368],t:7,e:"span",f:[{t:2,r:"data.points",p:[14,10,374]}]}]}," ",{p:[16,3,415],t:7,e:"ui-section",a:{label:"Goal"},f:[{p:[17,4,444],t:7,e:"span",f:[{t:2,r:"data.goal",p:[17,10,450]}]}]}," ",{p:[19,3,489],t:7,e:"ui-section",a:{label:"Unclaimed points"},f:[{p:[20,4,530],t:7,e:"span",f:[{t:2,r:"data.unclaimed_points",p:[20,10,536]}]}," ",{p:[21,4,572],t:7,e:"ui-button",a:{action:"claim_points",state:[{t:2,x:{r:["data.unclaimed_points"],s:'_0?null:"disabled"'},p:[21,43,611]}]},f:["Claim points"]}]}],n:50,r:"data.id",p:[12,2,309]}]}," ",{p:[25,1,721],t:7,e:"ui-display",f:[{p:[26,2,735],t:7,e:"center",f:[{p:[27,3,746],t:7,e:"ui-button",a:{action:"move_shuttle",state:[{t:2,x:{r:["data.can_go_home"],s:'_0?null:"disabled"'},p:[27,42,785]}]},f:["Move shuttle"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],263:[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,68],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[3,23,86]}]},f:[{p:[4,7,102],t:7,e:"span",f:[{t:2,r:"desc",p:[4,13,108]}]}," ",{p:[5,7,130],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[5,19,142]}]}," ",{t:4,f:[{p:[7,9,186],t:7,e:"span",f:["(gained from mob)"]}],n:50,r:"shadow",p:[6,7,163]}," ",{p:[9,7,237],t:7,e:"span",f:[{t:2,x:{r:["can_speak"],s:'_0?"Can Speak":"Cannot Speak"'},p:[9,13,243]}]}," ",{t:4,f:[{p:[11,9,332],t:7,e:"ui-button",a:{action:"select_default",params:['{"language_name":"',{t:2,r:"name",p:[13,37,413]},'"}'],style:[{t:2,x:{r:["is_default","can_speak"],s:'_0?"selected":_1?null:"disabled"'},p:[14,18,442]}]},f:[{t:2,x:{r:["is_default"],s:'_0?"Default Language":"Select as Default"'},p:[15,10,512]}]}],n:50,r:"data.is_living",p:[10,7,301]}," ",{t:4,f:[{t:4,f:[{p:[20,11,666],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[20,72,727]},'"}']},f:["Grant"]}],n:50,r:"shadow",p:[19,9,641]},{t:4,n:51,f:[{p:[22,11,784],t:7,e:"ui-button",a:{action:"remove_language",params:['{"language_name":"',{t:2,r:"name",p:[22,73,846]},'"}']},f:["Remove"]}],r:"shadow"}],n:50,r:"data.admin_mode",p:[18,7,609]}]}],n:52,r:"data.languages",p:[2,3,39]}]}," ",{t:4,f:[{t:4,f:[{p:[30,5,1004],t:7,e:"ui-button",a:{action:"toggle_omnitongue",style:[{t:2,x:{r:["data.omnitongue"],s:'_0?"selected":null'},p:[32,14,1061]}]},f:["Omnitongue ",{t:2,x:{r:["data.omnitongue"],s:'_0?"Enabled":"Disabled"'},p:[33,19,1120]}]}],n:50,r:"data.is_living",p:[29,3,977]}," ",{p:[36,3,1196],t:7,e:"ui-display",a:{title:"Unknown Languages"},f:[{t:4,f:[{p:[38,7,1278],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[38,25,1296]}]},f:[{p:[39,9,1314],t:7,e:"span",f:[{t:2,r:"desc",p:[39,15,1320]}]}," ",{p:[40,9,1344],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[40,21,1356]}]}," ",{p:[41,9,1379],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[43,37,1460]},'"}']},f:["Grant"]}]}],n:52,r:"data.unknown_languages",p:[37,5,1239]}]}],n:50,r:"data.admin_mode",p:[28,1,951]}]},e.exports=a.extend(r.exports)},{205:205}],264:[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,252],t:7,e:"div",a:{style:"float: left"},f:[{p:[16,2,279],t:7,e:"div",a:{"class":"item"},f:[{p:[17,3,300],t:7,e:"table",f:[{p:[17,10,307],t:7,e:"tr",f:[{t:4,f:[{p:[19,4,372],t:7,e:"td",f:[{p:[19,8,376],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[19,18,386]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[18,3,314]}," ",{t:4,f:[{p:[22,4,485],t:7,e:"td",f:[{p:[22,8,489],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[22,11,492]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[21,3,424]}," ",{t:4,f:[{p:[25,4,564],t:7,e:"td",f:[{p:[25,8,568],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[25,18,578]}]}}]}],n:50,r:"data.PC_ntneticon",p:[24,3,535]}," ",{t:4,f:[{p:[28,4,645],t:7,e:"td",f:[{p:[28,8,649],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[28,18,659]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[27,3,614]}," ",{t:4,f:[{p:[31,4,728],t:7,e:"td",f:[{p:[31,8,732],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[31,11,735]},{p:[31,34,758],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[30,3,697]}," ",{t:4,f:[{p:[34,4,810],t:7,e:"td",f:[{p:[34,8,814],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[34,18,824]}]}}]}],n:52,r:"data.PC_programheaders",p:[33,3,774]}]}]}]}]}," ",{p:[39,1,873],t:7,e:"div",a:{style:"float: right"},f:[{p:[40,2,901],t:7,e:"table",f:[{p:[40,9,908],t:7,e:"tr",f:[{p:[41,3,915],t:7,e:"td",f:[{p:[41,7,919],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[43,4,1009],t:7,e:"td",f:[{p:[43,8,1013],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[44,4,1069],t:7,e:"td",f:[{p:[44,8,1073],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[42,3,974]}]}]}]}]}," ",{p:[48,1,1161],t:7,e:"div",a:{style:"clear: both"},f:[{p:[49,1,1187],t:7,e:"ui-display",f:[{p:[50,2,1201],t:7,e:"i",f:["Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device."]},{p:[50,137,1336],t:7,e:"hr"}," ",{p:[51,2,1342],t:7,e:"ui-display",a:{title:"Power Supply"},f:[{t:4,f:[{p:[53,4,1402],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Active"]}," ",{p:[56,4,1470],t:7,e:"ui-section",a:{label:"Battery Rating"},f:[{t:2,r:"data.battery.max",p:[57,5,1510]}]}," ",{p:[59,4,1551],t:7,e:"ui-section",a:{label:"Battery Charge"},f:[{p:[60,5,1591],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.battery.max",p:[60,26,1612]}],value:[{t:2,r:"adata.battery.charge",p:[60,56,1642]}],state:[{t:2,x:{r:["chargeState","adata.battery.charge"],s:"_0(_1)"},p:[60,89,1675]}]},f:[{t:2,x:{r:["adata.battery.charge"],s:"Math.round(_0)"},p:[60,128,1714]},"/",{t:2,r:"adata.battery.max",p:[60,165,1751]}]}]}],n:50,r:"data.battery",p:[52,3,1378]},{t:4,n:51,f:[{p:[63,4,1813],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Not Available"]}],r:"data.battery"}," ",{p:[68,3,1897],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"data.power_usage",p:[69,4,1933]},"W"]}]}," ",{p:[73,2,1989],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[74,3,2024],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[75,4,2062],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[75,25,2083]}],value:[{t:2,r:"adata.disk_used",p:[75,53,2111]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[75,87,2145]},"GQ/",{t:2,r:"adata.disk_size",p:[75,121,2179]},"GQ"]}]}]}," ",{p:[79,2,2244],t:7,e:"ui-display",a:{title:"Computer Components"},f:[{t:4,f:[{p:[82,4,2315],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[82,26,2337]}]},f:[{p:[84,5,2353],t:7,e:"i",f:[{t:2,r:"desc",p:[84,8,2356]}]},{p:[84,20,2368],t:7,e:"br"}," ",{p:[85,5,2377],t:7,e:"ui-section",a:{label:"State"},f:[{t:2,x:{r:["enabled"],s:'_0?"Enabled":"Disabled"'},p:[88,6,2415]}]}," ",{p:[91,5,2478],t:7,e:"ui-section",a:{Label:"Power Usage"},f:[{t:2,r:"powerusage",p:[92,6,2516]},"W"]}," ",{t:4,f:[{p:[95,6,2577],t:7,e:"ui-section",a:{label:"Toggle Component"},f:[{p:[96,7,2621],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["enabled"],s:'_0?"power-off":"close"'},p:[96,24,2638]}],action:"PC_toggle_component",params:['{"name": "',{t:2,r:"name",p:[96,108,2722]},'"}']},f:[{t:2,x:{r:["enabled"],s:'_0?"On":"Off"'},p:[97,8,2742]}]}]}],n:50,x:{r:["critical"],s:"!_0"},p:[94,5,2554]}," ",{p:[101,4,2822],t:7,e:"br"},{p:[101,8,2826],t:7,e:"br"}]}],n:52,r:"data.hardware",p:[81,3,2288]}]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],265:[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,526],t:7,e:"ui-display",a:{title:"Mech Status"},f:[{t:4,f:[{t:4,f:[{p:[23,4,624],t:7,e:"ui-section",a:{label:"Integrity"},f:[{p:[24,6,660],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,27,681]}],value:[{t:2,r:"adata.recharge_port.mech.health",p:[24,74,728]}],state:[{t:2,x:{r:["mechHealthState","adata.recharge_port.mech.health"],s:"_0(_1)"},p:[24,117,771]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.health"],s:"Math.round(_0)"},p:[24,171,825]},"/",{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,219,873]}]}]}," ",{t:4,f:[{t:4,f:[{p:[28,5,1034],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[28,31,1060],t:7,e:"span",a:{"class":"bad"},f:["Cell Critical Failure"]}]}],n:50,r:"data.recharge_port.mech.cell.critfail",p:[27,3,984]},{t:4,n:51,f:[{p:[30,11,1141],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,13,1180],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.cell.maxcharge",p:[31,34,1201]}],value:[{t:2,r:"adata.recharge_port.mech.cell.charge",p:[31,86,1253]}],state:[{t:2,x:{r:["mechChargeState","adata.recharge_port.mech.cell.charge"],s:"_0(_1)"},p:[31,134,1301]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.cell.charge"],s:"Math.round(_0)"},p:[31,193,1360]},"/",{t:2,x:{r:["adata.recharge_port.mech.cell.maxcharge"],s:"Math.round(_0)"},p:[31,246,1413]}]}]}],r:"data.recharge_port.mech.cell.critfail"}],n:50,r:"data.recharge_port.mech.cell",p:[26,4,945]},{t:4,n:51,f:[{p:[35,3,1524],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[35,29,1550],t:7,e:"span",a:{"class":"bad"},f:["Cell Missing"]}]}],r:"data.recharge_port.mech.cell"}],n:50,r:"data.recharge_port.mech",p:[22,2,589]},{t:4,n:51,f:[{p:[38,4,1625],t:7,e:"ui-section",f:["Mech Not Found"]}],r:"data.recharge_port.mech"}],n:50,r:"data.recharge_port",p:[21,3,561]},{t:4,n:51,f:[{p:[41,5,1689],t:7,e:"ui-section",f:["Recharging Port Not Found"]}," ",{p:[42,2,1741],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}],r:"data.recharge_port"}]}]},e.exports=a.extend(r.exports)},{205:205}],266:[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}],267:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[36,1,936],t:7,e:"ui-display",f:[{t:4,f:[{p:[38,3,975],t:7,e:"h1",f:["ADMINISTRATIVE MODE"]}],n:50,r:"data.adminmode",p:[37,2,950]}," ",{t:4,f:[{p:[42,3,1036],t:7,e:"div",a:{"class":"itemLabel"},f:["Current channel:"]}," ",{p:[45,3,1092],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.title",p:[46,4,1121]}]}," ",{p:[48,3,1147],t:7,e:"div",a:{"class":"itemLabel"},f:["Operator access:"]}," ",{p:[51,3,1203],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:[{p:[53,5,1261],t:7,e:"b",f:["Enabled"]}],n:50,r:"data.is_operator",p:[52,4,1232]},{t:4,n:51,f:[{p:[55,5,1292],t:7,e:"b",f:["Disabled"]}],r:"data.is_operator"}]}," ",{p:[58,3,1330],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[61,3,1379],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[62,4,1408],t:7,e:"table",f:[{p:[63,5,1420],t:7,e:"tr",f:[{p:[63,9,1424],t:7,e:"td",f:[{p:[63,13,1428],t:7,e:"ui-button",a:{action:"PRG_speak"},f:["Send message"]}]}]},{p:[64,5,1487],t:7,e:"tr",f:[{p:[64,9,1491],t:7,e:"td",f:[{p:[64,13,1495],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[65,5,1562],t:7,e:"tr",f:[{p:[65,9,1566],t:7,e:"td",f:[{p:[65,13,1570],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]},{p:[66,5,1649],t:7,e:"tr",f:[{p:[66,9,1653],t:7,e:"td",f:[{p:[66,13,1657],t:7,e:"ui-button",a:{action:"PRG_leavechannel"},f:["Leave channel"]}]}]},{p:[67,5,1724],t:7,e:"tr",f:[{p:[67,9,1728],t:7,e:"td",f:[{p:[67,13,1732],t:7,e:"ui-button",a:{action:"PRG_savelog"},f:["Save log to local drive"]}," ",{t:4,f:[{p:[69,6,1834],t:7,e:"tr",f:[{p:[69,10,1838],t:7,e:"td",f:[{p:[69,14,1842],t:7,e:"ui-button",a:{action:"PRG_renamechannel"},f:["Rename channel"]}]}]},{p:[70,6,1912],t:7,e:"tr",f:[{p:[70,10,1916],t:7,e:"td",f:[{p:[70,14,1920],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}]}]},{p:[71,6,1986],t:7,e:"tr",f:[{p:[71,10,1990],t:7,e:"td",f:[{p:[71,14,1994],t:7,e:"ui-button",a:{action:"PRG_deletechannel"},f:["Delete channel"]}]}]}],n:50,r:"data.is_operator",p:[68,5,1804]}]}]}]}]}," ",{p:[75,3,2096],t:7,e:"b",f:["Chat Window"]}," ",{p:[76,4,2118],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[77,4,2173],t:7,e:"div",a:{"class":"item"},f:[{p:[78,5,2196],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"msg",p:[80,7,2278]},{p:[80,14,2285],t:7,e:"br"}],n:52,r:"data.messages",p:[79,6,2248]}]}]}]}," ",{p:[85,3,2339],t:7,e:"b",f:["Connected Users"]},{p:[85,25,2361],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"name",p:[87,4,2394]},{p:[87,12,2402],t:7,e:"br"}],n:52,r:"data.clients",p:[86,3,2368]}],n:50,r:"data.title",p:[41,2,1015]},{t:4,n:51,f:[{p:[90,3,2431],t:7,e:"b",f:["Controls:"]}," ",{p:[91,3,2450],t:7,e:"table",f:[{p:[92,4,2461],t:7,e:"tr",f:[{p:[92,8,2465],t:7,e:"td",f:[{p:[92,12,2469],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[93,4,2535],t:7,e:"tr",f:[{p:[93,8,2539],t:7,e:"td",f:[{p:[93,12,2543],t:7,e:"ui-button",a:{action:"PRG_newchannel"},f:["New Channel"]}]}]},{p:[94,4,2605],t:7,e:"tr",f:[{p:[94,8,2609],t:7,e:"td",f:[{p:[94,12,2613],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]}]}," ",{p:[96,3,2701],t:7,e:"b",f:["Available channels:"]}," ",{p:[97,3,2730],t:7,e:"table",f:[{t:4,f:[{p:[99,4,2773],t:7,e:"tr",f:[{p:[99,8,2777],t:7,e:"td",f:[{p:[99,12,2781],t:7,e:"ui-button",a:{action:"PRG_joinchannel",params:['{"id": "',{t:2,r:"id",p:[99,64,2833]},'"}']},f:[{t:2,r:"chan",p:[99,74,2843]}]},{p:[99,94,2863],t:7,e:"br"}]}]}],n:52,r:"data.all_channels",p:[98,3,2740]}]}],r:"data.title"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],268:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[36,1,936],t:7,e:"ui-display",f:[{t:4,f:["##SYSTEM ERROR: ",{t:2,r:"data.error",p:[38,19,987]},{p:[38,33,1001],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["RESET"]}],n:50,r:"data.error",p:[37,2,950]},{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:[40,39,1111]},"GQ/s",{p:[40,57,1129],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"nums",p:[42,4,1166]},{p:[42,12,1174],t:7,e:"br"}],n:52,r:"data.dos_strings",p:[41,3,1136]}," ",{p:[44,3,1193],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:[46,55,1305],t:7,e:"br"}," ",{t:4,f:["Targeted device ID: ",{t:2,r:"data.focus",p:[48,24,1354]}],n:50,r:"data.focus",p:[47,3,1312]},{t:4,n:51,f:["Targeted device ID: None"],r:"data.focus"}," ",{p:[52,3,1420],t:7,e:"ui-button",a:{action:"PRG_execute"},f:["EXECUTE"]},{p:[52,54,1471],t:7,e:"div",a:{style:"clear:both"}}," Detected devices on network:",{p:[53,31,1532],t:7,e:"br"}," ",{t:4,f:[{p:[55,4,1564],t:7,e:"ui-button",a:{action:"PRG_target_relay",params:['{"targid": "',{t:2,r:"id",p:[55,61,1621]},'"}']},f:[{t:2,r:"id",p:[55,71,1631]}]}],n:52,r:"data.relays",p:[54,3,1539]}]}],r:"data.error"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],269:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[37,1,937],t:7,e:"ui-display",f:[{p:[38,2,951],t:7,e:"i",f:["Welcome to software download utility. Please select which software you wish to download."]},{p:[38,97,1046],t:7,e:"hr"}," ",{t:4,f:[{p:[40,3,1073],t:7,e:"ui-display",a:{title:"Download Error"},f:[{p:[41,4,1112],t:7,e:"ui-section",a:{label:"Information"},f:[{t:2,r:"data.error",p:[42,5,1149]}]}," ",{p:[44,4,1184],t:7,e:"ui-section",a:{label:"Reset Program"},f:[{p:[45,5,1223],t:7,e:"ui-button",a:{icon:"times",action:"PRG_reseterror"},f:["RESET"]}]}]}],n:50,r:"data.error",p:[39,2,1052]},{t:4,n:51,f:[{t:4,f:[{p:[52,4,1374],t:7,e:"ui-display",a:{title:"Download Running"},f:[{p:[53,5,1416],t:7,e:"i",f:["Please wait..."]}," ",{p:[54,5,1442],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"data.downloadname",p:[55,6,1478]}]}," ",{p:[57,5,1522],t:7,e:"ui-section",a:{label:"File description"},f:[{t:2,r:"data.downloaddesc",p:[58,6,1565]}]}," ",{p:[60,5,1609],t:7,e:"ui-section",a:{label:"File size"},f:[{t:2,r:"data.downloadcompletion",p:[61,6,1645]},"GQ / ",{t:2,r:"data.downloadsize",p:[61,38,1677]},"GQ"]}," ",{p:[63,5,1723],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{t:2,r:"data.downloadspeed",p:[64,6,1763]}," GQ/s"]}," ",{p:[66,5,1813],t:7,e:"ui-section",a:{label:"Download progress"},f:[{p:[67,6,1857],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.downloadsize",p:[67,27,1878]}],value:[{t:2,r:"adata.downloadcompletion",p:[67,58,1909]}],state:"good"},f:[{t:2,x:{r:["adata.downloadcompletion"],s:"Math.round(_0)"},p:[67,101,1952]},"/",{t:2,r:"adata.downloadsize",p:[67,142,1993]}]}]}]}],n:50,r:"data.downloadname",p:[51,3,1345]}],r:"data.error"}," ",{t:4,f:[{t:4,f:[{p:[74,4,2132],t:7,e:"ui-display",a:{title:"Primary software repository"},f:[{p:[75,5,2185],t:7,e:"ui-section",a:{label:"Hard drive"},f:[{p:[76,6,2222],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[76,27,2243]}],value:[{t:2,r:"adata.disk_used",p:[76,55,2271]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[76,89,2305]},"GQ/",{t:2,r:"adata.disk_size",p:[76,123,2339]},"GQ"]}]}," ",{t:4,f:[{p:[79,6,2434],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[80,7,2471]}," (",{t:2,r:"size",p:[80,21,2485]}," GQ)"]}," ",{p:[82,6,2522],t:7,e:"ui-section",a:{label:"Program name"},f:[{t:2,r:"filedesc",p:[83,7,2562]}]}," ",{p:[85,6,2600],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"fileinfo",p:[86,7,2639]}]}," ",{p:[88,6,2676],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[89,7,2717]}]}," ",{p:[91,6,2759],t:7,e:"ui-section",a:{label:"File controls"},f:[{p:[92,7,2800],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[92,80,2873]},'"}']},f:["DOWNLOAD"]}]}],n:52,r:"data.downloadable_programs",p:[78,5,2392]}]}," ",{t:4,f:[{p:[99,5,3011],t:7,e:"ui-display",a:{title:"UNKNOWN software repository"},f:[{p:[100,6,3065],t:7,e:"i",f:["Please note that NanoTrasen does not recommend download of software from non-official servers."]}," ",{t:4,f:[{p:[102,7,3209],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[103,8,3247]}," (",{t:2,r:"size",p:[103,22,3261]}," GQ)"]}," ",{p:[105,7,3300],t:7,e:"ui-section",a:{label:"Program name"},f:[{t:2,r:"filedesc",p:[106,8,3341]}]}," ",{p:[108,7,3381],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"fileinfo",p:[109,8,3421]}]}," ",{p:[111,7,3460],t:7,e:"ui-section",a:{label:"File controls"},f:[{p:[112,8,3502],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[112,81,3575]},'"}']},f:["DOWNLOAD"]}]}],n:52,r:"data.hacked_programs",p:[101,6,3172]}]}],n:50,r:"data.hackedavailable",p:[98,4,2978]}],n:50,x:{r:["data.error"],s:"!_0"},p:[73,3,2109]}],n:50,x:{r:["data.downloadname"],s:"!_0"},p:[72,2,2080]}," ",{p:[121,2,3714],t:7,e:"br"},{p:[121,6,3718],t:7,e:"br"},{p:[121,10,3722],t:7,e:"hr"},{p:[121,14,3726],t:7,e:"i",f:["NTOS v2.0.4b Copyright NanoTrasen 2557 - 2559"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],270:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[3,1,2],t:7,e:"ui-display",f:[{p:[4,2,16],t:7,e:"div",a:{style:"float: left"},f:[{p:[5,3,44],t:7,e:"div",a:{"class":"item"},f:[{p:[6,4,66],t:7,e:"table",f:[{p:[6,11,73],t:7,e:"tr",f:[{t:4,f:[{p:[8,5,140],t:7,e:"td",f:[{p:[8,9,144],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[8,19,154]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[7,4,81]}," ",{t:4,f:[{p:[11,5,256],t:7,e:"td",f:[{p:[11,9,260],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[11,12,263]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[10,4,194]}," ",{t:4,f:[{p:[14,5,338],t:7,e:"td",f:[{p:[14,9,342],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[14,19,352]}]}}]}],n:50,r:"data.PC_ntneticon",p:[13,4,308]}," ",{t:4,f:[{p:[17,5,422],t:7,e:"td",f:[{p:[17,9,426],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[17,19,436]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[16,4,390]}," ",{t:4,f:[{p:[20,5,508],t:7,e:"td",f:[{p:[20,9,512],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[20,12,515]},{p:[20,35,538],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[19,4,476]}," ",{t:4,f:[{p:[23,5,593],t:7,e:"td",f:[{p:[23,9,597],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[23,19,607]}]}}]}],n:52,r:"data.PC_programheaders",p:[22,4,556]}]}]}]}]}," ",{p:[28,2,661],t:7,e:"div",a:{style:"float: right"},f:[{p:[29,3,690],t:7,e:"table",f:[{p:[29,10,697],t:7,e:"tr",f:[{p:[30,4,705],t:7,e:"td",f:[{p:[30,8,709],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[32,5,801],t:7,e:"td",f:[{p:[32,9,805],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[33,5,862],t:7,e:"td",f:[{p:[33,9,866],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[31,4,765]}]}]}]}]}," ",{p:[37,2,958],t:7,e:"div",a:{style:"clear: both"},f:[{p:[39,2,986],t:7,e:"ui-display",a:{title:"WIRELESS CONNECTIVITY"},f:[{p:[41,3,1032],t:7,e:"ui-section",a:{label:"Active NTNetRelays"},f:[{p:[42,4,1075],t:7,e:"b",f:[{t:2,r:"data.ntnetrelays",p:[42,7,1078]}]}]}," ",{t:4,f:[{p:[45,4,1149],t:7,e:"ui-section",a:{label:"System status"},f:[{p:[46,6,1189],t:7,e:"b",f:[{t:2,x:{r:["data.ntnetstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[46,9,1192]}]}]}," ",{p:[48,4,1262],t:7,e:"ui-section",a:{label:"Control"},f:[{p:[50,4,1295],t:7,e:"ui-button",a:{icon:"plus",action:"toggleWireless"},f:["TOGGLE"]}]}," ",{p:[54,4,1390],t:7,e:"br"},{p:[54,8,1394],t:7,e:"br"}," ",{p:[55,4,1402],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:[44,3,1121]},{t:4,n:51,f:[{p:[57,4,1537],t:7,e:"br"},{p:[57,8,1541],t:7,e:"p",f:["Wireless coverage unavailable, no relays are connected."]}],r:"data.ntnetrelays"}]}," ",{p:[62,2,1632],t:7,e:"ui-display",a:{title:"FIREWALL CONFIGURATION"},f:[{p:[64,2,1678],t:7,e:"table",f:[{p:[65,3,1688],t:7,e:"tr",f:[{p:[66,4,1696],t:7,e:"th",f:["PROTOCOL"]},{p:[67,4,1712],t:7,e:"th",f:["STATUS"]},{p:[68,4,1726],t:7,e:"th",f:["CONTROL"]}]},{p:[69,3,1740],t:7,e:"tr",f:[" ",{p:[70,4,1748],t:7,e:"td",f:["Software Downloads"]},{p:[71,4,1774],t:7,e:"td",f:[{t:2,x:{r:["data.config_softwaredownload"],s:'_0?"ENABLED":"DISABLED"'},p:[71,8,1778]}]},{p:[72,4,1839],t:7,e:"td",f:[" ",{p:[72,9,1844],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "1"}'},f:["TOGGLE"]}]}]},{p:[73,3,1922],t:7,e:"tr",f:[" ",{p:[74,4,1930],t:7,e:"td",f:["Peer to Peer Traffic"]},{p:[75,4,1958],t:7,e:"td",f:[{t:2,x:{r:["data.config_peertopeer"],s:'_0?"ENABLED":"DISABLED"'},p:[75,8,1962]}]},{p:[76,4,2017],t:7,e:"td",f:[{p:[76,8,2021],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "2"}'},f:["TOGGLE"]}]}]},{p:[77,3,2099],t:7,e:"tr",f:[" ",{p:[78,4,2107],t:7,e:"td",f:["Communication Systems"]},{p:[79,4,2136],t:7,e:"td",f:[{t:2,x:{r:["data.config_communication"],s:'_0?"ENABLED":"DISABLED"'},p:[79,8,2140]}]},{p:[80,4,2198],t:7,e:"td",f:[{p:[80,8,2202],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "3"}'},f:["TOGGLE"]}]}]},{p:[81,3,2280],t:7,e:"tr",f:[" ",{p:[82,4,2288],t:7,e:"td",f:["Remote System Control"]},{p:[83,4,2317],t:7,e:"td",f:[{t:2,x:{r:["data.config_systemcontrol"],s:'_0?"ENABLED":"DISABLED"'},p:[83,8,2321]}]},{p:[84,4,2379],t:7,e:"td",f:[{p:[84,8,2383],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "4"}'},f:["TOGGLE"]}]}]}]}]}," ",{p:[88,2,2486],t:7,e:"ui-display",a:{title:"SECURITY SYSTEMS"},f:[{t:4,f:[{p:[91,4,2552],t:7,e:"ui-notice",f:[{p:[92,5,2568],t:7,e:"h1",f:["NETWORK INCURSION DETECTED"]}]}," ",{p:[94,5,2624],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:[90,3,2527]}," ",{p:[97,3,2749],t:7,e:"ui-section",a:{label:"Intrusion Detection System"},f:[{p:[98,4,2800],t:7,e:"b",f:[{t:2,x:{r:["data.idsstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[98,7,2803]}]}]}," ",{p:[101,3,2872],t:7,e:"ui-section",a:{label:"Maximal Log Count"},f:[{p:[102,4,2914],t:7,e:"b",f:[{t:2,r:"data.ntnetmaxlogs",p:[102,7,2917]}]}]}," ",{p:[105,3,2964],t:7,e:"ui-section",a:{label:"Controls"},f:[]}," ",{p:[107,4,3013],t:7,e:"table",f:[{p:[108,4,3024],t:7,e:"tr",f:[{p:[108,8,3028],t:7,e:"td",f:[{p:[108,12,3032],t:7,e:"ui-button",a:{action:"resetIDS"},f:["RESET IDS"]}]}]},{p:[109,4,3086],t:7,e:"tr",f:[{p:[109,8,3090],t:7,e:"td",f:[{p:[109,12,3094],t:7,e:"ui-button",a:{action:"toggleIDS"},f:["TOGGLE IDS"]}]}]},{p:[110,4,3150],t:7,e:"tr",f:[{p:[110,8,3154],t:7,e:"td",f:[{p:[110,12,3158],t:7,e:"ui-button",a:{action:"updatemaxlogs"},f:["SET LOG LIMIT"]}]}]},{p:[111,4,3221],t:7,e:"tr",f:[{p:[111,8,3225],t:7,e:"td",f:[{p:[111,12,3229],t:7,e:"ui-button",a:{action:"purgelogs"},f:["PURGE LOGS"]}]}]}]}," ",{p:[114,3,3297],t:7,e:"ui-subdisplay",a:{title:"System Logs"},f:[{p:[115,3,3335],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[116,3,3389],t:7,e:"div",a:{"class":"item"},f:[{p:[117,4,3411],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"entry",p:[119,6,3492]},{p:[119,15,3501],t:7,e:"br"}],n:52,r:"data.ntnetlogs",p:[118,5,3462]}]}]}]}]}]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],271:[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,55],t:7,e:"h2",f:["NETWORK BUFFERS OVERLOADED"]}," ",{p:[4,3,93],t:7,e:"h3",f:["Overload Recovery Mode"]}," ",{p:[5,3,127],t:7,e:"i",f:["This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."]}," ",{p:[6,3,479],t:7,e:"h3",f:["ADMINISTRATIVE OVERRIDE"]}," ",{p:[7,3,514],t:7,e:"b",f:["CAUTION - Data loss may occur"]}," ",{p:[8,3,555],t:7,e:"ui-button",a:{icon:"signal",action:"restart"},f:["Purge buffered traffic"]}],n:50,r:"data.dos_crashed",p:[2,2,28]},{t:4,n:51,f:[{p:[12,3,652],t:7,e:"ui-section",a:{label:"Relay status"},f:[{p:[13,4,689],t:7,e:"ui-button",a:{icon:"power-off",action:"toggle"},f:[{t:2,x:{r:["data.enabled"],s:'_0?"ENABLED":"DISABLED"'},p:[14,6,739]}]}]}," ",{p:[18,3,819],t:7,e:"ui-section",a:{label:"Network buffer status"},f:[{t:2,r:"data.dos_overload",p:[19,4,865]}," / ",{t:2,r:"data.dos_capacity",p:[19,28,889]}," GQ"]}],r:"data.dos_crashed"}]}]},e.exports=a.extend(r.exports)},{205:205}],272:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"ui-display",f:[{p:[4,2,16],t:7,e:"div",a:{style:"float: left"},f:[{p:[5,3,44],t:7,e:"div",a:{"class":"item"},f:[{p:[6,4,66],t:7,e:"table",f:[{p:[6,11,73],t:7,e:"tr",f:[{t:4,f:[{p:[8,5,140],t:7,e:"td",f:[{p:[8,9,144],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[8,19,154]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[7,4,81]}," ",{t:4,f:[{p:[11,5,256],t:7,e:"td",f:[{p:[11,9,260],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[11,12,263]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[10,4,194]}," ",{t:4,f:[{p:[14,5,338],t:7,e:"td",f:[{p:[14,9,342],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[14,19,352]}]}}]}],n:50,r:"data.PC_ntneticon",p:[13,4,308]}," ",{t:4,f:[{p:[17,5,422],t:7,e:"td",f:[{p:[17,9,426],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[17,19,436]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[16,4,390]}," ",{t:4,f:[{p:[20,5,508],t:7,e:"td",f:[{p:[20,9,512],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[20,12,515]},{p:[20,35,538],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[19,4,476]}," ",{t:4,f:[{p:[23,5,593],t:7,e:"td",f:[{p:[23,9,597],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[23,19,607]}]}}]}],n:52,r:"data.PC_programheaders",p:[22,4,556]}]}]}]}]}," ",{p:[28,2,661],t:7,e:"div",a:{style:"float: right"},f:[{p:[29,3,690],t:7,e:"table",f:[{p:[29,10,697],t:7,e:"tr",f:[{p:[30,4,705],t:7,e:"td",f:[{p:[30,8,709],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[32,5,801],t:7,e:"td",f:[{p:[32,9,805],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[33,5,862],t:7,e:"td",f:[{p:[33,9,866],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[31,4,765]}]}]}]}]}," ",{p:[37,2,958],t:7,e:"div",a:{style:"clear: both"},f:[{t:4,f:[{p:[40,2,1006],t:7,e:"div",a:{"class":"item"},f:[{p:[41,3,1027],t:7,e:"h2",f:["An error has occurred during operation..."]}," ",{p:[42,3,1080],t:7,e:"b",f:["Additional information:"]},{t:2,r:"data.error",p:[42,34,1111]},{p:[42,48,1125],t:7,e:"br"}," ",{p:[43,3,1132],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Clear"]}]}],n:50,r:"data.error",p:[39,2,986]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.downloading"],s:"_0"},f:[{p:[46,3,1219],t:7,e:"h2",f:["Download in progress..."]}," ",{p:[47,3,1254],t:7,e:"div",a:{"class":"itemLabel"},f:["Downloaded file:"]}," ",{p:[50,3,1310],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_name",p:[51,4,1339]}]}," ",{p:[53,3,1374],t:7,e:"div",a:{"class":"itemLabel"},f:["Download progress:"]}," ",{p:[56,3,1432],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_progress",p:[57,4,1461]}," / ",{t:2,r:"data.download_size",p:[57,33,1490]}," GQ"]}," ",{p:[59,3,1527],t:7,e:"div",a:{"class":"itemLabel"},f:["Transfer speed:"]}," ",{p:[62,3,1582],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_netspeed",p:[63,4,1611]},"GQ/s"]}," ",{p:[65,3,1653],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[68,3,1702],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[69,4,1731],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:[72,3,1826],t:7,e:"h2",f:["Server enabled"]}," ",{p:[73,3,1852],t:7,e:"div",a:{"class":"itemLabel" ++},f:["Connected clients:"]}," ",{p:[76,3,1910],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_clients",p:[77,4,1939]}]}," ",{p:[79,3,1974],t:7,e:"div",a:{"class":"itemLabel"},f:["Provided file:"]}," ",{p:[82,3,2028],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_filename",p:[83,4,2057]}]}," ",{p:[85,3,2093],t:7,e:"div",a:{"class":"itemLabel"},f:["Server password:"]}," ",{p:[88,3,2149],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ENABLED"],n:50,r:"data.upload_haspassword",p:[89,4,2178]},{t:4,n:51,f:["DISABLED"],r:"data.upload_haspassword"}]}," ",{p:[95,3,2269],t:7,e:"div",a:{"class":"itemLabel"},f:["Commands:"]}," ",{p:[98,3,2318],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[99,4,2347],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[100,4,2411],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:[103,3,2509],t:7,e:"h2",f:["File transfer server ready. Select file to upload:"]}," ",{p:[104,3,2572],t:7,e:"table",f:[{p:[105,3,2582],t:7,e:"tr",f:[{p:[105,7,2586],t:7,e:"th",f:["File name"]},{p:[105,20,2599],t:7,e:"th",f:["File size"]},{p:[105,33,2612],t:7,e:"th",f:["Controls ",{t:4,f:[{p:[107,4,2661],t:7,e:"tr",f:[{p:[107,8,2665],t:7,e:"td",f:[{t:2,r:"filename",p:[107,12,2669]}]},{p:[108,4,2685],t:7,e:"td",f:[{t:2,r:"size",p:[108,8,2689]},"GQ"]},{p:[109,4,2703],t:7,e:"td",f:[{p:[109,8,2707],t:7,e:"ui-button",a:{action:"PRG_uploadfile",params:['{"id": "',{t:2,r:"uid",p:[109,59,2758]},'"}']},f:["Select"]}]}]}],n:52,r:"data.upload_filelist",p:[106,3,2627]}]}]}]}," ",{p:[112,3,2813],t:7,e:"hr"}," ",{p:[113,3,2820],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[114,3,2883],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:[116,3,2944],t:7,e:"h2",f:["Available files:"]}," ",{p:[117,3,2972],t:7,e:"table",a:{border:"1",style:"border-collapse: collapse"},f:[{p:[117,55,3024],t:7,e:"tr",f:[{p:[117,59,3028],t:7,e:"th",f:["Server UID"]},{p:[117,73,3042],t:7,e:"th",f:["File Name"]},{p:[117,86,3055],t:7,e:"th",f:["File Size"]},{p:[117,99,3068],t:7,e:"th",f:["Password Protection"]},{p:[117,122,3091],t:7,e:"th",f:["Operations ",{t:4,f:[{p:[119,5,3136],t:7,e:"tr",f:[{p:[119,9,3140],t:7,e:"td",f:[{t:2,r:"uid",p:[119,13,3144]}]},{p:[120,5,3156],t:7,e:"td",f:[{t:2,r:"filename",p:[120,9,3160]}]},{p:[121,5,3177],t:7,e:"td",f:[{t:2,r:"size",p:[121,9,3181]},"GQ ",{t:4,f:[{p:[123,6,3221],t:7,e:"td",f:["Enabled"]}],n:50,r:"haspassword",p:[122,5,3196]}," ",{t:4,f:[{p:[126,6,3275],t:7,e:"td",f:["Disabled"]}],n:50,x:{r:["haspassword"],s:"!_0"},p:[125,5,3249]}]},{p:[129,5,3309],t:7,e:"td",f:[{p:[129,9,3313],t:7,e:"ui-button",a:{action:"PRG_downloadfile",params:['{"id": "',{t:2,r:"uid",p:[129,62,3366]},'"}']},f:["Download"]}]}]}],n:52,r:"data.servers",p:[118,4,3109]}]}]}]}," ",{p:[132,3,3424],t:7,e:"hr"}," ",{p:[133,3,3431],t:7,e:"ui-button",a:{action:"PRG_uploadmenu"},f:["Send file"]}]}],r:"data.error"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],273:[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,67],t:7,e:"ui-button",a:{icon:"eject",style:"selected",action:"eject_disk"},f:["++++++++++"]}],n:50,r:"data.disk_present",p:[2,3,35]},{t:4,n:51,f:[{p:[5,7,168],t:7,e:"ui-button",a:{icon:"plus",action:"insert_disk"},f:["----------"]}],r:"data.disk_present"}]}," ",{p:[8,1,259],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[9,3,289],t:7,e:"span",f:[{t:2,r:"data.status1",p:[9,9,295]},"-",{t:2,r:"data.status2",p:[9,26,312]}]}]}," ",{p:[11,1,350],t:7,e:"ui-display",a:{title:"Timer"},f:[{p:[12,3,379],t:7,e:"ui-section",a:{label:"Time to Detonation"},f:[{p:[13,5,423],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[13,11,429]}]}]}," ",{t:4,f:[{p:[16,5,525],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[17,7,565],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_default"],s:'_0&&_1&&_2?null:"disabled"'},p:[17,40,598]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[19,7,768],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_min"],s:'_0&&_1&&_2?null:"disabled"'},p:[19,38,799]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[21,7,971],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[21,39,1003]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[22,7,1134],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_max"],s:'_0&&_1&&_2?null:"disabled"'},p:[22,37,1164]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[15,3,504]}," ",{p:[26,3,1369],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[27,5,1400],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[27,38,1433]}],action:"toggle_timer",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.safety"],s:'_0&&_1&&!_2?null:"disabled"'},p:[29,14,1514]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[30,7,1602]}]}]}]}," ",{p:[34,1,1680],t:7,e:"ui-display",a:{title:"Anchoring"},f:[{p:[35,3,1713],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[36,12,1735]}],icon:[{t:2,x:{r:["data.anchored"],s:'_0?"lock":"unlock"'},p:[37,11,1810]}],style:[{t:2,x:{r:["data.anchored"],s:'_0?null:"caution"'},p:[38,12,1860]}],action:"anchor"},f:[{t:2,x:{r:["data.anchored"],s:'_0?"Engaged":"Off"'},p:[39,21,1918]}]}]}," ",{p:[41,1,1982],t:7,e:"ui-display",a:{title:"Safety"},f:[{p:[42,3,2012],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[43,12,2034]}],icon:[{t:2,x:{r:["data.safety"],s:'_0?"lock":"unlock"'},p:[44,11,2109]}],action:"safety",style:[{t:2,x:{r:["data.safety"],s:'_0?"caution":"danger"'},p:[45,12,2173]}]},f:[{p:[46,7,2220],t:7,e:"span",f:[{t:2,x:{r:["data.safety"],s:'_0?"On":"Off"'},p:[46,13,2226]}]}]}]}," ",{p:[49,1,2293],t:7,e:"ui-display",a:{title:"Code"},f:[{p:[50,3,2321],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.message",p:[50,31,2349]}]}," ",{p:[51,3,2381],t:7,e:"ui-section",a:{label:"Keypad"},f:[{p:[52,5,2413],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[52,39,2447]}],params:'{"digit":"1"}'},f:["1"]}," ",{p:[53,5,2531],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[53,39,2565]}],params:'{"digit":"2"}'},f:["2"]}," ",{p:[54,5,2649],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[54,39,2683]}],params:'{"digit":"3"}'},f:["3"]}," ",{p:[55,5,2767],t:7,e:"br"}," ",{p:[56,5,2776],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[56,39,2810]}],params:'{"digit":"4"}'},f:["4"]}," ",{p:[57,5,2894],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[57,39,2928]}],params:'{"digit":"5"}'},f:["5"]}," ",{p:[58,5,3012],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[58,39,3046]}],params:'{"digit":"6"}'},f:["6"]}," ",{p:[59,5,3130],t:7,e:"br"}," ",{p:[60,5,3139],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[60,39,3173]}],params:'{"digit":"7"}'},f:["7"]}," ",{p:[61,5,3257],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[61,39,3291]}],params:'{"digit":"8"}'},f:["8"]}," ",{p:[62,5,3375],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[62,39,3409]}],params:'{"digit":"9"}'},f:["9"]}," ",{p:[63,5,3493],t:7,e:"br"}," ",{p:[64,5,3502],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[64,39,3536]}],params:'{"digit":"R"}'},f:["R"]}," ",{p:[65,5,3620],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[65,39,3654]}],params:'{"digit":"0"}'},f:["0"]}," ",{p:[66,5,3738],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[66,39,3772]}],params:'{"digit":"E"}'},f:["E"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],274:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(305);e.exports={data:{filter:"",tooltiptext:function(t,e,n){var a="";return t&&(a+="REQUIREMENTS: "+t+" "),e&&(a+="CATALYSTS: "+e+" "),n&&(a+="TOOLS: "+n),a}},oninit:function(){var t=this;this.on({hover:function(t){this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}}),this.observe("filter",function(e,a,r){var i=null;i=t.get("data.display_compact")?t.findAll(".section"):t.findAll(".display:not(:first-child)"),(0,n.filterMulti)(i,t.get("filter").toLowerCase())},{init:!1})}}}(r),r.exports.template={v:3,t:[" ",{p:[48,1,1295],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[48,20,1314]}]},f:[{t:4,f:[{p:[50,3,1355],t:7,e:"ui-section",f:["Crafting... ",{p:[51,16,1383],t:7,e:"i",a:{"class":"fa-spin fa fa-spinner"}}]}],n:50,r:"data.busy",p:[49,2,1335]},{t:4,n:51,f:[{p:[54,3,1449],t:7,e:"ui-section",f:[{p:[55,4,1465],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[56,5,1520]}]}," ",{p:[58,4,1557],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[59,5,1612]}]}," ",{t:4,f:[{p:[62,5,1689],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[61,4,1649]},{t:4,n:51,f:[{p:[66,5,1801],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}," ",{p:[70,4,1907],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[70,21,1924]}],action:"toggle_compact"},f:["Compact"]}," ",{t:4,f:[{t:4,f:[" ",{p:[75,6,2152],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[75,23,2169]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[74,5,2063]}],n:50,r:"config.fancy",p:[73,4,2038]}]}," ",{t:4,f:[{p:[80,5,2299],t:7,e:"ui-display",f:[{t:4,f:[{p:[82,6,2346],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[82,25,2365]}]},f:[{p:[83,7,2382],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[83,27,2402]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[83,135,2510]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[81,5,2316]}," ",{t:4,f:[{t:4,f:[{p:[90,7,2712],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[90,26,2731]}]},f:[{p:[91,8,2749],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[91,28,2769]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[89,6,2680]}],n:51,r:"data.display_craftable_only",p:[88,5,2642]}]}],n:50,r:"data.display_compact",p:[79,4,2266]},{t:4,n:51,f:[{t:4,f:[{p:[100,6,3082],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[100,25,3101]}]},f:[{t:4,f:[{p:[102,8,3142],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[103,9,3184]}]}],n:50,r:"req_text",p:[101,7,3118]}," ",{t:4,f:[{p:[107,8,3267],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[108,9,3306]}]}],n:50,r:"catalyst_text",p:[106,7,3238]}," ",{t:4,f:[{p:[112,8,3390],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[113,9,3425]}]}],n:50,r:"tool_text",p:[111,7,3365]}," ",{p:[116,7,3480],t:7,e:"ui-section",f:[{p:[117,8,3500],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[117,66,3558]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[99,5,3052]}," ",{t:4,f:[{t:4,f:[{p:[125,7,3731],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[125,26,3750]}]},f:[{t:4,f:[{p:[127,9,3793],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[128,10,3836]}]}],n:50,r:"req_text",p:[126,8,3768]}," ",{t:4,f:[{p:[132,9,3923],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[133,10,3963]}]}],n:50,r:"catalyst_text",p:[131,8,3893]}," ",{t:4,f:[{p:[137,9,4051],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[138,10,4087]}]}],n:50,r:"tool_text",p:[136,8,4025]}]}],n:52,r:"data.cant_craft",p:[124,6,3699]}],n:51,r:"data.display_craftable_only",p:[123,5,3661]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{205:205,305:305}],275:[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}],276:[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}],277:[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}],278:[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,994],t:7,e:"div",a:{style:"float: left"},f:[{p:[43,2,1021],t:7,e:"div",a:{"class":"item"},f:[{p:[44,3,1042],t:7,e:"table",f:[{p:[44,10,1049],t:7,e:"tr",f:[{t:4,f:[{p:[46,4,1114],t:7,e:"td",f:[{p:[46,8,1118],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[46,18,1128]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[45,3,1056]}," ",{t:4,f:[{p:[49,4,1227],t:7,e:"td",f:[{p:[49,8,1231],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[49,11,1234]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[48,3,1166]}," ",{t:4,f:[{p:[52,4,1306],t:7,e:"td",f:[{p:[52,8,1310],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[52,18,1320]}]}}]}],n:50,r:"data.PC_ntneticon",p:[51,3,1277]}," ",{t:4,f:[{p:[55,4,1387],t:7,e:"td",f:[{p:[55,8,1391],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[55,18,1401]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[54,3,1356]}," ",{t:4,f:[{p:[58,4,1470],t:7,e:"td",f:[{p:[58,8,1474],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[58,11,1477]},{p:[58,34,1500],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[57,3,1439]}," ",{t:4,f:[{p:[61,4,1552],t:7,e:"td",f:[{p:[61,8,1556],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[61,18,1566]}]}}]}],n:52,r:"data.PC_programheaders",p:[60,3,1516]}]}]}]}]}," ",{p:[66,1,1615],t:7,e:"div",a:{style:"float: right"},f:[{p:[67,2,1643],t:7,e:"table",f:[{p:[67,9,1650],t:7,e:"tr",f:[{p:[68,3,1657],t:7,e:"td",f:[{p:[68,7,1661],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[70,4,1751],t:7,e:"td",f:[{p:[70,8,1755],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[71,4,1811],t:7,e:"td",f:[{p:[71,8,1815],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[69,3,1716]}]}]}]}]}," ",{p:[75,1,1903],t:7,e:"div",a:{style:"clear: both"},f:[{p:[77,1,1930],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[79,5,1986],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[79,27,2008]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[81,38,2158]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[82,15,2213]}],yinc:"9"}}],n:50,r:"config.fancy",p:[78,3,1961]},{t:4,n:51,f:[{p:[84,5,2261],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[85,7,2298],t:7,e:"span",f:[{t:2,r:"data.supply",p:[85,13,2304]}," W"]}]}," ",{p:[87,5,2351],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[88,9,2385],t:7,e:"span",f:[{t:2,r:"data.demand",p:[88,15,2391]}," W"]}]}],r:"config.fancy"}]}," ",{p:[92,1,2458],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[93,3,2487],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[94,5,2511],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[95,5,2547],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[96,5,2585],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[97,5,2621],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[98,5,2659],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[99,5,2700],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[100,5,2740],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[103,5,2822],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[103,24,2841]}],nowrap:0},f:[{p:[104,7,2865],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[104,28,2886]}," %"]}," ",{p:[105,7,2943],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[105,28,2964]}," W"]}," ",{p:[106,7,3019],t:7,e:"div",a:{"class":"content"},f:[{p:[106,28,3040],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[106,41,3053]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[106,70,3082]}]}]}," ",{p:[107,7,3128],t:7,e:"div",a:{"class":"content"},f:[{p:[107,28,3149],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[107,41,3162]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[107,64,3185]}," [",{p:[107,87,3208],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[107,93,3214]}]},"]"]}]}," ",{p:[108,7,3262],t:7,e:"div",a:{"class":"content"},f:[{p:[108,28,3283],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[108,41,3296]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[108,64,3319]}," [",{p:[108,87,3342],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[108,93,3348]}]},"]"]}]}," ",{p:[109,7,3396],t:7,e:"div",a:{"class":"content"},f:[{p:[109,28,3417],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[109,41,3430]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[109,64,3453]}," [",{p:[109,87,3476],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[109,93,3482]}]},"]"]}]}]}],n:52,r:"data.areas",p:[102,3,2797]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],279:[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,167],t:7,e:"ui-display",a:{title:"Settings"},f:[{t:4,f:[{p:[13,5,224],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,7,257],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[14,24,274]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[14,75,325]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"On":"Off"'},p:[16,9,398]}]}]}],n:50,r:"data.headset",p:[12,3,199]},{t:4,n:51,f:[{p:[19,5,476],t:7,e:"ui-section",a:{label:"Microphone"},f:[{p:[20,7,514],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.broadcasting"],s:'_0?"power-off":"close"'},p:[20,24,531]}],style:[{t:2,x:{r:["data.broadcasting"],s:'_0?"selected":null'},p:[20,78,585]}],action:"broadcast"},f:[{t:2,x:{r:["data.broadcasting"],s:'_0?"Engaged":"Disengaged"'},p:[22,9,664]}]}]}," ",{p:[24,5,746],t:7,e:"ui-section",a:{label:"Speaker"},f:[{p:[25,7,781],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[25,24,798]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[25,75,849]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"Engaged":"Disengaged"'},p:[27,9,922]}]}]}],r:"data.headset"}," ",{t:4,f:[{p:[31,5,1034],t:7,e:"ui-section",a:{label:"High Volume"},f:[{p:[32,7,1073],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.useCommand"],s:'_0?"power-off":"close"'},p:[32,24,1090]}],style:[{t:2,x:{r:["data.useCommand"],s:'_0?"selected":null'},p:[32,76,1142]}],action:"command"},f:[{t:2,x:{r:["data.useCommand"],s:'_0?"On":"Off"'},p:[34,9,1217]}]}]}],n:50,r:"data.command",p:[30,3,1009]}]}," ",{p:[38,1,1305],t:7,e:"ui-display",a:{title:"Channel"},f:[{p:[39,3,1336],t:7,e:"ui-section",a:{label:"Frequency"},f:[{t:4,f:[{p:[41,7,1399],t:7,e:"span",f:[{t:2,r:"readableFrequency",p:[41,13,1405]}]}],n:50,r:"data.freqlock",p:[40,5,1371]},{t:4,n:51,f:[{p:[43,7,1453],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[43,46,1492]}],action:"frequency",params:'{"adjust": -1}'}}," ",{p:[44,7,1603],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[44,41,1637]}],action:"frequency",params:'{"adjust": -.2}'}}," ",{p:[45,7,1749],t:7,e:"ui-button",a:{icon:"pencil",action:"frequency",params:'{"tune": "input"}'},f:[{t:2,r:"readableFrequency",p:[45,78,1820]}]}," ",{p:[46,7,1860],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[46,40,1893]}],action:"frequency",params:'{"adjust": .2}'}}," ",{p:[47,7,2004],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[47,45,2042]}],action:"frequency",params:'{"adjust": 1}'}}],r:"data.freqlock"}]}," ",{t:4,f:[{p:[51,5,2212],t:7,e:"ui-section",a:{label:"Subspace Transmission"},f:[{p:[52,7,2261],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.subspace"],s:'_0?"power-off":"close"'},p:[52,24,2278]}],style:[{t:2,x:{r:["data.subspace"],s:'_0?"selected":null'},p:[52,74,2328]}],action:"subspace"},f:[{t:2,x:{r:["data.subspace"],s:'_0?"Active":"Inactive"'},p:[53,29,2395]}]}]}],n:50,r:"data.subspaceSwitchable",p:[50,3,2176]}," ",{t:4,f:[{p:[57,5,2522],t:7,e:"ui-section",a:{label:"Channels"},f:[{t:4,f:[{p:[59,9,2598],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["."],s:'_0?"check-square-o":"square-o"'},p:[59,26,2615]}],style:[{t:2,x:{r:["."],s:'_0?"selected":null'},p:[60,18,2671]}],action:"channel",params:['{"channel": "',{t:2,r:"channel",p:[61,49,2746]},'"}']},f:[{t:2,r:"channel",p:[62,11,2772]}]},{p:[62,34,2795],t:7,e:"br"}],n:52,i:"channel",r:"data.channels",p:[58,7,2558]}]}],n:50,x:{r:["data.subspace","data.channels"],s:"_0&&_1"},p:[56,3,2479]}]}]},e.exports=a.extend(r.exports)},{205:205}],280:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"], ++s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{p:[37,1,937],t:7,e:"ui-display",f:[{p:[38,2,951],t:7,e:"div",a:{"class":"item"},f:[{p:[39,3,972],t:7,e:"div",a:{"class":"itemLabel"},f:["Payload status:"]}," ",{p:[42,3,1026],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ARMED"],n:50,r:"data.armed",p:[43,4,1055]},{t:4,n:51,f:["DISARMED"],r:"data.armed"}]}," ",{p:[49,3,1131],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[52,3,1179],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[53,4,1208],t:7,e:"table",f:[{p:[54,4,1219],t:7,e:"tr",f:[{p:[54,8,1223],t:7,e:"td",f:[{p:[54,12,1227],t:7,e:"ui-button",a:{action:"PRG_obfuscate"},f:["OBFUSCATE PROGRAM NAME"]}]}]},{p:[55,4,1299],t:7,e:"tr",f:[{p:[55,8,1303],t:7,e:"td",f:[{p:[55,12,1307],t:7,e:"ui-button",a:{action:"PRG_arm",state:[{t:2,x:{r:["data.armed"],s:'_0?"danger":null'},p:[55,47,1342]}]},f:[{t:2,x:{r:["data.armed"],s:'_0?"DISARM":"ARM"'},p:[55,81,1376]}]}," ",{p:[56,4,1425],t:7,e:"ui-button",a:{icon:"radiation",state:[{t:2,x:{r:["data.armed"],s:'_0?null:"disabled"'},p:[56,39,1460]}],action:"PRG_activate"},f:["ACTIVATE"]}]}]}]}]}]}]}]}]},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:[{t:4,f:[{p:[2,3,22],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,38]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,77],t:7,e:"ui-display",a:{title:"Satellite Network Control",button:0},f:[{t:4,f:[{p:[8,4,161],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[9,9,201],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[9,31,223]}]}," ",{p:[10,9,244],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"mode",p:[10,30,265]}]}," ",{p:[11,9,288],t:7,e:"div",a:{"class":"content"},f:[{p:[12,11,320],t:7,e:"ui-button",a:{action:"toggle",params:['{"id": "',{t:2,r:"id",p:[12,54,363]},'"}']},f:[{t:2,x:{r:["active"],s:'_0?"Deactivate":"Activate"'},p:[12,64,373]}]}]}]}],n:52,r:"data.satellites",p:[7,2,132]}]}," ",{t:4,f:[{p:[18,1,511],t:7,e:"ui-display",a:{title:"Station Shield Coverage"},f:[{p:[19,3,558],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.meteor_shield_coverage_max",p:[19,24,579]}],value:[{t:2,r:"data.meteor_shield_coverage",p:[19,68,623]}]},f:[{t:2,x:{r:["data.meteor_shield_coverage","data.meteor_shield_coverage_max"],s:"100*_0/_1"},p:[19,101,656]}," %"]}," ",{p:[20,1,739],t:7,e:"ui-display",f:[]}]}],n:50,r:"data.meteor_shield",p:[17,1,484]}]},e.exports=a.extend(r.exports)},{205:205}],282:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," ",{p:[5,1,196],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[5,16,211]}]},f:[{p:[6,2,228],t:7,e:"tab",a:{name:"Status"},f:[{p:[7,3,250],t:7,e:"status"}]}," ",{p:[9,2,269],t:7,e:"tab",a:{name:"Templates"},f:[{p:[10,3,294],t:7,e:"templates"}]}," ",{p:[12,2,316],t:7,e:"tab",a:{name:"Modification"},f:[{t:4,f:[{p:[14,3,368],t:7,e:"modification"}],n:50,r:"data.selected",p:[13,3,344]}," ",{t:4,f:[{p:[17,3,421],t:7,e:"span",a:{"class":"bad"},f:["No shuttle selected."]}],n:50,x:{r:["data.selected"],s:"!_0"},p:[16,3,396]}]}]}]},r.exports.components=r.exports.components||{};var i={modification:t(283),templates:t(285),status:t(284)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,283:283,284:284,285:285}],283:[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,94],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.selected.description",p:[3,37,126]}]}],n:50,r:"data.selected.description",p:[2,3,56]}," ",{t:4,f:[{p:[6,5,219],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"data.selected.admin_notes",p:[6,37,251]}]}],n:50,r:"data.selected.admin_notes",p:[5,3,181]}]}," ",{t:4,f:[{p:[11,3,351],t:7,e:"ui-display",a:{title:["Existing Shuttle: ",{t:2,r:"data.existing_shuttle.name",p:[11,40,388]}]},f:["Status: ",{t:2,r:"data.existing_shuttle.status",p:[12,13,433]}," ",{t:4,f:["(",{t:2,r:"data.existing_shuttle.timeleft",p:[14,8,513]},")"],n:50,r:"data.existing_shuttle.timer",p:[13,5,470]}," ",{p:[16,5,565],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"data.existing_shuttle.id",p:[17,41,633]},'"}']},f:["Jump To"]}]}],n:50,r:"data.existing_shuttle",p:[10,1,319]},{t:4,f:[{p:[24,3,755],t:7,e:"ui-display",a:{title:"Existing Shuttle: None"}}],n:50,x:{r:["data.existing_shuttle"],s:"!_0"},p:[23,1,722]},{p:[27,1,821],t:7,e:"ui-button",a:{action:"preview",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[28,27,875]},'"}']},f:["Preview"]}," ",{p:[31,1,931],t:7,e:"ui-button",a:{action:"load",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[32,27,982]},'"}'],style:"danger"},f:["Load"]}," ",{p:[37,1,1053],t:7,e:"ui-display",a:{title:"Status"},f:[]}]},e.exports=a.extend(r.exports)},{205:205}],284:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,26],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,45]}," (",{t:2,r:"id",p:[2,32,55]},")"]},f:[{t:2,r:"status",p:[3,5,69]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[5,8,105]},")"],n:50,r:"timer",p:[4,5,84]}," ",{p:[7,5,135],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[7,67,197]},'"}']},f:["Jump To"]}," ",{p:[10,5,243],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[10,53,291]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[10,70,308]}]},f:["Fast Travel"]}]}],n:52,r:"data.shuttles",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],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-tabs",a:{tabs:[{t:2,r:"data.templates_tabs",p:[1,16,15]}]},f:[{t:4,f:[{p:[3,5,72],t:7,e:"tab",a:{name:[{t:2,r:"port_id",p:[3,16,83]}]},f:[{t:4,f:[{p:[5,9,131],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[5,28,150]}]},f:[{t:4,f:[{p:[7,13,203],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[7,45,235]}]}],n:50,r:"description",p:[6,11,171]}," ",{t:4,f:[{p:[10,13,324],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"admin_notes",p:[10,45,356]}]}],n:50,r:"admin_notes",p:[9,11,292]}," ",{p:[13,11,414],t:7,e:"ui-button",a:{action:"select_template",params:['{"shuttle_id": "',{t:2,r:"shuttle_id",p:[14,37,486]},'"}'],state:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"selected":null'},p:[15,20,523]}]},f:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"Selected":"Select"'},p:[17,13,614]}]}]}],n:52,r:"templates",p:[4,7,103]}]}],n:52,r:"data.templates",p:[2,3,43]}]}]},e.exports=a.extend(r.exports)},{205:205}],286:[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}],287:[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-section",a:{label:[{t:2,r:"name",p:[2,22,43]}],labelcolor:[{t:2,r:"htmlcolor",p:[2,44,65]}],candystripe:0,right:0},f:[{p:[3,5,103],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,32,130],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0=="Dead"?"bad bold":_0=="Unconscious"?"average bold":"good"'},p:[3,45,143]}]},f:[{t:2,r:"status",p:[3,132,230]}]}]}," ",{p:[4,5,265],t:7,e:"ui-section",a:{label:"Jelly"},f:[{t:2,r:"exoticblood",p:[4,31,291]}]}," ",{p:[5,5,324],t:7,e:"ui-section",a:{label:"Location"},f:[{t:2,r:"area",p:[5,34,353]}]}," ",{p:[7,5,380],t:7,e:"ui-button",a:{state:[{t:2,r:"swap_button_state",p:[8,14,404]}],action:"swap",params:['{"ref": "',{t:2,r:"ref",p:[9,38,464]},'"}']},f:[{t:2,x:{r:["is_current"],s:'_0?"You Are Here":"Swap"'},p:[10,7,482]}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},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:{capacityPercentState:function(){var t=this.get("data.capacityPercent");return t>50?"good":t>15?"average":"bad"},inputState:function(){return this.get("data.capacityPercent")>=100?"good":this.get("data.inputting")?"average":"bad"},outputState:function(){return this.get("data.outputting")?"good":this.get("data.charge")>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[24,1,640],t:7,e:"ui-display",a:{title:"Storage"},f:[{p:[25,3,671],t:7,e:"ui-section",a:{label:"Stored Energy"},f:[{p:[26,5,710],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.capacityPercent",p:[26,38,743]}],state:[{t:2,r:"capacityPercentState",p:[26,71,776]}]},f:[{t:2,x:{r:["adata.capacityPercent"],s:"Math.fixed(_0)"},p:[26,97,802]},"%"]}]}]}," ",{p:[29,1,880],t:7,e:"ui-display",a:{title:"Input"},f:[{p:[30,3,909],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{p:[31,5,946],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"refresh":"close"'},p:[31,22,963]}],style:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"selected":null'},p:[31,74,1015]}],action:"tryinput"},f:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"Auto":"Off"'},p:[32,25,1082]}]},"   [",{p:[34,6,1149],t:7,e:"span",a:{"class":[{t:2,r:"inputState",p:[34,19,1162]}]},f:[{t:2,x:{r:["data.capacityPercent","data.inputting"],s:'_0>=100?"Fully Charged":_1?"Charging":"Not Charging"'},p:[34,35,1178]}]},"]"]}," ",{p:[36,3,1300],t:7,e:"ui-section",a:{label:"Target Input"},f:[{p:[37,5,1338],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.inputLevelMax",p:[37,26,1359]}],value:[{t:2,r:"data.inputLevel",p:[37,57,1390]}]},f:[{t:2,x:{r:["adata.inputLevel"],s:"Math.round(_0)"},p:[37,78,1411]},"W"]}]}," ",{p:[39,3,1471],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1509],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1548]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1642],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1676]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1771],t:7,e:"ui-button",a:{icon:"pencil",action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1860],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,1893]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,2004],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,2042]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2167],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2200],t:7,e:"span",f:[{t:2,x:{r:["adata.inputAvailable"],s:"Math.round(_0)"},p:[47,9,2206]},"W"]}]}]}," ",{p:[50,1,2280],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2310],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2347],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2364]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2419]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2488]}]},"   [",{p:[55,6,2554],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2567]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2584]}]},"]"]}," ",{p:[57,3,2689],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2728],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2749]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2781]}]},f:[{t:2,x:{r:["adata.outputLevel"],s:"Math.round(_0)"},p:[58,80,2803]},"W"]}]}," ",{p:[60,3,2864],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2903],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,2942]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3038],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3072]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3169],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3259],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,3292]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3406],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,3444]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3572],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3606],t:7,e:"span",f:[{t:2,x:{r:["adata.outputUsed"],s:"Math.round(_0)"},p:[68,9,3612]},"W"]}]}]}]},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:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,30],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{t:2,x:{r:["adata.generated"],s:"Math.round(_0)"},p:[3,5,71]},"W"]}," ",{p:[5,3,122],t:7,e:"ui-section",a:{label:"Orientation"},f:[{p:[6,5,159],t:7,e:"span",f:[{t:2,x:{r:["adata.angle"],s:"Math.round(_0)"},p:[6,11,165]},"° (",{t:2,r:"data.direction",p:[6,45,199]},")"]}]}," ",{p:[8,3,244],t:7,e:"ui-section",a:{label:"Adjust Angle"},f:[{p:[9,5,282],t:7,e:"ui-button",a:{icon:"step-backward",action:"angle",params:'{"adjust": -15}'},f:["15°"]}," ",{p:[10,5,378],t:7,e:"ui-button",a:{icon:"backward",action:"angle",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[11,5,467],t:7,e:"ui-button",a:{icon:"forward",action:"angle",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[12,5,554],t:7,e:"ui-button",a:{icon:"step-forward",action:"angle",params:'{"adjust": 15}'},f:["15°"]}]}]}," ",{p:[15,1,673],t:7,e:"ui-display",a:{title:"Tracking"},f:[{p:[16,3,705],t:7,e:"ui-section",a:{label:"Tracker Mode"},f:[{p:[17,5,743],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==0?"selected":null'},p:[17,36,774]}],action:"tracking",params:'{"mode": 0}'},f:["Off"]}," ",{p:[19,5,889],t:7,e:"ui-button",a:{icon:"clock-o",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==1?"selected":null'},p:[19,38,922]}],action:"tracking",params:'{"mode": 1}'},f:["Timed"]}," ",{p:[21,5,1039],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.connected_tracker","data.tracking_state"],s:'_0?_1==2?"selected":null:"disabled"'},p:[21,38,1072]}],action:"tracking",params:'{"mode": 2}'},f:["Auto"]}]}," ",{p:[24,3,1239],t:7,e:"ui-section",a:{label:"Tracking Rate"},f:[{p:[25,3,1276],t:7,e:"span",f:[{t:2,x:{r:["adata.tracking_rate"],s:"Math.round(_0)"},p:[25,9,1282]},"°/h (",{t:2,r:"data.rotating_way",p:[25,53,1326]},")"]}]}," ",{p:[27,3,1373],t:7,e:"ui-section",a:{label:"Adjust Rate"},f:[{p:[28,5,1410],t:7,e:"ui-button",a:{icon:"fast-backward",action:"rate",params:'{"adjust": -180}'},f:["180°"]}," ",{p:[29,5,1507],t:7,e:"ui-button",a:{icon:"step-backward",action:"rate",params:'{"adjust": -30}'},f:["30°"]}," ",{p:[30,5,1602],t:7,e:"ui-button",a:{icon:"backward",action:"rate",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[31,5,1690],t:7,e:"ui-button",a:{icon:"forward",action:"rate",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[32,5,1776],t:7,e:"ui-button",a:{icon:"step-forward",action:"rate",params:'{"adjust": 30}'},f:["30°"]}," ",{p:[33,5,1869],t:7,e:"ui-button",a:{icon:"fast-forward",action:"rate",params:'{"adjust": 180}'},f:["180°"]}]}]}," ",{p:{button:[{p:[38,5,2051],t:7,e:"ui-button",a:{icon:"refresh",action:"refresh"},f:["Refresh"]}]},t:7,e:"ui-display",a:{title:"Devices",button:0},f:[" ",{p:[40,2,2130],t:7,e:"ui-section",a:{label:"Solar Tracker"},f:[{p:[41,5,2169],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_tracker"],s:'_0?"good":"bad"'},p:[41,18,2182]}]},f:[{t:2,x:{r:["data.connected_tracker"],s:'_0?"":"Not "'},p:[41,63,2227]},"Found"]}]}," ",{p:[43,2,2296],t:7,e:"ui-section",a:{label:"Solar Panels"},f:[{p:[44,3,2332],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_panels"],s:'_0?"good":"bad"'},p:[44,16,2345]}]},f:[{t:2,x:{r:["adata.connected_panels"],s:"Math.round(_0)"},p:[44,60,2389]}," Panels Connected"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],290:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,7,84],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[4,38,115]}],action:"eject"},f:["Eject"]}],n:50,r:"data.open",p:[3,5,60]}]},t:7,e:"ui-display",a:{title:"Power",button:0},f:[" ",{p:[7,3,220],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[8,5,251],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[8,22,268]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[9,14,318]}],state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[9,54,358]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[10,22,422]}]}]}," ",{p:[12,3,479],t:7,e:"ui-section",a:{label:"Cell"},f:[{t:4,f:[{p:[14,7,541],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerLevel",p:[14,40,574]}]},f:[{t:2,x:{r:["adata.powerLevel"],s:"Math.fixed(_0)"},p:[14,61,595]},"%"]}],n:50,r:"data.hasPowercell",p:[13,5,509]},{t:4,n:51,f:[{p:[16,4,652],t:7,e:"span",a:{"class":"bad"},f:["No Cell"]}],r:"data.hasPowercell"}]}]}," ",{p:[20,1,725],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[21,3,759],t:7,e:"ui-section",a:{label:"Current Temperature"},f:[{p:[22,3,802],t:7,e:"span",f:[{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[22,9,808]},"°C"]}]}," ",{p:[24,2,871],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[25,3,913],t:7,e:"span",f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[25,9,919]},"°C"]}]}," ",{t:4,f:[{p:[28,5,1004],t:7,e:"ui-section",a:{label:"Adjust Target"},f:[{p:[29,7,1045],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[29,46,1084]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[30,7,1189],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[30,41,1223]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[31,7,1327],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:["Set"]}," ",{p:[32,7,1419],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[32,40,1452]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[33,7,1555],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[33,45,1593]}],action:"target",params:'{"adjust": 20}'}}]}],n:50,r:"data.open",p:[27,3,982]}," ",{p:[36,3,1719],t:7,e:"ui-section",a:{label:"Mode"},f:[{t:4,f:[{p:[38,7,1771],t:7,e:"ui-button",a:{icon:"long-arrow-up",state:[{t:2,x:{r:["data.mode"],s:'_0=="heat"?"selected":null'},p:[38,46,1810]}],action:"mode",params:'{"mode": "heat"}'},f:["Heat"]}," ",{p:[39,7,1918],t:7,e:"ui-button",a:{icon:"long-arrow-down",state:[{t:2,x:{r:["data.mode"],s:'_0=="cool"?"selected":null'},p:[39,48,1959]}],action:"mode",params:'{"mode": "cool"}'},f:["Cool"]}," ",{p:[40,7,2067],t:7,e:"ui-button",a:{icon:"arrows-v",state:[{t:2,x:{r:["data.mode"],s:'_0=="auto"?"selected":null'},p:[40,41,2101]}],action:"mode",params:'{"mode": "auto"}'},f:["Auto"]}],n:50,r:"data.open",p:[37,3,1747]},{t:4,n:51,f:[{p:[42,4,2217],t:7,e:"span",f:[{t:2,x:{r:["text","data.mode"],s:"_0.titleCase(_1)"},p:[42,10,2223]}]}],r:"data.open"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],291:[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}],292:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,1],t:7,e:"div",a:{style:"float: left"},f:[{p:[3,2,28],t:7,e:"div",a:{"class":"item"},f:[{p:[4,3,49],t:7,e:"table",f:[{p:[4,10,56],t:7,e:"tr",f:[{t:4,f:[{p:[6,4,121],t:7,e:"td",f:[{p:[6,8,125],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[6,18,135]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[5,3,63]}," ",{t:4,f:[{p:[9,4,234],t:7,e:"td",f:[{p:[9,8,238],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[9,11,241]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[8,3,173]}," ",{t:4,f:[{p:[12,4,313],t:7,e:"td",f:[{p:[12,8,317],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[12,18,327]}]}}]}],n:50,r:"data.PC_ntneticon",p:[11,3,284]}," ",{t:4,f:[{p:[15,4,394],t:7,e:"td",f:[{p:[15,8,398],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[15,18,408]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[14,3,363]}," ",{t:4,f:[{p:[18,4,477],t:7,e:"td",f:[{p:[18,8,481],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[18,11,484]},{p:[18,34,507],t:7,e:"b",f:[]}]}]}],n:50,r:"data.PC_stationtime",p:[17,3,446]}," ",{t:4,f:[{p:[21,4,559],t:7,e:"td",f:[{p:[21,8,563],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[21,18,573]}]}}]}],n:52,r:"data.PC_programheaders",p:[20,3,523]}]}]}]}]}," ",{p:[26,1,622],t:7,e:"div",a:{style:"float: right"},f:[{p:[27,2,650],t:7,e:"table",f:[{p:[27,9,657],t:7,e:"tr",f:[{p:[28,3,664],t:7,e:"td",f:[{p:[28,7,668],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[30,4,758],t:7,e:"td",f:[{p:[30,8,762],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}]},{p:[31,4,818],t:7,e:"td",f:[{p:[31,8,822],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}]}],n:50,r:"data.PC_showexitprogram",p:[29,3,723]}]}]}]}]}," ",{p:[35,1,910],t:7,e:"div",a:{style:"clear: both"},f:[{t:4,f:[{p:[38,3,967],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[38,22,986]}," Alarms"]},f:[{p:[39,5,1009],t:7,e:"ul",f:[{t:4,f:[{p:[41,9,1040],t:7,e:"li",f:[{t:2,r:".",p:[41,13,1044]}]}],n:52,r:".",p:[40,7,1020]},{t:4,n:51,f:[{p:[43,9,1078],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[37,1,937]}]}]},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:[{t:4,f:[{p:[2,3,41],t:7,e:"ui-notice",f:[{p:[3,5,57],t:7,e:"span",f:["Biological entity detected in contents. Please remove."]}]}],n:50,x:{r:["data.occupied","data.safeties"],s:"_0&&_1"},p:[1,1,0]},{t:4,f:[{p:[7,3,173],t:7,e:"ui-notice",f:[{p:[8,5,189],t:7,e:"span",f:["Contents are being disinfected. Please wait."]}]}],n:50,r:"data.uv_active",p:[6,1,148]},{t:4,n:51,f:[{p:{button:[{t:4,f:[{p:[13,25,357],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,374]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,425]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,339]}," ",{t:4,f:[{p:[14,27,506],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,523]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,577]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,486]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,676],t:7,e:"ui-notice",f:[{p:[18,9,696],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,650]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,773],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,811],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,828]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,875]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,970]}]}]}," ",{p:[25,9,1039],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1075],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1092]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1138]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1229]}]}]}," ",{p:[29,9,1296],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1332],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1349]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1395]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1486]}]}]}," ",{p:[33,9,1553],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1592],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1609]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1658]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1755]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1836],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,1869]}],action:"uv"},f:["Disinfect"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{205:205}],294:[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}],295:[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,282],t:7,e:"ui-notice",f:[{p:[15,3,296],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.connected"],s:'_0?"is":"is not"'},p:[15,23,316]}," connected to a mask."]}]}," ",{p:[17,1,393],t:7,e:"ui-display",f:[{p:[18,3,408],t:7,e:"ui-section",a:{label:"Tank Pressure"},f:[{p:[19,7,449],t:7,e:"ui-bar",a:{min:"0",max:"1013",value:[{t:2,r:"data.tankPressure",p:[19,41,483]}],state:[{t:2,r:"tankPressureState",p:[20,16,521]}]},f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[20,39,544]}," kPa"]}]}," ",{p:[22,3,610],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[23,5,652],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[23,18,665]}],max:[{t:2,r:"data.maxReleasePressure",p:[23,52,699]}],value:[{t:2,r:"data.releasePressure",p:[24,14,741]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[24,40,767]}," kPa"]}]}," ",{p:[26,3,836],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,880],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,913]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1067],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1098]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{ ++p:[31,5,1243],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1337],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1367]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],296:[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}],297:[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}],298:[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,279],t:7,e:"ui-display",f:[{t:4,f:[{p:[16,3,318],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[17,4,357],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[18,5,387]}]}," ",{p:[20,4,431],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[21,5,463]}]}," ",{p:[23,4,509],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,5,541],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[24,26,562]}],value:[{t:2,r:"adata.vr_avatar.health",p:[24,64,600]}],state:[{t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[24,99,635]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[24,140,676]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[24,179,715]}]}]}]}],n:50,r:"data.vr_avatar",p:[15,2,293]},{t:4,n:51,f:[{p:[28,3,799],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[32,2,891],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[33,3,926],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[33,20,943]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[34,4,1009]}," the VR Sleeper"]}," ",{t:4,f:[{p:[37,4,1108],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[36,3,1081]}," ",{t:4,f:[{p:[42,4,1226],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[41,3,1200]}]}]}]},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:[{p:[1,1,0],t:7,e:"ui-display",f:[{t:4,f:[{p:[3,5,40],t:7,e:"ui-section",a:{label:[{t:2,r:"color",p:[3,24,59]},{t:2,x:{r:["wire"],s:'_0?" ("+_0+")":""'},p:[3,33,68]}],labelcolor:[{t:2,r:"color",p:[3,80,115]}],candystripe:0,right:0},f:[{p:[4,7,151],t:7,e:"ui-button",a:{action:"cut",params:['{"wire":"',{t:2,r:"color",p:[4,48,192]},'"}']},f:[{t:2,x:{r:["cut"],s:'_0?"Mend":"Cut"'},p:[4,61,205]}]}," ",{p:[5,7,248],t:7,e:"ui-button",a:{action:"pulse",params:['{"wire":"',{t:2,r:"color",p:[5,50,291]},'"}']},f:["Pulse"]}," ",{p:[6,7,328],t:7,e:"ui-button",a:{action:"attach",params:['{"wire":"',{t:2,r:"color",p:[6,51,372]},'"}']},f:[{t:2,x:{r:["attached"],s:'_0?"Detach":"Attach"'},p:[6,64,385]}]}]}],n:52,r:"data.wires",p:[2,3,15]}]}," ",{t:4,f:[{p:[11,3,498],t:7,e:"ui-display",f:[{t:4,f:[{p:[13,7,543],t:7,e:"ui-section",f:[{t:2,r:".",p:[13,19,555]}]}],n:52,r:"data.status",p:[12,5,515]}]}],n:50,r:"data.status",p:[10,1,476]}]},e.exports=a.extend(r.exports)},{205:205}],300:[function(t,e,n){(function(e){"use strict";var n=t(205),a=e.interopRequireDefault(n);t(195),t(1),t(191),t(194);var r=t(301),i=e.interopRequireDefault(r),o=t(302),s=t(192),p=t(193),u=e.interopRequireDefault(p);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(306)),window.initialize=function(e){window.tgui||(window.tgui=new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(303),text:t(307),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 u["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,191:191,192:192,193:193,194:194,195:195,205:205,301:301,302:302,303:303,306:306,307:307,"babel/external-helpers":"babel/external-helpers"}],301:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(302),a=t(304);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={ai_restorer:t(219),airalarm:t(220),"airalarm/back":t(221),"airalarm/modes":t(222),"airalarm/scrubbers":t(223),"airalarm/status":t(224),"airalarm/thresholds":t(225),"airalarm/vents":t(226),airlock_electronics:t(227),apc:t(228),atmos_alert:t(229),atmos_control:t(230),atmos_filter:t(231),atmos_mixer:t(232),atmos_pump:t(233),brig_timer:t(234),bsa:t(235),canister:t(236),cargo:t(237),cellular_emporium:t(238),chem_dispenser:t(239),chem_heater:t(240),chem_master:t(241),clockwork_slab:t(242),computer_fabricator:t(243),computer_main:t(244),crayon:t(245),cryo:t(246),disposal_unit:t(247),dna_vault:t(248),eightball:t(249),emergency_shuttle_console:t(250),engraved_message:t(251),error:t(252),file_manager:t(253),firealarm:t(254),gps:t(255),gulag_console:t(256),gulag_item_reclaimer:t(257),identification_computer:t(258),implantchair:t(259),intellicard:t(260),keycard_auth:t(261),labor_claim_console:t(262),language_menu:t(263),laptop_configuration:t(264),mech_bay_power_console:t(265),mulebot:t(266),ntnet_chat:t(267),ntnet_dos:t(268),ntnet_downloader:t(269),ntnet_monitor:t(270),ntnet_relay:t(271),ntnet_transfer:t(272),nuclear_bomb:t(273),personal_crafting:t(274),portable_pump:t(275),portable_scrubber:t(276),power_monitor:t(277),power_monitor_prog:t(278),radio:t(279),revelation:t(280),sat_control:t(281),shuttle_manipulator:t(282),"shuttle_manipulator/modification":t(283),"shuttle_manipulator/status":t(284),"shuttle_manipulator/templates":t(285),sleeper:t(286),slime_swap_body:t(287),smes:t(288),solar_control:t(289),space_heater:t(290),station_alert:t(291),station_alert_prog:t(292),suit_storage_unit:t(293),tank_dispenser:t(294),tanks:t(295),thermomachine:t(296),uplink:t(297),vr_sleeper:t(298),wires:t(299)};e in n?this.components["interface"]=n[e]:this.components["interface"]=n.error},oninit:function(){this.observe("config.style",function(t,e,n){t&&document.body.classList.add(t),e&&document.body.classList.remove(e)})},oncomplete:function(){if(this.get("config.locked")){var t=(0,a.lock)(window.screenLeft,window.screenTop),e=t.x,r=t.y;(0,n.winset)(this.get("config.window"),"pos",e+","+r)}(0,n.winset)("mapwindow.map","focus",!0)}}}(r),r.exports.template={v:3,t:[" "," "," "," ",{p:[56,1,1819],t:7,e:"titlebar",f:[{t:3,r:"config.title",p:[56,11,1829]}]}," ",{p:[57,1,1859],t:7,e:"main",f:[{p:[58,3,1868],t:7,e:"warnings"}," ",{p:[59,3,1882],t:7,e:"interface"}]}," ",{t:4,f:[{p:[62,3,1929],t:7,e:"resize"}],n:50,r:"config.titlebar",p:[61,1,1903]}]},r.exports.components=r.exports.components||{};var i={warnings:t(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,302:302,304:304}],302:[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},{}],303:[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},{}],304:[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(302)},{302:302}],305:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var p=s;a||p.textContent.toLowerCase().includes(e)?p.style.display="":p.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],306:[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]?1:arguments[1];return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],307:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var p=Array(o),u=0;o>u;u++)p[u]=arguments[u+3];n.children=p}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(p){return void n(p)}return o.done?void t(s):Promise.resolve(s).then(function(t){return a("next",t)},function(t){return a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e {{desc}} Key: ,{{key}} + {{#if shadow}} + (gained from mob) + {{/if}} {{can_speak ? "Can Speak" : "Cannot Speak"}} - {{is_default ? "Default Language" : "Select as Default"}} - - {{#if data.admin_mode}} + {{#if data.is_living}} Remove - + style='{{is_default ? "selected" : can_speak ? null : "disabled"}}' + >{{is_default ? "Default Language" : "Select as Default"}} + + {{/if}} + {{#if data.admin_mode}} + {{#if shadow}} + Grant + {{else}} + Remove + {{/if}} {{/if}} {{/each}} {{#if data.admin_mode}} - Omnitongue {{data.omnitongue ? "Enabled" : "Disabled"}} - + {{#if data.is_living}} + Omnitongue {{data.omnitongue ? "Enabled" : "Disabled"}} + + {{/if}} {{#each data.unknown_languages}} From 4d8f80efaffe44ddd53c3d0a9f4b94c2432d8d7b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 6 May 2017 04:09:32 -0500 Subject: [PATCH 04/82] Fixes roundstart spawning --- code/datums/mind.dm.rej | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 code/datums/mind.dm.rej diff --git a/code/datums/mind.dm.rej b/code/datums/mind.dm.rej new file mode 100644 index 0000000000..24a52b5fcf --- /dev/null +++ b/code/datums/mind.dm.rej @@ -0,0 +1,20 @@ +diff a/code/datums/mind.dm b/code/datums/mind.dm (rejected hunks) +@@ -63,7 +63,7 @@ + + var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) + +- var/datum/language_holder ++ var/datum/language_holder/language_holder + + /datum/mind/New(var/key) + src.key = key +@@ -90,7 +90,8 @@ + SStgui.on_transfer(current, new_character) + + if(!language_holder) +- language_holder = new_character.language_holder.copy(src) ++ var/datum/language_holder/mob_holder = new_character.get_language_holder(shadow = FALSE) ++ language_holder = mob_holder.copy(src) + + if(key) + if(new_character.key != key) //if we're transfering into a body with a key associated which is not ours From f85a44ed527854e4d2362f8586354b3ebcb48e80 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 6 May 2017 11:56:16 -0500 Subject: [PATCH 05/82] 2017 Cult Overhaul P1: Cult Master and Datum Cult --- code/__HELPERS/game.dm | 64 ++++++++ code/__HELPERS/game.dm.rej | 66 ++++++++ code/__HELPERS/matrices.dm | 1 - code/_globalvars/game_modes.dm | 7 + code/_onclick/hud/alert.dm | 99 +++++++++++ code/datums/antagonists/datum_cult.dm.rej | 9 + code/datums/mind.dm | 9 +- code/datums/status_effects/buffs.dm | 29 ++++ code/game/gamemodes/cult/cult.dm | 85 +++++++--- code/game/gamemodes/cult/cult.dm.rej | 33 ++++ code/game/gamemodes/cult/cult_comms.dm | 154 +++++++++++++++++- code/game/gamemodes/cult/cult_items.dm | 2 +- code/game/gamemodes/cult/ritual.dm | 49 +++--- code/game/gamemodes/cult/runes.dm | 12 +- code/game/gamemodes/game_mode.dm.rej | 10 ++ code/game/gamemodes/wizard/soulstone.dm | 17 +- code/game/objects/effects/overlays.dm | 10 +- code/game/objects/effects/overlays.dm.rej | 10 ++ code/modules/mob/living/death.dm | 2 +- .../mob/living/simple_animal/constructs.dm | 8 + .../living/simple_animal/constructs.dm.rej | 40 +++++ config/game_options.txt | 2 +- icons/effects/64x64.dmi | Bin 9011 -> 10479 bytes icons/effects/cult_target.dmi | Bin 0 -> 1654 bytes icons/effects/effects.dmi | Bin 533901 -> 538830 bytes icons/mob/hud.dmi | Bin 12486 -> 12764 bytes icons/mob/screen_alert.dmi | Bin 83184 -> 98842 bytes 27 files changed, 644 insertions(+), 74 deletions(-) create mode 100644 code/__HELPERS/game.dm.rej create mode 100644 code/datums/antagonists/datum_cult.dm.rej create mode 100644 code/game/gamemodes/cult/cult.dm.rej create mode 100644 code/game/gamemodes/game_mode.dm.rej create mode 100644 code/game/objects/effects/overlays.dm.rej create mode 100644 code/modules/mob/living/simple_animal/constructs.dm.rej create mode 100644 icons/effects/cult_target.dmi diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 6bc79fb7d5..2df42fbb51 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -6,6 +6,7 @@ ) #define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL)) +#define CULT_POLL_WAIT 2400 /proc/get_area(atom/A) if (!istype(A)) @@ -485,6 +486,69 @@ ++i return L +/proc/pollCultists(var/mob/living/Nominee) // Cult Master Poll + var/time_passed = world.time + var/list/yes_voters = new + var/list/cult_total = new + if(world.time<1) + Nominee << "It would be premature to select a leader while everyone is still settling in, try again in [round((1800-world.time)/10)] seconds" + return + for(var/datum/mind/B in SSticker.mode.cult) + if(!isliving(B.current)) + continue + var/mob/living/M = B.current + if(isliving(M)) + M << 'sound/hallucinations/im_here1.ogg' + M.verbs -= /mob/living/proc/cult_master + to_chat(M, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") + sleep(250) + for(var/datum/mind/B in SSticker.mode.cult) + if(!isliving(B.current)) + continue + var/mob/living/M = B.current + M << 'sound/magic/exit_blood.ogg' + switch(askuser(M,"[Nominee] seeks to lead your cult, do you support them?","Please answer in 20 seconds!","Yes","No","Abstain", StealFocus=0, Timeout=200)) + if(1) + if((world.time-time_passed)>500) + M << "Sorry, your vote came too late!" + M << 'sound/machines/buzz-sigh.ogg' + else + M << "Choice registered: Yes." + yes_voters += M + cult_total += M + if(2) + if((world.time-time_passed)>500) + M << "Sorry, your vote came too late!" + M << 'sound/machines/buzz-sigh.ogg' + else + M << "Choice registered: No." + cult_total += M + if(3) + M << "Choice registered: Abstain." + sleep(300) + if(yes_voters.len > (cult_total.len/2)) + var/datum/action/innate/cultmast/finalreck/FinalReckoning = new() + var/datum/action/innate/cultmast/cultmark/Mark = new() + FinalReckoning.Grant(Nominee) + Mark.Grant(Nominee) + Nominee.mind.special_role = "Cult Master" + Nominee.update_action_buttons_icon() + Nominee.apply_status_effect(/datum/status_effect/cult_master) + SSticker.mode.set_antag_hud(Nominee,"cultmaster") + GLOB.cult_mastered = TRUE + for(var/datum/mind/B in SSticker.mode.cult) + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has the cult's support and is now their master. Follow their orders to the best of your ability!") + return TRUE + else + for(var/datum/mind/B in SSticker.mode.cult) + if(!B.current.incapacitated()) + to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") + B.current.verbs += /mob/living/proc/cult_master + return FALSE + +/proc/poll_helper(var/mob/living/M) + /proc/makeBody(mob/dead/observer/G_found) // Uses stripped down and bastardized code from respawn character if(!G_found || !G_found.key) return diff --git a/code/__HELPERS/game.dm.rej b/code/__HELPERS/game.dm.rej new file mode 100644 index 0000000000..d64ec0418b --- /dev/null +++ b/code/__HELPERS/game.dm.rej @@ -0,0 +1,66 @@ +diff a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm (rejected hunks) +@@ -489,41 +490,38 @@ + var/time_passed = world.time + var/list/yes_voters = new + var/list/cult_total = new +- if(world.time<1800) +- Nominee << "It would be premature to select a leader while everyone is still settling in, try again in [round((1800-world.time)/10)] seconds" ++ if(world.time < CULT_POLL_WAIT) ++ Nominee << "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds" + return + for(var/datum/mind/B in SSticker.mode.cult) +- if(!isliving(B.current)) +- continue + var/mob/living/M = B.current +- if(isliving(M)) ++ if(!M.incapacitated()) + M << 'sound/hallucinations/im_here1.ogg' + M.verbs -= /mob/living/proc/cult_master + to_chat(M, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") + sleep(250) + for(var/datum/mind/B in SSticker.mode.cult) +- if(!isliving(B.current)) +- continue + var/mob/living/M = B.current +- M << 'sound/magic/exit_blood.ogg' +- switch(askuser(M,"[Nominee] seeks to lead your cult, do you support them?","Please answer in 20 seconds!","Yes","No","Abstain", StealFocus=0, Timeout=200)) +- if(1) +- if((world.time-time_passed)>500) +- M << "Sorry, your vote came too late!" +- M << 'sound/machines/buzz-sigh.ogg' +- else +- M << "Choice registered: Yes." +- yes_voters += M +- cult_total += M +- if(2) +- if((world.time-time_passed)>500) +- M << "Sorry, your vote came too late!" +- M << 'sound/machines/buzz-sigh.ogg' +- else +- M << "Choice registered: No." +- cult_total += M +- if(3) +- M << "Choice registered: Abstain." ++ if(!M.incapacitated()) ++ M << 'sound/magic/exit_blood.ogg' ++ switch(askuser(M,"[Nominee] seeks to lead your cult, do you support them?","Please answer in 20 seconds!","Yes","No","Abstain", StealFocus=0, Timeout=200)) ++ if(1) ++ if((world.time-time_passed)>500) ++ to_chat(M, "Sorry, your vote came too late!") ++ M << 'sound/machines/buzz-sigh.ogg' ++ else ++ M << "Choice registered: Yes." ++ yes_voters += M ++ cult_total += M ++ if(2) ++ if((world.time-time_passed)>500) ++ to_chat(M, "Sorry, your vote came too late!") ++ M << 'sound/machines/buzz-sigh.ogg' ++ else ++ to_chat(M, "Choice registered: No.") ++ cult_total += M ++ if(3) ++ to_chat(M, "Choice registered: Abstain.") + sleep(300) + if(yes_voters.len > (cult_total.len/2)) + var/datum/action/innate/cultmast/finalreck/FinalReckoning = new() diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm index 2e34624df5..8b77b170e0 100644 --- a/code/__HELPERS/matrices.dm +++ b/code/__HELPERS/matrices.dm @@ -24,7 +24,6 @@ //doesn't have an object argument because this is "Stacking" with the animate call above //3 billion% intentional - //Dumps the matrix data in format a-f /matrix/proc/tolist() . = list() diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm index 153ebbf089..912ae78a04 100644 --- a/code/_globalvars/game_modes.dm +++ b/code/_globalvars/game_modes.dm @@ -3,3 +3,10 @@ GLOBAL_VAR_INIT(secret_force_mode, "secret") // if this is anything but "secret" GLOBAL_VAR_INIT(wavesecret, 0) // meteor mode, delays wave progression, terrible name GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report + +// Cult, needs to be global so admin cultists are functional +GLOBAL_VAR_INIT(blood_target, null) // Cult Master's target or Construct's Master +GLOBAL_DATUM(sac_mind, /datum/mind) +GLOBAL_VAR_INIT(sac_image, null) +GLOBAL_VAR_INIT(cult_mastered, FALSE) +GLOBAL_VAR_INIT(sac_complete, FALSE) \ No newline at end of file diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 9c8fe9750a..8e3de4c374 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -42,6 +42,7 @@ thealert.override_alerts = override if(override) thealert.timeout = null + thealert.mob_viewer = src if(new_master) var/old_layer = new_master.layer @@ -96,6 +97,7 @@ var/severity = 0 var/alerttooltipstyle = "" var/override_alerts = FALSE //If it is overriding other alerts of the same type + var/mob/mob_viewer //the mob viewing this alert /obj/screen/alert/MouseEntered(location,control,params) @@ -256,6 +258,103 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." icon_state = "blobbernaut_nofactory" alerttooltipstyle = "blob" +// BLOODCULT + +/obj/screen/alert/bloodsense + name = "Blood Sense" + desc = "Allows you to sense blood that is manipulated by dark magicks." + icon_state = "cult_sense" + alerttooltipstyle = "cult" + var/image/sacimage + var/angle = 0 + var/mob/living/simple_animal/hostile/construct/Cviewer = null + +/obj/screen/alert/bloodsense/Initialize() + ..() + sacimage = GLOB.sac_image + START_PROCESSING(SSprocessing, src) + +/obj/screen/alert/bloodsense/Destroy() + sacimage = null + Cviewer = null + STOP_PROCESSING(SSprocessing, src) + return ..() + +/obj/screen/alert/bloodsense/process() + var/atom/blood_target + if(GLOB.blood_target) + if(!get_turf(GLOB.blood_target)) + GLOB.blood_target = null + else + blood_target = GLOB.blood_target + if(Cviewer) + if(Cviewer.seeking && Cviewer.master) + blood_target = Cviewer.master + if(!blood_target && !GLOB.sac_complete) + if(icon_state == "runed_sense0") + return + animate(src, transform = null, time = 1, loop = 0) + angle = 0 + cut_overlays() + icon_state = "runed_sense0" + desc = "Nar-Sie demands that [GLOB.sac_mind] be sacrificed before the summoning ritual can begin." + add_overlay(sacimage) + return + if(!blood_target && GLOB.sac_complete) + if(icon_state == "runed_sense1") + return + animate(src, transform = null, time = 1, loop = 0) + angle = 0 + cut_overlays() + icon_state = "runed_sense1" + var/image/narnar = new('icons/mob/screen_alert.dmi', "mini_nar") + desc = "The sacrifice is complete, prepare to summon Nar-Sie!" + add_overlay(narnar) + return + if(!blood_target) + return + var/turf/P = get_turf(blood_target) + var/turf/Q = get_turf(mob_viewer) + var/area/A = get_area(P) + if(P.z != Q.z) //The target is on a different Z level, we cannot sense that far. + return + desc = "You are currently tracking [blood_target] in [A.name]" + var/target_angle = Get_Angle(mob_viewer, blood_target) + var/target_dist = get_dist(P, Q) + cut_overlays() + switch(target_dist) + if(0 to 1) + icon_state = "runed_sense2" + if(2 to 8) + icon_state = "arrow8" + if(9 to 15) + icon_state = "arrow7" + if(16 to 22) + icon_state = "arrow6" + if(23 to 29) + icon_state = "arrow5" + if(30 to 36) + icon_state = "arrow4" + if(37 to 43) + icon_state = "arrow3" + if(44 to 50) + icon_state = "arrow2" + if(51 to 57) + icon_state = "arrow1" + if(58 to 64) + icon_state = "arrow0" + if(65 to 400) + icon_state = "arrow" + var/difference = target_angle - angle + angle = target_angle + if(!difference) + return + var/matrix/final = matrix(transform) + final.Turn(difference) + animate(src, transform = final, time = 5, loop = 0) + + + // CLOCKCULT /obj/screen/alert/clockwork alerttooltipstyle = "clockcult" diff --git a/code/datums/antagonists/datum_cult.dm.rej b/code/datums/antagonists/datum_cult.dm.rej new file mode 100644 index 0000000000..137565bd5f --- /dev/null +++ b/code/datums/antagonists/datum_cult.dm.rej @@ -0,0 +1,9 @@ +diff a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm (rejected hunks) +@@ -65,6 +65,7 @@ + cult_memorization(owner) + if(jobban_isbanned(current, ROLE_CULTIST)) + addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, current, ROLE_CULTIST, ROLE_CULTIST), 0) ++ SSticker.mode.update_cult_icons_added(owner) + current.throw_alert("bloodsense", /obj/screen/alert/bloodsense) + current.log_message("Has been converted to the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) + diff --git a/code/datums/mind.dm b/code/datums/mind.dm index e99d5bb59a..f4a535e4c4 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1438,14 +1438,7 @@ to_chat(current, "You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie.") to_chat(current, "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.") var/datum/game_mode/cult/cult = SSticker.mode - - if (istype(cult)) - cult.memorize_cult_objectives(src) - else - var/explanation = "Summon Nar-Sie via the use of the appropriate rune (Hell join self). It will only work if nine cultists stand on and around it." - to_chat(current, "Objective #1: [explanation]") - memory += "Objective #1: [explanation]
" - + cult.memorize_cult_objectives(src) var/mob/living/carbon/human/H = current if (!SSticker.mode.equip_cultist(current)) to_chat(H, "Spawning an amulet from your Master failed.") diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 3f261c7991..043b1c3df6 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -223,3 +223,32 @@ name = "Wish Granter's Immortality" desc = "You are being resurrected!" icon_state = "wish_granter" + +/datum/status_effect/cult_master + id = "The Cult Master" + duration = -1 + tick_interval = 100 + alert_type = null + var/alive = TRUE + +/datum/status_effect/cult_master/proc/deathrattle() + var/area/A = get_area(owner) + for(var/datum/mind/B in SSticker.mode.cult) + if(isliving(B.current)) + var/mob/living/M = B.current + M << 'sound/hallucinations/veryfar_noise.ogg' + to_chat(M, "The Cult's Master, [owner], has fallen in the [A]!") + + +/datum/status_effect/cult_master/tick() + if(owner.stat != DEAD && !alive) + alive = TRUE + return + if(owner.stat == DEAD && alive) + alive = FALSE + deathrattle() + +/datum/status_effect/cult_master/on_remove() + deathrattle() + . = ..() + diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 7780ae5db9..b67ad1f74b 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -1,5 +1,3 @@ - - /datum/game_mode var/list/datum/mind/cult = list() var/list/cult_objectives = list() @@ -36,10 +34,10 @@ antag_flag = ROLE_CULTIST restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel") protected_jobs = list() - required_players = 24 - required_enemies = 4 - recommended_enemies = 4 - enemy_minimum_age = 14 + required_players = 1 + required_enemies = 1 + recommended_enemies = 1 + enemy_minimum_age = 0 announce_span = "cult" announce_text = "Some crew members are trying to start a cult to Nar-Sie!\n\ @@ -47,14 +45,13 @@ Crew: Prevent the cult from expanding and drive it out." var/finished = 0 - var/eldergod = 1 //for the summon god objective var/acolytes_needed = 10 //for the survive objective var/acolytes_survived = 0 - var/datum/mind/sacrifice_target = null//The target to be sacrificed var/list/cultists_to_cult = list() //the cultists we'll convert + /datum/game_mode/cult/pre_setup() cult_objectives += "sacrifice" cult_objectives += "eldergod" @@ -89,10 +86,11 @@ if("survive") explanation = "Our knowledge must live on. Make sure at least [acolytes_needed] acolytes escape on the shuttle to spread their work on an another station." if("sacrifice") - if(sacrifice_target) - explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role] via invoking a Sacrifice rune with them on it and three acolytes around it." + if(GLOB.sac_mind) + explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role] via invoking a Sacrifice rune with them on it and three acolytes around it." else - explanation = "Free objective." + explanation = "The veil has already been weakened here, proceed to the next objective." + GLOB.sac_complete = TRUE if("eldergod") explanation = "Summon Nar-Sie by invoking the rune 'Summon Nar-Sie' with nine acolytes on it. You must do this after sacrificing your target." to_chat(cult_mind.current, "Objective #[obj_count]: [explanation]") @@ -108,9 +106,17 @@ if(player.mind && !(player.mind in cultists_to_cult)) possible_targets += player.mind if(possible_targets.len > 0) - sacrifice_target = pick(possible_targets) - if(!sacrifice_target) + GLOB.sac_mind = pick(possible_targets) + if(!GLOB.sac_mind) message_admins("Cult Sacrifice: ERROR - Null target chosen!") + else + var/datum/job/sacjob = SSjob.GetJob(GLOB.sac_mind.assigned_role) + var/icon/reshape = get_flat_human_icon(null, sacjob, GLOB.sac_mind.current.client.prefs) + reshape.Shift(SOUTH, 4) + reshape.Shift(EAST, 1) + reshape.Crop(7,4,26,31) + reshape.Crop(-5,-3,26,30) + GLOB.sac_image = reshape else message_admins("Cult Sacrifice: Could not find unconvertable or convertable target. WELP!") for(var/datum/mind/cult_mind in cultists_to_cult) @@ -198,7 +204,7 @@ if(cult_objectives.Find("eldergod")) cult_fail += eldergod //1 by default, 0 if the elder god has been summoned at least once if(cult_objectives.Find("sacrifice")) - if(sacrifice_target && !GLOB.sacrificed.Find(sacrifice_target)) //if the target has been GLOB.sacrificed, ignore this step. otherwise, add 1 to cult_fail + if(GLOB.sac_mind && GLOB.sac_complete) //if the target has been GLOB.sacrificed, ignore this step. otherwise, add 1 to cult_fail cult_fail++ return cult_fail //if any objectives aren't met, failure @@ -269,12 +275,45 @@ return 1 -/datum/game_mode/proc/auto_declare_completion_cult() - if( cult.len || (SSticker && istype(SSticker.mode,/datum/game_mode/cult)) ) - var/text = "
The cultists were:" - for(var/datum/mind/cultist in cult) - text += printplayer(cultist) - - text += "
" - - to_chat(world, text) +/datum/game_mode/proc/datum_cult_completion() + var/text = "" + 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()) + acolytes_survived++ + var/cult_fail = 0 + cult_fail += eldergod + if(!GLOB.sac_complete) + cult_fail++ + if(!cult_fail) + SSblackbox.set_details("round_end_result","win - cult win") + SSblackbox.set_val("round_end_result",acolytes_survived) + to_chat(world, "The cult has succeeded! Nar-sie has snuffed out another torch in the void!") + else + SSblackbox.set_details("round_end_result","loss - staff stopped the cult") + SSblackbox.set_val("round_end_result",acolytes_survived) + to_chat(world, "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!") + if(cult_objectives.len) + text += "
The cultists' objectives were:" + for(var/obj_count in 1 to 2) + var/explanation + switch(cult_objectives[obj_count]) + if("sacrifice") + if(GLOB.sac_complete) + explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role]. Success!" + SSblackbox.add_details("cult_objective","cult_sacrifice|SUCCESS") + else + explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role]. Fail." + SSblackbox.add_details("cult_objective","cult_sacrifice|FAIL") + if("eldergod") + if(!eldergod) + explanation = "Summon Nar-Sie. Success!" + SSblackbox.add_details("cult_objective","cult_narsie|SUCCESS") + SSticker.news_report = CULT_SUMMON + else + explanation = "Summon Nar-Sie. Fail." + SSblackbox.add_details("cult_objective","cult_narsie|FAIL") + SSticker.news_report = CULT_FAILURE + text += "
Objective #[obj_count]: [explanation]" + to_chat(world, text) diff --git a/code/game/gamemodes/cult/cult.dm.rej b/code/game/gamemodes/cult/cult.dm.rej new file mode 100644 index 0000000000..fb9b30c910 --- /dev/null +++ b/code/game/gamemodes/cult/cult.dm.rej @@ -0,0 +1,33 @@ +diff a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm (rejected hunks) +@@ -4,7 +4,7 @@ + var/eldergod = 1 //for the summon god objective + + /proc/iscultist(mob/living/M) +- return istype(M) && M.has_antag_datum(/datum/antagonist/cultist, TRUE) ++ return istype(M) && M.mind && M.mind.has_antag_datum(ANTAG_DATUM_CULT) + + /proc/is_sacrifice_target(datum/mind/mind) + if(mind == GLOB.sac_mind) +@@ -163,18 +163,18 @@ + /datum/game_mode/proc/add_cultist(datum/mind/cult_mind, stun) //BASE + if (!istype(cult_mind)) + return 0 +- if(cult_mind.current.gain_antag_datum(/datum/antagonist/cultist)) ++ if(cult_mind.add_antag_datum(ANTAG_DATUM_CULT)) + if(stun) + cult_mind.current.Paralyse(5) + return 1 + + /datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = 1, stun) + if(cult_mind.current) +- var/datum/antagonist/cultist/cult_datum = cult_mind.current.has_antag_datum(/datum/antagonist/cultist, TRUE) ++ var/datum/antagonist/cult/cult_datum = cult_mind.has_antag_datum(ANTAG_DATUM_CULT) + if(!cult_datum) + return FALSE +- cult_datum.silent_update = show_message +- cult_datum.on_remove() ++ cult_datum.silent = show_message ++ cult_datum.on_removal() + if(stun) + cult_mind.current.Paralyse(5) + return TRUE diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm index 40c7bbece8..ff8ee97de7 100644 --- a/code/game/gamemodes/cult/cult_comms.dm +++ b/code/game/gamemodes/cult/cult_comms.dm @@ -1,3 +1,5 @@ +// Contains cult communion, guide, and cult master abilities +#define MARK_COOLDOWN /datum/action/innate/cultcomm name = "Communion" @@ -19,11 +21,15 @@ cultist_commune(usr, input) /proc/cultist_commune(mob/living/user, message) + var/my_message if(!message) return user.whisper("O bidai nabora se[pick("'","`")]sma!") user.whisper(html_decode(message)) - var/my_message = "[(ishuman(user) ? "Acolyte" : "Construct")] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]" + if (user.mind.special_role == "Cult Master") + my_message = "[(ishuman(user) ? "Master" : "Lord")] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]" + else + my_message = "[(ishuman(user) ? "Acolyte" : "Construct")] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]" for(var/mob/M in GLOB.mob_list) if(iscultist(M)) to_chat(M, my_message) @@ -65,3 +71,149 @@ popup.set_content(text) popup.open() return 1 + +/mob/living/proc/cult_master() + set category = "Cultist" + set name = "Assert Leadership" + pollCultists(src) // This proc handles the distribution of cult master actions + +/datum/action/innate/cultmast + background_icon_state = "bg_demon" + buttontooltipstyle = "cult" + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + +/datum/action/innate/cultmast/IsAvailable() + if(owner.mind.special_role != "Cult Master") + return 0 + return ..() + +/datum/action/innate/cultmast/finalreck + name = "Final Reckoning" + desc = "A single-use spell that brings the entire cult to the master's location" + button_icon_state = "sintouch" + +/datum/action/innate/cultmast/finalreck/Activate() + var/list/destinations = list() + for(var/turf/T in orange(1,owner)) + if(istype(T, /turf/open)) + destinations += T + for(var/i in 1 to 4) + owner.chant(i) + if(do_after(owner, 30, target = owner)) + for(var/datum/mind/B in SSticker.mode.cult) + var/mob/living/M = B.current + if(isliving(M) && M.stat != DEAD) + var/turf/mobloc = get_turf(M) + switch(i) + if (1) + new /obj/effect/overlay/temp/cult/sparks(mobloc, M.dir) + playsound(mobloc, "sparks", 50, 1) + if (2) + new /obj/effect/overlay/temp/dir_setting/cult/phase/out(mobloc, M.dir) + playsound(mobloc, "sparks", 75, 1) + if (3) + new /obj/effect/overlay/temp/dir_setting/cult/phase(mobloc, M.dir) + playsound(mobloc, "sparks", 100, 1) + if (4) + playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, 1) + if(M != owner) + var/turf/final = pick(destinations) + new /obj/effect/overlay/temp/cult/blood(final) + addtimer(CALLBACK(M, /mob/.proc/reckon, final), 10) + else + for(var/datum/action/innate/cultmast/finalreck/H in owner.actions) + qdel(H) + else + return + +/mob/proc/reckon(var/turf/final) + new /obj/effect/overlay/temp/cult/blood/out(get_turf(src)) + forceMove(final) + +/mob/proc/chant(var/i) + switch(i) + if (1) + say("C'arta Forbici!") + if (2) + say("Pleggh E'ntrath!") + playsound(get_turf(src),'sound/magic/clockwork/narsie_attack.ogg', 50, 1) + if (3) + say("Barhah hra Zar'garis!") + playsound(get_turf(src),'sound/magic/clockwork/narsie_attack.ogg', 75, 1) + if (4) + say("N'ath reth Sh'yro eth D'rekkathnor!!!") + playsound(get_turf(src),'sound/magic/clockwork/narsie_attack.ogg', 100, 1) + +/datum/action/innate/cultmast/cultmark + name = "Mark Target" + desc = "Marks a target for the cult" + button_icon_state = "cult_mark" + var/obj/effect/proc_holder/cultmark/CM + var/time = 0 + +/datum/action/innate/cultmast/cultmark/New() + CM = new() + ..() + +/datum/action/innate/cultmast/cultmark/IsAvailable() + if(owner.mind.special_role != "Cult Master") + return 0 + if((world.time - time)<1200 && !CM.active) + owner << "You need to wait [round((1200-(world.time-time))/10)] seconds before you can mark another target!" + return 0 + return ..() + +/datum/action/innate/cultmast/cultmark/Destroy() + QDEL_NULL(CM) + return ..() + +/datum/action/innate/cultmast/cultmark/Activate() + CM.toggle(owner) //the important bit + if(!active) + time = world.time + else + time = 0 + return TRUE + +/obj/effect/proc_holder/cultmark + active = FALSE + ranged_mousepointer = 'icons/effects/cult_target.dmi' + + +/obj/effect/proc_holder/cultmark/proc/toggle(mob/user) + if(active) + remove_ranged_ability("You cease the marking ritual...") + else + add_ranged_ability(user, "You prepare to mark a target for your cult...") + +/obj/effect/proc_holder/cultmark/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return + if(ranged_ability_user.incapacitated()) + remove_ranged_ability() + return + var/turf/T = get_turf(ranged_ability_user) + if(!isturf(T)) + return FALSE + if(target in view(7, get_turf(ranged_ability_user))) + remove_ranged_ability(caller, "The marking rite is complete! It will last for 90 seconds.") + GLOB.blood_target = target + var/area/A = get_area(target) + for(var/datum/mind/B in SSticker.mode.cult) + var/mob/living/M = B.current + if(M.stat != DEAD) + to_chat(M, "Master [ranged_ability_user] has marked [GLOB.blood_target] in the [A.name] as the cult's top priority, get there immediately!") + M << pick(sound('sound/hallucinations/over_here2.ogg',0,1,75), sound('sound/hallucinations/over_here3.ogg',0,1,75)) + var/image/cult_marker = image('icons/effects/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) + M.client.images |= cult_marker + addtimer(CALLBACK(M, /mob/living/proc/reset_blood_image, cult_marker), 900, TIMER_OVERRIDE) + return TRUE + return FALSE + +/mob/living/proc/reset_blood_image(var/image/cult_marker) + if(GLOB.blood_target && src.stat!=DEAD) + to_chat(src,"The blood mark has expired!") + if(client) + client.images.Remove(cult_marker) + QDEL_NULL(cult_marker) + GLOB.blood_target = null \ No newline at end of file diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index a90aeb78bc..6058e8f605 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -213,7 +213,7 @@ flags_inv = HIDEJUMPSUIT allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) body_parts_covered = CHEST|GROIN|LEGS|ARMS - armor = list(melee = -50, bullet = -50, laser = -100,energy = -50, bomb = -50, bio = -50, rad = -50, fire = 0, acid = 0) + armor = list(melee = -50, bullet = -50, laser = -50,energy = -50, bomb = -50, bio = -50, rad = -50, fire = 0, acid = 0) slowdown = -1 hoodtype = /obj/item/clothing/head/hooded/berserkerhood diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index ce4abced72..f393929463 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -197,35 +197,30 @@ This file contains the arcane tome files. if(!src || QDELETED(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) return if(ispath(rune_to_scribe, /obj/effect/rune/narsie)) - if(SSticker.mode.name == "cult") - var/datum/game_mode/cult/cult_mode = SSticker.mode - if(!("eldergod" in cult_mode.cult_objectives)) - to_chat(user, "Nar-Sie does not wish to be summoned!") - return - if(cult_mode.sacrifice_target && !(cult_mode.sacrifice_target in GLOB.sacrificed)) - to_chat(user, "The sacrifice is not complete. The portal would lack the power to open if you tried!") - return - if(!cult_mode.eldergod) - to_chat(user, "\"I am already here. There is no need to try to summon me now.\"") - return - if((loc.z && loc.z != ZLEVEL_STATION) || !A.blob_allowed) - to_chat(user, "The Geometer is not interested in lesser locations; the station is the prize!") - return - var/confirm_final = alert(user, "This is the FINAL step to summon Nar-Sie, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") - if(confirm_final == "No") - to_chat(user, "You decide to prepare further before scribing the rune.") - return - Turf = get_turf(user) - A = get_area(src) - if(!check_rune_turf(Turf, user) || (loc.z && loc.z != ZLEVEL_STATION)|| !A.blob_allowed) - return - priority_announce("Figments from an eldritch god are being summoned by [user] into [A.map_name] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg') - for(var/B in spiral_range_turfs(1, user, 1)) - var/obj/structure/emergency_shield/sanguine/N = new(B) - shields += N - else + if(!("eldergod" in SSticker.mode.cult_objectives)) to_chat(user, "Nar-Sie does not wish to be summoned!") return + if(GLOB.sac_complete) + to_chat(user, "The sacrifice is not complete. The portal would lack the power to open if you tried!") + return + if(!SSticker.mode.eldergod) + to_chat(user, "\"I am already here. There is no need to try to summon me now.\"") + return + if((loc.z && loc.z != ZLEVEL_STATION) || !A.blob_allowed) + to_chat(user, "The Geometer is not interested in lesser locations; the station is the prize!") + return + var/confirm_final = alert(user, "This is the FINAL step to summon Nar-Sie, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") + if(confirm_final == "No") + to_chat(user, "You decide to prepare further before scribing the rune.") + return + Turf = get_turf(user) + A = get_area(src) + if(!check_rune_turf(Turf, user) || (loc.z && loc.z != ZLEVEL_STATION)|| !A.blob_allowed) + return + priority_announce("Figments from an eldritch god are being summoned by [user] into [A.map_name] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensional Affairs", 'sound/AI/spanomalies.ogg') + for(var/B in spiral_range_turfs(1, user, 1)) + var/obj/structure/emergency_shield/sanguine/N = new(B) + shields += N user.visible_message("[user] [user.blood_volume ? "cuts open their arm and begins writing in their own blood":"begins sketching out a strange design"]!", \ "You [user.blood_volume ? "slice open your arm and ":""]begin drawing a sigil of the Geometer.") if(user.blood_volume) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 3a80ed54b3..4b9dd1a6c7 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -398,23 +398,23 @@ structure_check() searches for nearby cultist structures required for the invoca return 1 /obj/effect/rune/convert/proc/do_sacrifice(mob/living/sacrificial, list/invokers) + var/big_sac = FALSE if((((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || is_sacrifice_target(sacrificial.mind)) && invokers.len < 3) for(var/M in invokers) to_chat(M, "[sacrificial] is too greatly linked to the world! You need three acolytes!") log_game("Offer rune failed - not enough acolytes and target is living or sac target") return FALSE - var/sacrifice_fulfilled = FALSE - if(sacrificial.mind) GLOB.sacrificed += sacrificial.mind if(is_sacrifice_target(sacrificial.mind)) - sacrifice_fulfilled = TRUE + GLOB.sac_complete = TRUE + big_sac = TRUE else GLOB.sacrificed += sacrificial new /obj/effect/overlay/temp/cult/sac(get_turf(src)) for(var/M in invokers) - if(sacrifice_fulfilled) + if(big_sac) to_chat(M, "\"Yes! This is the one I desire! You have done well.\"") else if(ishuman(sacrificial) || iscyborg(sacrificial)) @@ -451,7 +451,7 @@ structure_check() searches for nearby cultist structures required for the invoca scribe_delay = 450 //how long the rune takes to create scribe_damage = 40.1 //how much damage you take doing it var/used - var/ignore_gamemode = FALSE + var/ignore_gamemode = TRUE /obj/effect/rune/narsie/Initialize(mapload, set_keyword) . = ..() @@ -490,7 +490,7 @@ structure_check() searches for nearby cultist structures required for the invoca //BEGIN THE SUMMONING used = 1 ..() - send_to_playing_players('sound/effects/dimensional_rend.ogg') //There used to be a message for this but every time it was changed it got edgier so I removed it + send_to_playing_players('sound/effects/dimensional_rend.ogg') var/turf/T = get_turf(src) sleep(40) if(src) diff --git a/code/game/gamemodes/game_mode.dm.rej b/code/game/gamemodes/game_mode.dm.rej new file mode 100644 index 0000000000..a8a4a7ca6c --- /dev/null +++ b/code/game/gamemodes/game_mode.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm (rejected hunks) +@@ -258,6 +258,8 @@ + if(escaped_total > 0) + feedback_set("escaped_total",escaped_total) + send2irc("Server", "Round just ended.") ++ if(cult.len && !istype(SSticker.mode,/datum/game_mode/cult)) ++ datum_cult_completion() + return 0 + + diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 7ccf7a6b7e..b840b64c93 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -54,7 +54,7 @@ if(!ishuman(M))//If target is not a human. return ..() if(iscultist(M)) - to_chat(user, "\"Come now, do not capture your fellow's soul.\"") + to_chat(user, "\"Come now, do not capture your bretheren's soul.\"") return add_logs(user, M, "captured [M.name]'s soul", src) @@ -132,11 +132,11 @@ if("VICTIM") var/mob/living/carbon/human/T = target - if(SSticker.mode.name == "cult" && T.mind == SSticker.mode:sacrifice_target) + if(is_sacrifice_target(T.mind)) if(iscultist(user)) to_chat(user, "\"This soul is mine. SACRIFICE THEM!\"") else - to_chat(user, "The soulstone doesn't work for no apparent reason.") + to_chat(user, "The soulstone seems to reject this soul.") return 0 if(contents.len) to_chat(user, "Capture failed!: The soulstone is full! Free an existing soul to make room.") @@ -188,7 +188,10 @@ else makeNewConstruct(/mob/living/simple_animal/hostile/construct/builder/noncult, A, user, 0, T.loc) - + for(var/datum/mind/B in SSticker.mode.cult) + if(B == A.mind) + SSticker.mode.cult -= A.mind + SSticker.mode.update_cult_icons_removed(A.mind) qdel(T) user.drop_item() qdel(src) @@ -200,6 +203,9 @@ var/mob/living/simple_animal/hostile/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target))) if(stoner) newstruct.faction |= "\ref[stoner]" + newstruct.master = stoner + var/datum/action/innate/seek_master/SM = new() + SM.Grant(newstruct) newstruct.key = target.key if(newstruct.mind && ((stoner && iscultist(stoner)) || cultoverride) && SSticker && SSticker.mode) SSticker.mode.add_cultist(newstruct.mind, 0) @@ -207,6 +213,9 @@ to_chat(newstruct, "You are still bound to serve the cult[stoner ? " and [stoner]":""], follow their orders and help them complete their goals at all costs.") else if(stoner) to_chat(newstruct, "You are still bound to serve your creator, [stoner], follow their orders and help them complete their goals at all costs.") + newstruct.throw_alert("bloodsense", /obj/screen/alert/bloodsense) + var/obj/screen/alert/bloodsense/BS = newstruct.alerts["bloodsense"] + BS.Cviewer = newstruct newstruct.cancel_camera() diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 3935b86c92..2a5dff0fd6 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -230,7 +230,15 @@ name = "blood sparks" icon_state = "bloodsparkles" -/obj/effect/overlay/temp/dir_setting/cult/phase +/obj/effect/overlay/temp/cult/blood // The traditional teleport + name = "blood jaunt" + duration = 12 + icon_state = "bloodin" + +/obj/effect/overlay/temp/cult/blood/out + icon_state = "bloodout" + +/obj/effect/overlay/temp/dir_setting/cult/phase // The veil shifter teleport name = "phase glow" duration = 7 icon_state = "cultin" diff --git a/code/game/objects/effects/overlays.dm.rej b/code/game/objects/effects/overlays.dm.rej new file mode 100644 index 0000000000..7bfce2cb62 --- /dev/null +++ b/code/game/objects/effects/overlays.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm (rejected hunks) +@@ -214,7 +214,7 @@ + icon = 'icons/effects/fire.dmi' + icon_state = "3" + duration = 20 +- ++ + /obj/effect/overlay/temp/cult + randomdir = 0 + duration = 10 diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 0734670468..d908ed547d 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -49,8 +49,8 @@ timeofdeath = world.time tod = worldtime2text() var/turf/T = get_turf(src) + var/area/A = get_area(T) if(mind && mind.name && mind.active && (!(T.flags & NO_DEATHRATTLE))) - var/area/A = get_area(T) var/rendered = "[mind.name] has died at [A.name]." deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE) if(mind) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index b879f1baf6..37ef42291d 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -31,12 +31,20 @@ deathmessage = "collapses in a shattered heap." var/list/construct_spells = list() var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." + var/master = null + var/seeking = FALSE /mob/living/simple_animal/hostile/construct/Initialize() . = ..() for(var/spell in construct_spells) AddSpell(new spell(null)) +/mob/living/simple_animal/hostile/construct/Destroy() + for(var/X in actions) + var/datum/action/A = X + qdel(A) + ..() + /mob/living/simple_animal/hostile/construct/Login() ..() to_chat(src, playstyle_string) diff --git a/code/modules/mob/living/simple_animal/constructs.dm.rej b/code/modules/mob/living/simple_animal/constructs.dm.rej new file mode 100644 index 0000000000..b730acfbe9 --- /dev/null +++ b/code/modules/mob/living/simple_animal/constructs.dm.rej @@ -0,0 +1,40 @@ +diff a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm (rejected hunks) +@@ -41,14 +41,11 @@ + for(var/spell in construct_spells) + AddSpell(new spell(null)) + +-<<<<<<< HEAD + /mob/living/simple_animal/hostile/construct/Destroy() + for(var/X in actions) + var/datum/action/A = X + qdel(A) + ..() +-======= +->>>>>>> a7603e4aba50d410795d5207e6d5e929b2401cb9 + + /mob/living/simple_animal/hostile/construct/Login() + ..() +@@ -288,8 +285,6 @@ + environment_smash = 1 //only token destruction, don't smash the cult wall NO STOP + + +- +-<<<<<<< HEAD + ///////////////////////Master-Tracker/////////////////////// + + /datum/action/innate/seek_master +@@ -320,7 +315,7 @@ + the_construct.seeking = TRUE + to_chat(the_construct, "You are now tracking your master.") + +-======= ++ + /////////////////////////////ui stuff///////////////////////////// + + /mob/living/simple_animal/hostile/construct/update_health_hud() +@@ -337,4 +332,4 @@ + hud_used.healths.icon_state = "[icon_state]_health5" + else + hud_used.healths.icon_state = "[icon_state]_health6" +->>>>>>> a7603e4aba50d410795d5207e6d5e929b2401cb9 ++ diff --git a/config/game_options.txt b/config/game_options.txt index 356dc1acab..dce0b57d42 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -166,7 +166,7 @@ MIDROUND_ANTAG ABDUCTION #MIN_POP GANG 20 #MAX_POP GANG -1 -#MIN_POP CULT 24 +#MIN_POP CULT 0 #MAX_POP CULT -1 #MIN_POP CLOCKWORK_CULT 24 diff --git a/icons/effects/64x64.dmi b/icons/effects/64x64.dmi index 347bccc9425bf2f0d8e07ddfdd6f97b7f26a8654..361cfff40c0f47430c4d7bf7d8767324405e36a3 100644 GIT binary patch literal 10479 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 XHM6K~t{(?}!3cS-peA1-YwZ6&ra&UA literal 9011 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 iV`JkbaS5jLyPSd(V?@c#f4!$al( diff --git a/icons/effects/cult_target.dmi b/icons/effects/cult_target.dmi new file mode 100644 index 0000000000000000000000000000000000000000..650feb3361343ddb2454414ef5228706046efde3 GIT binary patch literal 1654 zcmV-+28sEJP)V=-0C=38%&`i?AQXk++4~fSbd^$VGP;z6k|B8qK^p~IgGxf*zC#OLGP#|9 z_|6Hp;Xcmjr;#?BvX3t)wC4-4-J9Z|aFxWI^@}Ut$VC?mg+_Hxim zcXuIDm?0&Qmc&%}zxTQ%5`Q-MC6NHh&U;V5F5g;r0JH@LFb)i092mej-)nAi&RtVK z_uhB+bqD%u>v!5&z-vY{$IqGn7|>rvUuA$(B!0*=uDz}l=r5-~X@EbW(I18XncDlH zzpno1Adnr^iw3pgebhz`&|h9ZYk*hbprN1>EI!ab_mzIXpue8JY8t5RL`r-Ppue2H zIu9T_@sQ}m!$SXg=r60EGyu;t<546x9Cw1nZ=T(%`law zEww;@IsMUU;3)`~W|(A$2dXcNLVtOEl!J}yV?l^H);9nnitpXg28qv`{SK??TH9d?=1+s!6meKvs%KGALP&)%PS#?UD~0~}1A=ksVkv^Vf8U7CPI@Pq!%_nzD6GM|Cs zT7cY!^x)i8Zd6=te|#hTv-hVyya|Hl`w+|$p3b?S{2Of|8v5`i2%0a!2&}J~`%7>> zKp|{`SbxdjOKl1!Naz;_p9s}J^Wc1dLin2>>&FAbrL-x0^Aq~nsooekAE1DEz}FK! z_KAVvQrZ*^_yIOh&X$Hx`v=Wi-5|supIEk1H)r<57!5-iZKFzL2{akQ3T~1-a=;hQ4rH=O(=g5lP!MPM zQcrT6EIJmJk4H#m_+kT6CSy3&IEq0TtQ3P#4j#dLIhetM5W@>X7%T}hyd*3Ji$XJt zLKUBhJG6@yg_1HYjPn61_^QjoNsJM+eSrb~L*_If3}75o1C0X%7{~nHKqt0ySp;tY z8Nxj&w1eLlgKC^A6H{qaoe^9i=b zCj+$HAJ4QtpTH8TH^3LzAK(0Zf~}%5K;!-K&CdteGTCZi%l+}p8s`I`8kj+5@nmj) zsu)D{uXaFm-@{owQc})F-QjV zn)#!xRSUqJem<)91z`REc0e)6I52>5U;yL%1y0FBp;K4IWdHyG07*qoM6N<$f&`fq AMgRZ+ literal 0 HcmV?d00001 diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index d684794ee851c607626eb48a9b5229bf94828a33..fe537a8e73949cf70e8b8a0f5185b68563cfca2e 100644 GIT binary patch delta 19016 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 HFJAv2bw9v) literal 12486 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 RGl75~R73xM>D^}${|h~|FeU&1 diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 5858925d86cd131511a027fcfa768fe8b3c89a8b..162f5308e8a788af7b295fa2527299e23a53cffb 100644 GIT binary patch literal 98842 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 z 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

5l2(Di*FxjxIEVd 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⋘9& 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

{aY^Q`vMbp0uhdwF^AFSKW&|K?5-wHs_>nqi=D& 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 W8+F{pXx{_@en^Weh}DT01^*wd4KGIk From e0b2a0f1eb661c33c6984ffcf3062b14539b5111 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 6 May 2017 15:12:29 -0500 Subject: [PATCH 06/82] Follow links on adamantine vocal cords now work --- code/modules/surgery/organs/vocal_cords.dm.rej | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 code/modules/surgery/organs/vocal_cords.dm.rej diff --git a/code/modules/surgery/organs/vocal_cords.dm.rej b/code/modules/surgery/organs/vocal_cords.dm.rej new file mode 100644 index 0000000000..b991c4f5c0 --- /dev/null +++ b/code/modules/surgery/organs/vocal_cords.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm (rejected hunks) +@@ -51,7 +51,7 @@ + if(C.getorganslot("adamantine_resonator")) + to_chat(C, msg) + if(isobserver(m)) +- var/link = FOLLOW_LINK(m, src) ++ var/link = FOLLOW_LINK(m, owner) + to_chat(m, "[link] [msg]") + + //Colossus drop, forces the listeners to obey certain commands From bbdcff81bb7158237e69869c032f1e018874f277 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 7 May 2017 06:07:21 -0500 Subject: [PATCH 07/82] Cultists of Nar-sie have their own language --- code/datums/antagonists/datum_cult.dm | 2 + code/game/gamemodes/cult/runes.dm | 6 +-- code/game/gamemodes/cult/runes.dm.rej | 10 ++++ code/game/gamemodes/cult/talisman.dm | 2 +- code/modules/language/language.dm | 2 +- code/modules/language/language.dm.rej | 15 ++++++ code/modules/language/narsian.dm | 43 ++++++++++++++++++ .../language/{ratvar.dm => ratvarian.dm} | 13 ++++-- .../mob/living/simple_animal/constructs.dm | 3 +- .../modules/mob/living/simple_animal/shade.dm | 3 +- code/modules/surgery/organs/tongue.dm.rej | 9 ++++ icons/misc/language.dmi | Bin 1455 -> 1675 bytes tgstation.dme | 3 +- 13 files changed, 99 insertions(+), 12 deletions(-) create mode 100644 code/game/gamemodes/cult/runes.dm.rej create mode 100644 code/modules/language/language.dm.rej create mode 100644 code/modules/language/narsian.dm rename code/modules/language/{ratvar.dm => ratvarian.dm} (51%) create mode 100644 code/modules/surgery/organs/tongue.dm.rej diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm index 30c0aa8450..21c8003c17 100644 --- a/code/datums/antagonists/datum_cult.dm +++ b/code/datums/antagonists/datum_cult.dm @@ -27,6 +27,7 @@ if(mob_override) current = mob_override current.faction |= "cult" + current.grant_language(/datum/language/narsie) current.verbs += /mob/living/proc/cult_help communion.Grant(current) @@ -36,6 +37,7 @@ if(mob_override) current = mob_override current.faction -= "cult" + current.remove_language(/datum/language/narsie) current.verbs -= /mob/living/proc/cult_help communion.Remove(current) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 3a80ed54b3..f9bbf11280 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -136,7 +136,7 @@ structure_check() searches for nearby cultist structures required for the invoca if(invocation) for(var/M in invokers) var/mob/living/L = M - L.say(invocation) + L.say(invocation, language = /datum/language/common) do_invoke_glow() /obj/effect/rune/proc/do_invoke_glow() @@ -556,9 +556,9 @@ structure_check() searches for nearby cultist structures required for the invoca return rune_in_use = 1 if(user.name == "Herbert West") - user.say("To life, to life, I bring them!") + invocation = "To life, to life, I bring them!" else - user.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!") + invocation = initial(invocation) ..() revives_used++ mob_to_revive.revive(1, 1) //This does remove disabilities and such, but the rune might actually see some use because of it! diff --git a/code/game/gamemodes/cult/runes.dm.rej b/code/game/gamemodes/cult/runes.dm.rej new file mode 100644 index 0000000000..cd7962db1e --- /dev/null +++ b/code/game/gamemodes/cult/runes.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm (rejected hunks) +@@ -516,7 +516,7 @@ structure_check() searches for nearby cultist structures required for the invoca + /obj/effect/rune/raise_dead + cultist_name = "Resurrect Cultist" + cultist_desc = "requires the corpse of a cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be revived." +- invocation = null //Depends on the name of the user - see below ++ invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!" //Depends on the name of the user - see below + icon_state = "1" + color = "#C80000" + var/static/revives_used = 0 diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 9645b4bbce..cd3431406c 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -28,7 +28,7 @@ . = successfuluse if(successfuluse) //if the calling whatever says we succeed, do the fancy stuff if(invocation) - user.whisper(invocation) + user.whisper(invocation, language = /datum/language/common) if(health_cost && iscarbon(user)) var/mob/living/carbon/C = user C.apply_damage(health_cost, BRUTE, pick("l_arm", "r_arm")) diff --git a/code/modules/language/language.dm b/code/modules/language/language.dm index 4222982182..edbeccb505 100644 --- a/code/modules/language/language.dm +++ b/code/modules/language/language.dm @@ -1,4 +1,4 @@ -#define SCRAMBLE_CACHE_LEN 20 +#define SCRAMBLE_CACHE_LEN 50 //maximum of 50 specific scrambled lines per language /* Datum based languages. Easily editable and modular. diff --git a/code/modules/language/language.dm.rej b/code/modules/language/language.dm.rej new file mode 100644 index 0000000000..c7f2ac173f --- /dev/null +++ b/code/modules/language/language.dm.rej @@ -0,0 +1,15 @@ +diff a/code/modules/language/language.dm b/code/modules/language/language.dm (rejected hunks) +@@ -16,10 +16,10 @@ + // If key is null, then the language isn't real or learnable. + var/flags // Various language flags. + var/list/syllables // Used when scrambling text for a non-speaker. +- var/list/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. +- var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string ++ var/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. ++ var/space_chance = 55 // Likelihood of getting a space in the random scramble string + var/list/spans = list() +- var/static/list/scramble_cache = list() ++ var/list/scramble_cache = list() + var/default_priority = 0 // the language that an atom knows with the highest "default_priority" is selected by default. + + // if you are seeing someone speak popcorn language, then something is wrong. diff --git a/code/modules/language/narsian.dm b/code/modules/language/narsian.dm new file mode 100644 index 0000000000..70966ad880 --- /dev/null +++ b/code/modules/language/narsian.dm @@ -0,0 +1,43 @@ +/datum/language/narsie + name = "Nar-Sian" + desc = "The ancient, blood-soaked, impossibly complex language of Nar-Sian cultists." + speech_verb = "intones" + ask_verb = "inquires" + exclaim_verb = "invokes" + key = "n" + sentence_chance = 8 + space_chance = 95 //very high due to the potential length of each syllable + var/static/list/base_syllables = list( + "h", "v", "c", "e", "g", "d", "r", "n", "h", "o", "p", + "ra", "so", "at", "il", "ta", "gh", "sh", "ya", "te", "sh", "ol", "ma", "om", "ig", "ni", "in", + "sha", "mir", "sas", "mah", "zar", "tok", "lyr", "nqa", "nap", "olt", "val", "qha", + "fwe", "ath", "yro", "eth", "gal", "gib", "bar", "jin", "kla", "atu", "kal", "lig", + "yoka", "drak", "loso", "arta", "weyh", "ines", "toth", "fara", "amar", "nyag", "eske", "reth", "dedo", "btoh", "nikt", "neth", + "kanas", "garis", "uloft", "tarat", "khari", "thnor", "rekka", "ragga", "rfikk", "harfr", "andid", "ethra", "dedol", "totum", + "ntrath", "keriam" + ) //the list of syllables we'll combine with itself to get a larger list of syllables + syllables = list( + "sha", "mir", "sas", "mah", "hra", "zar", "tok", "lyr", "nqa", "nap", "olt", "val", + "yam", "qha", "fel", "det", "fwe", "mah", "erl", "ath", "yro", "eth", "gal", "mud", + "gib", "bar", "tea", "fuu", "jin", "kla", "atu", "kal", "lig", + "yoka", "drak", "loso", "arta", "weyh", "ines", "toth", "fara", "amar", "nyag", "eske", "reth", "dedo", "btoh", "nikt", "neth", "abis", + "kanas", "garis", "uloft", "tarat", "khari", "thnor", "rekka", "ragga", "rfikk", "harfr", "andid", "ethra", "dedol", "totum", + "verbot", "pleggh", "ntrath", "barhah", "pasnar", "keriam", "usinar", "savrae", "amutan", "tannin", "remium", "barada", + "forbici" + ) //the base syllables, which include a few rare ones that won't appear in the mixed syllables + icon_state = "narsie" + default_priority = 10 + +/datum/language/narsie/New() + for(var/syllable in base_syllables) //we only do this once, since there's only ever a single one of each language datum. + for(var/target_syllable in base_syllables) + if(syllable != target_syllable) //don't combine with yourself + if(length(syllable) + length(target_syllable) > 8) //if the resulting syllable would be very long, don't put anything between it + syllables += "[syllable][target_syllable]" + else if(prob(80)) //we'll be minutely different each round. + syllables += "[syllable]'[target_syllable]" + else if(prob(25)) //5% chance of - instead of ' + syllables += "[syllable]-[target_syllable]" + else //15% chance of no ' or - at all + syllables += "[syllable][target_syllable]" + ..() diff --git a/code/modules/language/ratvar.dm b/code/modules/language/ratvarian.dm similarity index 51% rename from code/modules/language/ratvar.dm rename to code/modules/language/ratvarian.dm index cef4a3164e..b924d2fc79 100644 --- a/code/modules/language/ratvar.dm +++ b/code/modules/language/ratvarian.dm @@ -1,14 +1,19 @@ /datum/language/ratvar name = "Ratvarian" desc = "A timeless language full of power and incomprehensible to the unenlightened." - speech_verb = "clinks" - ask_verb = "clunks" - exclaim_verb = "clanks" + var/static/random_speech_verbs = list("clanks", "clinks", "clunks", "clangs") + ask_verb = "requests" + exclaim_verb = "proclaims" + whisper_verb = "imparts" key = "r" default_priority = 10 spans = list(SPAN_ROBOT) - icon_state = "ratvar" /datum/language/ratvar/scramble(var/input) . = text2ratvar(input) + +/datum/language/ratvar/get_spoken_verb(msg_end) + if(!msg_end) + return pick(random_speech_verbs) + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index b879f1baf6..e682b03870 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -27,7 +27,8 @@ unique_name = 1 AIStatus = AI_OFF //normal constructs don't have AI loot = list(/obj/item/weapon/ectoplasm) - del_on_death = 1 + del_on_death = TRUE + initial_language_holder = /datum/language_holder/construct deathmessage = "collapses in a shattered heap." var/list/construct_spells = list() var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 8c08263aa7..4eaa10195b 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -28,7 +28,8 @@ status_flags = CANPUSH movement_type = FLYING loot = list(/obj/item/weapon/ectoplasm) - del_on_death = 1 + del_on_death = TRUE + initial_language_holder = /datum/language_holder/construct /mob/living/simple_animal/shade/death() deathmessage = "lets out a contented sigh as [p_their()] form unwinds." diff --git a/code/modules/surgery/organs/tongue.dm.rej b/code/modules/surgery/organs/tongue.dm.rej new file mode 100644 index 0000000000..c1f978600b --- /dev/null +++ b/code/modules/surgery/organs/tongue.dm.rej @@ -0,0 +1,9 @@ +diff a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm (rejected hunks) +@@ -15,6 +15,7 @@ + /datum/language/common, + /datum/language/draconic, + /datum/language/monkey, ++ /datum/language/narsie, + /datum/language/ratvar + )) + diff --git a/icons/misc/language.dmi b/icons/misc/language.dmi index e961c351912a5b8dcf5d2f12ab5a08b5fdd0c5b5..081bbf1aa3c0ef6f7e6b3989e29cd5314bddbcb3 100644 GIT binary patch delta 1459 zcmV;k1x)&{3yTeqBmrxYC2c%X006TC2fL3)`uFjVNH7fy5a!mqytuMpC?L!L02>+} z=-I)ujZN?6)ZNUl14gv};)*#rJXZh#wFnH6xf=s&005EHAzF|S0ABzA{{R4H0013g z(Nc@>QIr3G|NmkD045q9Ri^Eo|NpT6|76(kaJ2tMJ3bj19BZlnEDja-=5 z5&!}KIhbCT`363l06LjRiS-3Mm_{itlPdu&f9e-iVgLXD0d!JMQvg8b*k%9#0J3^i zSad{Xb7OL8aCB*JZU6vyoQ=}K3c@f92HH8?wXp4q=U3v28|LHu345 z4!lXcCFJ9Wkd)?9Uz^TUZKG%8Pt#mLx6R zkYb=|i&cw4&@^7bTS>j*k=<2cao6n{e+2Kv`~LHN=bOxtE~~r!CUa5VXTD?dql{h5 zYBja2qhB)S`w-)4G-|YfuFiFr)GW-h_#@4>ZR(}osR;mIh?7aE0T6Flcnm$6)HfV- z8i;TgfUCD*mO)^);X$(jJqV2^>4ooV24I`?9AN}*L;*t6ahgJ3O`rhmY;W&ae-@uC z9fKT^f3C09h)}C0kV4?c?^pt487U|MHS)ejxoGfIn(-@uIN74vwl#rr=xBiBYyxa; zZEXfH6@mljn~n&fl0YiLW%sfPV1@^_DrB=+7O|SZy0}DAzhfj(1Grw4QCtJV{d!#% z4G^tY1(5nCqM*UNNHP~CfGWw(e*xr0l2^HDUgau4#i6f}HY$OmUnZTvx{l%h%y^wI zV67G&-Y=}bo8ZA7L@(3|;CZ{S|3tJa09FM+{?INV)R%nUuc+Idwqj`KOMq9(C85jp zT~6qh`c8W<*y9YH0>hMke}A6{2VMWrKS1vuNPRDOIOtUfEfXN+FaU7&f6<}u`iDpG zLlAn81ZX{#hn9)(cK5X&E_8haa0CyaXM)fU9;H@IWJ_gW-!zW`FLNN05OloYF*L6e zuycq_fUa*;fjkI;PCM8O+MOU^M($-Yy^8+WV?L!$3`7Zf0WT!YCV)v74EZrt!Novb zQ~@psKv2=?1#a;%nY_+!e|dtOSzwI%9+<`Sya#w0TH5YYaZiHrS)cX$?mZP7?C~ee zU4P)Z19xa3LNvp|vP&Crz({Qe!zYIW7nH$M@}mgN(DO~C2q(-Q#qr3-Lg=3!KJ%>m zoZBDvpO=axO7w}?ae(*)qLCesUwCmG+aubtmtKD5)z@BsW5P{3e~_XnKq8h=BF;aB zG=>3lNhIL30ty)tyUP8?4+o8fAH1UWff2Y_^fXdg&>wo zK0sTrLT)G76l!?z&9~oeyayZ*D&F^utr)3Sv{4>R@2r1VD?yZ30Ox>A5K5c;_|wn7 z-1+sl-`8ucsJsh!8KS82cJb4-{qg5tfB&;y8~XDA)Uv8)>K~4O0fjE41Fm8L6#xJL N07*qoM6N<$0fM?;v3mdj delta 1236 zcmV;_1S|WC4X+E3BmpmxC2c3bz`(nYNBZ~ik4P})*1Np8vS276=-I)ujZN?6)ZNUl z14gv};);>Z8KAQkKnMaBB1w5FOX8|pLdxvW}00001bW%=J06^y0W&i*Hta?;fbVOxyV{&P5 zbZKvH004NLjnT0R!Y~j9;5m7U(C(rjZZ6Uy9oly|nzIcixpE1u`1Do_ZgOt_&wc#M zmF7}ko6b~iqi5vgD4Mf5?)F+O&gO9~hm%$#x?#*)Nf|P(u|V*JR@QNUdLOj9F$CQ5 z*E}$ih#i=r&z+ z(ArI!x;yUP-~Ti8>4cDfa3Jf1B;xS?yt@;Iak4PY{I-USqBy@aqdg3-_%ICbbjs5_(= z-t!%RCDL<*mbjJ$2##$#LSHPP04y&pEn61fER};?QGc#CO(K|o#R5_a{PoM009jfI zGJr|$O{ztmmr~C^2Z%RYv^N@xKsB@#z_!Z(i;Iip03%PqhIz*pDHIAwO;~YPbbz5b zXylD_oUDn(0@lPKlKN$>hzh{PBzQYNfOy6#;u{F+6CD0<*ce`C8tatnk ze;u>4F7-Wjn)M2VrVfyD1ORyV=7#V38=LSU2)#25qnFozp{XOh)vnURLdQn}n{WWV zAqXvYmPWCV&Ab9#Jv>T0tAQv2YkTY*hSz4s9HI=+@wG0H1IF4dw#Hg*#tg0YvY1{$ zzvUS|l};=~VLiqhNxKd(qyQ&=g&O1p#0Mow~s(-lCAl+0EV{cY|rGItO|) zJ?|JFLsP|n5fzmL?YF+s@4Jp8pFGXX_gDZf?ysv2l)Ku>$kn{KYq?; yN>TV0@G*qdpMqih`u*qczu8RF&jZlQD*b;PoO*wsBV=p<0000 Date: Sun, 7 May 2017 23:06:10 -0700 Subject: [PATCH 08/82] Delete mind.dm.rej --- code/datums/mind.dm.rej | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 code/datums/mind.dm.rej diff --git a/code/datums/mind.dm.rej b/code/datums/mind.dm.rej deleted file mode 100644 index 24a52b5fcf..0000000000 --- a/code/datums/mind.dm.rej +++ /dev/null @@ -1,20 +0,0 @@ -diff a/code/datums/mind.dm b/code/datums/mind.dm (rejected hunks) -@@ -63,7 +63,7 @@ - - var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) - -- var/datum/language_holder -+ var/datum/language_holder/language_holder - - /datum/mind/New(var/key) - src.key = key -@@ -90,7 +90,8 @@ - SStgui.on_transfer(current, new_character) - - if(!language_holder) -- language_holder = new_character.language_holder.copy(src) -+ var/datum/language_holder/mob_holder = new_character.get_language_holder(shadow = FALSE) -+ language_holder = mob_holder.copy(src) - - if(key) - if(new_character.key != key) //if we're transfering into a body with a key associated which is not ours From e94993f43709426367be8fc23957e04db9b30c3d Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 7 May 2017 23:07:10 -0700 Subject: [PATCH 09/82] Revert "Delete mind.dm.rej" This reverts commit 9430f89756df961ee89941401ca33471a43e3b96. --- code/datums/mind.dm.rej | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 code/datums/mind.dm.rej diff --git a/code/datums/mind.dm.rej b/code/datums/mind.dm.rej new file mode 100644 index 0000000000..24a52b5fcf --- /dev/null +++ b/code/datums/mind.dm.rej @@ -0,0 +1,20 @@ +diff a/code/datums/mind.dm b/code/datums/mind.dm (rejected hunks) +@@ -63,7 +63,7 @@ + + var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) + +- var/datum/language_holder ++ var/datum/language_holder/language_holder + + /datum/mind/New(var/key) + src.key = key +@@ -90,7 +90,8 @@ + SStgui.on_transfer(current, new_character) + + if(!language_holder) +- language_holder = new_character.language_holder.copy(src) ++ var/datum/language_holder/mob_holder = new_character.get_language_holder(shadow = FALSE) ++ language_holder = mob_holder.copy(src) + + if(key) + if(new_character.key != key) //if we're transfering into a body with a key associated which is not ours From 4c2d6e4ef54347b35b73fd0f846ad5166939bcc6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 11 May 2017 20:40:18 -0500 Subject: [PATCH 10/82] Wraiths now refund part of Phase Shift's cooldown by attacking --- .../mob/living/simple_animal/constructs.dm | 25 ++++++++++++++++++- .../spells/spell_types/construct_spells.dm | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index b879f1baf6..4c90b23e9c 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -162,7 +162,30 @@ attacktext = "slashes" attack_sound = 'sound/weapons/bladeslice.ogg' construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift) - playstyle_string = "You are a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls." + playstyle_string = "You are a Wraith. Though relatively fragile, you are fast, deadly, can phase through walls, and your attacks will lower the cooldown on phasing." + var/attack_refund = 10 //1 second per attack + var/crit_refund = 50 //5 seconds when putting a target into critical + var/kill_refund = 250 //full refund on kills + +/mob/living/simple_animal/hostile/construct/wraith/AttackingTarget() //refund jaunt cooldown when attacking living targets + var/prev_stat + if(isliving(target) && !iscultist(target)) + var/mob/living/L = target + prev_stat = L.stat + + . = ..() + + if(. && isnum(prev_stat)) + var/mob/living/L = target + var/refund = 0 + if(QDELETED(L) || (L.stat == DEAD && prev_stat != DEAD)) //they're dead, you killed them + refund += kill_refund + else if(L.InCritical() && prev_stat == CONSCIOUS) //you knocked them into critical + refund += crit_refund + if(L.stat != DEAD && prev_stat != DEAD) + refund += attack_refund + for(var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/S in mob_spell_list) + S.charge_counter = min(S.charge_counter + refund, S.charge_max) /mob/living/simple_animal/hostile/construct/wraith/hostile //actually hostile, will move around, hit things AIStatus = AI_ON diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 05e2011173..c59af27ddd 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -98,7 +98,7 @@ desc = "This spell allows you to pass through walls" school = "transmutation" - charge_max = 200 + charge_max = 250 clothes_req = 0 invocation = "none" invocation_type = "none" From 00b17f16499750c7838359403170da58c1564d67 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 14 May 2017 00:28:07 -0500 Subject: [PATCH 11/82] maybe --- code/__HELPERS/game.dm | 131 +++++++++--------- code/datums/antagonists/datum_cult.dm | 68 ++++++++- code/datums/mind.dm | 120 ++++++++-------- code/game/gamemodes/cult/cult.dm | 67 +++------ code/game/gamemodes/game_mode.dm | 2 + .../mob/living/simple_animal/constructs.dm | 100 ++++++++----- 6 files changed, 276 insertions(+), 212 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 2df42fbb51..ec78eb49b2 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -6,7 +6,7 @@ ) #define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL)) -#define CULT_POLL_WAIT 2400 +#define CULT_POLL_WAIT 2400 /proc/get_area(atom/A) if (!istype(A)) @@ -314,10 +314,10 @@ // Will return a list of active candidates. It increases the buffer 5 times until it finds a candidate which is active within the buffer. -/proc/get_candidates(be_special_type, afk_bracket = config.inactivity_period, jobbanType) +/proc/get_candidates(be_special_type, afk_bracket = config.inactivity_period, jobbanType) var/list/candidates = list() // Keep looping until we find a non-afk candidate within the time bracket (we limit the bracket to 10 minutes (6000)) - while(!candidates.len && afk_bracket < config.afk_period) + while(!candidates.len && afk_bracket < config.afk_period) for(var/mob/dead/observer/G in GLOB.player_list) if(G.client != null) if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) @@ -486,69 +486,66 @@ ++i return L -/proc/pollCultists(var/mob/living/Nominee) // Cult Master Poll - var/time_passed = world.time - var/list/yes_voters = new - var/list/cult_total = new - if(world.time<1) - Nominee << "It would be premature to select a leader while everyone is still settling in, try again in [round((1800-world.time)/10)] seconds" - return - for(var/datum/mind/B in SSticker.mode.cult) - if(!isliving(B.current)) - continue - var/mob/living/M = B.current - if(isliving(M)) - M << 'sound/hallucinations/im_here1.ogg' - M.verbs -= /mob/living/proc/cult_master - to_chat(M, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") - sleep(250) - for(var/datum/mind/B in SSticker.mode.cult) - if(!isliving(B.current)) - continue - var/mob/living/M = B.current - M << 'sound/magic/exit_blood.ogg' - switch(askuser(M,"[Nominee] seeks to lead your cult, do you support them?","Please answer in 20 seconds!","Yes","No","Abstain", StealFocus=0, Timeout=200)) - if(1) - if((world.time-time_passed)>500) - M << "Sorry, your vote came too late!" - M << 'sound/machines/buzz-sigh.ogg' - else - M << "Choice registered: Yes." - yes_voters += M - cult_total += M - if(2) - if((world.time-time_passed)>500) - M << "Sorry, your vote came too late!" - M << 'sound/machines/buzz-sigh.ogg' - else - M << "Choice registered: No." - cult_total += M - if(3) - M << "Choice registered: Abstain." - sleep(300) - if(yes_voters.len > (cult_total.len/2)) - var/datum/action/innate/cultmast/finalreck/FinalReckoning = new() - var/datum/action/innate/cultmast/cultmark/Mark = new() - FinalReckoning.Grant(Nominee) - Mark.Grant(Nominee) - Nominee.mind.special_role = "Cult Master" - Nominee.update_action_buttons_icon() - Nominee.apply_status_effect(/datum/status_effect/cult_master) - SSticker.mode.set_antag_hud(Nominee,"cultmaster") - GLOB.cult_mastered = TRUE - for(var/datum/mind/B in SSticker.mode.cult) - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has the cult's support and is now their master. Follow their orders to the best of your ability!") - return TRUE - else - for(var/datum/mind/B in SSticker.mode.cult) - if(!B.current.incapacitated()) - to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") - B.current.verbs += /mob/living/proc/cult_master - return FALSE - -/proc/poll_helper(var/mob/living/M) - +/proc/pollCultists(var/mob/living/Nominee) // Cult Master Poll + var/time_passed = world.time + var/list/yes_voters = new + var/list/cult_total = new + if(world.time < CULT_POLL_WAIT) + Nominee << "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds" + return + for(var/datum/mind/B in SSticker.mode.cult) + var/mob/living/M = B.current + if(!M.incapacitated()) + M << 'sound/hallucinations/im_here1.ogg' + M.verbs -= /mob/living/proc/cult_master + to_chat(M, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") + sleep(250) + for(var/datum/mind/B in SSticker.mode.cult) + var/mob/living/M = B.current + if(!M.incapacitated()) + M << 'sound/magic/exit_blood.ogg' + switch(askuser(M,"[Nominee] seeks to lead your cult, do you support them?","Please answer in 20 seconds!","Yes","No","Abstain", StealFocus=0, Timeout=200)) + if(1) + if((world.time-time_passed)>500) + to_chat(M, "Sorry, your vote came too late!") + M << 'sound/machines/buzz-sigh.ogg' + else + M << "Choice registered: Yes." + yes_voters += M + cult_total += M + if(2) + if((world.time-time_passed)>500) + to_chat(M, "Sorry, your vote came too late!") + M << 'sound/machines/buzz-sigh.ogg' + else + to_chat(M, "Choice registered: No.") + cult_total += M + if(3) + to_chat(M, "Choice registered: Abstain.") + sleep(300) + if(yes_voters.len > (cult_total.len/2)) + var/datum/action/innate/cultmast/finalreck/FinalReckoning = new() + var/datum/action/innate/cultmast/cultmark/Mark = new() + FinalReckoning.Grant(Nominee) + Mark.Grant(Nominee) + Nominee.mind.special_role = "Cult Master" + Nominee.update_action_buttons_icon() + Nominee.apply_status_effect(/datum/status_effect/cult_master) + SSticker.mode.set_antag_hud(Nominee,"cultmaster") + GLOB.cult_mastered = TRUE + for(var/datum/mind/B in SSticker.mode.cult) + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has the cult's support and is now their master. Follow their orders to the best of your ability!") + return TRUE + else + for(var/datum/mind/B in SSticker.mode.cult) + if(!B.current.incapacitated()) + to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") + B.current.verbs += /mob/living/proc/cult_master + return FALSE + +/proc/poll_helper(var/mob/living/M) + /proc/makeBody(mob/dead/observer/G_found) // Uses stripped down and bastardized code from respawn character if(!G_found || !G_found.key) return @@ -577,7 +574,7 @@ winset(C, "mainwindow", "flash=5") /proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank) - if(!SSticker.IsRoundInProgress() || !character) + if(!SSticker.IsRoundInProgress() || !character) return var/area/A = get_area(character) var/message = "\ diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm index 30c0aa8450..59f165ff37 100644 --- a/code/datums/antagonists/datum_cult.dm +++ b/code/datums/antagonists/datum_cult.dm @@ -5,6 +5,51 @@ qdel(communion) return ..() +/datum/antagonist/cult/proc/add_objectives() + var/list/target_candidates = list() + for(var/mob/living/carbon/human/player in GLOB.player_list) + if(player.mind && !is_convertable_to_cult(player) && (player != owner) && isliving(player)) + target_candidates += player.mind + if(target_candidates.len == 0) + message_admins("Cult Sacrifice: Could not find unconvertable target, checking for convertable target.") + for(var/mob/living/carbon/human/player in GLOB.player_list) + if(player.mind && (player != owner) && isliving(player)) + target_candidates += player.mind + if(target_candidates.len > 0) + GLOB.sac_mind = pick(target_candidates) + if(!GLOB.sac_mind) + message_admins("Cult Sacrifice: ERROR - Null target chosen!") + else + var/datum/job/sacjob = SSjob.GetJob(GLOB.sac_mind.assigned_role) + var/datum/preferences/sacface = GLOB.sac_mind.current.client.prefs + var/icon/reshape = get_flat_human_icon(null, sacjob, sacface) + reshape.Shift(SOUTH, 4) + reshape.Shift(EAST, 1) + reshape.Crop(7,4,26,31) + reshape.Crop(-5,-3,26,30) + GLOB.sac_image = reshape + else + message_admins("Cult Sacrifice: Could not find unconvertable or convertable target. WELP!") + GLOB.sac_complete = TRUE + SSticker.mode.cult_objectives += "sacrifice" + SSticker.mode.cult_objectives += "eldergod" + on_gain() + +/datum/antagonist/cult/proc/cult_memorization(datum/mind/cult_mind) + var/mob/living/current = cult_mind.current + for(var/obj_count = 1,obj_count <= SSticker.mode.cult_objectives.len,obj_count++) + var/explanation + switch(SSticker.mode.cult_objectives[obj_count]) + if("sacrifice") + if(GLOB.sac_mind) + explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role] via invoking a Sacrifice rune with them on it and three acolytes around it." + else + explanation = "The veil has already been weakened here, proceed to the final objective." + if("eldergod") + explanation = "Summon Nar-Sie by invoking the rune 'Summon Nar-Sie' with nine acolytes on it. You must do this after sacrificing your target." + to_chat(current, "Objective #[obj_count]: [explanation]") + cult_mind.memory += "Objective #[obj_count]: [explanation]
" + /datum/antagonist/cult/can_be_owned(datum/mind/new_owner) . = ..() if(.) @@ -12,14 +57,17 @@ /datum/antagonist/cult/on_gain() . = ..() - SSticker.mode.cult += owner + var/mob/living/current = owner.current + if(SSticker.mode.cult_objectives.len == 0) + add_objectives() + return + SSticker.mode.cult += owner // Only add after they've been given objectives + cult_memorization(owner) + if(jobban_isbanned(current, ROLE_CULTIST)) + addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, current, ROLE_CULTIST, ROLE_CULTIST), 0) SSticker.mode.update_cult_icons_added(owner) - if(istype(SSticker.mode, /datum/game_mode/cult)) - var/datum/game_mode/cult/C = SSticker.mode - C.memorize_cult_objectives(owner) - if(jobban_isbanned(owner.current, ROLE_CULTIST)) - addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, owner.current, ROLE_CULTIST, ROLE_CULTIST), 0) - owner.current.log_message("Has been converted to the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) + current.throw_alert("bloodsense", /obj/screen/alert/bloodsense) + current.log_message("Has been converted to the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) /datum/antagonist/cult/apply_innate_effects(mob/living/mob_override) . = ..() @@ -28,6 +76,8 @@ current = mob_override current.faction |= "cult" current.verbs += /mob/living/proc/cult_help + if(!GLOB.cult_mastered) + current.verbs += /mob/living/proc/cult_master communion.Grant(current) /datum/antagonist/cult/remove_innate_effects(mob/living/mob_override) @@ -38,6 +88,10 @@ current.faction -= "cult" current.verbs -= /mob/living/proc/cult_help communion.Remove(current) + owner.current.verbs -= /mob/living/proc/cult_master + for(var/datum/action/innate/cultmast/H in owner.current.actions) + qdel(H) + current.clear_alert("bloodsense") /datum/antagonist/cult/on_removal() owner.wipe_memory() diff --git a/code/datums/mind.dm b/code/datums/mind.dm index f4a535e4c4..22ac5c65d6 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -52,7 +52,7 @@ var/linglink var/miming = 0 // Mime's vow of silence - var/list/antag_datums + var/list/antag_datums var/antag_hud_icon_state = null //this mind's ANTAG_HUD should have this icon_state var/datum/atom_hud/antag/antag_hud = null //this mind's antag HUD var/datum/gang/gang_datum //Which gang this mind belongs to, if any @@ -69,10 +69,10 @@ /datum/mind/Destroy() SSticker.minds -= src - if(islist(antag_datums)) - for(var/i in antag_datums) - qdel(i) - antag_datums = null + if(islist(antag_datums)) + for(var/i in antag_datums) + qdel(i) + antag_datums = null return ..() /datum/mind/proc/transfer_to(mob/new_character, var/force_key_move = 0) @@ -90,12 +90,12 @@ new_character.mind.current = null var/datum/atom_hud/antag/hud_to_transfer = antag_hud//we need this because leave_hud() will clear this list - var/mob/living/old_current = current + var/mob/living/old_current = current current = new_character //associate ourself with our new body new_character.mind = src //and associate our new body with ourself - for(var/a in antag_datums) //Makes sure all antag datums effects are applied in the new body - var/datum/antagonist/A = a - A.on_body_transfer(old_current, current) + for(var/a in antag_datums) //Makes sure all antag datums effects are applied in the new body + var/datum/antagonist/A = a + A.on_body_transfer(old_current, current) if(iscarbon(new_character)) var/mob/living/carbon/C = new_character C.last_mind = src @@ -111,42 +111,42 @@ /datum/mind/proc/wipe_memory() memory = null -// Datum antag mind procs -/datum/mind/proc/add_antag_datum(datum_type) - if(!datum_type) - return - var/datum/antagonist/A = new datum_type(src) - if(!A.can_be_owned(src)) - qdel(A) - return - LAZYADD(antag_datums, A) - A.on_gain() - return A - -/datum/mind/proc/remove_antag_datum(datum_type) - if(!datum_type) - return - var/datum/antagonist/A = has_antag_datum(datum_type) - if(A) - A.on_removal() - return TRUE - -/datum/mind/proc/remove_all_antag_datums() //For the Lazy amongst us. - for(var/a in antag_datums) - var/datum/antagonist/A = a - A.on_removal() - -/datum/mind/proc/has_antag_datum(datum_type, check_subtypes = TRUE) - if(!datum_type) - return - . = FALSE - for(var/a in antag_datums) - var/datum/antagonist/A = a - if(check_subtypes && istype(A, datum_type)) - return A - else if(A.type == datum_type) - return A - +// Datum antag mind procs +/datum/mind/proc/add_antag_datum(datum_type) + if(!datum_type) + return + var/datum/antagonist/A = new datum_type(src) + if(!A.can_be_owned(src)) + qdel(A) + return + LAZYADD(antag_datums, A) + A.on_gain() + return A + +/datum/mind/proc/remove_antag_datum(datum_type) + if(!datum_type) + return + var/datum/antagonist/A = has_antag_datum(datum_type) + if(A) + A.on_removal() + return TRUE + +/datum/mind/proc/remove_all_antag_datums() //For the Lazy amongst us. + for(var/a in antag_datums) + var/datum/antagonist/A = a + A.on_removal() + +/datum/mind/proc/has_antag_datum(datum_type, check_subtypes = TRUE) + if(!datum_type) + return + . = FALSE + for(var/a in antag_datums) + var/datum/antagonist/A = a + if(check_subtypes && istype(A, datum_type)) + return A + else if(A.type == datum_type) + return A + /* Removes antag type's references from a mind. objectives, uplinks, powers etc are all handled. @@ -293,7 +293,7 @@ to_chat(recipient, "[output]") /datum/mind/proc/edit_memory() - if(!SSticker.HasRoundStarted()) + if(!SSticker.HasRoundStarted()) alert("Not before round-start!", "Alert") return @@ -1181,7 +1181,7 @@ log_admin("[key_name_admin(usr)] has made [current] unable to ascend as a devil.") return if(!ishuman(current) && !iscyborg(current)) - to_chat(usr, "This only works on humans and cyborgs!") + to_chat(usr, "This only works on humans and cyborgs!") return SSticker.mode.devils += src special_role = "devil" @@ -1230,17 +1230,17 @@ log_admin("[key_name(usr)] turned [current] into abductor.") SSticker.mode.update_abductor_icons_added(src) if("equip") - if(!ishuman(current)) - to_chat(usr, "This only works on humans!") - return - - var/mob/living/carbon/human/H = current + if(!ishuman(current)) + to_chat(usr, "This only works on humans!") + return + + var/mob/living/carbon/human/H = current var/gear = alert("Agent or Scientist Gear","Gear","Agent","Scientist") if(gear) if(gear=="Agent") - H.equipOutfit(/datum/outfit/abductor/agent) + H.equipOutfit(/datum/outfit/abductor/agent) else - H.equipOutfit(/datum/outfit/abductor/scientist) + H.equipOutfit(/datum/outfit/abductor/scientist) else if (href_list["monkey"]) var/mob/living/L = current @@ -1437,8 +1437,8 @@ special_role = "Cultist" to_chat(current, "You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie.") to_chat(current, "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.") - var/datum/game_mode/cult/cult = SSticker.mode - cult.memorize_cult_objectives(src) + var/datum/antagonist/cult/C + C.cult_memorization(src) var/mob/living/carbon/human/H = current if (!SSticker.mode.equip_cultist(current)) to_chat(H, "Spawning an amulet from your Master failed.") @@ -1502,8 +1502,8 @@ H.set_species(/datum/species/abductor) var/datum/species/abductor/S = H.dna.species - if(role == "Scientist") - S.scientist = TRUE + if(role == "Scientist") + S.scientist = TRUE S.team = team var/list/obj/effect/landmark/abductor/agent_landmarks = new @@ -1522,8 +1522,8 @@ if("Agent") L = agent_landmarks[team] if("Scientist") - L = scientist_landmarks[team] - H.forceMove(L.loc) + L = scientist_landmarks[team] + H.forceMove(L.loc) /datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/S) spell_list += S diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index b67ad1f74b..3b30d3e44a 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -1,32 +1,31 @@ /datum/game_mode var/list/datum/mind/cult = list() var/list/cult_objectives = list() + var/eldergod = 1 //for the summon god objective /proc/iscultist(mob/living/M) return istype(M) && M.mind && M.mind.has_antag_datum(ANTAG_DATUM_CULT) /proc/is_sacrifice_target(datum/mind/mind) - if(SSticker.mode.name == "cult") - var/datum/game_mode/cult/cult_mode = SSticker.mode - if(mind == cult_mode.sacrifice_target) - return 1 - return 0 + if(mind == GLOB.sac_mind) + return TRUE + return FALSE /proc/is_convertable_to_cult(mob/living/M) if(!istype(M)) - return 0 + return FALSE if(M.mind) if(ishuman(M) && (M.mind.assigned_role in list("Captain", "Chaplain"))) - return 0 + return FALSE if(is_sacrifice_target(M.mind)) - return 0 + return FALSE if(M.mind.enslaved_to && !iscultist(M.mind.enslaved_to)) - return 0 + return FALSE else - return 0 + return FALSE if(M.isloyal() || issilicon(M) || isbot(M) || isdrone(M) || is_servant_of_ratvar(M)) - return 0 //can't convert machines, shielded, or ratvar's dogs - return 1 + return FALSE //can't convert machines, shielded, or ratvar's dogs + return TRUE /datum/game_mode/cult name = "cult" @@ -34,10 +33,10 @@ antag_flag = ROLE_CULTIST restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel") protected_jobs = list() - required_players = 1 - required_enemies = 1 - recommended_enemies = 1 - enemy_minimum_age = 0 + required_players = 24 + required_enemies = 4 + recommended_enemies = 4 + enemy_minimum_age = 14 announce_span = "cult" announce_text = "Some crew members are trying to start a cult to Nar-Sie!\n\ @@ -79,23 +78,6 @@ return (cultists_to_cult.len>=required_enemies) -/datum/game_mode/cult/proc/memorize_cult_objectives(datum/mind/cult_mind) - for(var/obj_count = 1,obj_count <= cult_objectives.len,obj_count++) - var/explanation - switch(cult_objectives[obj_count]) - if("survive") - explanation = "Our knowledge must live on. Make sure at least [acolytes_needed] acolytes escape on the shuttle to spread their work on an another station." - if("sacrifice") - if(GLOB.sac_mind) - explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role] via invoking a Sacrifice rune with them on it and three acolytes around it." - else - explanation = "The veil has already been weakened here, proceed to the next objective." - GLOB.sac_complete = TRUE - if("eldergod") - explanation = "Summon Nar-Sie by invoking the rune 'Summon Nar-Sie' with nine acolytes on it. You must do this after sacrificing your target." - to_chat(cult_mind.current, "Objective #[obj_count]: [explanation]") - cult_mind.memory += "Objective #[obj_count]: [explanation]
" - /datum/game_mode/cult/post_setup() modePlayer += cultists_to_cult if("sacrifice" in cult_objectives) @@ -111,7 +93,8 @@ message_admins("Cult Sacrifice: ERROR - Null target chosen!") else var/datum/job/sacjob = SSjob.GetJob(GLOB.sac_mind.assigned_role) - var/icon/reshape = get_flat_human_icon(null, sacjob, GLOB.sac_mind.current.client.prefs) + var/datum/preferences/sacface = GLOB.sac_mind.current.client.prefs + var/icon/reshape = get_flat_human_icon(null, sacjob, sacface) reshape.Shift(SOUTH, 4) reshape.Shift(EAST, 1) reshape.Crop(7,4,26,31) @@ -249,16 +232,12 @@ SSblackbox.add_details("cult_objective","cult_survive|FAIL|[acolytes_needed]") SSticker.news_report = CULT_FAILURE if("sacrifice") - if(sacrifice_target) - if(sacrifice_target in GLOB.sacrificed) - explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Success!" - SSblackbox.add_details("cult_objective","cult_sacrifice|SUCCESS") - else if(sacrifice_target && sacrifice_target.current) - explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail." - SSblackbox.add_details("cult_objective","cult_sacrifice|FAIL") - else - explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail (Gibbed)." - SSblackbox.add_details("cult_objective","cult_sacrifice|FAIL|GIBBED") + if(GLOB.sac_complete) + explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role]. Success!" + SSblackbox.add_details("cult_objective","cult_sacrifice|SUCCESS") + else + explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role]. Fail." + SSblackbox.add_details("cult_objective","cult_sacrifice|FAIL") if("eldergod") if(!eldergod) explanation = "Summon Nar-Sie. Success!" diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index a496715af2..2ec87b1945 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -258,6 +258,8 @@ if(escaped_total > 0) SSblackbox.set_val("escaped_total",escaped_total) send2irc("Server", "Round just ended.") + if(cult.len && !istype(SSticker.mode,/datum/game_mode/cult)) + datum_cult_completion() return 0 diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 37ef42291d..7285c2fa75 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -14,8 +14,8 @@ stop_automated_movement = 1 status_flags = CANPUSH attack_sound = 'sound/weapons/punch1.ogg' - see_in_dark = 7 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + see_in_dark = 7 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 @@ -31,20 +31,20 @@ deathmessage = "collapses in a shattered heap." var/list/construct_spells = list() var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." - var/master = null - var/seeking = FALSE + var/master = null + var/seeking = FALSE /mob/living/simple_animal/hostile/construct/Initialize() - . = ..() + . = ..() for(var/spell in construct_spells) AddSpell(new spell(null)) -/mob/living/simple_animal/hostile/construct/Destroy() - for(var/X in actions) - var/datum/action/A = X - qdel(A) - ..() - +/mob/living/simple_animal/hostile/construct/Destroy() + for(var/X in actions) + var/datum/action/A = X + qdel(A) + ..() + /mob/living/simple_animal/hostile/construct/Login() ..() to_chat(src, playstyle_string) @@ -92,11 +92,11 @@ /mob/living/simple_animal/hostile/construct/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0, stun = TRUE) return 0 - -/mob/living/simple_animal/hostile/construct/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - . = ..() - if(updating_health) - update_health_hud() + +/mob/living/simple_animal/hostile/construct/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + . = ..() + if(updating_health) + update_health_hud() /////////////////Juggernaut/////////////// /mob/living/simple_animal/hostile/construct/armored @@ -127,6 +127,38 @@ AIStatus = AI_ON environment_smash = 1 //only token destruction, don't smash the cult wall NO STOP + +///////////////////////Master-Tracker/////////////////////// + +/datum/action/innate/seek_master + name = "Seek your Master" + desc = "You and your master share a soul-link that informs you of their location" + background_icon_state = "bg_demon" + buttontooltipstyle = "cult" + button_icon_state = "cult_mark" + var/tracking = FALSE + var/mob/living/simple_animal/hostile/construct/the_construct + +/datum/action/innate/seek_master/Grant(var/mob/living/C) + the_construct = C + ..() + +/datum/action/innate/seek_master/Activate() + if(!the_construct.master) + to_chat(the_construct, "You have no master to seek!") + the_construct.seeking = FALSE + return + if(tracking) + tracking = FALSE + the_construct.seeking = FALSE + to_chat(the_construct, "You are no longer tracking your master.") + return + else + tracking = TRUE + the_construct.seeking = TRUE + to_chat(the_construct, "You are now tracking your master.") + + /mob/living/simple_animal/hostile/construct/armored/bullet_act(obj/item/projectile/P) if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) var/reflectchance = 80 - round(P.damage/3) @@ -281,22 +313,22 @@ /mob/living/simple_animal/hostile/construct/harvester/hostile //actually hostile, will move around, hit things AIStatus = AI_ON environment_smash = 1 //only token destruction, don't smash the cult wall NO STOP - - - -/////////////////////////////ui stuff///////////////////////////// - -/mob/living/simple_animal/hostile/construct/update_health_hud() - if(hud_used) - if(health >= maxHealth) - hud_used.healths.icon_state = "[icon_state]_health0" - else if(health > maxHealth*0.8) - hud_used.healths.icon_state = "[icon_state]_health2" - else if(health > maxHealth*0.6) - hud_used.healths.icon_state = "[icon_state]_health3" - else if(health > maxHealth*0.4) - hud_used.healths.icon_state = "[icon_state]_health4" - else if(health > maxHealth*0.2) - hud_used.healths.icon_state = "[icon_state]_health5" - else + + + +/////////////////////////////ui stuff///////////////////////////// + +/mob/living/simple_animal/hostile/construct/update_health_hud() + if(hud_used) + if(health >= maxHealth) + hud_used.healths.icon_state = "[icon_state]_health0" + else if(health > maxHealth*0.8) + hud_used.healths.icon_state = "[icon_state]_health2" + else if(health > maxHealth*0.6) + hud_used.healths.icon_state = "[icon_state]_health3" + else if(health > maxHealth*0.4) + hud_used.healths.icon_state = "[icon_state]_health4" + else if(health > maxHealth*0.2) + hud_used.healths.icon_state = "[icon_state]_health5" + else hud_used.healths.icon_state = "[icon_state]_health6" \ No newline at end of file From 230b2e6fc890be78944433114660da070612c248 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 18:43:32 -0500 Subject: [PATCH 12/82] Fixes the ore redemption machine's sheet amount upgrade --- code/modules/mining/machine_redemption.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index f3b66d9172..6424ab1f0d 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -73,11 +73,11 @@ if(!material_amount) qdel(O) //no materials, incinerate it - else if(!materials.has_space(material_amount)) //if there is no space, eject it + else if(!materials.has_space(material_amount * sheet_per_ore)) //if there is no space, eject it unload_mineral(O) else - materials.insert_item(O) //insert it + materials.insert_item(O, sheet_per_ore) //insert it qdel(O) /obj/machinery/mineral/ore_redemption/proc/can_smelt_alloy(datum/design/D) From fde364e82f0ac25f5420e2a8d3fde0fb0d07b8a4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:06:13 -0500 Subject: [PATCH 13/82] The punisher! (#967) --- code/__DEFINES/MC.dm | 4 ++++ code/controllers/master.dm | 19 ++++++++++++------- code/controllers/subsystem.dm | 3 ++- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index eb148e7b59..ebc69a5f2b 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -13,6 +13,10 @@ #define MC_AVERAGE_FAST(average, current) (0.7 * (average) + 0.3 * (current)) #define MC_AVERAGE(average, current) (0.8 * (average) + 0.2 * (current)) #define MC_AVERAGE_SLOW(average, current) (0.9 * (average) + 0.1 * (current)) + +#define MC_AVG_FAST_UP_SLOW_DOWN(average, current) (average > current ? MC_AVERAGE_SLOW(average, current) : MC_AVERAGE_FAST(average, current)) +#define MC_AVG_SLOW_UP_FAST_DOWN(average, current) (average < current ? MC_AVERAGE_SLOW(average, current) : MC_AVERAGE_FAST(average, current)) + #define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;} #define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) {Datum.isprocessing = 1;Processor.processing += Datum} diff --git a/code/controllers/master.dm b/code/controllers/master.dm index c8157748c5..0df2c8cc73 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -421,26 +421,31 @@ GLOBAL_VAR_INIT(CURRENT_TICKLIMIT, TICK_LIMIT_RUNNING) else tick_precentage = tick_remaining - GLOB.CURRENT_TICKLIMIT = world.tick_usage + tick_precentage + tick_precentage = max(tick_precentage*0.5, tick_precentage-queue_node.tick_overrun) + + GLOB.CURRENT_TICKLIMIT = round(world.tick_usage + tick_precentage) if (!(queue_node_flags & SS_TICKER)) ran_non_ticker = TRUE ran = TRUE - tick_usage = world.tick_usage + queue_node_paused = (queue_node.state == SS_PAUSED || queue_node.state == SS_PAUSING) last_type_processed = queue_node queue_node.state = SS_RUNNING + tick_usage = world.tick_usage var/state = queue_node.ignite(queue_node_paused) + tick_usage = world.tick_usage - tick_usage + if (state == SS_RUNNING) state = SS_IDLE current_tick_budget -= queue_node_priority - tick_usage = world.tick_usage - tick_usage + if (tick_usage < 0) tick_usage = 0 - + queue_node.tick_overrun = max(0, MC_AVG_FAST_UP_SLOW_DOWN(queue_node.tick_overrun, tick_usage-tick_precentage)) queue_node.state = state if (state == SS_PAUSED) @@ -467,13 +472,13 @@ GLOBAL_VAR_INIT(CURRENT_TICKLIMIT, TICK_LIMIT_RUNNING) queue_node.times_fired++ if (queue_node_flags & SS_TICKER) - queue_node.next_fire = world.time + (world.tick_lag * queue_node.wait) + queue_node.next_fire = world.time + (world.tick_lag * (queue_node.wait + (queue_node.tick_overrun/100))) else if (queue_node_flags & SS_POST_FIRE_TIMING) - queue_node.next_fire = world.time + queue_node.wait + queue_node.next_fire = world.time + queue_node.wait + (world.tick_lag * (queue_node.tick_overrun/100)) else if (queue_node_flags & SS_KEEP_TIMING) queue_node.next_fire += queue_node.wait else - queue_node.next_fire = queue_node.queued_time + queue_node.wait + queue_node.next_fire = queue_node.queued_time + queue_node.wait + (world.tick_lag * (queue_node.tick_overrun/100)) queue_node.queued_time = 0 diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm index f37a9159ef..3332b1c45d 100644 --- a/code/controllers/subsystem.dm +++ b/code/controllers/subsystem.dm @@ -17,6 +17,7 @@ var/next_fire = 0 //scheduled world.time for next fire() var/cost = 0 //average time to execute var/tick_usage = 0 //average tick usage + var/tick_overrun = 0 //average tick overrun var/state = SS_IDLE //tracks the current state of the ss, running, paused, etc. var/paused_ticks = 0 //ticks this ss is taking to run right now. var/paused_tick_usage //total tick_usage of all of our runs while pausing this run @@ -168,7 +169,7 @@ if(can_fire && !(SS_NO_FIRE in flags)) - msg = "[round(cost,1)]ms|[round(tick_usage,1)]%|[round(ticks,0.1)]\t[msg]" + msg = "[round(cost,1)]ms|[round(tick_usage,1)]%([round(tick_overrun,1)]%)|[round(ticks,0.1)]\t[msg]" else msg = "OFFLINE\t[msg]" From b7adb8cd93d66616273b13210cb8e3013f011beb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:07:20 -0500 Subject: [PATCH 14/82] SMES units now accept charge even if the available input is less than the input rate. (#969) --- code/modules/power/smes.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 9e18d8b465..ea95b08269 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -256,9 +256,9 @@ input_available = terminal.surplus() if(inputting) - if(input_available > 0 && input_available >= input_level) // if there's power available, try to charge + if(input_available > 0) // if there's power available, try to charge - var/load = min((capacity-charge)/SMESRATE, input_level) // charge at set rate, limited to spare capacity + var/load = min(min((capacity-charge)/SMESRATE, input_level), input_available) // charge at set rate, limited to spare capacity charge += load * SMESRATE // increase the charge @@ -268,7 +268,7 @@ inputting = 0 // stop inputting else - if(input_attempt && input_available > 0 && input_available >= input_level) + if(input_attempt && input_available > 0) inputting = 1 else inputting = 0 From d0aec14afbbb7ffa3f5dc7e6420157e94287be18 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:07:21 -0500 Subject: [PATCH 15/82] Automatic changelog generation for PR #969 [ci skip] --- html/changelogs/AutoChangeLog-pr-969.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-969.yml diff --git a/html/changelogs/AutoChangeLog-pr-969.yml b/html/changelogs/AutoChangeLog-pr-969.yml new file mode 100644 index 0000000000..945463a4b1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-969.yml @@ -0,0 +1,4 @@ +author: "McBawbaggings" +delete-after: True +changes: + - tweak: "SMES units will now accept charge from the power network even if the available load is less than the input rate. Credit to Zaers for the original code." From 45a81d32a4ad33b667968f24aaf2d178bb739e4a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:10:22 -0500 Subject: [PATCH 16/82] Adds round ID to MC panel (#846) --- code/modules/mob/mob.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 819f7f3db2..c24ee7acd2 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -578,6 +578,7 @@ var/datum/map_config/cached = SSmapping.next_map_config if(cached) stat(null, "Next Map: [cached.map_name]") + stat("Round ID:", "[GLOB.round_id ? GLOB.round_id : "NULL"]") stat(null, "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]") stat(null, "Station Time: [worldtime2text()]") stat(null, "Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)") From 226fdf90409d1b46de6fb91cff36699c37460231 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:12:00 -0500 Subject: [PATCH 17/82] Remaps seed vault, adds bees and changes cherry to cherry bomb in random seed spawn (#973) --- .../LavaRuins/lavaland_surface_seed_vault.dmm | 452 ++++++++++-------- .../mob/living/simple_animal/hostile/bees.dm | 1 + .../chemistry/machinery/chem_dispenser.dm | 6 + code/modules/ruins/lavaland_ruin_code.dm | 2 +- 4 files changed, 254 insertions(+), 207 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index 65d7aac80f..64c1a7cb26 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -9,19 +9,89 @@ /turf/closed/wall/r_wall, /area/ruin/powered) "d" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 8 +/obj/structure/table/wood, +/obj/item/weapon/lighter, +/obj/item/weapon/lighter, +/obj/item/weapon/storage/fancy/rollingpapers, +/obj/item/weapon/storage/fancy/rollingpapers, +/obj/item/weapon/storage/fancy/rollingpapers, +/obj/item/weapon/storage/fancy/rollingpapers, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) +/area/ruin/powered) "e" = ( -/obj/machinery/smartfridge, +/obj/structure/table/wood, +/obj/item/weapon/storage/box/disks_plantgene, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) "f" = ( +/obj/machinery/plantgenes/seedvault, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"g" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"h" = ( +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"i" = ( +/obj/structure/closet/crate/hydroponics, +/obj/structure/beebox, +/obj/item/weapon/melee/flyswatter, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/queen_bee/bought, +/obj/item/clothing/head/beekeeper_head, +/obj/item/clothing/suit/beekeeper_suit, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"j" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"k" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/seed_vault, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"l" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"m" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/space/basic, +/area/lavaland/surface/outdoors) +"n" = ( +/obj/machinery/smartfridge, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"o" = ( /obj/structure/closet/crate/hydroponics, /obj/item/weapon/cultivator, /obj/item/weapon/cultivator, @@ -39,34 +109,22 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"g" = ( +"p" = ( /obj/machinery/hydroponics/constructable, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"h" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/seed_vault, -/turf/open/floor/plasteel/freezer{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/powered) -"i" = ( -/obj/machinery/plantgenes/seedvault, -/turf/open/floor/plasteel/freezer{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/powered) -"j" = ( +"q" = ( /obj/item/weapon/hatchet, /obj/item/weapon/storage/bag/plants, /obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/table/wood, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"k" = ( +"r" = ( /obj/structure/table/wood, /obj/item/weapon/storage/bag/plants, /obj/item/weapon/storage/bag/plants, @@ -76,7 +134,7 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"l" = ( +"s" = ( /obj/structure/table/wood, /obj/item/weapon/gun/energy/floragun, /obj/item/weapon/gun/energy/floragun, @@ -87,25 +145,13 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"m" = ( -/turf/open/floor/plasteel/freezer{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/powered) -"n" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "propulsion"; - dir = 8 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"o" = ( +"t" = ( /obj/effect/mob_spawn/human/seed_vault, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"p" = ( +"u" = ( /obj/structure/sink{ icon_state = "sink"; dir = 8; @@ -116,19 +162,19 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"q" = ( +"v" = ( /obj/machinery/vending/hydronutrients, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"r" = ( +"w" = ( /obj/machinery/vending/hydroseeds, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"s" = ( +"x" = ( /obj/machinery/reagentgrinder{ pixel_y = 5 }, @@ -141,7 +187,7 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"t" = ( +"y" = ( /obj/structure/sink{ dir = 4; icon_state = "sink"; @@ -152,57 +198,51 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"u" = ( -/obj/machinery/door/airlock, -/turf/open/floor/plasteel/freezer{ - baseturf = /turf/open/floor/plating/lava/smooth - }, -/area/ruin/powered) -"v" = ( +"z" = ( /obj/machinery/door/airlock/external, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"w" = ( +"A" = ( /obj/machinery/door/airlock/external, /obj/structure/fans/tiny, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"x" = ( +"B" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/bin, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"y" = ( +"C" = ( /obj/machinery/seed_extractor, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"z" = ( +"D" = ( /obj/machinery/biogenerator, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"A" = ( -/obj/machinery/chem_dispenser/mutagen, +"E" = ( +/obj/machinery/chem_dispenser/mutagensaltpeter, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"B" = ( +"F" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"C" = ( +"G" = ( /obj/structure/closet/crate/hydroponics, /obj/item/clothing/under/rank/hydroponics, /obj/item/clothing/under/rank/hydroponics, @@ -212,13 +252,13 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"D" = ( +"H" = ( /obj/machinery/chem_master/condimaster, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"E" = ( +"I" = ( /obj/structure/table/wood, /obj/item/weapon/reagent_containers/glass/bucket, /obj/item/weapon/reagent_containers/glass/bucket, @@ -228,25 +268,25 @@ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"F" = ( +"J" = ( /obj/item/weapon/storage/toolbox/syndicate, /obj/structure/table/wood, /turf/open/floor/plasteel/freezer{ baseturf = /turf/open/floor/plating/lava/smooth }, /area/ruin/powered) -"G" = ( +"K" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, /area/ruin/powered) -"H" = ( +"L" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"I" = ( +"M" = ( /obj/structure/disposalpipe/trunk{ dir = 8 }, @@ -284,10 +324,10 @@ a a a c -o -o -o -o +t +t +t +t c a a @@ -299,17 +339,17 @@ b "} (3,1,1) = {" b -b +a a a a a c c -m -m -m -m +h +h +h +h c c a @@ -321,16 +361,16 @@ b "} (4,1,1) = {" b -b -a a a c c c c -u -u +c +c +l +l c c c @@ -344,18 +384,18 @@ a (5,1,1) = {" a a -a -a -a c -e -m -p -m -m -p -m -p +c +k +c +n +h +u +h +h +u +h +u c a a @@ -366,18 +406,18 @@ a (6,1,1) = {" a a -a -a -a c -f -m -m -m -m -m -m -C +d +h +c +o +h +h +h +h +h +h +G c a a @@ -388,18 +428,18 @@ a (7,1,1) = {" a a -a -a -a c -g -m -g -m -m -g -m -g +e +h +c +p +h +p +h +h +p +h +p c a a @@ -408,44 +448,44 @@ a a "} (8,1,1) = {" -a -a -a -a +b a c +e +h +l +h +h +v +h h -m -q -m -m -x B -B -G -H +F +F +K +L a a a a "} (9,1,1) = {" -a -a -a -a +b a c -i -m -e -m -m -y -m -m +f +h c -I +p +h +n +h +h +C +h +k +c +M a a a @@ -454,18 +494,18 @@ a (10,1,1) = {" a a -a -a -a c g -m -r -m -m -z -m -g +h +c +p +h +w +h +h +D +h +p c b a @@ -476,18 +516,18 @@ a (11,1,1) = {" a a -a -a -a c -j -m -s -m -m -A -m -D +h +h +c +q +h +x +h +h +E +h +H c a a @@ -496,20 +536,20 @@ a a "} (12,1,1) = {" -a -a -a -a +b a c -g -m -m -m -m -m -m -g +h +h +c +p +h +h +h +h +h +h +p c a a @@ -520,18 +560,18 @@ a (13,1,1) = {" a a -a -a -a c -k -m -m -g -g -m -m -E +i +h +c +r +h +h +p +p +h +h +I c a a @@ -542,18 +582,18 @@ a (14,1,1) = {" a a -a -a -a c -l -m -t -m -m -t -m -F +c +i +c +s +h +y +h +h +y +h +J c a a @@ -564,15 +604,15 @@ a (15,1,1) = {" a a -a -a -a +b c c c c -v -v +c +c +z +z c c c @@ -584,21 +624,21 @@ a a "} (16,1,1) = {" -a -a b a -a -d +b +j c -n +j c -m -m +j c -n +h +h c -n +j +c +j a a a @@ -611,12 +651,12 @@ a a a a -b a -b +a +a c -w -w +A +A c b b diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index e7ab6e1b56..51e782b019 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -133,6 +133,7 @@ loc = BB target = null wanted_objects -= typecacheof(/obj/structure/beebox) //so we don't attack beeboxes when not going home + return //no don't attack the goddamm box else . = ..() if(. && beegent && isliving(target)) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index da1eb90685..99056eb1dc 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -367,3 +367,9 @@ desc = "Creates and dispenses mutagen." dispensable_reagents = list("mutagen") emagged_reagents = list("plasma") + + +/obj/machinery/chem_dispenser/mutagensaltpeter + name = "mutagen and saltpeter dispenser" + desc = "Creates and dispenses mutagen and even saltpeter." + dispensable_reagents = list("mutagen", "saltpetre") diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index b34986c75f..b28d388b29 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -11,7 +11,7 @@ lootcount = 1 loot = list(/obj/item/seeds/gatfruit = 10, - /obj/item/seeds/cherry = 15, + /obj/item/seeds/cherry/bomb = 10, /obj/item/seeds/berry/glow = 10, /obj/item/seeds/sunflower/moonflower = 8 ) From 4041df2b450c8bdc1d706ca14031a353e4ff0d40 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:12:01 -0500 Subject: [PATCH 18/82] Automatic changelog generation for PR #973 [ci skip] --- html/changelogs/AutoChangeLog-pr-973.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-973.yml diff --git a/html/changelogs/AutoChangeLog-pr-973.yml b/html/changelogs/AutoChangeLog-pr-973.yml new file mode 100644 index 0000000000..b4b175ce05 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-973.yml @@ -0,0 +1,6 @@ +author: "ma44" +delete-after: True +changes: + - tweak: "Seed vault remapped" + - tweak: "The seed vault random seed spawner can now spawn cherry bombs instead of regular cherry seeds" + - rscadd: "BEES to plant vault" From b95d4e0459d8c906ab44e690ca35ac041e742e44 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:16:17 -0500 Subject: [PATCH 20/82] [MIRROR] Land Claim Flag (#951) * Land Claim Flag * Delete charter.dm.rej * Update charter.dm --- code/game/objects/items/charter.dm | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 186d218690..36efee0092 100644 --- a/code/game/objects/items/charter.dm +++ b/code/game/objects/items/charter.dm @@ -7,6 +7,7 @@ desc = "An official document entrusting the governance of the station \ and surrounding space to the Captain. " var/used = FALSE + var/name_type = "station" var/unlimited_uses = FALSE var/ignores_timeout = FALSE @@ -33,10 +34,10 @@ /obj/item/station_charter/attack_self(mob/living/user) if(used) - to_chat(user, "This charter has already been used to name the station.") + to_chat(user, "The [name_type] has already been named.") return if(!ignores_timeout && (world.time-SSticker.round_start_time > STATION_RENAME_TIME_LIMIT)) //5 minutes - to_chat(user, "The crew has already settled into the shift. It probably wouldn't be good to rename the station right now.") + to_chat(user, "The crew has already settled into the shift. It probably wouldn't be good to rename the [name_type] right now.") return if(response_timer_id) to_chat(user, "You're still waiting for approval from your employers about your proposed name change, it'd be best to wait for now.") @@ -60,7 +61,7 @@ to_chat(user, "Your name has been sent to your employers for approval.") // Autoapproves after a certain time response_timer_id = addtimer(CALLBACK(src, .proc/rename_station, new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE) - to_chat(GLOB.admins, "CUSTOM STATION RENAME:[ADMIN_LOOKUPFLW(user)] proposes to rename the station to [new_name] (will autoapprove in [approval_time / 10] seconds). [ADMIN_SMITE(user)] (
REJECT) [ADMIN_CENTCOM_REPLY(user)]") + to_chat(GLOB.admins, "CUSTOM STATION RENAME:[ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [approval_time / 10] seconds). [ADMIN_SMITE(user)] (REJECT) [ADMIN_CENTCOM_REPLY(user)]") /obj/item/station_charter/proc/reject_proposed(user) if(!user) @@ -94,4 +95,27 @@ unlimited_uses = TRUE ignores_timeout = TRUE + +/obj/item/weapon/station_charter/flag + name = "nanotrasen banner" + icon = 'icons/obj/items.dmi' + var/name_type = "planet" + icon_state = "banner" + item_state = "banner" + desc = "A cunning device used to claim ownership of planets." + w_class = 5 + force = 15 + +/obj/item/station_charter/flag/rename_station(designation, uname, ureal_name, ukey) + set_station_name(designation) + minor_announce("[ureal_name] has designated the planet as [station_name()]", "Captain's Banner", 0) + log_game("[ukey] has renamed the planet as [station_name()].") + name = "banner of [station_name()]" + desc = "The banner bears the official coat of arms of Nanotrasen, signifying that [station_name()] has been claimed by Captain [uname] in the name of the company." + SSblackbox.set_details("station_renames","[station_name()]") + if(!unlimited_uses) + used = TRUE + + + #undef STATION_RENAME_TIME_LIMIT From 41f110380cded2ab3cf0831eabd77adff3a9ff5a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:18:02 -0500 Subject: [PATCH 21/82] [MIRROR] [READY]Gives the clown a pie cannon, also improves pneumatic cannons (#935) * [READY]Gives the clown a pie cannon, also improves pneumatic cannons * Delete gang.dm.rej --- code/game/objects/items/weapons/clown.dm | 46 +++++++ .../objects/items/weapons/pneumaticCannon.dm | 126 +++++++++++++++--- code/modules/jobs/job_types/civilian.dm | 3 +- icons/obj/pneumaticCannon.dmi | Bin 3389 -> 4063 bytes 4 files changed, 154 insertions(+), 21 deletions(-) create mode 100644 code/game/objects/items/weapons/clown.dm diff --git a/code/game/objects/items/weapons/clown.dm b/code/game/objects/items/weapons/clown.dm new file mode 100644 index 0000000000..a01a0f18b6 --- /dev/null +++ b/code/game/objects/items/weapons/clown.dm @@ -0,0 +1,46 @@ + +/obj/item/weapon/pie_cannon + name = "pie cannon" + desc = "Load cream pie for optimal results" + force = 10 + icon_state = "piecannon" + item_state = "powerfist" + var/obj/item/weapon/reagent_containers/food/snacks/pie/loaded = null + +/obj/item/weapon/pie_cannon/attackby(obj/item/I, mob/living/L) + if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pie)) + if(!loaded) + L.transferItemToLoc(I, src) + loaded = I + to_chat(L, "You load the [I] into the [src]!") + return + return ..() + +/obj/item/weapon/pie_cannon/afterattack(atom/target, mob/living/user, flag, params) + if(!loaded) + return ..() + var/obj/item/projectile/pie/launched = new /obj/item/projectile/pie(src) + launched.P = loaded + loaded.forceMove(launched) + launched.appearance = loaded.appearance + loaded = null + launched.preparePixelProjectile(target, get_turf(target), user, params, 0) + launched.forceMove(get_turf(src)) + launched.fire() + user.visible_message("[user] fires the [src] at [target]!") + +/obj/item/projectile/pie + name = "pie" + desc = "Think fast!" + var/obj/item/weapon/reagent_containers/food/snacks/pie/P = null + +/obj/item/projectile/pie/on_hit(atom/A) + . = ..() + if(P) + A.visible_message("[P] smashes into [A] at high velocity!") + P.forceMove(get_turf(A)) + P.throw_impact(A) + if(ismovableatom(A)) + var/atom/movable/AM = A + if(!AM.anchored) + AM.throw_at(get_edge_target_turf(get_dir(src, AM), 3, 2)) diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index 61e68934b9..d1370c9d7c 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -1,3 +1,7 @@ + +#define PCANNON_FIREALL 1 +#define PCANNON_FILO 2 +#define PCANNON_FIFO 3 /obj/item/weapon/pneumatic_cannon name = "pneumatic cannon" desc = "A gas-powered cannon that can fire any object loaded into it." @@ -16,7 +20,15 @@ var/gasPerThrow = 3 //How much gas is drawn from a tank's pressure to fire var/list/loadedItems = list() //The items loaded into the cannon that will be fired out var/pressureSetting = 1 //How powerful the cannon is - higher pressure = more gas but more powerful throws + var/checktank = TRUE + var/range_multiplier = 1 + var/throw_amount = 20 //How many items to throw per fire + var/fire_mode = PCANNON_FIREALL + var/automatic = FALSE + var/clumsyCheck = TRUE +/obj/item/weapon/pneumatic_cannon/CanItemAutoclick() + return automatic /obj/item/weapon/pneumatic_cannon/examine(mob/user) ..() @@ -30,6 +42,8 @@ /obj/item/weapon/pneumatic_cannon/attackby(obj/item/weapon/W, mob/user, params) + if(user.a_intent == INTENT_HARM) + return ..() if(istype(W, /obj/item/weapon/tank/internals)) if(!tank) var/obj/item/weapon/tank/internals/IT = W @@ -55,19 +69,31 @@ to_chat(user, "\The [src] can't hold any more items!") else if(istype(W, /obj/item)) var/obj/item/IW = W - if((loadedWeightClass + IW.w_class) > maxWeightClass) - to_chat(user, "\The [IW] won't fit into \the [src]!") - return - if(IW.w_class > src.w_class) - to_chat(user, "\The [IW] is too large to fit into \the [src]!") - return - if(!user.transferItemToLoc(W, src)) - return - to_chat(user, "You load \the [IW] into \the [src].") - loadedItems.Add(IW) - loadedWeightClass += IW.w_class + load_item(IW, user) +/obj/item/weapon/pneumatic_cannon/proc/can_load_item(obj/item/I, mob/user) + if((loadedWeightClass + I.w_class) > maxWeightClass) //Only make messages if there's a user + if(user) + to_chat(user, "\The [I] won't fit into \the [src]!") + return FALSE + if(I.w_class > w_class) + if(user) + to_chat(user, "\The [I] is too large to fit into \the [src]!") + return FALSE + return TRUE +/obj/item/weapon/pneumatic_cannon/proc/load_item(obj/item/I, mob/user) + if(!can_load_item(I, user)) + return FALSE + if(user) //Only use transfer proc if there's a user, otherwise just set loc. + if(!user.transferItemToLoc(I, src)) + return FALSE + to_chat(user, "You load \the [I] into \the [src].") + else + I.forceMove(src) + loadedItems += I + loadedWeightClass += I.w_class + return TRUE /obj/item/weapon/pneumatic_cannon/afterattack(atom/target, mob/living/carbon/human/user, flag, params) if(flag && user.a_intent == INTENT_HARM) //melee attack @@ -76,7 +102,6 @@ return Fire(user, target) - /obj/item/weapon/pneumatic_cannon/proc/Fire(mob/living/carbon/human/user, var/atom/target) if(!istype(user) && !target) return @@ -90,13 +115,13 @@ if(!loadedItems || !loadedWeightClass) to_chat(user, "\The [src] has nothing loaded.") return - if(!tank) + if(!tank && checktank) to_chat(user, "\The [src] can't fire without a source of gas.") return if(tank && !tank.air_contents.remove(gasPerThrow * pressureSetting)) to_chat(user, "\The [src] lets out a weak hiss and doesn't react!") return - if(user.disabilities & CLUMSY && prob(75)) + if(user.disabilities & CLUMSY && prob(75) && clumsyCheck) user.visible_message("[user] loses their grip on [src], causing it to go off!", "[src] slips out of your hands and goes off!") user.drop_item() if(prob(10)) @@ -109,17 +134,48 @@ user.visible_message("[user] fires \the [src]!", \ "You fire \the [src]!") add_logs(user, target, "fired at", src) + var/turf/T = get_target(target, get_turf(src)) playsound(src.loc, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) - for(var/obj/item/ITD in loadedItems) //Item To Discharge - loadedItems.Remove(ITD) - loadedWeightClass -= ITD.w_class - ITD.throw_speed = pressureSetting * 2 - ITD.loc = get_turf(src) - ITD.throw_at(target, pressureSetting * 5, pressureSetting * 2,user) + fire_items(T, user) if(pressureSetting >= 3 && user) user.visible_message("[user] is thrown down by the force of the cannon!", "[src] slams into your shoulder, knocking you down!") user.Weaken(3) +/obj/item/weapon/pneumatic_cannon/proc/fire_items(turf/target, mob/user) + if(fire_mode == PCANNON_FIREALL) + for(var/obj/item/ITD in loadedItems) //Item To Discharge + if(!throw_item(target, ITD, user)) + break + else + for(var/i in 1 to throw_amount) + if(!loadedItems.len) + break + var/obj/item/I + if(fire_mode == PCANNON_FILO) + I = loadedItems[loadedItems.len] + else + I = loadedItems[1] + if(!throw_item(target, I, user)) + break + +/obj/item/weapon/pneumatic_cannon/proc/throw_item(turf/target, obj/item/I, mob/user) + if(!istype(I)) + return FALSE + loadedItems -= I + loadedWeightClass -= I.w_class + I.forceMove(get_turf(src)) + I.throw_at(target, pressureSetting * 10 * range_multiplier, pressureSetting * 2, user) + return TRUE + +/obj/item/weapon/pneumatic_cannon/proc/get_target(turf/target, turf/starting) + if(range_multiplier == 1) + return target + var/x_o = (target.x - starting.x) + var/y_o = (target.y - starting.y) + var/new_x = Clamp((starting.x + (x_o * range_multiplier)), 0, world.maxx) + var/new_y = Clamp((starting.y + (y_o * range_multiplier)), 0, world.maxy) + var/turf/newtarget = locate(new_x, new_y, starting.z) + return newtarget /obj/item/weapon/pneumatic_cannon/ghetto //Obtainable by improvised methods; more gas per use, less capacity, but smaller name = "improvised pneumatic cannon" @@ -164,3 +220,33 @@ return add_overlay(tank.icon_state) src.update_icon() + +/obj/item/weapon/pneumatic_cannon/proc/fill_with_type(type, amount) + if(!ispath(type, /obj/item)) + return FALSE + var/loaded = 0 + for(var/i in 1 to amount) + var/obj/item/I = new type + if(!load_item(I, null)) + qdel(I) + return loaded + loaded++ + +/obj/item/weapon/pneumatic_cannon/pie + name = "pie cannon" + desc = "Load cream pie for optimal results" + force = 10 + icon_state = "piecannon" + gasPerThrow = 0 + checktank = FALSE + range_multiplier = 3 + fire_mode = PCANNON_FIFO + throw_amount = 1 + maxWeightClass = 100 //50 pies. :^) + clumsyCheck = FALSE + +/obj/item/weapon/pneumatic_cannon/pie/can_load_item(obj/item/I, mob/user) + if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pie)) + return ..() + to_chat(user, "[src] only accepts pies!") + return FALSE diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm index 57883966b0..7d983e5519 100644 --- a/code/modules/jobs/job_types/civilian.dm +++ b/code/modules/jobs/job_types/civilian.dm @@ -35,7 +35,8 @@ Clown /obj/item/weapon/reagent_containers/spray/waterflower = 1, /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, /obj/item/device/megaphone/clown = 1, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1 + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1, + /obj/item/weapon/pneumatic_cannon/pie = 1 ) implants = list(/obj/item/weapon/implant/sad_trombone) diff --git a/icons/obj/pneumaticCannon.dmi b/icons/obj/pneumaticCannon.dmi index 41de7677b561009674fb2c085171701adacaa96d..86e14e19d6b94b2a9ae0391cbf69254be9f3e186 100644 GIT binary patch literal 4063 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 TWvnrW00000NkvXXu0mjfUOJGU From 040ac1236d61661d72475ea7a3a8abb12c1f661d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:23:39 -0500 Subject: [PATCH 22/82] [MIRROR] woops i forgot to check tick cannons fill proc. (#968) * woops i forgot to check tick cannons fill proc. * Delete pneumaticCannon.dm.rej * Update pneumaticCannon.dm --- code/game/objects/items/weapons/pneumaticCannon.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index d1370c9d7c..86c517aa99 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -231,6 +231,8 @@ qdel(I) return loaded loaded++ + CHECK_TICK + return loaded /obj/item/weapon/pneumatic_cannon/pie name = "pie cannon" From 3644e9585e16addbd33db2da6da07f6d28c3bd62 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:25:28 -0500 Subject: [PATCH 23/82] Cerestation Tweaks MKV (#683) --- _maps/map_files/Cerestation/cerestation.dmm | 12862 ++++++++++++------ 1 file changed, 8937 insertions(+), 3925 deletions(-) diff --git a/_maps/map_files/Cerestation/cerestation.dmm b/_maps/map_files/Cerestation/cerestation.dmm index 860ff65d60..1edf7431b1 100644 --- a/_maps/map_files/Cerestation/cerestation.dmm +++ b/_maps/map_files/Cerestation/cerestation.dmm @@ -1922,9 +1922,6 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 8 @@ -1948,14 +1945,12 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 8 @@ -3744,11 +3739,15 @@ }, /area/ai_monitored/security/armory) "ahq" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 }, -/turf/open/floor/plating/asteroid, -/area/security/transfer) +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) "ahr" = ( /obj/structure/cable/orange{ d1 = 1; @@ -4531,20 +4530,13 @@ }, /area/security/transfer) "aiQ" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Security Transfer Range APC"; - pixel_x = 0; - pixel_y = 24 +/obj/structure/chair{ + dir = 4 }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating/astplate{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "aiR" = ( /obj/structure/rack, /obj/item/weapon/pickaxe/mini, @@ -4952,10 +4944,13 @@ }, /area/security/transfer) "ajJ" = ( -/turf/open/floor/plating/astplate{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "ajK" = ( /obj/structure/rack, /obj/item/weapon/shovel, @@ -5360,20 +5355,35 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/light/small{ - dir = 8 +/obj/machinery/door/airlock/security{ + name = "Interrogation Room"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"akC" = ( +/obj/machinery/light/small, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/transfer) -"akC" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/asteroid, -/area/security/transfer) "akD" = ( /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless; + icon_plating = "asteroid_dug"; + icon_state = "asteroid_dug"; + name = "ditch" + }, /area/security/transfer) "akE" = ( /obj/structure/disposalpipe/segment, @@ -5719,15 +5729,35 @@ d2 = 2; icon_state = "1-2" }, -/turf/open/floor/plating{ +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "alm" = ( -/turf/closed/wall/r_wall{ +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Brig Cells North 2" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "aln" = ( /obj/structure/mineral_door/iron{ name = "Transfer Center" @@ -5928,30 +5958,40 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock/security{ - name = "Inmate Transfer Facility"; - req_access_txt = "2" - }, -/turf/open/floor/plating{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "alL" = ( /obj/machinery/light/small{ dir = 8 }, /obj/item/weapon/ore/glass, -/turf/open/floor/plating/asteroid, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless; + icon_plating = "asteroid_dug"; + icon_state = "asteroid_dug"; + name = "ditch" + }, /area/security/transfer) "alM" = ( /obj/item/weapon/shovel, -/turf/open/floor/plating/astplate{ - baseturf = /turf/open/floor/plating/asteroid/airless +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless; + icon_plating = "asteroid_dug"; + icon_state = "asteroid_dug"; + name = "ditch" }, /area/security/transfer) "alN" = ( /obj/item/weapon/ore/glass, -/turf/open/floor/plating/asteroid, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless; + icon_plating = "asteroid_dug"; + icon_state = "asteroid_dug"; + name = "ditch" + }, /area/security/transfer) "alO" = ( /obj/structure/closet/emcloset, @@ -6391,9 +6431,6 @@ }, /area/security/prison) "amA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, /obj/structure/cable/orange{ d1 = 1; d2 = 4; @@ -6404,6 +6441,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -6414,20 +6452,15 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, /obj/structure/cable/orange{ d1 = 2; d2 = 8; icon_state = "2-8" }, -/obj/machinery/camera{ - c_tag = "Brig Cells North 2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -9004,32 +9037,34 @@ }, /obj/structure/grille, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "ary" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "arz" = ( /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Command-Service Bridge" + }) "arA" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"arB" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 4"; + dir = 8; + network = list("SS13") }, /turf/open/floor/engine, -/area/space) -"arB" = ( -/obj/structure/lattice/catwalk, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/grille, -/turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "arC" = ( /turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -15851,6 +15886,10 @@ req_one_access_txt = "19;41" }, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + name = "Emergency Blast Door" + }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15881,6 +15920,10 @@ req_one_access_txt = "19;41" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + name = "Emergency Blast Door" + }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -17888,7 +17931,6 @@ pixel_x = 5; pixel_y = 3 }, -/obj/item/weapon/stamp, /obj/item/device/radio/intercom{ broadcasting = 0; name = "Station Intercom (General)"; @@ -17896,6 +17938,7 @@ }, /obj/item/stack/packageWrap, /obj/item/device/destTagger, +/obj/item/weapon/stamp, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -22499,8 +22542,13 @@ icon_state = "1-4" }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aPn" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, @@ -22514,8 +22562,13 @@ pixel_x = 0 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aPo" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, @@ -22533,7 +22586,9 @@ }, /obj/structure/grille, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aPp" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, @@ -22545,25 +22600,31 @@ }, /obj/structure/grille, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aPq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"aPr" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/grille, -/turf/open/space, -/area/space) -"aPr" = ( -/obj/structure/lattice/catwalk, -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 +/obj/structure/window/reinforced{ + dir = 1 }, -/obj/structure/grille, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aPs" = ( /obj/structure/grille, /obj/machinery/door/firedoor, @@ -23762,11 +23823,10 @@ }, /area/hallway/primary/fore) "aQS" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "aQT" = ( /obj/structure/window/reinforced{ dir = 1 @@ -23788,15 +23848,22 @@ /turf/open/floor/engine, /area/space) "aQV" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (NORTH)"; - icon_state = "neutralcorner"; - dir = 1; - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/area/hallway/primary/fore) +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aQW" = ( +/obj/machinery/door/airlock/glass, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -23805,13 +23872,10 @@ }, /area/hallway/primary/fore) "aQX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, /obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; @@ -24994,9 +25058,10 @@ }, /area/hallway/primary/fore) "aSQ" = ( -/obj/structure/window/reinforced, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "aSR" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ @@ -25440,8 +25505,11 @@ dir = 6 }, /obj/structure/grille, +/obj/structure/window/reinforced, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aTD" = ( /obj/structure/window/reinforced{ dir = 1 @@ -25451,8 +25519,11 @@ dir = 4 }, /obj/structure/grille, +/obj/structure/window/reinforced, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aTE" = ( /obj/structure/window/reinforced{ dir = 1 @@ -25463,7 +25534,9 @@ }, /obj/structure/grille, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) "aTF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/atmos{ @@ -27380,6 +27453,9 @@ dir = 1 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -27850,16 +27926,27 @@ }, /obj/structure/girder, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Service Bridge" + }) "aXD" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ dir = 8 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Service Bridge" + }) "aXE" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -27910,8 +27997,13 @@ dir = 10 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) "aXJ" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ @@ -27926,8 +28018,14 @@ dir = 6 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) "aXK" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -28036,8 +28134,13 @@ }, /obj/structure/girder, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Service Bridge" + }) "aXT" = ( /obj/structure/cable{ d1 = 1; @@ -28076,8 +28179,13 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) "aXY" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ @@ -28091,8 +28199,14 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) "aXZ" = ( /obj/machinery/power/solar_control{ id = "foresolar"; @@ -28416,8 +28530,13 @@ dir = 10 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) "aYy" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ @@ -28425,8 +28544,13 @@ }, /obj/structure/girder, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) "aYz" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ @@ -28440,8 +28564,13 @@ icon_state = "1-2" }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) "aYA" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -28652,17 +28781,14 @@ name = "Civilian Asteroid" }) "aYU" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Medbay-Cargo Bridge"; - dir = 4; - icon_state = "camera" - }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) "aYV" = ( /obj/machinery/conveyor/auto{ tag = "icon-conveyor0 (EAST)"; @@ -29061,8 +29187,13 @@ }, /obj/structure/girder, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Service Bridge" + }) "aZN" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -29137,8 +29268,13 @@ dir = 9 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) "aZU" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ @@ -29153,8 +29289,14 @@ dir = 5 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) "aZV" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -29212,6 +29354,9 @@ /area/hallway/primary/port) "bac" = ( /obj/machinery/door/airlock/glass, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29363,8 +29508,13 @@ icon_state = "1-8" }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) "bat" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -29410,6 +29560,12 @@ }, /area/hallway/primary/port) "bay" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29746,6 +29902,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -29942,6 +30101,9 @@ pixel_x = -32 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -30496,6 +30658,12 @@ pixel_x = 29; pixel_y = 0 }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; @@ -30571,6 +30739,9 @@ pixel_x = -24 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -31180,6 +31351,11 @@ d2 = 8; icon_state = "2-8" }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -32150,6 +32326,9 @@ dir = 1 }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -33966,6 +34145,9 @@ dir = 8; icon_state = "pipe-c" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -34487,6 +34669,12 @@ d2 = 8; icon_state = "1-8" }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -34496,6 +34684,12 @@ dir = 1; on = 1 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -37957,6 +38151,12 @@ icon_state = "camera"; network = list("SS13") }, +/obj/machinery/button/door{ + id = "cmooffice"; + name = "Office Emergency Lockdown"; + pixel_x = 0; + pixel_y = -24 + }, /mob/living/simple_animal/pet/cat/Runtime, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -38438,8 +38638,13 @@ dir = 5 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "bpN" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, @@ -38453,8 +38658,13 @@ dir = 4 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "bpO" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, @@ -38467,8 +38677,13 @@ dir = 9 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "bpP" = ( /obj/machinery/light{ dir = 4 @@ -38551,8 +38766,13 @@ icon_state = "pipe-c" }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "bpW" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, @@ -38569,8 +38789,13 @@ dir = 4 }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "bpX" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, @@ -38587,8 +38812,13 @@ icon_state = "pipe-c" }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "bpY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -38635,6 +38865,9 @@ /obj/structure/window/reinforced/fulltile, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmooffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41048,15 +41281,24 @@ /turf/open/floor/engine, /area/space) "btW" = ( -/obj/structure/window/reinforced, -/obj/machinery/camera{ - c_tag = "Service-Engineering Bridge 2"; - dir = 1 +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "btX" = ( /obj/machinery/door/airlock/glass, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -41069,6 +41311,12 @@ pixel_x = 0; pixel_y = -29 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -41077,6 +41325,12 @@ /area/hallway/primary/central) "btZ" = ( /obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -41087,6 +41341,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -41104,6 +41364,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -41112,6 +41378,12 @@ /area/hallway/primary/central) "buc" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -41122,6 +41394,12 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41136,6 +41414,11 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41309,12 +41592,24 @@ dir = 2; icon_state = "pipe-c" }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/central) "bur" = ( /obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41325,24 +41620,39 @@ pixel_x = 0; pixel_y = -29 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/central) "but" = ( /obj/machinery/door/airlock/glass, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/central) "buu" = ( -/obj/structure/window/reinforced, -/obj/machinery/camera{ - c_tag = "Medbay-Engineering Bridge"; - dir = 1 +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "buv" = ( /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel/neutral/corner{ @@ -41849,19 +42159,19 @@ dir = 6 }, /obj/structure/grille, +/obj/structure/window/reinforced, /turf/open/floor/plating/asteroid/airless, -/area/space) +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "bvv" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/grille, -/turf/open/space, -/area/space) +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "bvw" = ( /obj/structure/window/reinforced{ dir = 1 @@ -41871,8 +42181,11 @@ dir = 10 }, /obj/structure/grille, +/obj/structure/window/reinforced, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "bvx" = ( /obj/machinery/door/airlock/maintenance{ name = "External Airlock Access"; @@ -42199,8 +42512,11 @@ icon_state = "pipe-c" }, /obj/structure/grille, +/obj/structure/window/reinforced, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "bvW" = ( /obj/structure/window/reinforced{ dir = 1 @@ -42213,8 +42529,11 @@ dir = 4 }, /obj/structure/grille, +/obj/structure/window/reinforced, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "bvX" = ( /obj/structure/window/reinforced{ dir = 1 @@ -42228,8 +42547,11 @@ icon_state = "pipe-c" }, /obj/structure/grille, +/obj/structure/window/reinforced, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "bvY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -53296,6 +53618,9 @@ icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -53313,6 +53638,9 @@ icon_state = "4-8"; pixel_x = 0 }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -53338,6 +53666,9 @@ icon_state = "4-8"; pixel_x = 0 }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -53359,6 +53690,9 @@ icon_state = "0-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -54299,6 +54633,13 @@ pixel_y = 8; req_access_txt = "10;11" }, +/obj/machinery/button/door{ + id = "ceoffice"; + name = "Office Emergency Lockdown"; + pixel_x = -24; + pixel_y = -8; + req_access_txt = "10;11" + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -55644,6 +55985,7 @@ /area/atmos) "bSJ" = ( /obj/machinery/computer/apc_control, +/obj/machinery/light, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -55665,6 +56007,11 @@ /area/crew_quarters/chief) "bSL" = ( /obj/machinery/suit_storage_unit/ce, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -58987,8 +59334,13 @@ icon_state = "pipe-c" }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) "bYM" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ @@ -59004,8 +59356,13 @@ }, /obj/structure/girder, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) "bYN" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59290,8 +59647,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) "bZo" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ @@ -59305,8 +59667,13 @@ }, /obj/structure/girder, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) "bZp" = ( /obj/machinery/light{ dir = 8 @@ -61264,17 +61631,10 @@ name = "Central Asteroid Maintenance" }) "cdj" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/machinery/camera{ - c_tag = "Docking-Medbay Bridge"; - dir = 8; - network = list("SS13") - }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) "cdk" = ( /obj/structure/disposalpipe/junction{ icon_state = "pipe-j2"; @@ -61528,6 +61888,12 @@ d2 = 4; icon_state = "1-4" }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62223,6 +62589,12 @@ dir = 4; pixel_x = 24 }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -62678,21 +63050,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/turf/open/floor/plating/airless/astplate{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"cfO" = ( +/obj/structure/grille, /obj/structure/window/reinforced{ dir = 8 }, +/turf/open/floor/plating/airless/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/construction/hallway{ + name = "Service-Science Bridge" + }) +"cfO" = ( /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" }, -/area/hallway/primary/port) +/area/construction/hallway{ + name = "Service-Science Bridge" + }) "cfP" = ( /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -62700,16 +63075,20 @@ }, /area/hallway/primary/port) "cfQ" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" }, -/area/hallway/primary/port) +/area/construction/hallway{ + name = "Service-Science Bridge" + }) "cfR" = ( /obj/structure/window/reinforced{ dir = 8 @@ -62722,11 +63101,15 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plating/airless/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/mine/unexplored{ - name = "Civilian Asteroid" +/area/construction/hallway{ + name = "Service-Science Bridge" }) "cfS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -62768,8 +63151,13 @@ icon_state = "pipe-c" }, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) "cfV" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced{ @@ -62785,8 +63173,13 @@ }, /obj/structure/girder, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) "cfW" = ( /obj/structure/table, /obj/item/toy/figure/clown, @@ -62837,11 +63230,15 @@ pixel_x = 0 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating/airless/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/mine/unexplored{ - name = "Civilian Asteroid" +/area/construction/hallway{ + name = "Service-Science Bridge" }) "cgb" = ( /obj/structure/window/reinforced{ @@ -62853,11 +63250,15 @@ d2 = 2; icon_state = "1-2" }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plating/airless/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/mine/unexplored{ - name = "Civilian Asteroid" +/area/construction/hallway{ + name = "Service-Science Bridge" }) "cgc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -62972,9 +63373,6 @@ name = "Port Asteroid Maintenance" }) "cgp" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/light{ dir = 8 }, @@ -62982,7 +63380,9 @@ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" }, -/area/hallway/primary/port) +/area/construction/hallway{ + name = "Service-Science Bridge" + }) "cgq" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -63083,6 +63483,9 @@ icon_state = "tube1"; dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63167,6 +63570,9 @@ pixel_x = 28; pixel_y = 0 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -63224,26 +63630,24 @@ name = "Research Asteroid" }) "cgT" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating/airless/astplate{ +/turf/closed/wall/r_wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/mine/unexplored{ - name = "Research Asteroid" +/area/construction/hallway{ + name = "Service-Science Bridge" }) "cgU" = ( -/obj/structure/window/reinforced{ +/obj/machinery/light/small{ dir = 8 }, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" }, -/area/hallway/primary/aft) +/area/construction/hallway{ + name = "Service-Science Bridge" + }) "cgV" = ( /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; @@ -63251,36 +63655,31 @@ }, /area/hallway/primary/aft) "cgW" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, +/obj/structure/disposalpipe/segment, /obj/machinery/camera{ c_tag = "Service-Research Bridge"; dir = 9; icon_state = "camera" }, -/obj/structure/disposalpipe/segment, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" }, -/area/hallway/primary/aft) +/area/construction/hallway{ + name = "Service-Science Bridge" + }) "cgX" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/turf/open/floor/plating/airless/astplate{ +/turf/closed/wall/r_wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/mine/unexplored{ - name = "Research Asteroid" +/area/construction/hallway{ + name = "Service-Science Bridge" }) "cgY" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -63324,16 +63723,14 @@ name = "Aft Asteroid Maintenance" }) "chd" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, /obj/structure/disposalpipe/segment, /turf/open/floor/engine{ baseturf = /turf/open/floor/plating/asteroid/airless; name = "reinforced floor" }, -/area/hallway/primary/aft) +/area/construction/hallway{ + name = "Service-Science Bridge" + }) "che" = ( /obj/machinery/power/solar{ id = "portsolar"; @@ -63507,6 +63904,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -64193,11 +64595,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating/airless/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/mine/unexplored{ - name = "Research Asteroid" +/area/construction/hallway{ + name = "Service-Science Bridge" }) "ciE" = ( /obj/structure/window/reinforced{ @@ -64211,11 +64617,15 @@ d2 = 4; icon_state = "1-4" }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plating/airless/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/mine/unexplored{ - name = "Research Asteroid" +/area/construction/hallway{ + name = "Service-Science Bridge" }) "ciF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -68698,8 +69108,13 @@ /obj/structure/lattice/catwalk, /obj/structure/window/reinforced, /obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) "cqD" = ( /turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -69557,6 +69972,11 @@ d2 = 8; icon_state = "1-8" }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plasteel/neutral/side{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 1; @@ -70509,6 +70929,12 @@ dir = 1; pixel_y = -24 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -70521,6 +70947,12 @@ dir = 4; icon_state = "pipe-c" }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -70532,6 +70964,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -70539,44 +70977,50 @@ }, /area/hallway/primary/aft) "ctA" = ( -/obj/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/camera{ c_tag = "Research-Docking Bridge 1"; dir = 1; icon_state = "camera"; network = list("SS13") }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) "ctB" = ( -/obj/structure/window/reinforced, -/obj/machinery/camera{ - c_tag = "Research-Docking Bridge 2"; - dir = 1; - icon_state = "camera"; - network = list("SS13") - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/power/apc{ + dir = 2; + name = "Science-Docking Bridge APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) "ctC" = ( -/obj/structure/window/reinforced, -/obj/machinery/camera{ - c_tag = "Research-Docking Bridge 3"; - dir = 1; - icon_state = "camera"; - network = list("SS13") - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) "ctD" = ( /obj/machinery/door/airlock/glass, /obj/structure/disposalpipe/segment{ @@ -70978,8 +71422,11 @@ /obj/structure/lattice/catwalk, /obj/structure/girder, /obj/structure/grille, +/obj/structure/window/reinforced, /turf/open/space, -/area/space) +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) "cul" = ( /obj/machinery/status_display{ density = 0; @@ -75746,6 +76193,9 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -75755,6 +76205,9 @@ /obj/structure/window/reinforced/fulltile, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -75773,6 +76226,9 @@ /obj/structure/window/reinforced/fulltile, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76682,6 +77138,7 @@ icon_state = "camera"; network = list("SS13") }, +/obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/whitepurple/side{ tag = "icon-whitepurple (SOUTHWEST)"; icon_state = "whitepurple"; @@ -76730,6 +77187,7 @@ /obj/machinery/newscaster/security_unit{ pixel_x = -28 }, +/obj/machinery/recharger, /turf/open/floor/plasteel/red/side{ icon_state = "red"; dir = 8; @@ -83054,7 +83512,9 @@ "cPD" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) "cPE" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/engine, @@ -83142,12 +83602,11 @@ /turf/open/floor/engine, /area/space) "cPT" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/structure/disposalpipe/segment, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) "cPU" = ( /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -83339,6 +83798,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; @@ -83358,6 +83823,9 @@ "cQC" = ( /obj/machinery/door/airlock/glass, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -83414,6 +83882,9 @@ /area/hallway/primary/central) "cQJ" = ( /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -83846,14 +84317,13 @@ }, /area/hallway/primary/starboard) "cRM" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) "cRN" = ( /obj/structure/window/reinforced{ dir = 1 @@ -84231,7 +84701,9 @@ dir = 4 }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) "cSD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -84805,6 +85277,12 @@ dir = 4; icon_state = "pipe-c" }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -84821,6 +85299,12 @@ "cTX" = ( /obj/machinery/door/airlock/glass, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -85064,12 +85548,19 @@ }, /area/teleporter) "cUy" = ( -/obj/structure/window/reinforced, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) "cUz" = ( /obj/structure/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -87179,6 +87670,10 @@ req_one_access = null; req_one_access_txt = "0" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + name = "Emergency Blast Door" + }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -87192,6 +87687,10 @@ req_one_access = null; req_one_access_txt = "0" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + name = "Emergency Blast Door" + }, /turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -87277,6 +87776,9 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "qmoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -87294,6 +87796,9 @@ "cZQ" = ( /obj/structure/window/reinforced/fulltile, /obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "qmoffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -87530,6 +88035,11 @@ /area/quartermaster/qm) "dap" = ( /obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/button/door{ + id = "qmoffice"; + name = "Office Emergency Lockdown"; + pixel_x = -24 + }, /turf/open/floor/plasteel/brown{ tag = "icon-brown (WEST)"; icon_state = "brown"; @@ -88359,6 +88869,9 @@ icon_state = "alarm0"; pixel_x = -22 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -90292,6 +90805,9 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmooffice" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -91711,7 +92227,6 @@ }, /obj/item/weapon/stamp/ce, /obj/item/weapon/pen, -/obj/machinery/light, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -91722,10 +92237,8 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/airalarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -92435,17 +92948,13 @@ name = "Central Asteroid Maintenance" }) "djU" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = 0 - }, -/obj/machinery/camera{ - c_tag = "Docking-Medbay Bridge 2"; - dir = 8; - network = list("SS13") +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/engine, -/area/space) +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) "djV" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance, @@ -93766,6 +94275,12 @@ scrub_N2O = 0; scrub_Toxins = 0 }, +/obj/machinery/button/door{ + id = "rdoffice"; + name = "Office Emergency Lockdown"; + pixel_x = -24; + pixel_y = -8 + }, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -94369,10 +94884,10 @@ /obj/structure/disposaloutlet{ dir = 8 }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, /obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/open/space, /area/space) "dnB" = ( @@ -96655,6 +97170,4503 @@ }, /turf/closed/wall/r_wall, /area/maintenance/incinerator) +"dsd" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Armory APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/structure/rack, +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ai_monitored/security/armory) +"dse" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/rack, +/obj/item/weapon/storage/lockbox/loyalty, +/obj/item/weapon/storage/box/trackimp, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ai_monitored/security/armory) +"dsf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ai_monitored/security/armory) +"dsg" = ( +/obj/structure/closet/secure_closet{ + name = "contraband locker"; + req_access_txt = "3" + }, +/obj/effect/spawner/lootdrop/armory_contraband{ + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol = 5, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/weapon/gun/ballistic/revolver/mateba, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/ai_monitored/security/armory) +"dsh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsi" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsj" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsk" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsl" = ( +/obj/machinery/camera{ + c_tag = "Security Interrogation"; + dir = 9; + icon_state = "camera"; + network = list("SS13"); + tag = "null" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsn" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dso" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsp" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsq" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dss" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dst" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsu" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsv" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsB" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door_timer{ + id = "Cell 8"; + name = "Cell 8"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsC" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Security Transfer Range APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dsD" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dsE" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsF" = ( +/obj/structure/mineral_door/iron{ + name = "Transfer Center" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dsG" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door_timer{ + id = "Cell 7"; + name = "Cell 7"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsH" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsI" = ( +/obj/machinery/door/airlock/security{ + name = "Inmate Transfer Facility"; + req_access_txt = "2" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dsJ" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dsK" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dsL" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dsM" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dsN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceoffice" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/chief) +"dsO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Chief Engineer's Office"; + req_access_txt = "56" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/chief) +"dsP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceoffice" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/chief) +"dsQ" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 4"; + dir = 8; + network = list("SS13") + }, +/turf/open/space, +/area/space) +"dsR" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 1"; + dir = 8; + network = list("SS13") + }, +/turf/open/space, +/area/space) +"dsS" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 2"; + network = list("SS13") + }, +/turf/open/space, +/area/space) +"dsT" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 3"; + network = list("SS13") + }, +/turf/open/space, +/area/space) +"dsU" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge Ceneter"; + dir = 1 + }, +/turf/open/space, +/area/space) +"dsV" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dsW" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dsX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dsY" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dsZ" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dta" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtc" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtd" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dte" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtf" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dth" = ( +/obj/machinery/camera{ + c_tag = "Command-Service Bridge"; + dir = 4; + icon_state = "camera" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dti" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtj" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtl" = ( +/obj/machinery/camera{ + c_tag = "Command-Engineering Bridge"; + dir = 8; + network = list("SS13") + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtn" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dto" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtp" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtq" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dts" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + dir = 8; + name = "Medical-Cargo Bridge APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtt" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtu" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtv" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtx" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Command-Service Bridge APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dty" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtA" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtE" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtF" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtH" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtI" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtK" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtL" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtN" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtO" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtR" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dtS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dtU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Medbay-Cargo Bridge"; + dir = 4; + icon_state = "camera" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtW" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtX" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtY" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dtZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dua" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dub" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"duc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dud" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"due" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"duf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dug" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"duh" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dui" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"duj" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"duk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/port) +"dul" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dum" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dun" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dup" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dur" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dus" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dut" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"duu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"duv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dux" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duB" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"duC" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"duD" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"duE" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duF" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duG" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duH" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duI" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duJ" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duK" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duL" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duM" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duN" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duO" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duP" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duQ" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duR" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duS" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duT" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duU" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duV" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duW" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duX" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duY" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"duZ" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dva" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvb" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvc" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvd" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dve" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvf" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvg" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvh" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvi" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvj" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvk" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvl" = ( +/obj/machinery/camera{ + c_tag = "Service-Engineering Bridge 1"; + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvm" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Service-Engineering Bridge APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvq" = ( +/obj/machinery/camera{ + c_tag = "Service-Engineering Bridge 2"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + icon_state = "neutralcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dvs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + icon_state = "neutralcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dvt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + icon_state = "neutralcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dvu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dvv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dvw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dvx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dvy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dvz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dvA" = ( +/obj/machinery/camera{ + c_tag = "Medbay-Engineering Bridge"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dvB" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Engineering-Medical Bridge APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dvC" = ( +/obj/machinery/camera{ + c_tag = "Medbay-Engineering Bridge 2"; + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dvD" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvE" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvF" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvG" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvH" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvJ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvK" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvL" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvM" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvN" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvO" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvP" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvQ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvR" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvS" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvT" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvU" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvV" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvW" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvX" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvY" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dvZ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Service-Engineering Bridge" + }) +"dwa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dwb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dwc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Engineering-Medical Bridge" + }) +"dwd" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwe" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwf" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwg" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwh" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwi" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwj" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwk" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwl" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwm" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwn" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwo" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwq" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwr" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dws" = ( +/obj/machinery/camera{ + c_tag = "Docking-Medbay Bridge"; + dir = 8; + network = list("SS13") + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwu" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwv" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dww" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwx" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwy" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Docking-Medical Bridge APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwE" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwF" = ( +/obj/machinery/camera{ + c_tag = "Docking-Medbay Bridge 2"; + dir = 8; + network = list("SS13") + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dwH" = ( +/obj/machinery/door/airlock/glass, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dwI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dwJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dwK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dwL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dwM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dwN" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dwO" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwP" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwQ" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwR" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwS" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwT" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwU" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwV" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwW" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwX" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwY" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dwZ" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxa" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxb" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxc" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxd" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxe" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxf" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxg" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxh" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxi" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxj" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxk" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxl" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxm" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxn" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxo" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxp" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxq" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxr" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxs" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxt" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxu" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxv" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxw" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxy" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxz" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxA" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxB" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxC" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxD" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxE" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxF" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxG" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxH" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxI" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxJ" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxK" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxL" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxM" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxN" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxO" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxP" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxQ" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxR" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxS" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxT" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxU" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxV" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxW" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxX" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxY" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dxZ" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dya" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyb" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyc" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyd" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dye" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyf" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyg" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyh" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyi" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyj" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyk" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyl" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dym" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyn" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyo" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyp" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyq" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyr" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dys" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyt" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyu" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyv" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyw" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyx" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyy" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyz" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyA" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyB" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyC" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyD" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyE" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyF" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyG" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyH" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyI" = ( +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral/corner{ + icon_state = "neutralcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/aft) +"dyK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + icon_state = "neutralcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/aft) +"dyL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + icon_state = "neutralcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/aft) +"dyM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research-Docking Bridge 5"; + dir = 1; + icon_state = "camera"; + network = list("SS13") + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research-Docking Bridge 2"; + dir = 1; + icon_state = "camera"; + network = list("SS13") + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research-Docking Bridge 3"; + dir = 1; + icon_state = "camera"; + network = list("SS13") + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dyZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dza" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research-Docking Bridge 4"; + dir = 1; + icon_state = "camera"; + network = list("SS13") + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzb" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzc" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzd" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dze" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzf" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzg" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzh" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzi" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzj" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dzk" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"dzl" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"dzm" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"dzn" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/space, +/area/space) +"dzo" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzp" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzr" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzs" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzt" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzx" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzE" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzG" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzN" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzQ" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 1"; + dir = 8; + network = list("SS13") + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzU" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzV" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dzZ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAd" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAe" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAf" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAg" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAi" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAm" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAn" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAo" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAp" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAs" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAt" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAA" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 2"; + network = list("SS13") + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAB" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 3"; + network = list("SS13") + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAC" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Cargo-AI-Command Bridge APC"; + pixel_y = 24 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAD" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAE" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAF" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAG" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAH" = ( +/obj/machinery/camera{ + c_tag = "Core-Command-Cargo Bridge 3"; + network = list("SS13") + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAI" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAJ" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAK" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAL" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAM" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAN" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAO" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAP" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAQ" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dAR" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dAS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dAT" = ( +/obj/effect/landmark/lightsout, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAU" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAV" = ( +/obj/machinery/light/small, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAW" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAX" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAY" = ( +/obj/machinery/light/small, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dAZ" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dBa" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dBb" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dBc" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dBd" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dBe" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dBf" = ( +/turf/closed/wall/r_wall, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dBg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/space, +/area/construction/hallway{ + name = "Cargo-AI-Command Bridge" + }) +"dBh" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBi" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBj" = ( +/obj/effect/landmark/lightsout, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Service Bridge" + }) +"dBk" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBl" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Command-Engineering Bridge APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBn" = ( +/obj/effect/landmark/lightsout, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Medical-Cargo Bridge" + }) +"dBo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBq" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Command-Engineering Bridge" + }) +"dBv" = ( +/obj/machinery/door/airlock/glass, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + icon_state = "neutralcorner"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dBw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + icon_state = "neutralcorner"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dBx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + icon_state = "neutralcorner"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dBy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + icon_state = "neutralcorner"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dBz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + icon_state = "neutralcorner"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/central) +"dBA" = ( +/obj/effect/landmark/lightsout, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Docking-Medical Bridge" + }) +"dBB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/construction/hallway{ + name = "Service-Science Bridge" + }) +"dBC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + dir = 4; + name = "Service-Science Bridge APC"; + pixel_x = 23; + pixel_y = 2 + }, +/obj/structure/cable, +/turf/open/floor/engine{ + baseturf = /turf/open/floor/plating/asteroid/airless; + name = "reinforced floor" + }, +/area/construction/hallway{ + name = "Service-Science Bridge" + }) +"dBD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/construction/hallway{ + name = "Service-Science Bridge" + }) +"dBE" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine{ + baseturf = /turf/open/floor/plating/asteroid/airless; + name = "reinforced floor" + }, +/area/construction/hallway{ + name = "Service-Science Bridge" + }) +"dBF" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine{ + baseturf = /turf/open/floor/plating/asteroid/airless; + name = "reinforced floor" + }, +/area/construction/hallway{ + name = "Service-Science Bridge" + }) +"dBG" = ( +/obj/effect/landmark/lightsout, +/turf/open/floor/engine, +/area/construction/hallway{ + name = "Science-Docking Bridge" + }) +"dBH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + icon_state = "neutralcorner"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) (1,1,1) = {" aaa @@ -108308,7 +113320,7 @@ abE aaa aaa aaa -aaa +cKF aaa aaa aaa @@ -109523,11 +114535,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF aaa abC aaa @@ -109780,11 +114792,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF aaa abC aaa @@ -110037,11 +115049,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF aaa abC aaa @@ -110294,11 +115306,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF aaa abC aaa @@ -110551,11 +115563,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF aaa abC aaa @@ -110808,11 +115820,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF aaa abC aaa @@ -110879,18 +115891,18 @@ aLm aXC aXS aXS +dsX aXS aXS aXS +dsX +aXS +aXS +dsX aXS aXS aXS -aXS -aXS -aXS -aXS -aXS -aXS +dsX aXS aXS aZM @@ -110964,16 +115976,16 @@ cfN cga cga cga +dBB +cga +cga +dBB +cga +cga +dBB cga cga cga -cgT -cgT -cgT -cgT -cgT -cgT -cgT ciD cjg cjg @@ -111065,11 +116077,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF aaa abC abE @@ -111133,24 +116145,24 @@ aSU aVB aSU aSR -ary -ary -ary -ary -ary -ary -ary -ary -aYI -ary -ary -ary -ary -ary -ary -ary -ary -ary +dsV +dsV +dsV +dsV +dsV +dsV +dsV +dth +dsV +dsV +dtx +dsV +dsV +dsV +dsV +dsV +dsV +dsV baa baw baY @@ -111225,13 +116237,13 @@ cgp cfO cfO cgU -cgU -cgU -cgU -cgU -cgU -cgU -cgU +cfO +cfO +cgp +cfO +cfO +cfO +cfO cjh cjF cjF @@ -111390,24 +116402,24 @@ aRD aRD aRD aRP -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz +dsV +dsV +dsV +dsV +dsV +dsV +dsV +dsV +dBj +dsV +dty +dsV +dsV +dsV +dsV +dsV +dsV +dsV bab bax baZ @@ -111474,21 +116486,21 @@ bTq bax bax bab -cfP -cfP -cfP -cfP -cfP -cfP -cfP -cgV -cgV -cgV -cgV -cgV -cgV -cgV -cgV +cfO +cfO +cfO +cfO +cfO +cfO +cfO +cfO +cfO +cfO +cfO +cfO +cfO +cfO +cfO cji cjG cjG @@ -111591,7 +116603,7 @@ abE abW acH acH -abW +acO acO acO acO @@ -111647,26 +116659,26 @@ aSN aSN aSN aSP -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA +dsV +dsV +dsV +dsY +dsV +dsV +dsV +dti +dsV +dsV +dtz +dtG +dtG +dtG +dtQ +dtG +dtG +dtG bac -bay +duk bba bbA bbA @@ -111735,17 +116747,17 @@ cfQ cfQ cfQ cfQ -cfQ -cfQ -cfQ +dBC +dBE +dBE cgW -chd -chd -cho -chd -chd -chd -chd +dBE +dBE +dBE +dBE +dBE +dBE +dBE cjj cTY ckn @@ -111848,7 +116860,7 @@ abE abW acH acH -abW +acO acO acO acO @@ -111907,18 +116919,18 @@ aLm aXD aXD aXD +dsZ aXD aXD aXD +dsZ +aXD +aXD +dsZ aXD aXD aXD -aXD -aXD -aXD -aXD -aXD -aXD +dsZ aXD aXD aXD @@ -111992,16 +117004,16 @@ cfR cgb cgb cgb +dBD +cgb +cgb +dBD +cgb +cgb +dBD cgb cgb cgb -cgX -cgX -cgX -cgX -cgX -cgX -cgX ciE cjg cjg @@ -112105,7 +117117,6 @@ abE abW acH acH -abW acO acO adF @@ -112114,6 +117125,7 @@ aeB aeB aeB aeB +aeB agr doX doZ @@ -112362,10 +117374,10 @@ abW abW abW abW -abW acO acO -adG +dsd +aec aeb aeC aeY @@ -112610,7 +117622,7 @@ aaa aaa aaa aaa -aaa +cKF aaa aaa abE @@ -112619,15 +117631,15 @@ abW abW abW abW -abW acO acO -adH +dse aec aeD aeD aeD aeD +aeD agt acO acO @@ -112867,7 +117879,7 @@ aaa aaa aaa aaa -aaa +cKF aaa aaa abE @@ -112876,10 +117888,10 @@ abE abW abW abW -abW acO acO adI +dsf aed aeE aeZ @@ -113124,7 +118136,7 @@ aaa aaa aaa aaa -aaa +cKF aaa aaa abE @@ -113133,12 +118145,12 @@ abE abW abW abW -abW acO acO adJ aee aeF +aeD afa afu afO @@ -113381,7 +118393,7 @@ aaa aaa aaa aaa -aaa +cKF aaa aaa abE @@ -113390,12 +118402,12 @@ abE abW abW abW -abW acO acO adK aef aef +aee afb aee afP @@ -113647,10 +118659,10 @@ abE abW abW abW -abW acO acO -adL +adM +aef aef aef aef @@ -113904,12 +118916,12 @@ abE abW abW abW -abW acO acO adM aeg aeG +dsg afc afv aeG @@ -114161,7 +119173,6 @@ abE abW abW abW -abW acO acO doV @@ -114173,6 +119184,7 @@ acO acO acO acO +acO afr afr afr @@ -114418,7 +119430,6 @@ abE abW abW acH -acH acO acO acO @@ -114428,20 +119439,21 @@ acO acO acO acO -acO -acO -aiO -ajI +afr +afr +afr +dsr +dsm akB all alK amA ant +apr +apr aol apr apr -apr -aol asV apr apr @@ -114684,22 +119696,22 @@ abW abW abW abW -abW -agy -agy -aiP -ajJ -ajJ -alm afr +dsh +dsm +dss +ajJ +akt +alm +dsA amB -anp -aom -aps +dsB aqg anp -aom -asW +dsE +dsG +dsH +anp aqg anp aom @@ -114941,13 +119953,11 @@ abW abW abW abW -abW -agy -agz -aiQ -agA -ajJ -ajJ +afr +dsi +dsn +dsn +dsx afr amC anu @@ -114957,6 +119967,8 @@ amC ard aon alH +dsI +alH amC avf aon @@ -115198,13 +120210,11 @@ acH acH abW abW -abW -afR -afR -agA -agA -agA -agA +afr +dsj +dso +dst +dsx afr amD ann @@ -115214,6 +120224,8 @@ amD ann aoo alH +dsJ +alH amD ann aoo @@ -115454,14 +120466,12 @@ acH acH acH abW -acH -acH -afR -afR -agy -ajJ -agA -agA +abW +afr +dsk +dsp +dsp +dsz afr amE anv @@ -115471,6 +120481,8 @@ aqh ann ann alH +dsJ +alH auc ann ann @@ -115711,14 +120723,12 @@ acH acH acH abW -acH -acH -acH -afR -agz +abW +afr +dsl +dsj +dsj ahq -agA -agA afr amF anw @@ -115728,6 +120738,8 @@ aqi anw asb alH +aiP +alH aud anw awt @@ -115968,14 +120980,7 @@ abW acH acH acH -acH -afR -agy -agy -agA -agA -agA -agA +abW afr afr afr @@ -115990,6 +120995,13 @@ afr afr afr afr +dsL +afr +afr +afr +afr +afr +afr afr afr afr @@ -116225,23 +121237,23 @@ abW acH acH acH -afR +abW +abW +abW +abW +abW +abW +abW +agy +agy +agy +agy +agy agy agA agA -agA -agA -ajJ -agA +aiP agy -agy -agy -agy -agy -agy -agy -adZ -adZ adZ adZ adZ @@ -116482,26 +121494,26 @@ abW acH acH acH -afR -agz -ahq -agA -agA -agA -agA +acH +acH +acH +acH +acH +acH +acH agy aig agy +agz +dsC +agz +aiO +ajI +dsM agy -agA -agA -agy -agy -afS -afS -afS -afV -afV +adZ +adZ +adZ adZ adZ azY @@ -116739,28 +121751,28 @@ abW abW abW acH -afR -agA -agA -aie -agA -agA -akC -agz +acH +acH +acH +acH +acH +acH +acH +agy alL akD amG -amG -alN -agA +aiP +agz +dsF agy -afV -asX -aue -avg -afS -axD -afS +agy +agy +adZ +adZ +adZ +adZ +adZ azY aBs aCi @@ -116996,28 +122008,28 @@ abW abW abW acH -afR -agA -agA -agA -agA -agA -akD -aln +acH +acH +acH +acH +acH +acH +acH +agy alM amG anx -amG -amG +dsD +ajI akC agz -afV -aym -auf -aym afS -akp -aOF +afS +afS +afV +afV +axD +afS cJJ aBt aCj @@ -117253,13 +122265,13 @@ abW abW abW acH -afR -agy -agA -aif -aiR -ajK -agy +acH +acH +acH +acH +acH +acH +abW agy alN alN @@ -117269,11 +122281,11 @@ agA afR afR afV -asY -aym -cYZ -akH -axE +asX +aue +avg +afS +akp ayA azY aBu @@ -117340,9 +122352,9 @@ aZm bon bpM cRM -arz -arz -bvm +duE +duE +dvD bwV byz bzM @@ -117511,25 +122523,25 @@ abW abW acH acH -agy -agy -aig +abW +abW +acH +acH +acH +acH afR afR afR afR +aiR +ajK afR -afR -afR -afR -agy -afR -aez -afV -afV -afV -afV +acH afV +aym +auf +aym +afS akp cYo cJK @@ -117597,9 +122609,9 @@ bjB arw bpN cRM -arz -arz -bvm +duE +duE +dvD bwW bvm aZn @@ -117768,26 +122780,26 @@ abW abW abW abW -adZ -adZ -adZ -aez -aez -aez -aez -aez -aez -aez -aez -adZ -adZ -aez -adZ -aez -aez -adZ -afS -akp +abW +abW +abW +acH +acH +acH +acH +acH +acH +acH +acH +abW +abW +acH +afV +asY +aym +cYZ +akH +axE cZm cJK aBs @@ -117854,8 +122866,8 @@ aaa arw bpN cRM -arz -aSQ +duE +duE bvu bwX bjB @@ -118039,9 +123051,9 @@ aez aez aez aez -aez afV -afS +afV +afV afV afV cZj @@ -118109,10 +123121,10 @@ aaa aaa aaa arw -bpN -cRM -arz -aSQ +dum +duv +duE +duE bvv arw aaa @@ -118368,9 +123380,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -118625,9 +123637,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -118882,9 +123894,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -119139,9 +124151,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -119394,10 +124406,10 @@ aaa aaa aaa arw -bpN -cRM -arz -aSQ +dum +duv +duE +dvl bvv arw aaa @@ -119653,9 +124665,9 @@ aaa arw bpN cRM -arz -btV -bvv +duE +duE +dvF arw aaa aaa @@ -119910,9 +124922,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -120167,9 +125179,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -120424,9 +125436,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -120679,10 +125691,10 @@ aaa aaa aaa arw -bpN -cRM -arz -aSQ +dum +dux +duE +duE bvv arw aaa @@ -120938,9 +125950,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -121195,9 +126207,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -121452,9 +126464,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +duE +dvF arw aaa aaa @@ -121707,10 +126719,10 @@ aaa aaa aaa arw -bpN -cRM -arz -aSQ +dum +dux +duE +dvm bvv arw aaa @@ -121956,7 +126968,7 @@ aaa aaa aaa aaa -aaa +cKF aaa aaa abC @@ -121966,9 +126978,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aaa aaa @@ -122223,9 +127235,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aaa aaa @@ -122480,9 +127492,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aaa aaa @@ -122737,9 +127749,9 @@ aaa arw bpN cRM -arz -btW -bvv +duE +dvn +dvF arw aaa aaa @@ -122810,8 +127822,8 @@ cph cpM cqB crL -cjG -ctv +csz +dyJ cUn cjU ckB @@ -122992,10 +128004,10 @@ aaa aaa aaa arw -bpN -cRM -arz -aSQ +dum +duv +duE +dvq bvv arw aaa @@ -123251,9 +128263,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aaa aaa @@ -123263,24 +128275,24 @@ bAd byQ bEj dpl -dpm +dpl dpn dpo dpp dpq dpr -dps -dpt +dpr +dpr +dpu +dpr +dpr +dpu +dpr +dpr +dpr +dpr +dpu dpu -dpv -dpw -dpx -dpy -dpz -dpB -dpD -dpF -dpH caf bBN bBN @@ -123325,7 +128337,7 @@ cpO cmY cjF cjG -ctv +dyK cUn cjU dlF @@ -123508,9 +128520,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aaa aaa @@ -123582,7 +128594,7 @@ cpP cmY cjF cjG -ctv +dyK cUn cgN dlG @@ -123765,9 +128777,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aaa aZt @@ -124022,9 +129034,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aZt aZt @@ -124053,8 +129065,8 @@ bYp bXG bOM cbr -dpN -dpP +dpJ +dpL cMH byS cbr @@ -124277,10 +129289,10 @@ aZf aZf aaa arw -bpN -cRM -arz -aSQ +dum +duv +duE +dvn bvv arw aZt @@ -124311,8 +129323,8 @@ bXG bOM byS dfU -dpQ -dpS +dpJ +dpL byS cbr dgD @@ -124351,8 +129363,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk cgN @@ -124536,9 +129548,9 @@ aaa arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aZf aZt @@ -124570,9 +129582,9 @@ bAd diS djs dpT -dpW -dpY -dqa +dpp +dpq +dpL cMH cMH byS @@ -124608,9 +129620,9 @@ aaa aaa arw cqC -aQS -arz -dlz +dwX +dwX +cUy cuk cgN cgN @@ -124793,9 +129805,9 @@ aZf arw bpN cRM -arz -aSQ -bvv +duE +dvn +dvF arw aZf aZt @@ -124865,8 +129877,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -125050,8 +130062,8 @@ aZf boo bpO cRM -arz -aSQ +duE +dvn bvw bwY aZf @@ -125086,7 +130098,7 @@ cMV cbr byS cbr -dqc +dqb djm bAd aZt @@ -125122,8 +130134,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -125343,7 +130355,7 @@ cbr dgD cNc dht -dqd +dqb djO byS aZH @@ -125378,11 +130390,11 @@ aaa aaa aaa arw -cqC -aQS -arz -cUy -cuk +dwO +dxb +dwX +dyM +dwO aaa aaa aXR @@ -125565,7 +130577,7 @@ boq cQD cSs baO -bhM +dvr bal cKO bal @@ -125600,7 +130612,7 @@ cMW cbr cMH bAd -dqe +dqb djP djl aZH @@ -125636,8 +130648,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -125822,7 +130834,7 @@ bor cQW baN baO -bhM +dvr bal bwZ bal @@ -125857,7 +130869,7 @@ bOM bOM bOM byS -dqf +dqb bAe cMH aZH @@ -125893,8 +130905,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -126114,13 +131126,13 @@ cbi cbi bOM dge -dqg +dqb +dqr +dqr +dqs +dqs +dqr dqr -dqJ -dqR -dqZ -drh -drp aaa aaa aaa @@ -126150,8 +131162,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -126371,13 +131383,13 @@ cbj cbP bOM dfU -dqh +dqb dqs dqK dqS dra dri -drq +dqr aaa aaa aaa @@ -126407,8 +131419,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -126593,7 +131605,7 @@ bcY cQW baN baO -bhM +dvr bal bxa bcp @@ -126628,18 +131640,18 @@ cbi cbi bOM cbr -dqi -dqt +dqb +dqr +dqL dqL -dqT drb drj drr drx drD -drJ -drP -drV +drD +drD +drD drZ aaa aaa @@ -126663,11 +131675,11 @@ aaa aaa aaa arw -cqC -aQS -arz +dwO +dxg +dwX ctA -cuk +dwO abC abC aXR @@ -126892,10 +131904,10 @@ dqU drc drk drs -dry -drE +drs +drs drK -drQ +drO arw arw aaa @@ -126921,8 +131933,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -127143,17 +132155,17 @@ cbk bOM cbr dqk -dqv +dqr dqN dqV drd drl drt drz -drF +drt drL -drR -drW +drO +drO dsa aaa aaa @@ -127178,8 +132190,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -127399,8 +132411,8 @@ cbl cbQ bOM cbr -dql -dqw +dqk +dqs dqO dqW dre @@ -127435,8 +132447,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -127657,18 +132669,18 @@ cbk bOM cbr dqm -dqx +dqs dqP dqX drf drn drv drB -drH +drv drN -drT -drY -dsc +drO +drO +dsa aaa aaa aaa @@ -127692,8 +132704,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk abC @@ -127913,17 +132925,17 @@ bOM bOM bOM cbr -dqn -dqy -dqQ -dqY -drg -dro -drw -drC -drI +dqk +dqr +dqr +dqr +dqs +dqr +drs +drs +drs +drO drO -drU arw arw aaa @@ -127948,11 +132960,11 @@ aaa aaa aaa arw -cqC -aQS -arz +dwO +dxb +dwX cUy -cuk +dwO aaa aaa aXR @@ -128170,7 +133182,7 @@ cbm cbm bOM djs -dqo +dqk dgE byS aZH @@ -128206,8 +133218,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -128463,8 +133475,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -128720,8 +133732,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -128976,11 +133988,11 @@ aaa aaa aaa arw -cqC -aQS -arz -cUy -cuk +dwO +dxg +dwX +dyN +dwO aaa aaa aXR @@ -129199,7 +134211,7 @@ cbo bOM djG bAd -dqB +dqk bBN aZH aZt @@ -129234,10 +134246,10 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy -cuk +cqC aaa aaa aXR @@ -129440,7 +134452,7 @@ bOZ dhQ did div -bTM +dsN bUM bVM bRs @@ -129456,7 +134468,7 @@ cbS bOM bAd byS -dqC +dqk byS aZH aZH @@ -129491,8 +134503,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -129697,7 +134709,7 @@ dhF bQz die diw -bTM +dsO bUN bJx bTH @@ -129713,7 +134725,7 @@ cbo bOM bAd cMH -dqD +dqk byS aZH aZH @@ -129748,8 +134760,8 @@ aaa aaa arw cqC -aQS -arz +dwX +dwX cUy cuk aaa @@ -129954,7 +134966,7 @@ bPb dhS dif bSM -bTM +dsP bUO bVN bWA @@ -129970,7 +134982,7 @@ bOM bOM bAd bAd -dqE +dqk bBN aZH aZH @@ -130004,11 +135016,11 @@ aaa aaa aaa arw -cqC -aQS -arz +dwO +dxb +dwX ctB -cuk +dwO abC abC aXR @@ -130154,18 +135166,18 @@ aLm aXI aXX aXX +dta aXX aXX aXX +dta +aXX +aXX +dta aXX aXX aXX -aXX -aXX -aXX -aXX -aXX -aXX +dta aXX aXX aZT @@ -130227,7 +135239,7 @@ byS bAd byS cbr -dqF +dqk bBN aZH aZH @@ -130262,9 +135274,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dBG +dyO cuk aaa aaa @@ -130408,24 +135420,24 @@ aSU aSU aSU aSR -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary +dsW +dsW +dsW +dBh +dsW +dsW +dsW +dBi +dsW +dsW +dBi +dsW +dsW +dsW +dBh +dsW +dsW +dsW ban baN cQE @@ -130484,7 +135496,7 @@ djv byS bPt byP -dqG +dqk djk aZH aZt @@ -130519,9 +135531,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -130730,18 +135742,18 @@ bUR bVQ bWD dpA -dpC -dpE -dpG -dpI +dpA +dpA +dpA +dpA dpK -dpO -dpR +dpA +dpA dpU djw byP byP -dqH +dqk cMH aZH aZt @@ -130776,10 +135788,10 @@ aaa aaa arw cqC -aQS -arz -cUy -cuk +dwX +dwX +dyO +cqC aaa aaa aXR @@ -130922,31 +135934,31 @@ aSN aSN aSN aSP -arA -arA -arA -arA -arA -arA -arA -arA -aYK -arA -arA -arA -arA -arA -arA -arA -arA -arA -bap +dsW +dsW +dsW +dsW +dsW +dsW +dsW +dtl +dsW +dsW +dBl +dBm +dBm +dBm +dBm +dBm +dBm +dBm +dBv cQA -baP -baP +dBw +dBw bcq -baP -baP +dBw +dBz bek baP bfX @@ -130996,8 +136008,8 @@ cbr byP dpV dpX -dpZ -dqq +dpX +dpX dqI byS aZH @@ -131032,11 +136044,11 @@ aaa aaa aaa arw -cqC -aQS -arz -cUy -cuk +dwO +dxg +dwX +dyO +dwO abC abC aXR @@ -131182,18 +136194,18 @@ aLm aXJ aXY aXY +dtb aXY aXY aXY +dtb +aXY +aXY +dtb aXY aXY aXY -aXY -aXY -aXY -aXY -aXY -aXY +dtb aXY aXY aZU @@ -131290,9 +136302,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -131547,9 +136559,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -131804,9 +136816,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -132060,11 +137072,11 @@ aaa aaa aaa arw -cqC -aQS -arz -cUy -cuk +dwO +dxb +dwX +dyV +dwO aaa aaa aXR @@ -132318,9 +137330,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -132575,9 +137587,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -132832,9 +137844,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -133089,9 +138101,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk abC abC @@ -133345,11 +138357,11 @@ aaa aaa aaa arw -cqC -aQS -arz -ctC -cuk +dwO +dxg +dwX +dyO +dwO aaa aaa aXR @@ -133603,9 +138615,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -133860,9 +138872,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -134117,9 +139129,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk abC abC @@ -134374,9 +139386,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -134630,11 +139642,11 @@ aaa aaa aaa arw -cqC -aQS -arz -cUy -cuk +dwO +dxb +dwX +dza +dwO aaa aaa aXR @@ -134817,7 +139829,7 @@ boB bal baP cSv -bhP +dvu bvU bxw cbr @@ -134888,9 +139900,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -135145,9 +140157,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aaa @@ -135402,9 +140414,9 @@ aaa aaa arw cqC -aQS -arz -dlA +dwX +dwX +dyO cuk aaa aXR @@ -135476,37 +140488,37 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aeh -aeh -aeh -aeh -aeh -aeh -aaa -aaa -ahT -ajS -ahT +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +abC aaa aaa aaa @@ -135520,8 +140532,8 @@ aaa aaa abC aaa -aaa -aaa +cKF +cKF aaa aaa aaa @@ -135588,7 +140600,7 @@ boE bal baP cSv -bhP +dvu bal bxz byS @@ -135659,9 +140671,9 @@ aaa aaa arw cqC -aQS -arz -cUy +dwX +dwX +dyO cuk aaa aXR @@ -135748,28 +140760,28 @@ aaa aaa aaa aaa -aaf -aaf -adg -adg -adg -adg -adg +aaa +aaa aaf aaf aaf -adg -adg -adg -adg -ajT +aeh +aeh +aeh +aeh +aeh +aeh +aaa +aaa ahT -aaa -aaa -aaa -aaa -aaa -aaa +ajS +ahT +cKF +cKF +cKF +cKF +cKF +cKF aaa aaa aaa @@ -135777,9 +140789,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa abW @@ -135845,7 +140857,7 @@ boF bal brr cSv -bhP +dvu bal bxA cMH @@ -136002,25 +141014,25 @@ aaa aaa aaa aaa +aaa +aaa +aaa +aaf +aaf +adg +adg +adg +adg +adg aaf aaf aaf -aaf -aaf -adg -adt -adt -adt adg adg adg adg -adg -adt -adt -adt ajT -aae +ahT aaa aaa aaa @@ -136034,9 +141046,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa abW @@ -136050,9 +141062,9 @@ abW aaa aOu aPm -aQS -arz -aSQ +ary +ary +ary aTC aUB aaa @@ -136256,28 +141268,27 @@ aaa aaa aaa aaa -aae -aae -aae -aae -aae -aae -aae -aae +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf adg adt -adN -aei -aeH adt -afz adt -agV -ahJ -aip +adg +adg +adg +adg +adg adt -ajU -aae +adt +adt +ajT aae aaa aaa @@ -136289,11 +141300,12 @@ aaa aaa aaa aaa +aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -136307,9 +141319,9 @@ abW aaa arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -136359,7 +141371,7 @@ boH bpV aQS cSC -aSQ +dvx bvV bxB aZt @@ -136508,9 +141520,9 @@ aaa aaa aaa aaa -aaf -aaf -aaf +aaa +aaa +aaa aaa aaa aae @@ -136523,19 +141535,19 @@ aae aae adg adt -adO -aej -aeI -afd -afA -afd -agW -ahK -aiq +adN +aei +aeH adt -ajT +afz +adt +agV +ahJ +aip +adt +ajU +aae aae -aaf aaa aaa aaa @@ -136548,9 +141560,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -136564,9 +141576,9 @@ aaa aaa arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -136616,7 +141628,7 @@ arw bpW aQS cSC -aSQ +dvx bvW arw aZt @@ -136764,12 +141776,12 @@ aaa aaa aaa aaa +aaa aaf aaf -aae -aae -aae -aae +aaf +aaa +aaa aae aae aae @@ -136779,22 +141791,22 @@ aae aae aae adg -adu adt +adO +aej +aeI +afd +afA +afd +agW +ahK +aiq adt -adt -adt -afB -afX -adt -adt -adt -aje ajT -aaf -aaf -aaf aae +aaf +aaa +aaa aaa aaa aaa @@ -136805,9 +141817,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -136821,9 +141833,9 @@ aaa aaa arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -136873,7 +141885,7 @@ arw bpW aQS cSC -aSQ +dvx bvW arw aZt @@ -137020,15 +142032,15 @@ aaa aaa aaa aaa -aae -aae -aae -aae -aae -aae -aae -aae +aaa aaf +aaf +aae +aae +aae +aae +aae +aae aae aae aae @@ -137036,23 +142048,23 @@ aae aae aae adg -adv -adP -aek -aeJ -afe -afC -afd -afd -ahL -air -ajf +adu +adt +adt +adt +adt +afB +afX +adt +adt +adt +aje ajT aaf aaf aaf aae -aaf +aaa aaa aaa aaa @@ -137062,9 +142074,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -137077,11 +142089,11 @@ aaa aaa aaa arw -aPn -aQS -arz -aSQ -aTD +dAj +dAA +ary +dAU +dBa arw aaa aaa @@ -137127,11 +142139,11 @@ aaa abC aaa arw -bpW -aQS +dus +duB cSC -aSQ -bvW +dvA +dwa arw aZt aZt @@ -137276,7 +142288,7 @@ aaa aaa aaa aaa -aaf +aaa aae aae aae @@ -137286,28 +142298,28 @@ aae aae aae aaf -aaf -aaf -aaf -aaf -aaf -aaf -adg -adg -adQ -ael -aeK -adS -afD -adS -adt -ahM -ais +aae +aae +aae +aae +aae +aae adg +adv +adP +aek +aeJ +afe +afC +afd +afd +ahL +air +ajf ajT -aae aaf -aae +aaf +aaf aae aaf aaa @@ -137319,9 +142331,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -137335,9 +142347,9 @@ aaa aaa arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -137387,7 +142399,7 @@ arw bpW aQS cSC -buu +dvx bvW arw aaa @@ -137534,39 +142546,38 @@ aaa aaa aaa aaf +aae +aae +aae +aae +aae +aae +aae +aae +aaf +aaf aaf aaf -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal aaf aaf aaf adg -adR -aem -aeL -adS -afE -adS -adt -adt -adt adg -ajV -aae -aae -aae +adQ +ael +aeK +adS +afD +adS +adt +ahM +ais +adg +ajT aae aaf +aae +aae aaf aaa aaa @@ -137574,6 +142585,15 @@ aaa aaa aaa aaa +aaa +abC +aaa +cKF +cKF +cKF +aaa +aaa +aaa abC aaa aaa @@ -137581,20 +142601,12 @@ aaa aaa aaa aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cKF arw aPn -aQT -arz -aSQ +ary +ary +ary aTD arw aaa @@ -137644,7 +142656,7 @@ arw bpW aQS cSC -aSQ +dvx bvW arw aaa @@ -137792,8 +142804,7 @@ aaa aaa aaf aaf -aal -aal +aaf aal aal aal @@ -137807,17 +142818,18 @@ aal aal aaf aaf -adw +aaf +adg +adR +aem +aeL adS +afE adS -adS -adS -afF -adS -adS -adS -adS -adw +adt +adt +adt +adg ajV aae aae @@ -137825,7 +142837,7 @@ aae aae aaf aaf -aaf +aaa aaa aaa aaa @@ -137833,9 +142845,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -137849,9 +142861,9 @@ aaa aaa arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -137901,7 +142913,7 @@ arw bpW aQS cSC -aSQ +dvx bvW arw aaa @@ -138051,35 +143063,35 @@ aaf aaf aal aal -aau -aax -aax -abl -aax -abM -aax -aax -aaw +aal +aal +aal +aal +aal +aal +aal +aal aal aal aal aaf +aaf adw -adT -aen -aeM adS -afG -afY -agX -ahN -ait +adS +adS +adS +afF +adS +adS +adS +adS adw ajV aae aae -aaf -aaf +aae +aae aaf aaf aaf @@ -138090,9 +143102,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -138106,9 +143118,9 @@ aaa aaa arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -138158,7 +143170,7 @@ arw bpW aQS cSC -aSQ +dvx bvW arw aaa @@ -138303,34 +143315,34 @@ aaa aaa aaa aaa -aae -aae -aae +aaa +aaf +aaf aal aal -aav +aau aax -aaw -aaw -abx aax +abl +aax +abM aax aax aaw -acL -cJi aal aal aal -adU -aeo +aaf +adw +adT +aen aeM -aff -aeM -afZ -agY -aeM -aiu +adS +afG +afY +agX +ahN +ait adw ajV aae @@ -138347,9 +143359,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -138362,11 +143374,11 @@ aaa aaa aaa arw -aPn -aQS -arz -aSQ -aTD +dAj +ary +ary +dAV +dBa arw aaa aaa @@ -138412,11 +143424,11 @@ aaa abC aaa arw -bpW -aQS +dus +duC cSC -aSQ -bvW +dvB +dwa arw aaa aaa @@ -138565,36 +143577,36 @@ aae aae aal aal -aaw -aaE -aaS -cJk -aaX -abN -abZ -acn -acu +aav aax aaw +aaw +abx +aax +aax +aax +aaw +acL +cJi aal aal aal -aal -aal -aal -aal -aal -aga -agZ -ahO -aiv +adU +aeo +aeM +aff +aeM +afZ +agY +aeM +aiu adw -ajW -akI -akI -akI -akI -akI +ajV +aae +aae +aaf +aaf +aaf aaf aaf aaa @@ -138604,9 +143616,9 @@ aaa aaa abC aaa -aaa -aaa -aaa +cKF +cKF +cKF aaa aaa aaa @@ -138620,9 +143632,9 @@ aaa aaa arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -138672,7 +143684,7 @@ arw bpW aQS cSC -aSQ +aQS bvW arw aaa @@ -138821,39 +143833,39 @@ aae aae aae aal -cJi +aal aaw -aaF -aaT -aax -aby +aaE +aaS +cJk aaX -aca +abN +abZ +acn +acu aax -acv -aax -dnz +aaw aal -adh -adx -adh -adh -adh -adh aal -agb -aha -ahP -aiw +aal +aal +aal +aal +aal +aal +aga +agZ +ahO +aiv adw -ajX -akJ -akJ -akJ -amY +ajW akI akI akI +akI +akI +aaf +aaf aaa aaa aaa @@ -138862,8 +143874,8 @@ aaa abC aaa aaa -aaa -aaa +cKF +cKF aaa aaa aaa @@ -138877,9 +143889,9 @@ aaa aaa arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -138929,7 +143941,7 @@ arw bpW aQS cSC -aSQ +aQS bvW arw aaa @@ -139078,65 +144090,65 @@ aae aae aae aal -aal +cJi +aaw +aaF +aaT aax -aaG -aaU -abm -abm -abO +aby aaX +aca aax acv aax -aau +dnz aal -cJi +adh +adx +adh +adh +adh +adh aal -aal -aal -aal -cJi -aal -agc -ahb -aeM -aix +agb +aha +ahP +aiw adw -ajY -akK -als -als -amZ -anJ -aoO -apK -aqI -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw +ajX +akJ +akJ +akJ +amY +akI +akI +akI +cKF +cKF +cKF +cKF +cKF +abC +cKF +cKF +cKF +cKF +cKF +cKF +cKF +abC +cKF +cKF +cKF +cKF +cKF +cKF +cKF arw aPn -aQS -arz -aSQ +ary +ary +ary aTD arw aaa @@ -139186,7 +144198,7 @@ arw bpW aQS cSC -aSQ +aQS bvW arw aaa @@ -139337,63 +144349,63 @@ aae aal aal aax -aaH -aaS -abn -aaS -abP -aax +aaG +aaU +abm +abm +abO aaX -acw aax -acP +acv +aax +aau aal -aaw -ady -adV -aaw -ady -aaw +cJi aal -agd -ahc +aal +aal +aal +cJi +aal +agc +ahb +aeM +aix adw -adw -adw -agk -akL -akI -akI -akI -akI -akI -akI -akI -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -arx -aPo -aQS -arz -aSQ +ajY +akK +als +als +amZ +anJ +aoO +apK +baR +aqI +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +aPn +ary +ary +ary aTD arw abC @@ -139443,7 +144455,7 @@ arw bpW aQS cSC -dfN +aQS bvW arw aaa @@ -139593,65 +144605,65 @@ aae aae aal aal -aaw -aaI -aaS -aaS -aaS +aax aaH -aaE aaS -acx -abZ -abZ -acR -adi -adi -adi -adi -aeN -adi -acR -age -ahd -ahQ -aiy -ajg -ahQ -akM -alt -alt -ana -alt -alt -apL -aqJ +abn +aaS +abP +aax +aaX +acw +aax +acP +aal +aaw +ady +adV +aaw +ady +aaw +aal +agd +ahc +adw +adw +adw +agk +akL +akI +akI +akI +akI +akI +akI +akI +dzo +dzq +dzq +dzq +dzw +dzq +dzq +dzq +dzw +dzq +dzq +dzq +dzw +dzq +dzq +dzq +dzw +dzq +dzq +dzq +dzq +dAl +dAB ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -arz -arz -aSQ -aTD +dAU +dBa arw aaa aaa @@ -139697,11 +144709,11 @@ aaa abC aaa arw -bpW -aQS +dus +duB cSC -aSQ -bvW +dvC +dwa arw aaa aaa @@ -139850,67 +144862,67 @@ aae aae aal aal -aay -aaJ -aaV +aaw +aaI aaS -abz -abQ -acb -aco -acy -acK -abm -acS -adj -adz -adj -aep -aeO -adj -acS -agf -ahe -agk -aiz -ajh -agk -akN -alu -amc -anb -amc -amc -apM -aqK -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -dbJ +aaS +aaS +aaH +aaE +aaS +acx +abZ +abZ +acR +adi +adi +adi +adi +aeN +adi +acR +age +ahd +ahQ +aiy +ajg +ahQ +akM +alt +alt +ana +alt +alt +apL +aqJ +ary +ary +ary +ary +dzx +ary +ary +ary +dzG +ary +ary +ary +dzx +ary +ary +ary +dzG +ary +ary +ary +ary +dzx +ary +ary +ary aTD arw -aaa +cKF aaa aaa aaa @@ -139957,7 +144969,7 @@ arw bpW aQS cSC -aSQ +aQS bvW arw aaa @@ -140107,64 +145119,64 @@ aae aae aal aal -aaw -aaK -aaW +aay +aaJ +aaV aaS -aaS -aaw -aaE -aaS -acz -acc -acc -acT -adk -adA -adk -adk -adk -adk -acT -agg -ahf -ahR -aiA -aji -ahR -akO -alv -amd -anc -anK -amd -amd -aqL -arA -arA -arA -arA -arA -axa -arA -arA -arA -arA -arA -arA -arA -arA -arA -aJo -arA -arA -arA -arA -arA -arA -arz -arz -aSQ +abz +abQ +acb +aco +acy +acK +abm +acS +adj +adz +adj +aep +aeO +adj +acS +agf +ahe +agk +aiz +ajh +agk +akN +alu +amc +anb +amc +amc +apM +aqK +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +dAT +ary aTD arw aaa @@ -140214,7 +145226,7 @@ arw bpW aQS cSC -aSQ +aQS bvW arw aaa @@ -140364,64 +145376,64 @@ aae aae aal aal -aax aaw +aaK +aaW aaS -abo aaS -abR -aax -aaX -acA -aax -acP -aal -adl -adB aaw -aaw -adB -adl -aal -agh -ahg -agk -agk -agk -agk -akP -akI -akI -akI -akI -akI -akI -akI +aaE +aaS +acz +acc +acc +acT +adk +adA +adk +adk +adk +adk +acT +agg +ahf +ahR +aiA +aji +ahR +akO +alv +amd +anc +anK +amd +amd +aqL +ary +ary +ary +ary arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -arB -aPp -aQS -arz -aSQ +ary +ary +ary +ary +ary +ary +ary +dzQ +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary +ary aTD arw aaa @@ -140471,7 +145483,7 @@ boI bpX aQS cSC -aSQ +aQS bvX bxC aaa @@ -140623,63 +145635,63 @@ aal aal aax aaw -aaX -aaw -aaw -aaw -aaX +aaS +abo +aaS +abR aax -acB +aaX +acA aax -aau +acP aal +adl +adB +aaw +aaw +adB +adl aal -aal -aal -aal -aal -aal -aal -agi -ahh -ahS -aiB +agh +ahg agk -ajZ -akQ -alw -ame -ame -anL -aoP -apN -aqM -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw +agk +agk +agk +akP +akI +akI +akI +akI +akI +akI +akI +dzp +dzp +dzp +dzp +dzy +dzp +dzp +dzp +dzy +dzp +dzp +dzp +dzy +dzp +dzp +dzp +dzy +dzp +dzp +dzp +dzp aPq -aQS -arz -aSQ -aTD +dAC +ary +dAU +dBa arw aaa aaa @@ -140877,65 +145889,65 @@ aae aae aae aal -cJi -aaw -aaF -aaT +aal aax -aby +aaw +aaX +aaw +aaw +aaw aaX -aca aax acB aax -aaw +aau aal -adh -adh -adh -aeq -adh -adh aal -agj -ahi -cYe +aal +aal +aal +aal +aal +aal +agi +ahh +ahS aiB agk -ajX -akJ -akJ -akJ -akJ -akI -akI -akI -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa +ajZ +akQ +alw +ame +ame +anL +aoP +apN +dzn +aqM arw -aPq -aQS -arz -aSQ +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +dAn +dAD +ary +ary aTD arw aaa @@ -141130,43 +146142,43 @@ aaa aaa aaa aaa -aaf -aaf -aaf -aal +aae +aae +aae aal +cJi aaw -aaE -aaS -cJk +aaF +aaT +aax +aby aaX -abS -acc -acp -acC +aca +aax +acB aax aaw aal +adh +adh +adh +aeq +adh +adh aal -aal -aal -aal -aal -aal -aal +agj +ahi +cYe +aiB agk -agk -agk -agk -agk -ajW +ajX +akJ +akJ +akJ +akJ akI akI akI -akI -akI -aaf -aaa abC aaa aaa @@ -141189,10 +146201,10 @@ aaa aaa aaa arw -aPq -aQS -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa @@ -141387,42 +146399,50 @@ aaa aaa aaa aaa +aaf +aaf +aaf +aal +aal +aaw +aaE +aaS +cJk +aaX +abS +acc +acp +acC +aax +aaw +aal +aal +aal +aal +aal +aal +aal +aal +agk +agk +agk +agk +agk +ajW +akI +akI +akI +akI +akI +aaf aaa -aaf -aaf -aal -aal -aaz -aax -aaw -aaw -abA -aax -aax -aax -aaw -acL -cJi -aal -aal -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -ajV -aaf -aaf -aaf -aaf -aaf -aaf +abC +aaa +aaa +aaa +aaa +aaa +cKF aaa abC aaa @@ -141432,24 +146452,16 @@ aaa aaa aaa aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cKF abC aaa aaa aaa arw -aPq -aQS -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa @@ -141649,25 +146661,25 @@ aaf aaf aal aal -aau -aaL +aaz aax -abp -aax -abM -aax -aaL aaw -aal +aaw +abA +aax +aax +aax +aaw +acL +cJi aal aal aaf aaf -aae -aae -aae -aae -aae +aaf +aaf +aaf +aaf aaf aaf aaf @@ -141703,10 +146715,10 @@ aaa aaa aaa arw -aPq -aQS -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa @@ -141906,18 +146918,18 @@ aaf aaf aal aal +aau +aaL +aax +abp +aax +abM +aax +aaL +aaw aal aal aal -aal -aal -aal -aal -aal -aal -aal -aal -aaf aaf aaf aae @@ -141960,11 +146972,11 @@ aaa aaa aaa arw -aPq -aQS -arz -aSQ -aTD +dAr +dAH +ary +dAV +dBa arw aaa aaa @@ -142159,7 +147171,6 @@ aaa aaa aaa aaa -aaa aaf aaf aal @@ -142173,24 +147184,25 @@ aal aal aal aal +aal +aal +aaf +aaf +aaf +aae +aae +aae +aae +aae aaf aaf aaf aaf -aae -aae -aae -aae -aae -aae -aae -aae -aae aaf ajV aaf -aae -aae +aaf +aaf aaf aaf aaf @@ -142215,12 +147227,12 @@ aaa abC aaa aaa -aaa +cKF arw -aPq -aQU -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa @@ -142419,15 +147431,17 @@ aaa aaa aaf aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf +aal +aal +aal +aal +aal +aal +aal +aal +aal +aal +aal aaf aaf aaf @@ -142438,8 +147452,6 @@ aae aae aae aae -aaf -aae aae aae aae @@ -142450,7 +147462,7 @@ aae aae aaf aaf -aaa +aaf aaa abC aaa @@ -142462,22 +147474,22 @@ aaa aaa abC aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF +cKF +cKF abC aaa aaa aaa arw -aPq -aQS -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa @@ -142677,18 +147689,18 @@ aaa aaf aaf aaf -aae -aae -aae -aae -aae aaf aaf aaf aaf -aae -aae -aae +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf aae aae aae @@ -142703,10 +147715,10 @@ aae aaf ajV aaf +aae +aae +aaf aaf -aaa -aaa -aaa aaa aaa abC @@ -142731,10 +147743,10 @@ aaa aaa aaa arw -aPq -aQS -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa @@ -142931,11 +147943,6 @@ aaa aaa aaa aaa -aaa -aaa -aaf -aaf -aaf aaf aaf aaf @@ -142944,7 +147951,10 @@ aae aae aae aae -aae +aaf +aaf +aaf +aaf aae aae aae @@ -142955,11 +147965,13 @@ aae aae aae aaf +aae +aae +aae +aae aaf +ajV aaf -ahT -aka -ahT aaf aaa aaa @@ -142988,10 +148000,10 @@ aaa aaa aaa arw -aPq -aQS -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa @@ -143071,17 +148083,17 @@ bYL bZn bZn bZn +dwp bZn bZn bZn bZn +dwp bZn bZn bZn bZn -bZn -bZn -bZn +dwp bZn bZn bZn @@ -143190,11 +148202,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +aaf +aaf +aaf +aaf +aaf aaf aae aae @@ -143215,9 +148227,9 @@ aaf aaf aaf ahT -akb +aka ahT -aaa +aaf aaa aaa aaa @@ -143245,19 +148257,19 @@ aaa aaa aaa arw -aPq -aQS -arz -aSQ -aTD +dAr +dAD +ary +dAU +dBa arw aaa aaa -aaa -aaa -alx -alx -alx +cKF +cKF +cKF +cKF +cKF aaa aaa aaa @@ -143324,25 +148336,25 @@ bVU buw bXj buv -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary -ary +dwd +dwd +dwd +dwd +dwq +dwd +dwd +dwd +dwd +dwx +dwd +dwd +dwd +dwd +dwq +dwd +dwd +dwd +dwd buv bXj buw @@ -143452,7 +148464,7 @@ aaa aaa aaa aaa -aaa +aaf aae aae aae @@ -143470,26 +148482,26 @@ aae aae aaf aaf +aaf +ahT +akb +ahT +aaa +aaa +aaa +aaa aaa aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -alx -alF -alx -alx -alx -alx -alx -aaa -aaa +cKF +cKF +cKF +cKF +cKF +cKF +cKF abC -aaa +cKF aaa aaa aaa @@ -143502,16 +148514,16 @@ aaa aaa aaa arw -aPq -aQS -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa aaa aaa -alx +aaa alx alx alx @@ -143581,25 +148593,25 @@ bbs bbs bbs baU -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz +dwd +dwd +dwd +dwd +dwd +dwd +dwd +dwd +dwd +dBA +dwd +dwd +dwd +dwd +dwd +dwd +dwd +dwd +dwd baU bbs cgk @@ -143710,13 +148722,15 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aae +aae +aae +aae +aae +aae +aae +aae +aae aae aae aae @@ -143725,44 +148739,42 @@ aae aae aaf aaf -aaf -ahT -abC -abC -abC +dzk +dzk +dzk abC aaa aaa aaa aaa +aaa +alx +alF alx alx alx alx alx -and -and -alx -alx -alx +aaa +aaa abC aaa aaa -alx -alx -alx -alx -alx +aaa +aaa +aaa +aaa +aaa aaa abC aaa aaa aaa arw -aPq -aQS -arz -aSQ +dAn +dAD +ary +ary aTD arw aaa @@ -143771,14 +148783,14 @@ aaa alx alx alx -alF -abC -abC -abC -abC -abC -abC -abC +alx +cKF +cKF +cKF +cKF +cKF +cKF +cKF abC aYG abC @@ -143838,34 +148850,34 @@ bSZ bSZ bSZ bYb -arA -arA -arA -arA -arA -cdj -arA -arA -arA -arA -arA -arA -arA -djU -arA -arA -arA -arA -arA -bYb -bSZ -bSZ -bSZ +dwd +dwd +dwd +dwd +dws +dwd +dwd +dwd +dwd +dwy +dwA +dwA +dwA +dwA +dwF +dwA +dwA +dwA +dwA +dwH +dwI +dwI +dwI cgA cgJ -bSZ -bRQ -cLb +dwI +dwM +dwN chu bkA bkA @@ -143988,54 +149000,54 @@ aaa aaa abC abC +aaa +aaa +aaa +aaa +alx +alx +alx +alx +alx +and +and +alx +alx +alx +abC +aaa +aaa +alx +alx +alx +alx +alx +aaa abC aaa aaa aaa +arw +dAn +dAD +ary +ary +aTD +arw +aaa +aaa +aaa alx alx -and alx -and -and -and -alx -alx -and alF -alx -and -and -alx -alx -alx -alx -aaa abC -aaa -aaa -aaa -aOv -aPr -aQS -arz -aSQ -aTE -aUC -aaa -aaa -akR -alx -alx -alx -alx -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abC +abC +abC +abC +abC +abC abC aYG abC @@ -144099,17 +149111,17 @@ bYM bZo bZo bZo +dwt bZo bZo bZo bZo +dwt bZo bZo bZo bZo -bZo -bZo -bZo +dwt bZo bZo bZo @@ -144244,53 +149256,53 @@ aaa aaa aaa abC +abC +abC aaa -abC -abC +aaa +aaa +alx +alx +and +alx +and +and +and +alx +alx +and alF alx +and +and alx -and -and -afV -afV -afS -aez -afV -adZ -aez -afV -afV -aez -aez alx -and -and alx alx aaa -aaa -aaa -aKo -aOw -aKo -aQV -aRP -aSR -aLm -aUD -aLm -akR +abC +cKF +cKF +cKF +aOv +dAz +dAD +ary +ary +dBg +aUC +cKF +cKF akR alx alx alx alx -alx -alx -aaa -aaa -aaa +cKF +cKF +cKF +cKF +cKF aaa aaa abC @@ -144502,46 +149514,46 @@ aaa aaa abC aaa -aaa -aaa +abC +abC +alF alx alx and -aez +and +afV +afV +afS aez afV -aqH -afq -apx -cZd -cYm -aiS -azp -amb -aBV adZ +aez afV afV aez +aez +alx +and +and alx alx -alx -akR -akR +aaa +aaa +aaa aKo -aOx +aOw aKo aQW -aRD -aSS +aRP +aSR aLm -aUE +aUD aLm +akR +akR alx alx alx -and -and alx alx alx @@ -144759,54 +149771,54 @@ aaa aaa abC aaa -akR +aaa +aaa +alx alx and -and aez -afS +aez afV -aoQ +aqH afq -akq -alQ -akq -akq -akp -cYo -akp -cYl -akp +apx +cZd +cYm +aiS +azp amb -cYj +aBV +adZ +afV +afV aez -and -and +alx +alx +alx +akR +akR aKo -aLo -aLo +aOx aKo -aOy -aKo -aQW +dAQ aRD -aST -aLm -aUF -aLm +aSS aLm +aUE aLm alx +alx +alx and and alx alx alx -alx -alx aaa aaa -abC +aaa +aaa +aaa abC aYG abC @@ -145015,57 +150027,57 @@ aaa aaa aaa abC -akR +aaa akR alx and and aez -apO -aoR -ahr -ahr -ahr -cYY -avL -ahr -ahr -azq -cYY -ahr -ahr -aEj afS afV +aoQ +afq +akq +alQ +akq +akq +akp +cYo +akp +cYl +akp +amb +cYj aez -aez +and +and aKo -aLp -aMq -aNr -aOz -aPs -aQW +aLo +aLo +aKo +aOy +aKo +dAQ aRD -aSU +aST +aLm +aUF +aLm aLm -aUG -aVj -aVD aLm alx and -aXa -aXb -aXa -aXa -aYi +and +alx +alx +alx +alx alx aaa -aaa +cKF abC -aYF -aYH +abC +aYG abC aaa aaa @@ -145270,59 +150282,59 @@ aaa aaa aaa aaa -ajj -akc -anQ -dnE -ajn +aaa +abC +akR +akR +alx +and +and aez +apO +aoR +ahr +ahr +ahr +cYY +avL +ahr +ahr +azq +cYY +ahr +ahr +aEj afS afV -afq -anC -arC -arC -arC -arC -arC -arC -arC -arC -arC -arC -afq -anC -afS -adZ -aIf -adZ +aez +aez aKo -aLq -aMr -aNs -aOA -aPt -aQX +aLp +aMq +aNr +aOz +aPs +dAQ aRD -aSV +aSU aLm -aUH -aVk -aVE +aUG +aVj +aVD aLm -afV -afV +alx +and +aXa +aXb +aXa aXa -aXt -aXL -aXZ -aYi -aYi aYi +alx +aaa +aaa abC -abC -aYG -abC +aYF +aYH abC aaa aaa @@ -145527,60 +150539,60 @@ aaa aaa aaa aaa -ajk -alE -akd -dnF +ajj +akc +anQ +dnE ajn -ajn -aUW -aoQ -aoR -aqN -arC -asx -atB -asx -atC -atC -axN -azr -asx -arC -aqH -aEk -amb -akp -cZB +aez afS -aKp -aLr -aMs -aNt -aOB -aPu -aQY -aRF -aSW -cKe -aUI -aVl -aVF +afV +afq +anC +arC +arC +arC +arC +arC +arC +arC +arC +arC +arC +afq +anC +afS +adZ +aIf +adZ +aKo +aLq +aMr +aNs +aOA +aPt +dAS +aRD +aSV aLm -ajt -aqH -aXb -aXu -aXM -aYa -aYj -aYr -aYj -aYn -aYn -aYH +aUH +aVk +aVE +aLm +afV +afV +aXa +aXt +aXL +aXZ +aYi +aYi +aYi +abC +abC +aYG +abC abC -aaa aaa aaa aaa @@ -145784,58 +150796,58 @@ aaa aaa aaa aaa -ajl -ake -akS -aly -amf -ane -alr +ajk +alE +akd +dnF +ajn +ajn +aUW +aoQ aoR -apP -afV +aqN arC -asy -atC asx +atB asx -axb atC atC -aAH +axN +azr +asx arC +aqH +aEk +amb +akp +cZB afS -amI -aCr -aCr -aCr -aBA -aKo -aKo -aKo -aKo -aKo -aKo -aQZ -aRQ -aSX +aKp +aLr +aMs +aNt +aOB +aPu +aQY +aRF +aSW +cKe +aUI +aVl +aVF aLm -aUJ -aVe -aVG -aLm -alR -aWQ -aXc -aXv -aXN -aYb -aYi -aYi -aYi -abC -abC -abC +ajt +aqH +aXb +aXu +aXM +aYa +aYj +aYr +aYj +aYn +aYn +aYH abC abC abC @@ -146041,59 +151053,59 @@ aaa aaa aaa aaa -cJr -akf -akT +ajl +ake +akS aly -amg -ajn -anM -aoS -cYC -adZ -arC -asz -atD -auF -avM -atC -axO -atC -aAI -arC -adZ -afS +amf +ane +alr +aoR +apP afV -aiS -dad -dan -day +arC +asy +atC +asx +asx +axb +atC +atC +aAH +arC +afS +amI +aCr +aCr aCr aBA -cYl -dam +aKo +aKo +aKo +aKo +aKo +aKo +aQZ +aRQ +aSX aLm -aRa -aRK -aSY +aUJ +aVe +aVG aLm -aUK -aVf -aVH -aLm -aqH -anC -aXb -aXb -aXa -aXb +alR +aWQ +aXc +aXv +aXN +aYb aYi -alx -aaa -aaa -aaa -aaa -aaa +aYi +aYi +abC +abC +abC +abC aaa aaa aaa @@ -146298,53 +151310,53 @@ aaa aaa aaa aaa -ajl -akg -akU +cJr +akf +akT aly -amh +amg ajn -anN -aoT -adZ +anM +aoS +cYC adZ arC -asx +asz +atD +auF +avM atC -auG -avN -auG -axP axO +atC aAI arC adZ -adZ -cZM -cZM -cZM -cZM -cZM -cZM -anC +afS +afV +aiS +dad +dan +day +aCr +aBA cYl -afS -aPl -aRb -aRR -aSZ -aTF -aUL +dam aLm +aRa +aRK +aSY aLm +aUK +aVf +aVH aLm -aoR -apu -afS -alx -alx -alx -alx +aqH +anC +aXb +aXb +aXa +aXb +aYi alx aaa aaa @@ -146361,19 +151373,19 @@ aaa aaa aaa aaa -aaa +cKF bbq bbq bbq -baS -baS -baS -baS -baS -baS +bbq +bbq +bbq +bbq +bbq +cKp big bja -bjS +bjP deo blC dpb @@ -146556,52 +151568,52 @@ aaa aaa aaa ajl -akf +akg akU -alz -ami +aly +amh ajn -ajn -anV -anV -anV -arC -arC -arC -auH -avO -auH -arC -arC -aAJ -arC -anV -anV -cZM -cZV -daf -dap -daA -cZM -amI -ahr -aOo -aPv -aRc -aRS -aTa -aLm -aLm -aLm +anN +aoT adZ adZ +arC +asx +atC +auG +avN +auG +axP +axO +aAI +arC +adZ +adZ +cZM +cZM +cZM +cZM +cZM +cZM anC -afq -aLm -aLm +cYl +afS +aPl +aRb +aRR +aSZ +aTF +aUL aLm aLm aLm +aoR +apu +afS +alx +alx +alx +alx alx aaa aaa @@ -146621,16 +151633,16 @@ aaa aaa bbq bbq -bbo +bbq +baS +baS +baS +baS baS -bdG -bew -bfl -bgl baS big bja -bjP +bjS dew bkD bkD @@ -146815,51 +151827,50 @@ aaa ajl akf akU -alA -amh -anf +alz +ami ajn -aoU -cYD -aqO -arD -asA -atE -auI -avP -auI -axQ -azs -aAK -aBW -aCU -aEl -cZO -cZW -dag -daq -daB +ajn +anV +anV +anV +arC +arC +arC +auH +avO +auH +arC +arC +aAJ +arC +anV +anV cZM -daQ -aUW -avh -aPw -aRd -aRD -aTb +cZV +daf +dap +daA +cZM +amI +ahr +aOo +aPv +aRc +aRS +aTa +aLm +aLm aLm adZ adZ -adZ -aWh -apu -aez +anC +afq +aLm +aLm +aLm aLm -aMo -aMn -aYc aLm -alx alx aaa aaa @@ -146878,16 +151889,17 @@ aaa aaa aaa bbq +bbq bbo baS -bdH -bex -bex -bgm -bgY -bih -bjc -bjR +bdG +bew +bfl +bgl +baS +big +bja +bjP bkD blD bmC @@ -147069,55 +152081,55 @@ aaa aaa aaa aaa -cJs +ajl akf akU -aly -amj -ang -anO -aoV -apQ -apQ -arE -arE -cLT -arE -avQ -apQ -apQ -azt -aAL -aBX -cZA -aEn -cZP -cZX -dah -dar -daC +alA +amh +anf +ajn +aoU +cYD +aqO +arD +asA +atE +auI +avP +auI +axQ +azs +aAK +aBW +aCU +aEl +cZO +cZW +dag +daq +daB cZM -afV -aez -afV +daQ +aUW +avh +aPw +aRd +aRD +aTb aLm -aRe -aRT -aTc -aPv -aUM -ahr -ahr +adZ +adZ +adZ +aWh apu -afV aez aLm -aNp -aNp -aYd -aLm -aLm +aMo +aMn +aYc aLm +alx +alx aaa aaa aaa @@ -147134,17 +152146,17 @@ aaa aaa aaa aaa +bbq +bbo baS -baS -baS -bdI -bey -bey -bgn -baS -big -bbs -bjP +bdH +bex +bex +bgm +bgY +bih +bjc +bjR bkD blE bmD @@ -147326,82 +152338,82 @@ aaa aaa aaa aaa -ajl -akh -akV -alB -amk -anh -anP -aoW -aoW -aoW -arF -arF -aoW -arF -avR -aoU -aoU -aoU -aoU +cJs +akf +akU +aly +amj +ang +anO +aoV +apQ +apQ +arE +arE +cLT +arE +avQ +apQ +apQ +azt +aAL aBX -aoU +cZA aEn -cZQ +cZP cZX -dai -das -daD -anV -anV -anV -anV -anV -aRd -aRD -aTa -aPw -alr -aqH -aoy -afK +dah +dar +daC +cZM +afV +aez +afV +aLm +aRe +aRT +aTc +aPv +aUM +ahr +ahr +apu afV aez aLm -aXw -aXO -aXO -aYk -aYs -aYv -aYw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -arw -bar -baR -baR -bbR -bcv -bbR -bdJ -ber -ber -bgo +aNp +aNp +aYd +aLm +aLm +aLm +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +aaa +aaa baS -bii -bjd -bjT +baS +baS +bdI +bey +bey +bgn +baS +big +bja +bjP bkD blF bmE @@ -147583,82 +152595,82 @@ aaa aaa aaa aaa -ajm -aki -akW -alC -alD -ani -ajn +ajl +akh +akV +alB +amk +anh +anP +aoW +aoW +aoW +arF +arF +aoW +arF +avR aoU aoU -aqP -arG -asB -atF -asG -avS -axc -aoW -aoW -aoW -aBY -azy -cZI -cZR -cZZ -daj -dat -daE +aoU +aoU +aBX +aoU +aEn +cZQ +cZX +dai +das +daD anV -aMt -aNu -aOC -aPx -aRf -aRU +anV +anV +anV +anV +aRd +aRD aTa +aPw +alr +aqH +aoy +afK +afV +aez aLm -aLm -aLm -aLm -aLm -aLm -aLm -aLm -aXx -cKe -aLm -aLm -aLm -aLm -aYx -aYz -aYz -aYz -aYz -aYz -aYz -aYz -aYz -aYz -aYz -aYz -aYz -bas +aXw +aXO +aXO +aYk +aYs +aYv +aYw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +arw +bar +baR +baR +bbR +bcv +bbR +bdJ +ber +ber +bgo baS -baS -baS -baS -baS -baS -baS -baS -cKp -baS -bij -bbs -bjU +bii +bjd +bjT bkD bkD bkD @@ -147840,82 +152852,82 @@ aaa aaa aaa aaa -ajn -akj -ajn +ajm +aki +akW +alC alD -aml -anj +ani ajn aoU aoU -aoY -arH -asC +aqP +arG +asB +atF +asG +avS +axc +aoW +aoW +aoW +aBY +azy +cZI +cZR +cZZ +daj +dat +daE anV -auJ -avT -aoY -aoU -aoU -aAM -anV -aCW -aEn -anV -anV -anV -anV -anV -anV -aMu -aoU -aoU -aBX -aRg -aRD -aTd -aTG -aUN -aTG -aTG -aWi -aTG -aWR -dbP -aXy -aTG -aTG -aYl -aYt -cPO -cPT -cPT -cPT -cPT -cPT -cPT -aYU -cPT -cPT -cPT -cPT -cPT -cPT -cPT -cQC -bbr -cQJ -bcw -cQJ -cQJ -cQJ -bfm -cQJ -cQJ -bik -bbs -bjP +aMt +aNu +aOC +aPx +aRf +aRU +aTa +aLm +aLm +aLm +aLm +aLm +aLm +aLm +aLm +aXx +cKe +aLm +aLm +aLm +aLm +aYx +aYz +aYz +aYz +dtr +aYz +aYz +aYz +aYz +dtr +aYz +aYz +aYz +bas +baS +baS +baS +baS +baS +baS +baS +baS +cKp +baS +bij +bja +bjU bkD blG bmF @@ -148097,81 +153109,81 @@ aaa aaa aaa aaa -aaa -aaa -ajn -ajn ajn +akj ajn +alD +aml +anj ajn aoU aoU aoY -arI -arM -aoY -arM -arI -aoY -axR -azv -aAN +arH +asC anV -aCX -aEo -aBW -aHf -aIg -aJp -aKq -aLs -aMv +auJ +avT +aoY +aoU +aoU +aAM +anV +aCW +aEn +anV +anV +anV +anV +anV +anV +aMu aoU aoU aBX aRg -aRV -aTe aRD -aUO -aRD -aRD -aWj -aRD -aTS -aRD -aRD -aRD -aRD -aYm -aRD -aRP -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -arz -baU -bbs -bbT -bbs -bbs -bbs -bbs -bfn -bbs -bbs -bil -cKz +aTd +aTG +aUN +aTG +aTG +aWi +dBH +aWR +dbP +aXy +aTG +aTG +aYl +aYt +cPO +cPT +cPT +cPT +cPT +dts +aYU +aYU +aYU +aYU +dtV +aYU +aYU +aYU +aYU +cQC +bbr +cQJ +bcw +cQJ +cQJ +cQJ +bfm +cQJ +cQJ +bik +dul bjP bkD blE @@ -148356,80 +153368,80 @@ aaa aaa aaa aaa -aaa -akR -akR -akR +ajn +ajn +ajn +ajn +ajn +aoU +aoU +aoY +arI +arM +aoY +arM +arI +aoY +axR +azv +aAN anV -aoY -aoY -aoY -arH -asD -aoY -auK -avT -aoY -aoY -aoY -aoY -anV -aCY -aEp -aFJ -aHg -aIh -aoU -aEn -aoY -aMw +aCX +aEo +aBW +aHf +aIg +aJp +aKq +aLs +aMv aoU aoU -aPy -aRh -aRW -aTf -aTH -aUP -aVm -aVI -aWk -aWE -aWS -aXd -aQN -aXP -aQN -aQN -aQN -aQR -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -baV -bbt -bbU -bcx -bdd -bdd -bez -bfo -bdd -bdd -bim -bcx -bjV +aBX +aRg +aRV +aTe +aRD +aUO +aRD +aRD +aWj +aRD +aTS +aRD +aRD +aRD +aRD +aYm +aRD +aRP +dtd +dtd +dtd +dtd +dtd +dtd +dBn +dtd +dtd +dtd +dtd +dtd +dtd +dtd +baU +bbs +bbT +bbs +bbs +bbs +bbs +bfn +bbs +bbs +bil +cKz +bjP bkD blF bmE @@ -148614,79 +153626,79 @@ aaa aaa aaa aaa -aaa -aaa -abC -arw -aoZ -aoZ -aoZ -arJ -asE -aoZ -auL -avU -aoZ -aoZ -aoZ -aaa +akR +akR +akR anV -aCZ -aEq -aFK -aHh +aoY +aoY +aoY +arH +asD +aoY +auK +avT +aoY +aoY +aoY +aoY +anV +aCY +aEp +aFJ +aHg +aIh aoU -aoU -aKr -aLt -aMx +aEn +aoY +aMw aoU aoU aPy -aPy -aRX -aTg -aTI -anV -aLm -aLm -aWl -aPJ -aPl -aLm -aLm -aLm -aLm -aLm -aLm -aLm -aYy -aYy -aYy -aYy -aYy -aYy -aYy -aYy -aYy -aYy -aYy -aYy -aYy -aYy -baS -baS -baS -baS -baS -bdK -baS -baS -baS -bgZ -bin -baS -bjW +aRh +aRW +aTf +aTH +aUP +aVm +aVI +aWk +aWE +aWS +aXd +aQN +aXP +aQN +aQN +aQN +aQR +dtd +dtd +dtd +dtd +dtu +dtd +dtd +dtd +dtd +dtu +dtd +dtd +dtd +dtd +baV +bbt +bbU +bcx +bdd +bdd +bez +bfo +bdd +bdd +bim +bcx +bjV bjW bjW bjW @@ -148876,73 +153888,73 @@ aaa abC arw aoZ -apR -apR -apR -apR -atG -apR -apR -apR -axS aoZ -aAO -aoY -aDa -aEr -aBY -aHi -aoU -aoU -aKs -aoY -aMy -aoU -aoU -aoU -aoU -aRY -azA -aTJ +aoZ +arJ +asE +aoZ +auL +avU +aoZ +aoZ +aoZ +aaa +anV +aCZ +aEq +aFK +aHh +aoU +aoU +aKr +aLt +aMx +aoU +aoU +aPy +aPy +aRX +aTg +aTI anV -alx aLm -aWm -aPI -aUR -dbQ -aXz aLm -alx -alx -alx -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -baW -baW -bbo -bbo -bbq -bbq -bbq -bbq -bgs -bha -bio -bje +aWl +aPJ +aPl +aLm +aLm +aLm +aLm +aLm +aLm +aLm +aYy +aYy +aYy +aYy +dtv +aYy +aYy +aYy +aYy +dtv +aYy +aYy +aYy +aYy +baS +baS +baS +baS +baS +bdK +baS +baS +baS +bgZ +bin +baS bjW bkE blH @@ -149137,38 +154149,38 @@ apR apR apR apR +atG apR apR apR -apR -apR -azw -aAP +axS +aoZ +aAO aoY -aCW -aEs -anV -aHj -aIi -azy -aKt +aDa +aEr aBY -aMz -aoW -aoW -aoW -aoW -aRZ -cOC +aHi +aoU +aoU +aKs +aoY +aMy +aoU +aoU +aoU +aoU +aRY +azA aTJ anV alx aLm -aWn -aOl -daW -aXe -aXA +aWm +aPI +aUR +dbQ +aXz aLm alx alx @@ -149190,16 +154202,16 @@ aaa aaa baW baW -baW +bbo bbo bbq bbq bbq bbq -bgp -bhb -ddo -bjf +bgs +bha +bio +bje bjW bkF blI @@ -149405,46 +154417,46 @@ aoY aCW aEs anV -aHk -aCW -aJq -aKu -aLu -aMA -aoU -aoU -aoU -aoU -aRY -apb +aHj +aIi +azy +aKt +aBY +aMz +aoW +aoW +aoW +aoW +aRZ +cOC aTJ anV alx aLm -aMg -aWF -aWT -aXf -aNF +aWn +aOl +daW +aXe +aXA aLm alx alx alx -alx -aXR -aXR -aXR aaa -aXR -aXR -aXR -aXR aaa -aXR -aXR -aXR -aXR -aXR +abC +aaa +aaa +aaa +aaa +abC +aaa +aaa +aaa +aaa +abC +aaa +aaa baW baW baW @@ -149659,49 +154671,49 @@ apR azw aAP aoY -aDb -aEt -anV -aHl aCW +aEs +anV +aHk +aCW +aJq +aKu +aLu +aMA aoU -aKv -aoY -aMB -aNv -aOD -aPz -aRi -aSa -aTh -aTK +aoU +aoU +aoU +aRY +apb +aTJ anV alx aLm -aLm -aLm -aLm -aLm -aLm +aMg +aWF +aWT +aXf +aNF aLm alx alx alx alx +aXR +aXR +aXR aaa +aXR +aXR +aXR +aXR aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aXR +aXR +aXR +aXR +aXR baW baW baW @@ -149912,35 +154924,35 @@ apR apR apR apR -axS -aoZ -aAQ +apR +azw +aAP aoY +aDb +aEt +anV +aHl aCW -aEs -anV -aHm -aCW -aJr -aKw -anV -anV -anV -anV -aPA -anV -aSb -avk -anV +aoU +aKv +aoY +aMB +aNv +aOD +aPz +aRi +aSa +aTh +aTK anV alx -and -and -alx -alx -alx -alx -alx +aLm +aLm +aLm +aLm +aLm +aLm +aLm alx alx alx @@ -150161,45 +155173,45 @@ aaa abC arw aoZ +apR +apR +apR +apR +apR +apR +apR +apR +axS aoZ -aoZ -arK -arK -aoZ -auM -arK -aoZ -aoZ -aoZ -aaa -anV -aCZ +aAQ +aoY +aCW aEs anV -aHn +aHm aCW -aoU -daF +aJr +aKw +anV +anV +anV +anV +aPA +anV +aSb +avk +anV anV -aez -aez -adZ -afV -akp -aSc -cOD -cZB -afS -alx -alx -alx -and alx and and -and -and -and +alx +alx +alx +alx +alx +alx +alx alx alx alx @@ -150411,54 +155423,54 @@ aaa aaa aaa aaa -dnA aaa -akR -akR -akR +aaa +aaa +aaa +abC +arw +aoZ +aoZ +aoZ +arK +arK +aoZ +auM +arK +aoZ +aoZ +aoZ +aaa anV -aoY -aoY -aoY -arL -asF -aoY -asF -arL -aoY -aoY -aoY -aoY -anV -aCY +aCZ aEs anV -aHo +aHn aCW aoU -aKx +daF anV aez aez adZ -afS -cYt -cYK -aiS -afS afV +akp +aSc +cOD +cZB +afS +alx +alx +alx and -and -and +alx and and and and and alx -and -and -and +alx alx alx aaa @@ -150668,42 +155680,42 @@ aaa aaa aaa aaa -dnB -dnD -dnD -dnD -dnD -anT -aoX -aoU -aoY -arM -arM -aoY -arM -arM -aoY -axT -azx -aAR +dnA +aaa +akR +akR +akR anV -aCX +aoY +aoY +aoY +arL +asF +aoY +asF +arL +aoY +aoY +aoY +aoY +anV +aCY aEs anV -aHp -aIj -aJs -aKy -aHp +aHo +aCW +aoU +aKx +anV aez aez +adZ afS -cYm -cYu -akp -akp -cYg +cYt +cYK +aiS afS +afV and and and @@ -150725,7 +155737,7 @@ aaa aaa aaa aaa -aaa +cKF aaa aaa aaa @@ -150925,50 +155937,50 @@ aaa aaa aaa aaa -dnC -akR -akR -akR -alx -anU -apa +dnB +dnD +dnD +dnD +dnD +anT +aoX aoU aoY -arL -arL +arM +arM aoY -arL -arL +arM +arM aoY -aoU -aoU -aAM +axT +azx +aAR anV -aDc +aCX aEs -aFL -aHq -aIk -aJt -aKz +anV +aHp +aIj +aJs +aKy aHp aez aez -aez -cYj +afS +cYm cYu -aXh +akp +akp +cYg afS -adZ -afS -aez -aez -afV -aez and and -alx -alx +and +and +and +and +and +and alx and and @@ -151182,54 +156194,54 @@ aaa aaa aaa aaa -aaa +dnC +akR akR akR alx -alx +anU +apa +aoU +aoY +arL +arL +aoY +arL +arL +aoY +aoU +aoU +aAM anV -apb -aoU -aoU -aoU -asG -atH -aoW -aoW -aoW -aoW -azy -aoW -aBY -aDd +aDc aEs -aFM +aFL aHq -aIl -aJu -aKA +aIk +aJt +aKz aHp -adZ aez aez -apx -cOz -afV +aez +cYj +cYu +aXh +afS adZ afS +aez +aez afV -afS -aWo -afK -afV -afS -afS -afV -alx -alx +aez +and +and alx alx alx +and +and +and alx aaa aaa @@ -151445,48 +156457,48 @@ akR alx alx anV -apc -apS -apS -arN -arN -cLU -arN -arN -apS -apS -azz -apS -aBZ -aDe -aEu -aFN +apb +aoU +aoU +aoU +asG +atH +aoW +aoW +aoW +aoW +azy +aoW +aBY +aDd +aEs +aFM aHq -aIm +aIl aJu -aKB +aKA aHp adZ +aez +aez +apx +cOz afV -afV -alR -amK -alS -afV -akp -akp -akp -akq -avh -awu -alr -aOF +adZ afS afV afS +aWo +afK afV -akR -akR +afS +afS +afV +alx +alx +alx +alx +alx akR aaa aaa @@ -151698,50 +156710,50 @@ aaa aaa aaa akR -alx +akR alx alx anV -apd -aoU -aoU -arO -arO -aoU -arO -arO -aoU -axU -azA -aoU -aBX -aoU -aEn -aFO +apc +apS +apS +arN +arN +cLU +arN +arN +apS +apS +azz +apS +aBZ +aDe +aEu +aFN aHq aIm aJu -aKC +aKB aHp -aHp -aNw -afS -alS -amK -akp -aOH -akp -akp -cYl -akp -afp +adZ afV +afV +alR +amK +alS +afV +akp +akp +akp akq -akp +avh +awu +alr +aOF afS -akp -akp -ajo +afV +afS +afV akR akR aaa @@ -151955,52 +156967,52 @@ aaa aaa aaa akR -akR +alx alx alx anV -ape -ape -aqQ -arP -asH -atI -auN -cZe -apQ -axV -azB -aAS -aBW -aDf -aEv -aFP +apd +aoU +aoU +arO +arO +aoU +arO +arO +aoU +axU +azA +aoU +aBX +aoU +aEn +aFO aHq -aIn -aJv -aKD -cNU -cOb -cOf -aOE -cOs -cYK -afS -afV -afV -afV -aez -afS -afV +aIm +aJu +aKC +aHp +aHp +aNw afS +alS +amK akp -aXg +aOH akp akp +cYl +akp +afp +afV +akq +akp +afS +akp akp ajo -aaa -aaa +akR +akR aaa aaa aaa @@ -152211,49 +157223,49 @@ aaa aaa aaa aaa -aaa akR akR -ank -ank -apf -apf -aqR -ank -ank -ank -ank -ank -ank -ank -azC -ank -ank +alx +alx anV -anV -anV -aHp -aHp -aHp -aHp -aHp -aHp -cYn -aCr -apu -dbk +ape +ape +aqQ +arP +asH +atI +auN +cZe +apQ +axV +azB +aAS +aBW +aDf +aEv +aFP +aHq +aIn +aJv +aKD +cNU +cOb +cOf +aOE +cOs +cYK afS -alx -and -and -and -alx -alx +afV +afV +afV +aez +afS +afV afS akp -aXh -afV -aXQ +aXg +akp +akp akp ajo aaa @@ -152469,49 +157481,49 @@ aaa aaa aaa aaa -aaa -aaa +akR +akR ank -anW -apg -apT -aqS -aph ank -atJ -atJ -avV -axd -axW -azD -aAT +apf +apf +aqR ank -adZ +ank +ank +ank +ank +ank +ank +azC +ank +ank +anV +anV +anV +aHp +aHp +aHp +aHp +aHp +aHp +cYn +aCr +apu +dbk afS -afV -adZ -adZ -aJw -aCr -day -aCr -aNx -aus -afq -afV -aez alx and and and -and +alx alx afS -aRj -aXi -afS -ala -ajr +akp +aXh +afV +aXQ +akp ajo aaa aaa @@ -152729,69 +157741,69 @@ aaa aaa aaa ank -anX +anW +apg +apT +aqS aph -apU -aqT -arQ -asI -atK -auO -auO -auO -avW -azE -avW ank -cZB -cYl -aoR -ahr -aqj -apu -akq -alS -akp -aNy -afS +atJ +atJ +avV +axd +axW +azD +aAT +ank adZ +afS +afV +adZ +adZ +aJw +aCr +day +aCr +aNx +aus +afq +afV aez -and alx and and and and alx -afV -afV -afV -afV -afV -afV -afV -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -bbp +afS +aRj +aXi +afS +ala +ajr +ajo +aaa +aaa +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +bbo bbo bbq bgp @@ -152983,72 +157995,72 @@ aaa aaa aaa aaa -akR -akR +aaa +aaa ank -anY -api -apV -apV -apV -asJ -atL -atL -avX -atL -atL -azF -aAU +anX +aph +apU +aqT +arQ +asI +atK +auO +auO +auO +avW +azE +avW ank -aDg -auE +cZB +cYl +aoR +ahr +aqj apu -aqH -afq -afq -aKE -adZ +akq +alS +akp +aNy +afS adZ +aez +and +alx +and +and +and +and +alx afV -adZ -alx -alx -alx -alx -and -and -and -and -alx -alx -akR -akR -alx -alx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -baW +afV +afV +afV +afV +afV +afV +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +bbp bbo bbq bbq @@ -153241,29 +158253,32 @@ aaa aaa aaa akR -alx +akR ank -anZ -apj -apW -aqU -arR +anY +api +apV +apV +apV +asJ +atL +atL +avX +atL +atL +azF +aAU ank -atM -auP -avW -avW -axX -azG -aAV -ank -afK -aUW -aoy -apx -anN +aDg +auE +apu +aqH +afq +afq +aKE +adZ +adZ afV -afS adZ alx alx @@ -153273,15 +158288,12 @@ and and and and -and -and -and +alx alx akR akR -akR -akR -akR +alx +alx aaa aaa aaa @@ -153496,31 +158508,31 @@ aaa aaa aaa aaa -akR +aaa akR alx ank +anZ +apj +apW +aqU +arR ank +atM +auP +avW +avW +axX +azG +aAV ank -ank -ank -ank -ank -ank -auQ -avY -auQ -ank -ank -ank -ank +afK +aUW +aoy +apx +anN afV afS -afS -adZ -adZ -adZ -adZ adZ alx alx @@ -153534,7 +158546,7 @@ and and and alx -alx +akR akR akR akR @@ -153754,46 +158766,46 @@ aaa aaa aaa akR +akR +alx +ank +ank +ank +ank +ank +ank +ank +ank +auQ +avY +auQ +ank +ank +ank +ank +afV +afS +afS +adZ +adZ +adZ +adZ +adZ alx alx alx alx -alx +and +and +and +and +and +and +and alx alx akR akR -atN -auR -avW -avW -atN -akR -akR -alx -alx -and -and -and -alx -alx -alx -alx -and -and -and -and -and -and -and -and -alx -alx -alx -alx -alx -alx -alx akR akR aaa @@ -154010,32 +159022,32 @@ aaa aaa aaa aaa -aaa -alF akR -alF alx alx alx alx -aaa +alx +alx +alx +akR akR atN -auS +auR +avW avW -axe atN -aaa akR akR alx +alx and and and -and -and -and -and +alx +alx +alx +alx and and and @@ -154051,8 +159063,8 @@ alx alx alx alx -alx -alx +akR +akR aaa aaa aaa @@ -154268,48 +159280,48 @@ aaa aaa aaa aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -atN -atN -avZ -atN -atN -aaa +alF +akR +alF +alx +alx +alx +alx aaa akR -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx -alx +atN +auS +avW +axe +atN aaa +akR +akR +alx +and +and +and +and +and +and +and +and +and +and +and +and +and +and +and +alx +alx +alx +alx +alx +alx +alx +alx +alx aaa aaa aaa @@ -154533,19 +159545,19 @@ aaa aaa aaa aaa -asK -asK -asL -awa -asL -asK -asK -aaa -aaa -aaa -aaa +aaa +atN +atN +avZ +atN +atN aaa aaa +akR +alx +alx +alx +alx alx alx alx @@ -154791,11 +159803,11 @@ aaa aaa aaa asK -atO -auT -auT -auU -axY +asK +asL +awa +asL +asK asK aaa aaa @@ -154803,52 +159815,52 @@ aaa aaa aaa aaa +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx +alx aaa aaa aaa aaa -alx -alx -alx -alx -alx -and -alx -alx -alx -and -alx -alF -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -bbp +aaa +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +cKF +bbo bbo bbq bgs @@ -155047,16 +160059,13 @@ aaa aaa aaa aaa -asL -atP -auU +asK +atO +auT auT auU -axZ -azH -aaa -aaa -aaa +axY +asK aaa aaa aaa @@ -155072,41 +160081,44 @@ alx alx alx alx +and alx alx alx +and alx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bbo +alF +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +bbp bbq bgp bit @@ -155304,14 +160316,13 @@ aaa aaa aaa aaa -asK -atQ -auT +asL +atP +auU auT auU -aya -asK -aaa +axZ +azH aaa aaa aaa @@ -155329,6 +160340,11 @@ alx alx alx alx +alx +alx +alx +alx +alx aaa aaa aaa @@ -155338,10 +160354,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aac aab aaa aaa @@ -155562,11 +160574,11 @@ aaa aaa aaa asK -asK -asL -awb -asL -asK +atQ +auT +auT +auU +aya asK aaa aaa @@ -155577,9 +160589,15 @@ aaa aaa aaa aad -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +alx +alx +alx +alx aaa aaa aaa @@ -155592,13 +160610,7 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa +aac aaa aac aad @@ -155818,13 +160830,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +asK +asK +asL +awb +asL +asK +asK aaa aaa aaa @@ -155853,7 +160865,7 @@ aaa aaa aaa aaa -aaa +aab aaa aaa aab From 148666efedc7233a12aa973a95b328cd4e7c20b6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:30:29 -0500 Subject: [PATCH 24/82] Disables Gaia mutation (#928) --- code/modules/hydroponics/grown/ambrosia.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm index 554cba9f47..45a10f65f4 100644 --- a/code/modules/hydroponics/grown/ambrosia.dm +++ b/code/modules/hydroponics/grown/ambrosia.dm @@ -39,7 +39,7 @@ species = "ambrosiadeus" plantname = "Ambrosia Deus" product = /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus - mutatelist = list(/obj/item/seeds/ambrosia/gaia) + mutatelist = list() reagents_add = list("omnizine" = 0.15, "synaptizine" = 0.15, "space_drugs" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05) rarity = 40 From 176c2003f911eab5a85cdbe48ea46e99480239af Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:34:15 -0500 Subject: [PATCH 25/82] [MIRROR] Enable Ambrosia Gaia, attempt balance (#962) * Enable Ambrosia Gaia, attempt balance * Update ambrosia.dm * Delete ambrosia.dm.rej --- code/modules/hydroponics/grown/ambrosia.dm | 4 +- code/modules/hydroponics/hydroponics.dm | 45 +++++++++------------- 2 files changed, 20 insertions(+), 29 deletions(-) diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm index 45a10f65f4..51b8f3c43e 100644 --- a/code/modules/hydroponics/grown/ambrosia.dm +++ b/code/modules/hydroponics/grown/ambrosia.dm @@ -39,7 +39,7 @@ species = "ambrosiadeus" plantname = "Ambrosia Deus" product = /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus - mutatelist = list() + mutatelist = list(/obj/item/seeds/ambrosia/gaia) reagents_add = list("omnizine" = 0.15, "synaptizine" = 0.15, "space_drugs" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05) rarity = 40 @@ -59,7 +59,7 @@ species = "ambrosia_gaia" plantname = "Ambrosia Gaia" product = /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/gaia - mutatelist = list() + mutatelist = list(/obj/item/seeds/ambrosia/deus) reagents_add = list("earthsblood" = 0.05, "nutriment" = 0.06, "vitamin" = 0.05) rarity = 30 //These are some pretty good plants right here genes = list() diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index b26a911b3a..317b954c91 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -27,6 +27,8 @@ var/unwrenchable = 1 var/recent_bee_visit = FALSE //Have we been visited by a bee recently, so bees dont overpollinate one plant var/using_irrigation = FALSE //If the tray is connected to other trays via irrigation hoses + var/self_sufficiency_req = 20 //Required total dose to make a self-sufficient hydro tray. 1:1 with earthsblood. + var/self_sufficiency_progress = 0 var/self_sustaining = FALSE //If the tray generates nutrients and water on its own @@ -329,6 +331,9 @@ if(!self_sustaining) to_chat(user, "Water: [waterlevel]/[maxwater]") to_chat(user, "Nutrient: [nutrilevel]/[maxnutri]") + if(self_sufficiency_progress > 0) + var/percent_progress = round(self_sufficiency_progress * 100 / self_sufficiency_req) + to_chat(user, "Treatment for self-sustenance are [percent_progress]% complete.") else to_chat(user, "It doesn't require any water or nutrients.") @@ -504,6 +509,14 @@ yieldmod = 1.3 mutmod = 0 adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 )) + + // Ambrosia Gaia produces earthsblood. + if(S.has_reagent("earthsblood")) + self_sufficiency_progress += S.get_reagent_amount("earthsblood") + if(self_sufficiency_progress >= self_sufficiency_req) + become_self_sufficient() + else if(!self_sustaining) + to_chat(user, "[src] warms as it might on a spring day under a genuine Sun.") // Antitoxin binds shit pretty well. So the tox goes significantly down if(S.has_reagent("charcoal", 1)) @@ -675,33 +688,7 @@ /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) //Called when mob user "attacks" it with object O - if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/gaia)) //Checked early on so it doesn't have to deal with composting checks - if(self_sustaining) - to_chat(user, "This [name] is already self-sustaining!") - return - if(myseed || weedlevel) - to_chat(user, "[src] needs to be clear of plants and weeds!") - return - if(alert(user, "This will make [src] self-sustaining but consume [O] forever. Are you sure?", "[name]", "I'm Sure", "Abort") == "Abort" || !user) - return - if(!O || QDELETED(O)) - return - if(!Adjacent(user)) - return - if(self_sustaining) - to_chat(user, "This [name] is already self-sustaining!") - return - if(myseed || weedlevel) - to_chat(user, "[src] needs to be clear of plants and weeds!") - return - user.visible_message("[user] gently pulls open the soil for [O] and places it inside.", "You tenderly root [O] into [src].") - user.drop_item() - qdel(O) - visible_message("[src] begins to glow with a beautiful light!") - self_sustaining = TRUE - update_icon() - - else if(istype(O, /obj/item/weapon/reagent_containers) ) // Syringe stuff (and other reagent containers now too) + if(istype(O, /obj/item/weapon/reagent_containers) ) // Syringe stuff (and other reagent containers now too) var/obj/item/weapon/reagent_containers/reagent_source = O if(istype(reagent_source, /obj/item/weapon/reagent_containers/syringe)) @@ -930,6 +917,10 @@ var/mob/living/simple_animal/hostile/C = new chosen C.faction = list("plants") +/obj/machinery/hydroponics/proc/become_self_sufficient() // Ambrosia Gaia effect + visible_message("[src] begins to glow with a beautiful light!") + self_sustaining = TRUE + update_icon() /////////////////////////////////////////////////////////////////////////////// /obj/machinery/hydroponics/soil //Not actually hydroponics at all! Honk! From c4901a4e7baf6aaf165c546bd426425945ced6f2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:34:17 -0500 Subject: [PATCH 26/82] Automatic changelog generation for PR #962 [ci skip] --- html/changelogs/AutoChangeLog-pr-962.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-962.yml diff --git a/html/changelogs/AutoChangeLog-pr-962.yml b/html/changelogs/AutoChangeLog-pr-962.yml new file mode 100644 index 0000000000..a5c9db8081 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-962.yml @@ -0,0 +1,6 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - rscadd: "Ambrosia Deus can now mutate into Gaia, and Gaia into Deus." + - rscdel: "A single branch of Ambrosia Gaia will not immediately make a hydroponics tray self-sufficient. +balance: A (total) dose of 20u Earthsblood (from Gaia) will make a hydroponics tray self-sufficient." From fc628bcb89cb9d2bf964ab97e456a2ac093f06dc Mon Sep 17 00:00:00 2001 From: cebutris Date: Sun, 14 May 2017 23:36:22 -0400 Subject: [PATCH 27/82] adds the holoparasite box, and adds it to traitor uplinks (#913) --- .../objects/items/weapons/storage/uplink_kits.dm | 13 ++++++++++--- code/modules/uplink/uplink_item_cit.dm | 11 +++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 6dd8dbb43a..1962fbd818 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -92,7 +92,7 @@ new /obj/item/pizzabox/bomb if("darklord") //20 tc + tk + summon item close enough for now - new /obj/item/weapon/twohanded/dualsaber(src) + new /obj/item/weapon/twohanded/dualsaber(src) new /obj/item/weapon/dnainjector/telemut/darkbundle(src) new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) new /obj/item/weapon/card/id/syndicate(src) @@ -218,8 +218,8 @@ new /obj/item/weapon/reagent_containers/glass/bottle/polonium(src) new /obj/item/weapon/reagent_containers/glass/bottle/venom(src) new /obj/item/weapon/reagent_containers/glass/bottle/neurotoxin2(src) - new /obj/item/weapon/reagent_containers/glass/bottle/formaldehyde(src) - new /obj/item/weapon/reagent_containers/glass/bottle/spewium(src) + new /obj/item/weapon/reagent_containers/glass/bottle/formaldehyde(src) + new /obj/item/weapon/reagent_containers/glass/bottle/spewium(src) new /obj/item/weapon/reagent_containers/glass/bottle/cyanide(src) new /obj/item/weapon/reagent_containers/glass/bottle/histamine(src) new /obj/item/weapon/reagent_containers/glass/bottle/initropidril(src) @@ -296,3 +296,10 @@ /obj/item/weapon/storage/box/syndie_kit/mimery/PopulateContents() new /obj/item/weapon/spellbook/oneuse/mimery_blockade(src) new /obj/item/weapon/spellbook/oneuse/mimery_guns(src) + +/obj/item/weapon/storage/box/syndie_kit/holoparasite + name = "box" + +/obj/item/weapon/storage/box/syndie_kit/holoparasite/PopulateContents() + new /obj/item/weapon/guardiancreator/tech/choose/traitor(src) + new /obj/item/weapon/paper/guardian(src) \ No newline at end of file diff --git a/code/modules/uplink/uplink_item_cit.dm b/code/modules/uplink/uplink_item_cit.dm index c74ad3ba9c..b835a21a8c 100644 --- a/code/modules/uplink/uplink_item_cit.dm +++ b/code/modules/uplink/uplink_item_cit.dm @@ -7,4 +7,15 @@ refundable = TRUE cost = 10 surplus = 20 //Let's not have this be too common + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_tools/holoparasite + name="Holoparasite Injector" + desc="It contains an alien nanoswarm of unknown origin.\ + Though capable of near sorcerous feats via use of hardlight holograms and nanomachines.\ + It requires an organic host as a home base and source of fuel." //This is the description of the actual injector. Feel free to change this for uplink purposes// + item = /obj/item/weapon/storage/box/syndie_kit/holoparasite + refundable = TRUE + cost = 10 //I'm working off the borer. Price subject to change + surplus = 20 //Nobody needs a ton of parasites exclude_modes = list(/datum/game_mode/nuclear) \ No newline at end of file From 56ccce82c822933d5117085e835eeb2a2dfc0c8d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 22:36:23 -0500 Subject: [PATCH 28/82] Automatic changelog generation for PR #913 [ci skip] --- html/changelogs/AutoChangeLog-pr-913.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-913.yml diff --git a/html/changelogs/AutoChangeLog-pr-913.yml b/html/changelogs/AutoChangeLog-pr-913.yml new file mode 100644 index 0000000000..dd72fe0130 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-913.yml @@ -0,0 +1,4 @@ +author: "Cebutris" +delete-after: True +changes: + - rscadd: "The Syndicate has found an abandoned storage facility filled with hundreds of holoparasite injectors. While they aren't giving them to their operatives, sleeper operatives can buy them with their uplinks! Get your holographic murder machine buddy today!" From db47433f40c1dbc7ff80c733c1b32cad6e04066e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 14 May 2017 23:51:13 -0500 Subject: [PATCH 29/82] Fixes Graviton Typo --- code/modules/power/gravitygenerator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 4bd8bb56b0..7a148067d3 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -20,7 +20,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne /obj/machinery/gravity_generator name = "gravitational generator" - desc = "A device which produces a gravaton field when set up." + desc = "A device which produces a graviton field when set up." icon = 'icons/obj/machines/gravity_generator.dmi' anchored = 1 density = 1 From 9f63a77cb8fb851b098d3320166e2bc5e17784b9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 15 May 2017 07:00:57 -0500 Subject: [PATCH 30/82] [Box] Area Power Fixes --- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 220c1bd671..fb03151ef2 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -12384,7 +12384,7 @@ dir = 5 }, /turf/open/floor/plating, -/area/maintenance/fpmaint) +/area/gateway) "aBj" = ( /obj/structure/rack{ dir = 8; @@ -22145,7 +22145,7 @@ "aYa" = ( /obj/machinery/power/apc{ dir = 8; - name = "Locker Room Maintenance APC"; + name = "Aft Port Maintenance APC"; pixel_x = -27; pixel_y = 2 }, @@ -25158,7 +25158,7 @@ icon_state = "1-8" }, /turf/open/floor/plating, -/area/maintenance/port) +/area/quartermaster/storage) "bfl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -27644,11 +27644,6 @@ /area/bridge/meeting_room) "bkY" = ( /obj/effect/landmark/blobstart, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -59567,7 +59562,7 @@ }, /obj/structure/cable, /turf/open/floor/plating, -/area/maintenance/port) +/area/security/detectives_office) "cCo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -88791,7 +88786,7 @@ bda bca bgJ aZP -bjD +bjB bkY bmo bnP @@ -99639,7 +99634,7 @@ bVu bVu bVu bVu -apQ +bVu bVu csw csw From 59b609c79daa1f4cd7db3cd3673c32c47f177789 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 15 May 2017 10:36:56 -0500 Subject: [PATCH 31/82] Reverts favoring empty positions --- code/controllers/subsystem/job.dm | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 32d53884f5..c37e10b28c 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -287,8 +287,6 @@ SUBSYSTEM_DEF(job) if(PopcapReached()) RejectPlayer(player) - var/datum/job/validjob - // Loop through all jobs for(var/datum/job/job in shuffledoccupations) // SHUFFLE ME BABY if(!job) @@ -315,19 +313,11 @@ SUBSYSTEM_DEF(job) // If the job isn't filled if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1) + Debug("DO pass, Player: [player], Level:[level], Job:[job.title]") + AssignRole(player, job.title) + unassigned -= player + break - validjob = job - - //Is the Job empty? Stop Looking Then! - if (!job.current_positions) - break - - //Assign us the last job we found - if (validjob) - Debug("DO pass, Player: [player], Level:[level], Job:[validjob.title]") - AssignRole(player, validjob.title) - unassigned -= player - break // Hand out random jobs to the people who didn't get any in the last check // Also makes sure that they got their preference correct From 1f66249428cf694737853ce8349c3fa5498c4f7d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 15 May 2017 17:04:23 -0500 Subject: [PATCH 32/82] Updates starthistle plant description & stats, adds a seed return harvest, fixes sprites & adds starthistle seeds to the botany vendor contraband --- code/game/machinery/vending.dm | 3 +- code/modules/hydroponics/grown/misc.dm | 33 +++++++++++++++------- code/modules/hydroponics/hydroponics.dm | 2 +- icons/obj/hydroponics/growing_flowers.dmi | Bin 12085 -> 12092 bytes icons/obj/hydroponics/seeds.dmi | Bin 19007 -> 19276 bytes 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index fd40f7e273..bd51e1e651 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -947,7 +947,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/seeds/tea = 3,/obj/item/seeds/tobacco = 3,/obj/item/seeds/tomato = 3, /obj/item/seeds/tower = 3,/obj/item/seeds/watermelon = 3,/obj/item/seeds/wheat = 3,/obj/item/seeds/whitebeet = 3) contraband = list(/obj/item/seeds/amanita = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/liberty = 2,/obj/item/seeds/nettle = 2, - /obj/item/seeds/plump = 2,/obj/item/seeds/reishi = 2,/obj/item/seeds/cannabis = 3, /obj/item/seeds/random = 2) + /obj/item/seeds/plump = 2,/obj/item/seeds/reishi = 2,/obj/item/seeds/cannabis = 3,/obj/item/seeds/starthistle = 2, + /obj/item/seeds/random = 2) premium = list(/obj/item/weapon/reagent_containers/spray/waterflower = 1) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index a67fef2473..3f89618c09 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -1,19 +1,32 @@ -// Weeds -/obj/item/seeds/weeds - name = "pack of weed seeds" - desc = "Yo mang, want some weeds?" - icon_state = "seed" - species = "weeds" +// Starthistle +/obj/item/seeds/starthistle + name = "pack of starthistle seeds" + desc = "A robust species of weed that often springs up in-between the cracks of spaceship parking lots" + icon_state = "seed-starthistle" + species = "starthistle" plantname = "Starthistle" - lifespan = 100 + lifespan = 70 endurance = 50 // damm pesky weeds maturation = 5 production = 1 - yield = -1 - potency = -1 - growthstages = 4 + yield = 2 + potency = 10 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) + mutatelist = list(/obj/item/seeds/harebell) +/obj/item/seeds/starthistle/harvest(mob/user) + var/obj/machinery/hydroponics/parent = loc + var/seed_count = yield + if(prob(getYield() * 20)) + seed_count++ + var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc + for(var/i in 1 to seed_count) + var/obj/item/seeds/starthistle/harvestseeds = Copy() + harvestseeds.forceMove(output_loc) + + parent.update_tray() // Cabbage /obj/item/seeds/cabbage diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 317b954c91..8f49846f60 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -369,7 +369,7 @@ if(4 to 5) myseed = new /obj/item/seeds/plump(src) else - myseed = new /obj/item/seeds/weeds(src) + myseed = new /obj/item/seeds/starthistle(src) age = 0 plant_health = myseed.endurance lastcycle = world.time diff --git a/icons/obj/hydroponics/growing_flowers.dmi b/icons/obj/hydroponics/growing_flowers.dmi index e1f308c87b4cc30412c59259d7472ded72a46722..cceb749121276dca1824cbcfb2eff9e28fc752ac 100644 GIT binary patch delta 267 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 From f52625b18c1ff0e37aaab13f0151d11cb0b3a79a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 15 May 2017 17:54:16 -0500 Subject: [PATCH 33/82] Refactors supply talismans to be less shitcode --- code/game/gamemodes/cult/supply.dm | 124 ++++++++++++++++++ code/game/gamemodes/cult/talisman.dm | 68 ---------- .../items/stacks/sheets/sheet_types.dm | 9 +- tgstation.dme | 1 + 4 files changed, 131 insertions(+), 71 deletions(-) create mode 100644 code/game/gamemodes/cult/supply.dm diff --git a/code/game/gamemodes/cult/supply.dm b/code/game/gamemodes/cult/supply.dm new file mode 100644 index 0000000000..71b8c941b1 --- /dev/null +++ b/code/game/gamemodes/cult/supply.dm @@ -0,0 +1,124 @@ +//Supply Talisman: Has a few unique effects. Granted only to starter cultists. +/obj/item/weapon/paper/talisman/supply + cultist_name = "Supply Talisman" + cultist_desc = "A multi-use talisman that can create various objects. Intended to increase the cult's strength early on." + invocation = null + uses = 3 + var/list/possible_summons = list( + /datum/cult_supply/tome, + /datum/cult_supply/metal, + /datum/cult_supply/talisman/teleport, + /datum/cult_supply/talisman/emp, + /datum/cult_supply/talisman/stun, + /datum/cult_supply/talisman/veil, + /datum/cult_supply/soulstone, + /datum/cult_supply/construct_shell + ) + +/obj/item/weapon/paper/talisman/supply/invoke(mob/living/user, successfuluse = 1) + var/list/dat = list() + dat += "There are [uses] bloody runes on the parchment.
" + dat += "Please choose the chant to be imbued into the fabric of reality.
" + dat += "


" + for(var/s in possible_summons) + var/datum/cult_supply/S = s + dat += "[initial(S.invocation)] - [initial(S.desc)]
" + var/datum/browser/popup = new(user, "talisman", "", 400, 400) + popup.set_content(dat.Join("")) + popup.open() + return 0 + +/obj/item/weapon/paper/talisman/supply/Topic(href, href_list) + world.log << "[usr], [href], [href_list]" + if(QDELETED(src) || usr.incapacitated() || !in_range(src, usr)) + return + + var/id = href_list["id"] + var/datum/cult_supply/match + + for(var/s in possible_summons) + var/datum/cult_supply/S = s + if(initial(S.id) == id) + match = S + break + + if(!match) + to_chat(usr, "The fabric of reality quivers in agony.") + return + + var/turf/T = get_turf(src) + var/summon_type = initial(match.summon_type) + + + var/atom/movable/AM = new summon_type(T) + if(istype(AM, /obj/item)) + usr.put_in_hands(AM) + + uses-- + if(uses <= 0) + to_chat(usr, "[src] crumbles to dust.") + burn() + +/obj/item/weapon/paper/talisman/supply/weak + cultist_name = "Lesser Supply Talisman" + uses = 2 + +/obj/item/weapon/paper/talisman/supply/weak/Initialize(mapload) + . = ..() + // no runed metal from lesser talismans. + possible_summons -= /datum/cult_supply/metal + +/datum/cult_supply + var/id = "used_popcorn" + var/invocation = "Pla'ceho'lder." + var/desc = "Summons a generic supply item, to aid the cult." + var/summon_type = /obj/item/trash/popcorn // wait this isn't useful + +/datum/cult_supply/tome + id = "arcane_tome" + invocation = "N'ath reth sh'yro eth d'raggathnor!" + desc = "Summons an arcane tome, used to scribe runes." + summon_type = /obj/item/weapon/tome + +/datum/cult_supply/metal + id = "runed_metal" + invocation = "Bar'tea eas!" + desc = "Provides 5 runed metal, which can build a variety of cult structures." + summon_type = /obj/item/stack/sheet/runed_metal/five + +/datum/cult_supply/talisman/teleport + id = "teleport_talisman" + invocation = "Sas'so c'arta forbici!" + desc = "Allows you to move to a selected teleportation rune." + summon_type = /obj/item/weapon/paper/talisman/teleport + +/datum/cult_supply/talisman/emp + id = "emp_talisman" + invocation = "Ta'gh fara'qha fel d'amar det!" + desc = "Allows you to destroy technology in a short range." + summon_type = /obj/item/weapon/paper/talisman/emp + +/datum/cult_supply/talisman/stun + id = "stun_talisman" + invocation = "Fuu ma'jin!" + desc = "Allows you to stun a person by attacking them with the talisman. Does not work on people holding a holy weapon!" + summon_type = /obj/item/weapon/paper/talisman/stun + +/datum/cult_supply/talisman/veil + id = "veil_talisman" + invocation = "Kla'atu barada nikt'o!" + desc = "Two use talisman, first use makes all nearby runes invisible, secnd use reveals nearby hidden runes." + summon_type = /obj/item/weapon/paper/talisman/true_sight + +/datum/cult_supply/soulstone + id = "soulstone" + invocation = "Kal'om neth!" + desc = "Summons a soul stone, used to capture the spirits of dead or dying humans." + summon_type = /obj/item/device/soulstone + +/datum/cult_supply/construct_shell + id = "construct_shell" + invocation = "Daa'ig osk!" + desc = "Summons a construct shell for use with soulstone-captured souls. It is too large to carry on your person." + summon_type = /obj/structure/constructshell + diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 166cb6f528..15b850eb33 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -45,74 +45,6 @@ var/mob/living/carbon/C = user C.apply_damage(10, BRUTE, "head") -//Supply Talisman: Has a few unique effects. Granted only to starter cultists. -/obj/item/weapon/paper/talisman/supply - cultist_name = "Supply Talisman" - cultist_desc = "A multi-use talisman that can create various objects. Intended to increase the cult's strength early on." - invocation = null - uses = 3 - -/obj/item/weapon/paper/talisman/supply/invoke(mob/living/user, successfuluse = 1) - var/dat = "There are [uses] bloody runes on the parchment.
" - dat += "Please choose the chant to be imbued into the fabric of reality.
" - dat += "
" - dat += "N'ath reth sh'yro eth d'raggathnor! - Summons an arcane tome, used to scribe runes and communicate with other cultists.
" - dat += "Bar'tea eas! - Provides 5 runed metal.
" - dat += "Sas'so c'arta forbici! - Allows you to move to a selected teleportation rune.
" - dat += "Ta'gh fara'qha fel d'amar det! - Allows you to destroy technology in a short range.
" - dat += "Fuu ma'jin! - Allows you to stun a person by attacking them with the talisman.
" - dat += "Kla'atu barada nikt'o! - Two use talisman, first use makes all nearby runes invisible, second use reveals nearby hidden runes.
" - dat += "Kal'om neth! - Summons a soul stone, used to capure the spirits of dead or dying humans.
" - dat += "Daa'ig osk! - Summons a construct shell for use with soulstone-captured souls. It is too large to carry on your person.
" - var/datum/browser/popup = new(user, "talisman", "", 400, 400) - popup.set_content(dat) - popup.open() - return 0 - -/obj/item/weapon/paper/talisman/supply/Topic(href, href_list) - if(src) - if(usr.stat || usr.restrained() || !in_range(src, usr)) - return - if(href_list["rune"]) - switch(href_list["rune"]) - if("newtome") - var/obj/item/weapon/tome/T = new(usr) - usr.put_in_hands(T) - if("metal") - if(istype(src, /obj/item/weapon/paper/talisman/supply/weak)) - usr.visible_message("Lesser supply talismans lack the strength to materialize runed metal!") - return - var/obj/item/stack/sheet/runed_metal/R = new(usr,5) - usr.put_in_hands(R) - if("teleport") - var/obj/item/weapon/paper/talisman/teleport/T = new(usr) - usr.put_in_hands(T) - if("emp") - var/obj/item/weapon/paper/talisman/emp/T = new(usr) - usr.put_in_hands(T) - if("runestun") - var/obj/item/weapon/paper/talisman/stun/T = new(usr) - usr.put_in_hands(T) - if("soulstone") - var/obj/item/device/soulstone/T = new(usr) - usr.put_in_hands(T) - if("construct") - new /obj/structure/constructshell(get_turf(usr)) - if("veiling") - var/obj/item/weapon/paper/talisman/true_sight/T = new(usr) - usr.put_in_hands(T) - src.uses-- - if(src.uses <= 0) - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - C.drop_item() - visible_message("[src] crumbles to dust.") - qdel(src) - -/obj/item/weapon/paper/talisman/supply/weak - cultist_name = "Lesser Supply Talisman" - uses = 2 - //Rite of Translocation: Same as rune /obj/item/weapon/paper/talisman/teleport cultist_name = "Talisman of Teleportation" diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 4700f81d82..9657c7d888 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -286,13 +286,16 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ return ..() -/obj/item/stack/sheet/runed_metal/fifty - amount = 50 - /obj/item/stack/sheet/runed_metal/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.runed_metal_recipes return ..() +/obj/item/stack/sheet/runed_metal/fifty + amount = 50 + +/obj/item/stack/sheet/runed_metal/five + amount = 5 + /* * Brass */ diff --git a/tgstation.dme b/tgstation.dme index 5558002155..01889129a2 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -468,6 +468,7 @@ #include "code\game\gamemodes\cult\cult_structures.dm" #include "code\game\gamemodes\cult\ritual.dm" #include "code\game\gamemodes\cult\runes.dm" +#include "code\game\gamemodes\cult\supply.dm" #include "code\game\gamemodes\cult\talisman.dm" #include "code\game\gamemodes\devil\devil.dm" #include "code\game\gamemodes\devil\devil_game_mode.dm" From 42d354f9c871c3e9355a2ae3c74f6cc18834f995 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 15:27:30 -0500 Subject: [PATCH 34/82] cryo pod icon fix --- .../components/unary_devices/cryo.dm | 66 +++++++++++++++---- 1 file changed, 55 insertions(+), 11 deletions(-) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 3a9eb1a028..99db88dfe3 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -1,7 +1,7 @@ /obj/machinery/atmospherics/components/unary/cryo_cell name = "cryo cell" icon = 'icons/obj/cryogenics.dmi' - icon_state = "cell-off" + icon_state = "pod0" density = 1 anchored = 1 obj_integrity = 350 @@ -12,6 +12,7 @@ state_open = FALSE var/autoeject = FALSE var/volume = 100 + var/running_bob_animation = FALSE var/efficiency = 1 var/sleep_factor = 750 @@ -87,17 +88,59 @@ beaker = null /obj/machinery/atmospherics/components/unary/cryo_cell/update_icon() + handle_update_icon() + +/obj/machinery/atmospherics/components/unary/cryo_cell/proc/handle_update_icon() //making another proc to avoid spam in update_icon + overlays.Cut() //empty the overlay proc, just in case + if(panel_open) - icon_state = "cell-o" + icon_state = "pod0-o" else if(state_open) - icon_state = "cell-open" + icon_state = "pod0" else if(on && is_operational()) if(occupant) - icon_state = "cell-occupied" + var/image/pickle = image(occupant.icon, occupant.icon_state) + pickle.overlays = occupant.overlays + pickle.pixel_y = 22 + overlays += pickle + icon_state = "pod1" + var/up = 0 //used to see if we are going up or down, 1 is down, 2 is up + spawn(0) // Without this, the icon update will block. The new thread will die once the occupant leaves. + running_bob_animation = TRUE + while(occupant) + overlays -= "lid1" //have to remove the overlays first, to force an update- remove cloning pod overlay + overlays -= pickle //remove mob overlay + + switch(pickle.pixel_y) //this looks messy as fuck but it works, switch won't call itself twice + + if(23) //inbetween state, for smoothness + switch(up) //this is set later in the switch, to keep track of where the mob is supposed to go + if(2) //2 is up + pickle.pixel_y = 24 //set to highest + + if(1) //1 is down + pickle.pixel_y = 22 //set to lowest + + if(22) //mob is at it's lowest + pickle.pixel_y = 23 //set to inbetween + up = 2 //have to go up + + if(24) //mob is at it's highest + pickle.pixel_y = 23 //set to inbetween + up = 1 //have to go down + + overlays += pickle //re-add the mob to the icon + overlays += "lid1" //re-add the overlay of the pod, they are inside it, not floating + + sleep(7) //don't want to jiggle violently, just slowly bob + return + running_bob_animation = FALSE else - icon_state = "cell-on" + icon_state = "pod1" + overlays += "lid0" //have to remove the overlays first, to force an update- remove cloning pod overlay else - icon_state = "cell-off" + icon_state = "pod0" + overlays += "lid0" //if no occupant, just put the lid overlay on, and ignore the rest /obj/machinery/atmospherics/components/unary/cryo_cell/process() ..() @@ -133,8 +176,8 @@ if(beaker) if(reagent_transfer == 0) // Magically transfer reagents. Because cryo magic. - beaker.reagents.trans_to(occupant, 1, 10 * efficiency) // Transfer reagents, multiplied because cryo magic. - beaker.reagents.reaction(occupant, VAPOR) + beaker.reagents.trans_to(mob_occupant, 1, 10 * efficiency) // Transfer reagents, multiplied because cryo magic. + beaker.reagents.reaction(mob_occupant, VAPOR) air1.gases["o2"][MOLES] -= 2 / efficiency // Lets use gas for this. if(++reagent_transfer >= 10 * efficiency) // Throttle reagent transfer (higher efficiency will transfer the same amount but consume less from the beaker). reagent_transfer = 0 @@ -201,7 +244,7 @@ ..() if(occupant) if(on) - to_chat(user, "Someone's inside [src]!") + to_chat(user, "[occupant] is inside [src]!") else to_chat(user, "You can barely make out a form floating in [src].") else @@ -226,9 +269,10 @@ "You place [I] in [src].") var/reagentlist = pretty_string_from_reagent_list(I.reagents.reagent_list) log_game("[key_name(user)] added an [I] to cyro containing [reagentlist]") + return if(!on && !occupant && !state_open) - if(default_deconstruction_screwdriver(user, "cell-o", "cell-off", I)) + if(default_deconstruction_screwdriver(user, "pod0-o", "pod0", I)) return if(exchange_parts(user, I)) return @@ -317,4 +361,4 @@ return //can't ventcrawl in or out of cryo. /obj/machinery/atmospherics/components/unary/cryo_cell/can_see_pipes() - return 0 //you can't see the pipe network when inside a cryo cell. + return 0 //you can't see the pipe network when inside a cryo cell. \ No newline at end of file From 3ba74333719ad9462850b1aa15a9455411ed305b Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 15:44:23 -0500 Subject: [PATCH 35/82] Delete screen_alert.dmi fix conflict with Cult rework --- icons/mob/screen_alert.dmi | Bin 84140 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/mob/screen_alert.dmi diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi deleted file mode 100644 index 46666cdd5fc8446bf51d51f4051e7d2151d18602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84140 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≪>~J2&Q*kw?38+Gy|v$X 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 From beb89985be1faab95a96d2e53eb1b435d470ef5b Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 15:46:40 -0500 Subject: [PATCH 36/82] icons --- useless.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/useless.txt b/useless.txt index a266fc16c1..a0762389b6 100644 --- a/useless.txt +++ b/useless.txt @@ -1 +1 @@ -no, really \ No newline at end of file +.no, really \ No newline at end of file From ddee13467a18fbc1e576c2c75f653a9b96f46ecb Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 15:52:22 -0500 Subject: [PATCH 37/82] fuck icons --- icons/mob/screen_alert.dmi | Bin 0 -> 100490 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/mob/screen_alert.dmi diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi new file mode 100644 index 0000000000000000000000000000000000000000..13f16aae59ad051a6394129d9b6b4599e98ca5bd GIT binary patch literal 100490 zcmZ^~WmsE5*Df5~T}$zzMT-$eNj*Ju_?1p1JRPt;A@mE8t;MVFLgFJS9arZ2$nN@82ILI-*99x!nT* zKq2ziHT0CT_ONodclES)aRvZigIiNY%$YtV67kmPGqKX)r`zd6p8L&jUG?`9D9Sgg^R1nJ&z2pO zK{@YRYU>OpB4k}m{U3-(m}*+*Ut-c$DJ|V15%(H#8}l@-=o?H7n-vaLoM#FHUyt=r z)M|so$;Zg=dBf9o$rE(`is-F6wA2CTNt6bQo`M_a-G6@wv1+MZxP4$Ma$k4roRQ+d z^ECCm=LzfqM9_>o_o`Vd-^ zmT0d^kD<|u`C+l5q@Pd#OMp_QajKEl#P$y(ugiZ$s&#Y2|9|ex!&mR`EUg@+*3ylazPlDliVIk>`U1X1LXj zb;KLIQddIShB!3Z9Q=4kapvzkvs!|9+#hvmj%8S8ae|FFqrn7~(L?z3wHOX@D2@9W zx2gA}Br=No#RaM%#x@kbZL$oM+OpjksfKUDqRD=AMY{u(_eo@7Qz33y48Z)eoB2n* zr=01I@y{c?5Rszp$O6{&*HH!HKL&!2!@23E)%Uh24E|d0`?h@SR?kWen^w7Zfq+Sm z%v&vxb1*a>RlBlqPgWni`KVC?-5V83vfknwBL+*hyH3KS0FijB$dyQ=?YBl7@)w}3 z-%9~6%0iJyWQ#BS*?6L(t$%yXZ!|Z@QJ)x3#%t|Pku|X$FWEVQtvN86ARH>D(aZ27 zq=1FBs@Ipr))uoWMp5hX3(vrQk1_hdoziZUh^yZ&fQWWNR61Ot>@BnYhLcpd!Z6>f zf!%m~lamG$npXC^NVT4-X*f0FGN6OMa?pYSi#!+D-|6`0UV;VYM)60nk)J%a{?OJ3 z*lAtoqdyo%K%4Jt_Cf2;TY|4G@FMij^UjUu#KHy&tG`ofeZk*qbYMYp- zh-YniVj6OJdix;%TA2wO{(!XQ5`QaxzvbV03Q3#F=QcJmUb33e| z{|1-AX(VG{U?BcIn~jt6$+YbMUuSTC9A(@^_VW3&0FJqQHYFL77|KC#x9p ze%rblqHnXeiOj~RIR>?a6&CJc|0JXKXy1J7o^1S4Tx%@uK zM_a(MP`eM}>*GV>v`@-FHyozGkOp+~O5zU)W4_v=K|9Yn=azGm z?Ga;zAPwh>-cOFa;Kh^OdpDe2Nw`)a`v-V=ISah2T&d$Z2wcB!tis%=SNx_Zz<_Yr%A&x+Wj;sQ4IgBZp2Z1ctMuF%Xo(*x)_i2Eo(7Mg9yj0)`G@zJeAj);=ho&Uti05NkF zSQzAaIGvYhju=c`K@xH*h2q*X@t-n~3yxT384xt_;I^Fn@e>l3FyoyH_~ZSW?u%5+ z<2ai~w?aqE0R6XR5&T18e`VG?*HKLAF+-7&Lo%~Hrfg@6GLe-Z6Yd?%SY3{EuL4)) z%cyo~GLJUvAG&WOQt7LiUxTp5y_uSyl)JZbzeq&D{F8eVyS zB|A7=BOH`#0hjHEd4y)>svDt_#K2J`7@!_D2S@pisQwT21n@^O>c1{dY4W^9FrnKM zIGl+n4xItb)z?$^%on)!nE&3a(GE+kz!~RTu-1GT9AC66sr5|%%hk}+LI!ztu0qukASu)EfL6%Mn%S80!V=n|nPke=Rw4Q%Vb(ld zQmGnn_~;o@(KE^c8i4^b%5Omk0#VVkMIeH3|H#+ z3X+A8Dr6u7+f5~p!lIHtjCzyO2(0!J$t5r<`uJqI$uJ!|?Vw6KnaOAyjD6^kaC{s? zR4o`Kns`!?C+gL}lJ8%b{R_~g$}}niK^6cKDPs+PBiBL`dP5s=;U846R74I8Ieo5k znP)+q2C6wMF3X;-5D@l-#(~D0Y{wTi%5>fA z^~lao@p9`YeoW4_Agg?d)mqSxl%jr+%OyxTcrMo=IVDXvYjk}f z*^q2vd8l`bA$c1x%YlWuB^I zmup1H7LRUfu&Bj6Kow%2#p`MD9RebTE$<$R9cBe)=W zq8hPs$cHs^!kG_a&N&fyhO_7BwbT~kG|e#&NG*Wv0>^HfqN-nf|4YB>LHpUMh_{PP z@lS8>-{+EOBT{X3ik|?_rUFJe+xReWT62!j*Ejd#HRL$;PX;s;fz^CW|5;t1RVSzS zi8-j}vVyy5v`E{8H%ou8(*oVzQ{Uxe6{rjgtEyfTkSH@!vV+|#XHVGZ>v?l}7xWuG zYMv6U+k&G$Z?5wB!vDTlgG6ka!v8?%S&fZ9S_UqkA@+fk!{C|z>@&Kn8}gW)OlJzT zv7Kf>t$xA%ekGftSuC5l6>_Op^!@WUkiJZOv^juJR^L=jl^vAa^)Vckx=UcBHhXc3wgst=Ss zq5_z?eo6wD@m+{)d`A^KQ+!{vQcn(C-Vyt=qqn7JN$P|Th1`pmz~EcbX02i(qLPaJ zH%Fv^&BtOTa^;KIt!e+n@I4^A%2o|({zv5>B6#%e17%S!vnkD&%cWuQWPk17M=Mf;tK)kSk!>v)^E^o$3 zGp@pJFu5pO%b+I2A(C;PJbKK#V@>lG!M$N$bsCTxO7#5ErZtJ550CBWa;W;^4tVAr@0uX4Z(13 zBS@#b(J(A3evFk+ipr9bjT>#$a;p65Tmgs`-xE9n0YTSeOC#=GSd$04PS5<$(9D4A?YH=sGB*wNt zQYtcjvjiP1JSi5~bToHQ{@- zTm8+io)5o?`S|z+^DF`7nbS#a>4U+75spZ960M12lPt{uKAgfRPwI#l0AcJIH(pao zAPHq5PSkW(dcr^?MJ0w~Ei5CZYk`J*ud&e?P{jyP0c{EO^Ry7YHBTKMXc^+|0aga(4N+ zO!5ksE6iFWt}j#hg?~-T{l@BqpwHxB-m z)tzkR@Wc&t47cZZCda=l*u4vOxt-4pyOk})k3lK(u6&=>f7doCB9#jC6Rzd#vwNMW z{i8HDkR>lQ(T9>M=Or6AQIw>@+OF#OSVh~jFaj`?j0=f>3pZ2ORDvmIC6-8amyw|T z+#^q$m3^s$J$%15i5w!+q+8@_ggQE6jWYVjB1;yRcPQpeTGTAu8pw{fgOLRvLFZ0 z{6pfAdPWq(?%2^v`zsqHBY_rC`RAn@KgX+_lHE{Hh(lCXDhNU{1Qn%*@Po8dJBSe#J_*otu>CxYzFV#2y8#haCU>{{1_u;pg$(!U?c@`rl;3 zv3*i9Rdh{5(5E!8~3?I{X=wNI4Bpg5xW&O#y2pKLj3` z0zrD%VLj!Dl(o&fFo{PjMfTTu<8&&EeSsE>=%yg9xm9ZMQyR;ZVHq<^Zz)BSX-yu# z)|kCpEb8f&9}DIn@3)9IJ5ZgE3^5ws-wx@rujXJC)RHGQm$gp~p1DPvX#n1v9AYip zwzo0T7coN{X8O+sNWO5q_a}AeeJy7Wh?X{H&t8qAOQUbm@rvaT>0>U!)aS_qp*7^m z0^L#*%aOPjA2_!*dTM&!3a>_`#kwDSZ(hFH&~b+%&WF@N2ByT{vNSZfo&pnIOhT~n zs}9`UKkuY+WwWQ8mY10^#Db_t`aPS1GBz5#drtvNW5Z#>q}ly!PrY4@Y#SrYaF~)j zHO)CbVGq4xhFRqR%>)eeECjBN)(X^k62tPoMCVqwWe0=T8>YC`+kx_0#pN zZ_)BiYA++#BO>LKQ3MLtMhgm|l9-;pFZ>;I(SYNnm;B%@77nKW?C8NZ*DvjnB4I8) z-@koHkd4}V@~W2zTcijU>u8VO?a8}3lzOD-TwH$K4(NW`oNl-uyw7T_oH_hLkYj#L zFi7)(^|5mp->d!Q+In$M>Tf+cZXKm_?vEkdot>SCeLVk6@@JxFO?7pw)jG{m=a)vG z%#?Lg^uh@`@}eOPx9&u-_HSAi8d=2KJCu?P43?5`fEq(lxC7Fyz4Q8PXS z0H%&+|6JxK0WlsEQ8yAk&|cOEh&^{YvVzagV|$)N|0wC=7Sc}fSUwgUyt%p1Z8{^` z3~xF+`uJzN%ISGlTo}yM2)kyvUJITaxQ(iI-MHfhOs#GVBW&L@piO`G7*^3~CmT%s zgMIY9(5p-K52Kl1rl$9Vpyp04hgFg2ved3MfCwt`t)B+(kx&DIoZSR}F#1l3c#IY3 z%E3z+`S|%dzAFcO#m4%_S*zr(kq zLTY00hFjFtCox%#LDtmbXnc5G@O5y4H_gbp;J7A5d)GUWwV{_?Y$}h+Bt31*BsMY+Z`T6w& zD&z|fynbc(pi`P+HFEVMQLfva$PRDiC&mtP4t*aXp4B|0>&RsB=T!2rt?BC+O5=-u zV~q6l)FB3qe%n*b-H%UOgoq-UIA&I}%~9Q74xV0ro0 zFk<^b6vHbFY#6c&wLzLz$lJ_O6oRGO(={9sqFxB|v!(~KrD(x2NZuog%n;CHX&0kWH zwor(V$LX=&tTUzKadYn|gPX;O^QQIth1v#a-_ACW$k4pmir-hmwClEY;Y5~% zN)d~hyR%{kICgYa%PZ5CjV~onKi-?mH3!`1iA+L`C5+k#q}GwlFQ9f?&_=28OLpsQ zq7le}MsLVrWMNTMW-zn*J21=(V{yG1@tOdZjF&O9`S-< zwqzK)RuC}w6X`_Hgz^vWRomoW-2H8`0=#;z8L zG6VR9jA5n>pECOO`C;cGE!JxjZLOlOqH1_8FMB-+=$wJ5I3R%3ZzHIyCmGFpKvpy* zrpw9egJ>6LLiz$N5n;(h?MNh{l6L!Rya0T+Fo_!9FxT6-|u3&%ka= zU>7pAd8Gk$4w$2myN@TgYoOI!Mq?2$^;f2s?+-Fg_7295>z|1k*Trq;8R{MN^N<{+ zGiP(ySIG}}pEajZXbrt>HSslN51&g>7vrKGVeuM-gE*27XeX!#uq(FJ^GU1zR}#fr zfpfGtk?e-X}f@A&=87@d9eXzp(yvc4Rzoe@*5brR!_5W?uOP8zs+ z`JFRmgHLfA5^qedv&VDK|I|f>lq*G#- zUy;Q)OP=;SbOEDpg@TJF>c1oB)a-QAoWgfgK2O%a_&V$h6Z$mXLi zo=?W6E*WzTN7lH91@t&C%(;_YN(~AF-=tv!O!Y`EBaj(^ z@4CfNXrtEi_)Uz|e)=y6d3-@Uiv;OFc+4ykl3C$$iAeYDZ;qOtJM}tqe;rM0>nRN` zJCXkG@6h@+PwT>6`F#!8=;Zr z>Cwk-I)ZDh_A|L{cKm`Yp=EbnD(4^7S4430DARxre~+;w&A+imh$|-WB)6LH0Gm9S z#i|j9{X-Ae=dhz$zvZ(zSogOkPtZaD)59Sh8tD4RLP&%g-YBHO?sq)Fz#l?a+>r;% zZi07@7L#aJJv;Yy1%{FfJPR*rh^MddV;5u4Hi!xe@dlT8U8zSfEMTZ{d4%B6N4-as z4?S--djceOyof_b+K4?&Nm!-`?a&8;AaNjr81RL$?5hz>H1$xPYPS9;?P$wG*0aw?}na+4tK> z<_Q}AxyC#~t6*P<)3{*w(j??FY8_T(ErVcH=1d2SpZE75_0b|(>OU)q5*#`G48Qfv9p$fPURX=N(EJyi3LDJ+nJ2W~U*7io zvW8r=OU(L>Zt*)?dEbzu-tA7R*z`lg`VPi!^5FKn#axbZ@6<>$6V@+`QR+{2t8@wA zi#3%ZQtxBjr;MO0@w!m%*4wzD$$E^k>)15hM+_fsYlM9K%ft0cE{-lcC~^`>Ib)SF zdN8gx!lkDKPPSc39$XnNU@I)S)4UQ$z6NnkQ+f`>Y*=H0zj2Ge@RRqA1?tLV^WP*q z_y*lug`ib3hxy+Uhdw>#O}cj&5`Lg9MrEXM+l~Wzk28U?z0==4vUh5Ag7O%R5N!;q=10(yl3BI z2EfQcUdYBD$g59aTGWU|bI#MmJLqPrP$&WdHrssGfPC0q{BL~4#@;6E_Z2c47$PWm zN)Ygrbdi9Rf|>A0-g?XB!o)guhm}NnMIQl-BftQSPV$^X(0+-1Q%vE)+G>|U9St0) zfV>5awf=SP?O3>)giMp@68CGuQXr=^m)f>I z#2S=CvHR7W9LM=&@1u+Gl!@j7;3*Kld)j`ZMP)>9Jayb{HA{x9R}=cIL&O_>Zzb+8kd$EHdv`!=xTzPkLxw|V={FHq0 z9JGLmKz-dwCdh-%4TgwV(CE+laBb8Q5mx6P8MC~YN5wx3S)!4%GSGLiad3I!5+B3u zhRy>SV>DG^Uqtl!eLlHFvIXkPD+|PIp2R{^tq4bhU@^D9RGDt%F8t#=-+d{VtbY}j z4MYEDu!e;^q|Yc`rWP`X@q0nyNr71YjFq=Agz?o}0aXxMLJHKZ!E`xoWBkbe7e6+l z$nrAJqw`xc1{;@Bru=#H2tImLWP`0W#$2PV^+XsC|_mc%5_`0F2I-@?XQnQh#W07WBAWZ0yu*6!`0pu&{{IYV z71UdcQi#$oVrdCVb`T#p67%>xo8KP-`9L=9#Ouk!#33JQje(IJ7c8?g<=5s~21>S~U&1e23aHPPjGb#l0F zn<;@Z5iVNEu*QKww1pz*^M4H6pMZq_%?0>xWtcXqY`-1C(WL#FyvDGPpa{&!y+j$9 z6m!UUg28%`@(ybmmgCb$9_t8xdqgZ-UpNoM46ao6;AUk7a#n?~J{nwfA{LbRCcNQYFtZhSrrg?-*a@T*I8M%`Ex$s#W<_Z&h=@2e>(D?@h>{EREnIqKfzCT_HM_0FjS8_@r!q_iXI+#pR z8g@>+WQyf9iGhyE_`rr80X~Znh{;>Qb_#ywCQRU_RnukUbrYLnnyL>}$ zuOuV<;o%`X+M)^CGQ>j+zpH*J#T*tvQbHlkbr};4E((#(> z;&4V*PD+|ko~8(7!w>Tx8F9AwokRo)pAB8?$@lc<}pB* zF=;?zl~dhqgD>W#usj2yA*b7_BGLjyXhbCXAZMNKwLevgAO;v zj-EG3rkCzmvk@zDmZ*`Fcrf<#6mkDP9imAkCgiFuI+)>}d&hg>y#A^rPJ{1AylzXv z6B@DR5;u-lpJ$JT_9qg3Sz3WFU@WS+3DI1*A65kX#K;)4UV|D*vYBHG=Z=&WJr7@9 zo@}e`X+%OIb_{kr4~3Eq=jMj!;MyiHyE4ze{-8?*^e%1C&Oup8s>{?=nF1Q3r$G`Z17Ihy|;u#k(HnH9l|S(@AogD-eewUXGIm1D^Lm<%o!y z1*I@GKIpdEywNfC4`zv62n6W~!{5%uWf3GpTILo~ zwU;T^ATc7`=gSbI89?pkTfz9eUhRO|a-pZM|9h#O;v#kjQ4W`j{`Ie#YrD#k6gbm3 z8w2j`&0p{GLD3W#1&gml@pRL>Z2md|S1F7JWAxGZtXcke-uOC#2l}97yeGySVd;aH7NCJMxR0%9$XXnFaKIG|7Nn#V|$v+jS zoJDRys);cgCF(rjTlslcmPP}0uK%bgfi)ZWH7Oh)Hc-JS=2|FH1WWlPRfxu7sbDH| zlsW?TJkq}O7xVsMO+!PIP4igWw(*S+iDFJDu5EJ zRask0R0pOp^Z$$1SD<8dFzIdtNh@CLJVmP$x~O2i1m02>5@ueLKSn69i)zs9?`=JU zM=pHWYVvMR7EjbA*8ERuukIet!7jKR=+C&^!$uo;Nn~`P?TD4IEhuW+htKN-VX!vPt3K&q$)Dr{M#aO=xl$&= zY9!~cc~&6odDRq%)D@4{L9pA{8;&Z-p>FW_*@JvVH|E0JoUwzWWB6@-@JQ_e+!!Xo@;=h;K-GWV+6DH7nIk(lP@-0^3tBBOVh45=~&MfYEAwf03Rpb zv7`DY9qa4sUmaK1k61?>U8?M$Xqw_Fi%8Bx)o^&R?eGHXzCKrW_gJ3rz5Uxg$V(K5 zs@#7)>5F@KwLSX|^_BFY16YczHef)LNLSWz$)in%{!mxaZ6$hZFy1;XEpX)DcyK7V z_nN0AcfoMK+Q9clpiMD?i(gm4Z*!mP3z`eJem_)N!N4ZDZ@!s9RsH~YNb93YNY0QYqsJAj* z5AuzClzGo339mkH{sAN4nJR0VlG)vPUzlDZ#yJN$F5reKAL8$eXA-B7{79e?tE{Oh zZEVzP&L@JkRRwB(JFOrHHbk03NQAj)HhWEq#*To+BQh&`JNdIqK@^ zpSA*RY3W+I-QJ*Gh_TbKg*M4)BMeUUQD9$T24G{o}(RFWaD9aBKnNnTWJ zmDVk5C5@2HUS|&RNKxA64_rsSzSNOjWYiT89(%(=3z8TmH;vWo=Mfpnbx4vcoEPd~ zMjMeWq_8X2PF8|xK+DO&wOLa-#_w5az{5KlS_ahX)E~XPyi}3a-!WGS&qA!SQ3QxE zl_;$zG`HDE9L{*PG)2dAu{@$uc*iq}2DDh_){3-}!nIm)$rAXA4)8V5*u;FSW&V6* zE|w&LI669V9e@0#?S5FLQ{muzvJE{fNc5Kv=l{A%+UM$ejy&338YQIYO5;m>IC-Ar z7a1Y+<3i$DE>cKtAhw4r{cXp`8v*y8e_d+7G@3Y`uSVSmH9;$C z%$OCo3C0e9GjGz_heIFF7vX%x0nxTx60clYt`s;!{P;coxcx_Zs6%R(MEa*MfaAk9 zE1^KT4@A4jFo~EzUB1G#U4!;Dl$HD+qfiEkgtk( zHAVQnkVE%a{x1CU%B*J|7aRO1ZVDVyFDg>HGKinT{mx|Ft9;&Q3b2W@oA=`O>CNTy zTVzlH#82#g=WpF$G%seM zNSKCyK1@JwNv;YQXHGnjly-v$~Aoz6w>-$V~G?2=tPoH!tOfPQ_lIp(25P|`4VEDF>6wKl6 z(0M|2#EM|DpU77jOYm!`TCSNP7}NuR|79H`EYOJnIv@#H{>$}dQOC$~3t>e%>k)!e zhc#|xf=PSkR6(i0bOg>V#V$w7`k5fYzEf<{#~gG}k~4wvo~&!~(`J^sOLL{=muI$!jXws0|2m66ye_iXrjFBPD*;LyfP@wR4H+cy(4jH{95eYZnTU)7Cpnu%5|N8{8qDlQ_+Rl0{7bHo8MmTf;8ZtMxx4#z`NBcix zsKNP@o~`lVDBncKpLVG>M+NU*$s=;1&p9BnrUoaga>osKMXHxpzmQvg7mwX54Y@Gn zrc=aXW+VF&Gp6U&j}`cXq=$p4-yGH!t{B7?yWchkZYp%p*;mXVI)L2fh7jhXM#VGJYd)!?ZZ!O`lYF8qx{{4SP1-Tdfne$AA@SQX-Cjj|^U4cBR+ zz}sHkavxaxH)mnE-0sH%y2K=NkuPk7Ssq$X-6h+ZD?Cr@%$A?@F9l8l6_A-Lu&f#p zgIyAi^1|}An~^2q#k#z=N>i{E$S@UF(ZVtU%&W{O;Mi9^WM@-J|1UwQUkE6_R#BYG zRVht^Tx0&#EPFzUrm6QgKXxs1Ir42!FihOU^%Nifg!Z$e$xI|X~iP@KCjM*u|8sJ5cd zW7u95&~`_b3SnUk@f8VL4qDCU2Z<^YM@cgZQv>$%VVpEY+wocTtdmsY}S|{f^-IsD*Xrkcfwo z4EPH~`%X#&#z-`*D90-W$mBM~?n6Mny(R?yRI}{3T`(bIWcu)Mb7blAnp7PdejcP8 z#73fpF;LNPWp1@wAYjFH!{jq*hFIkFw({XkZ)J>_kAuIs!u$#E&@zo|FwW?lK1J|) zxWw$aAW}}m?kPCH;a%swZ!7;Uf@o;arMbIw|PHCbjGc}Ryb4lGyL&)n~W)PZzTVBR-NtK6rR+@+@RwsSa@6SIqi(SR~ltR5Nj6 zWGgdeDle$1OG`>#Sx}}#74>f1`(=et)F2*Ee$br})ytP&wRF;$us_=$w@(@Av*^ES7DIN9*C@vrZI^eN`H4S$XrR#)BrGas4d zMk_@2M!LY;x9{Ysu@P>SF1#&YTWH1)ewdY-n6~SW9T?}Q+J0eqyQ*Kf(jrFm+24^WC@M7b)f%n6l~iGzRmrS#*Dnj*7rwI{J^A{sIY_6~tgF zD3qjel@(Q_9~VEt6$Xh3zdn(c;GuK?l7an5Dlq04Db?}pcNd5I`&#B>r{l_(D_ z2r2l3GZz2lXc#uboz=d8+kwod%LpoDJUs;*Y1u-A5cCEu?PW6B!N+Zlx7x{+hCDCa z<#_u#n5p0!`LtlKmLRd!bOv;)$K-H&xxvkntn;rAIbk!`rKIY z-LEe4o3Pc?Tk(JYpTut>CFVWC#znQ52kUBUTPjnfRmSov)bqY|)J7c^1WVem{izaNkOF`|msOUEqD2I^^=_#QJY5q4ASFf#Z&RFf23>)>ct zY@V!Y=+_jOb^YsWCGYPckw&E~+YjfNV69jhnAeQOSj z7SCoG?%r5n3e0Crd>t={`?!SAWmplvUP|SUHrH62!{<_t)i}=@dfrRj%Se|WDFDdL z!&7sE?d-yfiii^E=rBcX+E#aV2m}Qwlu|zRh!#QAvVINvyi@o*o2(()&Z@Vp z5GkEv)uT!JU-4ZNp|hm|VvG}P5OYSNN#s-KdNHw`g@7bX2!J<)e9K$8Kxo%q^s5xp z;+rX>&QCh_Z`IYi#z_WvTv4AjEooW6V+G0}L3|XQ-K|8QH~OhSK^O(fOFiqCdW_{8 z2AN8$Gxx)y@3F}GOk8^Akuf!ZPo7fHChG|ZbUHZS)l@VcGI8BHyVgw4?iRi8*PkE% z-#bcBHWvGe^FmW&t0dJW`oG+-I2a3( zTKBoCM5RZf^bX4j{#tEH=-~f6om@!m?Qn*rDr!F0N^4SYsej^yiqE zWGV;7^89t2ZVUAqfnO~JV{#z5$Ge!U|3Vz7t1PE+?U?CgQLIQ)OV`ol8$2I=Y)<@0cNXJcc-&RJeO!F#XN?+`Cu zAn)U2Yhz%bP~J(x2UUaT=2Az(?azGi={(pqB~SxV1JQ5P(5BFpiNeR?wk&@5)cyRx z5KFX0`3wJV)Fes+p&>3_N5hLhHb_R#tvsh69l$n}L;sL4_l%q?qi!u9^IPH`M@R9z zdQXrzqXmKofUBxvc6RkTM^6;q>PT!iHCQ7pe&it|OD;Rd8{HIdjlH_@vz#d2pZ?K+ z*Y&=xF!(}|S5lJ2rJ~GULCC09pO4RJFytV|TO5{*NT%z6KAy2t)n5em>4i!CKIDZ- z{?bFroyOD?K(6g0D#Rcd1d#tA9Ga(R(NTO6F=@jfGRV~cC4rQNexdpSq}yni`|YbS z+nNzSyMZdh~9*Ewf!~{0=-8mXau{#&nwu$0{jg^_(Z+#^DGoFQA z^@e|D^Fsi1LGYruEKkGhjBDYJLW9Hh=vGL~d$E^18T0ijT{<9=L|6w^ClT(k3P9)# zDfVXtOnK(^m&1>ha4hKAYww zr3-lVmcxE_I=Q6$EFiAxX|=6ec0P<5;lM5Tj$&u_oso`D-{}A^+gQ`h ziF>A|)MXFory#| z^Y|yA`;8af?%-iQX1nv{cXxLjmWe}U!<+qj5kCBVw6x&?;B}Y^wec-}APh9ggIomR z-)vy`%Z{=d-<_E1!wQ(_Z}p|DMDgbRN^1j%kb1l0fc;rYD9V1<178~_9jDO!O+HNr z>{gA^U1OK87eC+`W1jP-;;yn@KUw{J{Bez&7$ z>03Db4tCCQLMoRDW7>}O!Pky?NdBocFSvs3M7v6+w{BR|XSflP*ed9uZ!Z$GKKkRk znEFechMnvv8tClQtJ!1)xLkt^EFj^P*R+Foc;k0- z{}E*zS>3p^V4u&=hK84k6L9P@n@Sj7?H8pA&o~b~33(B}wXBM!Apgo0R~SHz_J64Q%BZ-xXl>lx-5rX% zQ?x*l;_gzQxVsm3cemp1gG=#Jq`14g3^U)n_pbZn`!mU8B`Y~6`#js8y`w@^&+mvB z6HGjxbGd7=RT^@s)<#Ble0QY8xnZ^MnqlDsCT=W1S_j#3i3$!Be7d#+&2X4J8X*q! z%z*}fM8Q`vMpm4ZQz+gl!KdwIGMz-5l^lcVARE#9Agp!Lo64Y%*!Pn34nfG&U97() zh%hoDO0J-Yrn5=XBgn&?pYE!SHzj$P?}8s1f?QPddnRrlDM7jWOXJ|pOHah{A4>jH z0G~<=$hh8LJ@bO%XJGPt2I&)O;FTI})*3U@To2T84H*{;;%zU{)B+A46Wpd^<#|vm z%J%UEw_5EFAPJTQ{sx+zj(_zQv1-%uU8e6OYIj@&#)mAX)#C{3!Q_&v)SU3nG;6`I zl8Bb%)=w~5eQ;;_(!H~+akFuW za>-{W_C6}%{MnZys6mcEedD4r;RHnKobAvZp?b^dfa*G8E5^c!E{;CW^K=nNawM=n z?0g_K5-sGcP2|t986Dm2BE*9nQ;fq;dHL=WB49CS>Z?TaQC#xA=n_8$Df^=7623sCF0YT9g z&O2~(A5S4r;^RKVXugp`&weYy;@+I|B3$~QK{HGUGFUM(BBx*(e{12~pACA`ajN(M zV?{qooUYaKT6JY%gpD=|n9~?y4Mn^@lr$5=73FY&b)JR3>4kTXN)0itv4!=8=HSF$ zpz-w9-|b5@vw?MMh1)Uw_G_=w1Xb@`xs~_)C(P7{9K^U~nC{EfpE>tx+=0#F2fO2xK{N_b zG`rVpt^m>{vYp!}atOj~*F9Ho%zQ*NW9>HuKRa%ZtpvR|VPO4~g@&vnm)DwW;j*rQ z-9c!!0vE&l@mn-BgiR$nV84*KJOtldf98Mpda0*m3f~XSoW6)&M(f>rN>IsQGvplX z@-k6?{<{yJu%_KNhd%0n&V6O!Ke~iBh7z43ZZeuCkfCk#!bw6bgJz!)M!3(Ok)383 zH$vn9%mS5(^3gf&q1nW9cf*7(RxLu*zrJOClKh^fdwvZ{Uk{`M2U;{kJwliP>b#0@ zZIO?z;vDEWJu>Lv@6o}$fbxrncnZ*>y=vJUt+5PC;Ggz|JQLYRwsNeY z3;oba`6a$0e??7s2_`UqdI|kzcu73AGrH@&4~>Du#ttsm9eYM^V@*Wap4S#`dW->6 zGhYti&v1^j$WYl0RU8K`FaF^k3JnZ~;6iZzW-apPrissu%4@-r_LnkXVc&;qFp_?q zcCT@RQ>Uswn(V8}m>9)uf%;If^rfYh@I@=Cxl1xhS$OCAcQjV=v+x>tAB_^hOi)WM`k`7 z-qpZ^ezvRfWxn-yc>p9QJY3QgQ{>yJfx}zp`rU-t_fMm384b}4>5VL_lS{A!Yvhuh z6=W4bd#BPCXug)-K?@t2Hk} zJKYu9gd)OgFR|`@Tr}5pH&@GGVOa-Rner0M=F)Wr7 zu?*h@8qIk>w#Uy9blTaK67cJA`cL~vlA#FyY87=vRci*)-P%7%c5(1I%n?1rOFNPr zluN6sVnTwZ2S-OKnVIr#ZaiIGU6A-_lk@Ip$iS62vE7p1>$}7hlB@xsEJ!_Y1tAtnG?nD#2*^~`>hAo@goHAzUG4AXjY++bsG1LoA!`|)$&Q6K(jp&>M z#vQ#WLefzL#;>1=t3x)t!+W_x?h}(obGuX1VTtF=dN4lxnB*6OuFIme!Z1YV+d&Yd zi7dTXAN|`E``?nlfYT53y@aIllHvN~zi|*xsLuq@lUD2yCn|()(N+_((jfaLmKm2t zJ)pn*rv~+(F86j4eq8-i3ad+Q__zk2dmo?5yTen}!k0{pt@1F$n9OA{d8fQEC+Fsp zw$`y}7(>V!e-k+jFHP6}NgYCFYSU#fBR(hO{1p<1Pc>VFQF3pdgH5!lHH z=z;hfaq*{}i`X_~c|$O49nsQ7IIfE$0h1^f=jWxpy@ujji;Jbqfqx$3o1y5ZRF!~G zkZEvn@l2w(#RD8f(I9^-`6PK`5MqaY(eNtr7DDWa_}^kY+X*4^B z{S!;{rEpArfFH53%^8}%`8;I#yZ4W6OWH;b^nMADRg7>u*FOY)em3S})e&-+>&NnGJ9C(lJ3=Cek<(hrK3{#w0(WBXd@GM(1Qo zus0A-IvpZ`bk1kWMB z=9}LA`N*K6iZwAdHXaa&QsMmHXC<8YJ*Gh)mRXDG{Y8+e|Yhi>skO$wmV>s+8 zTt9fH14in>SJMv)6SEr|PAUh}6AiPQwmCTM#yf#W>SpH@MwCBcx0nN$Yktlx>9eT! z6I4OAfAG(_Um@obW3Tr*w}w#Y6gQmsD!MyWi0gvhf*7Y1zG6Frp`-X+@Gl!ql+GqS zN9^)yBJ3l@coK&#^DV%KHA)QzqBf+Q>N#aPTsv%KNLwexDp}4gEh@V37AStvdx-=- z0dODCT7;jUWgJ?udj6^JF5!J({CYee`OxK9_G&#L;Dia5|2cM?Zrt=Ey8XP>A#n7aDboky<`8;w@J4anubb9 z)@qF$!((fHp1@QXV=(d)dZU%aXygx?q)$);d8>`c!F5oW{01`=(Us}pcrhz^Dr zkNm$Eiv{~APa;qG-+q`{un>5;6BHfj{R*F3T;#HN>J9chpLvh43mOTz!LRvHILj)r z9YU&tSDAwOTVr8K)%$Iyl})lvcp=7|jv(sKpQIzGpNN}~nLo94;^!r-vPAw3PfNmh zxr%)kn9dcvaHpdgg(3d+>$S{**}r3C0*TY^rkkIkblk&Xj`~jlDz~k7QMHn^FZ8Ht zY^4SBK;N9m5Fvb48fFicxSd!eLTC-#oxlhz10sPAHe6Vy1FK&rzdf$5&Eh z0rF;u`A5=LTg*&|d#}s}nIJSQJ=jiHvj#-DthhtT0|HYf<M5D3*e&^)ujqZrb zyY$mQwHu*O8DYX^TSJ$Pv2%3kv$u`ReQ?v=T<;Ffco}dKdXLdaHFV{Cw19c+m%=tg zyrb5gTJX8qRvW(}IE1B{mLj>-N&L2U#Us2wf<}Mu3|11{xHNsI3~|d0Ll;ClEgW3Z z&T_Jc7mtknanTeK(bCjqZTh`M#tOQ|W#P90S@x5I&uWJ(mq1qf;m)1bwugdSu>SG5 zC}P$bBw?|5eJmn*x6-5G`S!b6M!I2h(wD;bQswDhL9k-6NzN-*t}Mkc`#f`- z630GYqw9)2Bf@zH3+Jmq0x?Gg8g6wKTcbJ=hPaoSdgwzow?bt?W158LlSRtH(6ciOXwOY zcPqSLtTFXZ$K0RQZXx-fG&Kgd#0Hw(h+VFZVLhAguAvQhF1&M41rt%3pt-RYEd)X? z-8#_{IGS$RP0fhg6MSxn*;@2$V`vGhTvuC4`}6|0{y2f0hb!6M?pDZtTPVu>fDW|b zeQ_-O|H8~)v!d`RySC9--c$B#id?HNloEa&+?QQKXaWaza5Y_kYv4;}0>qflaib_c zDpA2lRolRncxKcK)j!l%rQUji3}>0=N^FbRlY&z_(29)grB1@?V{1SEf#NzXRa*WM zek~`&S(|wMH7~R!B(Z}l-!1!c^6*|D7(erdYy8GJ>2M{qr55(dGm2SC9(#MJ5-jnw zB`TV5rt%EdeB3H`yiB3ji=`)SBW#o+;^g0nAcw^;&1jsC|FV-~c@!zgiM*?l=f{I~ zp5)_*lb9{ZjT{+F&1Gt#y$($ZJ2u8|tlw_+V|m%`M_+>$KtgfJu1!Do2lOOIV4-|s zw@SXSQ=#^+{>OrA*Wi{ScFHaEu-JPlf398%Ye$JR)ci_KR9?KBh2twaBC>kN#dv{b z;5ct^DRJw8+nUSW`J!OF#;7d<{cE0Q9`Ma6USbp1x#pUKAl7wQ0;GB7(#CiPEwvdz zR+Px$BoH1wkU3abzo%4lmx}}m(9x5?M?f2Y1mB+LMZu8NI={BR`jK>27luiLM!FEJyhpi2zO(E>ku_Q$e^(}PW z0JW)v^^UnR=(Q2MqHXAr0W0E?v5!>7$&0Z#V=$55sNQ69+O7PHRl0H(jA%UM=^GGe z#h@!=fq(PBYh9-Eg`LnKuq-r)?~d}#U%teNyH#Ps{a7VkV(GcE7&N~{J?2!4G|}`j zOc|kWoq;`@^ZWh6W)glN`BL}&!f?{i*bmWg6G7McQ~k8vmbHY_VmJn-FI5~yRyYYh zH|d$HnSB%385ShI$IG>+x>Vxum*Q<^;FSmhNLP-M8Q~Q z#9ylkccmoUHoP~j8++AS>2|ucK98*HYgO>IO*Cl;UA5ks-?o87*(W2qs;4=L9GEYM zg$lsBd&<>rmk}ch9PujNW0edOjUd``Q94pUGD~3|QqYg-5zuClp@)#)cbngql*b!T zz0KKYjnRkGhaVq}4a9;r{C}q-afta;X(EwXU+8V&p27~HrV-h>BSO9+r2>L;m2WKH zE>RfIt|d}nR0P1S2sh?CqiOAg8gaU3E_S(3`tJd^-djE>DjrT<8k=#Cyx^5#6C;kkB3?8C@Q;*Ymz@8GC zCeT5?c}J9#;EPcuobQ;YFYg=qv@C$s!)@}{rrC!~ty^a){=BXviCdOEysSWSCeme# zOZ!88c56EwhWD+=QYUF9)QQ#_(tU)GD^6MU5E4`Vq$x8RAiSOaj@`>CZpl@{={==2 zl#*JZxyqPnd_+oWr!|cyo&`a(C%!9^)QcT!)@~I(KLIS|_cWKG- z>gtMHRnP?oPKrtbV7vPDh!<=^2!7`P^9N`L`NqAAC5}>J2Ug&kz#GF8lXEb7{RzPE z7e5frC%nNRpP~;%^;j8zOE}q)ki>fV^#+WnGw8rLy$K>)vdP z^d;6!jgR}}fX|Nsm+kBQf3LS=Ir;_9{9bEbo%&yM`+>j`j#O6}caQ4g`^s0S z*E8K#h0@Sav5r{H8^8y6W@k~Kz#R~Eo|%6%D_`V$ZO!x?{)X?L4UrxE%;R3+MOnz5 zGS1FBtmO1#2I@ulH6k>0Z&8UeXdGxkJeba^qw_oY?o_h)j&CG z&T6hxbl!$%*2xct!lR~<`-u-PEsk2)2M)?}^vyH`c0@wPI`rRADZF>2NOCYrM;3op zsp7#IGERGR6&T^MJKoY%au5}_Wk~diA0J6u zHTDnT1-Dw;Tk@JJ@HdiC z4XWGMXahWf0=;wkQ#;W%uE%f5w7jqZblQn-69llCm;vZ2Ov+&R*_+?d+%FvF+ybdagM?KSSqt5pm?Phyg$JH!lOp9rZaILRgw=U)(p&x&!MM6fMLYL`(qZ{p}_ zpeg5DNZZ_4@dr>m+RN>}W+Gfmuv6kG&%ddi>Be$Qqd#_+;8_k3UPM~;Po=!|=RUkO^Nv>sgu4U3 z6#pZL9TCZ)hARkE2p}z_1X-4KXy zSay6rV2ie+B%2xV1NF;P^(~%GI}4KaCnv~vW0=n5*xd2bauNj9b^Qxpf`(@7`D_&( za4JTTxaHU}E+Z) zV1REVFLUtn{?wODE=C`#94ac?fV4uE_{FoQHg=qrL8$^`Q*t@S+TT#zyFwDnI!hKq z*J}CQEG&x=VlSlYvdMXR@*6i0+Joh@l+T{qx_M(^<^7_Mj6SXoC*N(MLKw zpxO`Cmtx+tEJZkms(bDnxuAH6K zEcHu^S_P;z)66zKGvFF|&aHNz)&Y}iZDC5sYqxp*x%j~^njDILJfGbWCikH=wf}am z)cP=7$4u3Kd0Cg+OFRpvRbgt_Wi!f0HdT_>?uA5BkB*K;`jkYB1*=sNv6fbPi%%Ad4()DIEx?94tl~{IXLp) zXE-w~-#MQrdz-f!5{>vL1A1Lt6B(}+(yRH#>2rN~ejG)4$OSrjc{MOvoIN;KXkpK1 zN*53jimau17aNawb-KNcb_oYX&l1JE=W_EGUN`xdeo|1)94bSJR*)>7uVvv>i=Si5 z#nAsT&2qaJPvZ;Q2Rxj>u29KGsT!L}hG$sZ$s59UrVyQYI9(L-zM;~nP*w-Cd-Qab ztH~P^sb4owwkY=Yni7VOzLzRCu*OV{R{?q$KM&03ej>Dfj+rAY?x_vw9FrJ<0@W?Uh|WlG0coj&AQRDu zPo(MciW*r!S@%^VWUY-cOs3WKvZz~$sb_7MC20-YxR8n^#OAL6)WCjK&DCw0cqaWv z(vgSCpYwzBZ|WMtVRM*4p}}@YZJ_{8+ZSHGOpN==Pjmu3!I0yh-E?5rF@Ef}&E(oT z*qWaYs^W|}y-I9NiI57QcP$?yn>C~H4TQYD1KU++Q%D}=tFjmd7SP;%ZxDMo9x*#K zjEz+^G*Y|aQz^96HQ#M7&WeU4V6TAzfw;r6p563g?!fmwtKGE}YYlKyfTggt)Ijtg zTqwKTBk>``g@g%#TCl|nLq#heH;$NWn|EK^{$+^m4l3FNO5NvM4a3!1+b#I7-RKY5o59%klC;30DY# zZFx7jIn+7*3t!-8oeZ*4gyJb?orCA-NuV^EY0X=e@7vif{0V|u5IC2yP3myl{L?^p z+k08g`ke47x{zwR1UbR>8#!|qXy5w`Dq&OtCq>K9)!^(rc?~5{unI|)n6U^dwLwVF zzuklN8G{HQub#f`jlWa+{S93YlN1^ytj3IY*sHuWv?DJ*djH4IcBrt(#(#DBsd}6N z7#!q5KPDanHv6O#_}aK%)6ZR@61E?FRbOiRK!1!{%1WDPH5IV;xK3O>a1)tFEaJUI zDSUl>qsFNi$cvgbC(`<>JMEv}kTJ;ZYkewf=z|kO%XfujKQTP_i&^SV%UIp`3=_qp zBqx35C7{QN#zL2F#eWO)n_v^TS9khOq{0@+Ob$-Wtv~azoUF(j20y}Spt{QC1MaxU zT&l;e$G_@4#{D$Gla)m}>yb7aH9poDX=!=q>P#$&O3&&}boDIQF2F@ax(;ghaXd6a zxWGoT$>Kh!NHXOcM^8p$n#Eu3(I_4@H8q$gIRTj!z8)El@VHX{aljwBNQqOBw-^vz zw2)XWzb3@mE2%<-b@>|*=lp8gz&Bg#N_o{S%*A1mleco6Hu(^hO%O#2N^Cd{(_n?Fr0!F%oOZ_(|!j|F+~r@$ggs;VwNg zOOTcH?P(oJwju_>KA&vn3YXLj37mz(c}D)$YT1~L8=#61G=suK4z2`0<)l@Ib(=V) z&%WP2(voD?+_Qhtj6qy&u`1oRo>Io+z<>iD922Un0%KWgkY9T7(zRVr?#cH-etESp z$}1UX_oUV6nzU8^o^~u)MC#BCg_KR(Uv>;5Sv%eBI38baLkf+UkL5IiNq7&vo`{bV zt6u8eHE+fe#=AVPAoxgyM)Em0l+45C-&ka%jDg$mJc#7(X(q)~a&r2*p+a%5 z-?zAERml;p9Y8X6D~&B&DrZ7{qRc6RVw^ZM8zm)ll(X>%Y^QUy6v0p$5w+T4Lc>~` zf@UCg`wie>BH$3ugpi6K_K$)Ct0!D$!d?oY_Bl)-M(`JR=zEsNH22Cx>+)_@O!Hq9 zUmaLK)QYOegzxh%NF9MB8FZ|!U&=DU$)yuZ!9BC=Im#_q;lfO}%@Rd7?Nnu7-R56B zgyH2w5Z5rE6Q~t$UJF5ah(XVOwfv;dLDCa}& z?|Bc_KBFqM4)~E3dT~`yw8=<5u$MF7W+4}w2H!V3<}>v8uInX*7lUuX9*K37CBYH_ zCxG&tAmf}DwkzO*#ka&?`Gf@^LU0`XO3~7l$ipi}=pfXfY4D-Mt5@~h=49cr=+X7r z*^mRpzYoun`wr_>q?g`k`|+?;_2ARE<;m9k=3Cl6E+xlBT=8Gn->g;JIx@8``xcY_4?=vGRfgY-LQ{U=9JrOQ*NqQ{HeB|pA`hCPIa z$Px$q=)KA1KcmIXV6O)s5hYahBT(&L!>*pPqT91@u0bmrCeH1T+H&I{Gt0Q6Bs+&+ zIIu2o>c%P~KMF9Gj;0Co4|Zcq(3YDDNe*oz-l*MciRGZgIZ<o0gRh-fPp4=wyC~WTK^ja?}n*+&hz)C?}&V1 zC&(ZDbE-*h2w13uPYQYl)(8J6i=`f9t$IyI{u3p2#`%3YL>%&?WFW2FM=CH~d~H+1 z6vOdG=94e1;2&nGpjhAwxKqjh#tXoB@VtBJIBwbwJ-_UpRjIwfx}CYDrxy8=64!5W|S;cfCwM+ua~N5_ih{_*90 ziL8)=cO9mKo^)Cf+tdLbo>`MFE;Q;WF@KCAYm@F@mXBpL(x2knT+VE%+1WzH|A|%pH;y)o{<$$8aG=*`AMHFP(d!l?wY!Vo5B|H`v*7Ya?( zfGK8H_injI>yiUu^i;+t)LXqI ztEr3#NG-IDxN9rBrr(u==e3WX?#+;@YxZ?yqT6lI{(aKwQuw?eEYyECmpFC24H{Y# z^!{JOG!dxI`5nzL6GOdQ;1JuINN&^mB~d)gSZDA;+3%L8S?fF0mepk?f3v~h-If}Q z`2)Bx;ir0UJtAL+(--)aV3##yLq7p1FoS3=tn)cydh(jv(yIs=hP$uSqu&|4yKjg@ z{{u|h@$6AMW;F124|-UqDq)axZpi0s^;dWORfw1mvdYe?-9A5SQLklc|RsWKO{jL0V$)cdmj z6N-Z`#%EzS#cZy}c02)QvJ+F-oL^v0`A=VCxk%kOqo@X2&xo!{Rj|qC^%F}+hQA@B zg|H`RP7}ErjV6n+wM7e}Vc9oRe`%YzgVe6>Ui_?Urjeg2Z^h1^M9R<)Yv6s+!q1dL z9(&8dm78a)c2W58^{3B;$n%6!-I<(n69Z}J0`*TC#1Ur~NpW|w+d8HPy#ev+3Cu7A zZ%s;5Zr;PpS_FvpL`7+IycB14Gj-X42o)ZzQhme0u$bL?B><%MCgCU0{B%qC-k=8x zU?xISGgSX-u)h#agNgvF%XUU-JDz)vKtbm^wlV14dk-Ei1z!N}Ew#+aEHhhr)vZoAv!zhhC?%dP(7XZC_yUg;5LL23Gty7O5vz--+^( zBVgNd!>Xw61rv zF$Ld*>FJa=h)S=~&Gcdc=vw0%CV%AcyLewOp?6{UZz!1~hNj%KHSR5ua$WuIKp-QA zJo&(cV5G&En_DSjO}<8}%jJCNkjfHbT{<=rzSeNsTZguploz8n1+ zXlh>FHDUbe?U>>V|A3IJ_}-O;?w-~|>)+Jx4?JQh0RPX_*Zv{Q|87RDBc|$VoTg5i z&GF}`tld*I$aa#9clweFHpW}@*0H5ACf&PWPuA16il}TV0}(pr(m(9Ibm^#xK35XD zD5u|2y1>|c{*}rz1(Zx%Ie%{Ikc@v4Z7D6V%0{R-+ncvTtVucyi%R_vETuVz<$O)4 z<%*}Q8f3<^gcrCtqpW~KMUJA!r(l6Y1%ob~+_r;&kZ){I_{3amXGUYtx(9ACmU=;{ zFk$|lts0P%QwP3HwuRrL>pDm~F@fz5b3KvDobbX+^> zz4z-}&ovF80!pBFc|7Hu_211J7liG76E?R@OMr(R9lrW>=Ja7@rQ!X08g#qu4+ba0 zh;yuifPO(zQrK%v6$rG+SP>Djm7-v`hHkwaP3>s5sfR8RTxhPz_w@W}pekN9sQ=(8 zTK9@96-@C5p)*f$Z8&;|Jo4z7zQZIi)FQqdloAjKQM7k^EiT*@5~Hzm^<~%Th@JP$ zBBvLcuuU@RBb}Xvm$SmNKTKr&U7ORB`nJ*6Z1u`Dh(5|zr-_0Q?a62?E( z?->(DoSKQ!LUFKH%#u4Ob9)Qj0wQjE8()XMd~=@i3yhUTwCWOn%RO6={l)2hE<`)7 zx(emwsB@FGBMN&kG4G*9lc5)3DH`6ks%kMYV$j6YP5JM|zaj3ulM3;PuobD|$hF6a zqxC99tcsMFe*Qeh)dL?Sa6Xf=hYT_9@aY3j++i^GW>m;z1EOelzJ2^&`9eo5fp`P2 z=#my@7DCt)rm$EW`02#5mW3mFCku~W_p>CgfnD+VWE>7A)UTjMoM6%)G#FuUb)G1w zv$zK9TN%txduRi1P%@PYQXd1W)j$iDfm;@UXs(ZfiJQ(De=6YaGwaDR|*3czuQ zS9LgYwEgl4!p;UL^d^pW1j@tkHSUzI7~dpj0*?COLEYoaN~_J9hc;6%PLzD$-oJ%B zMZNuxH;XC!#t@s2LPtahUe?g}9fi5FC@Od^_Xbg)jhHBYOhY?3ri8P)mit!7?w%s} zVZojw?iI?pSwYKhQoYdPF&{}QOXV`Y<65R_2sfHp`BLQ1Wf0qAhuJU!IpXoGC&-y|Dql4K>I8fua{{YkfdeY=>IfXv@Jf#?Zgbl`66m)EMP0xpN z7yQs{+CPC;06zVw$R8Kq3H=j*6>@ZB9UOkUm@xY1`Q;%i`SnWaU*N*xt{M}YCZhe= z?f3HIph_jJKu-e#S28q)N2xpSa~F2?HynX0fP2*KBz-D$RQQL&G8?2*mQN);Ye6y> z2%ygbZk~Z8AjQtfpcEN1VQ(OvPwq-?b@xy3JJ+q<~G z8Sx1N6bz&Ibp54*sA%gkb=_>94tp?i}xj0FSK8Gl@$Y|Dw_WPDt1?Irsu$wvdD$TWfy0!k(x@hylRqI92S=l`Tt{s|d zE5#CBJ#$%ltzE!)7(G0}Xd&Yuxt1gGD2dM3kVu7{bK2lNG-`emI2Bv8quOFCCXrxF z^A^J6ztvYW`qtNH3Ve2tr&M4XOxgRkkVmX~vk19rb3kCgjLOV^hJcaYt$7sC`gVYh zJs~LJrgKG;Eny^7Qa6cer|iwt{-n|hlNYq#QD#Yt zh4Rv6{rX(~qXD!WbfqQ07-zz?L(9W+AO14ucR-1ws3yX|le(fK0kJ#A3V{@^C^5G7 znv|H&4*yO#h#(2YTvZ>C($z;YT?`F$p+J*H>(iQf@>m>#m>#@f%9=>>xvDIFLfMnb z!JCG91Z{O6ZdV|iR#pv&-(hutZ^bb61>Jdla~pOiwZz0_hHs_Og?8W>f^H$#Vy{!w zAB)6N!FRuzzrQM(XlW4q=fCc|3-gqrdB`&2Kq@mMUcy|$8ts-?a&mK*3K^e=XFQ>_ z>-0x!w0?#EnZTjPK`vcHRUoz|$vNXD!}!^-^JeZ}=59 zU}WC~7$V->(!!MkhxP@`Ag4}6f;qpwt|Uq!U%6P_FXbLyx<##JE+@?$bO(IC*!;?b zXFj*J`FDA_WD!-G!q&Y+a_W}B^Kwm=32(@OA2S!MkjEX0H5ZkuY?f`c{kpEY=3glP2yz&(BP{4HlXfqOgu0Ehc?suH(mJ-#Y6Tig_G z-vzOiVnqE+I)m68cu*pqN4<*olNNumcy~34YrGB$@#f}?Z;v%mJYEPzgYmKWoQO9x z0h+#w7|`htWmH`_RyBfAt%-Kz{vO7>pPvLXE&bJRKCU1#xkQp2>=B0d7$G-ew zRSV?B)6rbqx0B}y?Ay%u?=;quO-XYZ0`fh7x>>2)WL(s44w# zpdrO((dUp_-fSKl45<4=lhGqo5MLbT(RJ@OT#QnDH85>{jw ziv0OGH;$jO`?zwzzZPvzKTTnpeWBi(RM7APG~XJ zJu;z$AFw~L^(J{u4`wMPhT;EdV-Rky`V(qeJ_M@OEELj6l|0^PvFTikl0 z&o>I@myWHiZP8#>JpDX85yZSV&HB=6C4mrDAZSxW42aYXe}opB;p4Hj6&$;C!v{y1 z0lssF2SG{rf_$_$U(g+!Nwf9#sNLNOt(7i=X~NYS@mfZsxvLY!KCrjG(Otd#8-|!I zm{}|Q!6<75N`6M}dtI;murcxNgS&b4Yj}-~ zMSL!iAO_uE^-Rn${kB{G1$Z>+*ej;SL?(#E&;8oRAoOTPb3}>qvif?Y1d4UkXSX`U zH*Z&re&UdZu9$)aDstUER;eOYmH<@xV(0Q{JW@7Csg zEsNUHcxa$!Uo`~Q{l5Hy$=q~?9Z#%Q%E)Bz3hfNKK^E%fQ)-(_-IlAWmDR>02)e<= z9Y9Ur#{aK(R17|=ZmTV)v)u51d)@BL9QEM(n;F$WD;OlBjVLB0rg6`~C)TLYo7)Y> zp@&M2QNje@M+Dpxgyr_VTfs~MOm+_vWz&vdm`x(RpUuY~40F--GH$&^iO`&Vs(oh& zbhHi0mE=V!7|9;bG=x$Y<~1{m7coJA$j{WvpGXYP{+<@s_@Y?1WIG8(L@kS3bcd-i zg)g4UU?~{7LEKX8mVa?+W(;^JkP8KBd)-9gc7s1_R8AXQqj050aW68ET5EmwW1leM zG(vncfZqy|qQ(k|@t07nw1Znx*z!fA5A=1vaY5^UmwMQ z!9j0JxChECB;Uxb=|JlEreI_l|0ADJ=``~ZT;*SK44DZ+AYlpU&NqW+ z#;u>P-RnPJM*Cx!{z8aB6R@qi+( zUt~Kp7O7r9mAf%9C?wz&e1=!Si`>@S7S<=`^Y9MY+^;ia5E;SF6>zd%D3R6NFqE>e zu-GFSux_~>O1nmxN@G0;kZ+D?5uSyvFWQqZ+#MT}+gq0}0BmN&TBhTOk4B`vxl_`Y z2vCzeozcghZS$NUNF=IJsX&srn?@8V?{jmGT;J^)YirSh22?wG{A56=vw$SX(=68q zK&xqOC*m&TVkItF*@DDoD3Nxa;j8QF4k7;H?e?>eUk{&)5sTuShnjDFSfa77pDu}vNf0JTl3fdcGX&u=9PZ6gaDtj% z0vD`Xn!In#U0q!#CMV5a?+!(uH%vc2-yKfjHV|?cPeXbX&Iw6cZ-TdekE7KFiiWWmIxHeg>THuQ{=Jqa$=3E@I@1Y1mxc zDLgD2@c!E@(^j7GC&Hp8YA(1@k1(}-@51xo#xJQb;Ci8I zR2?}qrg|av9Dl$GZCW)JpKP{x0D`?2SyFxdH{2`Lzlc?X&tD1;@BGOzO1YTVc(a2j zvn#AKi17ad8NJ7|!o>uyA@w5Mcw8+>ddW*!yBEoi;=VF=K05)>=5_y-iT}A*8HLV! zqf4wJt5E01N9rCWrXz4`_}jqoXpWhZVFR-y6*jbQ4N&RGNKq~#g6}zCyMYPiK4XhL z-)GdvotJXhAsq=GSc$)r8Qh==1J!U5P(koi!dXC2r)aHYdBtyze<-cdC5 z(0_bhJNjB$Aw{-&O~=ZEIB7>q0Xy^Z$)FvLYWLU=(mu6It5=`vJC#%VP?hy4`EGo!q~jdUhlyo5hyPx!8e56ch$2krpqX;?5A2^T8n>vvHb$ z&9pm`?Q5{#kFj2#8hr-`2g{Gb?V|3QvCQ8MuekELfFj(eb-Zea1nQ}rYjK+=A>;9( z3nrTb)Qe3*DgwOKUMaICWa}*IHHO{H8l>^F=)>2hlVU1e%+Kg!TNcx7nC3CVg@u`2 z4`Wrf9JtI=S`(;n$g|P2?pJXquzjJX^RbFMQ8;v?Qkh1krk5D%f7&HsCY;pOredXv zCL`HYWitT5DIsU#b%>Ic@D<)%$T#MU4zAyO6p$=fnk+$@z+15RtkH;o&~=3Zz~95!@Hm6gPF+R{1GKfuB;%k zq4_m8{pQ)~u=;SkIWx$__r60F(}&X2kAR23kk;y$fG%x8hIK&c8YqukRP0FkuPZ{C z}nN82}iJV`#ldRavASs)O zl^_k0Pn6Cyc&6Qb;6G-)A7e5xFn9%DSbW7uz=H4b5t{JcLUx+Rx`A&=aw0PUEv#_{(GC-PeiD=bcEu?Uo2IJosyNmW@sX?chdaH(XX z$6)c&56pN;zT4ZAwm+LV_LHl};l?9kdAPXVUw(f^Vk<0JMvotZg`{RkAPy8qza@o` zkPxJC73uI3D3@zdiixb~&>OedIhdG-9CH5Ov&eQbC-bt`^JZE5DxT$a-1yP{d&!Ag zbQxEFIdP!i$gQ^RtIRGptMVM|29B^F{o!#pl)I>Np6f zy-$%taj%U{QgkSJdc-_h8QwNx&m!=BBp*W4$W<&1xJ|lok&y`Xal?=NS>GeQTkzo! z36yYM)!}SpKK8ygBuItf%DR}IICHnHPCXJ}?O|_`t;+5}Sj>nw5COSC&rKl7PtKqf z*3TMAqhUnfQwM?^^t=7KYS8q>--(=yt}jgWze7dc0ab%k8cvnI1?L1gm-z#dIgR1n zj}s|U&oHZZ|LFgv9q8c@-9OHKR`}NikNj9kJopRX0eCnD`)@Q<*R{86uNiwYK#+w7 z5-*D1_7gM%if_HdfDJGu($y*_L4fE7Xgd_ucXG5hu4LK59^4s1!5ox4CU`+(EkWut zu6!7>29`Xi$1D}-1ReZ>C|`#wyPY>wr!Qrn>2v~p8h4r3=HB2n;6Vnj5%6rE;eD04#smw-tVPzwoz6a>WVey)>1TJxT#VTut;Vh9~OAIaiK z>pOCW@y#djE~f`<>t#5XEm-dsal%w#i&muCRf@V>DFZ6wq)fi{UNa@&NGwqGw#?A2 z&jIXK7TCS~Hy2>7mbCiKf2j;IO%fwXyFtaq#*}4XXle2B@;bLs5B-@|o=ti$o{Rhfo%%ym`yCB!U6qr# z@&I<)fKQc#dE1FDP9FNZmXT*~|FTnujmt^tGfqHEtkUZ3+nO2W9yu7;373?and$rx zl(&j*-8>9Re>v}K^wwfc&csQQZiEJ}Sh4J&-Lz8e3m%_{reKew;(H?S#enDYPe zb(T?Wb>F(jTCByrXlZeWVg-V`ySuv;cXuuBuEn*uyL)jB?k>qq-}is+J!714&j&`x z&e|E-OXqribIs{IC>gliX*9;P>uR++$HM=m_zQIlg24?>`-D0qlFJ|>`=jyvVoZy<&2xY_@o|W zlOHb**Sz|Rq`lZ~nX>>=I+b~D+lf0XoD_DV8VJ#r*i;_R+b+tF8L5F6bz=}8*pg6) zYHen|6OJEa zK!5Ed?ni{Kegz9HwANh@#_pjLGI2+p>0}Z$`sQ|0Ht|r<60ozn%8~P}?7l8`y|c;X zB+9M!WXq*-WW(-bVv-3`4n|WBO zIti%)scW9+4Oik@^2Sf>gGh+wnrG`QsnzqLK z4|0L(onBl{2jd0<5!g^`(~m8)j;klUe}x&-sqBvz`irlg=>W9u-K!ew6&7~8jVSPU zt-jTV(>#cIqxMFUNT=cKdUwRiVqI(Q#`ItZ;h>{{BJH~uqF>cx(~huaQ`uRU z`}CS_)OPK)&@yK_o@W@pwU5F3kR5bA+3|~Dlo{bQ~v!kSm$v~L> zy0_)dt{_K-#iKqG|I!)Tc{9-tY~lO~GOOfG=P!OWIw5VHjHHMB%)+feO73h=wn;(A z^7$Z?OI-RM%xp>d6u0wM+$g5o^?0m@J>=_a1oBWzd{9(_oN#z4ut=Ku8n0_R!mfaE zzr$-Pq@>$~VIIBgRyH@L7q!AvGoT8q8pTcCgzyvVeclh;EvS-2E|gDO`!c@ITgl4C zxOfO>$IWy^%L{ooH+=XM{xj5y82$Kus1vPllUfMf6C9i4W8D`V9ldqZuqt1Pxj${h z_xKaP#J$1IQTHUO`YG5^)f(73!j*b1xcF|AyU&W#81o<<-YvvF@@Dg~u!g>)jz$oW z$KZHKRN*(8(7SO}&gmkpowsOS4Ih{{Nsc)%I`ueF@ijH2@b@EDz@pHGKG@rX3G4y< zHMao1PekEUo|TqNmbV6}?^>-voxVuua>)35Y5Bt8vq`_!ywq2HHHT zk8t@a1{yGQA~MJl>yv)G%sisSjJSFZ7HQwNmTn_&H+pUmX3%GWNQu<6v~v+!bIq^6 zY%$Aeo(;j-Q6iBz!K#(&2D%*{Kl0%;H8k)ck+L*>^baH7JTWXw?4GpNttsSAHkX$< zkAZQ=B&-_B3&rKVd>!jms#y-Mu9R3=BZjf9ZL65TSAnTGr`^X#vAv~(yot?i`I|{T z&|U!JG!dnnxxF_e2;Mus6(3!G_JNrXHkk3N}r z@#LMS&y`~UJT>)O9sguqXy5o4o(z7MY>C#RqOy3v#u*#_2k2s)=e&BvQo&1Nqllid z0Z?g;t%Q|w!_Ol_7DqT{>rt$`TMP*wz?_jnRkAZ@6u%X5z6rNww?tIdy1*hlY3HHl zLCLsLUz3enN5`6mdEYjarj|dKrGC_UB>M8T2&?A>>Nkl{GC>Wk;&Za6L11Js+ZSf>PN_~LuJAyrxyCS ztH$4(iXJUQb{Q%LcGn)r9U1}Xky6Rj*ER8i3$5?elzI&nGa{S6tKM!UV+Do zGg}7mhy0Uxj2vXR{E;JTPIR*e{(Tca0n(2VrM;x}V_lnS8;O_@;!g6{y-}9YV&&-? zuz0==WC2rFR)$1cD
    WVB6tH*_)>ZL}kgjEv-6pC3;{q{H!a&9zo1$_j{s`>N|E zCd}~YxWUVPEK7NXrPrSX%F;U_4!e!<_EzNem-{oKO5LoWc;$pC-~#Yq-;k|zOl_vd zOnlQEFY5hW+Pp36^!frXorg0IUO2!Vlq(uZ@ennQn+$r-e}tqdnHgNu+x*5!8{ zTzwd!xWYd7dCRV0K=7PEkL^NUwV%RyDfC?vRh|7RfZ)(|=;%H*P%Nmv1<47{;!>$~wmX0*&&}y5~h&OL4fe zG)}LFgHcV1NUS%l6;%5#Z1ZI=5}`0Y$AHxX zjx_1DyIsmc$h2|m;`%py2k90i0rq=GXcgaxVi>t3@SRw;v{#iY_!&0=5;1nwY3hZs z?Ifr0KG~?@9Bi$eb1F>L9slZ~r_s43etbbYic2W*mSx$gUkARp>B}j^6L7PMES7hU z`mk_mF_v@W62zFH7{83kgq<#_1zDI(OiU^@8)>RrS~v^mkZ(ObG@5O*+#yOK#A&m} z2`CHk0sbo=cDdi<-#{W03jX19Uv;$}nL7?SUu$J$J~vlLCC@?@!!JGK+9Ht*KlmU9 zEx>EWhG-<}nN8KzbfMQ(!r_p)rdC3El*we;V8yb>`KV=aau$75mFeFx_&K*>btm7T zoDi6rkM+#8NOt9e_c_HR$kR|j$shgrj9IF>ixv2*iLi1TmcmFSwyeBg`gETKbTg}J zyD;*Tz^k7-){srv0D0aiWUudnqDA5-y@v$TXhdAgN{g3$IInaX%IlEz@;FNSc1QWu zi5jeKJ1$+wdK(uo)2T)i9vK}D2HNF9)pc?WZE^SRzT5)Sg|R6P*SC})uSde5Hl;}8 zy{>E`-0pSHEKI2=e*SBN4w0_dH+#s5H%R7|EJ*ql?W*mWx#tSoog}p-rdgi=sb9Tl zAjBzH>5>nLt00_vSi+BOo8I2Tub<-)yw7C=V0&bUV?#lp>_XzeAN-IO-n0WJ`xfqA zog+S)P4Pm%-oneu3rW?|ANN|(z#F1vfA@zUh2F39ko-Wo1MG_E_6 zva~?EfSXBHx7)r1ZlhQfJXxJHo6TGU%S z2=QWoh z)Uy1ttR&kIqOb`$f>f)tB_NS~rg$GRHQG$yp6~hwXId2Vu1W%N@GaR^XYglf`LhJx z8w;Xeq@w3gj#i6=9N(7bFlNC-4MKvYhjKbL*h+8eA$8^YFfcXAwS^$ z>@{2Ryato#w4!oBu~`X>N}y{hVGe>c6H4=aZ3UmGjS4Y5HxE@O6;sMPqs-=MU~w3!eIzy_PyUB*|R0N)*)TS z?7LFuixrNsI7^h!=}jzIom=9WA}GaMKPFVukLC0Rn^mA^Xnw_$Cl|b_bGmXDMEK45 zu;GbnwaAmGrlGK#&EcB&Y2IYqUf$p(hTdH&g+XOg%88X$t;%?zTxA@x>SndiBi2At z6D?Nj<&;F{y)9zR)DHe`hXn8sEiN|oBEGB09?h}!(TvG0#f;zW!`8QpMdf0MO*?U| zdxczVV)ZJAsRaDtr^1rWIN^ZgHf2a%w^48y9B_I5Zb%3EGD>2@w=Z6h=L)e9Mtuyw zEnp${ix3grA-%XFIe1IwjussLzJGTFW(sis9qd$$-vT0VJ*fTR=^Qaa-?`Aqak4Yy zwEQgBQ9LH1z)U0uN2F26%hOnfe@6#IVA+VPrw&2a< zp`(DrvW5I$4=VTXv>VbtmT?cyO`=GlMZbk%>QK$M)winJYl5>Z+FH$6!-+&M7u~`| zLW=Nyda~pfQB(8$gCT+$4LPnn4VB~Kl@7Mr@qOCI4N)mws`>W>Yq)FW!s6ofypmkB zMKD(${82^&0+_S|F=7uMSVs0j}5W>?+SS ziQFY{6PyN5>=qYN-1jpjrPg$U6|s+LX1FF}#ulVB`cHg?@#tg8W#5XzS%$lO+q-<- zGg~d2Hs&of!i)jL9;RMx{4Acjmud%FC63YfcxuK)PM6 z&DptI1Nx?m&GgR(Melf6kGI|HQ@_4a}iwzAVrSkm_S9+JAL%) zVdMiFzejT>w=ZrjG4$Gye$4=Y41SGpd&bySLBkGz>P;N+dg*z6fB7Bo0!^EdjO^<< zl+w_SKK(Nh5^8ocQeP2i6s+Y6iiEl}Jpd27 z$AUa50XsiXlY*7*-XfpMBZZn?Q&fbw@qQGao(!m5-zHG;Fuz4rooN3vb(lIXil#rG zra;GX)^v)?vV(~$&wKloA;;Dvl8*mx#bIrctbudJX zx$#H!y8M}Znr$&cs}~4ySrOVGtb=%}{j!yS9rAcC)0*wxeCtcmSZQe2htmf=)v{8% zU(ncjU0<8-+j%YR8=0F+Gfpf)31FdVCj|`cVosPdIY`SC8EFn~W1rq*%y7?CKoWI} z%(49_A5NlLspX^<$ylHdLx_{I(tPDilhz(<^=i>(fR>IM?N!eqm@r{;Uu`O(wQVsJ zTH`1}>~*;8kkvFWUESv7d7O8_?KZrgfD&}B+4`IJWB`ZIviIW# z0&djNMSFttY+(aqT4-G}{Y$0-IZGqQP~Q8I@68+2r3EE*f1HWT#o zLp-@K3NManQ(L<5r${C}7hEzNa%Ldd%)@^5zSpwjtzho;?Pf9nbYWt;%6c~isX3ZY zS5w}CB!R!mnz8<=Q(tq^vA5ORTY>kRTc5lF?Jht1)IJ@&(&VOlAV2VNb|CCZ|IT+> z{cWAa!Rv}0*TeDnZ$UljPJF8FK8NK~%%CLpc$Co5ML1#aCQR*Popow6r6SB&scQHI z4veB-s_7hPtC+H@98b5TLop4b^ae6*FSTK3^=h7T&L^A9f4>mye(5_CR;C)V!NQ6v z>?m$`11+z0WPI5Y!|6;l9&)pt=||$n3opde49{L^$KXZTCAVoL)>^wEotR)GAAow7 zml@@2*1CcfM`}J}G!4?fnRHbzp~Ed9_sY{|JRtbF9aFm|@x(d>9^0U}I;i$}=f~)? z&00TsK@wYRO>SXcJ&k=TGI8JAeKdZu8!7E*Qr1flE8+cXX>+R!Y-oJ&$U9HvWt8O?(b$=6X!DO){@1mf>H|YTW@V?&o_=f%0 zn{`K!=T}`sE4x`Ao$z6rHg)qGBHhGGJ%glu6GdA)-}fo_A37m58#x8``B=Ol3w@XR zDTP-ii|C$6*8Y6ZMR5d9Ci?F5Q3=;y)SfH1Tu_dm*NaC~)*n^})4HXUs6MW!tTuZq z5Wc1ML%K5dYH3D@W!evvem&vogI%yMdr!k!Wgd~!Hoe3yHXFtW9DD*xn)CBFy9@bz zZKI{sl>>KEfwlD19Kg+MwXOpFVr!=L(;Gt-Xl%+JbbLdnvA?jFEsL9_Fn^rT$j%_l{tLjwov(H%{x6J~0(Nxvv&*2iqqM8#RW~usS>!`3d6rE5H$?0KJ)hVg^>!=<{p}q-`p<14-WTBD3atO zt={i3je|r}6$Zu|32RS_=Vv;JqFdu}rBU45wdCYMxG6Em{2uVlHm+jcllF6J+el$n zoJd=~v0!_xvauD9K>v2K!GUasY5LhE*soQFu+aovh@>V-KUkc*Rf@^!7Gjq#rB z<8;|G920Gf8p~2LON6Ft5(;W+N>8{fdD=WGd7cp%+~3eHplRS@d02e&Yemy`!yL z02HVZG-Gv|1gp2sI^flD!W zhAP@F$UWXFKII$n&$6yvzX92TrE;Go#n7Z_<6|XTVjn74fyQQ|+WW}RSo>Slw7!8| zoUfQ4^dS@24+D#1H4T4-5)GLb3g`~X!ORS%t`DB)6Y$WAX|O-vD_V8}kABy%eVemn z{PK5UeI3{p6BRqWJ4Q0{#n7gAfIQ!q`bj;SUQfDd@CWC+6D=_7v!|2@>7FPHymQ|Q zh8b8{BBMaJhO1DtKQ;%(0SL zw$_`a^AK;zgY?IVrebr|e!@H+k$%l*~{Zn|#9FFm^r7nlqdXohL zP1Rr9V-M>?1^Adc5r}zw;SxMi6P@o@)jy^@pA0-`7T+Z3St!WKcRm^sj+?*R&yXGy z-o+0Q#g%=rf;@H3670C$Q?~iCfoi=7g_BW}aOkJ+k(5uFi0sZ*3`> z9JQHXU?^)!IRBBD3|m+)P{-%Jd;=+a(LNyOMwq;CLWWU7(@ZxLy;VSskOuAh)B5`B zpOeM-Gn~?hp_M&9DOQK%y`6^0Xye2mhof>N_iJU{Kjd=KuVBqJzP07s&cSawlG#cASxM@lxLqtD3mkcF|G{OcUz}6jj;@-JPT=RF-Le?wDQoU21 z8FK@BsUv708}kQ`q83^2$udEV4vua*PAc)tN%7cX=!*-s>Z*;*@ykI`F^uNPEgehA z=M2v+R@z+0Rg@+QXL55rG6znA!X|felQM$x9fu9o{rttcguWT5`vj(Qob{X4vcvbz zPE*v|NC{B`rX8T2j)!ApC*y7s5ryx=wA<}_&)U+S#N6OKiD=!DK%;mpmq`4!fhZG5 z%+El`N}cH8$Lg7{g)yB3TgwnqN!U;Ei*)X!P`By}d2@a#JbE!jJLI{tWlB#v9x7+%SQ_<l4TigbVi=3G2Dxe6nIfgIFspeO7Rkx0$Obyh)JSMAGQ_i zKt*|JuS~9OSwNY&WtC%@$3aM*J<5RB_2hARM$3B}gxUT;UliH9S(BHLZ66S;t58ez zdhl%@@@ma%?|;C`vLimr?>yD6#DUJQ#>!&++Ez+qLrH7Z?Vo>>aYTuw>;FZ(dn5mb za`0a1Oow+NkeBt<%XSK4CibCsAj$bO0u>l}h;c5zny7w*@ecLFhWeu9S<6P@##Mef z)-ovnP5pB{??|zw6`3lUASEw+@UC5TpH4Br6;K~IwBf*g13o-)_ba`JVwl5`o-I_}Hw4(M%mvSOp89DPc zk|#YthvjvBwW6k#-s`3-7N@g>il&;vECS4&ll6(AsittS$4)nmiW|&&V%f@ovVU)Z zsU!{3tNfK)IVjPwG#bblML(=J4g0sAb9`!JOY}~SSS%e(OAO&z>m+}q^{Yz{nqrsU zX=)t1#wj&w*gQ&>XLj)!(py(I!h5m!co$(;3fDjg&unvl}A5OKEHYccnWbV;A9A<3N9mPOoEiebbYv;|kW69i)>`s#c*h zjjycKXU<>>hY8>}c-b5!Mx{ z7`wD|EPe!EhvN{u*{<1!f0aR5{6$Ak1Mc+I9yr_N9=`iz<-Q}g`?`J?EwZoI`X|yn z0WT|Vgy!;UtO93m>N`A@$!L~b*YeO=O7c#FMAQ(gwsld>JlpEY;Klb8=VHu?eYC)B z3WQdR`oq>$3RhWf-}`I0Z{NNJpLK!1aLfHb*;9G)W>8F1wNCCc*F-DvR#A95Dqu*r zoFq@=7583H5LVJscv`H1=W6>9ddHMz4IlB_3&+9py-H_b}Eo=`HYvL ztvJ8CBuHGDjE!K3TiXvYC`?55mkMcXG**X=Q56+uh001gN?)a`6NSs)i69zc{Fa~Z z#%~3^1k4GXyQ9OcCtAgHtFTAk@It)1WgV{-NyGYlun_bSQ|d;^9Fk-TEMgwuu>$rV z-pNh8jD4clYvZH%{@i(IT^Ctt@5i}Q44H%-Ejbz|B!r!y9QtMWG2C;oL--nq^*nX* zqL+4{H}2-o-8aF{6CCv;&|gRTqqrz_97nG;DxBKDXa^O|3?-hVeTrRyzMvj5C~1l- zmGAG&0>H1kZ-l2(H4T#@q9Nb>6Y{T{t@*}XK`!rj^S*$+Jds^ui%Pwyu}sXF1YQ(5 zI)o7OB}@cB?ZjK;Q!Y2LOB_l^wB!|~?F(P(M-Xk4q-4e<{~Uetd1vJmAfXm?d`-R= z_+#};i*x{O5gjDQo?C}*yDlT7g?N6M_4hz-1LNwjfp(aBXW=OvC6`R=b5hf?toV-4K<@2gMP4Q!(@#+AL(YR` z!_rf~ZoF~rqdz5wV;#KCYsW?05S6OTIR#keWbCsq=bBQ3Z=aXip$<+qTg*0YZtgPd zOcPm2%no|=UKnPq`4k`9e=9Hf_U4BAz2j3g+J4zw8^Y)cwCN(+tKQT@J`}R2oCBLh z_$sA^xf#Q7QO}V`8ZaY@?04~|?D~6htM9l@d(-vlpx$C9`TqKZ^6G;YJJ+wJmNcuq zs~!iahHvo*PjOntikbY1vHD0>bx*F}YEAhh~Z=9jXZhX>-ug zg8RT$C?zWCqtU5M=_y_k;`gD5(F-DvV1pAXPfQwvjDCkDH-{7|OJaxni$(QyhAqa_y{1Vp8`aTz*Z z{cO#oRK}gUi^)|T;6F6Bwnm(F6X`+Vb9^fM)bk4SVLHj~d_+t=k)ULq%;C0(?WyR# zwLGko&R5bU7Dg#czoG%dq&xTr+eGjP-5>p*=90x572i4jNLcrz?Y&?JNB$)I?!((a zPM} z9erWp4j?@gO3fggra1_EI6Ru5JJ2Va-zg*fAQx=Ni|x+>4Ku-9h`x@Q^b*j}bl7t& zcM5mvLDQg=1gx5k*5ilK>+cii=HGdgrD3dLO8&Le#r^zrm!3ggtrcLkIaSJB#<@V8 zoCFQ0&m`W;F-lQl3&(X)tY!k4?rpvJNVe@$*Aindw=Gc{kEk50i4eA~g2ay#~TE^;Uv1BN&21%+3_=mX*B)c>jKHksL`JG6$`A9g2VR)}QH*$C|Z9?Zc{riIQv6?7V z`5s%VfmJ z_Igfq;Nil53k8>BB;L&g(7uRi?96;2RE3+jG|k$ z^+<`=Jtig0H)C8}^f~a`dGCo;NmIL-s^JXZ(yg`$UklSI{q|KiT8*AL-Q1>q*X_gY;bat83^RVM3WVM19ar5Bep++e}F(kH!H7 z$e{^a-Qa91wQbXrbNB%^5(63{*L`*llaZNdI573}2~H42_P>ZIL`2T;kLiJz$!m${qypxJTPcsq}($_nJL?+{)X0rfx2h2lBc5`ka|#9O4HMWhum6 zmP~_^3)9H%}wTS;hoa%wP#lI?Z z3pzM2OC3Q+_&6s8Wshk-!|QK`!wHgEm_CoY?0+53E-F;4CVhd(iWprpTOD8!ZyUhL5m6M)q;Qe)wp7)tW0Z?BE=m zHJacwGC~x@yBnOrr~xdpuq@fwrb;kQe`i;IkEQGSL5z&r2wUI%4DM^;B-aVChM8^ww0Bz&;Q_73 z8n6iEzC#H1Ll%FRL%9VpPwT9OP1;rZF`@2H206+;fg?Mg<$^D?Vt7+)#xMB~vcZ$v zRECnGSY-0JLf>)vEj18_0xPScnOWG{VD%yMx?NSB3=rPSK)c9BLou3ggZ%d=OlQ+u zgHYqFlyxytht+Yqn-rYf1Y^PEBtfH4LCpSHu0^_Exkj83I4MtIQ-YJ;nTjH+Wiqp7 z=+MC|Il^wJ|Ew5bp2t9pO51QD*En;Fs11lj3=Qa%YGFo;LfM}F4()2p1vEWhT2tRW1azG(%m+ktEr(#n# z5$=uV9%)=c9V=4N@j{PYns(}DyeiiwNuWAfk!65BOcP;j>5pbm2VS&jxM)Fl_=cEL zBQWS>&LDx5%qd#vA&86kiw?7_*!UKh>uMmr!PXy|4__gPFEUIMb9bO{6cXDU)ZAF} zGE7xQ7d2?6b)LpSa+p(6_xDPQ-gFq)hW^!!v#;kv>ZjdX4Pm}zdaI|v%hubC)PDxU z)f36F&`QR%xJv)ww={QsLV{{bQ(rSwh{Ak&ak@SGV}dZFBwwKhRa49R^kROl8gf;@ zBO~@@C~wJ_LIvH(PHh*&*bdIrn#fttElia z8y~)M`r)pxl@>3FEa+N{ZIqZiJk)a@S&R#tn^QMafWLookWAOKi=6J3at%yz&n4Lk zCY^t4qFCx_esDP_1pGcI zSL2fiFJe9afw`SMjO?4*CUf+cZt4eriR-RG8cU9|v6p2VGSmMnILR0!aGHa3QdTGPZ;^5?srY|5 z%|9yk|3aD@ZvF+x|Ccmp{!5ybYsSoGv9neeO-^oWb#tVehyQyy(_ARjA%l83G}S-C z+=MiYo*DfaUC-G1F0CGZ0AiUH(b;L;JXi+HCfvo9(_>k#44N!AZB?&$i7Gl3^igoO#V)(cDIZW$%9AuyC`#~(Jzpl~w2~?BOCs7uO`q1-uTv=+ zFGJFjOeCBT9X>+n4Fu=8fX&b37d zFWg3#c~N^6XjD(vNSU2~#8-NE7x>Vm-%QR#XF)_#2 z7r*vuo2Zy$WB>Gl|CQg%!P`ss->I#_{wmdZ)2fv!v#KL1&Q?HsY9XlRc$gr=aWaM$cf@5ZX~Za_8*Lq{8Xs1(lX|S zv8o%vtyR9BD*ahXu?(L&>{fCSt$#Lk>q%U;vMwuia&RlBj7m;QCeZ(pL7^M1uCNREwZqV-DTE;I%gz=6V(sH z3I6U8HaTDC768p}LuN>;o&gUxN7yRbe>6psT9e8LKPrEdm2aHvakIhpEw4-;$WcM# zIIb`9nf{)89$O+`PC5M(WltLOk6)mw!ai>?mg~l|#gD3YwpT~Me6r-!efKcKPadid z>UpVV%Wd|uu7SQT*Gp9mbq*al5Exmj5N9DuK6mn&oRN~;HGwYn(o6W@fg-%wr~5Z) z*VO)=Z?P@RE3I3By zJpj?6!z`T<2s7NeRq5flcw_AHV_fNjwIr6veraEonoIU?MC^T11RJJ;IwueX+uymc z%i+=9<9SHuy%9$x@QqmA1b!|IK9SmQ1gn1@ZNKJytQmw`#9+EX%=c=qBL*O@Pm6|^ zVC`I*>U1$(tuZeyprU^)ouL0j67CdM!qX?`VDHsQw)pwcO0n}j_;gRJ?e>#V8G>U@ zhB*sA&8IIa=)1v)-pl0mgb>V`@M_F*L&3H%dfp_GzJ@0A(Fv?1VHrr0F^>Vr_h)jQOUt(>e^85H%;{Kusk z%Iy5ypT6ke8_5Y)Q@TzUrHtVdEZ7Ao#lOn9F%<~dU?Jp}k14#@ro&cdPcN2&#{b(N zA(QaYaZWVGW4=+;St5SqBie*OKLq$GKaO*&o;%!}&XxGj`O&>;&y^qKk; zhZVx4B9GwK5DhP<`1k^U11&JxE*s6MxwdPA(|cwmPyQD}jHB_oYd|Nc(N&`txNH^c$zB10QY zSGnf)hPXj8&g{1i?~*9nk33}t3WMOGXN;9&#M!d-LnJla`qqys$e$q`bQF3D zaRyWNvM5^DqYnb$>5A19y3GxU z2pqccwv9uaseCkSj-XUAH-6Bxl;!*MMC{RvD7gwjZ{Q?Xm03*L>FfIlk!@dd9WKa^ zkO8JJBKZ!?-*xRNUgTc_Jc6r)jyLK!UoqOMgf?yv!TFb6_tZL}Y`WSySdjilB7!Kt z!xd6MJ=pWbI$ZFwDJKChuph7CWs4|9S6-c-TS<00%%~tR>LaScYK!&aOAdI&_i8w3 z+}{}IRl)JPv)8Ouo6=Axia|r)3d3bYe!Jn4F~`#2?)exWpuE4ZCw*m=smkXhf*ro+ z{Apm%4zxp~s=8XnCbRTLMFHlRioN!&wkxdKxdQ@m*9gT&UnP@Ef467U}Nn`dC%j08bXAP8?e&m$Eib>z(=rup1b!=#aX+b?BFV zRTr)?&?EW2{Xqg9zui^ZGD2EIny3!%HI3Vt`H}Uo0+%6!Abn3U;3B~qmT-gz<66TzQ+D{-xX=8 zUrAqm;G4ZGBK2P1xS|GSJ74dluP+|?F}Y@>i`jC+42d#EkE$T z>!um&6qJ;{c6C(wqv|L?FaQw*g=EMyR?`9)S26`XjbE>^KMiC)!C=Djt#_KfwINo%rheB#a#G!(rRppFjbBqMD485N`$^fl)8_1_wkK0|uG}wasm#DaDOn9ZTAN97 z@WRlb>!Q6g(*Un)!`1Mdkl(p(&M90bH7MQ;-l7r`>Q<8HWfU*#tt|hVkrCUXta%nw z(s5wlr^?L?QWZp9pZ0=dBn(Fg86w5K%7J$tS7d%HTRUE{(X{kP>!@8Y{GO{AP?oe= zke!-r8GLGr(U6nZ-QvD8s*cQ9g;65xpJLTEQx<=G@H*=hYP1R0a*Do1R%FzN zq=J$B>o#~6FQA>;G^XVBRCBYv+mOA&Q?v?(P$1%;l;1~0l1%O26_r7*O)=xMWDo03 zHKkq}CdnvIXKx)M`JjRh4(e)S3W zeOBOzR#JG0$aiFU^DKT$iA0*RJKHy>>KPTqz1wesG+vX1HOLfR>JM zX_0m^3J%S{eQQK{7W=uBWLN*bRs$yL6q{?vVCOeR_|+zAT~~c*&n{v+wu;vUkP-8e zmd=iI1l6yXXTLFJ>2e9YI06A5@aIQcj3*GkgxugY1h}w~o~0xb^P1Z2SI51=@p{yI z`?L8g+{msoSA(WENJd&8cr72d)W#!gg(uq*alyq)PMN~*L#=tjbTr@#z6HSx`2@%_ z<-D#!+ft!NjBYwnMW|qK5=iE{MBn&-zL}e$13$iz(_MXk1aUk#7->K_MfjYwQ)6IE z0pf4h82h5zXD}FI{FoP$S~B?k0h*>EsA=iXjR9!ge4k`oda7NBGZyaYVAXXMkh?cG zUpS$feLY#hUVR@cV?q$cnQGLaVNxf=(2h$emojah`%8TOl@e!7D=d3%5Yu9x$Jbot;K5g|?4avUIwJdO#ZK*0 zh(|F9cW5>@#sxTPZ1{_q!|K$sy_SpcyBmwEGoewuDa;*<( zIVJ69TJTR(T^fUnB=GLd8hy-ZykwJCcYD6>Hwr#);|MR=C|7);qV9qWG`^em3C&q2 z+e4chQy;%lBuil>f!|7Ej94PAeQQD^P13H79b&=vcCObKs3?&_R z|7#oRpvirD`A_3t7HSp|ZDe=8WG>lw&cX1av-&!o%- z2TrMo+?tdr)p`CDJm>s}2@E(QGDw@a-`7ItQ>S@U+pftqVckn#k0r8vVhf%;BaiHT zD0XbuQF`3qxTi_;Ta;UJv~;YDgnxvgQUJ;@>ca zA>HdKwo$EvEVW~6GV4~$M3`!W`V`>X}Xyw;2k9)$WOvKdj=ol zu515Ha*#ES=mqG!%`w7)Bp_&UCZ46RmSFN170{zPG7$G$A|7lH-OX^|&}HM&gdxO0 zbLDOPlrsg-4`C*c_Kn%kqUVjU&^*~_5an|da(d&^t-NNFJh8QmGa4^{Sw+70muYl` zH9-n@|Iyb+CCtK`@E*YTC#}S18GXALgXY6NvZh_z$sfJZMbkLDKkfLSN_2J>uUe;!8+jQ1OPHa8fU zBrypWOSD%prF5)Yvci`7xytwBzdgTh^PM1RdU{5+uI@A z^!q@fQ@XqBwrnO#l_*Fe-G#ePWy6g%(m{;{yK9f5a?5M58J?!~vP^#eyRQC!NP7#Y zwz}^BlNK-1;>9WMPAM8FP~6?!ic{PI6xZTf97>Vm?(Xi^0L9%UKr*4v^RE9p^Z(7v znl)=hE+M%&ci)|J_WqpjzNcj1YFi$Igj?3@rFz=Olg94usGkTWENR?SJw0?n9F=(Yan5@8Sgx`wj@1qv%WZy?eT7bz?X$t{LrV@cBzBSoG_raD>ehW)!7Q|I1@=M> zTWVez?!FJ+!KAzM`3dHTHT0FRrdz3Oi|9}tW>7G>e@oIGy5X~~>EyvIu67E13(GVO zkLMcf1U^Rb4z3EoR$D0e)G8<=I5%Wwi<%%xe2nS)!R#G`N7d=mk}#ciQ&Oh$w=#!7 zU+JV!T6H%jN(*I?WW4m=#{bpyFY6Dtxb?f^E#Z?pgCT(O`vStsd@mf8+62GN6TOmNyv#_#{5~UBzM0+EITQE;< zNx1QXJhZaR z12Rg4j)Xafb0@_&+AtG(=X+gFKA^<^dTZ$}r`ZlGfpXM4#ems71GwL8@vF^?MgM71 z2+y+lMyyUSivwpgP!EqP2}7k_#&q(t{ z+@<`7KajNk*~F=5k!)`2xTL6XA*U`BR4f6aF>HGp>P z<2dbvMIp&=mz!wCff6w>QT_7>B;1N1pF&n9eKDsk zk{}c5zJKuGM)og=vYA9pl1AA3jOer#|2}E{gnqj4yJ2%o21=kn?)WB}$RlyX0z3D& z?UMn@;HfD_V!FnX|5xffU<9lA$ZlKCAbUNMcwc~nubqiH)Q|xjZRz~Stp7mZZrFwB znl>UZoIq*;AV-pm30Se0tpG_Va`y7c%fFQ|fBW^k%dz{{x3LGY>h=4(mO2*oLhcM@ z&p(F0X9!l1q-0J7X;R!Xt>n2*?*5aO+;sdJM#+I0WQlgqknZn02{IhWq!oc4r(eYo zTYPBsr<&~a>lMfkubW&VZU6gSNUzQuN!~vo7#GTK{RaUT!d*p+TbCvk;jokchdI;# zIjWjOVSBg4Zq8AegR2tgU>!!8ySt~Q z$3CZLrW&2pvtsQqmVPWP&bbnRLE!d%EV)k9QvZJnkVc>qHFGZQ1D~1)#yweu0>F{C zp_gwTlg^ID^J^PeHWGN>XBfo(ZD(!toTGhs0x?r&S+%-=C0VKVToSnmC(8ssFIUIH zvcI*29w5Yr=G-6APwVU7wt7+vk%o6H+fh1Cvg(X6QQ%Uut6$%qpTF%fw(&ooKZSFJ)^%C-MqBnBJB5KUMzo6 zfc4#hW?mGhza7ucU&qE-#k3_RADcu&PA}lpv76qG;8Or?YZ;>P9iJdiaiV`$1tmtch z;7oLi%iTTEHJA!nlbx7p;2JyS5$GbP;RbvETT;V2uH;2K6SX=1rJ&u!D-Wh0N{*no zZ3_R9jHBpEsoA%f-3u!cc-ip=Y2!aI*OJ@k{_^7!#7{9~T3`@%zt&@M}reJ||-ej9jurJ>n=t z&qzSX$cxz9jHY#3a@a^~aSY4AI--8If>@@ThcSCZOGelNCXIDUe|%YGjL`A0f3L{& zQC%6!lD;3U4LeAX{-#j%@q?)L`fWs7+*P>fJQ8#aR)#9`pr-(#8Zu_7DkX1q|Dv zLGS-P>!7)~F0ZUnoF(h_%$ZQJ%TIS+uLWUKOD+6GXc<`y5Q2`gv|bFu=C3g1ifN4> z1g3Vjc%3WioeNt$l%pIW|6DG2A-lpXi(n}8R`A-mA~atKT%WLs0m=9VI5j#L&6rdp zUm&KeT$f*j+3q)01hcw$wWQ3q8N0!KRx^jpC*`qo=+Rx&BOB%T1yTvt)v)om%d6;OTri-Ya{aN0k?29oU5kCr;3pOeoQie7m! z0_c`AvA0rv%W?kNsar!~E$Cz#UuOT>?o}{8N&!hB zNq{qg7D|&XU+BbOsO|kEOZ2D92UF&u>MvNfe3PC4GB2t8xE;RiI1Ay+`%z2b>~FEn zHN%9A3>%uEl*~^fWcE#eG~Np#GqEnatXg)2INXH*fPPK-o6GW%i)+87?>${tapWqQ zid1%@slrKfJaa*OyZgwE=9d=rxU1L2KLB&8-JCU@CZb{_^b)u!^7h0+^|S~&Yz`*w z-gIy+D+2rEG1VKZGCjPHdbno((&`-(-4^dTxXFGL_RCmO3?oC^(;jF!kK{k2B$Us{ z6`41k{wzsRS$KC8ZM+f^Tng#Nt7b3w}E&eGvvgIo-OpqaPo`&pW=ja=|`{VaY}x(NUqu_M{Je{bT3%A$g3-7h@sC&l>zZ;psetxOHE}If3;; zy270SLKPFK?dF#|tF?{nQF-;oNht|OZb}tu32MoC7R$5^(PWl-zMn*i4oXPNbm~)^ zKO;*<{<)SVWs-6epwFPsAONY>$D1{LJ+QiOy;E0Mt9UgQ>yQCkote^Mf>-`~rIb;Y zGh3hf?wpZpdegPLzBnFxp9pTw6b`M>RMtZ#^?eR&ARA(ALFZGao5vmx3EsW=2<75% zZ2AqMU&2a%l4XXrp3QDO=^u$(&GL#rrdY+5X?JUa1<+Af^~44K;)+^FP-(uzZ7GQb zOq3S8!Prg*jyWN#hL6@vxwbdIN%o&UqPj2ni@ zEmT!PKp1^_As`iDIhXaLH=`k&cO&;pci=21rj)ON$=n5DfJxl*5l5x)s47-O?@uG_y(&S zU0@_l<);ciTdeHn#$*~YVnUuC&G++TP1(_qjlD#8DF`}$k_JZx^;3?(Hqp8**zLz< z@r*Q0PoQ(!RAt~CrIMz#arl4&e?FeiiInvoIcu?^z`Kt2<-k7XcM&h~Bc;OS8B0J% zRZ~K5e&o%LdWaYP>Q+(f7`1;XDx%E8oztwwS_0auH%dZ;)pMK#^sa!PVm&aYpOnTT% z#}{TcEk1aAdIeCa4IZ(QmGFVKWbta!NKf*ofKO)v*LGZlp|bFfql}GzF1%&J=u%90 zP9wUvEkJA>mtciAr~a@G;>%;=~Atzwg=r{}0u z?YQS}*!ipOf}RKojq0=OMp(PqZ^~XCejP;QpQo(R%QG;GjYWDab-QX2uDw+%3@T8e!9{r@-VMCznPp$j#U~ zBEC4?h`q6o$w0Bgoy!Zz?VHs!=(-%wsm{)BBVWtxE z(1n&}kE8u}Zclv^lE*}N%7w*{UtMoc^$#}*8jg2{Rl?_OD{dq%PJK+?4pCPhw=0Zm z;4+%@$wM(3>MlXI*HzmmUwteBh({IBqwSfYAZ7#2ma?ZJfzbhwwSB^IL@=ee3MM70q ziPL(nJse}{XXj{≤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≷zwhW7-E^L~7Lm2dDK QDG2z}(J)l6S9Of}KO4&m`2YX_ literal 0 HcmV?d00001 From 9ff038ed8fe51a459441249af3ff2becd470d868 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 15:53:15 -0500 Subject: [PATCH 38/82] rem --- useless.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 useless.txt diff --git a/useless.txt b/useless.txt deleted file mode 100644 index a0762389b6..0000000000 --- a/useless.txt +++ /dev/null @@ -1 +0,0 @@ -.no, really \ No newline at end of file From f71a918ac8b9d2e273453d1922014ae06f472873 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 15:53:44 -0500 Subject: [PATCH 39/82] screen rem --- icons/mob/screen_alert.dmi | Bin 98842 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/mob/screen_alert.dmi diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi deleted file mode 100644 index 162f5308e8a788af7b295fa2527299e23a53cffb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98842 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 z `&Cm)nl^(GrfoaY9GlLcbx=n_YYo4%4X8#N3g8#9Mj`R#O9?TU1rcvt@1LfMr zMJ9P|j}TzGU(4PxKwl`rGoIoOO2`+Am|;gi8mK{hzPBVN-q03&5!RI_u;`>Z>g)ey zqG)OTH%^tqae4$j6aQHTw-(1DXyf)hwF{Hv>8FOZMlkh{|1lnT{^^ZF=kPp=Ho!F` zEYDh5>SwJJ&1bRu=V76Z$w8lOIS-JeS z-~+Ed>|RIT#iSrzNQwCuXCJV1U)}>%^WPt2B*d{Ii}fQRo_vxOMV>3?U%5(vaOuLH zyZ3%tONci+8^q$VdGf9l!U+1I^q+jiXaHeevf+a?@bm5_Md%*ZA{g5{RmwZxe) z$|Rku>WdWSO~55cjQ`0D4;VW_-E Date: Tue, 16 May 2017 16:00:28 -0500 Subject: [PATCH 40/82] aids --- icons/mob/screen_alert.dmi | Bin 0 -> 100490 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/mob/screen_alert.dmi diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi new file mode 100644 index 0000000000000000000000000000000000000000..13f16aae59ad051a6394129d9b6b4599e98ca5bd GIT binary patch literal 100490 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≤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≷zwhW7-E^L~7Lm2dDK QDG2z}(J)l6S9Of}KO4&m`2YX_ literal 0 HcmV?d00001 From de10ad3ad29a929091acb888b0a35c51e7b36089 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 16 May 2017 16:13:31 -0500 Subject: [PATCH 41/82] Automatic changelog generation for PR #807 [ci skip] --- html/changelogs/AutoChangeLog-pr-807.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-807.yml diff --git a/html/changelogs/AutoChangeLog-pr-807.yml b/html/changelogs/AutoChangeLog-pr-807.yml new file mode 100644 index 0000000000..6ac3995026 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-807.yml @@ -0,0 +1,10 @@ +author: "Robustin" +delete-after: True +changes: + - rscadd: "Blood Cultists can now attempt to claim the position of Cult Master with the approval of a majority of their brethren." + - rscadd: "The Cult Master has access to unique blood magic that will aid them in leading the cult to victory:" + - rscadd: "The Cult Master can mark targets, allowing the entire cult to track them down." + - rscadd: "The Cult Master has single-use, noisy, and overt channeled spell that will summon the entire cult to their location." + - rscadd: "All cultists gain a HUD alert that will assist them in completing their objectives." + - rscadd: "Constructs created by soul shards will now be able to track their master." + - rscadd: "Cultists created outside of cult mode will now get a working sacrifice and summon objective and the summon rune will no longer fail outside of cult mode." From 7b41f8cd55a68b91f8c455612c53d0e5bbdaef71 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 16:22:57 -0500 Subject: [PATCH 42/82] merge --- code/modules/surgery/organs/vocal_cords.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index e817557cc2..edf083cd3f 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -51,7 +51,7 @@ if(C.getorganslot("adamantine_resonator")) to_chat(C, msg) if(isobserver(m)) - var/link = FOLLOW_LINK(m, src) + var/link = FOLLOW_LINK(m, owner) to_chat(m, "[link] [msg]") //Colossus drop, forces the listeners to obey certain commands From f3e8cd3e2d892c8e5283bbc62e837d063956a86e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 21:36:07 -0500 Subject: [PATCH 43/82] CultFix --- code/__HELPERS/game.dm | 156 +++++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 76 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index ec78eb49b2..aaaefd4820 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -415,68 +415,82 @@ return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) -/proc/showCandidatePollWindow(mob/dead/observer/G, poll_time, Question, list/candidates, ignore_category, time_passed, flashwindow = TRUE) +/proc/showCandidatePollWindow(mob/M, poll_time, Question, list/candidates, ignore_category, time_passed, flashwindow = TRUE) set waitfor = 0 - G << 'sound/misc/notice2.ogg' //Alerting them to their consideration + M << 'sound/misc/notice2.ogg' //Alerting them to their consideration if(flashwindow) - window_flash(G.client) - switch(ignore_category ? askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) + window_flash(M.client) + switch(ignore_category ? askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) if(1) - to_chat(G, "Choice registered: Yes.") + to_chat(M, "Choice registered: Yes.") if((world.time-time_passed)>poll_time) - to_chat(G, "Sorry, you were too late for the consideration!") - G << 'sound/machines/buzz-sigh.ogg' + to_chat(M, "Sorry, you were too late for the consideration!") + M << 'sound/machines/buzz-sigh.ogg' else - candidates += G + candidates += M if(2) - to_chat(G, "Choice registered: No.") + to_chat(M, "Choice registered: No.") + candidates -= M if(3) var/list/L = GLOB.poll_ignore[ignore_category] if(!L) GLOB.poll_ignore[ignore_category] = list() - GLOB.poll_ignore[ignore_category] += G.ckey - to_chat(G, "Choice registered: Never for this round.") + GLOB.poll_ignore[ignore_category] += M.ckey + to_chat(M, "Choice registered: Never for this round.") + candidates -= M + else + candidates -= M -/proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0, var/poll_time = 300, var/ignore_category = null, flashwindow = TRUE) - var/list/mob/dead/observer/candidates = list() +/proc/pollGhostCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE) + var/list/candidates = list() + + for(var/mob/dead/observer/G in GLOB.player_list) + candidates += G + + pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category, flashwindow, candidates) + + return candidates + +/proc/pollCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE, list/group = null) var/time_passed = world.time if (!Question) Question = "Would you like to be a special role?" - for(var/mob/dead/observer/G in GLOB.player_list) - if(!G.key || !G.client || (ignore_category && GLOB.poll_ignore[ignore_category] && G.ckey in GLOB.poll_ignore[ignore_category])) + for(var/m in group) + var/mob/M = m + if(!M.key || !M.client || (ignore_category && GLOB.poll_ignore[ignore_category] && M.ckey in GLOB.poll_ignore[ignore_category])) continue if(be_special_flag) - if(!(G.client.prefs) || !(be_special_flag in G.client.prefs.be_special)) + if(!(M.client.prefs) || !(be_special_flag in M.client.prefs.be_special)) continue - if (gametypeCheck) - if(!gametypeCheck.age_check(G.client)) + if(gametypeCheck) + if(!gametypeCheck.age_check(M.client)) continue - if (jobbanType) - if(jobban_isbanned(G, jobbanType) || jobban_isbanned(G, "Syndicate")) + if(jobbanType) + if(jobban_isbanned(M, jobbanType) || jobban_isbanned(M, "Syndicate")) continue - showCandidatePollWindow(G, poll_time, Question, candidates, ignore_category, time_passed, flashwindow) + showCandidatePollWindow(M, poll_time, Question, group, ignore_category, time_passed, flashwindow) sleep(poll_time) - //Check all our candidates, to make sure they didn't log off during the wait period. - for(var/mob/dead/observer/G in candidates) - if(!G.key || !G.client) - candidates.Remove(G) + //Check all our candidates, to make sure they didn't log off or get deleted during the wait period. + for(var/mob/M in group) + if(!M.key || !M.client) + group -= M - listclearnulls(candidates) + listclearnulls(group) - return candidates + return group /proc/pollCandidatesForMob(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, mob/M, ignore_category = null) - var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + var/list/L = pollGhostCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) if(!M || QDELETED(M) || !M.loc) return list() return L /proc/pollCandidatesForMobs(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, list/mobs, ignore_category = null) - var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + var/list/L = pollGhostCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) var/i=1 for(var/v in mobs) var/atom/A = v @@ -487,62 +501,52 @@ return L /proc/pollCultists(var/mob/living/Nominee) // Cult Master Poll - var/time_passed = world.time - var/list/yes_voters = new - var/list/cult_total = new if(world.time < CULT_POLL_WAIT) - Nominee << "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds" + to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds.") return for(var/datum/mind/B in SSticker.mode.cult) - var/mob/living/M = B.current - if(!M.incapacitated()) - M << 'sound/hallucinations/im_here1.ogg' - M.verbs -= /mob/living/proc/cult_master - to_chat(M, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") + if(B.current) + B.current.verbs -= /mob/living/proc/cult_master + if(!B.current.incapacitated()) + B.current << 'sound/hallucinations/im_here1.ogg' + to_chat(B.current, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") sleep(250) + var/list/asked_cultists = list() for(var/datum/mind/B in SSticker.mode.cult) - var/mob/living/M = B.current - if(!M.incapacitated()) - M << 'sound/magic/exit_blood.ogg' - switch(askuser(M,"[Nominee] seeks to lead your cult, do you support them?","Please answer in 20 seconds!","Yes","No","Abstain", StealFocus=0, Timeout=200)) - if(1) - if((world.time-time_passed)>500) - to_chat(M, "Sorry, your vote came too late!") - M << 'sound/machines/buzz-sigh.ogg' - else - M << "Choice registered: Yes." - yes_voters += M - cult_total += M - if(2) - if((world.time-time_passed)>500) - to_chat(M, "Sorry, your vote came too late!") - M << 'sound/machines/buzz-sigh.ogg' - else - to_chat(M, "Choice registered: No.") - cult_total += M - if(3) - to_chat(M, "Choice registered: Abstain.") + if(B.current && B.current != Nominee && !B.current.incapacitated()) + B.current << 'sound/magic/exit_blood.ogg' + asked_cultists += B.current + var/list/yes_voters = pollCandidates("[Nominee] seeks to lead your cult, do you support [Nominee.p_them()]?", poll_time = 1200, group = asked_cultists) sleep(300) - if(yes_voters.len > (cult_total.len/2)) - var/datum/action/innate/cultmast/finalreck/FinalReckoning = new() - var/datum/action/innate/cultmast/cultmark/Mark = new() - FinalReckoning.Grant(Nominee) - Mark.Grant(Nominee) - Nominee.mind.special_role = "Cult Master" - Nominee.update_action_buttons_icon() - Nominee.apply_status_effect(/datum/status_effect/cult_master) - SSticker.mode.set_antag_hud(Nominee,"cultmaster") - GLOB.cult_mastered = TRUE + if(QDELETED(Nominee) || Nominee.incapacitated()) for(var/datum/mind/B in SSticker.mode.cult) - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has the cult's support and is now their master. Follow their orders to the best of your ability!") - return TRUE - else - for(var/datum/mind/B in SSticker.mode.cult) - if(!B.current.incapacitated()) - to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") + if(B.current) B.current.verbs += /mob/living/proc/cult_master + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has died in the process of attempting to win the cult's support!") return FALSE + if(!Nominee.mind) + for(var/datum/mind/B in SSticker.mode.cult) + if(B.current) + B.current.verbs += /mob/living/proc/cult_master + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has gone insane and catatonic in the process of attempting to win the cult's support!") + return FALSE + + if(LAZYLEN(yes_voters) <= LAZYLEN(asked_cultists) * 0.5) + for(var/datum/mind/B in SSticker.mode.cult) + if(B.current) + B.current.verbs += /mob/living/proc/cult_master + if(!B.current.incapacitated()) + to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") + return FALSE + SSticker.mode.remove_cultist(Nominee.mind, FALSE) + Nominee.mind.add_antag_datum(ANTAG_DATUM_CULT_MASTER) + GLOB.cult_mastered = TRUE + for(var/datum/mind/B in SSticker.mode.cult) + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has won the cult's support and is now their master. Follow [Nominee.p_their()] orders to the best of your ability!") + return TRUE /proc/poll_helper(var/mob/living/M) From be1702ff0df9bb28cc0d7a494ff94e94400d9209 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 22:49:23 -0500 Subject: [PATCH 44/82] Revert "CultFix" This reverts commit f3e8cd3e2d892c8e5283bbc62e837d063956a86e. --- code/__HELPERS/game.dm | 154 ++++++++++++++++++++--------------------- 1 file changed, 75 insertions(+), 79 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index aaaefd4820..ec78eb49b2 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -415,82 +415,68 @@ return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) -/proc/showCandidatePollWindow(mob/M, poll_time, Question, list/candidates, ignore_category, time_passed, flashwindow = TRUE) +/proc/showCandidatePollWindow(mob/dead/observer/G, poll_time, Question, list/candidates, ignore_category, time_passed, flashwindow = TRUE) set waitfor = 0 - M << 'sound/misc/notice2.ogg' //Alerting them to their consideration + G << 'sound/misc/notice2.ogg' //Alerting them to their consideration if(flashwindow) - window_flash(M.client) - switch(ignore_category ? askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) + window_flash(G.client) + switch(ignore_category ? askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) if(1) - to_chat(M, "Choice registered: Yes.") + to_chat(G, "Choice registered: Yes.") if((world.time-time_passed)>poll_time) - to_chat(M, "Sorry, you were too late for the consideration!") - M << 'sound/machines/buzz-sigh.ogg' + to_chat(G, "Sorry, you were too late for the consideration!") + G << 'sound/machines/buzz-sigh.ogg' else - candidates += M + candidates += G if(2) - to_chat(M, "Choice registered: No.") - candidates -= M + to_chat(G, "Choice registered: No.") if(3) var/list/L = GLOB.poll_ignore[ignore_category] if(!L) GLOB.poll_ignore[ignore_category] = list() - GLOB.poll_ignore[ignore_category] += M.ckey - to_chat(M, "Choice registered: Never for this round.") - candidates -= M - else - candidates -= M + GLOB.poll_ignore[ignore_category] += G.ckey + to_chat(G, "Choice registered: Never for this round.") -/proc/pollGhostCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE) - var/list/candidates = list() - - for(var/mob/dead/observer/G in GLOB.player_list) - candidates += G - - pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category, flashwindow, candidates) - - return candidates - -/proc/pollCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE, list/group = null) +/proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0, var/poll_time = 300, var/ignore_category = null, flashwindow = TRUE) + var/list/mob/dead/observer/candidates = list() var/time_passed = world.time if (!Question) Question = "Would you like to be a special role?" - for(var/m in group) - var/mob/M = m - if(!M.key || !M.client || (ignore_category && GLOB.poll_ignore[ignore_category] && M.ckey in GLOB.poll_ignore[ignore_category])) + for(var/mob/dead/observer/G in GLOB.player_list) + if(!G.key || !G.client || (ignore_category && GLOB.poll_ignore[ignore_category] && G.ckey in GLOB.poll_ignore[ignore_category])) continue if(be_special_flag) - if(!(M.client.prefs) || !(be_special_flag in M.client.prefs.be_special)) + if(!(G.client.prefs) || !(be_special_flag in G.client.prefs.be_special)) continue - if(gametypeCheck) - if(!gametypeCheck.age_check(M.client)) + if (gametypeCheck) + if(!gametypeCheck.age_check(G.client)) continue - if(jobbanType) - if(jobban_isbanned(M, jobbanType) || jobban_isbanned(M, "Syndicate")) + if (jobbanType) + if(jobban_isbanned(G, jobbanType) || jobban_isbanned(G, "Syndicate")) continue - showCandidatePollWindow(M, poll_time, Question, group, ignore_category, time_passed, flashwindow) + showCandidatePollWindow(G, poll_time, Question, candidates, ignore_category, time_passed, flashwindow) sleep(poll_time) - //Check all our candidates, to make sure they didn't log off or get deleted during the wait period. - for(var/mob/M in group) - if(!M.key || !M.client) - group -= M + //Check all our candidates, to make sure they didn't log off during the wait period. + for(var/mob/dead/observer/G in candidates) + if(!G.key || !G.client) + candidates.Remove(G) - listclearnulls(group) + listclearnulls(candidates) - return group + return candidates /proc/pollCandidatesForMob(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, mob/M, ignore_category = null) - var/list/L = pollGhostCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) if(!M || QDELETED(M) || !M.loc) return list() return L /proc/pollCandidatesForMobs(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, list/mobs, ignore_category = null) - var/list/L = pollGhostCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) var/i=1 for(var/v in mobs) var/atom/A = v @@ -501,53 +487,63 @@ return L /proc/pollCultists(var/mob/living/Nominee) // Cult Master Poll + var/time_passed = world.time + var/list/yes_voters = new + var/list/cult_total = new if(world.time < CULT_POLL_WAIT) - to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds.") + Nominee << "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds" return for(var/datum/mind/B in SSticker.mode.cult) - if(B.current) - B.current.verbs -= /mob/living/proc/cult_master - if(!B.current.incapacitated()) - B.current << 'sound/hallucinations/im_here1.ogg' - to_chat(B.current, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") + var/mob/living/M = B.current + if(!M.incapacitated()) + M << 'sound/hallucinations/im_here1.ogg' + M.verbs -= /mob/living/proc/cult_master + to_chat(M, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") sleep(250) - var/list/asked_cultists = list() for(var/datum/mind/B in SSticker.mode.cult) - if(B.current && B.current != Nominee && !B.current.incapacitated()) - B.current << 'sound/magic/exit_blood.ogg' - asked_cultists += B.current - var/list/yes_voters = pollCandidates("[Nominee] seeks to lead your cult, do you support [Nominee.p_them()]?", poll_time = 1200, group = asked_cultists) + var/mob/living/M = B.current + if(!M.incapacitated()) + M << 'sound/magic/exit_blood.ogg' + switch(askuser(M,"[Nominee] seeks to lead your cult, do you support them?","Please answer in 20 seconds!","Yes","No","Abstain", StealFocus=0, Timeout=200)) + if(1) + if((world.time-time_passed)>500) + to_chat(M, "Sorry, your vote came too late!") + M << 'sound/machines/buzz-sigh.ogg' + else + M << "Choice registered: Yes." + yes_voters += M + cult_total += M + if(2) + if((world.time-time_passed)>500) + to_chat(M, "Sorry, your vote came too late!") + M << 'sound/machines/buzz-sigh.ogg' + else + to_chat(M, "Choice registered: No.") + cult_total += M + if(3) + to_chat(M, "Choice registered: Abstain.") sleep(300) - if(QDELETED(Nominee) || Nominee.incapacitated()) + if(yes_voters.len > (cult_total.len/2)) + var/datum/action/innate/cultmast/finalreck/FinalReckoning = new() + var/datum/action/innate/cultmast/cultmark/Mark = new() + FinalReckoning.Grant(Nominee) + Mark.Grant(Nominee) + Nominee.mind.special_role = "Cult Master" + Nominee.update_action_buttons_icon() + Nominee.apply_status_effect(/datum/status_effect/cult_master) + SSticker.mode.set_antag_hud(Nominee,"cultmaster") + GLOB.cult_mastered = TRUE for(var/datum/mind/B in SSticker.mode.cult) - if(B.current) - B.current.verbs += /mob/living/proc/cult_master - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has died in the process of attempting to win the cult's support!") - return FALSE - if(!Nominee.mind) + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has the cult's support and is now their master. Follow their orders to the best of your ability!") + return TRUE + else for(var/datum/mind/B in SSticker.mode.cult) - if(B.current) + if(!B.current.incapacitated()) + to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") B.current.verbs += /mob/living/proc/cult_master - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has gone insane and catatonic in the process of attempting to win the cult's support!") return FALSE - if(LAZYLEN(yes_voters) <= LAZYLEN(asked_cultists) * 0.5) - for(var/datum/mind/B in SSticker.mode.cult) - if(B.current) - B.current.verbs += /mob/living/proc/cult_master - if(!B.current.incapacitated()) - to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") - return FALSE - SSticker.mode.remove_cultist(Nominee.mind, FALSE) - Nominee.mind.add_antag_datum(ANTAG_DATUM_CULT_MASTER) - GLOB.cult_mastered = TRUE - for(var/datum/mind/B in SSticker.mode.cult) - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has won the cult's support and is now their master. Follow [Nominee.p_their()] orders to the best of your ability!") - return TRUE - /proc/poll_helper(var/mob/living/M) /proc/makeBody(mob/dead/observer/G_found) // Uses stripped down and bastardized code from respawn character From 45c283a93557230c50dfabc4b76e68ff8ff44ba8 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 22:59:41 -0500 Subject: [PATCH 45/82] applies the previous fixes for cult on a closed PR --- code/__DEFINES/antagonists.dm | 7 +- code/__HELPERS/game.dm | 156 +++++++++-------- code/_globalvars/game_modes.dm | 14 +- code/_onclick/hud/alert.dm | 21 ++- code/datums/antagonists/datum_cult.dm | 68 ++++++-- .../scripture_applications.dm | 2 +- code/game/gamemodes/cult/cult_comms.dm | 163 ++++++++++-------- code/game/gamemodes/cult/ritual.dm | 4 +- code/game/gamemodes/wizard/soulstone.dm | 2 +- .../objects/items/weapons/holy_weapons.dm | 2 +- code/modules/admin/verbs/one_click_antag.dm | 10 +- code/modules/events/ghost_role.dm | 2 +- .../carbon/alien/special/alien_embryo.dm | 4 +- .../living/simple_animal/guardian/guardian.dm | 4 +- 14 files changed, 263 insertions(+), 196 deletions(-) diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index d30a2d098f..433f44e095 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -1,3 +1,4 @@ -#define ANTAG_DATUM_CULT /datum/antagonist/cult -#define ANTAG_DATUM_CLOCKCULT /datum/antagonist/clockcult -#define ANTAG_DATUM_CLOCKCULT_SILENT /datum/antagonist/clockcult/silent \ No newline at end of file +#define ANTAG_DATUM_CULT /datum/antagonist/cult +#define ANTAG_DATUM_CULT_MASTER /datum/antagonist/cult/master +#define ANTAG_DATUM_CLOCKCULT /datum/antagonist/clockcult +#define ANTAG_DATUM_CLOCKCULT_SILENT /datum/antagonist/clockcult/silent \ No newline at end of file diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index ec78eb49b2..db405d2878 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -415,68 +415,83 @@ return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) -/proc/showCandidatePollWindow(mob/dead/observer/G, poll_time, Question, list/candidates, ignore_category, time_passed, flashwindow = TRUE) +/proc/showCandidatePollWindow(mob/M, poll_time, Question, list/candidates, ignore_category, time_passed, flashwindow = TRUE) set waitfor = 0 - G << 'sound/misc/notice2.ogg' //Alerting them to their consideration + M << 'sound/misc/notice2.ogg' //Alerting them to their consideration if(flashwindow) - window_flash(G.client) - switch(ignore_category ? askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) + window_flash(M.client) + switch(ignore_category ? askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) if(1) - to_chat(G, "Choice registered: Yes.") + to_chat(M, "Choice registered: Yes.") if((world.time-time_passed)>poll_time) - to_chat(G, "Sorry, you were too late for the consideration!") - G << 'sound/machines/buzz-sigh.ogg' + to_chat(M, "Sorry, you answered too late to be considered!") + M << 'sound/machines/buzz-sigh.ogg' + candidates -= M else - candidates += G + candidates += M if(2) - to_chat(G, "Choice registered: No.") + to_chat(M, "Choice registered: No.") + candidates -= M if(3) var/list/L = GLOB.poll_ignore[ignore_category] if(!L) GLOB.poll_ignore[ignore_category] = list() - GLOB.poll_ignore[ignore_category] += G.ckey - to_chat(G, "Choice registered: Never for this round.") + GLOB.poll_ignore[ignore_category] += M.ckey + to_chat(M, "Choice registered: Never for this round.") + candidates -= M + else + candidates -= M -/proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0, var/poll_time = 300, var/ignore_category = null, flashwindow = TRUE) - var/list/mob/dead/observer/candidates = list() +/proc/pollGhostCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE) + var/list/candidates = list() + + for(var/mob/dead/observer/G in GLOB.player_list) + candidates += G + + pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category, flashwindow, candidates) + + return candidates + +/proc/pollCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE, list/group = null) var/time_passed = world.time if (!Question) Question = "Would you like to be a special role?" - for(var/mob/dead/observer/G in GLOB.player_list) - if(!G.key || !G.client || (ignore_category && GLOB.poll_ignore[ignore_category] && G.ckey in GLOB.poll_ignore[ignore_category])) + for(var/m in group) + var/mob/M = m + if(!M.key || !M.client || (ignore_category && GLOB.poll_ignore[ignore_category] && M.ckey in GLOB.poll_ignore[ignore_category])) continue if(be_special_flag) - if(!(G.client.prefs) || !(be_special_flag in G.client.prefs.be_special)) + if(!(M.client.prefs) || !(be_special_flag in M.client.prefs.be_special)) continue - if (gametypeCheck) - if(!gametypeCheck.age_check(G.client)) + if(gametypeCheck) + if(!gametypeCheck.age_check(M.client)) continue - if (jobbanType) - if(jobban_isbanned(G, jobbanType) || jobban_isbanned(G, "Syndicate")) + if(jobbanType) + if(jobban_isbanned(M, jobbanType) || jobban_isbanned(M, "Syndicate")) continue - showCandidatePollWindow(G, poll_time, Question, candidates, ignore_category, time_passed, flashwindow) + showCandidatePollWindow(M, poll_time, Question, group, ignore_category, time_passed, flashwindow) sleep(poll_time) - //Check all our candidates, to make sure they didn't log off during the wait period. - for(var/mob/dead/observer/G in candidates) - if(!G.key || !G.client) - candidates.Remove(G) + //Check all our candidates, to make sure they didn't log off or get deleted during the wait period. + for(var/mob/M in group) + if(!M.key || !M.client) + group -= M - listclearnulls(candidates) + listclearnulls(group) - return candidates + return group /proc/pollCandidatesForMob(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, mob/M, ignore_category = null) - var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + var/list/L = pollGhostCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) if(!M || QDELETED(M) || !M.loc) return list() return L /proc/pollCandidatesForMobs(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, list/mobs, ignore_category = null) - var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + var/list/L = pollGhostCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) var/i=1 for(var/v in mobs) var/atom/A = v @@ -487,62 +502,51 @@ return L /proc/pollCultists(var/mob/living/Nominee) // Cult Master Poll - var/time_passed = world.time - var/list/yes_voters = new - var/list/cult_total = new if(world.time < CULT_POLL_WAIT) - Nominee << "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds" + to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds.") return for(var/datum/mind/B in SSticker.mode.cult) - var/mob/living/M = B.current - if(!M.incapacitated()) - M << 'sound/hallucinations/im_here1.ogg' - M.verbs -= /mob/living/proc/cult_master - to_chat(M, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") + if(B.current) + B.current.verbs -= /mob/living/proc/cult_master + if(!B.current.incapacitated()) + B.current << 'sound/hallucinations/im_here1.ogg' + to_chat(B.current, "Acolyte [Nominee] has asserted that they are worthy of leading the cult. A vote will be called shortly.") sleep(250) + var/list/asked_cultists = list() for(var/datum/mind/B in SSticker.mode.cult) - var/mob/living/M = B.current - if(!M.incapacitated()) - M << 'sound/magic/exit_blood.ogg' - switch(askuser(M,"[Nominee] seeks to lead your cult, do you support them?","Please answer in 20 seconds!","Yes","No","Abstain", StealFocus=0, Timeout=200)) - if(1) - if((world.time-time_passed)>500) - to_chat(M, "Sorry, your vote came too late!") - M << 'sound/machines/buzz-sigh.ogg' - else - M << "Choice registered: Yes." - yes_voters += M - cult_total += M - if(2) - if((world.time-time_passed)>500) - to_chat(M, "Sorry, your vote came too late!") - M << 'sound/machines/buzz-sigh.ogg' - else - to_chat(M, "Choice registered: No.") - cult_total += M - if(3) - to_chat(M, "Choice registered: Abstain.") + if(B.current && B.current != Nominee && !B.current.incapacitated()) + B.current << 'sound/magic/exit_blood.ogg' + asked_cultists += B.current + var/list/yes_voters = pollCandidates("[Nominee] seeks to lead your cult, do you support [Nominee.p_them()]?", poll_time = 1200, group = asked_cultists) sleep(300) - if(yes_voters.len > (cult_total.len/2)) - var/datum/action/innate/cultmast/finalreck/FinalReckoning = new() - var/datum/action/innate/cultmast/cultmark/Mark = new() - FinalReckoning.Grant(Nominee) - Mark.Grant(Nominee) - Nominee.mind.special_role = "Cult Master" - Nominee.update_action_buttons_icon() - Nominee.apply_status_effect(/datum/status_effect/cult_master) - SSticker.mode.set_antag_hud(Nominee,"cultmaster") - GLOB.cult_mastered = TRUE + if(QDELETED(Nominee) || Nominee.incapacitated()) for(var/datum/mind/B in SSticker.mode.cult) - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has the cult's support and is now their master. Follow their orders to the best of your ability!") - return TRUE - else - for(var/datum/mind/B in SSticker.mode.cult) - if(!B.current.incapacitated()) - to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") + if(B.current) B.current.verbs += /mob/living/proc/cult_master + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has died in the process of attempting to win the cult's support!") return FALSE + if(!Nominee.mind) + for(var/datum/mind/B in SSticker.mode.cult) + if(B.current) + B.current.verbs += /mob/living/proc/cult_master + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has gone insane and catatonic in the process of attempting to win the cult's support!") + return FALSE + if(LAZYLEN(yes_voters) <= LAZYLEN(asked_cultists) * 0.5) + for(var/datum/mind/B in SSticker.mode.cult) + if(B.current) + B.current.verbs += /mob/living/proc/cult_master + if(!B.current.incapacitated()) + to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") + return FALSE + SSticker.mode.remove_cultist(Nominee.mind, FALSE) + Nominee.mind.add_antag_datum(ANTAG_DATUM_CULT_MASTER) + GLOB.cult_mastered = TRUE + for(var/datum/mind/B in SSticker.mode.cult) + if(!B.current.incapacitated()) + to_chat(B.current,"[Nominee] has won the cult's support and is now their master. Follow [Nominee.p_their()] orders to the best of your ability!") + return TRUE /proc/poll_helper(var/mob/living/M) diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm index 912ae78a04..299113795d 100644 --- a/code/_globalvars/game_modes.dm +++ b/code/_globalvars/game_modes.dm @@ -3,10 +3,12 @@ GLOBAL_VAR_INIT(secret_force_mode, "secret") // if this is anything but "secret" GLOBAL_VAR_INIT(wavesecret, 0) // meteor mode, delays wave progression, terrible name GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report - -// Cult, needs to be global so admin cultists are functional -GLOBAL_VAR_INIT(blood_target, null) // Cult Master's target or Construct's Master -GLOBAL_DATUM(sac_mind, /datum/mind) -GLOBAL_VAR_INIT(sac_image, null) -GLOBAL_VAR_INIT(cult_mastered, FALSE) + +// Cult, needs to be global so admin cultists are functional +GLOBAL_VAR_INIT(blood_target, null) // Cult Master's target or Construct's Master +GLOBAL_DATUM(blood_target_image, /image) +GLOBAL_DATUM(sac_mind, /datum/mind) +GLOBAL_VAR_INIT(sac_image, null) +GLOBAL_VAR_INIT(cult_mastered, FALSE) +GLOBAL_VAR_INIT(reckoning_complete, FALSE) GLOBAL_VAR_INIT(sac_complete, FALSE) \ No newline at end of file diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index b95750009f..7cbd997db6 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -265,20 +265,20 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." desc = "Allows you to sense blood that is manipulated by dark magicks." icon_state = "cult_sense" alerttooltipstyle = "cult" - var/image/sacimage + var/static/image/narnar var/angle = 0 var/mob/living/simple_animal/hostile/construct/Cviewer = null /obj/screen/alert/bloodsense/Initialize() - ..() - sacimage = GLOB.sac_image + . = ..() + if(!narnar) + narnar = new('icons/mob/screen_alert.dmi', "mini_nar") START_PROCESSING(SSprocessing, src) /obj/screen/alert/bloodsense/Destroy() - sacimage = null - Cviewer = null - STOP_PROCESSING(SSprocessing, src) - return ..() + Cviewer = null + STOP_PROCESSING(SSprocessing, src) + return ..() /obj/screen/alert/bloodsense/process() var/atom/blood_target @@ -298,7 +298,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." cut_overlays() icon_state = "runed_sense0" desc = "Nar-Sie demands that [GLOB.sac_mind] be sacrificed before the summoning ritual can begin." - add_overlay(sacimage) + add_overlay(GLOB.sac_image) return if(!blood_target && GLOB.sac_complete) if(icon_state == "runed_sense1") @@ -307,7 +307,6 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." angle = 0 cut_overlays() icon_state = "runed_sense1" - var/image/narnar = new('icons/mob/screen_alert.dmi', "mini_nar") desc = "The sacrifice is complete, prepare to summon Nar-Sie!" add_overlay(narnar) return @@ -318,8 +317,8 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." var/area/A = get_area(P) if(P.z != Q.z) //The target is on a different Z level, we cannot sense that far. return - desc = "You are currently tracking [blood_target] in [A.name]" - var/target_angle = Get_Angle(mob_viewer, blood_target) + desc = "You are currently tracking [blood_target] in [A.name]." + var/target_angle = Get_Angle(Q, P) var/target_dist = get_dist(P, Q) cut_overlays() switch(target_dist) diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm index 59f165ff37..9016331440 100644 --- a/code/datums/antagonists/datum_cult.dm +++ b/code/datums/antagonists/datum_cult.dm @@ -2,20 +2,21 @@ var/datum/action/innate/cultcomm/communion = new /datum/antagonist/cult/Destroy() - qdel(communion) + QDEL_NULL(communion) return ..() /datum/antagonist/cult/proc/add_objectives() var/list/target_candidates = list() for(var/mob/living/carbon/human/player in GLOB.player_list) - if(player.mind && !is_convertable_to_cult(player) && (player != owner) && isliving(player)) + if(player.mind && !player.mind.has_antag_datum(ANTAG_DATUM_CULT) && !is_convertable_to_cult(player) && (player != owner) && player.stat != DEAD) target_candidates += player.mind if(target_candidates.len == 0) message_admins("Cult Sacrifice: Could not find unconvertable target, checking for convertable target.") for(var/mob/living/carbon/human/player in GLOB.player_list) - if(player.mind && (player != owner) && isliving(player)) + if(player.mind && !player.mind.has_antag_datum(ANTAG_DATUM_CULT) && (player != owner) && player.stat != DEAD) target_candidates += player.mind - if(target_candidates.len > 0) + listclearnulls(target_candidates) + if(LAZYLEN(target_candidates)) GLOB.sac_mind = pick(target_candidates) if(!GLOB.sac_mind) message_admins("Cult Sacrifice: ERROR - Null target chosen!") @@ -33,7 +34,6 @@ GLOB.sac_complete = TRUE SSticker.mode.cult_objectives += "sacrifice" SSticker.mode.cult_objectives += "eldergod" - on_gain() /datum/antagonist/cult/proc/cult_memorization(datum/mind/cult_mind) var/mob/living/current = cult_mind.current @@ -47,7 +47,8 @@ explanation = "The veil has already been weakened here, proceed to the final objective." if("eldergod") explanation = "Summon Nar-Sie by invoking the rune 'Summon Nar-Sie' with nine acolytes on it. You must do this after sacrificing your target." - to_chat(current, "Objective #[obj_count]: [explanation]") + if(!silent) + to_chat(current, "Objective #[obj_count]: [explanation]") cult_mind.memory += "Objective #[obj_count]: [explanation]
      " /datum/antagonist/cult/can_be_owned(datum/mind/new_owner) @@ -58,16 +59,16 @@ /datum/antagonist/cult/on_gain() . = ..() var/mob/living/current = owner.current - if(SSticker.mode.cult_objectives.len == 0) + if(!LAZYLEN(SSticker.mode.cult_objectives)) add_objectives() - return SSticker.mode.cult += owner // Only add after they've been given objectives cult_memorization(owner) if(jobban_isbanned(current, ROLE_CULTIST)) addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, current, ROLE_CULTIST, ROLE_CULTIST), 0) SSticker.mode.update_cult_icons_added(owner) - current.throw_alert("bloodsense", /obj/screen/alert/bloodsense) current.log_message("Has been converted to the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) + if(GLOB.blood_target && GLOB.blood_target_image && current.client) + current.client.images += GLOB.blood_target_image /datum/antagonist/cult/apply_innate_effects(mob/living/mob_override) . = ..() @@ -79,6 +80,7 @@ if(!GLOB.cult_mastered) current.verbs += /mob/living/proc/cult_master communion.Grant(current) + current.throw_alert("bloodsense", /obj/screen/alert/bloodsense) /datum/antagonist/cult/remove_innate_effects(mob/living/mob_override) . = ..() @@ -97,8 +99,50 @@ owner.wipe_memory() SSticker.mode.cult -= owner SSticker.mode.update_cult_icons_removed(owner) - to_chat(owner, "An unfamiliar white light flashes through your mind, cleansing the taint of the Dark One and all your memories as its servant.") - owner.current.log_message("Has renounced the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) if(!silent) - owner.current.visible_message("[owner] looks like [owner.current.p_they()] just reverted to their old faith!") + to_chat(owner.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.") + owner.current.log_message("Has renounced the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) + owner.current.visible_message("[owner.current] looks like [owner.current.p_they()] just reverted to their old faith!") + if(GLOB.blood_target && GLOB.blood_target_image && owner.current.client) + owner.current.client.images -= GLOB.blood_target_image . = ..() + +/datum/antagonist/cult/master + var/datum/action/innate/cultmast/finalreck/reckoning = new + var/datum/action/innate/cultmast/cultmark/bloodmark = new + +/datum/antagonist/cult/master/Destroy() + QDEL_NULL(reckoning) + QDEL_NULL(bloodmark) + return ..() + +/datum/antagonist/cult/master/on_gain() + . = ..() + var/mob/living/current = owner.current + SSticker.mode.set_antag_hud(current, "cultmaster") + +/datum/antagonist/cult/master/greet() + to_chat(owner.current, "You are the cult's Master. As the cult's Master, you have a unique title and loud voice when communicating, are capable of marking \ + targets, such as a location or a noncultist, to direct the cult to them, and, finally, you are capable of summoning the entire living cult to your location once.") + to_chat(owner.current, "Use these abilities to direct the cult to victory at any cost.") + +/datum/antagonist/cult/master/apply_innate_effects(mob/living/mob_override) + . = ..() + var/mob/living/current = owner.current + if(mob_override) + current = mob_override + if(!GLOB.reckoning_complete) + reckoning.Grant(current) + bloodmark.Grant(current) + current.update_action_buttons_icon() + current.apply_status_effect(/datum/status_effect/cult_master) + +/datum/antagonist/cult/master/remove_innate_effects(mob/living/mob_override) + . = ..() + var/mob/living/current = owner.current + if(mob_override) + current = mob_override + reckoning.Remove(current) + bloodmark.Remove(current) + current.update_action_buttons_icon() + current.remove_status_effect(/datum/status_effect/cult_master) diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm index aa1a07ac2f..21da8fab00 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm @@ -135,7 +135,7 @@ if(!check_special_requirements()) return FALSE to_chat(invoker, "The tendril shivers slightly as it selects a marauder...") - var/list/marauder_candidates = pollCandidates("Do you want to play as the clockwork marauder of [invoker.real_name]?", ROLE_SERVANT_OF_RATVAR, null, FALSE, 50, POLL_IGNORE_CLOCKWORK_MARAUDER) + var/list/marauder_candidates = pollGhostCandidates("Do you want to play as the clockwork marauder of [invoker.real_name]?", ROLE_SERVANT_OF_RATVAR, null, FALSE, 50, POLL_IGNORE_CLOCKWORK_MARAUDER) if(!check_special_requirements()) return FALSE if(!marauder_candidates.len) diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm index ff8ee97de7..ffaaf46b80 100644 --- a/code/game/gamemodes/cult/cult_comms.dm +++ b/code/game/gamemodes/cult/cult_comms.dm @@ -24,12 +24,19 @@ var/my_message if(!message) return - user.whisper("O bidai nabora se[pick("'","`")]sma!") + user.whisper("O bidai nabora se[pick("'","`")]sma!", language = /datum/language/common) user.whisper(html_decode(message)) - if (user.mind.special_role == "Cult Master") - my_message = "[(ishuman(user) ? "Master" : "Lord")] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]" - else - my_message = "[(ishuman(user) ? "Acolyte" : "Construct")] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]" + var/title = "Acolyte" + var/span = "cultitalic" + if(user.mind && user.mind.has_antag_datum(ANTAG_DATUM_CULT_MASTER)) + span = "cultlarge" + if(ishuman(user)) + title = "Master" + else + title = "Lord" + else if(!ishuman(user)) + title = "Construct" + my_message = "[title] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]" for(var/mob/M in GLOB.mob_list) if(iscultist(M)) to_chat(M, my_message) @@ -83,83 +90,88 @@ check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS /datum/action/innate/cultmast/IsAvailable() - if(owner.mind.special_role != "Cult Master") + if(!owner.mind || !owner.mind.has_antag_datum(ANTAG_DATUM_CULT_MASTER)) return 0 return ..() /datum/action/innate/cultmast/finalreck name = "Final Reckoning" - desc = "A single-use spell that brings the entire cult to the master's location" + desc = "A single-use spell that brings the entire cult to the master's location." button_icon_state = "sintouch" /datum/action/innate/cultmast/finalreck/Activate() - var/list/destinations = list() - for(var/turf/T in orange(1,owner)) - if(istype(T, /turf/open)) - destinations += T for(var/i in 1 to 4) - owner.chant(i) + chant(i) + var/list/destinations = list() + for(var/turf/T in orange(1, owner)) + if(!is_blocked_turf(T, TRUE)) + destinations += T + if(!LAZYLEN(destinations)) + to_chat(owner, "You need more space to summon the cult!") + return if(do_after(owner, 30, target = owner)) for(var/datum/mind/B in SSticker.mode.cult) - var/mob/living/M = B.current - if(isliving(M) && M.stat != DEAD) - var/turf/mobloc = get_turf(M) + if(B.current && B.current.stat != DEAD) + var/turf/mobloc = get_turf(B.current) switch(i) - if (1) - new /obj/effect/overlay/temp/cult/sparks(mobloc, M.dir) + if(1) + new /obj/effect/overlay/temp/cult/sparks(mobloc, B.current.dir) playsound(mobloc, "sparks", 50, 1) - if (2) - new /obj/effect/overlay/temp/dir_setting/cult/phase/out(mobloc, M.dir) + if(2) + new /obj/effect/overlay/temp/dir_setting/cult/phase/out(mobloc, B.current.dir) playsound(mobloc, "sparks", 75, 1) - if (3) - new /obj/effect/overlay/temp/dir_setting/cult/phase(mobloc, M.dir) + if(3) + new /obj/effect/overlay/temp/dir_setting/cult/phase(mobloc, B.current.dir) playsound(mobloc, "sparks", 100, 1) - if (4) + if(4) playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, 1) - if(M != owner) + if(B.current != owner) + B.current.setDir(SOUTH) var/turf/final = pick(destinations) new /obj/effect/overlay/temp/cult/blood(final) - addtimer(CALLBACK(M, /mob/.proc/reckon, final), 10) - else - for(var/datum/action/innate/cultmast/finalreck/H in owner.actions) - qdel(H) + addtimer(CALLBACK(B.current, /mob/.proc/reckon, final), 10) else return + GLOB.reckoning_complete = TRUE + Remove(owner) -/mob/proc/reckon(var/turf/final) +/mob/proc/reckon(turf/final) new /obj/effect/overlay/temp/cult/blood/out(get_turf(src)) forceMove(final) -/mob/proc/chant(var/i) - switch(i) - if (1) - say("C'arta Forbici!") - if (2) - say("Pleggh E'ntrath!") - playsound(get_turf(src),'sound/magic/clockwork/narsie_attack.ogg', 50, 1) - if (3) - say("Barhah hra Zar'garis!") - playsound(get_turf(src),'sound/magic/clockwork/narsie_attack.ogg', 75, 1) - if (4) - say("N'ath reth Sh'yro eth D'rekkathnor!!!") - playsound(get_turf(src),'sound/magic/clockwork/narsie_attack.ogg', 100, 1) +/datum/action/innate/cultmast/finalreck/proc/chant(chant_number) + switch(chant_number) + if(1) + owner.say("C'arta forbici!", language = /datum/language/common) + if(2) + owner.say("Pleggh e'ntrath!", language = /datum/language/common) + playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 50, 1) + if(3) + owner.say("Barhah hra zar'garis!", language = /datum/language/common) + playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 75, 1) + if(4) + owner.say("N'ath reth sh'yro eth d'rekkathnor!!!", language = /datum/language/common) + playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 100, 1) /datum/action/innate/cultmast/cultmark name = "Mark Target" - desc = "Marks a target for the cult" + desc = "Marks a target for the cult." button_icon_state = "cult_mark" var/obj/effect/proc_holder/cultmark/CM - var/time = 0 + var/cooldown = 0 + var/base_cooldown = 1200 /datum/action/innate/cultmast/cultmark/New() - CM = new() - ..() + CM = new() + CM.attached_action = src + ..() /datum/action/innate/cultmast/cultmark/IsAvailable() - if(owner.mind.special_role != "Cult Master") + if(!owner.mind || !owner.mind.has_antag_datum(ANTAG_DATUM_CULT_MASTER)) return 0 - if((world.time - time)<1200 && !CM.active) - owner << "You need to wait [round((1200-(world.time-time))/10)] seconds before you can mark another target!" + if(cooldown > world.time) + if(!CM.active) + owner << "You need to wait [round((cooldown - world.time) * 0.1)] seconds before you can mark another target!" return 0 return ..() @@ -169,22 +181,22 @@ /datum/action/innate/cultmast/cultmark/Activate() CM.toggle(owner) //the important bit - if(!active) - time = world.time - else - time = 0 return TRUE /obj/effect/proc_holder/cultmark - active = FALSE - ranged_mousepointer = 'icons/effects/cult_target.dmi' + active = FALSE + ranged_mousepointer = 'icons/effects/cult_target.dmi' + var/datum/action/innate/cultmast/cultmark/attached_action +/obj/effect/proc_holder/cultmark/Destroy() + attached_action = null + return ..() /obj/effect/proc_holder/cultmark/proc/toggle(mob/user) - if(active) - remove_ranged_ability("You cease the marking ritual...") - else - add_ranged_ability(user, "You prepare to mark a target for your cult...") + if(active) + remove_ranged_ability("You cease the marking ritual.") + else + add_ranged_ability(user, "You prepare to mark a target for your cult...") /obj/effect/proc_holder/cultmark/InterceptClickOn(mob/living/caller, params, atom/target) if(..()) @@ -196,24 +208,29 @@ if(!isturf(T)) return FALSE if(target in view(7, get_turf(ranged_ability_user))) - remove_ranged_ability(caller, "The marking rite is complete! It will last for 90 seconds.") GLOB.blood_target = target var/area/A = get_area(target) + attached_action.cooldown = world.time + attached_action.base_cooldown + addtimer(CALLBACK(attached_action.owner, /mob.proc/update_action_buttons_icon), attached_action.base_cooldown) + GLOB.blood_target_image = image('icons/effects/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) + GLOB.blood_target_image.appearance_flags = RESET_COLOR + GLOB.blood_target_image.pixel_x = -target.pixel_x + GLOB.blood_target_image.pixel_y = -target.pixel_y for(var/datum/mind/B in SSticker.mode.cult) - var/mob/living/M = B.current - if(M.stat != DEAD) - to_chat(M, "Master [ranged_ability_user] has marked [GLOB.blood_target] in the [A.name] as the cult's top priority, get there immediately!") - M << pick(sound('sound/hallucinations/over_here2.ogg',0,1,75), sound('sound/hallucinations/over_here3.ogg',0,1,75)) - var/image/cult_marker = image('icons/effects/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) - M.client.images |= cult_marker - addtimer(CALLBACK(M, /mob/living/proc/reset_blood_image, cult_marker), 900, TIMER_OVERRIDE) + if(B.current && B.current.stat != DEAD && B.current.client) + to_chat(B.current, "Master [ranged_ability_user] has marked [GLOB.blood_target] in the [A.name] as the cult's top priority, get there immediately!") + B.current << pick(sound('sound/hallucinations/over_here2.ogg',0,1,75), sound('sound/hallucinations/over_here3.ogg',0,1,75)) + B.current.client.images += GLOB.blood_target_image + attached_action.owner.update_action_buttons_icon() + remove_ranged_ability("The marking rite is complete! It will last for 90 seconds.") + addtimer(CALLBACK(GLOBAL_PROC, .proc/reset_blood_target), 900, TIMER_OVERRIDE) return TRUE return FALSE -/mob/living/proc/reset_blood_image(var/image/cult_marker) - if(GLOB.blood_target && src.stat!=DEAD) - to_chat(src,"The blood mark has expired!") - if(client) - client.images.Remove(cult_marker) - QDEL_NULL(cult_marker) - GLOB.blood_target = null \ No newline at end of file +/proc/reset_blood_target() + for(var/datum/mind/B in SSticker.mode.cult) + if(B.current && B.current.stat != DEAD && B.current.client) + if(GLOB.blood_target) + to_chat(B.current,"The blood mark has expired!") + B.current.client.images -= GLOB.blood_target_image + QDEL_NULL(GLOB.blood_target) \ No newline at end of file diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index f393929463..069a422480 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -200,7 +200,7 @@ This file contains the arcane tome files. if(!("eldergod" in SSticker.mode.cult_objectives)) to_chat(user, "Nar-Sie does not wish to be summoned!") return - if(GLOB.sac_complete) + if(!GLOB.sac_complete) to_chat(user, "The sacrifice is not complete. The portal would lack the power to open if you tried!") return if(!SSticker.mode.eldergod) @@ -209,7 +209,7 @@ This file contains the arcane tome files. if((loc.z && loc.z != ZLEVEL_STATION) || !A.blob_allowed) to_chat(user, "The Geometer is not interested in lesser locations; the station is the prize!") return - var/confirm_final = alert(user, "This is the FINAL step to summon Nar-Sie, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") + var/confirm_final = alert(user, "This is the FINAL step to summon Nar-Sie; it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") if(confirm_final == "No") to_chat(user, "You decide to prepare further before scribing the rune.") return diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index b840b64c93..09412a79ac 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -253,7 +253,7 @@ break if(!chosen_ghost) //Failing that, we grab a ghost - var/list/consenting_candidates = pollCandidates("Would you like to play as a Shade?", "Cultist", null, ROLE_CULTIST, poll_time = 50) + var/list/consenting_candidates = pollGhostCandidates("Would you like to play as a Shade?", "Cultist", null, ROLE_CULTIST, poll_time = 50) if(consenting_candidates.len) chosen_ghost = pick(consenting_candidates) if(!T) diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index aa720f1979..4b5acd949d 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -214,7 +214,7 @@ possessed = TRUE - var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the spirit of [user.real_name]'s blade?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the spirit of [user.real_name]'s blade?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_POSSESSED_BLADE) var/mob/dead/observer/theghost = null if(LAZYLEN(candidates)) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index d7b06ee9c8..87a9e5a040 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -132,7 +132,7 @@ /datum/admins/proc/makeWizard() - var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered for the position of a Wizard Foundation 'diplomat'?", "wizard", null) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for the position of a Wizard Foundation 'diplomat'?", "wizard", null) var/mob/dead/observer/selected = pick_n_take(candidates) @@ -215,7 +215,7 @@ /datum/admins/proc/makeNukeTeam() var/datum/game_mode/nuclear/temp = new - var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered for a nuke team being sent in?", "operative", temp) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for a nuke team being sent in?", "operative", temp) var/list/mob/dead/observer/chosen = list() var/mob/dead/observer/theghost = null @@ -288,7 +288,7 @@ // DEATH SQUADS /datum/admins/proc/makeDeathsquad() var/mission = input("Assign a mission to the deathsquad", "Assign Mission", "Leave no witnesses.") - var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered for an elite Nanotrasen Strike Team?", "deathsquad", null) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for an elite Nanotrasen Strike Team?", "deathsquad", null) var/squadSpawned = 0 if(candidates.len >= 2) //Minimum 2 to be considered a squad @@ -396,7 +396,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 = pollCandidates("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) @@ -457,7 +457,7 @@ var/mission = input("Assign a mission to the Emergency Response Team", "Assign Mission", "Assist the station.") as null|text if(!mission) return - var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered for a Code [alert] Nanotrasen Emergency Response Team?", "deathsquad", null) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for a Code [alert] Nanotrasen Emergency Response Team?", "deathsquad", null) var/teamSpawned = 0 if(candidates.len > 0) diff --git a/code/modules/events/ghost_role.dm b/code/modules/events/ghost_role.dm index 93eff54b27..2468ddb5c6 100644 --- a/code/modules/events/ghost_role.dm +++ b/code/modules/events/ghost_role.dm @@ -59,7 +59,7 @@ var/list/mob/dead/observer/regular_candidates // don't get their hopes up if(priority_candidates.len < minimum_required) - regular_candidates = pollCandidates("Do you wish to be considered for the special role of '[role_name]'?", jobban, gametypecheck, be_special) + regular_candidates = pollGhostCandidates("Do you wish to be considered for the special role of '[role_name]'?", jobban, gametypecheck, be_special) else regular_candidates = list() diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 68d94b4c04..6e9bcc08cc 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -69,7 +69,7 @@ bursting = TRUE - var/list/candidates = pollCandidates("Do you want to play as an alien larva that will burst out of [owner]?", ROLE_ALIEN, null, ROLE_ALIEN, 100, POLL_IGNORE_ALIEN_LARVA) + var/list/candidates = pollGhostCandidates("Do you want to play as an alien larva that will burst out of [owner]?", ROLE_ALIEN, null, ROLE_ALIEN, 100, POLL_IGNORE_ALIEN_LARVA) if(QDELETED(src) || QDELETED(owner)) return @@ -81,7 +81,7 @@ var/mob/dead/observer/ghost = pick(candidates) - var/mutable_appearance/overlay = mutable_appearance('icons/mob/alien.dmi', "burst_lie") + var/mutable_appearance/overlay = mutable_appearance('icons/mob/alien.dmi', "burst_lie") owner.add_overlay(overlay) var/atom/xeno_loc = get_turf(owner) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index be889a4183..fe6e22bcab 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -414,7 +414,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians var/mob/living/simple_animal/hostile/guardian/G = input(src, "Pick the guardian you wish to reset", "Guardian Reset") as null|anything in guardians if(G) to_chat(src, "You attempt to reset [G.real_name]'s personality...") - var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [src.real_name]'s [G.real_name]?", "pAI", null, FALSE, 100) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as [src.real_name]'s [G.real_name]?", "pAI", null, FALSE, 100) var/mob/dead/observer/new_stand = null if(candidates.len) new_stand = pick(candidates) @@ -489,7 +489,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians return used = TRUE to_chat(user, "[use_message]") - var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_PAI, null, FALSE, 100) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_PAI, null, FALSE, 100) var/mob/dead/observer/theghost = null if(candidates.len) From 133a032ed2d5e0f96318b17df4782168726193c9 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 23:08:23 -0500 Subject: [PATCH 46/82] adds the correct dmi for the hunter hats directional facings. --- icons/obj/clothing/cit_hats.dmi | Bin 284 -> 390 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/cit_hats.dmi b/icons/obj/clothing/cit_hats.dmi index f9bf2a7a03a900b375a8df86c06b5992d0c8f809..25a03dc97e193cdfc267cc0555ad5b47f9e1ebb2 100644 GIT binary patch delta 263 zcmV+i0r>u$0)_)2iBL{Q4GJ0x0000DNk~Le0000$0000$1Oos709Z$C?U5lj0c(+2 zR)3_6i!-e#F*g;&Hsn%PaP@Nmn+pJ3T^giU6)fBU005#%L_t(YiS3lZ4Z<)CMIB{< zd@=#f0z0N7gh|<*DRqNMs%4l@Cu^g{a7{Ng?X~pmF?zeXbUO=SI#Sy$^?g032$OA z(xlpkkhjrjyfjPQojpa(|HHWlkklRM9_h-_*xr;`J5B%b04kNrE+3Ks5XqgBazp?C N002ovPDHLkV1nS_YVrU8 delta 156 zcmZo;p2MWr8Q|y6%O%Cdz`(%k>ERLtq!mDzg&9aThNK^#sA$fZH8CZF)q|}r2Xag(5QFGSP)35Ee01aXAboFyt=akR{ E0IMc3tpET3 From 46f5c4bb1b7309843c86f1070e4b3269ac6bba99 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 16 May 2017 23:35:54 -0500 Subject: [PATCH 47/82] commit --- code/game/atoms_movable.dm | 79 ++++-- code/game/machinery/hologram.dm | 292 +++++++++++++++------ code/modules/mob/dead/observer/observer.dm | 37 ++- tgstation.dme | 2 + tgui/assets/tgui.js | 18 +- 5 files changed, 299 insertions(+), 129 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 628e322c20..02d0d38cca 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -13,10 +13,9 @@ var/throw_speed = 2 //How many tiles to move per ds when being thrown. Float values are fully supported var/throw_range = 7 var/mob/pulledby = null - var/list/languages - var/list/initial_languages = list(/datum/language/common) - var/only_speaks_language = null - var/datum/language_menu/language_menu = null + var/initial_language_holder = /datum/language_holder + var/datum/language_holder/language_holder + var/datum/language_menu/language_menu = null var/verb_say = "says" var/verb_ask = "asks" var/verb_exclaim = "exclaims" @@ -45,10 +44,6 @@ return FALSE return ..() -/atom/movable/Initialize(mapload) - . = ..() - for(var/L in initial_languages) - grant_language(L) /atom/movable/Move(atom/newloc, direct = 0) if(!loc || !newloc) return 0 @@ -178,7 +173,7 @@ STOP_PROCESSING(SSinbounds, src) QDEL_NULL(proximity_monitor) - QDEL_NULL(language_menu) + QDEL_NULL(language_holder) . = ..() if(loc) @@ -578,44 +573,70 @@ /* Language procs */ +/atom/movable/proc/get_language_holder(shadow=TRUE) + if(language_holder) + return language_holder + else + language_holder = new initial_language_holder(src) + return language_holder + + /atom/movable/proc/grant_language(datum/language/dt) - LAZYINITLIST(languages) - languages[dt] = TRUE + var/datum/language_holder/H = get_language_holder() + H.grant_language(dt) /atom/movable/proc/grant_all_languages(omnitongue=FALSE) - for(var/la in subtypesof(/datum/language)) - grant_language(la) - - if(omnitongue) - SET_SECONDARY_FLAG(src, OMNITONGUE) + var/datum/language_holder/H = get_language_holder() + H.grant_all_languages(omnitongue) /atom/movable/proc/get_random_understood_language() - var/list/possible = list() - for(var/dt in languages) - possible += dt - . = safepick(possible) + var/datum/language_holder/H = get_language_holder() + . = H.get_random_understood_language() /atom/movable/proc/remove_language(datum/language/dt) - LAZYREMOVE(languages, dt) + var/datum/language_holder/H = get_language_holder() + H.remove_language(dt) /atom/movable/proc/remove_all_languages() - LAZYCLEARLIST(languages) + var/datum/language_holder/H = get_language_holder() + H.remove_all_languages() /atom/movable/proc/has_language(datum/language/dt) - . = is_type_in_typecache(dt, languages) + var/datum/language_holder/H = get_language_holder() + . = H.has_language(dt) + +// Whether an AM can speak in a language or not, independent of whether +// it KNOWS the language +/atom/movable/proc/could_speak_in_language(datum/language/dt) + . = TRUE /atom/movable/proc/can_speak_in_language(datum/language/dt) - . = has_language(dt) - if(only_speaks_language && !HAS_SECONDARY_FLAG(src, OMNITONGUE)) - . = . && ispath(only_speaks_language, dt) + var/datum/language_holder/H = get_language_holder() + + if(!H.has_language(dt)) + return FALSE + else if(H.omnitongue || could_speak_in_language(dt)) + return TRUE + else + return FALSE /atom/movable/proc/get_default_language() // if no language is specified, and we want to say() something, which // language do we use? + var/datum/language_holder/H = get_language_holder() + + if(H.selected_default_language) + if(H.has_language(H.selected_default_language)) + return H.selected_default_language + else + H.selected_default_language = null + + + var/datum/language/chosen_langtype var/highest_priority - for(var/lt in languages) + for(var/lt in H.languages) var/datum/language/langtype = lt if(!can_speak_in_language(langtype)) continue @@ -624,8 +645,10 @@ if(!highest_priority || (pri > highest_priority)) chosen_langtype = langtype highest_priority = pri - + H.selected_default_language = . . = chosen_langtype + +/* End language procs */ /atom/movable/proc/ConveyorMove(movedir) set waitfor = FALSE if(!anchored && has_gravity()) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index ae8c1ac1c4..7c80817699 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -26,14 +26,13 @@ Possible to do for anyone motivated enough: #define HOLOPAD_PASSIVE_POWER_USAGE 1 #define HOLOGRAM_POWER_USAGE 2 -#define RANGE_BASED 4 -#define AREA_BASED 6 +GLOBAL_LIST_EMPTY(holopads) #define HOLOPAD_MODE RANGE_BASED /obj/machinery/holopad - name = "\improper AI holopad" - desc = "It's a floor-mounted device for projecting holographic images. It is activated remotely." + name = "Holopad" + desc = "It's a floor-mounted device for projecting holographic images." icon_state = "holopad0" layer = LOW_OBJ_LAYER flags = HEAR @@ -44,21 +43,32 @@ Possible to do for anyone motivated enough: obj_integrity = 300 max_integrity = 300 armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0) - var/list/masters = list()//List of AIs that use the holopad + var/list/masters = list()//List of living mobs that use the holopad var/last_request = 0 //to prevent request spam. ~Carn var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating. var/temp = "" + var/list/holo_calls //array of /datum/holocalls + var/datum/holocall/outgoing_call //do not modify the datums only check and call the public procs + var/static/force_answer_call = FALSE //Calls will be automatically answered after a couple rings, here for debugging var/static/list/holopads = list() -/obj/machinery/holopad/New() +/obj/machinery/holopad/Initialize() ..() var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/holopad(null) B.apply_default_parts(src) holopads += src /obj/machinery/holopad/Destroy() - for (var/mob/living/silicon/ai/master in masters) - clear_holo(master) + if(outgoing_call) + LAZYADD(holo_calls, outgoing_call) + + for(var/I in holo_calls) + var/datum/holocall/HC = I + HC.ConnectionFailure(src) + LAZYCLEARLIST(holo_calls) + + for (var/I in masters) + clear_holo(I) holopads -= src return ..() @@ -91,20 +101,58 @@ Possible to do for anyone motivated enough: return return ..() +/obj/machinery/holopad/proc/CheckCallClose() + for(var/I in holo_calls) + var/datum/holocall/HC = I + if(usr == HC.eye) + HC.Disconnect(HC.calling_holopad) //disconnect via clicking the called holopad + return TRUE + return FALSE + +/obj/machinery/holopad/Click(location,control,params) + if(!CheckCallClose()) + return ..() + /obj/machinery/holopad/AltClick(mob/living/carbon/human/user) - interact(user) + if(!CheckCallClose()) + interact(user) /obj/machinery/holopad/interact(mob/living/carbon/human/user) //Carn: Hologram requests. if(!istype(user)) return - if(user.stat || !is_operational()) + + if(outgoing_call || user.incapacitated() || !is_operational()) return + user.set_machine(src) var/dat if(temp) dat = temp else - dat = "
      request an AI's presence." + dat = "Request an AI's presence.
      " + dat += "Call another holopad.
      " + + if(LAZYLEN(holo_calls)) + dat += "=====================================================
      " + + var/one_answered_call = FALSE + var/one_unanswered_call = FALSE + for(var/I in holo_calls) + var/datum/holocall/HC = I + if(HC.connected_holopad != src) + dat += "Answer call from [get_area(HC.calling_holopad)].
      " + one_unanswered_call = TRUE + else + one_answered_call = TRUE + + if(one_answered_call && one_unanswered_call) + dat += "=====================================================
      " + //we loop twice for formatting + for(var/I in holo_calls) + var/datum/holocall/HC = I + if(HC.connected_holopad == src) + dat += "Disconnect call from [HC.user].
      " + var/datum/browser/popup = new(user, "holopad", name, 300, 130) popup.set_content(dat) @@ -112,7 +160,10 @@ Possible to do for anyone motivated enough: popup.open() /obj/machinery/holopad/Topic(href, href_list) - if(..() || !is_operational()) + if(..() || isAI(usr)) + return + add_fingerprint(usr) + if(!is_operational()) return if (href_list["AIrequest"]) if(last_request + 200 < world.time) @@ -120,7 +171,7 @@ Possible to do for anyone motivated enough: temp = "You requested an AI's presence.
      " temp += "Main Menu" var/area/area = get_area(src) - for(var/mob/living/silicon/ai/AI in GLOB.living_mob_list) + for(var/mob/living/silicon/ai/AI in GLOB.silicon_mobs) if(!AI.client) continue to_chat(AI, "Your presence is requested at \the [area].") @@ -128,12 +179,49 @@ Possible to do for anyone motivated enough: temp = "A request for AI presence was already sent recently.
      " temp += "Main Menu" - else if(href_list["mainmenu"]) + else if(href_list["Holocall"]) + if(outgoing_call) + return + + temp = "You must stand on the holopad to make a call!
      " + temp += "Main Menu" + if(usr.loc == loc) + var/list/callnames = list() + for(var/I in holopads) + var/area/A = get_area(I) + if(A) + LAZYADD(callnames[A], I) + callnames -= get_area(src) + + var/result = input(usr, "Choose an area to call", "Holocall") as null|anything in callnames + if(QDELETED(usr) || !result || outgoing_call) + return + + if(usr.loc == loc) + temp = "Dialing...
      " + temp += "Main Menu" + new /datum/holocall(usr, src, callnames[result]) + + else if(href_list["connectcall"]) + var/datum/holocall/call_to_connect = locate(href_list["connectcall"]) + if(!QDELETED(call_to_connect)) + call_to_connect.Answer(src) temp = "" - updateDialog() - add_fingerprint(usr) + else if(href_list["disconnectcall"]) + var/datum/holocall/call_to_disconnect = locate(href_list["disconnectcall"]) + if(!QDELETED(call_to_disconnect)) + call_to_disconnect.Disconnect(src) + temp = "" + else if(href_list["mainmenu"]) + temp = "" + if(outgoing_call) + outgoing_call.Disconnect() + + updateDialog() + +//do not allow AIs to answer calls or people will use it to meta the AI sattelite /obj/machinery/holopad/attack_ai(mob/living/silicon/ai/user) if (!istype(user)) return @@ -148,39 +236,75 @@ Possible to do for anyone motivated enough: clear_holo(user) /obj/machinery/holopad/process() - if(masters.len)//If there is a hologram. - for (var/mob/living/silicon/ai/master in masters) - if(master && !master.stat && master.client && master.eyeobj)//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector. - if(!(stat & NOPOWER))//If the machine has power. - if(HOLOPAD_MODE == RANGE_BASED) - if(get_dist(master.eyeobj, src) <= holo_range) - return TRUE - else - var/obj/machinery/holopad/pad_close = get_closest_atom(/obj/machinery/holopad, holopads, master.eyeobj) - if(get_dist(pad_close, master.eyeobj) <= holo_range) - var/obj/effect/overlay/holo_pad_hologram/h = masters[master] - unset_holo(master) - pad_close.set_holo(master, h) - return TRUE + for(var/I in masters) + var/mob/living/master = I + var/mob/living/silicon/ai/AI = master + if(!istype(AI)) + AI = null - else if (HOLOPAD_MODE == AREA_BASED) + if(!QDELETED(master) && !master.incapacitated() && master.client && (!AI || AI.eyeobj))//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector. + if(is_operational())//If the machine has power. + if(AI) //ais are range based + if(get_dist(AI.eyeobj, src) <= holo_range) + continue + else + var/obj/machinery/holopad/pad_close = get_closest_atom(/obj/machinery/holopad, holopads, AI.eyeobj) + if(get_dist(pad_close, AI.eyeobj) <= holo_range) + var/obj/effect/overlay/holo_pad_hologram/h = masters[master] + unset_holo(master) + pad_close.set_holo(master, h) + continue + else + continue + clear_holo(master)//If not, we want to get rid of the hologram. - var/area/holo_area = get_area(src) - var/area/eye_area = get_area(master.eyeobj) + if(outgoing_call) + outgoing_call.Check() - if(eye_area in holo_area.related) - return TRUE + for(var/I in holo_calls) + var/datum/holocall/HC = I + if(HC.connected_holopad != src) + if(force_answer_call && world.time > (HC.call_start_time + (HOLOPAD_MAX_DIAL_TIME / 2))) + HC.Answer(src) + break + if(outgoing_call) + HC.Disconnect(src)//can't answer calls while calling + else + playsound(src, 'sound/machines/twobeep.ogg', 100) //bring, bring! - clear_holo(master)//If not, we want to get rid of the hologram. - return TRUE +/obj/machinery/holopad/proc/activate_holo(mob/living/user) + var/mob/living/silicon/ai/AI = user + if(!istype(AI)) + AI = null -/obj/machinery/holopad/proc/activate_holo(mob/living/silicon/ai/user) - if(!(stat & NOPOWER) && user.eyeobj.loc == src.loc)//If the projector has power and client eye is on it - if (istype(user.current, /obj/machinery/holopad)) + if(is_operational() && (!AI || AI.eyeobj.loc == loc))//If the projector has power and client eye is on it + if (AI && istype(AI.current, /obj/machinery/holopad)) to_chat(user, "ERROR: \black Image feed in progress.") return - create_holo(user)//Create one. - src.visible_message("A holographic image of [user] flicks to life right before your eyes!") + + var/obj/effect/overlay/holo_pad_hologram/Hologram = new(loc)//Spawn a blank effect at the location. + if(AI) + Hologram.icon = AI.holo_icon + else //make it like real life + Hologram.icon = user.icon + Hologram.icon_state = user.icon_state + Hologram.copy_overlays(user, TRUE) + //codersprite some holo effects here + Hologram.alpha = 100 + Hologram.add_atom_colour("#77abff", FIXED_COLOUR_PRIORITY) + Hologram.Impersonation = user + + Hologram.language_holder = user.get_language_holder() + Hologram.mouse_opacity = 0//So you can't click on it. + Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. + Hologram.anchored = 1//So space wind cannot drag it. + Hologram.name = "[user.name] (Hologram)"//If someone decides to right click. + Hologram.set_light(2) //hologram lighting + + set_holo(user, Hologram) + visible_message("A holographic image of [user] flicks to life right before your eyes!") + + return Hologram else to_chat(user, "ERROR: \black Unable to project hologram.") @@ -192,58 +316,80 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ if(masters[master] && speaker != master) master.relay_speech(message, speaker, message_language, raw_message, radio_freq, spans, message_mode) -/obj/machinery/holopad/proc/create_holo(mob/living/silicon/ai/A, turf/T = loc) - var/obj/effect/overlay/holo_pad_hologram/h = new(T)//Spawn a blank effect at the location. - h.icon = A.holo_icon - h.mouse_opacity = 0//So you can't click on it. - h.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. - h.anchored = 1//So space wind cannot drag it. - h.name = "[A.name] (Hologram)"//If someone decides to right click. - h.set_light(2) //hologram lighting - set_holo(A, h) + for(var/I in holo_calls) + var/datum/holocall/HC = I + if(HC.connected_holopad == src && speaker != HC.hologram) + HC.user.Hear(message, speaker, message_language, raw_message, radio_freq, spans) + + if(outgoing_call && speaker == outgoing_call.user) + outgoing_call.hologram.say(raw_message) + +/obj/machinery/holopad/proc/SetLightsAndPower() + var/total_users = masters.len + LAZYLEN(holo_calls) + use_power = HOLOPAD_PASSIVE_POWER_USAGE + HOLOGRAM_POWER_USAGE * total_users + if(total_users) + set_light(2) + icon_state = "holopad1" + else + set_light(0) + icon_state = "holopad0" + +/obj/machinery/holopad/proc/set_holo(mob/living/user, var/obj/effect/overlay/holo_pad_hologram/h) + masters[user] = h + var/mob/living/silicon/ai/AI = user + if(istype(AI)) + AI.current = src + SetLightsAndPower() return TRUE -/obj/machinery/holopad/proc/set_holo(mob/living/silicon/ai/A, var/obj/effect/overlay/holo_pad_hologram/h) - masters[A] = h - set_light(2) // pad lighting - icon_state = "holopad1" - A.current = src - use_power += HOLOGRAM_POWER_USAGE - return TRUE - -/obj/machinery/holopad/proc/clear_holo(mob/living/silicon/ai/user) +/obj/machinery/holopad/proc/clear_holo(mob/living/user) qdel(masters[user]) // Get rid of user's hologram unset_holo(user) return TRUE -/obj/machinery/holopad/proc/unset_holo(mob/living/silicon/ai/user) - if(user.current == src) - user.current = null +/obj/machinery/holopad/proc/unset_holo(mob/living/user) + var/mob/living/silicon/ai/AI = user + if(istype(AI) && AI.current == src) + AI.current = null masters -= user // Discard AI from the list of those who use holopad - use_power = max(HOLOPAD_PASSIVE_POWER_USAGE, use_power - HOLOGRAM_POWER_USAGE)//Reduce power usage - if (!masters.len) // If no users left - set_light(0) // pad lighting (hologram lighting will be handled automatically since its owner was deleted) - icon_state = "holopad0" - use_power = HOLOPAD_PASSIVE_POWER_USAGE + SetLightsAndPower() return TRUE -/obj/machinery/holopad/proc/move_hologram(mob/living/silicon/ai/user) +/obj/machinery/holopad/proc/move_hologram(mob/living/user, turf/new_turf) if(masters[user]) - step_to(masters[user], user.eyeobj) var/obj/effect/overlay/holo_pad_hologram/H = masters[user] - H.loc = get_turf(user.eyeobj) + step_to(H, new_turf) + H.loc = new_turf + var/area/holo_area = get_area(src) + var/area/eye_area = new_turf.loc + + if(!(eye_area in holo_area.related)) + clear_holo(user) return TRUE +/obj/effect/overlay/holo_pad_hologram + var/mob/living/Impersonation + var/datum/holocall/HC + +/obj/effect/overlay/holo_pad_hologram/Destroy() + Impersonation = null + if(HC) + HC.Disconnect(HC.calling_holopad) + return ..() + /obj/effect/overlay/holo_pad_hologram/Process_Spacemove(movement_dir = 0) return 1 +/obj/effect/overlay/holo_pad_hologram/examine(mob/user) + if(Impersonation) + return Impersonation.examine(user) + return ..() + /obj/item/weapon/circuitboard/machine/holopad name = "AI Holopad (Machine Board)" build_path = /obj/machinery/holopad origin_tech = "programming=1" req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) -#undef RANGE_BASED -#undef AREA_BASED #undef HOLOPAD_PASSIVE_POWER_USAGE #undef HOLOGRAM_POWER_USAGE diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 7f2c6d6485..395d7f0099 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -117,9 +117,12 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) animate(src, pixel_y = 2, time = 10, loop = -1) - grant_all_languages() + GLOB.dead_mob_list += src + ..() + grant_all_languages() + /mob/dead/observer/narsie_act() var/old_color = color color = "#960000" @@ -269,25 +272,24 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/Move(NewLoc, direct) if(updatedir) - setDir(direct )//only update dir if we actually need it, so overlays won't spin on base sprites that don't have directions of their own + setDir(direct)//only update dir if we actually need it, so overlays won't spin on base sprites that don't have directions of their own + var/oldloc = loc + if(NewLoc) loc = NewLoc - for(var/obj/effect/step_trigger/S in NewLoc) - S.Crossed(src) update_parallax_contents() - return - loc = get_turf(src) //Get out of closets and such as a ghost - if((direct & NORTH) && y < world.maxy) - y++ - else if((direct & SOUTH) && y > 1) - y-- - if((direct & EAST) && x < world.maxx) - x++ - else if((direct & WEST) && x > 1) - x-- + else + loc = get_turf(src) //Get out of closets and such as a ghost + if((direct & NORTH) && y < world.maxy) + y++ + else if((direct & SOUTH) && y > 1) + y-- + if((direct & EAST) && x < world.maxx) + x++ + else if((direct & WEST) && x > 1) + x-- - for(var/obj/effect/step_trigger/S in locate(x, y, z)) //<-- this is dumb - S.Crossed(src) + Moved(oldloc, direct) /mob/dead/observer/is_active() return 0 @@ -296,9 +298,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ..() if(statpanel("Status")) if(SSticker.HasRoundStarted()) - for(var/datum/gang/G in SSticker.mode.gangs) - if(G.is_dominating) - stat(null, "[G.name] Gang Takeover: [max(G.domination_time_remaining(), 0)]") if(istype(SSticker.mode, /datum/game_mode/blob)) var/datum/game_mode/blob/B = SSticker.mode if(B.message_sent) diff --git a/tgstation.dme b/tgstation.dme index e421aebadf..6474f0d4d8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -245,6 +245,7 @@ #include "code\datums\dog_fashion.dm" #include "code\datums\emotes.dm" #include "code\datums\forced_movement.dm" +#include "code\datums\holocall.dm" #include "code\datums\hud.dm" #include "code\datums\map_config.dm" #include "code\datums\martial.dm" @@ -1422,6 +1423,7 @@ #include "code\modules\language\common.dm" #include "code\modules\language\drone.dm" #include "code\modules\language\language.dm" +#include "code\modules\language\language_holder.dm" #include "code\modules\language\language_menu.dm" #include "code\modules\language\machine.dm" #include "code\modules\language\monkey.dm" diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index d2ccdeaee1..91d54d3871 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,16 +1,16 @@ -require=function t(e,n,a){function r(o,s){if(!n[o]){if(!e[o]){var p="function"==typeof require&&require;if(!s&&p)return p(o,!0);if(i)return i(o,!0);var u=Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return r(n?n:t)},c,c.exports,t,e,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o=0;--a){var r=this.tryEntries[a],i=r.completion;if("root"===r.tryLoc)return e("end");if(r.tryLoc<=this.prev){var o=b.call(r,"catchLoc"),s=b.call(r,"finallyLoc");if(o&&s){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&b.call(a,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),d(n),E}},"catch":function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var r=a.arg;d(n)}return r}}throw Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:m(t),resultName:e,nextLoc:n},E}}}("object"==typeof n?n:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,t(190),void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{190:190}],3:[function(t,e,n){e.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},{}],4:[function(t,e,n){var a=t(84)("unscopables"),r=Array.prototype;void 0==r[a]&&t(32)(r,a,{}),e.exports=function(t){r[a][t]=!0}},{32:32,84:84}],5:[function(t,e,n){var a=t(39);e.exports=function(t){if(!a(t))throw TypeError(t+" is not an object!");return t}},{39:39}],6:[function(t,e,n){"use strict";var a=t(81),r=t(77),i=t(80);e.exports=[].copyWithin||function(t,e){var n=a(this),o=i(n.length),s=r(t,o),p=r(e,o),u=arguments,c=u.length>2?u[2]:void 0,l=Math.min((void 0===c?o:r(c,o))-p,o-s),f=1;for(s>p&&p+l>s&&(f=-1,p+=l-1,s+=l-1);l-- >0;)p in n?n[s]=n[p]:delete n[s],s+=f,p+=f;return n}},{77:77,80:80,81:81}],7:[function(t,e,n){"use strict";var a=t(81),r=t(77),i=t(80);e.exports=[].fill||function(t){for(var e=a(this),n=i(e.length),o=arguments,s=o.length,p=r(s>1?o[1]:void 0,n),u=s>2?o[2]:void 0,c=void 0===u?n:r(u,n);c>p;)e[p++]=t;return e}},{77:77,80:80,81:81}],8:[function(t,e,n){var a=t(79),r=t(80),i=t(77);e.exports=function(t){return function(e,n,o){var s,p=a(e),u=r(p.length),c=i(o,u);if(t&&n!=n){for(;u>c;)if(s=p[c++],s!=s)return!0}else for(;u>c;c++)if((t||c in p)&&p[c]===n)return t||c;return!t&&-1}}},{77:77,79:79,80:80}],9:[function(t,e,n){var a=t(18),r=t(35),i=t(81),o=t(80),s=t(10);e.exports=function(t){var e=1==t,n=2==t,p=3==t,u=4==t,c=6==t,l=5==t||c;return function(f,d,h){for(var m,v,g=i(f),b=r(g),y=a(d,h,3),_=o(b.length),x=0,w=e?s(f,_):n?s(f,0):void 0;_>x;x++)if((l||x in b)&&(m=b[x],v=y(m,x,g),t))if(e)w[x]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return x;case 2:w.push(m)}else if(u)return!1;return c?-1:p||u?u:w}}},{10:10,18:18,35:35,80:80,81:81}],10:[function(t,e,n){var a=t(39),r=t(37),i=t(84)("species");e.exports=function(t,e){var n;return r(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!r(n.prototype)||(n=void 0),a(n)&&(n=n[i],null===n&&(n=void 0))),new(void 0===n?Array:n)(e)}},{37:37,39:39,84:84}],11:[function(t,e,n){var a=t(12),r=t(84)("toStringTag"),i="Arguments"==a(function(){return arguments}());e.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[r])?n:i?a(e):"Object"==(o=a(e))&&"function"==typeof e.callee?"Arguments":o}},{12:12,84:84}],12:[function(t,e,n){var a={}.toString;e.exports=function(t){return a.call(t).slice(8,-1)}},{}],13:[function(t,e,n){"use strict";var a=t(47),r=t(32),i=t(61),o=t(18),s=t(70),p=t(19),u=t(28),c=t(43),l=t(45),f=t(83)("id"),d=t(31),h=t(39),m=t(66),v=t(20),g=Object.isExtensible||h,b=v?"_s":"size",y=0,_=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!d(t,f)){if(!g(t))return"F";if(!e)return"E";r(t,f,++y)}return"O"+t[f]},x=function(t,e){var n,a=_(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,r){var c=t(function(t,i){s(t,c,e),t._i=a.create(null),t._f=void 0,t._l=void 0,t[b]=0,void 0!=i&&u(i,n,t[r],t)});return i(c.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[b]=0},"delete":function(t){var e=this,n=x(e,t);if(n){var a=n.n,r=n.p;delete e._i[n.i],n.r=!0,r&&(r.n=a),a&&(a.p=r),e._f==n&&(e._f=a),e._l==n&&(e._l=r),e[b]--}return!!n},forEach:function(t){for(var e,n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!x(this,t)}}),v&&a.setDesc(c.prototype,"size",{get:function(){return p(this[b])}}),c},def:function(t,e,n){var a,r,i=x(t,e);return i?i.v=n:(t._l=i={i:r=_(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[b]++,"F"!==r&&(t._i[r]=i)),t},getEntry:x,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),m(e)}}},{18:18,19:19,20:20,28:28,31:31,32:32,39:39,43:43,45:45,47:47,61:61,66:66,70:70,83:83}],14:[function(t,e,n){var a=t(28),r=t(11);e.exports=function(t){return function(){if(r(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return a(this,!1,e.push,e),e}}},{11:11,28:28}],15:[function(t,e,n){"use strict";var a=t(32),r=t(61),i=t(5),o=t(39),s=t(70),p=t(28),u=t(9),c=t(31),l=t(83)("weak"),f=Object.isExtensible||o,d=u(5),h=u(6),m=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},b=function(t,e){return d(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=b(this,t);return e?e[1]:void 0},has:function(t){return!!b(this,t)},set:function(t,e){var n=b(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,a){var i=t(function(t,r){s(t,i,e),t._i=m++,t._l=void 0,void 0!=r&&p(r,n,t[a],t)});return r(i.prototype,{"delete":function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i)&&delete t[l][this._i]:v(this)["delete"](t):!1},has:function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i):v(this).has(t):!1}}),i},def:function(t,e,n){return f(i(e))?(c(e,l)||a(e,l,{}),e[l][t._i]=n):v(t).set(e,n),t},frozenStore:v,WEAK:l}},{28:28,31:31,32:32,39:39,5:5,61:61,70:70,83:83,9:9}],16:[function(t,e,n){"use strict";var a=t(30),r=t(23),i=t(62),o=t(61),s=t(28),p=t(70),u=t(39),c=t(25),l=t(44),f=t(67);e.exports=function(t,e,n,d,h,m){var v=a[t],g=v,b=h?"set":"add",y=g&&g.prototype,_={},x=function(t){var e=y[t];i(y,t,"delete"==t?function(t){return m&&!u(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return m&&!u(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!u(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof g&&(m||y.forEach&&!c(function(){(new g).entries().next()}))){var w,k=new g,P=k[b](m?{}:-0,1)!=k,C=c(function(){k.has(1)}),E=l(function(t){new g(t)});E||(g=e(function(e,n){p(e,g,t);var a=new v;return void 0!=n&&s(n,h,a[b],a),a}),g.prototype=y,y.constructor=g),m||k.forEach(function(t,e){w=1/e===-(1/0)}),(C||w)&&(x("delete"),x("has"),h&&x("get")),(w||P)&&x(b),m&&y.clear&&delete y.clear}else g=d.getConstructor(e,t,h,b),o(g.prototype,n);return f(g,t),_[t]=g,r(r.G+r.W+r.F*(g!=v),_),m||d.setStrong(g,t,h),g}},{23:23,25:25,28:28,30:30,39:39,44:44,61:61,62:62,67:67,70:70}],17:[function(t,e,n){var a=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=a)},{}],18:[function(t,e,n){var a=t(3);e.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},{3:3}],19:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],20:[function(t,e,n){e.exports=!t(25)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{25:25}],21:[function(t,e,n){var a=t(39),r=t(30).document,i=a(r)&&a(r.createElement);e.exports=function(t){return i?r.createElement(t):{}}},{30:30,39:39}],22:[function(t,e,n){var a=t(47);e.exports=function(t){var e=a.getKeys(t),n=a.getSymbols;if(n)for(var r,i=n(t),o=a.isEnum,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e}},{47:47}],23:[function(t,e,n){var a=t(30),r=t(17),i=t(32),o=t(62),s=t(18),p="prototype",u=function(t,e,n){var c,l,f,d,h=t&u.F,m=t&u.G,v=t&u.S,g=t&u.P,b=t&u.B,y=m?a:v?a[e]||(a[e]={}):(a[e]||{})[p],_=m?r:r[e]||(r[e]={}),x=_[p]||(_[p]={});m&&(n=e);for(c in n)l=!h&&y&&c in y,f=(l?y:n)[c],d=b&&l?s(f,a):g&&"function"==typeof f?s(Function.call,f):f,y&&!l&&o(y,c,f),_[c]!=f&&i(_,c,d),g&&x[c]!=f&&(x[c]=f)};a.core=r,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,e.exports=u},{17:17,18:18,30:30,32:32,62:62}],24:[function(t,e,n){var a=t(84)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(r){}}return!0}},{84:84}],25:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],26:[function(t,e,n){"use strict";var a=t(32),r=t(62),i=t(25),o=t(19),s=t(84);e.exports=function(t,e,n){var p=s(t),u=""[t];i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,n(o,p,u)),a(RegExp.prototype,p,2==e?function(t,e){return u.call(t,this,e)}:function(t){return u.call(t,this)}))}},{19:19,25:25,32:32,62:62,84:84}],27:[function(t,e,n){"use strict";var a=t(5);e.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{5:5}],28:[function(t,e,n){var a=t(18),r=t(41),i=t(36),o=t(5),s=t(80),p=t(85);e.exports=function(t,e,n,u){var c,l,f,d=p(t),h=a(n,u,e?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(i(d))for(c=s(t.length);c>m;m++)e?h(o(l=t[m])[0],l[1]):h(t[m]);else for(f=d.call(t);!(l=f.next()).done;)r(f,h,l.value,e)}},{18:18,36:36,41:41,5:5,80:80,85:85}],29:[function(t,e,n){var a=t(79),r=t(47).getNames,i={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};e.exports.get=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},{47:47,79:79}],30:[function(t,e,n){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},{}],31:[function(t,e,n){var a={}.hasOwnProperty;e.exports=function(t,e){return a.call(t,e)}},{}],32:[function(t,e,n){var a=t(47),r=t(60);e.exports=t(20)?function(t,e,n){return a.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},{20:20,47:47,60:60}],33:[function(t,e,n){e.exports=t(30).document&&document.documentElement},{30:30}],34:[function(t,e,n){e.exports=function(t,e,n){var a=void 0===n;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],35:[function(t,e,n){var a=t(12);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},{12:12}],36:[function(t,e,n){var a=t(46),r=t(84)("iterator"),i=Array.prototype;e.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},{46:46,84:84}],37:[function(t,e,n){var a=t(12);e.exports=Array.isArray||function(t){return"Array"==a(t)}},{12:12}],38:[function(t,e,n){var a=t(39),r=Math.floor;e.exports=function(t){return!a(t)&&isFinite(t)&&r(t)===t}},{39:39}],39:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],40:[function(t,e,n){var a=t(39),r=t(12),i=t(84)("match");e.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},{12:12,39:39,84:84}],41:[function(t,e,n){var a=t(5);e.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t["return"];throw void 0!==o&&a(o.call(t)),i}}},{5:5}],42:[function(t,e,n){"use strict";var a=t(47),r=t(60),i=t(67),o={};t(32)(o,t(84)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=a.create(o,{next:r(1,n)}),i(t,e+" Iterator")}},{32:32,47:47,60:60,67:67,84:84}],43:[function(t,e,n){"use strict";var a=t(49),r=t(23),i=t(62),o=t(32),s=t(31),p=t(46),u=t(42),c=t(67),l=t(47).getProto,f=t(84)("iterator"),d=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",v="values",g=function(){return this};e.exports=function(t,e,n,b,y,_,x){u(n,e,b);var w,k,P=function(t){if(!d&&t in A)return A[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},C=e+" Iterator",E=y==v,S=!1,A=t.prototype,O=A[f]||A[h]||y&&A[y],T=O||P(y);if(O){var M=l(T.call(new t));c(M,C,!0),!a&&s(A,h)&&o(M,f,g),E&&O.name!==v&&(S=!0,T=function(){return O.call(this)})}if(a&&!x||!d&&!S&&A[f]||o(A,f,T),p[e]=T,p[C]=g,y)if(w={values:E?T:P(v),keys:_?T:P(m),entries:E?P("entries"):T},x)for(k in w)k in A||i(A,k,w[k]);else r(r.P+r.F*(d||S),e,w);return w}},{23:23,31:31,32:32,42:42,46:46,47:47,49:49,62:62,67:67,84:84}],44:[function(t,e,n){var a=t(84)("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],o=i[a]();o.next=function(){n=!0},i[a]=function(){return o},t(i)}catch(s){}return n}},{84:84}],45:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],46:[function(t,e,n){e.exports={}},{}],47:[function(t,e,n){var a=Object;e.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},{}],48:[function(t,e,n){var a=t(47),r=t(79);e.exports=function(t,e){for(var n,i=r(t),o=a.getKeys(i),s=o.length,p=0;s>p;)if(i[n=o[p++]]===e)return n}},{47:47,79:79}],49:[function(t,e,n){e.exports=!1},{}],50:[function(t,e,n){e.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],51:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],52:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],53:[function(t,e,n){var a,r,i,o=t(30),s=t(76).set,p=o.MutationObserver||o.WebKitMutationObserver,u=o.process,c=o.Promise,l="process"==t(12)(u),f=function(){var t,e,n;for(l&&(t=u.domain)&&(u.domain=null,t.exit());a;)e=a.domain,n=a.fn,e&&e.enter(),n(),e&&e.exit(),a=a.next;r=void 0,t&&t.enter()};if(l)i=function(){u.nextTick(f)};else if(p){var d=1,h=document.createTextNode("");new p(f).observe(h,{characterData:!0}),i=function(){h.data=d=-d}}else i=c&&c.resolve?function(){c.resolve().then(f)}:function(){s.call(o,f)};e.exports=function(t){var e={fn:t,next:void 0,domain:l&&u.domain};r&&(r.next=e),a||(a=e,i()),r=e}},{12:12,30:30,76:76}],54:[function(t,e,n){var a=t(47),r=t(81),i=t(35);e.exports=t(25)(function(){var t=Object.assign,e={},n={},a=Symbol(),r="abcdefghijklmnopqrst";return e[a]=7,r.split("").forEach(function(t){n[t]=t}),7!=t({},e)[a]||Object.keys(t({},n)).join("")!=r})?function(t,e){for(var n=r(t),o=arguments,s=o.length,p=1,u=a.getKeys,c=a.getSymbols,l=a.isEnum;s>p;)for(var f,d=i(o[p++]),h=c?u(d).concat(c(d)):u(d),m=h.length,v=0;m>v;)l.call(d,f=h[v++])&&(n[f]=d[f]);return n}:Object.assign},{25:25,35:35,47:47,81:81}],55:[function(t,e,n){var a=t(23),r=t(17),i=t(25);e.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],o={};o[t]=e(n),a(a.S+a.F*i(function(){n(1)}),"Object",o)}},{17:17,23:23,25:25}],56:[function(t,e,n){var a=t(47),r=t(79),i=a.isEnum;e.exports=function(t){return function(e){for(var n,o=r(e),s=a.getKeys(o),p=s.length,u=0,c=[];p>u;)i.call(o,n=s[u++])&&c.push(t?[n,o[n]]:o[n]);return c}}},{47:47,79:79}],57:[function(t,e,n){var a=t(47),r=t(5),i=t(30).Reflect;e.exports=i&&i.ownKeys||function(t){var e=a.getNames(r(t)),n=a.getSymbols;return n?e.concat(n(t)):e}},{30:30,47:47,5:5}],58:[function(t,e,n){"use strict";var a=t(59),r=t(34),i=t(3);e.exports=function(){for(var t=i(this),e=arguments.length,n=Array(e),o=0,s=a._,p=!1;e>o;)(n[o]=arguments[o++])===s&&(p=!0);return function(){var a,i=this,o=arguments,u=o.length,c=0,l=0;if(!p&&!u)return r(t,n,i);if(a=n.slice(),p)for(;e>c;c++)a[c]===s&&(a[c]=o[l++]);for(;u>l;)a.push(o[l++]);return r(t,a,i)}}},{3:3,34:34,59:59}],59:[function(t,e,n){e.exports=t(30)},{30:30}],60:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],61:[function(t,e,n){var a=t(62);e.exports=function(t,e){for(var n in e)a(t,n,e[n]);return t}},{62:62}],62:[function(t,e,n){var a=t(30),r=t(32),i=t(83)("src"),o="toString",s=Function[o],p=(""+s).split(o);t(17).inspectSource=function(t){return s.call(t)},(e.exports=function(t,e,n,o){"function"==typeof n&&(n.hasOwnProperty(i)||r(n,i,t[e]?""+t[e]:p.join(e+"")),n.hasOwnProperty("name")||r(n,"name",e)),t===a?t[e]=n:(o||delete t[e],r(t,e,n))})(Function.prototype,o,function(){return"function"==typeof this&&this[i]||s.call(this)})},{17:17,30:30,32:32,83:83}],63:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],64:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],65:[function(t,e,n){var a=t(47).getDesc,r=t(39),i=t(5),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,r){try{r=t(18)(Function.call,a(Object.prototype,"__proto__").set,2),r(e,[]),n=!(e instanceof Array)}catch(i){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:r(t,e),t}}({},!1):void 0),check:o}},{18:18,39:39,47:47,5:5}],66:[function(t,e,n){"use strict";var a=t(30),r=t(47),i=t(20),o=t(84)("species");e.exports=function(t){var e=a[t];i&&e&&!e[o]&&r.setDesc(e,o,{configurable:!0,get:function(){return this}})}},{20:20,30:30,47:47,84:84}],67:[function(t,e,n){var a=t(47).setDesc,r=t(31),i=t(84)("toStringTag");e.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},{31:31,47:47,84:84}],68:[function(t,e,n){var a=t(30),r="__core-js_shared__",i=a[r]||(a[r]={});e.exports=function(t){return i[t]||(i[t]={})}},{30:30}],69:[function(t,e,n){var a=t(5),r=t(3),i=t(84)("species");e.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},{3:3,5:5,84:84}],70:[function(t,e,n){e.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t}},{}],71:[function(t,e,n){var a=t(78),r=t(19);e.exports=function(t){return function(e,n){var i,o,s=r(e)+"",p=a(n),u=s.length;return 0>p||p>=u?t?"":void 0:(i=s.charCodeAt(p),55296>i||i>56319||p+1===u||(o=s.charCodeAt(p+1))<56320||o>57343?t?s.charAt(p):i:t?s.slice(p,p+2):(i-55296<<10)+(o-56320)+65536)}}},{19:19,78:78}],72:[function(t,e,n){var a=t(40),r=t(19);e.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return r(t)+""}},{19:19,40:40}],73:[function(t,e,n){var a=t(80),r=t(74),i=t(19);e.exports=function(t,e,n,o){var s=i(t)+"",p=s.length,u=void 0===n?" ":n+"",c=a(e);if(p>=c)return s;""==u&&(u=" ");var l=c-p,f=r.call(u,Math.ceil(l/u.length));return f.length>l&&(f=f.slice(0,l)),o?f+s:s+f}},{19:19,74:74,80:80}],74:[function(t,e,n){"use strict";var a=t(78),r=t(19);e.exports=function(t){var e=r(this)+"",n="",i=a(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},{19:19,78:78}],75:[function(t,e,n){var a=t(23),r=t(19),i=t(25),o=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff",s="["+o+"]",p="​…",u=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e){var n={};n[t]=e(f),a(a.P+a.F*i(function(){return!!o[t]()||p[t]()!=p}),"String",n)},f=l.trim=function(t,e){return t=r(t)+"",1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(c,"")),t};e.exports=l},{19:19,23:23,25:25}],76:[function(t,e,n){var a,r,i,o=t(18),s=t(34),p=t(33),u=t(21),c=t(30),l=c.process,f=c.setImmediate,d=c.clearImmediate,h=c.MessageChannel,m=0,v={},g="onreadystatechange",b=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},y=function(t){b.call(t.data)};f&&d||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++m]=function(){s("function"==typeof t?t:Function(t),e)},a(m),m},d=function(t){delete v[t]},"process"==t(12)(l)?a=function(t){l.nextTick(o(b,t,1))}:h?(r=new h,i=r.port2,r.port1.onmessage=y,a=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(a=function(t){c.postMessage(t+"","*")},c.addEventListener("message",y,!1)):a=g in u("script")?function(t){p.appendChild(u("script"))[g]=function(){p.removeChild(this),b.call(t)}}:function(t){setTimeout(o(b,t,1),0)}),e.exports={set:f,clear:d}},{12:12,18:18,21:21,30:30,33:33,34:34}],77:[function(t,e,n){var a=t(78),r=Math.max,i=Math.min;e.exports=function(t,e){return t=a(t),0>t?r(t+e,0):i(t,e)}},{78:78}],78:[function(t,e,n){var a=Math.ceil,r=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?r:a)(t)}},{}],79:[function(t,e,n){var a=t(35),r=t(19);e.exports=function(t){return a(r(t))}},{19:19,35:35}],80:[function(t,e,n){var a=t(78),r=Math.min;e.exports=function(t){return t>0?r(a(t),9007199254740991):0}},{78:78}],81:[function(t,e,n){var a=t(19);e.exports=function(t){return Object(a(t))}},{19:19}],82:[function(t,e,n){var a=t(39);e.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},{39:39}],83:[function(t,e,n){var a=0,r=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++a+r).toString(36))}},{}],84:[function(t,e,n){var a=t(68)("wks"),r=t(83),i=t(30).Symbol;e.exports=function(t){return a[t]||(a[t]=i&&i[t]||(i||r)("Symbol."+t))}},{30:30,68:68,83:83}],85:[function(t,e,n){var a=t(11),r=t(84)("iterator"),i=t(46);e.exports=t(17).getIteratorMethod=function(t){return void 0!=t?t[r]||t["@@iterator"]||i[a(t)]:void 0}},{11:11,17:17,46:46,84:84}],86:[function(t,e,n){"use strict";var a,r=t(47),i=t(23),o=t(20),s=t(60),p=t(33),u=t(21),c=t(31),l=t(12),f=t(34),d=t(25),h=t(5),m=t(3),v=t(39),g=t(81),b=t(79),y=t(78),_=t(77),x=t(80),w=t(35),k=t(83)("__proto__"),P=t(9),C=t(8)(!1),E=Object.prototype,S=Array.prototype,A=S.slice,O=S.join,T=r.setDesc,M=r.getDesc,R=r.setDescs,j={};o||(a=!d(function(){return 7!=T(u("div"),"a",{get:function(){return 7}}).a}),r.setDesc=function(t,e,n){if(a)try{return T(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(h(t)[e]=n.value),t},r.getDesc=function(t,e){if(a)try{return M(t,e)}catch(n){}return c(t,e)?s(!E.propertyIsEnumerable.call(t,e),t[e]):void 0},r.setDescs=R=function(t,e){h(t);for(var n,a=r.getKeys(e),i=a.length,o=0;i>o;)r.setDesc(t,n=a[o++],e[n]);return t}),i(i.S+i.F*!o,"Object",{getOwnPropertyDescriptor:r.getDesc,defineProperty:r.setDesc,defineProperties:R});var L="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),N=L.concat("length","prototype"),D=L.length,F=function(){var t,e=u("iframe"),n=D,a=">";for(e.style.display="none",p.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("" - HTML += "
      " // Table within a table for alignment, also allows you to easily add more colomns. - HTML += "" - var/index = -1 - - //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows. - var/datum/job/lastJob - - for(var/datum/job/job in SSjob.occupations) - - index += 1 - if((index >= limit) || (job.title in splitJobs)) - width += widthPerColumn - if((index < limit) && (lastJob != null)) - //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with - //the last job's selection color. Creating a rather nice effect. - for(var/i = 0, i < (limit - index), i += 1) - HTML += "" - HTML += "
        
      " - index = 0 - - HTML += "" - continue - if(!job.player_old_enough(user.client)) - var/available_in_days = job.available_in_days(user.client) - HTML += "[rank]" - continue - if((job_civilian_low & ASSISTANT) && (rank != "Assistant") && !jobban_isbanned(user, "Assistant")) - HTML += "[rank]" - continue - if(config.enforce_human_authority && !user.client.prefs.pref_species.qualifies_for_rank(rank, user.client.prefs.features)) - if(user.client.prefs.pref_species.id == "human") - HTML += "[rank]" - else - HTML += "[rank]" - continue - if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs - HTML += "[rank]" - else - HTML += "[rank]" - - HTML += "" - continue - - HTML += "[prefLevelLabel]" - HTML += "" - - for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even - HTML += "" - - HTML += "
      " - var/rank = job.title - lastJob = job - if(jobban_isbanned(user, rank)) - HTML += "[rank] BANNED
      \[IN [(available_in_days)] DAYS\]
      \[MUTANT\]
      \[NON-HUMAN\]
      " - - var/prefLevelLabel = "ERROR" - var/prefLevelColor = "pink" - var/prefUpperLevel = -1 // level to assign on left click - var/prefLowerLevel = -1 // level to assign on right click - - if(GetJobDepartment(job, 1) & job.flag) - prefLevelLabel = "High" - prefLevelColor = "slateblue" - prefUpperLevel = 4 - prefLowerLevel = 2 - else if(GetJobDepartment(job, 2) & job.flag) - prefLevelLabel = "Medium" - prefLevelColor = "green" - prefUpperLevel = 1 - prefLowerLevel = 3 - else if(GetJobDepartment(job, 3) & job.flag) - prefLevelLabel = "Low" - prefLevelColor = "orange" - prefUpperLevel = 2 - prefLowerLevel = 4 - else - prefLevelLabel = "NEVER" - prefLevelColor = "red" - prefUpperLevel = 3 - prefLowerLevel = 1 - - - HTML += "" - - if(rank == "Assistant")//Assistant is special - if(job_civilian_low & ASSISTANT) - HTML += "Yes" - else - HTML += "No" - HTML += "
        
      " - HTML += "
      " - - var/message = "Be an Assistant if preferences unavailable" - if(joblessrole == BERANDOMJOB) - message = "Get random job if preferences unavailable" - else if(joblessrole == RETURNTOLOBBY) - message = "Return to lobby if preferences unavailable" - HTML += "

      [message]
      " - HTML += "
      Reset Preferences
      " - - user << browse(null, "window=preferences") - var/datum/browser/popup = new(user, "mob_occupation", "
      Occupation Preferences
      ", width, height) - popup.set_window_options("can_close=0") - popup.set_content(HTML) - popup.open(0) - return - -/datum/preferences/proc/SetJobPreferenceLevel(datum/job/job, level) - if (!job) - return 0 - - if (level == 1) // to high - // remove any other job(s) set to high - job_civilian_med |= job_civilian_high - job_engsec_med |= job_engsec_high - job_medsci_med |= job_medsci_high - job_civilian_high = 0 - job_engsec_high = 0 - job_medsci_high = 0 - - if (job.department_flag == CIVILIAN) - job_civilian_low &= ~job.flag - job_civilian_med &= ~job.flag - job_civilian_high &= ~job.flag - - switch(level) - if (1) - job_civilian_high |= job.flag - if (2) - job_civilian_med |= job.flag - if (3) - job_civilian_low |= job.flag - - return 1 - else if (job.department_flag == ENGSEC) - job_engsec_low &= ~job.flag - job_engsec_med &= ~job.flag - job_engsec_high &= ~job.flag - - switch(level) - if (1) - job_engsec_high |= job.flag - if (2) - job_engsec_med |= job.flag - if (3) - job_engsec_low |= job.flag - - return 1 - else if (job.department_flag == MEDSCI) - job_medsci_low &= ~job.flag - job_medsci_med &= ~job.flag - job_medsci_high &= ~job.flag - - switch(level) - if (1) - job_medsci_high |= job.flag - if (2) - job_medsci_med |= job.flag - if (3) - job_medsci_low |= job.flag - - return 1 - - return 0 - -/datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl) - if(!SSjob || SSjob.occupations.len <= 0) - return - var/datum/job/job = SSjob.GetJob(role) - - if(!job) - user << browse(null, "window=mob_occupation") - ShowChoices(user) - return - - if (!isnum(desiredLvl)) - to_chat(user, "UpdateJobPreference - desired level was not a number. Please notify coders!") - ShowChoices(user) - return - - if(role == "Assistant") - if(job_civilian_low & job.flag) - job_civilian_low &= ~job.flag - else - job_civilian_low |= job.flag - SetChoices(user) - return 1 - - SetJobPreferenceLevel(job, desiredLvl) - SetChoices(user) - - return 1 - - -/datum/preferences/proc/ResetJobs() - - job_civilian_high = 0 - job_civilian_med = 0 - job_civilian_low = 0 - - job_medsci_high = 0 - job_medsci_med = 0 - job_medsci_low = 0 - - job_engsec_high = 0 - job_engsec_med = 0 - job_engsec_low = 0 - - -/datum/preferences/proc/GetJobDepartment(datum/job/job, level) - if(!job || !level) - return 0 - switch(job.department_flag) - if(CIVILIAN) - switch(level) - if(1) - return job_civilian_high - if(2) - return job_civilian_med - if(3) - return job_civilian_low - if(MEDSCI) - switch(level) - if(1) - return job_medsci_high - if(2) - return job_medsci_med - if(3) - return job_medsci_low - if(ENGSEC) - switch(level) - if(1) - return job_engsec_high - if(2) - return job_engsec_med - if(3) - return job_engsec_low - return 0 - -/datum/preferences/proc/process_link(mob/user, list/href_list) - if(href_list["jobbancheck"]) - var/job = sanitizeSQL(href_list["jobbancheck"]) - var/sql_ckey = sanitizeSQL(user.ckey) - var/datum/DBQuery/query_get_jobban = SSdbcore.NewQuery("SELECT reason, bantime, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey = '[sql_ckey]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[job]'") - if(!query_get_jobban.warn_execute()) - return - if(query_get_jobban.NextRow()) - var/reason = query_get_jobban.item[1] - var/bantime = query_get_jobban.item[2] - var/duration = query_get_jobban.item[3] - var/expiration_time = query_get_jobban.item[4] - var/a_ckey = query_get_jobban.item[5] - var/text - text = "You, or another user of this computer, ([user.ckey]) is banned from playing [job]. The ban reason is:
      [reason]
      This ban was applied by [a_ckey] on [bantime]" - if(text2num(duration) > 0) - text += ". The ban is for [duration] minutes and expires on [expiration_time] (server time)" - text += ".
      " - to_chat(user, text) - return - - if(href_list["preference"] == "job") - switch(href_list["task"]) - if("close") - user << browse(null, "window=mob_occupation") - ShowChoices(user) - if("reset") - ResetJobs() - SetChoices(user) - if("random") - switch(joblessrole) - if(RETURNTOLOBBY) - if(jobban_isbanned(user, "Assistant")) - joblessrole = BERANDOMJOB - else - joblessrole = BEASSISTANT - if(BEASSISTANT) - joblessrole = BERANDOMJOB - if(BERANDOMJOB) - joblessrole = RETURNTOLOBBY - SetChoices(user) - if("setJobLevel") - UpdateJobPreference(user, href_list["text"], text2num(href_list["level"])) - else - SetChoices(user) - return 1 - - switch(href_list["task"]) - if("random") - switch(href_list["preference"]) - if("name") - real_name = pref_species.random_name(gender,1) - if("age") - age = rand(AGE_MIN, AGE_MAX) - if("hair") - hair_color = random_short_color() - if("hair_style") - hair_style = random_hair_style(gender) - if("facial") - facial_hair_color = random_short_color() - if("facial_hair_style") - facial_hair_style = random_facial_hair_style(gender) - if("underwear") - underwear = random_underwear(gender) - if("undershirt") - undershirt = random_undershirt(gender) - if("socks") - socks = random_socks() - if("eyes") - eye_color = random_eye_color() - if("s_tone") - skin_tone = random_skin_tone() - if("bag") - backbag = pick(GLOB.backbaglist) - if("all") - random_character() - - if("input") - switch(href_list["preference"]) - if("ghostform") - if(unlock_content) - var/new_form = input(user, "Thanks for supporting BYOND - Choose your ghostly form:","Thanks for supporting BYOND",null) as null|anything in GLOB.ghost_forms - if(new_form) - ghost_form = new_form - if("ghostorbit") - if(unlock_content) - var/new_orbit = input(user, "Thanks for supporting BYOND - Choose your ghostly orbit:","Thanks for supporting BYOND", null) as null|anything in GLOB.ghost_orbits - if(new_orbit) - ghost_orbit = new_orbit - - if("ghostaccs") - var/new_ghost_accs = alert("Do you want your ghost to show full accessories where possible, hide accessories but still use the directional sprites where possible, or also ignore the directions and stick to the default sprites?",,GHOST_ACCS_FULL_NAME, GHOST_ACCS_DIR_NAME, GHOST_ACCS_NONE_NAME) - switch(new_ghost_accs) - if(GHOST_ACCS_FULL_NAME) - ghost_accs = GHOST_ACCS_FULL - if(GHOST_ACCS_DIR_NAME) - ghost_accs = GHOST_ACCS_DIR - if(GHOST_ACCS_NONE_NAME) - ghost_accs = GHOST_ACCS_NONE - - if("ghostothers") - var/new_ghost_others = alert("Do you want the ghosts of others to show up as their own setting, as their default sprites or always as the default white ghost?",,GHOST_OTHERS_THEIR_SETTING_NAME, GHOST_OTHERS_DEFAULT_SPRITE_NAME, GHOST_OTHERS_SIMPLE_NAME) - switch(new_ghost_others) - if(GHOST_OTHERS_THEIR_SETTING_NAME) - ghost_others = GHOST_OTHERS_THEIR_SETTING - if(GHOST_OTHERS_DEFAULT_SPRITE_NAME) - ghost_others = GHOST_OTHERS_DEFAULT_SPRITE - if(GHOST_OTHERS_SIMPLE_NAME) - ghost_others = GHOST_OTHERS_SIMPLE - - if("name") - var/new_name = reject_bad_name( input(user, "Choose your character's name:", "Character Preference") as text|null ) - if(new_name) - real_name = new_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("age") - var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference") as num|null - if(new_age) - 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 - if(msg != null) - msg = copytext(msg, 1, MAX_MESSAGE_LEN) - msg = html_encode(msg) - 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 - if(new_metadata) - metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN)) - - if("hair") - var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference") as null|color - if(new_hair) - hair_color = sanitize_hexcolor(new_hair) - - - if("hair_style") - var/new_hair_style - if(gender == MALE) - new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_male_list - else - new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_female_list - if(new_hair_style) - hair_style = new_hair_style - - if("next_hair_style") - if (gender == MALE) - hair_style = next_list_item(hair_style, GLOB.hair_styles_male_list) - else - hair_style = next_list_item(hair_style, GLOB.hair_styles_female_list) - - if("previous_hair_style") - if (gender == MALE) - hair_style = previous_list_item(hair_style, GLOB.hair_styles_male_list) - else - hair_style = previous_list_item(hair_style, GLOB.hair_styles_female_list) - - if("facial") - var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference") as null|color - if(new_facial) - facial_hair_color = sanitize_hexcolor(new_facial) - - if("facial_hair_style") - var/new_facial_hair_style - if(gender == MALE) - new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_male_list - else - new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_female_list - if(new_facial_hair_style) - facial_hair_style = new_facial_hair_style - - if("next_facehair_style") - if (gender == MALE) - facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list) - else - facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list) - - if("previous_facehair_style") - if (gender == MALE) - facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list) - else - facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list) - - if("underwear") - var/new_underwear - if(gender == MALE) - new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_m - else - new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_f - if(new_underwear) - underwear = new_underwear - - if("undershirt") - var/new_undershirt - if(gender == MALE) - new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_m - else - new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_f - if(new_undershirt) - undershirt = new_undershirt - - if("socks") - var/new_socks - new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in GLOB.socks_list - if(new_socks) - socks = new_socks - - if("eyes") - var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference") as color|null - if(new_eyes) - eye_color = sanitize_hexcolor(new_eyes) - - if("species") - - var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_species - - if(result) - var/newtype = GLOB.roundstart_species[result] - pref_species = new newtype() - //Now that we changed our species, we must verify that the mutant colour is still allowed. - var/temp_hsv = RGBtoHSV(features["mcolor"]) - if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) - features["mcolor"] = pref_species.default_color - if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) - features["mcolor2"] = pref_species.default_color - if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) - features["mcolor3"] = pref_species.default_color - - if("mutant_color") - var/new_mutantcolor = input(user, "Choose your character's primary alien/mutant color:", "Character Preference") as color|null - if(new_mutantcolor) - var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(new_mutantcolor == "#000000") - features["mcolor"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin - features["mcolor"] = sanitize_hexcolor(new_mutantcolor) - else - to_chat(user, "Invalid color. Your color is not bright enough.") - - if("mutant_color2") - var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference") as color|null - if(new_mutantcolor) - var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(new_mutantcolor == "#000000") - features["mcolor2"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin - features["mcolor2"] = sanitize_hexcolor(new_mutantcolor) - else - to_chat(user, "Invalid color. Your color is not bright enough.") - - if("mutant_color3") - var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference") as color|null - if(new_mutantcolor) - var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(new_mutantcolor == "#000000") - features["mcolor3"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin - features["mcolor3"] = sanitize_hexcolor(new_mutantcolor) - else - to_chat(user, "Invalid color. Your color is not bright enough.") - - if("tail_lizard") - var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_lizard - if(new_tail) - features["tail_lizard"] = new_tail - if(new_tail != "None") - features["taur"] = "None" - - if("tail_human") - var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_human - if(new_tail) - features["tail_human"] = new_tail - if(new_tail != "None") - features["taur"] = "None" - if("mam_tail") - var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.mam_tails_list - if(new_tail) - features["mam_tail"] = new_tail - if(new_tail != "None") - features["taur"] = "None" - - if("taur") - var/new_taur - new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in GLOB.taur_list - if(new_taur) - features["taur"] = new_taur - if(new_taur != "None") - features["mam_tail"] = "None" - features["xenotail"] = "None" - -/* Doesn't exist yet. will include facial overlays to mimic 5th port species heads. - if("mam_snout") - var/new_snout - new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.mam_snouts_list - if(new_snout) - features["snout"] = new_snout -*/ - - if("snout") - var/new_snout - new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.snouts_list - if(new_snout) - features["snout"] = new_snout - - if("horns") - var/new_horns - new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in GLOB.horns_list - if(new_horns) - features["horns"] = new_horns - - if("mam_ears") - var/new_ears - new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.mam_ears_list - if(new_ears) - features["mam_ears"] = new_ears - - if("ears") - var/new_ears - new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.ears_list - if(new_ears) - features["ears"] = new_ears - - if("wings") - var/new_wings - new_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.r_wings_list - if(new_wings) - features["wings"] = new_wings - - if("frills") - var/new_frills - new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in GLOB.frills_list - if(new_frills) - features["frills"] = new_frills - - if("spines") - var/new_spines - new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in GLOB.spines_list - if(new_spines) - features["spines"] = new_spines - - if("body_markings") - var/new_body_markings - new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.body_markings_list - if(new_body_markings) - features["body_markings"] = new_body_markings - - if("mam_body_markings") - var/new_mam_body_markings - new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.mam_body_markings_list - if(new_mam_body_markings) - features["mam_body_markings"] = new_mam_body_markings - - //Xeno Bodyparts - if("xenohead")//Head or caste type - var/new_head - new_head = input(user, "Choose your character's caste:", "Character Preference") as null|anything in GLOB.xeno_head_list - if(new_head) - features["xenohead"] = new_head - - if("xenotail")//Currently one one type, more maybe later if someone sprites them. Might include animated variants in the future. - var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.xeno_tail_list - if(new_tail) - features["xenotail"] = new_tail - - if("xenodorsal") - var/new_dors - new_dors = input(user, "Choose your character's dorsal tube type:", "Character Preference") as null|anything in GLOB.xeno_dorsal_list - if(new_dors) - features["xenodorsal"] = new_dors - - if("legs") - var/new_legs - new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in GLOB.legs_list - if(new_legs) - features["legs"] = new_legs - - if("s_tone") - var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones - if(new_s_tone) - skin_tone = new_s_tone - - if("ooccolor") - var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null - if(new_ooccolor) - ooccolor = sanitize_ooccolor(new_ooccolor) - - if("bag") - var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backbaglist - if(new_backbag) - backbag = new_backbag - - if("uplink_loc") - var/new_loc = input(user, "Choose your character's traitor uplink spawn location:", "Character Preference") as null|anything in GLOB.uplink_spawn_loc_list - if(new_loc) - uplink_spawn_loc = new_loc - - if("clown_name") - var/new_clown_name = reject_bad_name( input(user, "Choose your character's clown name:", "Character Preference") as text|null ) - if(new_clown_name) - custom_names["clown"] = new_clown_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("mime_name") - var/new_mime_name = reject_bad_name( input(user, "Choose your character's mime name:", "Character Preference") as text|null ) - if(new_mime_name) - custom_names["mime"] = new_mime_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("ai_name") - var/new_ai_name = reject_bad_name( input(user, "Choose your character's AI name:", "Character Preference") as text|null, 1 ) - if(new_ai_name) - custom_names["ai"] = new_ai_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and .") - - if("cyborg_name") - var/new_cyborg_name = reject_bad_name( input(user, "Choose your character's cyborg name:", "Character Preference") as text|null, 1 ) - if(new_cyborg_name) - custom_names["cyborg"] = new_cyborg_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and .") - - if("religion_name") - var/new_religion_name = reject_bad_name( input(user, "Choose your character's religion:", "Character Preference") as text|null ) - if(new_religion_name) - custom_names["religion"] = new_religion_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("deity_name") - var/new_deity_name = reject_bad_name( input(user, "Choose your character's deity:", "Character Preference") as text|null ) - if(new_deity_name) - custom_names["deity"] = new_deity_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("sec_dept") - var/department = input(user, "Choose your prefered security department:", "Security Departments") as null|anything in GLOB.security_depts_prefs - if(department) - prefered_security_department = department - - if ("preferred_map") - var/maplist = list() - var/default = "Default" - if (config.defaultmap) - default += " ([config.defaultmap.map_name])" - for (var/M in config.maplist) - var/datum/map_config/VM = config.maplist[M] - var/friendlyname = "[VM.map_name] " - if (VM.voteweight <= 0) - friendlyname += " (disabled)" - maplist[friendlyname] = VM.map_name - maplist[default] = null - var/pickedmap = input(user, "Choose your preferred map. This will be used to help weight random map selection.", "Character Preference") as null|anything in maplist - if (pickedmap) - preferred_map = maplist[pickedmap] - - if ("clientfps") - var/version_message - if (user.client && user.client.byond_version < 511) - version_message = "\nYou need to be using byond version 511 or later to take advantage of this feature, your version of [user.client.byond_version] is too low" - if (world.byond_version < 511) - version_message += "\nThis server does not currently support client side fps. You can set now for when it does." - var/desiredfps = input(user, "Choose your desired fps.[version_message]\n(0 = synced with server tick rate (currently:[world.fps]))", "Character Preference", clientfps) as null|num - if (!isnull(desiredfps)) - clientfps = desiredfps - if (world.byond_version >= 511 && user.client && user.client.byond_version >= 511) - user.client.vars["fps"] = clientfps - if("ui") - var/pickedui = input(user, "Choose your UI style.", "Character Preference") as null|anything in list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative", "Clockwork") - if(pickedui) - UI_style = pickedui - - //citadel code - if("cock_color") - var/new_cockcolor = input(user, "Penis color:", "Character Preference") as color|null - if(new_cockcolor) - var/temp_hsv = RGBtoHSV(new_cockcolor) - if(new_cockcolor == "#000000") - features["cock_color"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["cock_color"] = sanitize_hexcolor(new_cockcolor) - else - user << "Invalid color. Your color is not bright enough." - - if("cock_length") - var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null - if(new_length) - features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN) - - if("cock_shape") - var/new_shape - new_shape = input(user, "Penis shape:", "Character Preference") as null|anything in GLOB.cock_shapes_list - if(new_shape) - features["cock_shape"] = new_shape - - if("balls_color") - var/new_ballscolor = input(user, "Testicle Color:", "Character Preference") as color|null - if(new_ballscolor) - var/temp_hsv = RGBtoHSV(new_ballscolor) - if(new_ballscolor == "#000000") - features["balls_color"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["balls_color"] = sanitize_hexcolor(new_ballscolor) - else - user << "Invalid color. Your color is not bright enough." - - if("egg_size") - var/new_size - var/list/egg_sizes = list(1,2,3) - new_size = input(user, "Egg Diameter(inches):", "Egg Size") as null|anything in egg_sizes - if(new_size) - features["eggsack_egg_size"] = new_size - - if("egg_color") - var/new_egg_color = input(user, "Egg Color:", "Character Preference") as color|null - if(new_egg_color) - var/temp_hsv = RGBtoHSV(new_egg_color) - if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["eggsack_egg_color"] = sanitize_hexcolor(new_egg_color) - else - user << "Invalid color. Your color is not bright enough." - if("breasts_size") - var/new_size - new_size = input(user, "Breast Size", "Character Preference") as null|anything in GLOB.breasts_size_list - if(new_size) - features["breasts_size"] = new_size - - if("breasts_shape") - var/new_shape - new_shape = input(user, "Breast Shape", "Character Preference") as null|anything in GLOB.breasts_shapes_list - if(new_shape) - features["breasts_shape"] = new_shape - - if("breasts_color") - var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null - if(new_breasts_color) - var/temp_hsv = RGBtoHSV(new_breasts_color) - if(new_breasts_color == "#000000") - features["breasts_color"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["breasts_color"] = sanitize_hexcolor(new_breasts_color) - else - user << "Invalid color. Your color is not bright enough." - if("vag_shape") - var/new_shape - new_shape = input(user, "Vagina Type", "Character Preference") as null|anything in GLOB.vagina_shapes_list - if(new_shape) - features["vag_shape"] = new_shape - if("vag_color") - var/new_vagcolor = input(user, "Vagina color:", "Character Preference") as color|null - if(new_vagcolor) - var/temp_hsv = RGBtoHSV(new_vagcolor) - if(new_vagcolor == "#000000") - features["vag_color"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["vag_color"] = sanitize_hexcolor(new_vagcolor) - else - user << "Invalid color. Your color is not bright enough." - - else - switch(href_list["preference"]) - - //citadel code - if("genital_colour") - switch(features["genitals_use_skintone"]) - if(TRUE) - features["genitals_use_skintone"] = FALSE - if(FALSE) - features["genitals_use_skintone"] = TRUE - else - features["genitals_use_skintone"] = FALSE - if("arousable") - switch(arousable) - if(TRUE) - arousable = FALSE - if(FALSE) - arousable = TRUE - else//failsafe - arousable = FALSE - if("has_cock") - switch(features["has_cock"]) - if(TRUE) - features["has_cock"] = FALSE - if(FALSE) - features["has_cock"] = TRUE - features["has_ovi"] = FALSE - features["has_eggsack"] = FALSE - else - features["has_cock"] = FALSE - features["has_ovi"] = FALSE - if("has_balls") - switch(features["has_balls"]) - if(TRUE) - features["has_balls"] = FALSE - if(FALSE) - features["has_balls"] = TRUE - features["has_eggsack"] = FALSE - else - features["has_balls"] = FALSE - features["has_eggsack"] = FALSE - - if("has_ovi") - switch(features["has_ovi"]) - if(TRUE) - features["has_ovi"] = FALSE - if(FALSE) - features["has_ovi"] = TRUE - features["has_cock"] = FALSE - features["has_balls"] = FALSE - else - features["has_ovi"] = FALSE - features["has_cock"] = FALSE - - if("has_eggsack") - switch(features["has_eggsack"]) - if(TRUE) - features["has_eggsack"] = FALSE - if(FALSE) - features["has_eggsack"] = TRUE - features["has_balls"] = FALSE - else - features["has_eggsack"] = FALSE - features["has_balls"] = FALSE - - if("balls_internal") - switch(features["balls_internal"]) - if(TRUE) - features["balls_internal"] = FALSE - if(FALSE) - features["balls_internal"] = TRUE - features["eggsack_internal"] = FALSE - else - features["balls_internal"] = FALSE - features["eggsack_internal"] = FALSE - - if("eggsack_internal") - switch(features["eggsack_internal"]) - if(TRUE) - features["eggsack_internal"] = FALSE - if(FALSE) - features["eggsack_internal"] = TRUE - features["balls_internal"] = FALSE - else - features["eggsack_internal"] = FALSE - features["balls_internal"] = FALSE - - if("has_breasts") - switch(features["has_breasts"]) - if(TRUE) - features["has_breasts"] = FALSE - if(FALSE) - features["has_breasts"] = TRUE - else - features["has_breasts"] = FALSE - if("has_vag") - switch(features["has_vag"]) - if(TRUE) - features["has_vag"] = FALSE - if(FALSE) - features["has_vag"] = TRUE - else - features["has_vag"] = FALSE - if("has_womb") - switch(features["has_womb"]) - if(TRUE) - features["has_womb"] = FALSE - if(FALSE) - features["has_womb"] = TRUE - else - features["has_womb"] = FALSE - if("exhibitionist") - switch(features["exhibitionist"]) - if(TRUE) - features["exhibitionist"] = FALSE - if(FALSE) - features["exhibitionist"] = TRUE - else - features["exhibitionist"] = FALSE - - if("publicity") - if(unlock_content) - toggles ^= MEMBER_PUBLIC - if("gender") - if(gender == MALE) - gender = FEMALE - else - gender = MALE - underwear = "Nude" - undershirt = "Nude" - socks = "Nude" - facial_hair_style = "Shaved" - hair_style = "Bald" - - if("hotkeys") - hotkeys = !hotkeys - - if("tgui_fancy") - tgui_fancy = !tgui_fancy - if("tgui_lock") - tgui_lock = !tgui_lock - if("winflash") - windowflashing = !windowflashing - if("hear_adminhelps") - toggles ^= SOUND_ADMINHELP - if("announce_login") - toggles ^= ANNOUNCE_LOGIN - - if("be_special") - var/be_special_type = href_list["be_special_type"] - if(be_special_type in be_special) - be_special -= be_special_type - else - be_special += be_special_type - - if("name") - be_random_name = !be_random_name - - if("all") - be_random_body = !be_random_body - - if("hear_midis") - toggles ^= SOUND_MIDI - - if("lobby_music") - toggles ^= SOUND_LOBBY - if((toggles & SOUND_LOBBY) && user.client) - user.client.playtitlemusic() - else - user.stop_sound_channel(CHANNEL_LOBBYMUSIC) - - if("ghost_ears") - chat_toggles ^= CHAT_GHOSTEARS - - if("ghost_sight") - chat_toggles ^= CHAT_GHOSTSIGHT - - if("ghost_whispers") - chat_toggles ^= CHAT_GHOSTWHISPER - - if("ghost_radio") - chat_toggles ^= CHAT_GHOSTRADIO - - if("ghost_pda") - chat_toggles ^= CHAT_GHOSTPDA - - if("pull_requests") - chat_toggles ^= CHAT_PULLR - - if("allow_midround_antag") - toggles ^= MIDROUND_ANTAG - - if("parallaxup") - parallax = Wrap(parallax + 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) - if (parent && parent.mob && parent.mob.hud_used) - parent.mob.hud_used.update_parallax_pref(parent.mob) - - if("parallaxdown") - parallax = Wrap(parallax - 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) - if (parent && parent.mob && parent.mob.hud_used) - parent.mob.hud_used.update_parallax_pref(parent.mob) - - if("save") - save_preferences() - save_character() - - if("load") - load_preferences() - load_character() - attempt_vr(parent.prefs_vr,"load_vore","") - - if("changeslot") - attempt_vr(parent.prefs_vr,"load_vore","") - if(!load_character(text2num(href_list["num"]))) - random_character() - real_name = random_unique_name(gender) - save_character() - - if("tab") - if (href_list["tab"]) - current_tab = text2num(href_list["tab"]) - - ShowChoices(user) - return 1 - -/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1) - if(be_random_name) - real_name = pref_species.random_name(gender) - - if(be_random_body) - random_character(gender) - - if(config.humans_need_surnames) - var/firstspace = findtext(real_name, " ") - var/name_length = length(real_name) - if(!firstspace) //we need a surname - real_name += " [pick(GLOB.last_names)]" - else if(firstspace == name_length) - real_name += "[pick(GLOB.last_names)]" - - character.real_name = real_name - character.name = character.real_name - - character.gender = gender - character.age = age - - character.eye_color = eye_color - var/obj/item/organ/eyes/organ_eyes = character.getorgan(/obj/item/organ/eyes) - if(organ_eyes) - if(!initial(organ_eyes.eye_color)) - organ_eyes.eye_color = eye_color - organ_eyes.old_eye_color = eye_color - character.hair_color = hair_color - character.facial_hair_color = facial_hair_color - - character.skin_tone = skin_tone - character.hair_style = hair_style - character.facial_hair_style = facial_hair_style - character.underwear = underwear - character.undershirt = undershirt - character.socks = socks - - character.backbag = backbag - - character.dna.features = features.Copy() - character.dna.real_name = character.real_name - var/datum/species/chosen_species - if(pref_species != /datum/species/human && config.mutant_races) - chosen_species = pref_species.type - else - chosen_species = /datum/species/human - character.set_species(chosen_species, icon_update=0) - - //citadel code - character.give_genitals() - character.flavor_text = flavor_text - character.canbearoused = arousable - - if(icon_updates) - character.update_body() - character.update_hair() - character.update_body_parts() + + +GLOBAL_LIST_EMPTY(preferences_datums) + + + +/datum/preferences + var/client/parent + //doohickeys for savefiles + var/path + var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used + var/max_save_slots = 10 + + //non-preference stuff + var/muted = 0 + var/last_ip + var/last_id + + //game-preferences + var/lastchangelog = "" //Saved changlog filesize to detect if there was a change + var/ooccolor = null + + //Antag preferences + var/list/be_special = list() //Special role selection + var/tmp/old_be_special = 0 //Bitflag version of be_special, used to update old savefiles and nothing more + //If it's 0, that's good, if it's anything but 0, the owner of this prefs file's antag choices were, + //autocorrected this round, not that you'd need to check that. + + + var/UI_style = "Midnight" + var/hotkeys = FALSE + var/tgui_fancy = TRUE + var/tgui_lock = TRUE + var/windowflashing = TRUE + var/toggles = TOGGLES_DEFAULT + var/chat_toggles = TOGGLES_DEFAULT_CHAT + var/ghost_form = "ghost" + var/ghost_orbit = GHOST_ORBIT_CIRCLE + var/ghost_accs = GHOST_ACCS_DEFAULT_OPTION + var/ghost_others = GHOST_OTHERS_DEFAULT_OPTION + var/ghost_hud = 1 + var/inquisitive_ghost = 1 + var/allow_midround_antag = 1 + var/preferred_map = null + + var/uses_glasses_colour = 0 + + //character preferences + var/real_name //our character's name + var/be_random_name = 0 //whether we'll have a random name every round + var/be_random_body = 0 //whether we'll have a random body every round + var/gender = MALE //gender of character (well duh) + var/age = 30 //age of character + var/underwear = "Nude" //underwear type + var/undershirt = "Nude" //undershirt type + var/socks = "Nude" //socks type + var/backbag = DBACKPACK //backpack type + var/hair_style = "Bald" //Hair type + var/hair_color = "000" //Hair color + var/facial_hair_style = "Shaved" //Face hair type + var/facial_hair_color = "000" //Facial hair color + var/skin_tone = "caucasian1" //Skin color + var/eye_color = "000" //Eye color + var/datum/species/pref_species = new /datum/species/human() //Mutant race + var/list/features = list("mcolor" = "FFF", + "mcolor2" = "FFF", + "mcolor3" = "FFF", + "tail_lizard" = "Smooth", + "tail_human" = "None", + "snout" = "Round", + "horns" = "None", + "ears" = "None", + "wings" = "None", + "frills" = "None", + "spines" = "None", + "body_markings" = "None", + "mam_body_markings" = "None", + "mam_ears" = "None", + "mam_tail" = "None", + "mam_tail_animated" = "None", + "xenodorsal" = "None", + "xenohead" = "None", + "xenotail" = "None", + "legs" = "Normal Legs", + "taur" = "None", + "exhibitionist" = FALSE, + "genitals_use_skintone" = FALSE, + "has_cock" = FALSE, + "cock_shape" = "Human", + "cock_length" = 6, + "cock_girth_ratio" = COCK_GIRTH_RATIO_DEF, + "cock_color" = "fff", + "has_sheath" = FALSE, + "sheath_color" = "fff", + "has_balls" = FALSE, + "balls_internal" = FALSE, + "balls_color" = "fff", + "balls_amount" = 2, + "balls_sack_size" = BALLS_SACK_SIZE_DEF, + "balls_size" = BALLS_SIZE_DEF, + "balls_cum_rate" = CUM_RATE, + "balls_cum_mult" = CUM_RATE_MULT, + "balls_efficiency" = CUM_EFFICIENCY, + "balls_fluid" = "semen", + "has_ovi" = FALSE, + "ovi_shape" = "knotted", + "ovi_length" = 6, + "ovi_color" = "fff", + "has_eggsack" = FALSE, + "eggsack_internal" = TRUE, + "eggsack_color" = "fff", + "eggsack_size" = BALLS_SACK_SIZE_DEF, + "eggsack_egg_color" = "fff", + "eggsack_egg_size" = EGG_GIRTH_DEF, + "has_breasts" = FALSE, + "breasts_color" = "fff", + "breasts_size" = "C", + "breasts_shape" = "Pair", + "breasts_fluid" = "milk", + "has_vag" = FALSE, + "vag_shape" = "Human", + "vag_color" = "fff", + "vag_clits" = 1, + "vag_clit_diam" = 0.25, + "vag_clit_len" = 0.25, + "has_womb" = FALSE, + "womb_cum_rate" = CUM_RATE, + "womb_cum_mult" = CUM_RATE_MULT, + "womb_efficiency" = CUM_EFFICIENCY, + "womb_fluid" = "femcum" + )//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") + var/prefered_security_department = SEC_DEPT_RANDOM + + //Mob preview + var/icon/preview_icon = null + + //Jobs, uses bitflags + var/job_civilian_high = 0 + var/job_civilian_med = 0 + var/job_civilian_low = 0 + + var/job_medsci_high = 0 + var/job_medsci_med = 0 + var/job_medsci_low = 0 + + var/job_engsec_high = 0 + var/job_engsec_med = 0 + var/job_engsec_low = 0 + + // Want randomjob if preferences already filled - Donkie + var/joblessrole = BERANDOMJOB //defaults to 1 for fewer assistants + + // 0 = character settings, 1 = game preferences, 2 = character appearance + var/current_tab = 0 + + // OOC Metadata: + var/metadata = "" + + var/unlock_content = 0 + + var/list/ignoring = list() + + var/clientfps = 0 + + var/parallax + + var/uplink_spawn_loc = UPLINK_PDA + + var/list/menuoptions + + //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 + custom_names["ai"] = pick(GLOB.ai_names) + custom_names["cyborg"] = pick(GLOB.ai_names) + custom_names["clown"] = pick(GLOB.clown_names) + custom_names["mime"] = pick(GLOB.mime_names) + if(istype(C)) + if(!IsGuestKey(C.key)) + load_path(C.ckey) + unlock_content = C.IsByondMember() + if(unlock_content) + max_save_slots = 16 + var/loaded_preferences_successfully = load_preferences() + if(loaded_preferences_successfully) + if(load_character()) + return + //we couldn't load character data so just randomize the character appearance + name + random_character() //let's create a random character then - rather than a fat, bald and naked man. + real_name = pref_species.random_name(gender,1) + if(!loaded_preferences_successfully) + save_preferences() + save_character() //let's save this new random character so it doesn't keep generating new ones. + menuoptions = list() + return + +/datum/preferences/proc/ShowChoices(mob/user) + if(!user || !user.client) + return + if(current_tab == 2) + update_preview_icon(nude=TRUE) + else + update_preview_icon(nude=FALSE) + user << browse_rsc(preview_icon, "previewicon.png") + var/dat = "
      " + + dat += "Character Settings" + dat += "Character Appearance" + dat += "Game Preferences" + + if(!path) + dat += "
      Please create an account to save your preferences
      " + + dat += "
      " + + dat += "
      " + + switch(current_tab) + if (0) // Character Settings# + if(path) + var/savefile/S = new /savefile(path) + if(S) + dat += "
      " + var/name + for(var/i=1, i<=max_save_slots, i++) + S.cd = "/character[i]" + S["real_name"] >> name + if(!name) + name = "Character[i]" + //if(i!=1) dat += " | " + dat += "[name] " + dat += "
      " + + dat += "

      Occupation Choices

      " + dat += "Set Occupation Preferences
      " + dat += "

      Identity

      " + dat += "" + + dat += "
      " + if(jobban_isbanned(user, "appearance")) + dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game.
      " + dat += "Random Name " + dat += "Always Random Name: [be_random_name ? "Yes" : "No"]
      " + + dat += "Name: " + dat += "[real_name]
      " + + dat += "Gender: [gender == MALE ? "Male" : "Female"]
      " + dat += "Age: [age]
      " + dat += "Arousal:[arousable == TRUE ? "Enabled" : "Disabled"]
      " + dat += "Exhibitionist:[features["exhibitionist"] == TRUE ? "Yes" : "No"]
      " + dat += "Special Names:
      " + dat += "Clown: [custom_names["clown"]] " + dat += "Mime:[custom_names["mime"]]
      " + dat += "AI: [custom_names["ai"]] " + dat += "Cyborg: [custom_names["cyborg"]]
      " + dat += "Chaplain religion: [custom_names["religion"]] " + dat += "Chaplain deity: [custom_names["deity"]]
      " + + dat += "Custom job preferences:
      " + dat += "Prefered security department: [prefered_security_department]
      " + + dat += "
      " + + dat += "
      " +// dat += "Size: [character_size]
      " + dat += "
      " + + if (1) // Game Preferences + dat += "
      " + dat += "

      General Settings

      " + dat += "UI Style: [UI_style]
      " + dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
      " + dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
      " + dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
      " + dat += "Window Flashing: [(windowflashing) ? "Yes" : "No"]
      " + dat += "Play admin midis: [(toggles & SOUND_MIDI) ? "Yes" : "No"]
      " + dat += "Play lobby music: [(toggles & SOUND_LOBBY) ? "Yes" : "No"]
      " + dat += "Ghost ears: [(chat_toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
      " + dat += "Ghost sight: [(chat_toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]
      " + dat += "Ghost whispers: [(chat_toggles & CHAT_GHOSTWHISPER) ? "All Speech" : "Nearest Creatures"]
      " + dat += "Ghost radio: [(chat_toggles & CHAT_GHOSTRADIO) ? "Yes" : "No"]
      " + dat += "Ghost pda: [(chat_toggles & CHAT_GHOSTPDA) ? "All Messages" : "Nearest Creatures"]
      " + dat += "Pull requests: [(chat_toggles & CHAT_PULLR) ? "Yes" : "No"]
      " + dat += "Midround Antagonist: [(toggles & MIDROUND_ANTAG) ? "Yes" : "No"]
      " + if(config.allow_Metadata) + dat += "OOC Notes: Edit
      " + + if(user.client) + if(user.client.holder) + dat += "Adminhelp Sound: [(toggles & SOUND_ADMINHELP)?"On":"Off"]
      " + dat += "Announce Login: [(toggles & ANNOUNCE_LOGIN)?"On":"Off"]
      " + + if(unlock_content || check_rights_for(user.client, R_ADMIN)) + dat += "OOC:     Change
      " + + if(unlock_content) + dat += "BYOND Membership Publicity: [(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]
      " + dat += "Ghost Form: [ghost_form]
      " + dat += "Ghost Orbit: [ghost_orbit]
      " + + var/button_name = "If you see this something went wrong." + switch(ghost_accs) + if(GHOST_ACCS_FULL) + button_name = GHOST_ACCS_FULL_NAME + if(GHOST_ACCS_DIR) + button_name = GHOST_ACCS_DIR_NAME + if(GHOST_ACCS_NONE) + button_name = GHOST_ACCS_NONE_NAME + + dat += "Ghost Accessories: [button_name]
      " + + switch(ghost_others) + if(GHOST_OTHERS_THEIR_SETTING) + button_name = GHOST_OTHERS_THEIR_SETTING_NAME + if(GHOST_OTHERS_DEFAULT_SPRITE) + button_name = GHOST_OTHERS_DEFAULT_SPRITE_NAME + if(GHOST_OTHERS_SIMPLE) + button_name = GHOST_OTHERS_SIMPLE_NAME + + dat += "Ghosts of Others: [button_name]
      " + + if (config.maprotation) + var/p_map = preferred_map + if (!p_map) + p_map = "Default" + if (config.defaultmap) + p_map += " ([config.defaultmap.map_name])" + else + if (p_map in config.maplist) + var/datum/map_config/VM = config.maplist[p_map] + if (!VM) + p_map += " (No longer exists)" + else + p_map = VM.map_name + else + p_map += " (No longer exists)" + if(config.allow_map_voting) + dat += "Preferred Map: [p_map]
      " + + dat += "FPS: [clientfps]
      " + + dat += "Parallax (Fancy Space): " + switch (parallax) + if (PARALLAX_LOW) + dat += "Low" + if (PARALLAX_MED) + dat += "Medium" + if (PARALLAX_INSANE) + dat += "Insane" + if (PARALLAX_DISABLE) + dat += "Disabled" + else + dat += "High" + dat += "
      " + + dat += "
      " + + dat += "

      Special Role Settings

      " + + if(jobban_isbanned(user, "Syndicate")) + dat += "You are banned from antagonist roles." + src.be_special = list() + + + for (var/i in GLOB.special_roles) + if(jobban_isbanned(user, i)) + dat += "Be [capitalize(i)]: BANNED
      " + else + var/days_remaining = null + if(config.use_age_restriction_for_jobs && ispath(GLOB.special_roles[i])) //If it's a game mode antag, check if the player meets the minimum age + var/mode_path = GLOB.special_roles[i] + var/datum/game_mode/temp_mode = new mode_path + days_remaining = temp_mode.get_remaining_days(user.client) + + if(days_remaining) + dat += "Be [capitalize(i)]: \[IN [days_remaining] DAYS]
      " + else + dat += "Be [capitalize(i)]: [(i in be_special) ? "Yes" : "No"]
      " + + dat += "
      " + + //Character Appearance + if(2) + dat += "" + */ + + + dat += "
      " + dat += "

      " + dat += "Set Flavor Text
      " + if(lentext(flavor_text) <= 40) + if(!lentext(flavor_text)) + dat += "\[...\]" + else + dat += "[flavor_text]" + else + dat += "[TextPreview(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"]
      " + dat += "Species:[pref_species.id]
      " + dat += "Random Body
      " + dat += "Always Random Body: [be_random_body ? "Yes" : "No"]
      " + if((MUTCOLORS in pref_species.species_traits) || (MUTCOLORS_PARTSONLY in pref_species.species_traits)) + dat += "Primary Color:     Change
      " + dat += "Secondary Color:     Change
      " + dat += "Tertiary Color:     Change
      " + if(pref_species.use_skintones) + dat += "Skin Tone: [skin_tone]
      " + dat += "Genitals Use Skintone:[features["genitals_use_skintone"] == TRUE ? "Enabled" : "Disabled"]
      " + + if(HAIR in pref_species.species_traits) + dat += "Hair Style: [hair_style]
      " + dat += "Hair Color:     Change
      " + dat += "Facial Hair Style: [facial_hair_style]
      " + dat += "Facial Hair Color:     Change
      " + if(EYECOLOR in pref_species.species_traits) + dat += "Eye Color:     Change
      " + if("tail_lizard" in pref_species.mutant_bodyparts) + dat += "Tail: [features["tail_lizard"]]
      " + else if("mam_tail" in pref_species.mutant_bodyparts) + dat += "Tail: [features["mam_tail"]]
      " + else if("tail_human" in pref_species.mutant_bodyparts) + dat += "Tail: [features["tail_human"]]
      " + if("snout" in pref_species.mutant_bodyparts) + dat += "Snout: [features["snout"]]
      " + if("horns" in pref_species.mutant_bodyparts) + dat += "Snout: [features["horns"]]
      " + if("frills" in pref_species.mutant_bodyparts) + dat += "Frills: [features["frills"]]
      " + if("spines" in pref_species.mutant_bodyparts) + dat += "Spines: [features["spines"]]
      " + if("body_markings" in pref_species.mutant_bodyparts) + dat += "Body Markings: [features["body_markings"]]
      " + else if("mam_body_markings" in pref_species.mutant_bodyparts) + dat += "Body Markings: [features["mam_body_markings"]]
      " + if("mam_ears" in pref_species.mutant_bodyparts) + dat += "Ears: [features["mam_ears"]]
      " + else if("ears" in pref_species.mutant_bodyparts) + dat += "Ears: [features["ears"]]
      " + if("legs" in pref_species.mutant_bodyparts) + dat += "Legs: [features["legs"]]
      " + if("taur" in pref_species.mutant_bodyparts) + dat += "Taur: [features["taur"]]
      " + if("wings" in pref_species.mutant_bodyparts && GLOB.r_wings_list.len >1) + dat += "Wings: [features["wings"]]
      " + if("xenohead" in pref_species.mutant_bodyparts) + dat += "Caste: [features["xenohead"]]
      " + if("xenotail" in pref_species.mutant_bodyparts) + dat += "Tail: [features["xenotail"]]
      " + if("xenodorsal" in pref_species.mutant_bodyparts) + dat += "Dorsal Tubes: [features["xenodorsal"]]
      " + + dat += "
      " + + + dat += "

      Clothing & Equipment

      " +//underwear will be refactored later so it fits in with other wearable equipment and isn't just an overlay +// dat += "Underwear:[underwear]
      " +// dat += "Undershirt:[undershirt]
      " +// dat += "Socks:[socks]
      " + dat += "Backpack:[backbag]
      " + dat += "Uplink Location:[uplink_spawn_loc]
      " + + dat += "

      Genitals

      " + if(NOGENITALS in pref_species.species_traits) + dat += "Your species ([pref_species.name]) does not support genitals!
      " + else + dat += "Has Penis:[features["has_cock"] == TRUE ? "Yes" : "No"]
      " + if(features["has_cock"] == TRUE) + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Penis Color:   (Skin tone overriding)
      " + else + dat += "Penis Color:    Change
      " +// dat += "
      " + dat += "Penis Shape: [features["cock_shape"]]
      " + dat += "Penis Length: [features["cock_length"]] inch(es)
      " + dat += "Has Testicles:[features["has_balls"] == TRUE ? "Yes" : "No"]
      " + if(features["has_balls"] == TRUE) + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Testicles Color:   (Skin tone overriding)
      " + else + dat += "Testicles Color:    Change
      " + dat += "Has Vagina:[features["has_vag"] == TRUE ? "Yes" : "No"]
      " + if(features["has_vag"]) + dat += "Vagina Type: [features["vag_shape"]]
      " + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Vagina Color:   (Skin tone overriding)
      " + else + dat += "Vagina Color:    Change
      " + dat += "Has Womb:[features["has_womb"] == TRUE ? "Yes" : "No"]
      " + dat += "Has Breasts:[features["has_breasts"] == TRUE ? "Yes" : "No"]
      " + if(features["has_breasts"]) + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Color:   (Skin tone overriding)
      " + else + dat += "Color:    Change
      " + dat += "Cup Size:[features["breasts_size"]]
      " + dat += "Breast Shape:[features["breasts_shape"]]
      " + /* + dat += "

      Ovipositor

      " + dat += "Has Ovipositor:[features["has_ovi"] == TRUE ? "Yes" : "No"]" + if(features["has_ovi"]) + dat += "Ovi Color:    Change" + dat += "

      Eggsack

      " + dat += "Has Eggsack:[features["has_eggsack"] == TRUE ? "Yes" : "No"]
      " + if(features["has_eggsack"] == TRUE) + dat += "Color:    Change" + dat += "Egg Color:    Change" + dat += "Egg Size:[features["eggsack_egg_size"]]\" Diameter" + + dat += "
      " + dat += "
      " + + if(!IsGuestKey(user.key)) + dat += "Undo " + dat += "Save Setup " + + dat += "Reset Setup" + dat += "
      " + + var/datum/browser/popup = new(user, "preferences", "
      Character Setup
      ", 640, 770) + popup.set_content(dat) + popup.open(0) + +/datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620) + if(!SSjob) + return + + //limit - The amount of jobs allowed per column. Defaults to 17 to make it look nice. + //splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice. + //widthPerColumn - Screen's width for every column. + //height - Screen's height. + + var/width = widthPerColumn + + var/HTML = "
      " + if(SSjob.occupations.len <= 0) + HTML += "The job ticker is not yet finished creating jobs, please try again later" + HTML += "
      Done

      " // Easier to press up here. + + else + HTML += "Choose occupation chances
      " + HTML += "
      Left-click to raise an occupation preference, right-click to lower it.
      " + HTML += "
      Done

      " // Easier to press up here. + HTML += "" + HTML += "
      " // Table within a table for alignment, also allows you to easily add more colomns. + HTML += "" + var/index = -1 + + //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows. + var/datum/job/lastJob + + for(var/datum/job/job in SSjob.occupations) + + index += 1 + if((index >= limit) || (job.title in splitJobs)) + width += widthPerColumn + if((index < limit) && (lastJob != null)) + //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with + //the last job's selection color. Creating a rather nice effect. + for(var/i = 0, i < (limit - index), i += 1) + HTML += "" + HTML += "
        
      " + index = 0 + + HTML += "" + continue + if(!job.player_old_enough(user.client)) + var/available_in_days = job.available_in_days(user.client) + HTML += "[rank]" + continue + if((job_civilian_low & ASSISTANT) && (rank != "Assistant") && !jobban_isbanned(user, "Assistant")) + HTML += "[rank]" + continue + if(config.enforce_human_authority && !user.client.prefs.pref_species.qualifies_for_rank(rank, user.client.prefs.features)) + if(user.client.prefs.pref_species.id == "human") + HTML += "[rank]" + else + HTML += "[rank]" + continue + if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs + HTML += "[rank]" + else + HTML += "[rank]" + + HTML += "" + continue + + HTML += "[prefLevelLabel]" + HTML += "" + + for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even + HTML += "" + + HTML += "
      " + var/rank = job.title + lastJob = job + if(jobban_isbanned(user, rank)) + HTML += "[rank] BANNED
      \[IN [(available_in_days)] DAYS\]
      \[MUTANT\]
      \[NON-HUMAN\]
      " + + var/prefLevelLabel = "ERROR" + var/prefLevelColor = "pink" + var/prefUpperLevel = -1 // level to assign on left click + var/prefLowerLevel = -1 // level to assign on right click + + if(GetJobDepartment(job, 1) & job.flag) + prefLevelLabel = "High" + prefLevelColor = "slateblue" + prefUpperLevel = 4 + prefLowerLevel = 2 + else if(GetJobDepartment(job, 2) & job.flag) + prefLevelLabel = "Medium" + prefLevelColor = "green" + prefUpperLevel = 1 + prefLowerLevel = 3 + else if(GetJobDepartment(job, 3) & job.flag) + prefLevelLabel = "Low" + prefLevelColor = "orange" + prefUpperLevel = 2 + prefLowerLevel = 4 + else + prefLevelLabel = "NEVER" + prefLevelColor = "red" + prefUpperLevel = 3 + prefLowerLevel = 1 + + + HTML += "" + + if(rank == "Assistant")//Assistant is special + if(job_civilian_low & ASSISTANT) + HTML += "Yes" + else + HTML += "No" + HTML += "
        
      " + HTML += "
      " + + var/message = "Be an Assistant if preferences unavailable" + if(joblessrole == BERANDOMJOB) + message = "Get random job if preferences unavailable" + else if(joblessrole == RETURNTOLOBBY) + message = "Return to lobby if preferences unavailable" + HTML += "

      [message]
      " + HTML += "
      Reset Preferences
      " + + user << browse(null, "window=preferences") + var/datum/browser/popup = new(user, "mob_occupation", "
      Occupation Preferences
      ", width, height) + popup.set_window_options("can_close=0") + popup.set_content(HTML) + popup.open(0) + return + +/datum/preferences/proc/SetJobPreferenceLevel(datum/job/job, level) + if (!job) + return 0 + + if (level == 1) // to high + // remove any other job(s) set to high + job_civilian_med |= job_civilian_high + job_engsec_med |= job_engsec_high + job_medsci_med |= job_medsci_high + job_civilian_high = 0 + job_engsec_high = 0 + job_medsci_high = 0 + + if (job.department_flag == CIVILIAN) + job_civilian_low &= ~job.flag + job_civilian_med &= ~job.flag + job_civilian_high &= ~job.flag + + switch(level) + if (1) + job_civilian_high |= job.flag + if (2) + job_civilian_med |= job.flag + if (3) + job_civilian_low |= job.flag + + return 1 + else if (job.department_flag == ENGSEC) + job_engsec_low &= ~job.flag + job_engsec_med &= ~job.flag + job_engsec_high &= ~job.flag + + switch(level) + if (1) + job_engsec_high |= job.flag + if (2) + job_engsec_med |= job.flag + if (3) + job_engsec_low |= job.flag + + return 1 + else if (job.department_flag == MEDSCI) + job_medsci_low &= ~job.flag + job_medsci_med &= ~job.flag + job_medsci_high &= ~job.flag + + switch(level) + if (1) + job_medsci_high |= job.flag + if (2) + job_medsci_med |= job.flag + if (3) + job_medsci_low |= job.flag + + return 1 + + return 0 + +/datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl) + if(!SSjob || SSjob.occupations.len <= 0) + return + var/datum/job/job = SSjob.GetJob(role) + + if(!job) + user << browse(null, "window=mob_occupation") + ShowChoices(user) + return + + if (!isnum(desiredLvl)) + to_chat(user, "UpdateJobPreference - desired level was not a number. Please notify coders!") + ShowChoices(user) + return + + if(role == "Assistant") + if(job_civilian_low & job.flag) + job_civilian_low &= ~job.flag + else + job_civilian_low |= job.flag + SetChoices(user) + return 1 + + SetJobPreferenceLevel(job, desiredLvl) + SetChoices(user) + + return 1 + + +/datum/preferences/proc/ResetJobs() + + job_civilian_high = 0 + job_civilian_med = 0 + job_civilian_low = 0 + + job_medsci_high = 0 + job_medsci_med = 0 + job_medsci_low = 0 + + job_engsec_high = 0 + job_engsec_med = 0 + job_engsec_low = 0 + + +/datum/preferences/proc/GetJobDepartment(datum/job/job, level) + if(!job || !level) + return 0 + switch(job.department_flag) + if(CIVILIAN) + switch(level) + if(1) + return job_civilian_high + if(2) + return job_civilian_med + if(3) + return job_civilian_low + if(MEDSCI) + switch(level) + if(1) + return job_medsci_high + if(2) + return job_medsci_med + if(3) + return job_medsci_low + if(ENGSEC) + switch(level) + if(1) + return job_engsec_high + if(2) + return job_engsec_med + if(3) + return job_engsec_low + return 0 + +/datum/preferences/proc/process_link(mob/user, list/href_list) + if(href_list["jobbancheck"]) + var/job = sanitizeSQL(href_list["jobbancheck"]) + var/sql_ckey = sanitizeSQL(user.ckey) + var/datum/DBQuery/query_get_jobban = SSdbcore.NewQuery("SELECT reason, bantime, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey = '[sql_ckey]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[job]'") + if(!query_get_jobban.warn_execute()) + return + if(query_get_jobban.NextRow()) + var/reason = query_get_jobban.item[1] + var/bantime = query_get_jobban.item[2] + var/duration = query_get_jobban.item[3] + var/expiration_time = query_get_jobban.item[4] + var/a_ckey = query_get_jobban.item[5] + var/text + text = "You, or another user of this computer, ([user.ckey]) is banned from playing [job]. The ban reason is:
      [reason]
      This ban was applied by [a_ckey] on [bantime]" + if(text2num(duration) > 0) + text += ". The ban is for [duration] minutes and expires on [expiration_time] (server time)" + text += ".
      " + to_chat(user, text) + return + + if(href_list["preference"] == "job") + switch(href_list["task"]) + if("close") + user << browse(null, "window=mob_occupation") + ShowChoices(user) + if("reset") + ResetJobs() + SetChoices(user) + if("random") + switch(joblessrole) + if(RETURNTOLOBBY) + if(jobban_isbanned(user, "Assistant")) + joblessrole = BERANDOMJOB + else + joblessrole = BEASSISTANT + if(BEASSISTANT) + joblessrole = BERANDOMJOB + if(BERANDOMJOB) + joblessrole = RETURNTOLOBBY + SetChoices(user) + if("setJobLevel") + UpdateJobPreference(user, href_list["text"], text2num(href_list["level"])) + else + SetChoices(user) + return 1 + + switch(href_list["task"]) + if("random") + switch(href_list["preference"]) + if("name") + real_name = pref_species.random_name(gender,1) + if("age") + age = rand(AGE_MIN, AGE_MAX) + if("hair") + hair_color = random_short_color() + if("hair_style") + hair_style = random_hair_style(gender) + if("facial") + facial_hair_color = random_short_color() + if("facial_hair_style") + facial_hair_style = random_facial_hair_style(gender) + if("underwear") + underwear = random_underwear(gender) + if("undershirt") + undershirt = random_undershirt(gender) + if("socks") + socks = random_socks() + if("eyes") + eye_color = random_eye_color() + if("s_tone") + skin_tone = random_skin_tone() + if("bag") + backbag = pick(GLOB.backbaglist) + if("all") + random_character() + + if("input") + switch(href_list["preference"]) + if("ghostform") + if(unlock_content) + var/new_form = input(user, "Thanks for supporting BYOND - Choose your ghostly form:","Thanks for supporting BYOND",null) as null|anything in GLOB.ghost_forms + if(new_form) + ghost_form = new_form + if("ghostorbit") + if(unlock_content) + var/new_orbit = input(user, "Thanks for supporting BYOND - Choose your ghostly orbit:","Thanks for supporting BYOND", null) as null|anything in GLOB.ghost_orbits + if(new_orbit) + ghost_orbit = new_orbit + + if("ghostaccs") + var/new_ghost_accs = alert("Do you want your ghost to show full accessories where possible, hide accessories but still use the directional sprites where possible, or also ignore the directions and stick to the default sprites?",,GHOST_ACCS_FULL_NAME, GHOST_ACCS_DIR_NAME, GHOST_ACCS_NONE_NAME) + switch(new_ghost_accs) + if(GHOST_ACCS_FULL_NAME) + ghost_accs = GHOST_ACCS_FULL + if(GHOST_ACCS_DIR_NAME) + ghost_accs = GHOST_ACCS_DIR + if(GHOST_ACCS_NONE_NAME) + ghost_accs = GHOST_ACCS_NONE + + if("ghostothers") + var/new_ghost_others = alert("Do you want the ghosts of others to show up as their own setting, as their default sprites or always as the default white ghost?",,GHOST_OTHERS_THEIR_SETTING_NAME, GHOST_OTHERS_DEFAULT_SPRITE_NAME, GHOST_OTHERS_SIMPLE_NAME) + switch(new_ghost_others) + if(GHOST_OTHERS_THEIR_SETTING_NAME) + ghost_others = GHOST_OTHERS_THEIR_SETTING + if(GHOST_OTHERS_DEFAULT_SPRITE_NAME) + ghost_others = GHOST_OTHERS_DEFAULT_SPRITE + if(GHOST_OTHERS_SIMPLE_NAME) + ghost_others = GHOST_OTHERS_SIMPLE + + if("name") + var/new_name = reject_bad_name( input(user, "Choose your character's name:", "Character Preference") as text|null ) + if(new_name) + real_name = new_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("age") + var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference") as num|null + if(new_age) + 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 + if(msg != null) + msg = copytext(msg, 1, MAX_MESSAGE_LEN) + msg = html_encode(msg) + 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 + if(new_metadata) + metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN)) + + if("hair") + var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference") as null|color + if(new_hair) + hair_color = sanitize_hexcolor(new_hair) + + + if("hair_style") + var/new_hair_style + if(gender == MALE) + new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_male_list + else + new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_female_list + if(new_hair_style) + hair_style = new_hair_style + + if("next_hair_style") + if (gender == MALE) + hair_style = next_list_item(hair_style, GLOB.hair_styles_male_list) + else + hair_style = next_list_item(hair_style, GLOB.hair_styles_female_list) + + if("previous_hair_style") + if (gender == MALE) + hair_style = previous_list_item(hair_style, GLOB.hair_styles_male_list) + else + hair_style = previous_list_item(hair_style, GLOB.hair_styles_female_list) + + if("facial") + var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference") as null|color + if(new_facial) + facial_hair_color = sanitize_hexcolor(new_facial) + + if("facial_hair_style") + var/new_facial_hair_style + if(gender == MALE) + new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_male_list + else + new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_female_list + if(new_facial_hair_style) + facial_hair_style = new_facial_hair_style + + if("next_facehair_style") + if (gender == MALE) + facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list) + else + facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list) + + if("previous_facehair_style") + if (gender == MALE) + facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list) + else + facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list) + + if("underwear") + var/new_underwear + if(gender == MALE) + new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_m + else + new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_f + if(new_underwear) + underwear = new_underwear + + if("undershirt") + var/new_undershirt + if(gender == MALE) + new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_m + else + new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_f + if(new_undershirt) + undershirt = new_undershirt + + if("socks") + var/new_socks + new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in GLOB.socks_list + if(new_socks) + socks = new_socks + + if("eyes") + var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference") as color|null + if(new_eyes) + eye_color = sanitize_hexcolor(new_eyes) + + if("species") + + var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_species + + if(result) + var/newtype = GLOB.roundstart_species[result] + pref_species = new newtype() + //Now that we changed our species, we must verify that the mutant colour is still allowed. + var/temp_hsv = RGBtoHSV(features["mcolor"]) + if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + features["mcolor"] = pref_species.default_color + if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + features["mcolor2"] = pref_species.default_color + if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + features["mcolor3"] = pref_species.default_color + + if("mutant_color") + var/new_mutantcolor = input(user, "Choose your character's primary alien/mutant color:", "Character Preference") as color|null + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) + if(new_mutantcolor == "#000000") + features["mcolor"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + features["mcolor"] = sanitize_hexcolor(new_mutantcolor) + else + to_chat(user, "Invalid color. Your color is not bright enough.") + + if("mutant_color2") + var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference") as color|null + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) + if(new_mutantcolor == "#000000") + features["mcolor2"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + features["mcolor2"] = sanitize_hexcolor(new_mutantcolor) + else + to_chat(user, "Invalid color. Your color is not bright enough.") + + if("mutant_color3") + var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference") as color|null + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) + if(new_mutantcolor == "#000000") + features["mcolor3"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + features["mcolor3"] = sanitize_hexcolor(new_mutantcolor) + else + to_chat(user, "Invalid color. Your color is not bright enough.") + + if("tail_lizard") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_lizard + if(new_tail) + features["tail_lizard"] = new_tail + if(new_tail != "None") + features["taur"] = "None" + + if("tail_human") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_human + if(new_tail) + features["tail_human"] = new_tail + if(new_tail != "None") + features["taur"] = "None" + if("mam_tail") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.mam_tails_list + if(new_tail) + features["mam_tail"] = new_tail + if(new_tail != "None") + features["taur"] = "None" + + if("taur") + var/new_taur + new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in GLOB.taur_list + if(new_taur) + features["taur"] = new_taur + if(new_taur != "None") + features["mam_tail"] = "None" + features["xenotail"] = "None" + +/* Doesn't exist yet. will include facial overlays to mimic 5th port species heads. + if("mam_snout") + var/new_snout + new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.mam_snouts_list + if(new_snout) + features["snout"] = new_snout +*/ + + if("snout") + var/new_snout + new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.snouts_list + if(new_snout) + features["snout"] = new_snout + + if("horns") + var/new_horns + new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in GLOB.horns_list + if(new_horns) + features["horns"] = new_horns + + if("mam_ears") + var/new_ears + new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.mam_ears_list + if(new_ears) + features["mam_ears"] = new_ears + + if("ears") + var/new_ears + new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.ears_list + if(new_ears) + features["ears"] = new_ears + + if("wings") + var/new_wings + new_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.r_wings_list + if(new_wings) + features["wings"] = new_wings + + if("frills") + var/new_frills + new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in GLOB.frills_list + if(new_frills) + features["frills"] = new_frills + + if("spines") + var/new_spines + new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in GLOB.spines_list + if(new_spines) + features["spines"] = new_spines + + if("body_markings") + var/new_body_markings + new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.body_markings_list + if(new_body_markings) + features["body_markings"] = new_body_markings + + if("mam_body_markings") + var/new_mam_body_markings + new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.mam_body_markings_list + if(new_mam_body_markings) + features["mam_body_markings"] = new_mam_body_markings + + //Xeno Bodyparts + if("xenohead")//Head or caste type + var/new_head + new_head = input(user, "Choose your character's caste:", "Character Preference") as null|anything in GLOB.xeno_head_list + if(new_head) + features["xenohead"] = new_head + + if("xenotail")//Currently one one type, more maybe later if someone sprites them. Might include animated variants in the future. + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.xeno_tail_list + if(new_tail) + features["xenotail"] = new_tail + + if("xenodorsal") + var/new_dors + new_dors = input(user, "Choose your character's dorsal tube type:", "Character Preference") as null|anything in GLOB.xeno_dorsal_list + if(new_dors) + features["xenodorsal"] = new_dors + + if("legs") + var/new_legs + new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in GLOB.legs_list + if(new_legs) + features["legs"] = new_legs + + if("s_tone") + var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones + if(new_s_tone) + skin_tone = new_s_tone + + if("ooccolor") + var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null + if(new_ooccolor) + ooccolor = sanitize_ooccolor(new_ooccolor) + + if("bag") + var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backbaglist + if(new_backbag) + backbag = new_backbag + + if("uplink_loc") + var/new_loc = input(user, "Choose your character's traitor uplink spawn location:", "Character Preference") as null|anything in GLOB.uplink_spawn_loc_list + if(new_loc) + uplink_spawn_loc = new_loc + + if("clown_name") + var/new_clown_name = reject_bad_name( input(user, "Choose your character's clown name:", "Character Preference") as text|null ) + if(new_clown_name) + custom_names["clown"] = new_clown_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("mime_name") + var/new_mime_name = reject_bad_name( input(user, "Choose your character's mime name:", "Character Preference") as text|null ) + if(new_mime_name) + custom_names["mime"] = new_mime_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("ai_name") + var/new_ai_name = reject_bad_name( input(user, "Choose your character's AI name:", "Character Preference") as text|null, 1 ) + if(new_ai_name) + custom_names["ai"] = new_ai_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and .") + + if("cyborg_name") + var/new_cyborg_name = reject_bad_name( input(user, "Choose your character's cyborg name:", "Character Preference") as text|null, 1 ) + if(new_cyborg_name) + custom_names["cyborg"] = new_cyborg_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and .") + + if("religion_name") + var/new_religion_name = reject_bad_name( input(user, "Choose your character's religion:", "Character Preference") as text|null ) + if(new_religion_name) + custom_names["religion"] = new_religion_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("deity_name") + var/new_deity_name = reject_bad_name( input(user, "Choose your character's deity:", "Character Preference") as text|null ) + if(new_deity_name) + custom_names["deity"] = new_deity_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("sec_dept") + var/department = input(user, "Choose your prefered security department:", "Security Departments") as null|anything in GLOB.security_depts_prefs + if(department) + prefered_security_department = department + + if ("preferred_map") + var/maplist = list() + var/default = "Default" + if (config.defaultmap) + default += " ([config.defaultmap.map_name])" + for (var/M in config.maplist) + var/datum/map_config/VM = config.maplist[M] + var/friendlyname = "[VM.map_name] " + if (VM.voteweight <= 0) + friendlyname += " (disabled)" + maplist[friendlyname] = VM.map_name + maplist[default] = null + var/pickedmap = input(user, "Choose your preferred map. This will be used to help weight random map selection.", "Character Preference") as null|anything in maplist + if (pickedmap) + preferred_map = maplist[pickedmap] + + if ("clientfps") + var/version_message + if (user.client && user.client.byond_version < 511) + version_message = "\nYou need to be using byond version 511 or later to take advantage of this feature, your version of [user.client.byond_version] is too low" + if (world.byond_version < 511) + version_message += "\nThis server does not currently support client side fps. You can set now for when it does." + var/desiredfps = input(user, "Choose your desired fps.[version_message]\n(0 = synced with server tick rate (currently:[world.fps]))", "Character Preference", clientfps) as null|num + if (!isnull(desiredfps)) + clientfps = desiredfps + if (world.byond_version >= 511 && user.client && user.client.byond_version >= 511) + user.client.vars["fps"] = clientfps + if("ui") + var/pickedui = input(user, "Choose your UI style.", "Character Preference") as null|anything in list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative", "Clockwork") + if(pickedui) + UI_style = pickedui + + //citadel code + if("cock_color") + var/new_cockcolor = input(user, "Penis color:", "Character Preference") as color|null + if(new_cockcolor) + var/temp_hsv = RGBtoHSV(new_cockcolor) + if(new_cockcolor == "#000000") + features["cock_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["cock_color"] = sanitize_hexcolor(new_cockcolor) + else + user << "Invalid color. Your color is not bright enough." + + if("cock_length") + var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null + if(new_length) + features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN) + + if("cock_shape") + var/new_shape + new_shape = input(user, "Penis shape:", "Character Preference") as null|anything in GLOB.cock_shapes_list + if(new_shape) + features["cock_shape"] = new_shape + + if("balls_color") + var/new_ballscolor = input(user, "Testicle Color:", "Character Preference") as color|null + if(new_ballscolor) + var/temp_hsv = RGBtoHSV(new_ballscolor) + if(new_ballscolor == "#000000") + features["balls_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["balls_color"] = sanitize_hexcolor(new_ballscolor) + else + user << "Invalid color. Your color is not bright enough." + + if("egg_size") + var/new_size + var/list/egg_sizes = list(1,2,3) + new_size = input(user, "Egg Diameter(inches):", "Egg Size") as null|anything in egg_sizes + if(new_size) + features["eggsack_egg_size"] = new_size + + if("egg_color") + var/new_egg_color = input(user, "Egg Color:", "Character Preference") as color|null + if(new_egg_color) + var/temp_hsv = RGBtoHSV(new_egg_color) + if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["eggsack_egg_color"] = sanitize_hexcolor(new_egg_color) + else + user << "Invalid color. Your color is not bright enough." + if("breasts_size") + var/new_size + new_size = input(user, "Breast Size", "Character Preference") as null|anything in GLOB.breasts_size_list + if(new_size) + features["breasts_size"] = new_size + + if("breasts_shape") + var/new_shape + new_shape = input(user, "Breast Shape", "Character Preference") as null|anything in GLOB.breasts_shapes_list + if(new_shape) + features["breasts_shape"] = new_shape + + if("breasts_color") + var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null + if(new_breasts_color) + var/temp_hsv = RGBtoHSV(new_breasts_color) + if(new_breasts_color == "#000000") + features["breasts_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["breasts_color"] = sanitize_hexcolor(new_breasts_color) + else + user << "Invalid color. Your color is not bright enough." + if("vag_shape") + var/new_shape + new_shape = input(user, "Vagina Type", "Character Preference") as null|anything in GLOB.vagina_shapes_list + if(new_shape) + features["vag_shape"] = new_shape + if("vag_color") + var/new_vagcolor = input(user, "Vagina color:", "Character Preference") as color|null + if(new_vagcolor) + var/temp_hsv = RGBtoHSV(new_vagcolor) + if(new_vagcolor == "#000000") + features["vag_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["vag_color"] = sanitize_hexcolor(new_vagcolor) + else + user << "Invalid color. Your color is not bright enough." + + else + switch(href_list["preference"]) + + //citadel code + if("genital_colour") + switch(features["genitals_use_skintone"]) + if(TRUE) + features["genitals_use_skintone"] = FALSE + if(FALSE) + features["genitals_use_skintone"] = TRUE + else + features["genitals_use_skintone"] = FALSE + if("arousable") + switch(arousable) + if(TRUE) + arousable = FALSE + if(FALSE) + arousable = TRUE + else//failsafe + arousable = FALSE + if("has_cock") + switch(features["has_cock"]) + if(TRUE) + features["has_cock"] = FALSE + if(FALSE) + features["has_cock"] = TRUE + features["has_ovi"] = FALSE + features["has_eggsack"] = FALSE + else + features["has_cock"] = FALSE + features["has_ovi"] = FALSE + if("has_balls") + switch(features["has_balls"]) + if(TRUE) + features["has_balls"] = FALSE + if(FALSE) + features["has_balls"] = TRUE + features["has_eggsack"] = FALSE + else + features["has_balls"] = FALSE + features["has_eggsack"] = FALSE + + if("has_ovi") + switch(features["has_ovi"]) + if(TRUE) + features["has_ovi"] = FALSE + if(FALSE) + features["has_ovi"] = TRUE + features["has_cock"] = FALSE + features["has_balls"] = FALSE + else + features["has_ovi"] = FALSE + features["has_cock"] = FALSE + + if("has_eggsack") + switch(features["has_eggsack"]) + if(TRUE) + features["has_eggsack"] = FALSE + if(FALSE) + features["has_eggsack"] = TRUE + features["has_balls"] = FALSE + else + features["has_eggsack"] = FALSE + features["has_balls"] = FALSE + + if("balls_internal") + switch(features["balls_internal"]) + if(TRUE) + features["balls_internal"] = FALSE + if(FALSE) + features["balls_internal"] = TRUE + features["eggsack_internal"] = FALSE + else + features["balls_internal"] = FALSE + features["eggsack_internal"] = FALSE + + if("eggsack_internal") + switch(features["eggsack_internal"]) + if(TRUE) + features["eggsack_internal"] = FALSE + if(FALSE) + features["eggsack_internal"] = TRUE + features["balls_internal"] = FALSE + else + features["eggsack_internal"] = FALSE + features["balls_internal"] = FALSE + + if("has_breasts") + switch(features["has_breasts"]) + if(TRUE) + features["has_breasts"] = FALSE + if(FALSE) + features["has_breasts"] = TRUE + else + features["has_breasts"] = FALSE + if("has_vag") + switch(features["has_vag"]) + if(TRUE) + features["has_vag"] = FALSE + if(FALSE) + features["has_vag"] = TRUE + else + features["has_vag"] = FALSE + if("has_womb") + switch(features["has_womb"]) + if(TRUE) + features["has_womb"] = FALSE + if(FALSE) + features["has_womb"] = TRUE + else + features["has_womb"] = FALSE + if("exhibitionist") + switch(features["exhibitionist"]) + if(TRUE) + features["exhibitionist"] = FALSE + if(FALSE) + features["exhibitionist"] = TRUE + else + features["exhibitionist"] = FALSE + + if("publicity") + if(unlock_content) + toggles ^= MEMBER_PUBLIC + if("gender") + if(gender == MALE) + gender = FEMALE + else + gender = MALE + underwear = "Nude" + undershirt = "Nude" + socks = "Nude" + facial_hair_style = "Shaved" + hair_style = "Bald" + + if("hotkeys") + hotkeys = !hotkeys + + if("tgui_fancy") + tgui_fancy = !tgui_fancy + if("tgui_lock") + tgui_lock = !tgui_lock + if("winflash") + windowflashing = !windowflashing + if("hear_adminhelps") + toggles ^= SOUND_ADMINHELP + if("announce_login") + toggles ^= ANNOUNCE_LOGIN + + if("be_special") + var/be_special_type = href_list["be_special_type"] + if(be_special_type in be_special) + be_special -= be_special_type + else + be_special += be_special_type + + if("name") + be_random_name = !be_random_name + + if("all") + be_random_body = !be_random_body + + if("hear_midis") + toggles ^= SOUND_MIDI + + if("lobby_music") + toggles ^= SOUND_LOBBY + if((toggles & SOUND_LOBBY) && user.client) + user.client.playtitlemusic() + else + user.stop_sound_channel(CHANNEL_LOBBYMUSIC) + + if("ghost_ears") + chat_toggles ^= CHAT_GHOSTEARS + + if("ghost_sight") + chat_toggles ^= CHAT_GHOSTSIGHT + + if("ghost_whispers") + chat_toggles ^= CHAT_GHOSTWHISPER + + if("ghost_radio") + chat_toggles ^= CHAT_GHOSTRADIO + + if("ghost_pda") + chat_toggles ^= CHAT_GHOSTPDA + + if("pull_requests") + chat_toggles ^= CHAT_PULLR + + if("allow_midround_antag") + toggles ^= MIDROUND_ANTAG + + if("parallaxup") + parallax = Wrap(parallax + 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) + if (parent && parent.mob && parent.mob.hud_used) + parent.mob.hud_used.update_parallax_pref(parent.mob) + + if("parallaxdown") + parallax = Wrap(parallax - 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) + if (parent && parent.mob && parent.mob.hud_used) + parent.mob.hud_used.update_parallax_pref(parent.mob) + + if("save") + save_preferences() + save_character() + + if("load") + load_preferences() + load_character() + attempt_vr(parent.prefs_vr,"load_vore","") + + if("changeslot") + attempt_vr(parent.prefs_vr,"load_vore","") + if(!load_character(text2num(href_list["num"]))) + random_character() + real_name = random_unique_name(gender) + save_character() + + if("tab") + if (href_list["tab"]) + current_tab = text2num(href_list["tab"]) + + ShowChoices(user) + return 1 + +/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1) + if(be_random_name) + real_name = pref_species.random_name(gender) + + if(be_random_body) + random_character(gender) + + if(config.humans_need_surnames) + var/firstspace = findtext(real_name, " ") + var/name_length = length(real_name) + if(!firstspace) //we need a surname + real_name += " [pick(GLOB.last_names)]" + else if(firstspace == name_length) + real_name += "[pick(GLOB.last_names)]" + + character.real_name = real_name + character.name = character.real_name + + character.gender = gender + character.age = age + + character.eye_color = eye_color + var/obj/item/organ/eyes/organ_eyes = character.getorgan(/obj/item/organ/eyes) + if(organ_eyes) + if(!initial(organ_eyes.eye_color)) + organ_eyes.eye_color = eye_color + organ_eyes.old_eye_color = eye_color + character.hair_color = hair_color + character.facial_hair_color = facial_hair_color + + character.skin_tone = skin_tone + character.hair_style = hair_style + character.facial_hair_style = facial_hair_style + character.underwear = underwear + character.undershirt = undershirt + character.socks = socks + + character.backbag = backbag + + character.dna.features = features.Copy() + character.dna.real_name = character.real_name + var/datum/species/chosen_species + if(pref_species != /datum/species/human && config.mutant_races) + chosen_species = pref_species.type + else + chosen_species = /datum/species/human + character.set_species(chosen_species, icon_update=0) + + //citadel code + character.give_genitals() + character.flavor_text = flavor_text + character.canbearoused = arousable + + if(icon_updates) + character.update_body() + character.update_hair() + character.update_body_parts() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 80547c4db9..ce556640e0 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -161,9 +161,9 @@ /obj/item/clothing/obj_break(damage_flag) if(!damaged_clothes) update_clothes_damaged_state(TRUE) - if(ismob(loc)) //It's not important enough to warrant a message if nobody's wearing it - var/mob/M = loc - M.visible_message("[M]'s [name] starts to fall apart!", "Your [name] starts to fall apart!") + if(ismob(loc)) //It's not important enough to warrant a message if nobody's wearing it + var/mob/M = loc + M.visible_message("[M]'s [name] starts to fall apart!", "Your [name] starts to fall apart!") /obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE) var/index = "\ref[initial(icon)]-[initial(icon_state)]" diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index b55d826547..67ce5b3131 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -30,7 +30,7 @@ /obj/item/clothing/head/collectable/paper name = "collectable paper hat" - desc = "What looks like an ordinary paper hat is actually a rare and valuable collector's edition paper hat. Keep away from water, fire, and Curators." + desc = "What looks like an ordinary paper hat is actually a rare and valuable collector's edition paper hat. Keep away from water, fire, and Curators." icon_state = "paper" dog_fashion = /datum/dog_fashion/head diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 65920a06d0..e457caed32 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -158,5 +158,5 @@ name = "treasure hunter's fedora" desc = "You got red text today kid, but it doesn't mean you have to like it." icon_state = "curator" - armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) + armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) pockets = /obj/item/weapon/storage/internal/pocket/small \ No newline at end of file diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 526a15e7f5..61d9909e69 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -182,7 +182,7 @@ item_state = "curator" blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS - allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/melee/curator_whip) + allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/melee/curator_whip) armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45) cold_protection = CHEST|ARMS heat_protection = CHEST|ARMS diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index 562f59290a..0fd86219bc 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -13,8 +13,8 @@ var/scanning = 0 var/list/log = list() origin_tech = "engineering=4;biotech=2;programming=5" - var/range = 8 - var/view_check = TRUE + var/range = 8 + var/view_check = TRUE /obj/item/device/detective_scanner/attack_self(mob/user) if(log.len && !scanning) @@ -45,7 +45,7 @@ log = list() scanning = 0 -/obj/item/device/detective_scanner/afterattack(atom/A, mob/user, params) +/obj/item/device/detective_scanner/afterattack(atom/A, mob/user, params) scan(A, user) return FALSE @@ -53,7 +53,7 @@ set waitfor = 0 if(!scanning) // Can remotely scan objects and mobs. - if((get_dist(A, user) > range) || (!(A in view(range, user)) && view_check) || (loc != user)) + if((get_dist(A, user) > range) || (!(A in view(range, user)) && view_check) || (loc != user)) return scanning = 1 diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 85923811f9..53126152ab 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -459,7 +459,7 @@ GLOBAL_VAR_CONST(access_away_generic4, 208) /proc/get_all_jobs() return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician", - "Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", + "Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 9b226e70f5..53a1fed47b 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -39,7 +39,7 @@ GLOBAL_LIST_INIT(civilian_positions, list( "Botanist", "Cook", "Janitor", - "Curator", + "Curator", "Lawyer", "Chaplain", "Clown", diff --git a/code/modules/language/language.dm.rej b/code/modules/language/language.dm.rej index c7f2ac173f..e0f9bdd14f 100644 --- a/code/modules/language/language.dm.rej +++ b/code/modules/language/language.dm.rej @@ -1,15 +1,15 @@ diff a/code/modules/language/language.dm b/code/modules/language/language.dm (rejected hunks) @@ -16,10 +16,10 @@ - // If key is null, then the language isn't real or learnable. - var/flags // Various language flags. - var/list/syllables // Used when scrambling text for a non-speaker. -- var/list/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. -- var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string -+ var/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. -+ var/space_chance = 55 // Likelihood of getting a space in the random scramble string - var/list/spans = list() -- var/static/list/scramble_cache = list() -+ var/list/scramble_cache = list() - var/default_priority = 0 // the language that an atom knows with the highest "default_priority" is selected by default. - - // if you are seeing someone speak popcorn language, then something is wrong. + // If key is null, then the language isn't real or learnable. + var/flags // Various language flags. + var/list/syllables // Used when scrambling text for a non-speaker. +- var/list/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. +- var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string ++ var/sentence_chance = 5 // Likelihood of making a new sentence after each syllable. ++ var/space_chance = 55 // Likelihood of getting a space in the random scramble string + var/list/spans = list() +- var/static/list/scramble_cache = list() ++ var/list/scramble_cache = list() + var/default_priority = 0 // the language that an atom knows with the highest "default_priority" is selected by default. + + // if you are seeing someone speak popcorn language, then something is wrong. diff --git a/code/modules/library/lib_readme.dm b/code/modules/library/lib_readme.dm index 7b59bb5dfb..57d6046f27 100644 --- a/code/modules/library/lib_readme.dm +++ b/code/modules/library/lib_readme.dm @@ -22,7 +22,7 @@ ------------ A place for the crew to go, relax, and enjoy a good book. Aspiring authors can even self publish and, if they're lucky - convince the on-staff Curator to submit it to the Archives + convince the on-staff Curator to submit it to the Archives to be chronicled in history forever - some say even persisting through alternate dimensions. @@ -49,12 +49,12 @@ // Ideas for the future // --------------------- -// - Visitor's computer should be able to search the current in-round library inventory (that the Curator has stocked and checked in) +// - Visitor's computer should be able to search the current in-round library inventory (that the Curator has stocked and checked in) // -- Give computer other features like an Instant Messenger application, or the ability to edit, save, and print documents. // - Admin interface directly tied to the Archive DB. Right now there's no way to delete uploaded books in-game. -// -- If this gets implemented, allow Curators to "tag" or "suggest" books to be deleted. The DB ID of the tagged books gets saved to a text file (or another table in the DB maybe?). +// -- If this gets implemented, allow Curators to "tag" or "suggest" books to be deleted. The DB ID of the tagged books gets saved to a text file (or another table in the DB maybe?). // The admin interface would automatically take these IDs and SELECT them all from the DB to be displayed along with a Delete link to drop the row from the table. -// - When the game sets up and the round begins, have it automatically pick random books from the DB to populate the library with. Even if the Curator is a useless fuck there are at least a few books around. +// - When the game sets up and the round begins, have it automatically pick random books from the DB to populate the library with. Even if the Curator is a useless fuck there are at least a few books around. // - Allow books to be "hollowed out" like the Chaplain's Bible, allowing you to store one pocket-sized item inside. // - Make books/book cases burn when exposed to flame. // - Make book binder hackable. diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm index d08161916c..f4824a96a2 100644 --- a/code/modules/mapping/ruins.dm +++ b/code/modules/mapping/ruins.dm @@ -20,7 +20,7 @@ if(ruins && ruins.len) ruin = ruins[pick(ruins)] else - log_world("Ruin loader had no ruins to pick from with [budget] left to spend.") + log_world("Ruin loader had no ruins to pick from with [budget] left to spend.") break // Can we afford it if(ruin.cost > budget) @@ -47,7 +47,7 @@ if(!valid) continue - log_world("Ruin \"[ruin.name]\" placed at ([T.x], [T.y], [T.z])") + log_world("Ruin \"[ruin.name]\" placed at ([T.x], [T.y], [T.z])") var/obj/effect/ruin_loader/R = new /obj/effect/ruin_loader(T) R.Load(ruins,ruin) @@ -57,7 +57,7 @@ break if(!overall_sanity) - log_world("Ruin loader gave up with [budget] left to spend.") + log_world("Ruin loader gave up with [budget] left to spend.") /obj/effect/ruin_loader diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 8675049cee..71b1355ef5 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -1,25 +1,25 @@ -/mob/dead/observer/say(message) - message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) - - if (!message) - return - - log_say("Ghost/[src.key] : [message]") - - . = src.say_dead(message) - -/mob/dead/observer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) - var/atom/movable/to_follow = speaker - if(radio_freq) - var/atom/movable/virtualspeaker/V = speaker - - if(isAI(V.source)) - var/mob/living/silicon/ai/S = V.source - to_follow = S.eyeobj - else - to_follow = V.source - var/link = FOLLOW_LINK(src, to_follow) - // Recompose the message, because it's scrambled by default - message = compose_message(speaker, message_language, raw_message, radio_freq, spans) - to_chat(src, "[link] [message]") - +/mob/dead/observer/say(message) + message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + + if (!message) + return + + log_say("Ghost/[src.key] : [message]") + + . = src.say_dead(message) + +/mob/dead/observer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) + var/atom/movable/to_follow = speaker + if(radio_freq) + var/atom/movable/virtualspeaker/V = speaker + + if(isAI(V.source)) + var/mob/living/silicon/ai/S = V.source + to_follow = S.eyeobj + else + to_follow = V.source + var/link = FOLLOW_LINK(src, to_follow) + // Recompose the message, because it's scrambled by default + message = compose_message(speaker, message_language, raw_message, radio_freq, spans) + to_chat(src, "[link] [message]") + diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 6e9bcc08cc..86ea3d64e9 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -1,134 +1,134 @@ -// This is to replace the previous datum/disease/alien_embryo for slightly improved handling and maintainability -// It functions almost identically (see code/datums/diseases/alien_embryo.dm) -/obj/item/organ/body_egg/alien_embryo - name = "alien embryo" - icon = 'icons/mob/alien.dmi' - icon_state = "larva0_dead" - var/stage = 0 - var/bursting = FALSE - -/obj/item/organ/body_egg/alien_embryo/on_find(mob/living/finder) - ..() - if(stage < 4) - to_chat(finder, "It's small and weak, barely the size of a foetus.") - else - to_chat(finder, "It's grown quite large, and writhes slightly as you look at it.") - if(prob(10)) - AttemptGrow(0) - -/obj/item/organ/body_egg/alien_embryo/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent("sacid", 10) - return S - -/obj/item/organ/body_egg/alien_embryo/on_life() - switch(stage) - if(2, 3) - if(prob(2)) - owner.emote("sneeze") - if(prob(2)) - owner.emote("cough") - if(prob(2)) - to_chat(owner, "Your throat feels sore.") - if(prob(2)) - to_chat(owner, "Mucous runs down the back of your throat.") - if(4) - if(prob(2)) - owner.emote("sneeze") - if(prob(2)) - owner.emote("cough") - if(prob(4)) - to_chat(owner, "Your muscles ache.") - if(prob(20)) - owner.take_bodypart_damage(1) - if(prob(4)) - to_chat(owner, "Your stomach hurts.") - if(prob(20)) - owner.adjustToxLoss(1) - if(5) - to_chat(owner, "You feel something tearing its way out of your stomach...") - owner.adjustToxLoss(10) - -/obj/item/organ/body_egg/alien_embryo/egg_process() - if(stage < 5 && prob(3)) - stage++ - INVOKE_ASYNC(src, .proc/RefreshInfectionImage) - - if(stage == 5 && prob(50)) - for(var/datum/surgery/S in owner.surgeries) - if(S.location == "chest" && istype(S.get_surgery_step(), /datum/surgery_step/manipulate_organs)) - AttemptGrow(0) - return - AttemptGrow() - - - -/obj/item/organ/body_egg/alien_embryo/proc/AttemptGrow(gib_on_success=TRUE) - if(!owner || bursting) - return - - bursting = TRUE - - var/list/candidates = pollGhostCandidates("Do you want to play as an alien larva that will burst out of [owner]?", ROLE_ALIEN, null, ROLE_ALIEN, 100, POLL_IGNORE_ALIEN_LARVA) - - if(QDELETED(src) || QDELETED(owner)) - return - - if(!candidates.len || !owner) - bursting = FALSE - stage = 4 - return - - var/mob/dead/observer/ghost = pick(candidates) - - var/mutable_appearance/overlay = mutable_appearance('icons/mob/alien.dmi', "burst_lie") - owner.add_overlay(overlay) - - var/atom/xeno_loc = get_turf(owner) - var/mob/living/carbon/alien/larva/new_xeno = new(xeno_loc) - new_xeno.key = ghost.key - new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention - new_xeno.canmove = 0 //so we don't move during the bursting animation - new_xeno.notransform = 1 - new_xeno.invisibility = INVISIBILITY_MAXIMUM - - sleep(6) - - if(QDELETED(src) || QDELETED(owner)) - return - - if(new_xeno) - new_xeno.canmove = 1 - new_xeno.notransform = 0 - new_xeno.invisibility = 0 - - if(gib_on_success) - new_xeno.visible_message("[new_xeno] bursts out of [owner] in a shower of gore!", "You exit [owner], your previous host.", "You hear organic matter ripping and tearing!") - owner.gib(TRUE) - else - new_xeno.visible_message("[new_xeno] wriggles out of [owner]!", "You exit [owner], your previous host.") - owner.adjustBruteLoss(40) - owner.cut_overlay(overlay) - qdel(src) - - -/*---------------------------------------- -Proc: AddInfectionImages(C) -Des: Adds the infection image to all aliens for this embryo -----------------------------------------*/ -/obj/item/organ/body_egg/alien_embryo/AddInfectionImages() - for(var/mob/living/carbon/alien/alien in GLOB.player_list) - if(alien.client) - var/I = image('icons/mob/alien.dmi', loc = owner, icon_state = "infected[stage]") - alien.client.images += I - -/*---------------------------------------- -Proc: RemoveInfectionImage(C) -Des: Removes all images from the mob infected by this embryo -----------------------------------------*/ -/obj/item/organ/body_egg/alien_embryo/RemoveInfectionImages() - for(var/mob/living/carbon/alien/alien in GLOB.player_list) - if(alien.client) - for(var/image/I in alien.client.images) - if(dd_hasprefix_case(I.icon_state, "infected") && I.loc == owner) - qdel(I) +// This is to replace the previous datum/disease/alien_embryo for slightly improved handling and maintainability +// It functions almost identically (see code/datums/diseases/alien_embryo.dm) +/obj/item/organ/body_egg/alien_embryo + name = "alien embryo" + icon = 'icons/mob/alien.dmi' + icon_state = "larva0_dead" + var/stage = 0 + var/bursting = FALSE + +/obj/item/organ/body_egg/alien_embryo/on_find(mob/living/finder) + ..() + if(stage < 4) + to_chat(finder, "It's small and weak, barely the size of a foetus.") + else + to_chat(finder, "It's grown quite large, and writhes slightly as you look at it.") + if(prob(10)) + AttemptGrow(0) + +/obj/item/organ/body_egg/alien_embryo/prepare_eat() + var/obj/S = ..() + S.reagents.add_reagent("sacid", 10) + return S + +/obj/item/organ/body_egg/alien_embryo/on_life() + switch(stage) + if(2, 3) + if(prob(2)) + owner.emote("sneeze") + if(prob(2)) + owner.emote("cough") + if(prob(2)) + to_chat(owner, "Your throat feels sore.") + if(prob(2)) + to_chat(owner, "Mucous runs down the back of your throat.") + if(4) + if(prob(2)) + owner.emote("sneeze") + if(prob(2)) + owner.emote("cough") + if(prob(4)) + to_chat(owner, "Your muscles ache.") + if(prob(20)) + owner.take_bodypart_damage(1) + if(prob(4)) + to_chat(owner, "Your stomach hurts.") + if(prob(20)) + owner.adjustToxLoss(1) + if(5) + to_chat(owner, "You feel something tearing its way out of your stomach...") + owner.adjustToxLoss(10) + +/obj/item/organ/body_egg/alien_embryo/egg_process() + if(stage < 5 && prob(3)) + stage++ + INVOKE_ASYNC(src, .proc/RefreshInfectionImage) + + if(stage == 5 && prob(50)) + for(var/datum/surgery/S in owner.surgeries) + if(S.location == "chest" && istype(S.get_surgery_step(), /datum/surgery_step/manipulate_organs)) + AttemptGrow(0) + return + AttemptGrow() + + + +/obj/item/organ/body_egg/alien_embryo/proc/AttemptGrow(gib_on_success=TRUE) + if(!owner || bursting) + return + + bursting = TRUE + + var/list/candidates = pollGhostCandidates("Do you want to play as an alien larva that will burst out of [owner]?", ROLE_ALIEN, null, ROLE_ALIEN, 100, POLL_IGNORE_ALIEN_LARVA) + + if(QDELETED(src) || QDELETED(owner)) + return + + if(!candidates.len || !owner) + bursting = FALSE + stage = 4 + return + + var/mob/dead/observer/ghost = pick(candidates) + + var/mutable_appearance/overlay = mutable_appearance('icons/mob/alien.dmi', "burst_lie") + owner.add_overlay(overlay) + + var/atom/xeno_loc = get_turf(owner) + var/mob/living/carbon/alien/larva/new_xeno = new(xeno_loc) + new_xeno.key = ghost.key + new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention + new_xeno.canmove = 0 //so we don't move during the bursting animation + new_xeno.notransform = 1 + new_xeno.invisibility = INVISIBILITY_MAXIMUM + + sleep(6) + + if(QDELETED(src) || QDELETED(owner)) + return + + if(new_xeno) + new_xeno.canmove = 1 + new_xeno.notransform = 0 + new_xeno.invisibility = 0 + + if(gib_on_success) + new_xeno.visible_message("[new_xeno] bursts out of [owner] in a shower of gore!", "You exit [owner], your previous host.", "You hear organic matter ripping and tearing!") + owner.gib(TRUE) + else + new_xeno.visible_message("[new_xeno] wriggles out of [owner]!", "You exit [owner], your previous host.") + owner.adjustBruteLoss(40) + owner.cut_overlay(overlay) + qdel(src) + + +/*---------------------------------------- +Proc: AddInfectionImages(C) +Des: Adds the infection image to all aliens for this embryo +----------------------------------------*/ +/obj/item/organ/body_egg/alien_embryo/AddInfectionImages() + for(var/mob/living/carbon/alien/alien in GLOB.player_list) + if(alien.client) + var/I = image('icons/mob/alien.dmi', loc = owner, icon_state = "infected[stage]") + alien.client.images += I + +/*---------------------------------------- +Proc: RemoveInfectionImage(C) +Des: Removes all images from the mob infected by this embryo +----------------------------------------*/ +/obj/item/organ/body_egg/alien_embryo/RemoveInfectionImages() + for(var/mob/living/carbon/alien/alien in GLOB.player_list) + if(alien.client) + for(var/image/I in alien.client.images) + if(dd_hasprefix_case(I.icon_state, "infected") && I.loc == owner) + qdel(I) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index b778279f42..651d788fbd 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -171,8 +171,8 @@ dna.species.mutant_bodyparts -= "wingsopen" dna.species.mutant_bodyparts |= "wings" update_body() - if(isturf(loc)) - var/turf/T = loc - T.Entered(src) + if(isturf(loc)) + var/turf/T = loc + T.Entered(src) //Ayy lmao diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 8a62b4e058..f697215a4a 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -48,4 +48,4 @@ var/datum/personal_crafting/handcrafting can_buckle = TRUE buckle_lying = FALSE - can_ride_typecache = list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot) + can_ride_typecache = list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 77ac31812a..21e1a5648e 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -142,12 +142,12 @@ return not_handled //For future deeper overrides /mob/living/carbon/human/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE) - var/index = get_held_index_of_item(I) + var/index = get_held_index_of_item(I) . = ..() //See mob.dm for an explanation on this and some rage about people copypasting instead of calling ..() like they should. if(!. || !I) return - if(index && dna.species.mutanthands) - put_in_hand(new dna.species.mutanthands(), index) + if(index && dna.species.mutanthands) + put_in_hand(new dna.species.mutanthands(), index) if(I == wear_suit) if(s_store && invdrop) dropItemToGround(s_store, TRUE) //It makes no sense for your suit storage to stay on you if you drop your suit. diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 3d6a10aae9..5c56a34a20 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -2,7 +2,7 @@ name = "Flyperson" id = "fly" say_mod = "buzzes" - mutanttongue = /obj/item/organ/tongue/fly + mutanttongue = /obj/item/organ/tongue/fly meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index e56b2221ba..65bfaf3fd5 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -1,663 +1,663 @@ -/datum/species/golem - // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. - name = "Golem" - id = "iron golem" - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) - speedmod = 2 - armor = 55 - siemens_coeff = 0 - punchdamagelow = 5 - punchdamagehigh = 14 - punchstunthreshold = 11 //about 40% chance to stun - no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform, slot_s_store) - nojumpsuit = 1 - sexes = 1 - damage_overlay_type = "" - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem - // To prevent golem subtypes from overwhelming the odds when random species - // changes, only the Random Golem type can be chosen - blacklisted = TRUE - dangerous_existence = TRUE - limbs_id = "golem" - fixed_mut_color = "aaa" - mutant_organs = list(/obj/item/organ/adamantine_resonator) - var/info_text = "As an Iron Golem, you don't have any special traits." - - var/prefix = "Iron" - var/list/special_names - -/datum/species/golem/random_name(gender,unique,lastname) - var/golem_surname = pick(GLOB.golem_names) - // 3% chance that our golem has a human surname, because - // cultural contamination - if(prob(3)) - golem_surname = pick(GLOB.last_names) - else if(special_names && prob(5)) - golem_surname = pick(special_names) - - var/golem_name = "[prefix] [golem_surname]" - return golem_name - -/datum/species/golem/random - name = "Random Golem" - blacklisted = FALSE - dangerous_existence = FALSE - -/datum/species/golem/random/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - var/list/golem_types = typesof(/datum/species/golem) - src.type - var/datum/species/golem/golem_type = pick(golem_types) - var/mob/living/carbon/human/H = C - H.set_species(golem_type) - to_chat(H, "[initial(golem_type.info_text)]") - -/datum/species/golem/adamantine - name = "Adamantine Golem" - id = "adamantine golem" - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine - mutant_organs = list(/obj/item/organ/adamantine_resonator, /obj/item/organ/vocal_cords/adamantine) - fixed_mut_color = "4ed" - info_text = "As an Adamantine Golem, you possess special vocal cords allowing you to \"resonate\" messages to all golems." - prefix = "Adamantine" - -//Explodes on death -/datum/species/golem/plasma - name = "Plasma Golem" - id = "plasma golem" - fixed_mut_color = "a3d" - meat = /obj/item/weapon/ore/plasma - //Can burn and takes damage from heat - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) - info_text = "As a Plasma Golem, you explode on death!" - burnmod = 1.5 - prefix = "Plasma" - special_names = list("Flood","Fire","Bar","Man") - -/datum/species/golem/plasma/spec_life(mob/living/carbon/human/H) - if(H.bodytemperature > 900 && H.on_fire) - explosion(get_turf(H),1,2,4,flame_range = 5) - if(H) - H.gib() - if(H.fire_stacks < 2) //flammable - H.adjust_fire_stacks(1) - ..() - -//Harder to hurt -/datum/species/golem/diamond - name = "Diamond Golem" - id = "diamond golem" - fixed_mut_color = "0ff" - armor = 70 //up from 55 - meat = /obj/item/weapon/ore/diamond - info_text = "As a Diamond Golem, you are more resistant than the average golem." - prefix = "Diamond" - special_names = list("Back") - -//Faster but softer and less armoured -/datum/species/golem/gold - name = "Gold Golem" - id = "gold golem" - fixed_mut_color = "cc0" - speedmod = 1 - armor = 25 //down from 55 - meat = /obj/item/weapon/ore/gold - info_text = "As a Gold Golem, you are faster but less resistant than the average golem." - prefix = "Golden" - -//Heavier, thus higher chance of stunning when punching -/datum/species/golem/silver - name = "Silver Golem" - id = "silver golem" - fixed_mut_color = "ddd" - punchstunthreshold = 9 //60% chance, from 40% - meat = /obj/item/weapon/ore/silver - info_text = "As a Silver Golem, your attacks are heavier and have a higher chance of stunning." - prefix = "Silver" - special_names = list("Surfer", "Chariot", "Lining") - -//Harder to stun, deals more damage, but it's even slower -/datum/species/golem/plasteel - name = "Plasteel Golem" - id = "plasteel golem" - fixed_mut_color = "bbb" - stunmod = 0.40 - punchdamagelow = 12 - punchdamagehigh = 21 - punchstunthreshold = 18 //still 40% stun chance - speedmod = 4 //pretty fucking slow - meat = /obj/item/weapon/ore/iron - info_text = "As a Plasteel Golem, you are slower, but harder to stun, and hit very hard when punching." - attack_verb = "smash" - attack_sound = 'sound/effects/meteorimpact.ogg' //hits pretty hard - prefix = "Plasteel" - -//Immune to ash storms -/datum/species/golem/titanium - name = "Titanium Golem" - id = "titanium golem" - fixed_mut_color = "fff" - meat = /obj/item/weapon/ore/titanium - info_text = "As a Titanium Golem, you are immune to ash storms, and slightly more resistant to burn damage." - burnmod = 0.9 - prefix = "Titanium" - -/datum/species/golem/titanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.weather_immunities |= "ash" - -/datum/species/golem/titanium/on_species_loss(mob/living/carbon/C) - . = ..() - C.weather_immunities -= "ash" - -//Immune to ash storms and lava -/datum/species/golem/plastitanium - name = "Plastitanium Golem" - id = "plastitanium golem" - fixed_mut_color = "888" - meat = /obj/item/weapon/ore/titanium - info_text = "As a Plastitanium Golem, you are immune to both ash storms and lava, and slightly more resistant to burn damage." - burnmod = 0.8 - prefix = "Plastitanium" - -/datum/species/golem/plastitanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.weather_immunities |= "lava" - C.weather_immunities |= "ash" - -/datum/species/golem/plastitanium/on_species_loss(mob/living/carbon/C) - . = ..() - C.weather_immunities -= "ash" - C.weather_immunities -= "lava" - -//Fast and regenerates... but can only speak like an abductor -/datum/species/golem/alloy - name = "Alien Alloy Golem" - id = "alloy golem" - fixed_mut_color = "333" - meat = /obj/item/stack/sheet/mineral/abductor - mutant_organs = list(/obj/item/organ/tongue/abductor) //abductor tongue - speedmod = 1 //faster - info_text = "As an Alloy Golem, you are made of advanced alien materials: you are faster and regenerate over time. You are, however, only able to be heard by other alloy golems." - prefix = "Alien" - special_names = list("Outsider", "Technology", "Watcher", "Stranger") //ominous and unknown - -//Regenerates because self-repairing super-advanced alien tech -/datum/species/golem/alloy/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - H.heal_overall_damage(2,2) - H.adjustToxLoss(-2) - H.adjustOxyLoss(-2) - -//Since this will usually be created from a collaboration between podpeople and free golems, wood golems are a mix between the two races -/datum/species/golem/wood - name = "Wood Golem" - id = "wood golem" - fixed_mut_color = "49311c" - meat = /obj/item/stack/sheet/mineral/wood - //Can burn and take damage from heat - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) - armor = 30 - burnmod = 1.25 - heatmod = 1.5 - info_text = "As a Wooden Golem, you have plant-like traits: you take damage from extreme temperatures, can be set on fire, and have lower armor than a normal golem. You regenerate when in the light and wither in the darkness." - prefix = "Wooden" - -/datum/species/golem/wood/random_name(gender,unique,lastname) - var/plant_name = pick("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", \ - "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") - var/golem_name = "[prefix] [plant_name]" - return golem_name - -/datum/species/golem/wood/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.faction |= "plants" - C.faction |= "vines" - -/datum/species/golem/wood/on_species_loss(mob/living/carbon/C) - . = ..() - C.faction -= "plants" - C.faction -= "vines" - -/datum/species/golem/wood/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing - if(isturf(H.loc)) //else, there's considered to be no light - var/turf/T = H.loc - light_amount = min(1,T.get_lumcount()) - 0.5 - H.nutrition += light_amount * 10 - if(H.nutrition > NUTRITION_LEVEL_FULL) - H.nutrition = NUTRITION_LEVEL_FULL - if(light_amount > 0.2) //if there's enough light, heal - H.heal_overall_damage(1,1) - H.adjustToxLoss(-1) - H.adjustOxyLoss(-1) - - if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) - H.take_overall_damage(2,0) - -/datum/species/golem/wood/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "plantbgone") - H.adjustToxLoss(3) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - return 1 - -//Radioactive -/datum/species/golem/uranium - name = "Uranium Golem" - id = "uranium golem" - fixed_mut_color = "7f0" - meat = /obj/item/weapon/ore/uranium - info_text = "As an Uranium Golem, you emit radiation pulses every once in a while. It won't harm fellow golems, but organic lifeforms will be affected." - - var/last_event = 0 - var/active = null - prefix = "Uranium" - -/datum/species/golem/uranium/spec_life(mob/living/carbon/human/H) - if(!active) - if(world.time > last_event+30) - active = 1 - radiation_pulse(get_turf(H), 3, 3, 5, 0) - last_event = world.time - active = null - ..() - -//Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death. -/datum/species/golem/sand - name = "Sand Golem" - id = "sand golem" - fixed_mut_color = "ffdc8f" - meat = /obj/item/weapon/ore/glass //this is sand - armor = 0 - burnmod = 3 //melts easily - brutemod = 0.25 - info_text = "As a Sand Golem, you are immune to physical bullets and take very little brute damage, but are extremely vulnerable to burn damage. You will also turn to sand when dying, preventing any form of recovery." - attack_sound = 'sound/effects/shovel_dig.ogg' - prefix = "Sand" - -/datum/species/golem/sand/spec_death(gibbed, mob/living/carbon/human/H) - H.visible_message("[H] turns into a pile of sand!") - for(var/obj/item/W in H) - H.dropItemToGround(W) - for(var/i=1, i <= rand(3,5), i++) - new /obj/item/weapon/ore/glass(get_turf(H)) - qdel(H) - -/datum/species/golem/sand/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) - if(!(P.original == H && P.firer == H)) - if(P.flag == "bullet" || P.flag == "bomb") - playsound(H, 'sound/effects/shovel_dig.ogg', 70, 1) - H.visible_message("The [P.name] sinks harmlessly in [H]'s sandy body!", \ - "The [P.name] sinks harmlessly in [H]'s sandy body!") - return 2 - return 0 - -//Reflects lasers and resistant to burn damage, but very vulnerable to brute damage. Shatters on death. -/datum/species/golem/glass - name = "Glass Golem" - id = "glass golem" - fixed_mut_color = "5a96b4aa" //transparent body - meat = /obj/item/weapon/shard - armor = 0 - brutemod = 3 //very fragile - burnmod = 0.25 - info_text = "As a Glass Golem, you reflect lasers and energy weapons, and are very resistant to burn damage, but you are extremely vulnerable to brute damage. On death, you'll shatter beyond any hope of recovery." - attack_sound = 'sound/effects/Glassbr2.ogg' - prefix = "Glass" - -/datum/species/golem/glass/spec_death(gibbed, mob/living/carbon/human/H) - playsound(H, "shatter", 70, 1) - H.visible_message("[H] shatters!") - for(var/obj/item/W in H) - H.dropItemToGround(W) - for(var/i=1, i <= rand(3,5), i++) - new /obj/item/weapon/shard(get_turf(H)) - qdel(H) - -/datum/species/golem/glass/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) - if(!(P.original == H && P.firer == H)) //self-shots don't reflect - if(P.flag == "laser" || P.flag == "energy") - H.visible_message("The [P.name] gets reflected by [H]'s glass skin!", \ - "The [P.name] gets reflected by [H]'s glass skin!") - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/turf/curloc = get_turf(H) - - // redirect the projectile - P.original = locate(new_x, new_y, P.z) - P.starting = curloc - P.current = curloc - P.firer = H - P.yo = new_y - curloc.y - P.xo = new_x - curloc.x - P.Angle = null - return -1 - return 0 - -//Teleports when hit or when it wants to -/datum/species/golem/bluespace - name = "Bluespace Golem" - id = "bluespace golem" - fixed_mut_color = "33f" - meat = /obj/item/weapon/ore/bluespace_crystal - info_text = "As a Bluespace Golem, are spatially unstable: you will teleport when hit, and you can teleport manually at a long distance." - attack_verb = "bluespace punch" - attack_sound = 'sound/effects/phasein.ogg' - prefix = "Bluespace" - special_names = list("Crystal", "Polycrystal") - - var/datum/action/innate/unstable_teleport/unstable_teleport - var/teleport_cooldown = 100 - var/last_teleport = 0 - -/datum/species/golem/bluespace/proc/reactive_teleport(mob/living/carbon/human/H) - H.visible_message("[H] teleports!", "You destabilize and teleport!") - new /obj/effect/particle_effect/sparks(get_turf(H)) - playsound(get_turf(H), "sparks", 50, 1) - do_teleport(H, get_turf(H), 6, asoundin = 'sound/weapons/emitter2.ogg') - last_teleport = world.time - -/datum/species/golem/bluespace/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) - ..() - var/obj/item/I - if(istype(AM, /obj/item)) - I = AM - if(I.thrownby == H) //No throwing stuff at yourself to trigger the teleport - return 0 - else - reactive_teleport(H) - -/datum/species/golem/bluespace/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) - ..() - if(world.time > last_teleport + teleport_cooldown && M != H && M.a_intent != INTENT_HELP) - reactive_teleport(H) - -/datum/species/golem/bluespace/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - ..() - if(world.time > last_teleport + teleport_cooldown && user != H) - reactive_teleport(H) - -/datum/species/golem/bluespace/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) - ..() - if(world.time > last_teleport + teleport_cooldown) - reactive_teleport(H) - -/datum/species/golem/bluespace/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - if(ishuman(C)) - unstable_teleport = new - unstable_teleport.Grant(C) - -/datum/species/golem/bluespace/on_species_loss(mob/living/carbon/C) - if(unstable_teleport) - unstable_teleport.Remove(C) - ..() - -/datum/action/innate/unstable_teleport - name = "Unstable Teleport" - check_flags = AB_CHECK_CONSCIOUS - button_icon_state = "jaunt" - var/cooldown = 150 - var/last_teleport = 0 - -/datum/action/innate/unstable_teleport/IsAvailable() - if(..()) - if(world.time > last_teleport + cooldown) - return 1 - return 0 - -/datum/action/innate/unstable_teleport/Activate() - var/mob/living/carbon/human/H = owner - H.visible_message("[H] starts vibrating!", "You start charging your bluespace core...") - playsound(get_turf(H), 'sound/weapons/flash.ogg', 25, 1) - addtimer(CALLBACK(src, .proc/teleport, H), 15) - -/datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) - H.visible_message("[H] disappears in a shower of sparks!", "You teleport!") - var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(10, 0, src) - spark_system.attach(H) - spark_system.start() - do_teleport(H, get_turf(H), 12, asoundin = 'sound/weapons/emitter2.ogg') - last_teleport = world.time - UpdateButtonIcon() //action icon looks unavailable - sleep(cooldown + 5) - UpdateButtonIcon() //action icon looks available again - - -//honk -/datum/species/golem/bananium - name = "Bananium Golem" - id = "bananium golem" - fixed_mut_color = "ff0" - say_mod = "honks" - punchdamagelow = 0 - punchdamagehigh = 1 - punchstunthreshold = 2 //Harmless and can't stun - meat = /obj/item/weapon/ore/bananium - info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you cannot hurt people when punching them. Your skin also emits bananas when damaged." - attack_verb = "honk" - attack_sound = 'sound/items/AirHorn2.ogg' - prefix = "Bananium" - - var/last_honk = 0 - var/honkooldown = 0 - var/last_banana = 0 - var/banana_cooldown = 100 - var/active = null - -/datum/species/golem/bananium/random_name(gender,unique,lastname) - var/clown_name = pick(GLOB.clown_names) - var/golem_name = "[uppertext(clown_name)]" - return golem_name - -/datum/species/golem/bananium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) - ..() - if(world.time > last_banana + banana_cooldown && M != H && M.a_intent != INTENT_HELP) - new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - ..() - if(world.time > last_banana + banana_cooldown && user != H) - new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) - ..() - if(world.time > last_banana + banana_cooldown) - new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) - ..() - var/obj/item/I - if(istype(AM, /obj/item)) - I = AM - if(I.thrownby == H) //No throwing stuff at yourself to make bananas - return 0 - else - new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_life(mob/living/carbon/human/H) - if(!active) - if(world.time > last_honk + honkooldown) - active = 1 - playsound(get_turf(H), 'sound/items/bikehorn.ogg', 50, 1) - last_honk = world.time - honkooldown = rand(20, 80) - active = null - ..() - -/datum/species/golem/bananium/spec_death(gibbed, mob/living/carbon/human/H) - playsound(get_turf(H), 'sound/misc/sadtrombone.ogg', 70, 0) - -/datum/species/golem/bananium/get_spans() - return list(SPAN_CLOWN) - - -/datum/species/golem/runic - name = "Runic Golem" - id = "runic golem" - limbs_id = "cultgolem" - sexes = FALSE - info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder God Nar'Sie." - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER) //no mutcolors - prefix = "Runic" - - var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift - var/obj/effect/proc_holder/spell/targeted/abyssal_gaze/abyssal_gaze - var/obj/effect/proc_holder/spell/targeted/dominate/dominate - -/datum/species/golem/runic/random_name(gender,unique,lastname) - var/edgy_first_name = pick("Razor","Blood","Dark","Evil","Cold","Pale","Black","Silent","Chaos","Deadly") - var/edgy_last_name = pick("Edge","Night","Death","Razor","Blade","Steel","Calamity","Twilight","Shadow","Nightmare") //dammit Razor Razor - var/golem_name = "[edgy_first_name] [edgy_last_name]" - return golem_name - -/datum/species/golem/runic/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.faction |= "cult" - phase_shift = new - C.AddSpell(phase_shift) - abyssal_gaze = new - C.AddSpell(abyssal_gaze) - dominate = new - C.AddSpell(dominate) - -/datum/species/golem/runic/on_species_loss(mob/living/carbon/C) - . = ..() - C.faction -= "cult" - if(phase_shift) - C.RemoveSpell(phase_shift) - if(abyssal_gaze) - C.RemoveSpell(abyssal_gaze) - if(dominate) - C.RemoveSpell(dominate) - -/datum/species/golem/runic/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "holywater") - H.adjustFireLoss(4) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - - if(chem.id == "unholywater") - H.adjustBruteLoss(-4) - H.adjustFireLoss(-4) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - -/datum/species/golem/cloth - name = "Cloth Golem" - id = "cloth golem" - limbs_id = "clothgolem" - sexes = FALSE - info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable." - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER) //no mutcolors, and can burn - armor = 15 //feels no pain, but not too resistant - burnmod = 2 // don't get burned - speedmod = 1 // not as heavy as stone - punchdamagelow = 4 - punchstunthreshold = 7 - punchdamagehigh = 8 // not as heavy as stone - prefix = "Cloth" - -/datum/species/golem/cloth/random_name(gender,unique,lastname) - var/pharaoh_name = pick("Neferkare", "Hudjefa", "Khufu", "Mentuhotep", "Ahmose", "Amenhotep", "Thutmose", "Hatshepsut", "Tutankhamun", "Ramses", "Seti", \ - "Merenptah", "Djer", "Semerkhet", "Nynetjer", "Khafre", "Pepi", "Intef", "Ay") //yes, Ay was an actual pharaoh - var/golem_name = "[pharaoh_name] \Roman[rand(1,99)]" - return golem_name - -/datum/species/golem/cloth/spec_life(mob/living/carbon/human/H) - if(H.fire_stacks < 1) - H.adjust_fire_stacks(1) //always prone to burning - ..() - -/datum/species/golem/cloth/spec_death(gibbed, mob/living/carbon/human/H) - if(gibbed) - return - if(H.on_fire) - H.visible_message("[H] burns into ash!") - H.dust(just_ash = TRUE) - return - - H.visible_message("[H] falls apart into a pile of bandages!") - new /obj/structure/cloth_pile(get_turf(H), H) - ..() - -/obj/structure/cloth_pile - name = "pile of bandages" - desc = "It emits a strange aura, as if there was still life within it..." - obj_integrity = 50 - max_integrity = 50 - armor = list(melee = 90, bullet = 90, laser = 25, energy = 80, bomb = 50, bio = 100, fire = -50, acid = -50) - icon = 'icons/obj/items.dmi' - icon_state = "pile_bandages" - resistance_flags = FLAMMABLE - - var/revive_time = 900 - var/mob/living/carbon/human/cloth_golem - -/obj/structure/cloth_pile/Initialize(mapload, mob/living/carbon/human/H) - if(!QDELETED(H) && is_species(H, /datum/species/golem/cloth)) - H.unequip_everything() - H.forceMove(src) - cloth_golem = H - to_chat(cloth_golem, "You start gathering your life energy, preparing to rise again...") - addtimer(CALLBACK(src, .proc/revive), revive_time) - else - qdel(src) - -/obj/structure/cloth_pile/Destroy() - if(cloth_golem) - QDEL_NULL(cloth_golem) - return ..() - -/obj/structure/cloth_pile/burn() - visible_message("[src] burns into ash!") - new /obj/effect/decal/cleanable/ash(get_turf(src)) - ..() - -/obj/structure/cloth_pile/proc/revive() - if(QDELETED(src) || QDELETED(cloth_golem)) //QDELETED also checks for null, so if no cloth golem is set this won't runtime - return - if(cloth_golem.suiciding || cloth_golem.disabilities & NOCLONE) - QDEL_NULL(cloth_golem) - return - - invisibility = INVISIBILITY_MAXIMUM //disappear before the animation - new /obj/effect/overlay/temp/mummy_animation(get_turf(src)) - if(cloth_golem.revive(full_heal = TRUE, admin_revive = TRUE)) - cloth_golem.grab_ghost() //won't pull if it's a suicide - sleep(20) - cloth_golem.forceMove(get_turf(src)) - cloth_golem.visible_message("[src] rises and reforms into [cloth_golem]!","You reform into yourself!") - cloth_golem = null - qdel(src) - -/obj/structure/cloth_pile/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params) - . = ..() - - if(resistance_flags & ON_FIRE) - return - - if(P.is_hot()) - visible_message("[src] bursts into flames!") - - fire_act() -/datum/species/golem/plastic - name = "Plastic" - id = "plastic golem" - prefix = "Plastic" - fixed_mut_color = "fff" - info_text = "As a Plastic Golem, you are capable of ventcrawling, and passing through plastic flaps." - -/datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.ventcrawler = VENTCRAWLER_NUDE - -/datum/species/golem/plastic/on_species_loss(mob/living/carbon/C) - . = ..() - C.ventcrawler = initial(C.ventcrawler) +/datum/species/golem + // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. + name = "Golem" + id = "iron golem" + species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) + speedmod = 2 + armor = 55 + siemens_coeff = 0 + punchdamagelow = 5 + punchdamagehigh = 14 + punchstunthreshold = 11 //about 40% chance to stun + no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform, slot_s_store) + nojumpsuit = 1 + sexes = 1 + damage_overlay_type = "" + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem + // To prevent golem subtypes from overwhelming the odds when random species + // changes, only the Random Golem type can be chosen + blacklisted = TRUE + dangerous_existence = TRUE + limbs_id = "golem" + fixed_mut_color = "aaa" + mutant_organs = list(/obj/item/organ/adamantine_resonator) + var/info_text = "As an Iron Golem, you don't have any special traits." + + var/prefix = "Iron" + var/list/special_names + +/datum/species/golem/random_name(gender,unique,lastname) + var/golem_surname = pick(GLOB.golem_names) + // 3% chance that our golem has a human surname, because + // cultural contamination + if(prob(3)) + golem_surname = pick(GLOB.last_names) + else if(special_names && prob(5)) + golem_surname = pick(special_names) + + var/golem_name = "[prefix] [golem_surname]" + return golem_name + +/datum/species/golem/random + name = "Random Golem" + blacklisted = FALSE + dangerous_existence = FALSE + +/datum/species/golem/random/on_species_gain(mob/living/carbon/C, datum/species/old_species) + ..() + var/list/golem_types = typesof(/datum/species/golem) - src.type + var/datum/species/golem/golem_type = pick(golem_types) + var/mob/living/carbon/human/H = C + H.set_species(golem_type) + to_chat(H, "[initial(golem_type.info_text)]") + +/datum/species/golem/adamantine + name = "Adamantine Golem" + id = "adamantine golem" + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine + mutant_organs = list(/obj/item/organ/adamantine_resonator, /obj/item/organ/vocal_cords/adamantine) + fixed_mut_color = "4ed" + info_text = "As an Adamantine Golem, you possess special vocal cords allowing you to \"resonate\" messages to all golems." + prefix = "Adamantine" + +//Explodes on death +/datum/species/golem/plasma + name = "Plasma Golem" + id = "plasma golem" + fixed_mut_color = "a3d" + meat = /obj/item/weapon/ore/plasma + //Can burn and takes damage from heat + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) + info_text = "As a Plasma Golem, you explode on death!" + burnmod = 1.5 + prefix = "Plasma" + special_names = list("Flood","Fire","Bar","Man") + +/datum/species/golem/plasma/spec_life(mob/living/carbon/human/H) + if(H.bodytemperature > 900 && H.on_fire) + explosion(get_turf(H),1,2,4,flame_range = 5) + if(H) + H.gib() + if(H.fire_stacks < 2) //flammable + H.adjust_fire_stacks(1) + ..() + +//Harder to hurt +/datum/species/golem/diamond + name = "Diamond Golem" + id = "diamond golem" + fixed_mut_color = "0ff" + armor = 70 //up from 55 + meat = /obj/item/weapon/ore/diamond + info_text = "As a Diamond Golem, you are more resistant than the average golem." + prefix = "Diamond" + special_names = list("Back") + +//Faster but softer and less armoured +/datum/species/golem/gold + name = "Gold Golem" + id = "gold golem" + fixed_mut_color = "cc0" + speedmod = 1 + armor = 25 //down from 55 + meat = /obj/item/weapon/ore/gold + info_text = "As a Gold Golem, you are faster but less resistant than the average golem." + prefix = "Golden" + +//Heavier, thus higher chance of stunning when punching +/datum/species/golem/silver + name = "Silver Golem" + id = "silver golem" + fixed_mut_color = "ddd" + punchstunthreshold = 9 //60% chance, from 40% + meat = /obj/item/weapon/ore/silver + info_text = "As a Silver Golem, your attacks are heavier and have a higher chance of stunning." + prefix = "Silver" + special_names = list("Surfer", "Chariot", "Lining") + +//Harder to stun, deals more damage, but it's even slower +/datum/species/golem/plasteel + name = "Plasteel Golem" + id = "plasteel golem" + fixed_mut_color = "bbb" + stunmod = 0.40 + punchdamagelow = 12 + punchdamagehigh = 21 + punchstunthreshold = 18 //still 40% stun chance + speedmod = 4 //pretty fucking slow + meat = /obj/item/weapon/ore/iron + info_text = "As a Plasteel Golem, you are slower, but harder to stun, and hit very hard when punching." + attack_verb = "smash" + attack_sound = 'sound/effects/meteorimpact.ogg' //hits pretty hard + prefix = "Plasteel" + +//Immune to ash storms +/datum/species/golem/titanium + name = "Titanium Golem" + id = "titanium golem" + fixed_mut_color = "fff" + meat = /obj/item/weapon/ore/titanium + info_text = "As a Titanium Golem, you are immune to ash storms, and slightly more resistant to burn damage." + burnmod = 0.9 + prefix = "Titanium" + +/datum/species/golem/titanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.weather_immunities |= "ash" + +/datum/species/golem/titanium/on_species_loss(mob/living/carbon/C) + . = ..() + C.weather_immunities -= "ash" + +//Immune to ash storms and lava +/datum/species/golem/plastitanium + name = "Plastitanium Golem" + id = "plastitanium golem" + fixed_mut_color = "888" + meat = /obj/item/weapon/ore/titanium + info_text = "As a Plastitanium Golem, you are immune to both ash storms and lava, and slightly more resistant to burn damage." + burnmod = 0.8 + prefix = "Plastitanium" + +/datum/species/golem/plastitanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.weather_immunities |= "lava" + C.weather_immunities |= "ash" + +/datum/species/golem/plastitanium/on_species_loss(mob/living/carbon/C) + . = ..() + C.weather_immunities -= "ash" + C.weather_immunities -= "lava" + +//Fast and regenerates... but can only speak like an abductor +/datum/species/golem/alloy + name = "Alien Alloy Golem" + id = "alloy golem" + fixed_mut_color = "333" + meat = /obj/item/stack/sheet/mineral/abductor + mutant_organs = list(/obj/item/organ/tongue/abductor) //abductor tongue + speedmod = 1 //faster + info_text = "As an Alloy Golem, you are made of advanced alien materials: you are faster and regenerate over time. You are, however, only able to be heard by other alloy golems." + prefix = "Alien" + special_names = list("Outsider", "Technology", "Watcher", "Stranger") //ominous and unknown + +//Regenerates because self-repairing super-advanced alien tech +/datum/species/golem/alloy/spec_life(mob/living/carbon/human/H) + if(H.stat == DEAD) + return + H.heal_overall_damage(2,2) + H.adjustToxLoss(-2) + H.adjustOxyLoss(-2) + +//Since this will usually be created from a collaboration between podpeople and free golems, wood golems are a mix between the two races +/datum/species/golem/wood + name = "Wood Golem" + id = "wood golem" + fixed_mut_color = "49311c" + meat = /obj/item/stack/sheet/mineral/wood + //Can burn and take damage from heat + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS) + armor = 30 + burnmod = 1.25 + heatmod = 1.5 + info_text = "As a Wooden Golem, you have plant-like traits: you take damage from extreme temperatures, can be set on fire, and have lower armor than a normal golem. You regenerate when in the light and wither in the darkness." + prefix = "Wooden" + +/datum/species/golem/wood/random_name(gender,unique,lastname) + var/plant_name = pick("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", \ + "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") + var/golem_name = "[prefix] [plant_name]" + return golem_name + +/datum/species/golem/wood/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.faction |= "plants" + C.faction |= "vines" + +/datum/species/golem/wood/on_species_loss(mob/living/carbon/C) + . = ..() + C.faction -= "plants" + C.faction -= "vines" + +/datum/species/golem/wood/spec_life(mob/living/carbon/human/H) + if(H.stat == DEAD) + return + var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing + if(isturf(H.loc)) //else, there's considered to be no light + var/turf/T = H.loc + light_amount = min(1,T.get_lumcount()) - 0.5 + H.nutrition += light_amount * 10 + if(H.nutrition > NUTRITION_LEVEL_FULL) + H.nutrition = NUTRITION_LEVEL_FULL + if(light_amount > 0.2) //if there's enough light, heal + H.heal_overall_damage(1,1) + H.adjustToxLoss(-1) + H.adjustOxyLoss(-1) + + if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) + H.take_overall_damage(2,0) + +/datum/species/golem/wood/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + if(chem.id == "plantbgone") + H.adjustToxLoss(3) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + return 1 + +//Radioactive +/datum/species/golem/uranium + name = "Uranium Golem" + id = "uranium golem" + fixed_mut_color = "7f0" + meat = /obj/item/weapon/ore/uranium + info_text = "As an Uranium Golem, you emit radiation pulses every once in a while. It won't harm fellow golems, but organic lifeforms will be affected." + + var/last_event = 0 + var/active = null + prefix = "Uranium" + +/datum/species/golem/uranium/spec_life(mob/living/carbon/human/H) + if(!active) + if(world.time > last_event+30) + active = 1 + radiation_pulse(get_turf(H), 3, 3, 5, 0) + last_event = world.time + active = null + ..() + +//Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death. +/datum/species/golem/sand + name = "Sand Golem" + id = "sand golem" + fixed_mut_color = "ffdc8f" + meat = /obj/item/weapon/ore/glass //this is sand + armor = 0 + burnmod = 3 //melts easily + brutemod = 0.25 + info_text = "As a Sand Golem, you are immune to physical bullets and take very little brute damage, but are extremely vulnerable to burn damage. You will also turn to sand when dying, preventing any form of recovery." + attack_sound = 'sound/effects/shovel_dig.ogg' + prefix = "Sand" + +/datum/species/golem/sand/spec_death(gibbed, mob/living/carbon/human/H) + H.visible_message("[H] turns into a pile of sand!") + for(var/obj/item/W in H) + H.dropItemToGround(W) + for(var/i=1, i <= rand(3,5), i++) + new /obj/item/weapon/ore/glass(get_turf(H)) + qdel(H) + +/datum/species/golem/sand/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) + if(!(P.original == H && P.firer == H)) + if(P.flag == "bullet" || P.flag == "bomb") + playsound(H, 'sound/effects/shovel_dig.ogg', 70, 1) + H.visible_message("The [P.name] sinks harmlessly in [H]'s sandy body!", \ + "The [P.name] sinks harmlessly in [H]'s sandy body!") + return 2 + return 0 + +//Reflects lasers and resistant to burn damage, but very vulnerable to brute damage. Shatters on death. +/datum/species/golem/glass + name = "Glass Golem" + id = "glass golem" + fixed_mut_color = "5a96b4aa" //transparent body + meat = /obj/item/weapon/shard + armor = 0 + brutemod = 3 //very fragile + burnmod = 0.25 + info_text = "As a Glass Golem, you reflect lasers and energy weapons, and are very resistant to burn damage, but you are extremely vulnerable to brute damage. On death, you'll shatter beyond any hope of recovery." + attack_sound = 'sound/effects/Glassbr2.ogg' + prefix = "Glass" + +/datum/species/golem/glass/spec_death(gibbed, mob/living/carbon/human/H) + playsound(H, "shatter", 70, 1) + H.visible_message("[H] shatters!") + for(var/obj/item/W in H) + H.dropItemToGround(W) + for(var/i=1, i <= rand(3,5), i++) + new /obj/item/weapon/shard(get_turf(H)) + qdel(H) + +/datum/species/golem/glass/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) + if(!(P.original == H && P.firer == H)) //self-shots don't reflect + if(P.flag == "laser" || P.flag == "energy") + H.visible_message("The [P.name] gets reflected by [H]'s glass skin!", \ + "The [P.name] gets reflected by [H]'s glass skin!") + if(P.starting) + var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/turf/curloc = get_turf(H) + + // redirect the projectile + P.original = locate(new_x, new_y, P.z) + P.starting = curloc + P.current = curloc + P.firer = H + P.yo = new_y - curloc.y + P.xo = new_x - curloc.x + P.Angle = null + return -1 + return 0 + +//Teleports when hit or when it wants to +/datum/species/golem/bluespace + name = "Bluespace Golem" + id = "bluespace golem" + fixed_mut_color = "33f" + meat = /obj/item/weapon/ore/bluespace_crystal + info_text = "As a Bluespace Golem, are spatially unstable: you will teleport when hit, and you can teleport manually at a long distance." + attack_verb = "bluespace punch" + attack_sound = 'sound/effects/phasein.ogg' + prefix = "Bluespace" + special_names = list("Crystal", "Polycrystal") + + var/datum/action/innate/unstable_teleport/unstable_teleport + var/teleport_cooldown = 100 + var/last_teleport = 0 + +/datum/species/golem/bluespace/proc/reactive_teleport(mob/living/carbon/human/H) + H.visible_message("[H] teleports!", "You destabilize and teleport!") + new /obj/effect/particle_effect/sparks(get_turf(H)) + playsound(get_turf(H), "sparks", 50, 1) + do_teleport(H, get_turf(H), 6, asoundin = 'sound/weapons/emitter2.ogg') + last_teleport = world.time + +/datum/species/golem/bluespace/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) + ..() + var/obj/item/I + if(istype(AM, /obj/item)) + I = AM + if(I.thrownby == H) //No throwing stuff at yourself to trigger the teleport + return 0 + else + reactive_teleport(H) + +/datum/species/golem/bluespace/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) + ..() + if(world.time > last_teleport + teleport_cooldown && M != H && M.a_intent != INTENT_HELP) + reactive_teleport(H) + +/datum/species/golem/bluespace/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) + ..() + if(world.time > last_teleport + teleport_cooldown && user != H) + reactive_teleport(H) + +/datum/species/golem/bluespace/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) + ..() + if(world.time > last_teleport + teleport_cooldown) + reactive_teleport(H) + +/datum/species/golem/bluespace/on_species_gain(mob/living/carbon/C, datum/species/old_species) + ..() + if(ishuman(C)) + unstable_teleport = new + unstable_teleport.Grant(C) + +/datum/species/golem/bluespace/on_species_loss(mob/living/carbon/C) + if(unstable_teleport) + unstable_teleport.Remove(C) + ..() + +/datum/action/innate/unstable_teleport + name = "Unstable Teleport" + check_flags = AB_CHECK_CONSCIOUS + button_icon_state = "jaunt" + var/cooldown = 150 + var/last_teleport = 0 + +/datum/action/innate/unstable_teleport/IsAvailable() + if(..()) + if(world.time > last_teleport + cooldown) + return 1 + return 0 + +/datum/action/innate/unstable_teleport/Activate() + var/mob/living/carbon/human/H = owner + H.visible_message("[H] starts vibrating!", "You start charging your bluespace core...") + playsound(get_turf(H), 'sound/weapons/flash.ogg', 25, 1) + addtimer(CALLBACK(src, .proc/teleport, H), 15) + +/datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) + H.visible_message("[H] disappears in a shower of sparks!", "You teleport!") + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(10, 0, src) + spark_system.attach(H) + spark_system.start() + do_teleport(H, get_turf(H), 12, asoundin = 'sound/weapons/emitter2.ogg') + last_teleport = world.time + UpdateButtonIcon() //action icon looks unavailable + sleep(cooldown + 5) + UpdateButtonIcon() //action icon looks available again + + +//honk +/datum/species/golem/bananium + name = "Bananium Golem" + id = "bananium golem" + fixed_mut_color = "ff0" + say_mod = "honks" + punchdamagelow = 0 + punchdamagehigh = 1 + punchstunthreshold = 2 //Harmless and can't stun + meat = /obj/item/weapon/ore/bananium + info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you cannot hurt people when punching them. Your skin also emits bananas when damaged." + attack_verb = "honk" + attack_sound = 'sound/items/AirHorn2.ogg' + prefix = "Bananium" + + var/last_honk = 0 + var/honkooldown = 0 + var/last_banana = 0 + var/banana_cooldown = 100 + var/active = null + +/datum/species/golem/bananium/random_name(gender,unique,lastname) + var/clown_name = pick(GLOB.clown_names) + var/golem_name = "[uppertext(clown_name)]" + return golem_name + +/datum/species/golem/bananium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) + ..() + if(world.time > last_banana + banana_cooldown && M != H && M.a_intent != INTENT_HELP) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) + ..() + if(world.time > last_banana + banana_cooldown && user != H) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) + ..() + if(world.time > last_banana + banana_cooldown) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) + ..() + var/obj/item/I + if(istype(AM, /obj/item)) + I = AM + if(I.thrownby == H) //No throwing stuff at yourself to make bananas + return 0 + else + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_life(mob/living/carbon/human/H) + if(!active) + if(world.time > last_honk + honkooldown) + active = 1 + playsound(get_turf(H), 'sound/items/bikehorn.ogg', 50, 1) + last_honk = world.time + honkooldown = rand(20, 80) + active = null + ..() + +/datum/species/golem/bananium/spec_death(gibbed, mob/living/carbon/human/H) + playsound(get_turf(H), 'sound/misc/sadtrombone.ogg', 70, 0) + +/datum/species/golem/bananium/get_spans() + return list(SPAN_CLOWN) + + +/datum/species/golem/runic + name = "Runic Golem" + id = "runic golem" + limbs_id = "cultgolem" + sexes = FALSE + info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder God Nar'Sie." + species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER) //no mutcolors + prefix = "Runic" + + var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift + var/obj/effect/proc_holder/spell/targeted/abyssal_gaze/abyssal_gaze + var/obj/effect/proc_holder/spell/targeted/dominate/dominate + +/datum/species/golem/runic/random_name(gender,unique,lastname) + var/edgy_first_name = pick("Razor","Blood","Dark","Evil","Cold","Pale","Black","Silent","Chaos","Deadly") + var/edgy_last_name = pick("Edge","Night","Death","Razor","Blade","Steel","Calamity","Twilight","Shadow","Nightmare") //dammit Razor Razor + var/golem_name = "[edgy_first_name] [edgy_last_name]" + return golem_name + +/datum/species/golem/runic/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.faction |= "cult" + phase_shift = new + C.AddSpell(phase_shift) + abyssal_gaze = new + C.AddSpell(abyssal_gaze) + dominate = new + C.AddSpell(dominate) + +/datum/species/golem/runic/on_species_loss(mob/living/carbon/C) + . = ..() + C.faction -= "cult" + if(phase_shift) + C.RemoveSpell(phase_shift) + if(abyssal_gaze) + C.RemoveSpell(abyssal_gaze) + if(dominate) + C.RemoveSpell(dominate) + +/datum/species/golem/runic/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + if(chem.id == "holywater") + H.adjustFireLoss(4) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + + if(chem.id == "unholywater") + H.adjustBruteLoss(-4) + H.adjustFireLoss(-4) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + +/datum/species/golem/cloth + name = "Cloth Golem" + id = "cloth golem" + limbs_id = "clothgolem" + sexes = FALSE + info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable." + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER) //no mutcolors, and can burn + armor = 15 //feels no pain, but not too resistant + burnmod = 2 // don't get burned + speedmod = 1 // not as heavy as stone + punchdamagelow = 4 + punchstunthreshold = 7 + punchdamagehigh = 8 // not as heavy as stone + prefix = "Cloth" + +/datum/species/golem/cloth/random_name(gender,unique,lastname) + var/pharaoh_name = pick("Neferkare", "Hudjefa", "Khufu", "Mentuhotep", "Ahmose", "Amenhotep", "Thutmose", "Hatshepsut", "Tutankhamun", "Ramses", "Seti", \ + "Merenptah", "Djer", "Semerkhet", "Nynetjer", "Khafre", "Pepi", "Intef", "Ay") //yes, Ay was an actual pharaoh + var/golem_name = "[pharaoh_name] \Roman[rand(1,99)]" + return golem_name + +/datum/species/golem/cloth/spec_life(mob/living/carbon/human/H) + if(H.fire_stacks < 1) + H.adjust_fire_stacks(1) //always prone to burning + ..() + +/datum/species/golem/cloth/spec_death(gibbed, mob/living/carbon/human/H) + if(gibbed) + return + if(H.on_fire) + H.visible_message("[H] burns into ash!") + H.dust(just_ash = TRUE) + return + + H.visible_message("[H] falls apart into a pile of bandages!") + new /obj/structure/cloth_pile(get_turf(H), H) + ..() + +/obj/structure/cloth_pile + name = "pile of bandages" + desc = "It emits a strange aura, as if there was still life within it..." + obj_integrity = 50 + max_integrity = 50 + armor = list(melee = 90, bullet = 90, laser = 25, energy = 80, bomb = 50, bio = 100, fire = -50, acid = -50) + icon = 'icons/obj/items.dmi' + icon_state = "pile_bandages" + resistance_flags = FLAMMABLE + + var/revive_time = 900 + var/mob/living/carbon/human/cloth_golem + +/obj/structure/cloth_pile/Initialize(mapload, mob/living/carbon/human/H) + if(!QDELETED(H) && is_species(H, /datum/species/golem/cloth)) + H.unequip_everything() + H.forceMove(src) + cloth_golem = H + to_chat(cloth_golem, "You start gathering your life energy, preparing to rise again...") + addtimer(CALLBACK(src, .proc/revive), revive_time) + else + qdel(src) + +/obj/structure/cloth_pile/Destroy() + if(cloth_golem) + QDEL_NULL(cloth_golem) + return ..() + +/obj/structure/cloth_pile/burn() + visible_message("[src] burns into ash!") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + ..() + +/obj/structure/cloth_pile/proc/revive() + if(QDELETED(src) || QDELETED(cloth_golem)) //QDELETED also checks for null, so if no cloth golem is set this won't runtime + return + if(cloth_golem.suiciding || cloth_golem.disabilities & NOCLONE) + QDEL_NULL(cloth_golem) + return + + invisibility = INVISIBILITY_MAXIMUM //disappear before the animation + new /obj/effect/overlay/temp/mummy_animation(get_turf(src)) + if(cloth_golem.revive(full_heal = TRUE, admin_revive = TRUE)) + cloth_golem.grab_ghost() //won't pull if it's a suicide + sleep(20) + cloth_golem.forceMove(get_turf(src)) + cloth_golem.visible_message("[src] rises and reforms into [cloth_golem]!","You reform into yourself!") + cloth_golem = null + qdel(src) + +/obj/structure/cloth_pile/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params) + . = ..() + + if(resistance_flags & ON_FIRE) + return + + if(P.is_hot()) + visible_message("[src] bursts into flames!") + + fire_act() +/datum/species/golem/plastic + name = "Plastic" + id = "plastic golem" + prefix = "Plastic" + fixed_mut_color = "fff" + info_text = "As a Plastic Golem, you are capable of ventcrawling, and passing through plastic flaps." + +/datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.ventcrawler = VENTCRAWLER_NUDE + +/datum/species/golem/plastic/on_species_loss(mob/living/carbon/C) + . = ..() + C.ventcrawler = initial(C.ventcrawler) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index ca4deab288..8adc1f19f3 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -17,9 +17,9 @@ skinned_type = /obj/item/stack/sheet/animalhide/lizard exotic_bloodtype = "L" -/datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H) - H.grant_language(/datum/language/draconic) - +/datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H) + H.grant_language(/datum/language/draconic) + /datum/species/lizard/random_name(gender,unique,lastname) if(unique) return random_unique_lizard_name(gender) diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 6b56fa9ca4..239d901e5c 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -13,11 +13,11 @@ name = "Infectious Zombie" id = "memezombies" limbs_id = "zombie" - mutanthands = /obj/item/zombie_hand + mutanthands = /obj/item/zombie_hand no_equip = list(slot_wear_mask, slot_head) armor = 20 // 120 damage to KO a zombie, which kills it speedmod = 2 - mutanteyes = /obj/item/organ/eyes/night_vision/zombie + mutanteyes = /obj/item/organ/eyes/night_vision/zombie /datum/species/zombie/infectious/spec_life(mob/living/carbon/C) . = ..() @@ -30,14 +30,14 @@ /datum/species/zombie/infectious/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() - // Deal with the source of this zombie corruption - // Infection organ needs to be handled separately from mutant_organs - // because it persists through species transitions + // Deal with the source of this zombie corruption + // Infection organ needs to be handled separately from mutant_organs + // because it persists through species transitions var/obj/item/organ/zombie_infection/infection infection = C.getorganslot("zombie_infection") if(!infection) - infection = new() - infection.Insert(C) + infection = new() + infection.Insert(C) // Your skin falls off diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index d908ed547d..4be1dfe851 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -49,7 +49,7 @@ timeofdeath = world.time tod = worldtime2text() var/turf/T = get_turf(src) - var/area/A = get_area(T) + var/area/A = get_area(T) if(mind && mind.name && mind.active && (!(T.flags & NO_DEATHRATTLE))) var/rendered = "[mind.name] has died at [A.name]." deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index bb88f69781..096a4ab71e 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -6,7 +6,7 @@ verb_ask = "queries" verb_exclaim = "declares" verb_yell = "alarms" - initial_language_holder = /datum/language_holder/synthetic + initial_language_holder = /datum/language_holder/synthetic see_in_dark = 8 bubble_icon = "machine" weather_immunities = list("ash") diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index ba4e3dc68c..cdb292b3a5 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -20,7 +20,7 @@ verb_ask = "queries" verb_exclaim = "declares" verb_yell = "alarms" - initial_language_holder = /datum/language_holder/synthetic + initial_language_holder = /datum/language_holder/synthetic bubble_icon = "machine" faction = list("neutral", "silicon" , "turret") @@ -287,13 +287,13 @@ to_chat(user, "The welder must be on for this task!") else if(W.force) //if force is non-zero - do_sparks(5, TRUE, src) + do_sparks(5, TRUE, src) ..() /mob/living/simple_animal/bot/bullet_act(obj/item/projectile/Proj) if(Proj && (Proj.damage_type == BRUTE || Proj.damage_type == BURN)) if(prob(75) && Proj.damage > 0) - do_sparks(5, TRUE, src) + do_sparks(5, TRUE, src) return ..() /mob/living/simple_animal/bot/emp_act(severity) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index c30f52aa5c..f384e70381 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -397,7 +397,7 @@ Auto Patrol: []"}, if(prob(50)) new /obj/item/bodypart/l_arm/robot(Tsec) - do_sparks(3, TRUE, src) + do_sparks(3, TRUE, src) new /obj/effect/decal/cleanable/oil(loc) ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index c08f291cee..159aec35af 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -216,7 +216,7 @@ if(change) if(change > 0) if(M && stat != DEAD) - new /obj/effect/overlay/temp/heart(loc) + new /obj/effect/overlay/temp/heart(loc) emote("me", 1, "purrs!") else if(M && stat != DEAD) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 427d9ddaa4..c516a637e2 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -51,12 +51,12 @@ src.visible_message("[src] calms down.") if(stat == CONSCIOUS) udder.generateMilk() - eat_plants() + eat_plants() if(!pulledby) for(var/direction in shuffle(list(1,2,4,8,5,6,9,10))) var/step = get_step(src, direction) if(step) - if(locate(/obj/structure/spacevine) in step || locate(/obj/structure/glowshroom) in step) + if(locate(/obj/structure/spacevine) in step || locate(/obj/structure/glowshroom) in step) Move(step, get_dir(src, step)) /mob/living/simple_animal/hostile/retaliate/goat/Retaliate() @@ -66,22 +66,22 @@ /mob/living/simple_animal/hostile/retaliate/goat/Move() ..() if(!stat) - eat_plants() - -/mob/living/simple_animal/hostile/retaliate/goat/proc/eat_plants() - var/eaten = FALSE - var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc - if(SV) - SV.eat(src) - eaten = TRUE - - var/obj/structure/glowshroom/GS = locate(/obj/structure/glowshroom) in loc - if(GS) - qdel(GS) - eaten = TRUE - - if(eaten && prob(10)) - say("Nom") + eat_plants() + +/mob/living/simple_animal/hostile/retaliate/goat/proc/eat_plants() + var/eaten = FALSE + var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc + if(SV) + SV.eat(src) + eaten = TRUE + + var/obj/structure/glowshroom/GS = locate(/obj/structure/glowshroom) in loc + if(GS) + qdel(GS) + eaten = TRUE + + if(eaten && prob(10)) + say("Nom") /mob/living/simple_animal/hostile/retaliate/goat/attackby(obj/item/O, mob/user, params) if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass)) @@ -311,7 +311,7 @@ name = "udder" /obj/item/udder/Initialize() - create_reagents(50) + create_reagents(50) reagents.add_reagent("milk", 20) ..() diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 5454f3c553..266c9b1860 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -53,5 +53,5 @@ ranged = 1 /mob/living/simple_animal/hostile/hivebot/death(gibbed) - do_sparks(3, TRUE, src) + do_sparks(3, TRUE, src) ..(1) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 4eaa10195b..6ebac2394c 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -28,8 +28,8 @@ status_flags = CANPUSH movement_type = FLYING loot = list(/obj/item/weapon/ectoplasm) - del_on_death = TRUE - initial_language_holder = /datum/language_holder/construct + del_on_death = TRUE + initial_language_holder = /datum/language_holder/construct /mob/living/simple_animal/shade/death() deathmessage = "lets out a contented sigh as [p_their()] form unwinds." diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index de3d48f28b..ca2bcd3ba2 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -12,20 +12,20 @@ slot_flags = SLOT_BELT resistance_flags = FLAMMABLE -/obj/item/weapon/clipboard/Initialize() +/obj/item/weapon/clipboard/Initialize() update_icon() - . = ..() + . = ..() -/obj/item/weapon/clipboard/Destroy() - QDEL_NULL(haspen) - QDEL_NULL(toppaper) //let movable/Destroy handle the rest - return ..() +/obj/item/weapon/clipboard/Destroy() + QDEL_NULL(haspen) + QDEL_NULL(toppaper) //let movable/Destroy handle the rest + return ..() /obj/item/weapon/clipboard/update_icon() cut_overlays() if(toppaper) add_overlay(toppaper.icon_state) - copy_overlays(toppaper) + copy_overlays(toppaper) if(haspen) add_overlay("clipboard_pen") add_overlay("clipboard_over") @@ -119,4 +119,4 @@ //Update everything attack_self(usr) - update_icon() + update_icon() diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index b7a298d6b3..9d37173c9f 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -1,493 +1,493 @@ -/obj/machinery/power/emitter - name = "Emitter" - desc = "A heavy duty industrial laser.\nAlt-click to rotate it clockwise." - icon = 'icons/obj/singularity.dmi' - icon_state = "emitter" - var/icon_state_on = "emitter_+a" - anchored = 0 - density = 1 - req_access = list(GLOB.access_engine_equip) - - // The following 3 vars are mostly for the prototype - var/manual = FALSE - var/charge = 0 - var/atom/target = null - - use_power = 0 - idle_power_usage = 10 - active_power_usage = 300 - - var/active = 0 - var/powered = 0 - var/fire_delay = 100 - var/maximum_fire_delay = 100 - var/minimum_fire_delay = 20 - var/last_shot = 0 - var/shot_number = 0 - var/state = 0 - var/locked = 0 - - var/projectile_type = /obj/item/projectile/beam/emitter - - var/projectile_sound = 'sound/weapons/emitter.ogg' - - var/datum/effect_system/spark_spread/sparks - -/obj/machinery/power/emitter/New() - ..() - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/emitter(null) - B.apply_default_parts(src) - RefreshParts() - wires = new /datum/wires/emitter(src) - -/obj/item/weapon/circuitboard/machine/emitter - name = "Emitter (Machine Board)" - build_path = /obj/machinery/power/emitter - origin_tech = "programming=3;powerstorage=4;engineering=4" - req_components = list( - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/machinery/power/emitter/RefreshParts() - var/max_firedelay = 120 - var/firedelay = 120 - var/min_firedelay = 24 - var/power_usage = 350 - for(var/obj/item/weapon/stock_parts/micro_laser/L in component_parts) - max_firedelay -= 20 * L.rating - min_firedelay -= 4 * L.rating - firedelay -= 20 * L.rating - maximum_fire_delay = max_firedelay - minimum_fire_delay = min_firedelay - fire_delay = firedelay - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - power_usage -= 50 * M.rating - active_power_usage = power_usage - -/obj/machinery/power/emitter/verb/rotate() - set name = "Rotate" - set category = "Object" - set src in oview(1) - - if(usr.stat || !usr.canmove || usr.restrained()) - return - if (src.anchored) - to_chat(usr, "It is fastened to the floor!") - return 0 - src.setDir(turn(src.dir, 270)) - return 1 - -/obj/machinery/power/emitter/AltClick(mob/user) - ..() - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) - return - else - rotate() - -/obj/machinery/power/emitter/Initialize() - . = ..() - if(state == 2 && anchored) - connect_to_network() - - sparks = new - sparks.attach(src) - sparks.set_up(5, TRUE, src) - -/obj/machinery/power/emitter/Destroy() - if(SSticker && SSticker.IsRoundInProgress()) - message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) - log_game("Emitter deleted at ([x],[y],[z])") - investigate_log("deleted at ([x],[y],[z]) at [get_area(src)]","singulo") - QDEL_NULL(sparks) - return ..() - -/obj/machinery/power/emitter/update_icon() - if (active && powernet && avail(active_power_usage)) - icon_state = icon_state_on - else - icon_state = initial(icon_state) - - -/obj/machinery/power/emitter/attack_hand(mob/user) - src.add_fingerprint(user) - if(state == 2) - if(!powernet) - to_chat(user, "The emitter isn't connected to a wire!") - return 1 - if(!src.locked) - if(src.active==1) - src.active = 0 - to_chat(user, "You turn off \the [src].") - message_admins("Emitter turned off by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("Emitter turned off by [key_name(user)] in [COORD(src)]") - investigate_log("turned off by [key_name(user)] at [get_area(src)]","singulo") - else - src.active = 1 - to_chat(user, "You turn on \the [src].") - src.shot_number = 0 - src.fire_delay = maximum_fire_delay - investigate_log("turned on by [key_name(user)] at [get_area(src)]","singulo") - update_icon() - else - to_chat(user, "The controls are locked!") - else - to_chat(user, "The [src] needs to be firmly secured to the floor first!") - return 1 - -/obj/machinery/power/emitter/attack_animal(mob/living/simple_animal/M) - if(ismegafauna(M) && anchored) - state = 0 - anchored = FALSE - M.visible_message("[M] rips [src] free from its moorings!") - else - ..() - if(!anchored) - step(src, get_dir(M, src)) - - -/obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues -// add_load(1000) -/* if((severity == 1)&&prob(1)&&prob(1)) - if(src.active) - src.active = 0 - src.use_power = 1 */ - return 1 - - -/obj/machinery/power/emitter/process() - if(stat & (BROKEN)) - return - if(src.state != 2 || (!powernet && active_power_usage)) - src.active = 0 - update_icon() - return - if(src.active == 1) - if(!active_power_usage || avail(active_power_usage)) - add_load(active_power_usage) - if(!powered) - powered = 1 - update_icon() - investigate_log("regained power and turned on at [get_area(src)]","singulo") - else - if(powered) - powered = 0 - update_icon() - investigate_log("lost power and turned off at [get_area(src)]","singulo") - log_game("Emitter lost power in ([x],[y],[z])") - return - if(charge <=80) - charge+=5 - if(!check_delay() || manual == TRUE) - return FALSE - fire_beam(target) - -/obj/machinery/power/emitter/proc/check_delay() - if((src.last_shot + src.fire_delay) <= world.time) - return TRUE - return FALSE - -/obj/machinery/power/emitter/proc/fire_beam_pulse() - if(!check_delay()) - return FALSE - if(state != 2) - return FALSE - if(avail(active_power_usage)) - add_load(active_power_usage) - fire_beam() - -/obj/machinery/power/emitter/proc/fire_beam(atom/targeted_atom, mob/user) - var/turf/targets_from = get_turf(src) - if(targeted_atom && (targeted_atom == user || targeted_atom == targets_from || targeted_atom == src)) - return - var/obj/item/projectile/P = new projectile_type(targets_from) - playsound(src.loc, projectile_sound, 50, 1) - if(prob(35)) - sparks.start() - switch(dir) - if(NORTH) - P.yo = 20 - P.xo = 0 - if(NORTHEAST) - P.yo = 20 - P.xo = 20 - if(EAST) - P.yo = 0 - P.xo = 20 - if(SOUTHEAST) - P.yo = -20 - P.xo = 20 - if(WEST) - P.yo = 0 - P.xo = -20 - if(SOUTHWEST) - P.yo = -20 - P.xo = -20 - if(NORTHWEST) - P.yo = 20 - P.xo = -20 - else // Any other - P.yo = -20 - P.xo = 0 - if(target) - P.yo = targeted_atom.y - targets_from.y - P.xo = targeted_atom.x - targets_from.x - P.current = targets_from - P.starting = targets_from - P.firer = src - P.original = targeted_atom - if(!manual) - last_shot = world.time - if(shot_number < 3) - fire_delay = 20 - shot_number ++ - else - fire_delay = rand(minimum_fire_delay,maximum_fire_delay) - shot_number = 0 - if(!target) - P.setDir(src.dir) - P.starting = loc - else - if(QDELETED(target)) - target = null - P.fire() - return P - -/obj/machinery/power/emitter/can_be_unfasten_wrench(mob/user, silent) - if(state == EM_WELDED) - if(!silent) - to_chat(user, "[src] is welded to the floor!") - return FAILED_UNFASTEN - return ..() - -/obj/machinery/power/emitter/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) - . = ..() - if(. == SUCCESSFUL_UNFASTEN) - if(anchored) - state = EM_SECURED - else - state = EM_UNSECURED - -/obj/machinery/power/emitter/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weapon/wrench)) - if(active) - to_chat(user, "Turn \the [src] off first!") - return - default_unfasten_wrench(user, W, 0) - return - - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(active) - to_chat(user, "Turn \the [src] off first.") - return - switch(state) - if(EM_UNSECURED) - to_chat(user, "The [src.name] needs to be wrenched to the floor!") - if(EM_SECURED) - if(WT.remove_fuel(0,user)) - playsound(loc, WT.usesound, 50, 1) - user.visible_message("[user.name] starts to weld the [name] to the floor.", \ - "You start to weld \the [src] to the floor...", \ - "You hear welding.") - if(do_after(user,20*W.toolspeed, target = src) && WT.isOn()) - state = EM_WELDED - to_chat(user, "You weld \the [src] to the floor.") - connect_to_network() - if(EM_WELDED) - if(WT.remove_fuel(0,user)) - playsound(loc, WT.usesound, 50, 1) - user.visible_message("[user.name] starts to cut the [name] free from the floor.", \ - "You start to cut \the [src] free from the floor...", \ - "You hear welding.") - if(do_after(user,20*W.toolspeed, target = src) && WT.isOn()) - state = EM_SECURED - to_chat(user, "You cut \the [src] free from the floor.") - disconnect_from_network() - return - - if(W.GetID()) - if(emagged) - to_chat(user, "The lock seems to be broken!") - return - if(allowed(user)) - if(active) - locked = !locked - to_chat(user, "You [src.locked ? "lock" : "unlock"] the controls.") - else - to_chat(user, "The controls can only be locked when \the [src] is online!") - else - to_chat(user, "Access denied.") - return - - if(is_wire_tool(W) && panel_open) - wires.interact(user) - return - - if(default_deconstruction_screwdriver(user, "emitter_open", "emitter", W)) - return - - if(exchange_parts(user, W)) - return - - if(default_pry_open(W)) - return - - if(default_deconstruction_crowbar(W)) - return - - return ..() - -/obj/machinery/power/emitter/emag_act(mob/user) - if(!emagged) - locked = 0 - emagged = 1 - if(user) - user.visible_message("[user.name] emags the [src.name].","You short out the lock.") - - -/obj/machinery/power/emitter/prototype - name = "Prototype Emitter" - icon = 'icons/obj/turrets.dmi' - icon_state = "protoemitter" - icon_state_on = "protoemitter_+a" - can_buckle = TRUE - buckle_lying = 0 - var/view_range = 12 - var/datum/action/innate/protoemitter/firing/auto - -//BUCKLE HOOKS - -/obj/machinery/power/emitter/prototype/unbuckle_mob(mob/living/buckled_mob,force = 0) - playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) - manual = FALSE - for(var/obj/item/I in buckled_mob.held_items) - if(istype(I, /obj/item/weapon/turret_control)) - qdel(I) - if(istype(buckled_mob)) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 0 - if(buckled_mob.client) - buckled_mob.client.change_view(world.view) - auto.Remove(buckled_mob) - . = ..() - -/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/M, mob/living/carbon/user) - if(user.incapacitated() || !istype(user)) - return - for(var/atom/movable/A in get_turf(src)) - if(A.density && (A != src && A != M)) - return - M.forceMove(get_turf(src)) - ..() - playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) - M.pixel_y = 14 - layer = 4.1 - if(M.client) - M.client.change_view(view_range) - if(!auto) - auto = new() - auto.Grant(M, src) - -/datum/action/innate/protoemitter - check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS - var/obj/machinery/power/emitter/prototype/PE - var/mob/living/carbon/U - - -/datum/action/innate/protoemitter/Grant(mob/living/carbon/L, obj/machinery/power/emitter/prototype/proto) - PE = proto - U = L - . = ..() - -/datum/action/innate/protoemitter/firing - name = "Switch to Manual Firing" - desc = "The emitter will only fire on your command and at your designated target" - button_icon_state = "mech_zoom_on" - -/datum/action/innate/protoemitter/firing/Activate() - if(PE.manual) - playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) - PE.manual = FALSE - name = "Switch to Manual Firing" - desc = "The emitter will only fire on your command and at your designated target" - button_icon_state = "mech_zoom_on" - for(var/obj/item/I in U.held_items) - if(istype(I, /obj/item/weapon/turret_control)) - qdel(I) - UpdateButtonIcon() - return - else - playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) - name = "Switch to Automatic Firing" - desc = "Emitters will switch to periodic firing at your last target" - button_icon_state = "mech_zoom_off" - PE.manual = TRUE - for(var/V in U.held_items) - var/obj/item/I = V - if(istype(I)) - if(U.dropItemToGround(I)) - var/obj/item/weapon/turret_control/TC = new /obj/item/weapon/turret_control() - U.put_in_hands(TC) - else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand - var/obj/item/weapon/turret_control/TC = new /obj/item/weapon/turret_control() - U.put_in_hands(TC) - UpdateButtonIcon() - - -/obj/item/weapon/turret_control - name = "turret controls" - icon_state = "offhand" - w_class = WEIGHT_CLASS_HUGE - flags = ABSTRACT | NODROP - resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF | NOBLUDGEON - var/delay = 0 - -/obj/item/weapon/turret_control/afterattack(atom/targeted_atom, mob/user) - ..() - var/obj/machinery/power/emitter/E = user.buckled - E.setDir(get_dir(E,targeted_atom)) - user.setDir(E.dir) - switch(E.dir) - if(NORTH) - E.layer = 3.9 - user.pixel_x = 0 - user.pixel_y = -14 - if(NORTHEAST) - E.layer = 3.9 - user.pixel_x = -8 - user.pixel_y = -12 - if(EAST) - E.layer = 4.1 - user.pixel_x = -14 - user.pixel_y = 0 - if(SOUTHEAST) - E.layer = 3.9 - user.pixel_x = -8 - user.pixel_y = 12 - if(SOUTH) - E.layer = 4.1 - user.pixel_x = 0 - user.pixel_y = 14 - if(SOUTHWEST) - E.layer = 3.9 - user.pixel_x = 8 - user.pixel_y = 12 - if(WEST) - E.layer = 4.1 - user.pixel_x = 14 - user.pixel_y = 0 - if(NORTHWEST) - E.layer = 3.9 - user.pixel_x = 8 - user.pixel_y = -12 - - if(E.charge >= 10 && world.time > delay) - E.charge -= 10 - E.target = targeted_atom - E.fire_beam(targeted_atom, user) - delay = world.time + 10 - else if (E.charge < 10) - playsound(get_turf(user),'sound/machines/buzz-sigh.ogg', 50, 1) +/obj/machinery/power/emitter + name = "Emitter" + desc = "A heavy duty industrial laser.\nAlt-click to rotate it clockwise." + icon = 'icons/obj/singularity.dmi' + icon_state = "emitter" + var/icon_state_on = "emitter_+a" + anchored = 0 + density = 1 + req_access = list(GLOB.access_engine_equip) + + // The following 3 vars are mostly for the prototype + var/manual = FALSE + var/charge = 0 + var/atom/target = null + + use_power = 0 + idle_power_usage = 10 + active_power_usage = 300 + + var/active = 0 + var/powered = 0 + var/fire_delay = 100 + var/maximum_fire_delay = 100 + var/minimum_fire_delay = 20 + var/last_shot = 0 + var/shot_number = 0 + var/state = 0 + var/locked = 0 + + var/projectile_type = /obj/item/projectile/beam/emitter + + var/projectile_sound = 'sound/weapons/emitter.ogg' + + var/datum/effect_system/spark_spread/sparks + +/obj/machinery/power/emitter/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/emitter(null) + B.apply_default_parts(src) + RefreshParts() + wires = new /datum/wires/emitter(src) + +/obj/item/weapon/circuitboard/machine/emitter + name = "Emitter (Machine Board)" + build_path = /obj/machinery/power/emitter + origin_tech = "programming=3;powerstorage=4;engineering=4" + req_components = list( + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + +/obj/machinery/power/emitter/RefreshParts() + var/max_firedelay = 120 + var/firedelay = 120 + var/min_firedelay = 24 + var/power_usage = 350 + for(var/obj/item/weapon/stock_parts/micro_laser/L in component_parts) + max_firedelay -= 20 * L.rating + min_firedelay -= 4 * L.rating + firedelay -= 20 * L.rating + maximum_fire_delay = max_firedelay + minimum_fire_delay = min_firedelay + fire_delay = firedelay + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + power_usage -= 50 * M.rating + active_power_usage = power_usage + +/obj/machinery/power/emitter/verb/rotate() + set name = "Rotate" + set category = "Object" + set src in oview(1) + + if(usr.stat || !usr.canmove || usr.restrained()) + return + if (src.anchored) + to_chat(usr, "It is fastened to the floor!") + return 0 + src.setDir(turn(src.dir, 270)) + return 1 + +/obj/machinery/power/emitter/AltClick(mob/user) + ..() + if(user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user)) + return + else + rotate() + +/obj/machinery/power/emitter/Initialize() + . = ..() + if(state == 2 && anchored) + connect_to_network() + + sparks = new + sparks.attach(src) + sparks.set_up(5, TRUE, src) + +/obj/machinery/power/emitter/Destroy() + if(SSticker && SSticker.IsRoundInProgress()) + message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) + log_game("Emitter deleted at ([x],[y],[z])") + investigate_log("deleted at ([x],[y],[z]) at [get_area(src)]","singulo") + QDEL_NULL(sparks) + return ..() + +/obj/machinery/power/emitter/update_icon() + if (active && powernet && avail(active_power_usage)) + icon_state = icon_state_on + else + icon_state = initial(icon_state) + + +/obj/machinery/power/emitter/attack_hand(mob/user) + src.add_fingerprint(user) + if(state == 2) + if(!powernet) + to_chat(user, "The emitter isn't connected to a wire!") + return 1 + if(!src.locked) + if(src.active==1) + src.active = 0 + to_chat(user, "You turn off \the [src].") + message_admins("Emitter turned off by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]",0,1) + log_game("Emitter turned off by [key_name(user)] in [COORD(src)]") + investigate_log("turned off by [key_name(user)] at [get_area(src)]","singulo") + else + src.active = 1 + to_chat(user, "You turn on \the [src].") + src.shot_number = 0 + src.fire_delay = maximum_fire_delay + investigate_log("turned on by [key_name(user)] at [get_area(src)]","singulo") + update_icon() + else + to_chat(user, "The controls are locked!") + else + to_chat(user, "The [src] needs to be firmly secured to the floor first!") + return 1 + +/obj/machinery/power/emitter/attack_animal(mob/living/simple_animal/M) + if(ismegafauna(M) && anchored) + state = 0 + anchored = FALSE + M.visible_message("[M] rips [src] free from its moorings!") + else + ..() + if(!anchored) + step(src, get_dir(M, src)) + + +/obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues +// add_load(1000) +/* if((severity == 1)&&prob(1)&&prob(1)) + if(src.active) + src.active = 0 + src.use_power = 1 */ + return 1 + + +/obj/machinery/power/emitter/process() + if(stat & (BROKEN)) + return + if(src.state != 2 || (!powernet && active_power_usage)) + src.active = 0 + update_icon() + return + if(src.active == 1) + if(!active_power_usage || avail(active_power_usage)) + add_load(active_power_usage) + if(!powered) + powered = 1 + update_icon() + investigate_log("regained power and turned on at [get_area(src)]","singulo") + else + if(powered) + powered = 0 + update_icon() + investigate_log("lost power and turned off at [get_area(src)]","singulo") + log_game("Emitter lost power in ([x],[y],[z])") + return + if(charge <=80) + charge+=5 + if(!check_delay() || manual == TRUE) + return FALSE + fire_beam(target) + +/obj/machinery/power/emitter/proc/check_delay() + if((src.last_shot + src.fire_delay) <= world.time) + return TRUE + return FALSE + +/obj/machinery/power/emitter/proc/fire_beam_pulse() + if(!check_delay()) + return FALSE + if(state != 2) + return FALSE + if(avail(active_power_usage)) + add_load(active_power_usage) + fire_beam() + +/obj/machinery/power/emitter/proc/fire_beam(atom/targeted_atom, mob/user) + var/turf/targets_from = get_turf(src) + if(targeted_atom && (targeted_atom == user || targeted_atom == targets_from || targeted_atom == src)) + return + var/obj/item/projectile/P = new projectile_type(targets_from) + playsound(src.loc, projectile_sound, 50, 1) + if(prob(35)) + sparks.start() + switch(dir) + if(NORTH) + P.yo = 20 + P.xo = 0 + if(NORTHEAST) + P.yo = 20 + P.xo = 20 + if(EAST) + P.yo = 0 + P.xo = 20 + if(SOUTHEAST) + P.yo = -20 + P.xo = 20 + if(WEST) + P.yo = 0 + P.xo = -20 + if(SOUTHWEST) + P.yo = -20 + P.xo = -20 + if(NORTHWEST) + P.yo = 20 + P.xo = -20 + else // Any other + P.yo = -20 + P.xo = 0 + if(target) + P.yo = targeted_atom.y - targets_from.y + P.xo = targeted_atom.x - targets_from.x + P.current = targets_from + P.starting = targets_from + P.firer = src + P.original = targeted_atom + if(!manual) + last_shot = world.time + if(shot_number < 3) + fire_delay = 20 + shot_number ++ + else + fire_delay = rand(minimum_fire_delay,maximum_fire_delay) + shot_number = 0 + if(!target) + P.setDir(src.dir) + P.starting = loc + else + if(QDELETED(target)) + target = null + P.fire() + return P + +/obj/machinery/power/emitter/can_be_unfasten_wrench(mob/user, silent) + if(state == EM_WELDED) + if(!silent) + to_chat(user, "[src] is welded to the floor!") + return FAILED_UNFASTEN + return ..() + +/obj/machinery/power/emitter/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) + . = ..() + if(. == SUCCESSFUL_UNFASTEN) + if(anchored) + state = EM_SECURED + else + state = EM_UNSECURED + +/obj/machinery/power/emitter/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + if(active) + to_chat(user, "Turn \the [src] off first!") + return + default_unfasten_wrench(user, W, 0) + return + + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(active) + to_chat(user, "Turn \the [src] off first.") + return + switch(state) + if(EM_UNSECURED) + to_chat(user, "The [src.name] needs to be wrenched to the floor!") + if(EM_SECURED) + if(WT.remove_fuel(0,user)) + playsound(loc, WT.usesound, 50, 1) + user.visible_message("[user.name] starts to weld the [name] to the floor.", \ + "You start to weld \the [src] to the floor...", \ + "You hear welding.") + if(do_after(user,20*W.toolspeed, target = src) && WT.isOn()) + state = EM_WELDED + to_chat(user, "You weld \the [src] to the floor.") + connect_to_network() + if(EM_WELDED) + if(WT.remove_fuel(0,user)) + playsound(loc, WT.usesound, 50, 1) + user.visible_message("[user.name] starts to cut the [name] free from the floor.", \ + "You start to cut \the [src] free from the floor...", \ + "You hear welding.") + if(do_after(user,20*W.toolspeed, target = src) && WT.isOn()) + state = EM_SECURED + to_chat(user, "You cut \the [src] free from the floor.") + disconnect_from_network() + return + + if(W.GetID()) + if(emagged) + to_chat(user, "The lock seems to be broken!") + return + if(allowed(user)) + if(active) + locked = !locked + to_chat(user, "You [src.locked ? "lock" : "unlock"] the controls.") + else + to_chat(user, "The controls can only be locked when \the [src] is online!") + else + to_chat(user, "Access denied.") + return + + if(is_wire_tool(W) && panel_open) + wires.interact(user) + return + + if(default_deconstruction_screwdriver(user, "emitter_open", "emitter", W)) + return + + if(exchange_parts(user, W)) + return + + if(default_pry_open(W)) + return + + if(default_deconstruction_crowbar(W)) + return + + return ..() + +/obj/machinery/power/emitter/emag_act(mob/user) + if(!emagged) + locked = 0 + emagged = 1 + if(user) + user.visible_message("[user.name] emags the [src.name].","You short out the lock.") + + +/obj/machinery/power/emitter/prototype + name = "Prototype Emitter" + icon = 'icons/obj/turrets.dmi' + icon_state = "protoemitter" + icon_state_on = "protoemitter_+a" + can_buckle = TRUE + buckle_lying = 0 + var/view_range = 12 + var/datum/action/innate/protoemitter/firing/auto + +//BUCKLE HOOKS + +/obj/machinery/power/emitter/prototype/unbuckle_mob(mob/living/buckled_mob,force = 0) + playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) + manual = FALSE + for(var/obj/item/I in buckled_mob.held_items) + if(istype(I, /obj/item/weapon/turret_control)) + qdel(I) + if(istype(buckled_mob)) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 0 + if(buckled_mob.client) + buckled_mob.client.change_view(world.view) + auto.Remove(buckled_mob) + . = ..() + +/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/M, mob/living/carbon/user) + if(user.incapacitated() || !istype(user)) + return + for(var/atom/movable/A in get_turf(src)) + if(A.density && (A != src && A != M)) + return + M.forceMove(get_turf(src)) + ..() + playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) + M.pixel_y = 14 + layer = 4.1 + if(M.client) + M.client.change_view(view_range) + if(!auto) + auto = new() + auto.Grant(M, src) + +/datum/action/innate/protoemitter + check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS + var/obj/machinery/power/emitter/prototype/PE + var/mob/living/carbon/U + + +/datum/action/innate/protoemitter/Grant(mob/living/carbon/L, obj/machinery/power/emitter/prototype/proto) + PE = proto + U = L + . = ..() + +/datum/action/innate/protoemitter/firing + name = "Switch to Manual Firing" + desc = "The emitter will only fire on your command and at your designated target" + button_icon_state = "mech_zoom_on" + +/datum/action/innate/protoemitter/firing/Activate() + if(PE.manual) + playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) + PE.manual = FALSE + name = "Switch to Manual Firing" + desc = "The emitter will only fire on your command and at your designated target" + button_icon_state = "mech_zoom_on" + for(var/obj/item/I in U.held_items) + if(istype(I, /obj/item/weapon/turret_control)) + qdel(I) + UpdateButtonIcon() + return + else + playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) + name = "Switch to Automatic Firing" + desc = "Emitters will switch to periodic firing at your last target" + button_icon_state = "mech_zoom_off" + PE.manual = TRUE + for(var/V in U.held_items) + var/obj/item/I = V + if(istype(I)) + if(U.dropItemToGround(I)) + var/obj/item/weapon/turret_control/TC = new /obj/item/weapon/turret_control() + U.put_in_hands(TC) + else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand + var/obj/item/weapon/turret_control/TC = new /obj/item/weapon/turret_control() + U.put_in_hands(TC) + UpdateButtonIcon() + + +/obj/item/weapon/turret_control + name = "turret controls" + icon_state = "offhand" + w_class = WEIGHT_CLASS_HUGE + flags = ABSTRACT | NODROP + resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF | NOBLUDGEON + var/delay = 0 + +/obj/item/weapon/turret_control/afterattack(atom/targeted_atom, mob/user) + ..() + var/obj/machinery/power/emitter/E = user.buckled + E.setDir(get_dir(E,targeted_atom)) + user.setDir(E.dir) + switch(E.dir) + if(NORTH) + E.layer = 3.9 + user.pixel_x = 0 + user.pixel_y = -14 + if(NORTHEAST) + E.layer = 3.9 + user.pixel_x = -8 + user.pixel_y = -12 + if(EAST) + E.layer = 4.1 + user.pixel_x = -14 + user.pixel_y = 0 + if(SOUTHEAST) + E.layer = 3.9 + user.pixel_x = -8 + user.pixel_y = 12 + if(SOUTH) + E.layer = 4.1 + user.pixel_x = 0 + user.pixel_y = 14 + if(SOUTHWEST) + E.layer = 3.9 + user.pixel_x = 8 + user.pixel_y = 12 + if(WEST) + E.layer = 4.1 + user.pixel_x = 14 + user.pixel_y = 0 + if(NORTHWEST) + E.layer = 3.9 + user.pixel_x = 8 + user.pixel_y = -12 + + if(E.charge >= 10 && world.time > delay) + E.charge -= 10 + E.target = targeted_atom + E.fire_beam(targeted_atom, user) + delay = world.time + 10 + else if (E.charge < 10) + playsound(get_turf(user),'sound/machines/buzz-sigh.ogg', 50, 1) diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index dc3da6db8d..136f9162cf 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -117,8 +117,8 @@ strength++ strength_change() - message_admins("PA Control Computer increased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer increased to [strength] by [key_name(usr)] in [COORD(src)]") + message_admins("PA Control Computer increased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) + log_game("PA Control Computer increased to [strength] by [key_name(usr)] in [COORD(src)]") investigate_log("increased to [strength] by [key_name(usr)]","singulo") @@ -127,8 +127,8 @@ strength-- strength_change() - message_admins("PA Control Computer decreased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in [COORD(src)]") + message_admins("PA Control Computer decreased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) + log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in [COORD(src)]") investigate_log("decreased to [strength] by [key_name(usr)]","singulo") diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index b1fd49779f..b78572cfcd 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -191,7 +191,7 @@ fire_sound = 'sound/magic/lightningbolt.ogg' e_cost = 200 select_name = "stun" - projectile_type = /obj/item/projectile/energy/tesla/revolver + projectile_type = /obj/item/projectile/energy/tesla/revolver /obj/item/ammo_casing/energy/gravityrepulse projectile_type = /obj/item/projectile/gravityrepulse diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 8a94c2b849..951b5aeb62 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -19,12 +19,12 @@ /obj/item/weapon/gun/energy/pulse/prize/New() . = ..() GLOB.poi_list |= src - var/msg = "A pulse rifle prize has been created at [ADMIN_COORDJMP(src)]" + var/msg = "A pulse rifle prize has been created at [ADMIN_COORDJMP(src)]" message_admins(msg) log_game(msg) - notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT) + notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT) /obj/item/weapon/gun/energy/pulse/prize/Destroy() GLOB.poi_list -= src diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 9835b1df21..0eedcd5bc8 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -179,8 +179,8 @@ return if(setAngle) Angle = setAngle - var/old_pixel_x = pixel_x - var/old_pixel_y = pixel_y + var/old_pixel_x = pixel_x + var/old_pixel_y = pixel_y if(!legacy) //new projectiles set waitfor = 0 var/next_run = world.time @@ -203,30 +203,30 @@ var/Pixel_x=round((sin(Angle)+16*sin(Angle)*2), 1) //round() is a floor operation when only one argument is supplied, we don't want that here var/Pixel_y=round((cos(Angle)+16*cos(Angle)*2), 1) - var/pixel_x_offset = old_pixel_x + Pixel_x - var/pixel_y_offset = old_pixel_y + Pixel_y + var/pixel_x_offset = old_pixel_x + Pixel_x + var/pixel_y_offset = old_pixel_y + Pixel_y var/new_x = x var/new_y = y while(pixel_x_offset > 16) pixel_x_offset -= 32 - old_pixel_x -= 32 + old_pixel_x -= 32 new_x++// x++ while(pixel_x_offset < -16) pixel_x_offset += 32 - old_pixel_x += 32 + old_pixel_x += 32 new_x-- while(pixel_y_offset > 16) pixel_y_offset -= 32 - old_pixel_y -= 32 + old_pixel_y -= 32 new_y++ while(pixel_y_offset < -16) pixel_y_offset += 32 - old_pixel_y += 32 + old_pixel_y += 32 new_y-- - - pixel_x = old_pixel_x - pixel_y = old_pixel_y + + pixel_x = old_pixel_x + pixel_y = old_pixel_y step_towards(src, locate(new_x, new_y, z)) next_run += max(world.tick_lag, speed) var/delay = next_run - world.time @@ -235,9 +235,9 @@ pixel_y = pixel_y_offset else animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = max(1, (delay <= 3 ? delay - 1 : delay)), flags = ANIMATION_END_NOW) - old_pixel_x = pixel_x_offset - old_pixel_y = pixel_y_offset - + old_pixel_x = pixel_x_offset + old_pixel_y = pixel_y_offset + if(original && (original.layer>=2.75) || ismob(original)) if(loc == get_turf(original)) if(!(original in permutated)) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm old mode 100755 new mode 100644 diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm old mode 100755 new mode 100644 diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 92e01f4824..cc38a44ffc 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -48,16 +48,16 @@ user.changeNext_move(CLICK_CD_RANGE*2) user.newtonian_move(get_dir(A, user)) var/turf/T = get_turf(src) - var/area/area = get_area(src) + var/area/area = get_area(src) if(reagents.has_reagent("sacid")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired sulphuric acid from \a [src] at [area] ([T.x], [T.y], [T.z]).") + message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired sulphuric acid from \a [src] at [area] ([T.x], [T.y], [T.z]).") if(reagents.has_reagent("facid")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired Fluacid from \a [src] at [area] [COORD(T)].") + message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired Fluacid from \a [src] at [area] [COORD(T)].") if(reagents.has_reagent("lube")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired Space lube from \a [src] at [area] [COORD(T)].") + message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired Space lube from \a [src] at [area] [COORD(T)].") return diff --git a/code/modules/shuttle/ferry.dm b/code/modules/shuttle/ferry.dm index b846098fc4..8368fd58e5 100644 --- a/code/modules/shuttle/ferry.dm +++ b/code/modules/shuttle/ferry.dm @@ -30,4 +30,4 @@ 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(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to Centcom.") diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index 76f5b9b307..0069aa5349 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -69,24 +69,24 @@ action_icon_state = "smoke" - -/obj/effect/proc_holder/spell/targeted/smoke/lesser //Chaplain smoke book - name = "Smoke" - desc = "This spell spawns a small cloud of choking smoke at your location." - - school = "conjuration" - charge_max = 360 - clothes_req = 0 - invocation = "none" - invocation_type = "none" - range = -1 - include_user = 1 - - smoke_spread = 1 - smoke_amt = 2 - - action_icon_state = "smoke" - + +/obj/effect/proc_holder/spell/targeted/smoke/lesser //Chaplain smoke book + name = "Smoke" + desc = "This spell spawns a small cloud of choking smoke at your location." + + school = "conjuration" + charge_max = 360 + clothes_req = 0 + invocation = "none" + invocation_type = "none" + range = -1 + include_user = 1 + + smoke_spread = 1 + smoke_amt = 2 + + action_icon_state = "smoke" + /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech name = "Disable Tech" desc = "This spell disables all weapons, cameras and most other technology in range." diff --git a/icons/emoji.dmi b/icons/emoji.dmi old mode 100755 new mode 100644 diff --git a/interface/skin.dmf b/interface/skin.dmf index 65407cef0e..f48b58e34a 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -1329,7 +1329,7 @@ window "mapwindow" on-show = "" on-hide = "" style = "" - zoom-mode = "distort" + zoom-mode = "distort" window "infowindow" elem "infowindow" diff --git a/tgstation.dme b/tgstation.dme index 95c2255dfa..f643d7231a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -808,7 +808,6 @@ #include "code\game\objects\items\weapons\defib.dm" #include "code\game\objects\items\weapons\dice.dm" #include "code\game\objects\items\weapons\dna_injector.dm" -#include "code\game\objects\items\weapons\explosives.dm" #include "code\game\objects\items\weapons\extinguisher.dm" #include "code\game\objects\items\weapons\flamethrower.dm" #include "code\game\objects\items\weapons\gift.dm" From 4370b5285a319bc0d1fc87e4597d9bde43f4c880 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Thu, 18 May 2017 01:05:03 -0500 Subject: [PATCH 75/82] Delete runes.dm.rej --- code/game/gamemodes/cult/runes.dm.rej | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 code/game/gamemodes/cult/runes.dm.rej diff --git a/code/game/gamemodes/cult/runes.dm.rej b/code/game/gamemodes/cult/runes.dm.rej deleted file mode 100644 index cd7962db1e..0000000000 --- a/code/game/gamemodes/cult/runes.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm (rejected hunks) -@@ -516,7 +516,7 @@ structure_check() searches for nearby cultist structures required for the invoca - /obj/effect/rune/raise_dead - cultist_name = "Resurrect Cultist" - cultist_desc = "requires the corpse of a cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be revived." -- invocation = null //Depends on the name of the user - see below -+ invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!" //Depends on the name of the user - see below - icon_state = "1" - color = "#C80000" - var/static/revives_used = 0 From d2be6cfeb54f14ca94726c89ebc5ebadf0f92dd5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 18 May 2017 01:11:58 -0500 Subject: [PATCH 76/82] Refactors leather & Crafting with Bigenerator (#849) --- .../objects/items/stacks/sheets/leather.dm | 26 ++++++++- .../research/designs/biogenerator_designs.dm | 56 ++----------------- 2 files changed, 28 insertions(+), 54 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index dfd0723ab1..6cb89ecaf3 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -118,6 +118,9 @@ GLOBAL_LIST_INIT(xeno_recipes, list ( \ var/wetness = 30 //Reduced when exposed to high temperautres var/drying_threshold_temperature = 500 //Kelvin to start drying +/* + * Leather SHeet + */ /obj/item/stack/sheet/leather name = "leather" desc = "The by-product of mob grinding." @@ -125,6 +128,24 @@ GLOBAL_LIST_INIT(xeno_recipes, list ( \ icon_state = "sheet-leather" origin_tech = "materials=2" +GLOBAL_LIST_INIT(leather_recipes, list ( \ + new/datum/stack_recipe("wallet", /obj/item/weapon/storage/wallet, 1), \ + new/datum/stack_recipe("muzzle", /obj/item/clothing/mask/muzzle, 2), \ + new/datum/stack_recipe("botany gloves", /obj/item/clothing/gloves/botanic_leather, 3), \ + new/datum/stack_recipe("toolbelt", /obj/item/weapon/storage/belt/utility, 4), \ + new/datum/stack_recipe("leather satchel", /obj/item/weapon/storage/backpack/satchel, 5), \ + new/datum/stack_recipe("bandolier", /obj/item/weapon/storage/belt/bandolier, 5), \ + new/datum/stack_recipe("leather jacket", /obj/item/clothing/suit/jacket/leather, 7), \ + new/datum/stack_recipe("leather overcoat", /obj/item/clothing/suit/jacket/leather/overcoat, 10), \ +)) + +/obj/item/stack/sheet/leather/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.leather_recipes + return ..() + +/* + * Sinew + */ /obj/item/stack/sheet/sinew name = "watcher sinew" icon = 'icons/obj/mining.dmi' @@ -136,11 +157,12 @@ GLOBAL_LIST_INIT(xeno_recipes, list ( \ GLOBAL_LIST_INIT(sinew_recipes, list ( \ new/datum/stack_recipe("sinew restraints", /obj/item/weapon/restraints/handcuffs/sinew, 1, on_floor = 1), \ - )) +)) /obj/item/stack/sheet/sinew/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.sinew_recipes return ..() + /* * Plates */ @@ -207,4 +229,4 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ var/obj/item/stack/sheet/leather/HS = new(src.loc) HS.amount = 1 wetness = initial(wetness) - src.use(1) \ No newline at end of file + src.use(1) diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index af1d942e90..7319e507ae 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -115,28 +115,12 @@ build_path = /obj/item/stack/sheet/cloth category = list("initial","Leather and Cloth") -/datum/design/wallet - name = "Wallet" - id = "wallet" - build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 100) - build_path = /obj/item/weapon/storage/wallet - category = list("initial","Leather and Cloth") - -/datum/design/botany_gloves - name = "Botanical Gloves" - id = "botany_gloves" +/datum/design/leather + name = "Sheet of Leather" + id = "leather" build_type = BIOGENERATOR materials = list(MAT_BIOMASS = 150) - build_path = /obj/item/clothing/gloves/botanic_leather - category = list("initial","Leather and Cloth") - -/datum/design/toolbelt - name = "Utility Belt" - id = "toolbelt" - build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 300) - build_path = /obj/item/weapon/storage/belt/utility + build_path = /obj/item/stack/sheet/leather category = list("initial","Leather and Cloth") /datum/design/secbelt @@ -163,14 +147,6 @@ build_path = /obj/item/weapon/storage/belt/janitor category = list("initial","Leather and Cloth") -/datum/design/bandolier - name = "Bandolier Belt" - id = "bandolier" - build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 300) - build_path = /obj/item/weapon/storage/belt/bandolier - category = list("initial","Leather and Cloth") - /datum/design/s_holster name = "Shoulder Holster" id = "s_holster" @@ -179,30 +155,6 @@ build_path = /obj/item/weapon/storage/belt/holster category = list("initial","Leather and Cloth") -/datum/design/leather_satchel - name = "Leather Satchel" - id = "leather_satchel" - build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 400) - build_path = /obj/item/weapon/storage/backpack/satchel - category = list("initial","Leather and Cloth") - -/datum/design/leather_jacket - name = "Leather Jacket" - id = "leather_jacket" - build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 500) - build_path = /obj/item/clothing/suit/jacket/leather - category = list("initial","Leather and Cloth") - -/datum/design/leather_overcoat - name = "Leather Overcoat" - id = "leather_overcoat" - build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 1000) - build_path = /obj/item/clothing/suit/jacket/leather/overcoat - category = list("initial","Leather and Cloth") - /datum/design/rice_hat name = "Rice Hat" id = "rice_hat" From aedec34c546dcade0b906986967c0eb719549c67 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 18 May 2017 01:11:59 -0500 Subject: [PATCH 77/82] Automatic changelog generation for PR #849 [ci skip] --- html/changelogs/AutoChangeLog-pr-849.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-849.yml diff --git a/html/changelogs/AutoChangeLog-pr-849.yml b/html/changelogs/AutoChangeLog-pr-849.yml new file mode 100644 index 0000000000..8aeb9ff295 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-849.yml @@ -0,0 +1,8 @@ +author: "Moonlighting Mac says" +delete-after: True +changes: + - tweak: "After a recent trade fair, employees have took it upon themselves to learn how to craft leather objects out of finished leather sheets, for novices they are pretty good at it! Try it yourself!" + - rscadd: "Muzzles to silence people are now craftable out of leather sheets." + - rscdel: "You can no longer print off designs from a bio-generator that can now be crafted out of leather sheets." + - tweak: "Complete sheets of leather can be printed from the bio-generator for 150 biomass to accommodate for a loss of designs." + - experiment: "Specialist objects from the leather & cloth category bio-generator category were not removed as to encourage interdepartmental interaction & balance." From cb03dd5d0db6de1f3901040f3daf831a0fefc576 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 18 May 2017 01:12:31 -0500 Subject: [PATCH 78/82] [MIRROR] Smartfridges only come preloaded at map start (#837) * Smartfridges only come preloaded at map start * update CitadelStation-1.2.1.dmm --- _maps/map_files/Cerestation/cerestation.dmm | 6 +-- .../CitadelStation/CitadelStation-1.2.1.dmm | 10 ++--- .../map_files/Deltastation/DeltaStation2.dmm | 8 ++-- _maps/map_files/MetaStation/MetaStation.dmm | 6 +-- _maps/map_files/OmegaStation/OmegaStation.dmm | 4 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 9 ++-- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 6 +-- .../kitchen_machinery/smartfridge.dm | 45 +++++++++---------- 8 files changed, 46 insertions(+), 48 deletions(-) diff --git a/_maps/map_files/Cerestation/cerestation.dmm b/_maps/map_files/Cerestation/cerestation.dmm index 1d73b4ba36..be3b67e8a3 100644 --- a/_maps/map_files/Cerestation/cerestation.dmm +++ b/_maps/map_files/Cerestation/cerestation.dmm @@ -40086,7 +40086,7 @@ }, /area/medical/virology) "brX" = ( -/obj/machinery/smartfridge/chemistry/virology, +/obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/plasteel/whitegreen/side{ tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; @@ -47853,7 +47853,7 @@ }, /area/medical/chemistry) "bEN" = ( -/obj/machinery/smartfridge/chemistry, +/obj/machinery/smartfridge/chemistry/preloaded, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -76429,7 +76429,7 @@ }, /area/toxins/xenobiology) "cCm" = ( -/obj/machinery/smartfridge/extract, +/obj/machinery/smartfridge/extract/preloaded, /obj/structure/cable/orange{ d1 = 4; d2 = 8; diff --git a/_maps/map_files/CitadelStation/CitadelStation-1.2.1.dmm b/_maps/map_files/CitadelStation/CitadelStation-1.2.1.dmm index cbeb81de8f..65c31e0f7e 100644 --- a/_maps/map_files/CitadelStation/CitadelStation-1.2.1.dmm +++ b/_maps/map_files/CitadelStation/CitadelStation-1.2.1.dmm @@ -241,7 +241,7 @@ "aeG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4;icon_state = "0-4"},/turf/open/floor/plating,/area/medical/virology) "aeH" = (/obj/item/weapon/storage/box/beakers{pixel_x = 2;pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/power/apc{cell_type = 5000;dir = 1;name = "Virology APC";pixel_x = 0;pixel_y = 24},/obj/structure/cable/yellow{d2 = 4;icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8;icon_state = "0-8"},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 9},/area/medical/virology) "aeI" = (/obj/item/weapon/book/manual/wiki/infections{pixel_y = 7},/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/cable/yellow{d1 = 2;d2 = 8;icon_state = "2-8"},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 5},/area/medical/virology) -"aeJ" = (/obj/machinery/smartfridge/chemistry/virology,/obj/machinery/airalarm{frequency = 1439;pixel_y = 23},/turf/open/floor/plasteel/whitegreen,/area/medical/virology) +"aeJ" = (/obj/machinery/smartfridge/chemistry/virology/preloaded,/obj/machinery/airalarm{frequency = 1439;pixel_y = 23},/turf/open/floor/plasteel/whitegreen,/area/medical/virology) "aeK" = (/obj/machinery/reagentgrinder{pixel_y = 8},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 9},/area/medical/virology) "aeL" = (/obj/item/clothing/gloves/color/latex,/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/obj/structure/reagent_dispensers/virusfood{density = 0;pixel_x = 0;pixel_y = 30},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 5},/area/medical/virology) "aeM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/processing{name = "Prisoner Processing"}) @@ -620,7 +620,7 @@ "alV" = (/obj/machinery/camera{c_tag = "Custodial Closet"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) "alW" = (/obj/machinery/monkey_recycler,/obj/machinery/firealarm{dir = 2;pixel_y = 24},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) "alX" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract.";name = "Slime Processor"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) -"alY" = (/obj/machinery/smartfridge/extract,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"alY" = (/obj/machinery/smartfridge/extract/preloaded,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) "alZ" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/airalarm{frequency = 1439;pixel_y = 23},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) "ama" = (/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) "amb" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/light_switch{pixel_x = 0;pixel_y = 28},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) @@ -2985,7 +2985,7 @@ "bfu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{tag = "icon-1-2";icon_state = "1-2"},/turf/open/floor/plasteel/whiteblue/corner{tag = "icon-whitebluecorner (EAST)";icon_state = "whitebluecorner";dir = 4},/area/medical/medbay{name = "Medbay Central"}) "bfv" = (/obj/machinery/chem_dispenser,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (NORTHWEST)";icon_state = "whiteyellow";dir = 9},/area/medical/chemistry) "bfw" = (/obj/machinery/chem_master,/obj/item/weapon/book/manual/wiki/chemistry,/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (NORTH)";icon_state = "whiteyellow";dir = 1},/area/medical/chemistry) -"bfx" = (/obj/machinery/smartfridge/chemistry{name = "chemical component fridge";spawn_meds = null},/obj/machinery/camera/autoname,/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (NORTH)";icon_state = "whiteyellow";dir = 1},/area/medical/chemistry) +"bfx" = (/obj/machinery/smartfridge/chemistry/preloaded{name = "chemical component fridge"},/obj/machinery/camera/autoname,/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (NORTH)";icon_state = "whiteyellow";dir = 1},/area/medical/chemistry) "bfy" = (/obj/structure/table,/obj/machinery/vending/wallmed{pixel_y = 28},/obj/item/weapon/hand_labeler,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (NORTH)";icon_state = "whiteyellow";dir = 1},/area/medical/chemistry) "bfz" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/item/stack/sheet/mineral/plasma{layer = 2.9;pixel_y = 4},/obj/item/stack/sheet/mineral/plasma,/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (NORTH)";icon_state = "whiteyellow";dir = 1},/area/medical/chemistry) "bfA" = (/obj/structure/sink{pixel_y = 24},/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (NORTH)";icon_state = "whiteyellow";dir = 1},/area/medical/chemistry) @@ -3094,7 +3094,7 @@ "bhz" = (/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (WEST)";icon_state = "whiteyellow";dir = 8},/area/medical/chemistry) "bhA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) "bhB" = (/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plasteel/white,/area/medical/chemistry) -"bhC" = (/obj/machinery/smartfridge/chemistry{name = "chemical component fridge";spawn_meds = null},/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (EAST)";icon_state = "whiteyellow";dir = 4},/area/medical/chemistry) +"bhC" = (/obj/machinery/smartfridge/chemistry/preloaded{name = "chemical component fridge"},/turf/open/floor/plasteel/whiteyellow/side{tag = "icon-whiteyellow (EAST)";icon_state = "whiteyellow";dir = 4},/area/medical/chemistry) "bhD" = (/turf/closed/wall/r_wall,/area/security/checkpoint) "bhE" = (/obj/machinery/atmospherics/components/unary/vent_pump{name = "regular air vent";on = 1},/obj/machinery/computer/secure_data,/turf/open/floor/plasteel{icon_state = "redfull"},/area/security/checkpoint) "bhF" = (/obj/structure/chair/office/dark{dir = 8},/obj/machinery/firealarm{dir = 1;pixel_x = 0;pixel_y = -26},/turf/open/floor/plasteel{icon_state = "redfull"},/area/security/checkpoint) @@ -3205,7 +3205,7 @@ "bjG" = (/obj/machinery/light{icon_state = "tube1";dir = 8},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (WEST)";icon_state = "whiteblue";dir = 8},/area/medical/medbay{name = "Medbay Central"}) "bjH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay{name = "Medbay Central"}) "bjI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) -"bjJ" = (/obj/machinery/smartfridge/chemistry,/turf/closed/wall,/area/medical/chemistry) +"bjJ" = (/obj/machinery/smartfridge/chemistry/preloaded,/turf/closed/wall,/area/medical/chemistry) "bjK" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southleft{dir = 1;name = "Chemistry Desk";req_access_txt = "33"},/obj/machinery/door/firedoor/border_only,/turf/open/floor/plasteel/orange,/area/medical/chemistry) "bjL" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/medical/chemistry) "bjM" = (/obj/machinery/door/airlock/glass_command{name = "Bridge Access";req_access_txt = "0";req_one_access_txt = "19; 1"},/turf/open/floor/plasteel/darkblue,/area/bridge) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 267a2a7b50..4a91a5b85f 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -79542,7 +79542,7 @@ }) "cUh" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/smartfridge/chemistry, +/obj/machinery/smartfridge/chemistry/preloaded, /turf/closed/wall, /area/medical/medbay{ name = "Medbay Central" @@ -81189,7 +81189,7 @@ /turf/open/floor/plating, /area/toxins/xenobiology) "cXc" = ( -/obj/machinery/smartfridge/extract, +/obj/machinery/smartfridge/extract/preloaded, /obj/machinery/light_switch{ pixel_x = -26 }, @@ -84274,7 +84274,7 @@ /turf/open/floor/plasteel/whiteyellow/corner, /area/medical/chemistry) "ddg" = ( -/obj/machinery/smartfridge/chemistry, +/obj/machinery/smartfridge/chemistry/preloaded, /turf/closed/wall, /area/medical/chemistry) "ddh" = ( @@ -104905,7 +104905,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/smartfridge/chemistry/virology, +/obj/machinery/smartfridge/chemistry/virology/preloaded, /obj/effect/turf_decal/stripes/line{ dir = 4 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index f30c7b69f3..26c4cc5719 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -63162,7 +63162,7 @@ /turf/open/floor/plating, /area/medical/chemistry) "cfY" = ( -/obj/machinery/smartfridge/chemistry, +/obj/machinery/smartfridge/chemistry/preloaded, /turf/closed/wall, /area/medical/chemistry) "cfZ" = ( @@ -77230,7 +77230,7 @@ }, /area/medical/virology) "cDH" = ( -/obj/machinery/smartfridge/chemistry/virology, +/obj/machinery/smartfridge/chemistry/virology/preloaded, /obj/machinery/airalarm{ frequency = 1439; pixel_y = 23 @@ -91079,7 +91079,7 @@ d2 = 8; icon_state = "2-8" }, -/obj/machinery/smartfridge/extract, +/obj/machinery/smartfridge/extract/preloaded, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 2af4f3bd30..cb68c2eeb6 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -27034,7 +27034,7 @@ /turf/open/floor/plating, /area/medical/chemistry) "aRh" = ( -/obj/machinery/smartfridge/chemistry, +/obj/machinery/smartfridge/chemistry/preloaded, /turf/closed/wall, /area/medical/chemistry) "aRi" = ( @@ -37371,7 +37371,7 @@ /turf/open/floor/plasteel, /area/toxins/xenobiology) "bjb" = ( -/obj/machinery/smartfridge/extract, +/obj/machinery/smartfridge/extract/preloaded, /obj/machinery/light{ dir = 1 }, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 56bcff286e..bd71cc4794 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -30296,7 +30296,7 @@ }, /area/medical/chemistry) "bjk" = ( -/obj/machinery/smartfridge/chemistry, +/obj/machinery/smartfridge/chemistry/preloaded, /turf/closed/wall, /area/medical/chemistry) "bjl" = ( @@ -30534,7 +30534,7 @@ /turf/open/floor/plasteel/white, /area/toxins/xenobiology) "bjH" = ( -/obj/machinery/smartfridge/extract, +/obj/machinery/smartfridge/extract/preloaded, /turf/open/floor/plasteel/whitepurple/side{ dir = 4 }, @@ -40057,9 +40057,8 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bBf" = ( -/obj/machinery/smartfridge/chemistry/virology, +/obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/plasteel/whitegreen/side{ - tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4 }, @@ -50530,7 +50529,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "bXR" = ( -/obj/machinery/smartfridge/chemistry, +/obj/machinery/smartfridge/chemistry/preloaded, /turf/open/floor/plasteel/black, /area/medical/chemistry) "bXS" = ( diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index a1dbe47799..b00c11274b 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -27089,7 +27089,7 @@ /turf/open/floor/plasteel, /area/assembly/chargebay) "bjQ" = ( -/obj/machinery/smartfridge/chemistry, +/obj/machinery/smartfridge/chemistry/preloaded, /turf/open/floor/plating, /area/medical/chemistry) "bjR" = ( @@ -40907,7 +40907,7 @@ /turf/open/floor/plasteel/white, /area/toxins/xenobiology) "bMo" = ( -/obj/machinery/smartfridge/extract, +/obj/machinery/smartfridge/extract/preloaded, /turf/open/floor/plasteel/white, /area/toxins/xenobiology) "bMp" = ( @@ -44806,7 +44806,7 @@ /turf/open/floor/plating, /area/maintenance/asmaint) "bVa" = ( -/obj/machinery/smartfridge/chemistry/virology, +/obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/plasteel/whitegreen/side{ dir = 8 }, diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 1b41cd45cd..705c532260 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -15,12 +15,21 @@ var/max_n_of_items = 1500 var/icon_on = "smartfridge" var/icon_off = "smartfridge-off" + var/list/initial_contents /obj/machinery/smartfridge/Initialize() ..() create_reagents() reagents.set_reacting(FALSE) + if(islist(initial_contents)) + for(var/typekey in initial_contents) + var/amount = initial_contents[typekey] + if(isnull(amount)) + amount = 1 + for(var/i in 1 to amount) + load(new typekey(src)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/smartfridge(null) B.apply_default_parts(src) @@ -51,7 +60,7 @@ else return ..() -/obj/item/weapon/circuitboard/machine/smartfridge/examine/(mob/user) +/obj/item/weapon/circuitboard/machine/smartfridge/examine(mob/user) ..() to_chat(user, "[src] is set to [fridges[build_path]]. You can use a screwdriver to reconfigure it.") @@ -384,12 +393,8 @@ return TRUE return FALSE -/obj/machinery/smartfridge/extract/New() - ..() - var/obj/item/device/slime_scanner/I = new /obj/item/device/slime_scanner(src) - load(I) - var/obj/item/device/slime_scanner/T = new /obj/item/device/slime_scanner(src) - load(T) +/obj/machinery/smartfridge/extract/preloaded + initial_contents = list(/obj/item/device/slime_scanner = 2) // ----------------------------- // Chemistry Medical Smartfridge @@ -397,21 +402,6 @@ /obj/machinery/smartfridge/chemistry name = "smart chemical storage" desc = "A refrigerated storage unit for medicine storage." - var/list/spawn_meds = list( - /obj/item/weapon/reagent_containers/pill/epinephrine = 12, - /obj/item/weapon/reagent_containers/pill/charcoal = 5, - /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 1, - /obj/item/weapon/reagent_containers/glass/bottle/charcoal = 1) - -/obj/machinery/smartfridge/chemistry/New() - ..() - for(var/typekey in spawn_meds) - var/amount = spawn_meds[typekey] - if(isnull(amount)) amount = 1 - while(amount) - var/obj/item/I = new typekey(src) - load(I) - amount-- /obj/machinery/smartfridge/chemistry/accept_check(obj/item/O) if(istype(O,/obj/item/weapon/storage/pill_bottle)) @@ -431,13 +421,22 @@ return TRUE return FALSE +/obj/machinery/smartfridge/chemistry/preloaded + initial_contents = list( + /obj/item/weapon/reagent_containers/pill/epinephrine = 12, + /obj/item/weapon/reagent_containers/pill/charcoal = 5, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 1, + /obj/item/weapon/reagent_containers/glass/bottle/charcoal = 1) + // ---------------------------- // Virology Medical Smartfridge // ---------------------------- /obj/machinery/smartfridge/chemistry/virology name = "smart virus storage" desc = "A refrigerated storage unit for volatile sample storage." - spawn_meds = list( + +/obj/machinery/smartfridge/chemistry/virology/preloaded + initial_contents = list( /obj/item/weapon/reagent_containers/syringe/antiviral = 4, /obj/item/weapon/reagent_containers/glass/bottle/cold = 1, /obj/item/weapon/reagent_containers/glass/bottle/flu_virion = 1, From dfcb4feca25c9b87589f4df49485fc281148d039 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 18 May 2017 01:12:32 -0500 Subject: [PATCH 79/82] Automatic changelog generation for PR #837 [ci skip] --- html/changelogs/AutoChangeLog-pr-837.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-837.yml diff --git a/html/changelogs/AutoChangeLog-pr-837.yml b/html/changelogs/AutoChangeLog-pr-837.yml new file mode 100644 index 0000000000..e322db7212 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-837.yml @@ -0,0 +1,5 @@ +author: "coiax" +delete-after: True +changes: + - bugfix: "Smartfridges no longer magically gain medicines if deconstructed +and rebuilt." From ae5897cd821c1fdf20da1e3dfb33242be4d34396 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 18 May 2017 01:12:55 -0500 Subject: [PATCH 80/82] Ash walkers speak Draconic by default, but still know common (#834) --- code/game/objects/structures/ghost_role_spawners.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index bb55084dd9..5b5c88ebe0 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -48,6 +48,11 @@ /obj/effect/mob_spawn/human/ash_walker/special(mob/living/new_spawn) new_spawn.real_name = random_unique_lizard_name(gender) to_chat(new_spawn, "Drag the corpses of men and beasts to your nest. It will absorb them to create more of your kind. Glory to the Necropolis!") + + new_spawn.grant_language(/datum/language/draconic) + var/datum/language_holder/holder = new_spawn.get_language_holder() + holder.selected_default_language = /datum/language/draconic + if(ishuman(new_spawn)) var/mob/living/carbon/human/H = new_spawn H.underwear = "Nude" From fd778d98105fe18b1a705b84882fa0f105a18e37 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 18 May 2017 01:12:56 -0500 Subject: [PATCH 81/82] Automatic changelog generation for PR #834 [ci skip] --- html/changelogs/AutoChangeLog-pr-834.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-834.yml diff --git a/html/changelogs/AutoChangeLog-pr-834.yml b/html/changelogs/AutoChangeLog-pr-834.yml new file mode 100644 index 0000000000..594898ac4b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-834.yml @@ -0,0 +1,6 @@ +author: "coiax" +delete-after: True +changes: + - rscadd: "Ash walkers now know and speak Draconic by default, but still know +Galactic Common. Remember, Galcom's language key is \",0\" and you can +review your known languages with the Language Menu." From 47fa8353ebebeb9414c1e34a88364c1a8a0a8c1c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 18 May 2017 01:39:16 -0500 Subject: [PATCH 82/82] [MIRROR] Moves playsound_local() to mob and gets rid of a useless proc. (#710) * Moves playsound_local() to mob and gets rid of a useless proc. * Fixes compile errors --- code/game/machinery/dance_machine.dm | 2 +- code/game/objects/effects/step_triggers.dm | 5 +++-- code/game/sound.dm | 13 ++++--------- code/modules/flufftext/Hallucination.dm | 8 ++++---- code/modules/vore/eating/belly_vr.dm | 2 +- code/modules/vore/eating/bellymodes_vr.dm | 6 +++--- 6 files changed, 16 insertions(+), 20 deletions(-) diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index cf18a99875..3e36776773 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -85,7 +85,7 @@ return if(!allowed(user)) to_chat(user,"Error: Access Denied - Message: Only the engineering department can be trusted with this kind of power.") - playsound_local(src,'sound/misc/compiler-failure.ogg', 25, 1) + user.playsound_local(src,'sound/misc/compiler-failure.ogg', 25, 1) return if(!Adjacent(user) && !isAI(user)) return diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 63b5075cc7..6bd4db9a8d 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -183,8 +183,9 @@ if(!T) return - if(triggerer_only) - A.playsound_local(T, sound, volume, freq_vary) + if(triggerer_only && ismob(A)) + var/mob/B = A + B.playsound_local(T, sound, volume, freq_vary) else playsound(T, sound, volume, freq_vary, extra_range) diff --git a/code/game/sound.dm b/code/game/sound.dm index 448f3cd85b..af5394ea2a 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -23,10 +23,10 @@ if(T && T.z == turf_source.z) M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, surround, channel, pressure_affected) -/atom/proc/playsound_direct(soundin, vol as num, vary, frequency, falloff, surround = TRUE, channel = 0, pressure_affected = FALSE) - playsound_local(get_turf(src), soundin, vol, vary, frequency, falloff, surround, channel) +/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1, channel = 0, pressure_affected = TRUE) + if(!client || !can_hear()) + return -/atom/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1, channel = 0, pressure_affected = TRUE) soundin = get_sfx(soundin) var/sound/S = sound(soundin) @@ -76,15 +76,10 @@ // The y value is for above your head, but there is no ceiling in 2d spessmens. S.y = 1 - S.falloff = (falloff ? falloff : FALLOFF_SOUNDS) + S.falloff = falloff || FALLOFF_SOUNDS src << S -/mob/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1, channel = 0, pressure_affected = TRUE) - if(!client || !can_hear()) - return - ..() - /proc/open_sound_channel() var/static/next_channel = 1 //loop through the available 1024 - (the ones we reserve) channels and pray that its not still being used . = ++next_channel diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 4c1328a38b..9710098c5f 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -356,9 +356,9 @@ Gunshots/explosions/opening doors/less rare audio (done) for(var/i=0,i[struggle_outer_message]", "[struggle_user_message]") playsound(get_turf(owner),"struggle_sound",75,0,-5,1,channel=51) R.stop_sound_channel(51) - R.playsound_direct("prey_struggle_sound",60) + R.playsound_local("prey_struggle_sound",60) if(escapable && R.a_intent != "help") //If the stomach has escapable enabled and the person is actually trying to kick out to_chat(R, "You attempt to climb out of \the [name].") diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 12dd76a3fd..1438f5b027 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -23,7 +23,7 @@ M.stop_sound_channel(CHANNEL_PRED) playsound(get_turf(owner),"digest_pred",75,0,-6,1,channel=CHANNEL_PRED) M.stop_sound_channel(CHANNEL_PRED) - M.playsound_direct("digest_prey",60) + M.playsound_local("digest_prey",60) //Pref protection! if (!M.digestable) @@ -51,7 +51,7 @@ M.stop_sound_channel(CHANNEL_PRED) playsound(get_turf(owner),"death_pred",50,0,-6,1,channel=CHANNEL_PRED) M.stop_sound_channel(CHANNEL_PRED) - M.playsound_direct("death_prey",60) + M.playsound_local("death_prey",60) digestion_death(M) owner.update_icons() continue @@ -70,7 +70,7 @@ M.stop_sound_channel(CHANNEL_PRED) playsound(get_turf(owner),"digest_pred",50,0,-6,1,channel=CHANNEL_PRED) M.stop_sound_channel(CHANNEL_PRED) - M.playsound_direct("digest_prey",60) + M.playsound_local("digest_prey",60) if(M.stat != DEAD) if(owner.nutrition >= NUTRITION_LEVEL_STARVING && (M.health < M.maxHealth))