diff --git a/aurorastation.dme b/aurorastation.dme index ce703c65f2f..eec06ced5f1 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -3412,9 +3412,6 @@ #include "code\modules\power\terminal.dm" #include "code\modules\power\tracker.dm" #include "code\modules\power\turbine.dm" -#include "code\modules\power\antimatter\containment_jar.dm" -#include "code\modules\power\antimatter\control.dm" -#include "code\modules\power\antimatter\shielding.dm" #include "code\modules\power\fusion\fusion_circuits.dm" #include "code\modules\power\fusion\fusion_particle_catcher.dm" #include "code\modules\power\fusion\fusion_reactions.dm" diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 600a5a0587e..fe2b6ab2b3e 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -325,499 +325,16 @@ if(!ai_can_interact(user)) return src.add_hiddenprint(user) - ui_interact(user) + // DNA Modifier is currently deprecated (old NanoUI code) + to_chat(user, SPAN_WARNING("The firmware on this thing is so hopelessly out of date as to render it unusable. Dang.")) + return + // ui_interact(user) /obj/machinery/computer/scan_consolenew/attack_hand(user as mob) if(!..()) - ui_interact(user) - -/** - * The ui_interact proc is used to open and update Nano UIs - * If ui_interact is not used then the UI will not update correctly - * ui_interact is currently defined for /atom/movable (which is inherited by /obj and /mob) - * - * @param user /mob The mob who is interacting with this ui - * @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main") - * @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui - * - * @return nothing - */ -/obj/machinery/computer/scan_consolenew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - if (!connected) + // DNA Modifier is currently deprecated (old NanoUI code) + to_chat(user, SPAN_WARNING("The firmware on this thing is so hopelessly out of date as to render it unusable. Dang.")) return - - if(user == connected.occupant || user.stat) - return - - // this is the data which will be sent to the ui - var/data[0] - data["selectedMenuKey"] = selected_menu_key - data["locked"] = src.connected.locked - data["hasOccupant"] = connected.occupant ? 1 : 0 - - data["isInjectorReady"] = injector_ready - - data["hasDisk"] = disk ? 1 : 0 - - var/diskData[0] - if (!disk || !disk.buf) - diskData["data"] = null - diskData["owner"] = null - diskData["label"] = null - diskData["type"] = null - diskData["ue"] = null - else - diskData = disk.buf.GetData() - data["disk"] = diskData - - var/list/new_buffers = list() - for(var/datum/dna2/record/buf in src.buffers) - new_buffers += list(buf.GetData()) - data["buffers"]=new_buffers - - data["radiationIntensity"] = radiation_intensity - data["radiationDuration"] = radiation_duration - data["irradiating"] = irradiating - - data["dnaBlockSize"] = DNA_BLOCK_SIZE - data["selectedUIBlock"] = selected_ui_block - data["selectedUISubBlock"] = selected_ui_subblock - data["selectedSEBlock"] = selected_se_block - data["selectedSESubBlock"] = selected_se_subblock - data["selectedUITarget"] = selected_ui_target - data["selectedUITargetHex"] = selected_ui_target_hex - - var/occupantData[0] - if (!src.connected.occupant || !src.connected.occupant.dna) - occupantData["name"] = null - occupantData["stat"] = null - occupantData["isViableSubject"] = null - occupantData["health"] = null - occupantData["maxhealth"] = null - occupantData["minHealth"] = null - occupantData["uniqueEnzymes"] = null - occupantData["uniqueIdentity"] = null - occupantData["structuralEnzymes"] = null - occupantData["radiationLevel"] = null - else - occupantData["name"] = connected.occupant.real_name - occupantData["stat"] = connected.occupant.stat - occupantData["isViableSubject"] = 1 - if ((connected.occupant.mutations & NOCLONE) || !src.connected.occupant.dna) - occupantData["isViableSubject"] = 0 - occupantData["health"] = connected.occupant.health - occupantData["maxhealth"] = connected.occupant.maxhealth - occupantData["minHealth"] = connected.occupant.species.total_health - occupantData["uniqueEnzymes"] = connected.occupant.dna.unique_enzymes - occupantData["uniqueIdentity"] = connected.occupant.dna.uni_identity - occupantData["structuralEnzymes"] = connected.occupant.dna.struc_enzymes - occupantData["radiationLevel"] = connected.occupant.total_radiation - data["occupant"] = occupantData; - - data["isBeakerLoaded"] = connected.beaker ? 1 : 0 - data["beakerLabel"] = null - data["beakerVolume"] = 0 - if(connected.beaker) - data["beakerLabel"] = connected.beaker.label_text ? connected.beaker.label_text : null - for(var/_R in connected.beaker.reagents.reagent_volumes) - data["beakerVolume"] += connected.beaker.reagents.reagent_volumes[_R] - - // update the ui if it exists, returns null if no ui is passed/found - ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) - if (!ui) - // the ui does not exist, so we'll create a new() one - // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm - ui = new(user, src, ui_key, "dna_modifier.tmpl", "DNA Modifier Console", 660, 700) - // when the ui is first opened this is the data it will use - ui.set_initial_data(data) - // open the new ui window - ui.open() - // auto update every Master Controller tick - ui.set_auto_update(1) - -/obj/machinery/computer/scan_consolenew/Topic(href, href_list) - if(..()) - return 0 // don't update uis - if(!istype(usr.loc, /turf)) - return 0 // don't update uis - if(!src || !src.connected) - return 0 // don't update uis - if(irradiating) // Make sure that it isn't already irradiating someone... - return 0 // don't update uis - - add_fingerprint(usr) - - if (href_list["selectMenuKey"]) - selected_menu_key = href_list["selectMenuKey"] - return 1 // return 1 forces an update to all Nano uis attached to src - - if (href_list["toggleLock"]) - if ((src.connected && src.connected.occupant)) - src.connected.locked = !( src.connected.locked ) - return 1 // return 1 forces an update to all Nano uis attached to src - - if (href_list["pulseRadiation"]) - irradiating = src.radiation_duration - var/lock_state = src.connected.locked - src.connected.locked = 1//lock it - SSnanoui.update_uis(src) // update all UIs attached to src - - sleep(10*src.radiation_duration) // sleep for radiation_duration seconds - - irradiating = 0 - - if (!src.connected.occupant) - return 1 // return 1 forces an update to all Nano uis attached to src - - if (prob(95)) - if(prob(75)) - randmutb(src.connected.occupant) - else - randmuti(src.connected.occupant) - else - if(prob(95)) - randmutg(src.connected.occupant) - else - randmuti(src.connected.occupant) - - src.connected.occupant.apply_damage(((src.radiation_intensity*3)+src.radiation_duration*3), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED) - src.connected.locked = lock_state - return 1 // return 1 forces an update to all Nano uis attached to src - - if (href_list["radiationDuration"]) - if (text2num(href_list["radiationDuration"]) > 0) - if (src.radiation_duration < 20) - src.radiation_duration += 2 - else - if (src.radiation_duration > 2) - src.radiation_duration -= 2 - return 1 // return 1 forces an update to all Nano uis attached to src - - if (href_list["radiationIntensity"]) - if (text2num(href_list["radiationIntensity"]) > 0) - if (src.radiation_intensity < 10) - src.radiation_intensity++ - else - if (src.radiation_intensity > 1) - src.radiation_intensity-- - return 1 // return 1 forces an update to all Nano uis attached to src - - //////////////////////////////////////////////////////// - - if (href_list["changeUITarget"] && text2num(href_list["changeUITarget"]) > 0) - if (src.selected_ui_target < 15) - src.selected_ui_target++ - src.selected_ui_target_hex = src.selected_ui_target - switch(selected_ui_target) - if(10) - src.selected_ui_target_hex = "A" - if(11) - src.selected_ui_target_hex = "B" - if(12) - src.selected_ui_target_hex = "C" - if(13) - src.selected_ui_target_hex = "D" - if(14) - src.selected_ui_target_hex = "E" - if(15) - src.selected_ui_target_hex = "F" - else - src.selected_ui_target = 0 - src.selected_ui_target_hex = 0 - return 1 // return 1 forces an update to all Nano uis attached to src - - if (href_list["changeUITarget"] && text2num(href_list["changeUITarget"]) < 1) - if (src.selected_ui_target > 0) - src.selected_ui_target-- - src.selected_ui_target_hex = src.selected_ui_target - switch(selected_ui_target) - if(10) - src.selected_ui_target_hex = "A" - if(11) - src.selected_ui_target_hex = "B" - if(12) - src.selected_ui_target_hex = "C" - if(13) - src.selected_ui_target_hex = "D" - if(14) - src.selected_ui_target_hex = "E" - else - src.selected_ui_target = 15 - src.selected_ui_target_hex = "F" - return 1 // return 1 forces an update to all Nano uis attached to src - - if (href_list["selectUIBlock"] && href_list["selectUISubblock"]) // This chunk of code updates selected block / sub-block based on click - var/select_block = text2num(href_list["selectUIBlock"]) - var/select_subblock = text2num(href_list["selectUISubblock"]) - if ((select_block <= DNA_UI_LENGTH) && (select_block >= 1)) - src.selected_ui_block = select_block - if ((select_subblock <= DNA_BLOCK_SIZE) && (select_subblock >= 1)) - src.selected_ui_subblock = select_subblock - return 1 // return 1 forces an update to all Nano uis attached to src - - if (href_list["pulseUIRadiation"]) - var/block = src.connected.occupant.dna.GetUISubBlock(src.selected_ui_block,src.selected_ui_subblock) - - irradiating = src.radiation_duration - var/lock_state = src.connected.locked - src.connected.locked = 1//lock it - SSnanoui.update_uis(src) // update all UIs attached to src - - sleep(10*src.radiation_duration) // sleep for radiation_duration seconds - - irradiating = 0 - - if (!src.connected.occupant) - return 1 - - if (prob((80 + (src.radiation_duration / 2)))) - block = miniscrambletarget(num2text(selected_ui_target), src.radiation_intensity, src.radiation_duration) - src.connected.occupant.dna.SetUISubBlock(src.selected_ui_block,src.selected_ui_subblock,block) - src.connected.occupant.UpdateAppearance() - src.connected.occupant.apply_damage((src.radiation_intensity+src.radiation_duration), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED) - else - if (prob(20+src.radiation_intensity)) - randmutb(src.connected.occupant) - domutcheck(src.connected.occupant,src.connected) - else - randmuti(src.connected.occupant) - src.connected.occupant.UpdateAppearance() - src.connected.occupant.apply_damage(((src.radiation_intensity*2)+src.radiation_duration), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED) - src.connected.locked = lock_state - return 1 // return 1 forces an update to all Nano uis attached to src - - //////////////////////////////////////////////////////// - - if (href_list["injectRejuvenators"]) - if (!connected.occupant) - return 0 - var/inject_amount = round(text2num(href_list["injectRejuvenators"]), 5) // round to nearest 5 - if (inject_amount < 0) // Since the user can actually type the commands himself, some sanity checking - inject_amount = 0 - if (inject_amount > 50) - inject_amount = 50 - connected.beaker.reagents.trans_to_mob(connected.occupant, inject_amount, CHEM_BLOOD) - return 1 // return 1 forces an update to all Nano uis attached to src - - //////////////////////////////////////////////////////// - - if (href_list["selectSEBlock"] && href_list["selectSESubblock"]) // This chunk of code updates selected block / sub-block based on click (se stands for strutural enzymes) - var/select_block = text2num(href_list["selectSEBlock"]) - var/select_subblock = text2num(href_list["selectSESubblock"]) - if ((select_block <= DNA_SE_LENGTH) && (select_block >= 1)) - src.selected_se_block = select_block - if ((select_subblock <= DNA_BLOCK_SIZE) && (select_subblock >= 1)) - src.selected_se_subblock = select_subblock - //testing("User selected block [selected_se_block] (sent [select_block]), subblock [selected_se_subblock] (sent [select_block]).") - return 1 // return 1 forces an update to all Nano uis attached to src - - if (href_list["pulseSERadiation"]) - var/block = src.connected.occupant.dna.GetSESubBlock(src.selected_se_block,src.selected_se_subblock) - //var/original_block=block - //testing("Irradiating SE block [src.selected_se_block]:[src.selected_se_subblock] ([block])...") - - irradiating = src.radiation_duration - var/lock_state = src.connected.locked - src.connected.locked = 1 //lock it - SSnanoui.update_uis(src) // update all UIs attached to src - - sleep(10*src.radiation_duration) // sleep for radiation_duration seconds - - irradiating = 0 - - if(src.connected.occupant) - if (prob((80 + (src.radiation_duration / 2)))) - // FIXME: Find out what these corresponded to and change them to the WHATEVERBLOCK they need to be. - //if ((src.selected_se_block != 2 || src.selected_se_block != 12 || src.selected_se_block != 8 || src.selected_se_block || 10) && prob (20)) - var/real_SE_block=selected_se_block - block = miniscramble(block, src.radiation_intensity, src.radiation_duration) - if(prob(20)) - if (src.selected_se_block > 1 && src.selected_se_block < DNA_SE_LENGTH/2) - real_SE_block++ - else if (src.selected_se_block > DNA_SE_LENGTH/2 && src.selected_se_block < DNA_SE_LENGTH) - real_SE_block-- - - //testing("Irradiated SE block [real_SE_block]:[src.selected_se_subblock] ([original_block] now [block]) [(real_SE_block!=selected_se_block) ? "(SHIFTED)":""]!") - connected.occupant.dna.SetSESubBlock(real_SE_block,selected_se_subblock,block) - src.connected.occupant.apply_damage((src.radiation_intensity+src.radiation_duration), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED) - domutcheck(src.connected.occupant,src.connected) - else - src.connected.occupant.apply_damage(((src.radiation_intensity*2)+src.radiation_duration), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED) - if (prob(80-src.radiation_duration)) - //testing("Random bad mut!") - randmutb(src.connected.occupant) - domutcheck(src.connected.occupant,src.connected) - else - randmuti(src.connected.occupant) - //testing("Random identity mut!") - src.connected.occupant.UpdateAppearance() - src.connected.locked = lock_state - return 1 // return 1 forces an update to all Nano uis attached to src - - if(href_list["ejectBeaker"]) - if(connected.beaker) - var/obj/item/reagent_containers/glass/B = connected.beaker - B.forceMove(connected.loc) - connected.beaker = null - return 1 - - if(href_list["ejectOccupant"]) - connected.eject_occupant() - return 1 - - // Transfer Buffer Management - if(href_list["bufferOption"]) - var/bufferOption = href_list["bufferOption"] - - // These bufferOptions do not require a bufferId - if (bufferOption == "wipeDisk") - if ((isnull(src.disk)) || (src.disk.read_only)) - //src.temphtml = "Invalid disk. Please try again." - return 0 - - src.disk.buf=null - //src.temphtml = "Data saved." - return 1 - - if (bufferOption == "ejectDisk") - if (!src.disk) - return - src.disk.forceMove(get_turf(src)) - src.disk = null - return 1 - - // All bufferOptions from here on require a bufferId - if (!href_list["bufferId"]) - return 0 - - var/bufferId = text2num(href_list["bufferId"]) - - if (bufferId < 1 || bufferId > 3) - return 0 // Not a valid buffer id - - if (bufferOption == "saveUI") - if(src.connected.occupant && src.connected.occupant.dna) - var/datum/dna2/record/databuf=new - databuf.types = DNA2_BUF_UE - databuf.dna = src.connected.occupant.dna.Clone() - if(ishuman(connected.occupant)) - databuf.dna.real_name=connected.occupant.dna.real_name - databuf.name = "Unique Identifier" - src.buffers[bufferId] = databuf - return 1 - - if (bufferOption == "saveUIAndUE") - if(src.connected.occupant && src.connected.occupant.dna) - var/datum/dna2/record/databuf=new - databuf.types = DNA2_BUF_UI|DNA2_BUF_UE - databuf.dna = src.connected.occupant.dna.Clone() - if(ishuman(connected.occupant)) - databuf.dna.real_name=connected.occupant.dna.real_name - databuf.name = "Unique Identifier + Unique Enzymes" - src.buffers[bufferId] = databuf - return 1 - - if (bufferOption == "saveSE") - if(src.connected.occupant && src.connected.occupant.dna) - var/datum/dna2/record/databuf=new - databuf.types = DNA2_BUF_SE - databuf.dna = src.connected.occupant.dna.Clone() - if(ishuman(connected.occupant)) - databuf.dna.real_name=connected.occupant.dna.real_name - databuf.name = "Structural Enzymes" - src.buffers[bufferId] = databuf - return 1 - - if (bufferOption == "clear") - src.buffers[bufferId]=new /datum/dna2/record() - return 1 - - if (bufferOption == "changeLabel") - var/datum/dna2/record/buf = src.buffers[bufferId] - var/text = sanitize(input(usr, "New Label:", "Edit Label", buf.name) as text|null, MAX_NAME_LEN) - buf.name = text - src.buffers[bufferId] = buf - return 1 - - if (bufferOption == "transfer") - if (!src.connected.occupant || (src.connected.occupant.mutations & NOCLONE) || !src.connected.occupant.dna) - return - - irradiating = 2 - var/lock_state = src.connected.locked - src.connected.locked = 1//lock it - SSnanoui.update_uis(src) // update all UIs attached to src - - sleep(10*2) // sleep for 2 seconds - - irradiating = 0 - src.connected.locked = lock_state - - var/datum/dna2/record/buf = src.buffers[bufferId] - - if ((buf.types & DNA2_BUF_UI)) - if ((buf.types & DNA2_BUF_UE)) - src.connected.occupant.real_name = buf.dna.real_name - src.connected.occupant.name = buf.dna.real_name - src.connected.occupant.UpdateAppearance(buf.dna.UI.Copy()) - else if (buf.types & DNA2_BUF_SE) - src.connected.occupant.dna.SE = buf.dna.SE - src.connected.occupant.dna.UpdateSE() - domutcheck(src.connected.occupant,src.connected) - src.connected.occupant.apply_damage(rand(20,50), damage_flags = DAMAGE_FLAG_DISPERSED) - return 1 - - if (bufferOption == "createInjector") - if (src.injector_ready || waiting_for_user_input) - - var/success = 1 - var/obj/item/dnainjector/I = new /obj/item/dnainjector - var/datum/dna2/record/buf = src.buffers[bufferId] - if(href_list["createBlockInjector"]) - waiting_for_user_input=1 - var/list/selectedbuf - if(buf.types & DNA2_BUF_SE) - selectedbuf=buf.dna.SE - else - selectedbuf=buf.dna.UI - var/blk = input(usr,"Select Block","Block") in all_dna_blocks(selectedbuf) - success = setInjectorBlock(I,blk,buf) - else - I.buf = buf - waiting_for_user_input=0 - if(success) - I.forceMove(src.loc) - I.name += " ([buf.name])" - //src.temphtml = "Injector created." - src.injector_ready = 0 - spawn(300) - src.injector_ready = 1 - //else - //src.temphtml = "Error in injector creation." - //else - //src.temphtml = "Replicator not ready yet." - return 1 - - if (bufferOption == "loadDisk") - if ((isnull(src.disk)) || (!src.disk.buf)) - //src.temphtml = "Invalid disk. Please try again." - return 0 - - src.buffers[bufferId]=src.disk.buf - //src.temphtml = "Data loaded." - return 1 - - if (bufferOption == "saveDisk") - if ((isnull(src.disk)) || (src.disk.read_only)) - //src.temphtml = "Invalid disk. Please try again." - return 0 - - var/datum/dna2/record/buf = src.buffers[bufferId] - - src.disk.buf = buf - src.disk.name = "data disk - '[buf.dna.real_name]'" - //src.temphtml = "Data saved." - return 1 - + // ui_interact(user) /////////////////////////// DNA MACHINES diff --git a/code/modules/cargo/cargo_suppliers.dm b/code/modules/cargo/cargo_suppliers.dm index 69075b7569e..b9889ba24b6 100644 --- a/code/modules/cargo/cargo_suppliers.dm +++ b/code/modules/cargo/cargo_suppliers.dm @@ -69,6 +69,7 @@ description = "A janitorial supplies company best known for their highly-effective and mostly-non-toxic 'space cleaner' formula, in wide usage throughout the Spur." tag_line = "Just say BLAM! And it's gone!" +/// Unused with the removal of Antimatter-based energy sources from the codebase. /singleton/cargo_supplier/eckharts short_name = "eckharts" name = "Eckhart's Energy Solutions Limited" diff --git a/code/modules/cargo/items/engineering.dm b/code/modules/cargo/items/engineering.dm index 3357b60ef55..57a8468895a 100644 --- a/code/modules/cargo/items/engineering.dm +++ b/code/modules/cargo/items/engineering.dm @@ -586,20 +586,6 @@ groupable = TRUE spawn_amount = 1 -/singleton/cargo_item/packagedantimatterreactorsection - category = "engineering" - name = "packaged antimatter reactor section" - supplier = "eckharts" - description = "A section of antimatter reactor shielding. Do not eat." - price = 220 - items = list( - /obj/item/am_shielding_container - ) - access = ACCESS_CE - container_type = "crate" - groupable = TRUE - spawn_amount = 1 - /singleton/cargo_item/debugger category = "engineering" name = "debugger" @@ -840,34 +826,6 @@ groupable = TRUE spawn_amount = 1 -/singleton/cargo_item/antimattercontainmentjar - category = "engineering" - name = "antimatter containment jar" - supplier = "eckharts" - description = "Holds antimatter. Warranty void if exposed to matter." - price = 280 - items = list( - /obj/item/am_containment - ) - access = ACCESS_CE - container_type = "crate" - groupable = TRUE - spawn_amount = 1 - -/singleton/cargo_item/antimattercontrolunit - category = "engineering" - name = "antimatter control unit" - supplier = "eckharts" - description = "The control unit for an antimatter reactor. Probably safe." - price = 1950 - items = list( - /obj/machinery/power/am_control_unit - ) - access = ACCESS_CE - container_type = "crate" - groupable = TRUE - spawn_amount = 1 - /singleton/cargo_item/alphaparticlegenerationarray category = "engineering" name = "Alpha Particle Generation Array" diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm index 1f58d1aa3dc..4e35d6986d3 100644 --- a/code/modules/item_worth/worths_list.dm +++ b/code/modules/item_worth/worths_list.dm @@ -160,7 +160,6 @@ var/list/worths = list( /obj/item/mining_scanner = 13, /obj/item/bee_smoker = 5, /obj/item/anomaly_core = 2000, - /obj/item/am_containment = 500, /obj/item/coin/diamond = 50, /obj/item/coin/platinum = 25, /obj/item/coin/phoron = 20, @@ -237,7 +236,6 @@ var/list/worths = list( /obj/item/smes_coil/super_io = 450, /obj/item/smes_coil = 200, /obj/item/tracker_electronics = 15, - /obj/item/am_containment = 500, /obj/item/syringe_cartridge = 2, /obj/item/suppressor = 6, /obj/item/fossil = 10, diff --git a/code/modules/power/antimatter/containment_jar.dm b/code/modules/power/antimatter/containment_jar.dm deleted file mode 100644 index 33c8281fdcf..00000000000 --- a/code/modules/power/antimatter/containment_jar.dm +++ /dev/null @@ -1,48 +0,0 @@ -/obj/item/am_containment - name = "antimatter containment jar" - desc = "Holds antimatter. Warranty void if exposed to matter." - icon = 'icons/obj/machinery/antimatter.dmi' - icon_state = "jar" - force = 18 - throwforce = 10 - throw_speed = 1 - throw_range = 2 - - var/fuel = 1000 - var/stability = 100 //TODO: add all the stability things to this so its not very safe if you keep hitting in on things - var/exploded = FALSE - -/obj/item/am_containment/antagonist_hints(mob/user, distance, is_adjacent) - . += ..() - . += "Antimatter is extremely volatile, and containment jars are not particularly strong. Weak explosions will reduce the container's integrity, and larger ones will cause it to explode immediately." -/obj/item/am_containment/proc/boom() - var/percent = 0 - if(fuel) - percent = (fuel / initial(fuel)) * 100 - if(!exploded && percent >= 10) - explosion(get_turf(src), 1, 2, 3, 5)//Should likely be larger but this works fine for now I guess - exploded = TRUE - if(src) - qdel(src) - -/obj/item/am_containment/ex_act(severity) - switch(severity) - if(1.0) - boom() - if(2.0) - if(prob((fuel / 10) - stability)) - boom() - stability -= 40 - if(3.0) - stability -= 20 - check_stability() - -/obj/item/am_containment/proc/check_stability() - if(stability <= 0) - boom() - -/obj/item/am_containment/proc/usefuel(var/wanted) - if(fuel < wanted) - wanted = fuel - fuel -= wanted - return wanted diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm deleted file mode 100644 index a0e68791ab1..00000000000 --- a/code/modules/power/antimatter/control.dm +++ /dev/null @@ -1,365 +0,0 @@ -/obj/machinery/power/am_control_unit - name = "antimatter control unit" - desc = "The control unit for an antimatter reactor. Probably safe." - icon = 'icons/obj/machinery/new_ame.dmi' - icon_state = "control" - var/icon_mod = "on" // on, critical, or fuck - anchored = FALSE - density = TRUE - use_power = POWER_USE_IDLE - idle_power_usage = 100 - active_power_usage = 1000 - - var/list/obj/machinery/am_shielding/linked_shielding - var/list/obj/machinery/am_shielding/linked_cores - var/obj/item/am_containment/fueljar - var/update_shield_icons = FALSE - var/stability = 100 - var/exploding = FALSE - var/exploded = FALSE - - var/active = FALSE //On or not - var/fuel_injection = 2 //How much fuel to inject - var/shield_icon_delay = FALSE //delays resetting for a short time - var/reported_core_efficiency = 0 - - var/power_cycle = 0 - var/power_cycle_delay = 4 //How many ticks till produce_power is called - var/stored_core_stability = 0 - var/stored_core_stability_delay = 0 - - var/stored_power = 0 //Power to deploy per tick - -/obj/machinery/power/am_control_unit/assembly_hints(mob/user, distance, is_adjacent) - . += ..() - if(!anchored) - . += "First secure the control unit to the ground with some bolts." - else - . += "Arrange the reactor sections nearby and activate them." - . += "Reactor sections can only be activated if they are near the control unit, but otherwise are not restricted in how they must be placed." - -/obj/machinery/power/am_control_unit/antagonist_hints(mob/user, distance, is_adjacent) - . += ..() - . += "The antimatter engine will quickly destabilize if the fuel injection rate is set too high, causing a large explosion." - -/obj/machinery/power/am_control_unit/Destroy()//Perhaps damage and run stability checks rather than just del on the others - for(var/obj/machinery/am_shielding/AMS in linked_shielding) - AMS.control_unit = null - qdel(AMS) - for(var/obj/machinery/am_shielding/AMS in linked_cores) - AMS.control_unit = null - qdel(AMS) - - QDEL_NULL(fueljar) - return ..() - -/obj/machinery/power/am_control_unit/process() - if(exploding && !exploded) - message_admins("AME explosion at ([x],[y],[z] - JMP) - Last touched by [fingerprintslast]",0,1) - exploded=1 - explosion(get_turf(src),8,10,12,15) - if(src) - qdel(src) - - if(update_shield_icons && !shield_icon_delay) - check_shield_icons() - update_shield_icons = 0 - - if(stat & (NOPOWER|BROKEN) || !active)//can update the icons even without power - return - - if(!fueljar)//No fuel but we are on, shutdown - toggle_power() - //Angry buzz or such here - return - - check_core_stability() - - ADD_TO_POWERNET(src, stored_power) - - power_cycle++ - if(power_cycle >= power_cycle_delay) - produce_power() - power_cycle = 0 - -/obj/machinery/power/am_control_unit/proc/produce_power() - playsound(get_turf(src), 'sound/effects/air_seal.ogg', 25, TRUE) - for(var/thing in linked_cores) - flick("core2", thing) - if(reported_core_efficiency <= 0) - return FALSE //Something is wrong - var/core_damage = 0 - var/fuel = fueljar.usefuel(fuel_injection) - - stored_power = fuel * AM_POWER_FACTOR - // Now check if the cores could deal with it safely, this is done after so you can overload for more power if needed, still a bad idea - if(fuel > (2 * reported_core_efficiency)) //More fuel has been put in than the current cores can deal with - if(prob(50)) - core_damage = 1 //Small chance of damage - if((fuel - reported_core_efficiency) > 5) - core_damage = 5 //Now its really starting to overload the cores - if((fuel - reported_core_efficiency) > 10) - core_damage = 20 //Welp now you did it, they wont stand much of this - if(core_damage == 0) - return - for(var/obj/machinery/am_shielding/AMS in linked_cores) - AMS.stability -= core_damage - AMS.check_stability(TRUE) - playsound(get_turf(src), 'sound/effects/bang.ogg', 50, 1) - -/obj/machinery/power/am_control_unit/emp_act(severity) - . = ..() - - switch(severity) - if(EMP_HEAVY) - if(active) - toggle_power() - stability -= rand(15, 30) - if(EMP_LIGHT) - if(active) - toggle_power() - stability -= rand(10, 20) - check_stability() - -/obj/machinery/power/am_control_unit/ex_act(severity) - switch(severity) - if(1.0) - stability -= 60 - if(2.0) - stability -= 40 - if(3.0) - stability -= 20 - check_stability() - -/obj/machinery/power/am_control_unit/power_change() - ..() - if(stat & NOPOWER && active) - toggle_power() - -/obj/machinery/power/am_control_unit/update_icon() - if(active) - icon_state = "control_[icon_mod]" - else - icon_state = "control" - -/obj/machinery/power/am_control_unit/attackby(obj/item/attacking_item, mob/user) - if(attacking_item.tool_behaviour == TOOL_WRENCH) - if(!anchored) - attacking_item.play_tool_sound(get_turf(src), 75) - user.visible_message("[user.name] secures \the [src] to the floor.", \ - SPAN_NOTICE("You secure the anchor bolts to the floor."), \ - SPAN_NOTICE("You hear a ratcheting noise.")) - anchored = TRUE - update_shield_icons = 2 - check_shield_icons() - connect_to_network() - else if(!LAZYLEN(linked_shielding)) - attacking_item.play_tool_sound(get_turf(src), 75) - user.visible_message("[user] unsecures \the [src].", \ - SPAN_NOTICE("You remove the anchor bolts."), \ - SPAN_NOTICE("You hear a ratcheting noise.")) - anchored = FALSE - disconnect_from_network() - else - to_chat(user, SPAN_WARNING("Once bolted and linked to a shielding unit it \the [src] is unable to be moved!")) - return - - if(istype(attacking_item, /obj/item/am_containment)) - if(fueljar) - to_chat(user, SPAN_WARNING("There is already \a [fueljar] loaded!")) - return - fueljar = attacking_item - user.drop_from_inventory(attacking_item, src) - message_admins("AME loaded with fuel by [user.real_name] ([user.key]) at ([x],[y],[z] - JMP)",0,1) - user.visible_message("[user] loads \the [attacking_item] into \the [src].", - SPAN_NOTICE("You load \the [attacking_item] into \the [src]."), - SPAN_NOTICE("You hear a thunk.")) - return - - if(attacking_item.force >= 20) - user.do_attack_animation(src, attacking_item) - stability -= attacking_item.force / 2 - check_stability() - return ..() - -/obj/machinery/power/am_control_unit/attack_hand(mob/user) - if(anchored) - interact(user) - -/obj/machinery/power/am_control_unit/proc/add_shielding(var/obj/machinery/am_shielding/AMS, var/AMS_linking = 0) - if(!istype(AMS)) - return FALSE - if(!anchored) - return FALSE - if(!AMS_linking && !AMS.link_control(src)) - return FALSE - LAZYDISTINCTADD(linked_shielding, AMS) - update_shield_icons = 1 - return TRUE - -/obj/machinery/power/am_control_unit/proc/remove_shielding(var/obj/machinery/am_shielding/AMS) - if(!istype(AMS)) - return FALSE - LAZYREMOVE(linked_shielding, AMS) - update_shield_icons = 2 - if(active) - toggle_power() - return TRUE - -/obj/machinery/power/am_control_unit/proc/check_stability()//TODO: make it break when low also might want to add a way to fix it like a part or such that can be replaced - if(stability <= 0) - qdel(src) - -/obj/machinery/power/am_control_unit/toggle_power() - active = !active - if(active) - update_use_power(POWER_USE_ACTIVE) - visible_message(SPAN_NOTICE("\The [src] starts up.")) - else - update_use_power(POWER_USE_IDLE) - visible_message(SPAN_NOTICE("\The [src] shuts down.")) - for(var/obj/machinery/am_shielding/AMS in linked_cores) - AMS.update_icon() - update_icon() - -/obj/machinery/power/am_control_unit/proc/check_shield_icons()//Forces icon_update for all shields - if(shield_icon_delay) - return - shield_icon_delay = TRUE - if(update_shield_icons == 2)//2 means to clear everything and rebuild - for(var/obj/machinery/am_shielding/neighbor in cardinalrange(loc)) - if(!neighbor.control_unit) - LAZYADD(linked_shielding, neighbor) - for(var/obj/machinery/am_shielding/AMS in linked_shielding) - if(AMS.processing) - AMS.shutdown_core() - AMS.control_unit = null - addtimer(CALLBACK(src, PROC_REF(ams_do_scan), AMS), 1 SECOND) - LAZYCLEARLIST(linked_shielding) - else - for(var/obj/machinery/am_shielding/AMS in linked_shielding) - AMS.update_icon() - addtimer(CALLBACK(src, PROC_REF(clear_shield_icon_delay)), 2 SECONDS) - -/obj/machinery/power/am_control_unit/proc/ams_do_scan(var/obj/machinery/am_shielding/AMS) - AMS.controllerscan() - AMS.assimilate() - -/obj/machinery/power/am_control_unit/proc/clear_shield_icon_delay() - shield_icon_delay = FALSE - -/obj/machinery/power/am_control_unit/proc/check_core_stability() - if(!LAZYLEN(linked_cores)) - return - stored_core_stability = 0 - for(var/thing in linked_cores) - var/obj/machinery/am_shielding/AMS = thing - if(QDELETED(AMS)) - continue - stored_core_stability += AMS.stability - stored_core_stability /= LAZYLEN(linked_cores) - switch(stored_core_stability) - if(0 to 24) - icon_mod = "fuck" - if(25 to 49) - icon_mod = "critical" - if(50 to INFINITY) - icon_mod = "on" - update_icon() - -/obj/machinery/power/am_control_unit/interact(mob/user) - if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) - if(!issilicon(user)) - user.unset_machine() - user << browse(null, "window=AMcontrol") - return - return ui_interact(user) - -/obj/machinery/power/am_control_unit/ui_interact(mob/user, ui_key = "main") - if(!user) - return - - var/list/fueljar_data = null - if(fueljar) - fueljar_data = list( - "fuel" = fueljar.fuel, - "fuel_max" = initial(fueljar.fuel), - "injecting" = fuel_injection - ) - - var/list/data = list( - "active" = active, - "linked_shields" = LAZYLEN(linked_shielding), - "linked_cores" = LAZYLEN(linked_cores), - "efficiency" = reported_core_efficiency, - "stability" = stored_core_stability, - "stored_power" = stored_power, - "fueljar" = fueljar_data, - "siliconUser" = issilicon(user) - ) - - var/datum/nanoui/ui = SSnanoui.get_open_ui(user, src, ui_key) - if (!ui) - // the ui does not exist, so we'll create a new one - ui = new(user, src, ui_key, "ame.tmpl", "Antimatter Control Unit", 500, data["siliconUser"] ? 465 : 390) - // When the UI is first opened this is the data it will use - ui.set_initial_data(data) - ui.open() - // Auto update every Master Controller tick - ui.set_auto_update(TRUE) - else - // The UI is already open so push the new data to it - ui.push_data(data) - - -/obj/machinery/power/am_control_unit/Topic(href, href_list) - if(..()) - return TRUE - if(href_list["close"]) - if(usr.machine == src) - usr.unset_machine() - return TRUE - //Ignore input if we are broken or guy is not touching us, AI can control from a ways away - if(stat & (BROKEN|NOPOWER)) - usr.unset_machine() - usr << browse(null, "window=AMcontrol") - return - - if(href_list["close"]) - usr << browse(null, "window=AMcontrol") - usr.unset_machine() - return - - if(href_list["togglestatus"]) - toggle_power() - message_admins("AME toggled [active?"on":"off"] by [usr.real_name] ([usr.key]) at ([x],[y],[z] - JMP)",0,1) - return TRUE - - if(href_list["refreshicons"]) - update_shield_icons = 2 // Fuck it - return TRUE - - if(href_list["ejectjar"]) - if(fueljar) - message_admins("AME fuel jar ejected by [usr.real_name] ([usr.key]) at ([x],[y],[z] - JMP)",0,1) - fueljar.forceMove(src.loc) - fueljar = null - //fueljar.control_unit = null currently it does not care where it is - //update_icon() when we have the icon for it - return TRUE - - if(href_list["set_strength"]) - var/newval = input("Enter new injection strength") as num|null - if(isnull(newval)) - return - fuel_injection = newval - fuel_injection = max(1, fuel_injection) - message_admins("AME injection strength set to [fuel_injection] by [usr.real_name] ([usr.key]) at ([x],[y],[z] - JMP)",0,1) - return TRUE - - if(href_list["refreshstability"]) - check_core_stability() - return TRUE - - updateDialog() - return TRUE diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm deleted file mode 100644 index 4083d140520..00000000000 --- a/code/modules/power/antimatter/shielding.dm +++ /dev/null @@ -1,258 +0,0 @@ -//like orange but only checks north/south/east/west for one step -/proc/cardinalrange(var/center) - var/list/things = list() - for(var/direction in GLOB.cardinals) - var/turf/T = get_step(center, direction) - if(!T) - continue - things += T.contents - return things - -/obj/machinery/am_shielding - name = "antimatter reactor section" - desc = "A shielding component for an antimatter reactor. Looks delicate." - icon = 'icons/obj/machinery/new_ame.dmi' - icon_state = "shield" - anchored = TRUE - density = TRUE - dir = NORTH - use_power = POWER_USE_OFF - idle_power_usage = 0 - active_power_usage = 0 - - var/obj/machinery/power/am_control_unit/control_unit = null - var/processing = FALSE //To track if we are in the update list or not, we need to be when we are damaged and if we ever - var/stability = 100 //If this gets low bad things tend to happen - var/efficiency = 1 //How many cores this core counts for when doing power processing, phoron in the air and stability could affect this - var/coredirs = 0 - var/dirs = 0 - var/mapped = FALSE //Set to 1 to ignore usual suicide if it doesn't immediately find a control_unit - -/obj/machinery/am_shielding/mechanics_hints(mob/user, distance, is_adjacent) - . += ..() - . += "Antimatter shielding sections must be beside an anchored control unit or another shielding section. If either are destroyed, the section will disappear." - -/obj/machinery/am_shielding/antagonist_hints(mob/user, distance, is_adjacent) - . += ..() - . += "Antimatter shielding sections are delicate. Attacking the shielding unit with a damaging object will reduce its stability, as will explosions. If the stability hits zero, the reactor may explode." - -// Stupidly easy way to use it in maps -/obj/machinery/am_shielding/map - mapped = TRUE - -/obj/machinery/am_shielding/Initialize(mapload, var/obj/machinery/power/am_control_unit/AMC) - . = ..() - if(!AMC) - if (!mapped) - WARNING("AME sector somehow created without a parent control unit!") - controllerscan() - return - link_control(AMC) - return INITIALIZE_HINT_LATELOAD - -/obj/machinery/am_shielding/LateInitialize() - . = ..() - update_icon() - -/obj/machinery/am_shielding/proc/link_control(var/obj/machinery/power/am_control_unit/AMC) - if(!istype(AMC)) - return FALSE - if(control_unit && control_unit != AMC) - return FALSE // already have one - control_unit = AMC - return control_unit.add_shielding(src, TRUE) - -/obj/machinery/am_shielding/Destroy() - if(control_unit) - control_unit.remove_shielding(src) - if(processing) - shutdown_core() - visible_message(SPAN_WARNING("\The [src] melts!")) - // Might want to have it leave a mess on the floor but no sprites for now - return ..() - -/obj/machinery/am_shielding/proc/controllerscan(var/priorscan = FALSE) - //Make sure we are the only one here - if(!isturf(loc)) - qdel(src) - return - for(var/obj/machinery/am_shielding/AMS in loc.contents - src) - qdel(src) - return - - //Search for shielding first - for(var/obj/machinery/am_shielding/AMS in cardinalrange(src)) - if(AMS && AMS.control_unit && link_control(AMS.control_unit)) - break - - if(!control_unit)//No other guys nearby, look for a control unit - for(var/obj/machinery/power/am_control_unit/AMC in cardinalrange(src)) - if(AMC.add_shielding(src)) - break - if(!mapped) // Prevent rescanning and suicide if it's part of the map - if(!priorscan) - addtimer(CALLBACK(src, PROC_REF(controllerscan), TRUE), 20) - return - qdel(src) - -// Find surrounding unconnected shielding and add them to our controller -/obj/machinery/am_shielding/proc/assimilate() - if(!control_unit) - return // nothing to share :'^[ - for(var/obj/machinery/am_shielding/neighbor in cardinalrange(src)) - if(neighbor && !neighbor.control_unit) - neighbor.link_control(control_unit) - neighbor.assimilate() // recursion is fun, right? - -/obj/machinery/am_shielding/Cross(atom/movable/mover, turf/target, height=1.5, air_group = 0) - if(air_group || (height==0)) - return TRUE - return FALSE - -/obj/machinery/am_shielding/process() - if(!processing) - . = PROCESS_KILL - //TODO: core functions and stability - //TODO: think about checking the airmix for phoron and increasing power output - - -/obj/machinery/am_shielding/emp_act()//Immune due to not really much in the way of electronics. - . = ..() - - return - -/obj/machinery/am_shielding/ex_act(severity) - switch(severity) - if(1.0) - stability -= 80 - if(2.0) - stability -= 40 - if(3.0) - stability -= 20 - check_stability() - -/obj/machinery/am_shielding/update_icon() - ClearOverlays() - coredirs = 0 - dirs = 0 - for(var/direction in GLOB.alldirs) - var/turf/T = get_step(loc, direction) - for(var/obj/machinery/machine in T) - // Detect cores - if(istype(machine, /obj/machinery/am_shielding)) - var/obj/machinery/am_shielding/AMS = machine - if(AMS.control_unit == control_unit && AMS.processing) - coredirs |= direction - - // Detect cores, shielding, and control boxen. - if(direction in GLOB.cardinals) - if(istype(machine, /obj/machinery/am_shielding)) - var/obj/machinery/am_shielding/AMS = machine - if(AMS.control_unit == control_unit) - dirs |= direction - else if(istype(machine, /obj/machinery/power/am_control_unit)) - var/obj/machinery/power/am_control_unit/AMCU = machine - if(AMCU == control_unit) - dirs |= direction - - var/is_core = core_check() - - // Set our overlay - if(!is_core) - icon_state = "shield_[dirs]" - if(is_core) - icon_state = "core[control_unit && control_unit.active]" - if(!processing) - setup_core() - else if(processing) - shutdown_core() - -/obj/machinery/am_shielding/attackby(obj/item/attacking_item, mob/user) - if(!istype(attacking_item) || !user) - return - if(attacking_item.force > 10) - user.do_attack_animation(src, attacking_item) - stability -= attacking_item.force / 2 - check_stability() - return ..() - -//Scans cards for shields or the control unit and if all there it -/obj/machinery/am_shielding/proc/core_check() - for(var/direction in GLOB.alldirs) - var/found_am_device = FALSE - for(var/obj/machinery/machine in get_step(loc, direction)) - if(!machine) - continue - if(istype(machine, /obj/machinery/am_shielding) || istype(machine, /obj/machinery/power/am_control_unit)) - found_am_device = TRUE - break - if(!found_am_device) - return FALSE - return TRUE - -/obj/machinery/am_shielding/proc/setup_core() - processing = TRUE - if(!control_unit) - return - LAZYADD(control_unit.linked_cores, src) - control_unit.reported_core_efficiency += efficiency - -/obj/machinery/am_shielding/proc/shutdown_core() - processing = 0 - if(!control_unit) - return - LAZYREMOVE(control_unit.linked_cores, src) - control_unit.reported_core_efficiency -= efficiency - -/obj/machinery/am_shielding/proc/check_stability(var/injecting_fuel = FALSE) - if(stability > 0) - return - if(injecting_fuel && control_unit) - control_unit.exploding = TRUE - qdel(src) - -/obj/machinery/am_shielding/proc/recalc_efficiency(var/new_efficiency)//tbh still not 100% sure how I want to deal with efficiency so this is likely temp - if(!control_unit || !processing) - return - if(stability < 50) - new_efficiency /= 2 - control_unit.reported_core_efficiency += (new_efficiency - efficiency) - efficiency = new_efficiency - -/obj/item/am_shielding_container - name = "packaged antimatter reactor section" - desc = "A section of antimatter reactor shielding. Do not eat." - icon = 'icons/obj/machinery/antimatter.dmi' - icon_state = "box" - item_state = "electronic" - throwforce = 5 - throw_speed = 1 - throw_range = 2 - -/obj/item/am_shielding_container/mechanics_hints(mob/user, distance, is_adjacent) - . += ..() - . += "To deploy, drop near an antimatter control unit or an existing deployed section and use your multitool on it." - -/obj/item/am_shielding_container/attackby(obj/item/attacking_item, mob/user) - if(attacking_item.tool_behaviour == TOOL_MULTITOOL && isturf(loc)) - if(locate(/obj/machinery/am_shielding) in loc) - to_chat(user, SPAN_WARNING("There is already an antimatter reactor section there.")) - return - - //Search for shielding first - for(var/obj/machinery/am_shielding/AMS in cardinalrange(src)) - if(AMS.control_unit) - new /obj/machinery/am_shielding(loc, AMS.control_unit) - qdel(src) - return - - //No other guys nearby, look for a control unit - var/obj/machinery/power/am_control_unit/AMC = locate() in cardinalrange(src) - if(AMC?.anchored) - new /obj/machinery/am_shielding(loc, AMC) - qdel(src) - else //Stranded & Alone - to_chat(user, SPAN_WARNING("\The [src] couldn't connect to an Antimatter Control Unit.")) - return - - ..() diff --git a/html/changelogs/Bat-Deprecation.yml b/html/changelogs/Bat-Deprecation.yml new file mode 100644 index 00000000000..c40da2596b2 --- /dev/null +++ b/html/changelogs/Bat-Deprecation.yml @@ -0,0 +1,7 @@ +# Your name. +author: Batrachophrenoboocosmomachia +delete-after: True +changes: + - rscdel: "Removes deprecated AME code and associated power spritefiles." + - rscdel: "Removes DNA Modifier NanoUI, replacing interaction behavior with a feedback message." + - rscdel: "Removes old NanoUI templates for objects whose UIs have already been converted to TGUI, or which had already been removed from the server." diff --git a/icons/obj/machinery/antimatter.dmi b/icons/obj/machinery/antimatter.dmi deleted file mode 100644 index 4e20f20e7b0..00000000000 Binary files a/icons/obj/machinery/antimatter.dmi and /dev/null differ diff --git a/icons/obj/machinery/new_ame.dmi b/icons/obj/machinery/new_ame.dmi deleted file mode 100644 index 2c7f6c4ea8a..00000000000 Binary files a/icons/obj/machinery/new_ame.dmi and /dev/null differ diff --git a/icons/obj/machinery/particle_accelerator_old.dmi b/icons/obj/machinery/particle_accelerator_old.dmi deleted file mode 100644 index db412286c08..00000000000 Binary files a/icons/obj/machinery/particle_accelerator_old.dmi and /dev/null differ diff --git a/icons/rust.dmi b/icons/rust.dmi deleted file mode 100644 index fd2ea5a0aae..00000000000 Binary files a/icons/rust.dmi and /dev/null differ diff --git a/icons/rust_old.dmi b/icons/rust_old.dmi deleted file mode 100644 index 7fd6ad57d03..00000000000 Binary files a/icons/rust_old.dmi and /dev/null differ diff --git a/nano/templates/air_alarm.tmpl b/nano/templates/air_alarm.tmpl deleted file mode 100644 index 3dde73a1c9e..00000000000 --- a/nano/templates/air_alarm.tmpl +++ /dev/null @@ -1,216 +0,0 @@ - -

Air Status

-{{if data.has_environment}} - {{for data.environment}} - {{:value.name}}: - {{if value.danger_level == 2}} - - {{else value.danger_level == 1}} - - {{else}} - - {{/if}} - {{:helper.fixed(value.value, 1)}} - {{:value.unit}}
- {{/for}} - Local Status: {{if data.total_danger == 2}} - DANGER: Internals Required - {{else data.total_danger == 1}} - Caution - {{else}} - Optimal - {{/if}} -
- Area Status: {{if data.atmos_alarm}}Atmosphere alert in area{{else}}No alerts{{/if}} -{{else}} - Warning: Cannot obtain air sample for analysis. -{{/if}} -
- - - - - - - - - - - - - -
-
-

Remote Control

-
-

Thermostat

-
-
-
-
- {{:helper.link('Off', null, { 'rcon' : 1}, data.remote_connection && !data.remote_access ? (data.rcon == 1 ? 'yellowButton' : 'disabled') : null, data.rcon == 1 ? 'selected' : null)}} - {{:helper.link('Auto', null, { 'rcon' : 2}, data.remote_connection && !data.remote_access ? (data.rcon == 2 ? 'yellowButton' : 'disabled') : null, data.rcon == 2 ? 'selected' : null)}} - {{:helper.link('On', null, { 'rcon' : 3}, data.remote_connection && !data.remote_access ? (data.rcon == 3 ? 'yellowButton' : 'disabled') : null, data.rcon == 3 ? 'selected' : null)}} -
-
-
- {{:helper.link(data.target_temperature, null, { 'temperature' : 1})}} -
-
-{{if (data.locked && !data.remote_connection) || (data.remote_connection && ! data.remote_access)}} - {{if data.remote_connection}} - (Current remote control settings and alarm status restricts access.) - {{else}} - (Swipe ID card to unlock interface.) - {{/if}} -{{else}} - {{if data.screen != 1}} -
{{:helper.link('Main Menu', null, { 'screen' : 1})}}
- {{/if}} - {{if data.screen == 1}} -
- {{if data.atmos_alarm}} - {{:helper.link('Reset - Area Atmospheric Alarm', null, { 'atmos_reset' : 1})}} - {{else}} - {{:helper.link('Activate - Area Atmospheric Alarm', null, { 'atmos_alarm' : 1})}} - {{/if}} -
-
-
- {{:helper.link('Scrubbers Control', null, { 'screen' : 3})}} -
-
- {{:helper.link('Vents Control', null, { 'screen' : 2})}} -
-
- {{:helper.link('Set Environmental Mode', null, { 'screen' : 4})}} -
-
- {{:helper.link('Sensor Settings', null, { 'screen' : 5})}} -
-
- {{if data.mode==3}} - {{:helper.link('PANIC SIPHON ACTIVE - Turn siphoning off', null, { 'mode' : 1}, null, 'redButton')}} - {{else}} - {{:helper.link('ACTIVATE PANIC SIPHON IN AREA', null, { 'mode' : 3}, null, 'yellowButton')}} - {{/if}} - {{else data.screen == 2}} - {{for data.vents}} -
- {{:value.long_name}}
-
-
- Operating: -
-
- {{:helper.link(value.power ? 'On' : 'Off', null, { 'id_tag' : value.id_tag, 'command' : 'power', 'val' : value.power ? 0 : 1}, null, value.power ? null : 'redButton')}} -
-
-
-
- Operation Mode: -
-
- {{:value.direction == "siphon" ? 'Siphoning' : 'Pressurizing'}} -
-
-
-
- Pressure Checks: -
-
- {{:helper.link('External', null, { 'id_tag' : value.id_tag, 'command' : 'checks', 'val' : value.checks^1}, null, value.checks&1 ? 'selected' : null)}} - {{:helper.link('Internal', null, { 'id_tag' : value.id_tag, 'command' : 'checks', 'val' : value.checks^2}, null, value.checks&2 ? 'selected' : null)}} -
-
-
-
- External Pressure Bound: -
-
- {{:helper.link(helper.fixed(value.external,2), null, { 'id_tag' : value.id_tag, 'command' : 'set_external_pressure'})}} - {{:helper.link('Reset', null, { 'id_tag' : value.id_tag, 'command' : 'reset_external_pressure'})}} -
-
-
- {{empty}} - No vents connected. - {{/for}} - {{else data.screen == 3}} - {{for data.scrubbers}} -
- {{:value.long_name}}
-
-
- Operating: -
-
- {{:helper.link(value.power ? 'On' : 'Off', null, { 'id_tag' : value.id_tag, 'command' : 'power', 'val' : value.power ? 0 : 1}, null, value.power ? null : 'redButton')}} -
-
-
-
- Operation Mode: -
-
- {{:helper.link(value.scrubbing ? 'Scrubbing' : 'Siphoning', null, { 'id_tag' : value.id_tag, 'command' : 'scrubbing', 'val' : value.scrubbing ? 0 : 1}, null, value.scrubbing ? null : 'redButton')}} -
-
-
-
- Filters: -
-
- {{for value.filters :filterValue:filterIndex}} - {{:helper.link(filterValue.name, null, { 'id_tag' : value.id_tag, 'command' : filterValue.command, 'val' : filterValue.val ? 0 : 1}, null, filterValue.val ? 'selected' : null)}} - {{/for}} -
-
-
- {{empty}} - No scrubbers connected. - {{/for}} - {{else data.screen == 4}} -

Environmental Modes

- {{for data.modes}} -
- {{:helper.link(value.name, null, { 'mode' : value.mode }, null, value.selected ? (value.danger ? 'redButton' : 'selected') : null)}} -
- {{/for}} - {{else data.screen == 5}} -

Alarm Threshold

- Partial pressure for gases. - - - - - {{for data.thresholds}} - - - {{for value.settings :settingsValue:settingsIndex}} - - {{/for}} - - {{/for}} -
min2min1max1max2
{{:value.name}} - {{:helper.link(settingsValue.selected >= 0 ? helper.fixed(settingsValue.selected, 2) : "Off", null, { 'command' : 'set_threshold', 'env' : settingsValue.env, 'var' : settingsValue.val })}} -
- {{/if}} -{{/if}} diff --git a/nano/templates/alarm_monitor.tmpl b/nano/templates/alarm_monitor.tmpl deleted file mode 100644 index 4b5459ab48c..00000000000 --- a/nano/templates/alarm_monitor.tmpl +++ /dev/null @@ -1,37 +0,0 @@ - -{{for data.categories}} -

{{:value.category}}

- {{for value.alarms :alarmValue:alarmIndex}} - {{if alarmValue.origin_lost}} - {{:alarmValue.name}} Alarm Origin Lost
- {{else}} - {{:alarmValue.name}}
- {{/if}} - {{if alarmValue.has_cameras || alarmValue.lost_sources != ""}} -
- {{if alarmValue.has_cameras}} -
- {{for alarmValue.cameras :cameraValue:cameraIndex}} - {{if cameraValue.deact}} - {{:helper.link(cameraValue.name + " (deactivated)", '', {}, 'inactive')}} - {{else}} - {{:helper.link(cameraValue.name, '', {'switchTo' : cameraValue.camera})}} - {{/if}} - {{/for}} -
- {{/if}} - {{if alarmValue.lost_sources != ""}} -
-

Lost Alarm Sources: {{:alarmValue.lost_sources}}

-
- {{/if}} -
- {{/if}} - {{empty}} - --All Systems Nominal - {{/for}} -{{/for}} diff --git a/nano/templates/ame.tmpl b/nano/templates/ame.tmpl deleted file mode 100644 index 92501ee4655..00000000000 --- a/nano/templates/ame.tmpl +++ /dev/null @@ -1,56 +0,0 @@ -
-
Status:
- {{if data.active}} -
Injecting
- {{else}} -
Standby
- {{/if}} -  {{:helper.link("Toggle Status", "gear", {"togglestatus":1},null)}} -
-{{if !data.fueljar}} -
No fuel jar detected.
-{{else}} -
-
-
Fuel:
-
{{:data.fueljar.fuel}}/{{:data.fueljar.fuel_max}}
- {{:helper.link("Eject", "eject", {"ejectjar":1},null,'floatRight')}} -
-
-
Injecting:
-
- {{:helper.link(data.fueljar.injecting+" units", 'carat-2-n-s', {'set_strength': 1})}} -
-
-
-{{/if}} -
-
-
Stability:
-
- {{:helper.displayBar(data.stability,0,100,"good")}} - {{:data.stability}}% -
-
-
-
Shielding Count:
-
{{:data.linked_shields}}
-
-
-
Cores:
-
{{:data.linked_cores}}
- {{:helper.link("Refresh Parts",null,{"refreshicons" : 1},(data.active?"disabled":null),'floatRight')}} -
-
-
Current Efficiency:
-
{{:data.efficiency}}
-
-
-
Average Efficiency:
-
{{:data.stability}}
-
-
-
Last Produced:
-
{{:data.stored_power}}
-
-
\ No newline at end of file diff --git a/nano/templates/atmos_alert.tmpl b/nano/templates/atmos_alert.tmpl deleted file mode 100644 index a36b1bb9baf..00000000000 --- a/nano/templates/atmos_alert.tmpl +++ /dev/null @@ -1,18 +0,0 @@ -

Priority Alerts

-{{for data.priority_alarms}} -
- {{:value.name}} {{:helper.link('Reset', null, {'clear_alarm' : value.ref})}} -
-{{empty}} - No priority alerts detected. -{{/for}} - -

Minor Alerts

-{{for data.minor_alarms}} -
- {{:value.name}} {{:helper.link('Reset', null, {'clear_alarm' : value.ref})}} -
-{{empty}} - No minor alerts detected. -{{/for}} - diff --git a/nano/templates/botany_editor.tmpl b/nano/templates/botany_editor.tmpl deleted file mode 100644 index afd24f0f811..00000000000 --- a/nano/templates/botany_editor.tmpl +++ /dev/null @@ -1,56 +0,0 @@ - - -{{if data.activity}} - Scanning... -{{else}} -

Buffered Genetic Data

- {{if data.disk}} -
-
- Source: -
-
- {{:data.sourceName}} -
-
- Gene decay: -
-
- {{if data.degradation <= 100}} - {{:data.degradation}}% - {{else}} - FURTHER AMENDMENTS NONVIABLE - {{/if}} -
-
- Locus: -
-
- {{:data.locus}} -
- {{:helper.link('Eject Disk', 'circle-arrow-e', {'eject_disk' : 1}, null)}} -
- {{else}} -
No disk loaded.
- {{/if}} -

Loaded Material

- {{if data.loaded}} -
-
- Target: -
-
- {{:data.loaded}} -
- {{if data.degradation <= 100}} - {{:helper.link('Apply Gene Mods', 'gear', {'apply_gene' : 1}, null)}} - {{/if}} - {{:helper.link('Eject Target', 'circle-arrow-e', {'eject_packet' : 1}, null)}} -
- {{else}} -
No target seed packet loaded
- {{/if}} -{{/if}} \ No newline at end of file diff --git a/nano/templates/botany_isolator.tmpl b/nano/templates/botany_isolator.tmpl deleted file mode 100644 index c0e4d4a6131..00000000000 --- a/nano/templates/botany_isolator.tmpl +++ /dev/null @@ -1,73 +0,0 @@ - - -{{if data.activity}} - Scanning... -{{else}} -

Buffered Genetic Data

- {{if data.hasGenetics}} -
-
- Source: -
-
- {{:data.sourceName}} -
-
- Gene decay: -
-
- {{:data.degradation}}% -
-
- {{if data.disk}} - {{for data.geneMasks}} -
-
- {{:value.mask}} -
-
- {{:helper.link('Extract', 'circle-arrow-s', {'get_gene' : value.tag}, null)}} -
-
- {{empty}} -
Data error. Genetic record corrupt.
- {{/for}} -
-
- {{:helper.link('Eject Loaded Disk', 'circle-arrow-e', {'eject_disk' : 1}, null)}} - {{:helper.link('Clear Genetic Buffer', 'gear', {'clear_buffer' : 1}, null)}} -
- {{else}} -
No disk inserted.
- {{/if}} - {{else}} -
No data buffered.
- {{if data.disk}} -
-
- {{:helper.link('Eject Loaded Disk', 'circle-arrow-e', {'eject_disk' : 1}, null)}} -
- {{else}} -
No disk inserted.
- {{/if}} - {{/if}} -

Loaded Material

- {{if data.loaded}} -
-
- Packet loaded: -
-
- {{:data.loaded}} -
-
- {{:helper.link('Process Genome', 'gear', {'scan_genome' : 1}, null)}}{{:helper.link('Eject Packet', 'circle-arrow-e', {'eject_packet' : 1}, null)}} -
-
- {{else}} -
No seeds loaded.
- {{/if}} -{{/if}} \ No newline at end of file diff --git a/nano/templates/cryo.tmpl b/nano/templates/cryo.tmpl deleted file mode 100644 index 2106374dd11..00000000000 --- a/nano/templates/cryo.tmpl +++ /dev/null @@ -1,150 +0,0 @@ - -

Cryo Cell Status

- -
- {{if !data.hasOccupant}} -
Cell Unoccupied
- {{else}} -
- {{:data.occupant.name}} | {{:helper.round(data.occupant.bodyTemperature - 273.15)}} C =>  - {{if data.occupant.stat == 0}} - Conscious - {{else data.occupant.stat == 1}} - Unconscious - {{else}} - DEAD - {{/if}} -
- - {{if data.occupant.stat < 2}} -
-
Brain Activity:
-
{{:data.occupant.brain_activity}}
-
-
-
Pulse rate:
-
{{:data.occupant.pulse}}bpm
-
-
-
Blood Pressure:
-
{{:data.occupant.blood_pressure}} ({{:data.occupant.blood_o2}}% blood oxy)
-
-
-
-
=> Genetic Damage:
- {{if data.occupant.cloneLoss > 50}} - Severe - {{else data.occupant.cloneLoss > 25}} - Significant - {{else data.occupant.cloneLoss > 10}} - Moderate - {{else data.occupant.cloneLoss > 1}} - Minor - {{else}} - None. - {{/if}} -
- -
-
=> Physical Trauma:
- {{if data.occupant.bruteLoss > 50}} - Severe - {{else data.occupant.bruteLoss > 25}} - Significant - {{else data.occupant.bruteLoss > 10}} - Moderate - {{else data.occupant.bruteLoss > 1}} - Minor - {{else}} - None. - {{/if}} -
- -
-
=> Burn Severity:
- {{if data.occupant.fireLoss > 50}} - Severe - {{else data.occupant.fireLoss > 25}} - Significant - {{else data.occupant.fireLoss > 10}} - Moderate - {{else data.occupant.fireLoss > 1}} - Minor - {{else}} - None. - {{/if}} -
- -
-
=> Organ Damage:
- {{if data.occupant.toxLoss > 50}} - Major systemic organ failure detected. - {{else data.occupant.toxLoss > 25}} - Significant. - {{else data.occupant.toxLoss > 10}} - Moderate. - {{else data.occupant.toxLoss > 1}} - Minor. - {{else}} - None. - {{/if}} -
- -
-
=> Oxygenation:
- {{if data.occupant.oxyLoss > 50}} - Severe oxygen deprivation. - {{else data.occupant.oxyLoss > 25}} - Moderate oxygen deprivation. - {{else data.occupant.oxyLoss > 10}} - Low oxygen deprivation. - {{else}} - Normal oxygenation levels. - {{/if}} -
- {{/if}} - {{/if}} -
-
-
Cell Temperature:
- {{:data.cellTemperature}} K -
-
-
- -

Cryo Cell Operation

-
-
- Cryo Cell Status: -
-
- {{:helper.link('On', 'power', {'switchOn' : 1}, data.isOperating ? 'selected' : null)}}{{:helper.link('Off', 'close', {'switchOff' : 1}, data.isOperating ? null : 'selected')}} -
-
- {{:helper.link('Eject Occupant', 'arrowreturnthick-1-s', {'ejectOccupant' : 1}, data.hasOccupant ? null : 'disabled')}} -
-
-
 
-
-
- Beaker: -
-
- {{if data.isBeakerLoaded}} - {{:data.beakerLabel ? data.beakerLabel : 'No label'}}
- {{if data.beakerVolume}} - {{:data.beakerVolume}} units remaining
- {{else}} - Beaker is empty - {{/if}} - {{else}} - No beaker loaded - {{/if}} -
-
- {{:helper.link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, data.isBeakerLoaded ? null : 'disabled')}} -
-
\ No newline at end of file diff --git a/nano/templates/disease_splicer.tmpl b/nano/templates/disease_splicer.tmpl deleted file mode 100644 index d2e874afe67..00000000000 --- a/nano/templates/disease_splicer.tmpl +++ /dev/null @@ -1,125 +0,0 @@ -
-
- {{:helper.link('Close', 'gear', {'close' : 1}, null, 'fixedLeft')}} -
-
- -{{if data.busy}} -
The Splicer is currently busy.
-
-
{{:data.busy}}
-
-

- Thank you for your patience! -

-{{else}} -
-

Virus Dish

-
-
- {{:helper.link('Eject Dish', 'eject', { 'eject' : 1 }, data.dish_inserted ? null : 'disabled')}} -
- -
-
- Growth Density: -
-
- {{:helper.displayBar(data.growth, 0, 100, (data.growth >= 50) ? 'good' : data.growth >= 25 ? 'average' : 'bad', data.growth + '%' )}} -
-
- -
-
- {{if !data.info}} -
- Symptoms: -
- {{/if}} -
- {{if data.info}} - {{:data.info}} - {{else}} - {{for data.effects}} -
-
- ({{:value.stage}}) {{:value.name}} - {{if value.badness > 1}} - Dangerous - {{/if}} -
-
- {{/for}} - {{/if}} -
-
- {{if data.affected_species && !data.info}} -
-
- Affected Species: -
-
- {{:data.affected_species}} -
-
- {{/if}} -
- {{if data.effects}} -
- CAUTION: Reverse engineering will destroy the viral sample. -
-
-
- Reverse Engineering: -
-
- {{for data.effects}} - {{:helper.link(value.stage, 'transferthick-e-w', { 'grab' : value.reference })}} - {{/for}} -
-
- {{:helper.link('Species', 'transferthick-e-w', { 'affected_species' : 1 })}} -
-
- {{/if}} - -
-

Storage

-
- -
-
- Memory Buffer: -
-
- {{if data.buffer}} - {{:data.buffer.name}} ({{:data.buffer.stage}}) - {{else}} - {{if data.species_buffer}} - {{:data.species_buffer}} - {{else}} - Empty - {{/if}} - {{/if}} -
-
- {{:helper.link('Save To Disk', 'disk', { 'disk' : 1 }, (data.buffer || data.species_buffer) ? null : 'disabled')}} - {{if data.species_buffer}} - {{:helper.link('Splice Species', 'pencil', { 'splice' : 5 }, (data.species_buffer && !data.info) ? null : 'disabled')}} - {{else data.buffer}} - {{:helper.link('Splice #1', 'pencil', { 'splice' : 1 }, data.buffer.stage > 1 ? 'disabled' : null)}} - {{:helper.link('Splice #2', 'pencil', { 'splice' : 2 }, data.buffer.stage > 2 ? 'disabled' : null)}} - {{:helper.link('Splice #3', 'pencil', { 'splice' : 3 }, data.buffer.stage > 3 ? 'disabled' : null)}} - {{:helper.link('Splice #4', 'pencil', { 'splice' : 4 }, data.buffer.stage > 4 ? 'disabled' : null)}} - {{/if}} -{{/if}} - - - - - - - - - - diff --git a/nano/templates/dish_incubator.tmpl b/nano/templates/dish_incubator.tmpl deleted file mode 100644 index ae887e6986e..00000000000 --- a/nano/templates/dish_incubator.tmpl +++ /dev/null @@ -1,123 +0,0 @@ -
-
- {{:helper.link('Close', 'gear', {'close' : '1'}, null, 'fixedLeft')}} -
-
- -
-

Environmental Conditions

-
-
-
- Power: -
-
- {{:helper.link('On', 'power', { 'power' : 1 }, !data.dish_inserted ? 'disabled' : data.on ? 'selected' : null)}}{{:helper.link('Off', 'close', { 'power' : 1 }, data.on ? null : 'selected')}} -
-
-
- {{:helper.link('Add Radiation', 'radiation', {'rad' : 1})}} - {{:helper.link('Flush System', 'trash', {'flush' : 1}, data.system_in_use ? null : 'disabled')}} -
- -
-
-
- Virus Food: -
-
- {{:helper.displayBar(data.food_supply, 0, 100, 'good', data.food_supply)}} -
-
-
-
- Radiation Level: -
-
- {{:helper.displayBar(data.radiation, 0, 100, (data.radiation >= 50) ? 'bad' : (data.growth >= 25) ? 'average' : 'good')}} -
- {{:helper.formatNumber(data.radiation * 10000)}} µSv -
-
-
-
- Toxicity: -
-
- {{:helper.displayBar(data.toxins, 0, 100, (data.toxins >= 50) ? 'bad' : (data.toxins >= 25) ? 'average' : 'good', data.toxins + '%')}} -
-
-
- -
-

Chemicals

-
-
- {{:helper.link('Eject Chemicals', 'eject', { 'ejectchem' : 1 }, data.chemicals_inserted ? null : 'disabled')}} - {{:helper.link('Breed Virus', 'circle-arrow-s', { 'virus' : 1 }, data.can_breed_virus ? null : 'disabled')}} -
- -{{if data.chemicals_inserted}} -
-
- Volume: -
-
- {{:helper.displayBar(data.chemical_volume, 0, data.max_chemical_volume, 'good', data.chemical_volume + ' / ' + data.max_chemical_volume)}} -
-
-
-
- Breeding Environment: -
-
- - {{:!data.dish_inserted ? 'N/A' : data.can_breed_virus ? 'Suitable' : 'No hemolytic samples detected'}} - - {{if data.blood_already_infected}} -
- CAUTION: Viral infection detected in blood sample. - {{/if}} -
-
-{{else}} -
- No chemicals inserted. -
-{{/if}} - -
-

Virus Dish

-
-
- {{:helper.link('Eject Dish', 'eject', {'ejectdish' : 1}, data.dish_inserted ? null : 'disabled')}} -
- -{{if data.dish_inserted}} - {{if data.virus}} -
-
- Growth Density: -
-
- {{:helper.displayBar(data.growth, 0, 100, (data.growth >= 50) ? 'good' : (data.growth >= 25) ? 'average' : 'bad', data.growth + '%' )}} -
-
-
-
- Infection Rate: -
-
- {{:data.analysed ? data.infection_rate : "Unknown"}} -
-
- {{else}} -
- No virus detected. -
- {{/if}} -{{else}} -
- No dish loaded. -
-{{/if}} diff --git a/nano/templates/dna_modifier.tmpl b/nano/templates/dna_modifier.tmpl deleted file mode 100644 index 600600fd23c..00000000000 --- a/nano/templates/dna_modifier.tmpl +++ /dev/null @@ -1,318 +0,0 @@ - -

Status

- -
- {{if !data.hasOccupant}} -
Cell Unoccupied
- {{else}} -
- {{:data.occupant.name}} =>  - {{if data.occupant.stat == 0}} - Conscious - {{else data.occupant.stat == 1}} - Unconscious - {{else}} - DEAD - {{/if}} -
- - {{if !data.occupant.isViableSubject || !data.occupant.uniqueIdentity || !data.occupant.structuralEnzymes}} -
- The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure. -
- {{else data.occupant.stat < 2}} -
-
Health:
- {{if data.occupant.health >= 0}} - {{:helper.displayBar(data.occupant.health, 0, data.occupant.maxhealth, 'good')}} - {{else}} - {{:helper.displayBar(data.occupant.health, 0, data.occupant.minHealth, 'average alignRight')}} - {{/if}} -
{{:helper.round(data.occupant.health)}}
-
- -
-
Radiation:
- {{:helper.displayBar(data.occupant.radiationLevel, 0, 100, 'average')}} -
{{:helper.round(data.occupant.radiationLevel)}}
-
- -
-
Unique Enzymes:
-
{{:data.occupant.uniqueEnzymes ? data.occupant.uniqueEnzymes : 'Unknown'}}
-
- - - {{/if}} - {{/if}} -
-
- -

Operations

-
- {{:helper.link('Modify U.I.', 'link', {'selectMenuKey' : 'ui'}, data.selectedMenuKey == 'ui' ? 'selected' : null)}} - {{:helper.link('Modify S.E.', 'link', {'selectMenuKey' : 'se'}, data.selectedMenuKey == 'se' ? 'selected' : null)}} - {{:helper.link('Transfer Buffers', 'disk', {'selectMenuKey' : 'buffer'}, data.selectedMenuKey == 'buffer' ? 'selected' : null)}} - {{:helper.link('Rejuvenators', 'plusthick', {'selectMenuKey' : 'rejuvenators'}, data.selectedMenuKey == 'rejuvenators' ? 'selected' : null)}} -
- -
 
- -{{if !data.selectedMenuKey || data.selectedMenuKey == 'ui'}} -

Modify Unique Identifier

- {{:helper.displayDNABlocks(data.occupant.uniqueIdentity, data.selectedUIBlock, data.selectedUISubBlock, data.dnaBlockSize, 'UI')}} -
-
-
- Target: -
-
- {{:helper.link('-', null, {'changeUITarget' : 0}, (data.selectedUITarget > 0) ? null : 'disabled')}} -
 {{:data.selectedUITargetHex}} 
- {{:helper.link('+', null, {'changeUITarget' : 1}, (data.selectedUITarget < 15) ? null : 'disabled')}} -
-
-
-
- {{:helper.link('Irradiate Block', 'radiation', {'pulseUIRadiation' : 1}, !data.occupant.isViableSubject ? 'disabled' : null)}} -
-
-{{else data.selectedMenuKey == 'se'}} -

Modify Structural Enzymes

- {{:helper.displayDNABlocks(data.occupant.structuralEnzymes, data.selectedSEBlock, data.selectedSESubBlock, data.dnaBlockSize, 'SE')}} -
-
-
- {{:helper.link('Irradiate Block', 'radiation', {'pulseSERadiation' : 1}, !data.occupant.isViableSubject ? 'disabled' : null)}} -
-
-{{else data.selectedMenuKey == 'buffer'}} -

Transfer Buffers

- {{for data.buffers}} -

Buffer {{:(index + 1)}}

-
-
-
- Load Data: -
-
- {{:helper.link('Subject U.I.', 'link', {'bufferOption' : 'saveUI', 'bufferId' : (index + 1)}, !data.hasOccupant ? 'disabled' : null)}} - {{:helper.link('Subject U.I. + U.E.', 'link', {'bufferOption' : 'saveUIAndUE', 'bufferId' : (index + 1)}, !data.hasOccupant ? 'disabled' : null)}} - {{:helper.link('Subject S.E.', 'link', {'bufferOption' : 'saveSE', 'bufferId' : (index + 1)}, !data.hasOccupant ? 'disabled' : null)}} - {{:helper.link('From Disk', 'disk', {'bufferOption' : 'loadDisk', 'bufferId' : (index + 1)}, (!data.hasDisk || !data.disk.data) ? 'disabled' : null)}} -
-
- {{if value.data}} -
-
- Label: -
-
- {{:helper.link(value.label, 'document-b', {'bufferOption' : 'changeLabel', 'bufferId' : (index + 1)})}} -
-
-
-
- Subject: -
-
- {{:value.owner ? value.owner : 'Unknown'}} -
-
-
-
- Stored Data: -
-
- {{:value.data == 'ui' ? 'Unique Identifiers' : 'Structural Enzymes'}} - {{:value.ue ? ' + Unique Enzymes' : ''}} -
-
- {{else}} -
-
- This buffer is empty. -
-
- {{/if}} -
-
- Options: -
-
- {{:helper.link('Clear', 'trash', {'bufferOption' : 'clear', 'bufferId' : (index + 1)}, !value.data ? 'disabled' : null)}} - {{:helper.link('Injector', data.isInjectorReady ? 'pencil' : 'clock', {'bufferOption' : 'createInjector', 'bufferId' : (index + 1)}, (!data.isInjectorReady || !value.data) ? 'disabled' : null)}} - {{:helper.link('Block Injector', data.isInjectorReady ? 'pencil' : 'clock', {'bufferOption' : 'createInjector', 'bufferId' : (index + 1), 'createBlockInjector' : 1}, (!data.isInjectorReady || !value.data) ? 'disabled' : null)}} - {{:helper.link('Transfer', 'radiation', {'bufferOption' : 'transfer', 'bufferId' : (index + 1)}, (!data.hasOccupant || !value.data) ? 'disabled' : null)}} - {{:helper.link('Save To Disk', 'disk', {'bufferOption' : 'saveDisk', 'bufferId' : (index + 1)}, (!value.data || !data.hasDisk) ? 'disabled' : null)}} -
-
-
- {{/for}} - -

Data Disk

-
- {{if data.hasDisk}} - {{if data.disk.data}} -
-
- Label: -
-
- {{:data.disk.label ? data.disk.label : 'No Label'}} -
-
-
-
- Subject: -
-
- {{:data.disk.owner ? data.disk.owner : 'Unknown'}} -
-
-
-
- Stored Data: -
-
- {{:data.disk.data == 'ui' ? 'Unique Identifiers' : 'Structural Enzymes'}} - {{:data.disk.ue ? ' + Unique Enzymes' : ''}} -
-
- {{else}} -
-
- Disk is blank. -
-
- {{/if}} - {{else}} -
-
- No disk inserted. -
-
- {{/if}} -
-
- Options: -
-
- {{:helper.link('Wipe Disk', 'trash', {'bufferOption' : 'wipeDisk'}, (!data.hasDisk || !data.disk.data) ? 'disabled' : null)}} - {{:helper.link('Eject Disk', 'eject', {'bufferOption' : 'ejectDisk'}, !data.hasDisk ? 'disabled' : null)}} -
-
-
-{{else data.selectedMenuKey == 'rejuvenators'}} -

Rejuvenators

-
-
- Inject: -
-
- {{:helper.link('5', 'pencil', {'injectRejuvenators' : 5}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} - {{:helper.link('10', 'pencil', {'injectRejuvenators' : 10}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} - {{:helper.link('20', 'pencil', {'injectRejuvenators' : 20}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} - {{:helper.link('30', 'pencil', {'injectRejuvenators' : 30}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} - {{:helper.link('50', 'pencil', {'injectRejuvenators' : 50}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} -
-
-
 
-
-
- Beaker: -
-
- {{if data.isBeakerLoaded}} - {{:data.beakerLabel ? data.beakerLabel : 'No label'}}
- {{if data.beakerVolume}} - {{:data.beakerVolume}} units remaining
- {{else}} - Beaker is empty - {{/if}} - {{else}} - No beaker loaded - {{/if}} -
-
- {{:helper.link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, data.isBeakerLoaded ? null : 'disabled')}} -
-
-{{/if}} - -
 
- -{{if !data.selectedMenuKey || data.selectedMenuKey == 'ui' || data.selectedMenuKey == 'se'}} -

Radiation Emitter Settings

-
-
- Intensity: -
-
- {{:helper.link('-', null, {'radiationIntensity' : 0}, (data.radiationIntensity > 1) ? null : 'disabled')}} -
 {{:data.radiationIntensity}} 
- {{:helper.link('+', null, {'radiationIntensity' : 1}, (data.radiationIntensity < 10) ? null : 'disabled')}} -
-
-
-
- Duration: -
-
- {{:helper.link('-', null, {'radiationDuration' : 0}, (data.radiationDuration > 2) ? null : 'disabled')}} -
 {{:data.radiationDuration}} 
- {{:helper.link('+', null, {'radiationDuration' : 1}, (data.radiationDuration < 20) ? null : 'disabled')}} -
-
-
-
-   -
-
- {{:helper.link('Pulse Radiation', 'radiation', {'pulseRadiation' : 1}, !data.hasOccupant ? 'disabled' : null)}} -
-
-{{/if}} - -
 
- -
- -
-
- Occupant: -
-
- {{:helper.link('Eject Occupant', 'eject', {'ejectOccupant' : 1}, data.locked || !data.hasOccupant || data.irradiating ? 'disabled' : null)}} -
-
-
-
- Door Lock: -
-
- {{:helper.link('Engaged', 'locked', {'toggleLock' : 1}, data.locked ? 'selected' : !data.hasOccupant ? 'disabled' : null)}} - {{:helper.link('Disengaged', 'unlocked', {'toggleLock' : 1}, !data.locked ? 'selected' : data.irradiating ? 'disabled' : null)}} -
-
- -{{if data.irradiating}} -
-
-

Irradiating Subject

-

For {{:data.irradiating}} seconds.

-
-
-{{/if}} - diff --git a/nano/templates/exosuit_control.tmpl b/nano/templates/exosuit_control.tmpl deleted file mode 100644 index 0d8d60b166a..00000000000 --- a/nano/templates/exosuit_control.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -{{if data.screen == 0}} - {{for data.beacons}} -
- Name: {{:value.name}}
- Integrity: {{:value.health}}%
- Cell charge: {{:value.charge}}
- Airtank: {{:value.air}}kPa
- Pilot: {{:value.pilot || "None"}}
- Location: {{:value.location}}
- Active equipment: {{:value.active}}
- {{:helper.link("Send Message", null, {'send_message' : value.ref}, (value.pilot) ? null : 'disabled')}} - {{:helper.link("Get Log", null, {'get_log' : value.ref})}} - {{if value.control == 1}} - {{:helper.link("Terminate", null, {'shock' : value.ref})}} - {{/if}} - {{empty}} -
- No active beacons detected - {{/for}} -{{else}} -

Log Contents



- {{:helper.link("Return", null, {'return' : 0})}}
- {{:data.log}} -{{/if}} \ No newline at end of file diff --git a/nano/templates/generator.tmpl b/nano/templates/generator.tmpl deleted file mode 100644 index 150884187f4..00000000000 --- a/nano/templates/generator.tmpl +++ /dev/null @@ -1,142 +0,0 @@ -
-
- Total Output: -
-
- {{:helper.displayBar(data.totalOutput, 0, data.maxTotalOutput)}} -
-
- {{:helper.fixed(data.totalOutput, 1)}} kW -
-
-
-
- Thermal Output: -
-
- {{:helper.fixed(data.thermalOutput, 1)}} kW -
-
-
- -{{if data.circConnected}} -
- - - - - -
-
-

Primary Circulator ({{:data.primaryDir}})

-
-
- Turbine Output: -
-
- {{:helper.fixed(data.primaryOutput, 1)}} kW -
-
-
-
- Flow Capacity: -
-
- {{:helper.fixed(data.primaryFlowCapacity, 1)}} % -
-
-
-
-
- Inlet Pressure: -
-
- {{:helper.fixed(data.primaryInletPressure, 1)}} kPa -
-
-
-
- Inlet Temperature: -
-
- {{:helper.fixed(data.primaryInletTemperature, 1)}} K -
-
-
-
-
- Outlet Pressure: -
-
- {{:helper.fixed(data.primaryOutletPressure, 1)}} kPa -
-
-
-
- Outlet Temperature: -
-
- {{:helper.fixed(data.primaryOutletTemperature, 1)}} K -
-
-
-
-
-

Secondary Circulator ({{:data.secondaryDir}})

-
-
- Turbine Output: -
-
- {{:helper.fixed(data.secondaryOutput, 1)}} kW -
-
-
-
- Flow Capacity: -
-
- {{:helper.fixed(data.secondaryFlowCapacity, 1)}} % -
-
-
-
-
- Inlet Pressure: -
-
- {{:helper.fixed(data.secondaryInletPressure, 1)}} kPa -
-
-
-
- Inlet Temperature: -
-
- {{:helper.fixed(data.secondaryInletTemperature, 1)}} K -
-
-
-
-
- Outlet Pressure: -
-
- {{:helper.fixed(data.secondaryOutletPressure, 1)}} kPa -
-
-
-
- Outlet Temperature: -
-
- {{:helper.fixed(data.secondaryOutletTemperature, 1)}} K -
-
-
-
-{{else}} -
- ERROR: Both circulators must be connected! -
-{{/if}} diff --git a/nano/templates/merchant.tmpl b/nano/templates/merchant.tmpl deleted file mode 100644 index 686883ecaad..00000000000 --- a/nano/templates/merchant.tmpl +++ /dev/null @@ -1,66 +0,0 @@ -{{if data.temp }} -
- - - -
{{:data.temp }}
{{:helper.link('Continue', null, {'PRG_continue' : 1})}}
-
-{{else}} -

Balance: {{:data.bank}} Credits


- {{if data.mode}} -
-
{{:helper.link('<=', null, {'PRG_scroll' : 'left'})}}
-
{{:helper.link('Main Menu', null, {'PRG_main_menu' : 1})}}
-
{{:helper.link('=>', null, {'PRG_scroll' : 'right'})}}
-
-

{{:data.traderName}}


- Signal Origin: {{:data.origin}}
- {{if data.last_comms}} - {{:data.last_comms}} - {{/if}} -
-
- {{if data.hailed}} - {{if data.trades}} - {{:helper.link('Go Back', null, {'PRG_show_trades' : 1})}} -

-

Trade Goods

- - {{for data.trades}} - - - - - - {{/for}} -
{{:value}}{{:helper.link('Trade', null, {'PRG_offer_item' : index})}}{{:helper.link('Money', null, {'PRG_offer_money_for_item' : index})}}{{:helper.link('Bulk', null, {'PRG_bulk_money_for_item' : index})}}{{:helper.link('Ask Cost', null, {'PRG_how_much_do_you_want' : index})}}
- {{else}} - {{:helper.link('List Goods', null, {'PRG_show_trades' : 1})}}

- {{:helper.link('Sell Items', null, {'PRG_sell_items' : 1})}}

- {{:helper.link('Compliment', null, {'PRG_compliment' : 1})}}

- Pay them to stay longer: {{:helper.link('100', null, {'PRG_bribe' : 100})}} {{:helper.link('500', null, {'PRG_bribe' : 500})}} {{:helper.link('1000', null, {'PRG_bribe' : 1000})}}

- {{:helper.link('Ask What They Want', null, {'PRG_what_do_you_want': 1})}}

- {{:helper.link('Insult', null, {'PRG_insult' : 1})}}

- {{/if}} - {{else}} - {{:helper.link('Hail',null,{'PRG_hail': 1})}} - {{/if}} - {{else}} -
-

Main Menu

- - - - - - -
{{:helper.link('Open Communications', null, {'PRG_merchant_list' : 1})}}
{{:helper.link('Test Fire Transporter', null, {'PRG_test_fire': 1 })}}
{{:helper.link('Connect Pad', null, {'PRG_connect_pad' : 1})}} - {{if data.pad}} - Connected - {{else}} - DISCONNECTED - {{/if}} -
{{:helper.link('Deposit Money', null, {'PRG_transfer_to_bank' : 1})}}
{{:helper.link('Retrieve Money', null, {'PRG_get_money' : 1})}}
-
- {{/if}} -{{/if}} diff --git a/nano/templates/news_browser.tmpl b/nano/templates/news_browser.tmpl deleted file mode 100644 index f4fda489c22..00000000000 --- a/nano/templates/news_browser.tmpl +++ /dev/null @@ -1,74 +0,0 @@ -{{if data.message}} -
- {{:data.message}} - {{:helper.link('CLEAR', null, { "PRG_clearmessage" : 1 })}} -
-{{/if}} -{{if data.article}} - Viewing: {{:data.title}}
- {{:helper.link('CLOSE', null, { "PRG_reset" : 1 })}} - {{:helper.link('SAVE', null, { "PRG_savearticle" : 1 })}} -

- - {{:data.article}} -{{else data.download_running}} - Downloading file...

-
-
- Progress: -
-
- {{:helper.displayBar(data.download_progress, 0, data.download_maxprogress, 'good')}} - {{:data.download_progress}} / {{:data.download_maxprogress}} GQ -
-
- Download speed: -
-
- {{:data.download_rate}} GQ/s -
-
- Controls: -
-
- {{:helper.link('ABORT', null, { "PRG_reset" : 1 })}} -
-
-{{else}} -

Listing available files

-
-
- Show archived files: -
-
- {{if data.showing_archived}} - {{:helper.link('YES', null, { "PRG_toggle_archived" : 1 })}} - {{else}} - {{:helper.link('NO', null, { "PRG_toggle_archived" : 1 })}} - {{/if}} -
-
-

- {{for data.all_articles}} -
-
- Name: -
-
- {{:value.name}} -
-
- Size: -
-
- {{:value.size}} GQ -
-
- Actions: -
-
- {{:helper.link('OPEN', null, { "PRG_openarticle" : value.uid })}} -
-
- {{/for}} -{{/if}} \ No newline at end of file diff --git a/nano/templates/ntnet_dos.tmpl b/nano/templates/ntnet_dos.tmpl deleted file mode 100644 index 1ddf8eb06e7..00000000000 --- a/nano/templates/ntnet_dos.tmpl +++ /dev/null @@ -1,22 +0,0 @@ -{{:helper.syndicateMode()}} -{{if data.error}} - ##SYSTEM ERROR: {{:data.error}}{{:helper.link('RESET', null, { 'PRG_reset' : 1 })}} -{{else data.target}} - ##DoS traffic generator active. Tx: {{:data.speed}}GQ/s
- {{for data.dos_strings}} - {{:value}}
- {{/for}} - {{:helper.link('ABORT', null, { 'PRG_reset' : 1 })}} -{{else}} - ##DoS traffic generator ready. Select target device.
- {{if data.focus}} - Targeted device ID: {{:data.focus}} - {{else}} - Targeted device ID: None - {{/if}} - {{:helper.link('EXECUTE', null, { 'PRG_execute' : 1 })}}
- Detected devices on network:
- {{for data.relays}} - {{:helper.link(value , null, { 'PRG_target_relay' : value })}} - {{/for}} -{{/if}} \ No newline at end of file diff --git a/nano/templates/ntnet_transfer.tmpl b/nano/templates/ntnet_transfer.tmpl deleted file mode 100644 index e7a9da892a7..00000000000 --- a/nano/templates/ntnet_transfer.tmpl +++ /dev/null @@ -1,94 +0,0 @@ -{{if data.error}} -
-

An error has occured during operation...

- Additional information: {{:data.error}}
- {{:helper.link('Clear', null, {'PRG_reset' : 1})}} -
-{{else data.downloading}} -

Download in progress...

-
- Downloaded file: -
-
- {{:data.download_name}} -
-
- Download progress: -
-
- {{:data.download_progress}} / {{:data.download_size}} GQ -
-
- Transfer speed: -
-
- {{:data.download_netspeed}}GQ/s -
-
- Controls: -
-
- {{:helper.link('Abort download', null, {'PRG_reset' : 1})}} -
-{{else data.uploading}} -

Server enabled

-
- Connected clients: -
-
- {{:data.upload_clients}} -
-
- Provided file: -
-
- {{:data.upload_filename}} -
-
- Server password: -
-
- {{if data.haspassword}} - ENABLED - {{else}} - DISABLED - {{/if}} -
-
- Commands: -
-
- {{:helper.link('Set password', null, {'PRG_setpassword' : 1})}} - {{:helper.link('Exit server', null, {'PRG_reset' : 1})}} -
-{{else data.upload_filelist}} -

File transfer server ready. Select file to upload:

- -
File nameFile sizeControls - {{for data.upload_filelist}} -
{{:value.filename}} - {{:value.size}}GQ - {{:helper.link('Select', null, {'PRG_uploadfile' : value.uid})}} - {{/for}} -
-
- {{:helper.link('Set password', null, { "PRG_setpassword" : 1 })}} - {{:helper.link('Return', null, { "PRG_reset" : 1 })}} -{{else}} -

Available files:

-
Server UIDFile NameFile SizePassword ProtectionOperations - {{for data.servers}} -
{{:value.uid}} - {{:value.filename}} - {{:value.size}}GQ - {{if value.haspassword}} - Enabled - {{else}} - Disabled - {{/if}} - {{:helper.link('Download', null, { "PRG_downloadfile" : value.uid })}} - {{/for}} -
-
- {{:helper.link('Send file', null, { "PRG_uploadmenu" : 1 })}} -{{/if}} \ No newline at end of file diff --git a/nano/templates/omni_filter.tmpl b/nano/templates/omni_filter.tmpl deleted file mode 100644 index 7ca17cded15..00000000000 --- a/nano/templates/omni_filter.tmpl +++ /dev/null @@ -1,125 +0,0 @@ -
-
- Power: -
-
- {{:helper.link(data.power ? 'On' : 'Off', null, {'command' : 'power'}, data.config ? 'disabled' : null)}} -
-
- -
-
- Config: -
-
- {{:helper.link('Configure', null, {'command' : 'configure'}, null, data.config ? 'selected' : null)}} -
-
- -
-
- Set Flow Rate Limit: -
-
-
- {{if data.config}} - {{:helper.link(data.set_flow_rate/10, null, {'command' : 'set_flow_rate'})}} L/s - {{else}} - {{:(data.set_flow_rate/10)}} L/s - {{/if}} -
-
-
- -
-
- Current Flow Rate: -
-
-
- {{:(data.last_flow_rate/10)}} L/s -
-
-
- -
-
- Load: -
-
- {{:helper.displayBar(data.last_power_draw, 0, data.max_power_draw, (data.last_power_draw < data.max_power_draw - 5) ? 'good' : 'average')}} -
- {{:data.last_power_draw}} W -
-
-
- -{{if data.config}} - -
-
-
-
Port
- {{for data.ports}} -
{{:value.dir}} Port
- {{/for}} -
- -
-
Input
- {{for data.ports}} -
- {{:helper.link(' ', null, {'command' : 'switch_mode', 'mode' : 'in', 'dir' : value.dir}, null, value.input ? 'selected' : null)}} -
- {{/for}} -
- -
-
Output
- {{for data.ports}} -
- {{:helper.link(' ', null, {'command' : 'switch_mode', 'mode' : 'out', 'dir' : value.dir}, null, value.output ? 'selected' : null)}} -
- {{/for}} -
- -
-
Filter
- {{for data.ports}} -
- {{:helper.link(value.f_type ? value.f_type : 'None', null, {'command' : 'switch_filter', 'mode' : value.f_type, 'dir' : value.dir}, value.filter ? null : 'disabled', value.f_type ? 'selected' : null)}} -
- {{/for}} -
-
-
-{{else}} - -
-
-
-
Port
- {{for data.ports}} -
{{:value.dir}} Port
- {{/for}} -
-
-
Mode
- {{for data.ports}} -
- {{if value.input}} - Input - {{else value.output}} - Output - {{else value.f_type}} - {{:value.f_type}} - {{else}} - Disabled - {{/if}} -
- {{/for}} -
-
-
- -{{/if}} diff --git a/nano/templates/omni_mixer.tmpl b/nano/templates/omni_mixer.tmpl deleted file mode 100644 index 52c5d02b05c..00000000000 --- a/nano/templates/omni_mixer.tmpl +++ /dev/null @@ -1,141 +0,0 @@ -
-
- Power: -
-
- {{:helper.link(data.power ? 'On' : 'Off', null, {'command' : 'power'}, data.config ? 'disabled' : null)}} -
-
- -
-
- Config: -
-
- {{:helper.link('Configure', null, {'command' : 'configure'}, null, data.config ? 'selected' : null)}} -
-
- -
-
- Set Flow Rate Limit: -
-
-
- {{if data.config}} - {{:helper.link(data.set_flow_rate/10, null, {'command' : 'set_flow_rate'})}} L/s - {{else}} - {{:(data.set_flow_rate/10)}} L/s - {{/if}} -
-
-
- -
-
- Current Flow Rate: -
-
-
- {{:(data.last_flow_rate/10)}} L/s -
-
-
- -
-
- Load: -
-
- {{:helper.displayBar(data.last_power_draw, 0, data.max_power_draw, (data.last_power_draw < data.max_power_draw - 5) ? 'good' : 'average')}} -
- {{:data.last_power_draw}} W -
-
-
- -{{if data.config}} - -
-
-
-
Port
- {{for data.ports}} -
{{:value.dir}} Port
- {{/for}} -
-
-
Input
- {{for data.ports}} -
- {{:helper.link(' ', null, value.input ? {'command' : 'switch_mode', 'mode' : 'none', 'dir' : value.dir} : {'command' : 'switch_mode', 'mode' : 'in', 'dir' : value.dir}, value.output ? 'disabled' : null, value.input ? 'selected' : null)}} -
- {{/for}} -
-
-
Output
- {{for data.ports}} -
- {{:helper.link(' ', null, value.output ? null : {'command' : 'switch_mode', 'mode' : 'out', 'dir' : value.dir}, null, value.output ? 'selected' : null)}} -
- {{/for}} -
-
-
Concentration
- {{for data.ports}} -
- {{:helper.link( value.input ? helper.round(value.concentration*100)+' %' : '-', null, {'command' : 'switch_con', 'dir' : value.dir}, value.input ? null : 'disabled')}} -
- {{/for}} -
-
-
Lock
- {{for data.ports}} -
- {{:helper.link(' ', value.con_lock ? 'locked' : 'unlocked', {'command' : 'switch_conlock', 'dir' : value.dir}, value.input ? null : 'disabled', value.con_lock ? 'selected' : null)}} -
- {{/for}} -
-
-
- -{{else}} - -
-
-
-
Port
- {{for data.ports}} -
{{:value.dir}} Port
- {{/for}} -
-
-
Mode
- {{for data.ports}} -
- {{if value.input}} - Input - {{else value.output}} - Output - {{else}} - Disabled - {{/if}} -
- {{/for}} -
-
-
Concentration
- {{for data.ports}} -
- {{if value.input}} - {{:helper.round(value.concentration*100)}} % - {{else}} - - - {{/if}} -
- {{/for}} -
-
-
- -{{/if}} \ No newline at end of file diff --git a/nano/templates/oxyregenerator.tmpl b/nano/templates/oxyregenerator.tmpl deleted file mode 100644 index 19cb4fdd7c9..00000000000 --- a/nano/templates/oxyregenerator.tmpl +++ /dev/null @@ -1,136 +0,0 @@ -
-
- Status: -
-
- {{:helper.link('On', 'power', {'power' : 1}, data.on ? 'selected' : null)}}{{:helper.link('Off', 'close', {'power' : 1}, data.on ? null : 'selected')}} -
-
- -
-
- Power Level: -
-
- {{:helper.link('1', null, {'setPower' : 1}, (data.powerSetting == 1)? 'selected' : null)}} - {{:helper.link('2', null, {'setPower' : 2}, (data.powerSetting == 2)? 'selected' : null)}} - {{:helper.link('3', null, {'setPower' : 3}, (data.powerSetting == 3)? 'selected' : null)}} - {{:helper.link('4', null, {'setPower' : 4}, (data.powerSetting == 4)? 'selected' : null)}} - {{:helper.link('5', null, {'setPower' : 5}, (data.powerSetting == 5)? 'selected' : null)}} -
-
- - -{{if data.phase == "filling"}} -
-
- Processing phase: -
-
- filling inner tank -
-
-
-
- Input pressure: -
-
- {{:data.air1Pressure}} kPa -
-
-
-
- Tank pressure: -
-
- {{:data.tankPressure}} kPa -
-
-
-
- Target tank pressure: -
-
- {{:data.targetPressure}} kPa -
-
-{{/if}} - -{{if data.phase == "processing"}} -
-
- Processing phase: -
-
- processing gas mix -
-
-
-
- Processing rate: -
-
- {{:data.gasProcessed}} moles -
-
-
-
- Tank pressure: -
-
- {{:data.tankPressure}} kPa -
-
-
-
- CO2 content: -
-
- {{:data.co2}} % -
-
-
-
- O2 content: -
-
- {{:data.o2}} % -
-
-{{/if}} - - -{{if data.phase == "releasing"}} -
-
- Processing phase: -
-
- releasing processed gas mix -
-
-
-
- Tank pressure: -
-
- {{:data.tankPressure}} kPa -
-
-
-
- Output Pressure: -
-
- {{:data.air2Pressure}} kPa -
-
-
-
- Target release pressure: -
-
- {{:data.targetPressure}} kPa -
-
-{{/if}} diff --git a/nano/templates/pathogenic_isolator.tmpl b/nano/templates/pathogenic_isolator.tmpl deleted file mode 100644 index 69411d858fc..00000000000 --- a/nano/templates/pathogenic_isolator.tmpl +++ /dev/null @@ -1,107 +0,0 @@ -
-

Menu

-
-
- {{if !data.isolating}} - {{:helper.link('Home', 'home', {'home' : 1}, data.state == 'home' ? 'disabled' : null, 'fixedLeft')}} - {{:helper.link('List', 'note', {'list' : 1}, data.state == 'list' ? 'disabled' : null, 'fixedLeft')}} - {{:helper.link('Pathogen', 'folder-open', {'entry' : 1}, data.state == 'entry' ? 'disabled' : null, 'fixedLeft')}} - {{/if}} -
- {{:helper.link('Close', 'gear', {'close' : 1}, null, 'fixedLeft')}} - {{:helper.link('Print', 'print', { 'print' : 1 }, data.can_print ? null : 'disabled', 'fixedLeft')}} -
- -{{if data.isolating}} -
The Isolator is currently busy.
-
-
Isolating pathogens...
-
-

- Thank you for your patience! -

-{{else}} - {{if data.state =="home"}} -
-

Blood Sample

-
-
- {{:helper.link('Eject Syringe', 'eject', { 'eject' : 1 }, data.syringe_inserted ? null : 'disabled')}} -
- - {{if data.syringe_inserted}} -
- Pathogens: - {{if data.pathogen_pool}} - {{for data.pathogen_pool}} -
- {{:index + 1}}. #{{:value.unique_id}} {{:value.is_in_database ? "(Analysed)" : ""}}
- {{:value.name}}: {{:value.dna}} -
- {{/for}} - {{else}} - No pathogens detected. - {{/if}} -
- {{else}} -
- No syringe loaded. -
- {{/if}} - {{if data.pathogen_pool}} -
-
- Isolate Pathogens: -
-
- {{for data.pathogen_pool}} - {{:helper.link('#' + value.unique_id, 'pencil', { 'isolate' : value.reference }, null, 'fixedLeft')}} - {{/for}} -
-
-
-
- Database Lookup: -
-
- {{for data.pathogen_pool}} - {{if value.is_in_database}} - {{:helper.link('#' + value.unique_id, 'info', { 'entry' : 1, 'view' : value.record }, null, 'fixedLeft')}} - {{/if}} - {{/for}} -
-
- {{/if}} - {{else}} - {{if data.state == "list"}} -
-

View Database

-
-
- {{if data.database}} - {{for data.database}} -
-
{{:value.name}}
- {{:helper.link('Details', 'circle-arrow-s', { 'entry' : 1, 'view' : value.record }, null, 'fixedLeft')}} -
- {{/for}} - {{else}} - The viral database is empty. - {{/if}} -
- {{else}} - {{if data.state == "entry"}} - {{if data.entry}} -
-

{{:data.entry.name}}

-
-
- {{:data.entry.description}} -
- {{else}} - No virus selected. - {{/if}} - {{/if}} - {{/if}} - {{/if}} -{{/if}} diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl deleted file mode 100644 index 1b0a49376d3..00000000000 --- a/nano/templates/pda.tmpl +++ /dev/null @@ -1,1054 +0,0 @@ - - -{{if data.owner}} -
-
- Functions: -
-
- - {{:helper.link('Close', 'gear', {'choice' : "Close"}, null, 'fixedLeft')}} - {{if data.idInserted}} {{:helper.link('Update PDA Info', 'eject', {'choice' : "UpdateInfo"}, null, 'fixedLeftWide')}} {{/if}} - {{if data.mode != 0}} {{:helper.link('Return', 'arrowreturn-1-w', {'choice' : "Return"}, null, 'fixedLeft')}} {{/if}} -
-
-
-
-
- Station Time: -
-
- {{:data.stationTime}} -
-
-
- - - {{if data.mode == 0}} -
-
- Owner: -
-
- {{:data.owner}}, {{:data.ownjob}} -
-
-
-
-
- ID: -
-
- {{:helper.link(data.idLink, 'eject', {'choice' : "Authenticate"}, data.idInserted ? null : 'disabled', data.idInserted ? 'floatright' : 'fixedLeft')}} -
-
-
-
-
- Cartridge: -
-
- {{if data.cart_loaded==1}} - {{:helper.link(data.cartridge.name, 'eject', {'choice' : "Eject"},null,null)}} - {{else}} - {{:helper.link('None', 'eject', {'choice' : "Eject"},'disabled',null)}} - {{/if}} -
-
-
-

Functions

-
-
-
- General: -
-
- {{:helper.link('Notekeeper', 'note', {'choice' : "1"}, null, 'fixedLeftWide')}} - {{:helper.link('Messenger', data.new_Message ? 'mail-closed' : 'mail-open', {'choice' : "2"}, null, 'fixedLeftWide')}} - {{:helper.link('Crew Manifest', 'contact', {'choice' : "41"}, null, 'fixedLeftWide')}} - {{:helper.link('News', data.new_News ? 'mail-closed' : 'mail-open', {'choice' : "6"}, null, 'fixedLeftWide')}} -
-
-
- {{if data.cartridge}} - {{if data.cartridge.access.access_clown == 1}} -
-
- Clown: -
-
- {{:helper.link('Honk Synthesizer', 'gear', {'choice' : "Honk"}, null, 'fixedLeftWide')}} -
-
-
- {{/if}} - {{if data.cartridge.access.access_engine == 1}} -
-
- Engineering: -
-
- {{:helper.link('Power Monitor', 'alert', {'choice' : "43"}, null, 'fixedLeftWide')}} -
-
-
- {{/if}} - {{if data.cartridge.access.access_medical == 1}} -
-
- Medical: -
-
- {{:helper.link('Medical Records', 'gear', {'choice' : "44"}, null, 'fixedLeftWide')}} - {{:helper.link(data.scanmode == 1 ? 'Disable Med Scanner' : 'Enable Med Scanner', 'gear', {'choice' : "Medical Scan"}, null , 'fixedLeftWide')}} -
-
-
- {{/if}} - {{if data.cartridge.access.access_security == 1}} -
-
- Security: -
-
- {{:helper.link('Security Records', 'gear', {'choice' : "45"}, null, 'fixedLeftWide')}} - {{if data.cartridge.radio ==1}} {{:helper.link('Security Bot Access', 'gear', {'choice' : "46"}, null, 'fixedLeftWide')}} {{/if}} -
-
-
-
- {{/if}} - {{if data.cartridge.access.access_quartermaster == 1}} -
-
- Quartermaster: -
-
- {{:helper.link('Supply Records', 'gear', {'choice' : "47"}, null, 'fixedLeftWide')}} - {{if data.cartridge.radio == 3}} {{:helper.link('Delivery Bot Control', 'gear', {'choice' : "48"}, null, 'fixedLeftWide')}} {{/if}} -
-
-
-
- {{/if}} - {{/if}} -
-
-
- Utilities: -
-
- {{if data.cartridge}} - {{if data.cartridge.access.access_status_display == 1}} - {{:helper.link('Status Display', 'gear', {'choice' : "42"}, null, 'fixedLeftWide')}} - {{/if}} - {{if data.cartridge.access.access_janitor==1}} - {{:helper.link('Custodial Locator', 'gear', {'choice' : "49"}, null, 'fixedLeftWide')}} - {{/if}} - {{if data.cartridge.radio == 2}} - {{:helper.link('Signaler System', 'gear', {'choice' : "40"}, null, 'fixedLeftWide')}} - {{/if}} - {{if data.cartridge.access.access_reagent_scanner==1}} - {{:helper.link(data.scanmode == 3 ? 'Disable Reagent Scanner' : 'Enable Reagent Scanner', 'gear', {'choice' : "Reagent Scan"}, null, 'fixedLeftWider')}} - {{/if}} - {{if data.cartridge.access.access_atmos==1}} - {{:helper.link(data.scanmode == 5 ? 'Disable Gas Scanner' : 'Enable Gas Scanner', 'gear', {'choice' : "Gas Scan"}, null, 'fixedLeftWide')}} - {{/if}} - {{if data.cartridge.access.access_remote_door==1}} - {{:helper.link('Toggle Door', 'gear', {'choice' : "Toggle Door"}, null, 'fixedLeftWide')}} - {{/if}} - {{/if}} - {{:helper.link('Atmospheric Scan', 'gear', {'choice' : "3"}, null, 'fixedLeftWide')}} - {{:helper.link(data.fon==1 ? 'Disable Flashlight' : 'Enable Flashlight', 'lightbulb', {'choice' : "Light"}, null,'fixedLeftWide')}} -
-
- {{if data.pai}} -
-
- PAI Utilities: -
-
- {{:helper.link('Configuration', 'gear', {'choice' : "pai", 'option' : "1"}, null, 'fixedLeft')}} - {{:helper.link('Eject pAI', 'eject', {'choice' : "pai", 'option' : "2"}, null, 'fixedLeft')}} -
-
- {{/if}} - - - {{else data.mode == 1}} -
-
- Notes: -
-
-
-
-
- {{:data.note}} -
-
-
-
-
- {{:helper.link('Edit Notes', 'gear', {'choice' : "Edit"}, null, 'fixedLeft')}} -
-
- - - {{else data.mode == 2}} -

SpaceMessenger V4.0.1

-
-
- Messenger Functions: -
-
- {{:helper.link(data.message_silent==1 ? 'Ringer: Off' : 'Ringer: On', data.message_silent==1 ? 'volume-off' : 'volume-on', {'choice' : "Toggle Ringer"}, null, 'fixedLeftWide')}} - {{:helper.link(data.toff==1 ? 'Messenger: Off' : 'Messenger: On',data.toff==1 ? 'close':'check', {'choice' : "Toggle Messenger"}, null, 'fixedLeftWide')}} - {{:helper.link('Set Ringtone', 'comment', {'choice' : "Ringtone"}, null, 'fixedLeftWide')}} - {{:helper.link('Delete all Conversations', 'trash', {'choice' : "Clear", 'option' : "All"}, null, 'fixedLeftWider')}} -
-
- Filter PDAs -
-
- {{:helper.link( 'All',data.pdafilter == 0? 'null' : 'close', {'choice' : "Filter", 'option' : "0"}, null, 'fixedLeft')}} - {{:helper.link('Command',data.pdafilter == 2? 'null': 'close', {'choice' : "Filter", 'option' : "2"}, null, 'fixedLeft')}} - {{:helper.link('Security',data.pdafilter == 3? 'null': 'close', {'choice' : "Filter", 'option' : "3"}, null, 'fixedLeft')}} - {{:helper.link('Engineering',data.pdafilter == 4? 'null': 'close', {'choice' : "Filter", 'option' : "4"}, null, 'fixedLeft')}} - {{:helper.link('Science',data.pdafilter == 5? 'null': 'close', {'choice' : "Filter", 'option' : "5"}, null, 'fixedLeft')}} - {{:helper.link('Cargo',data.pdafilter == 6? 'null': 'close', {'choice' : "Filter", 'option' : "6"}, null, 'fixedLeft')}} - {{:helper.link('Service',data.pdafilter == 7? 'null': 'close', {'choice' : "Filter", 'option' : "7"}, null, 'fixedLeft')}} - {{:helper.link('Medical',data.pdafilter == 8? 'null': 'close', {'choice' : "Filter", 'option' : "8"}, null, 'fixedLeft')}} -
- -
- {{if data.toff == 0}} -

- {{if data.cartridge}} - {{if data.cartridge.charges}} -
- {{:data.cartridge.charges}} - {{if data.cartridge.access.access_detonate_pda}} detonation charges left. {{/if}} - {{if data.cartridge.access.access_clown || data.cartridge.access.access_mime}} viral files left. {{/if}} - -

-
- {{/if}} - {{/if}} - - {{if data.pda_count == 0}} - No other PDAS located - {{else}} -

Current Conversations

- {{for data.convopdas}} -
- {{:helper.link(value.Name, 'circle-arrow-s', {'choice' : "Select Conversation", 'convo' : value.Reference } , null, value.fixedLeftWider)}} - {{if data.cartridge}} - {{if data.cartridge.access.access_detonate_pda && value.Detonate}} - {{:helper.link('*Detonate*', 'radiation', {'choice' : "Detonate", 'target' : value.Reference}, null, 'fixedLeft')}} - {{/if}} - {{if data.cartridge.access.access_clown}} - {{:helper.link('*Send Virus*', 'star', {'choice' : "Send Honk", 'target' : value.Reference}, null, 'fixedLeft')}} - {{/if}} - {{if data.cartridge.access.access_mime}} - {{:helper.link('*Send Virus*', 'circle-arrow-s', {'choice' : "Send Silence", 'target' : value.Reference}, null, 'fixedLeft')}} - {{/if}} - {{/if}} -
- {{/for}} -

Other PDAs

- {{for data.pdas}} -
- {{:helper.link(value.Name, 'circle-arrow-s', {'choice' : "Message", 'target' : value.Reference}, null, value.fixedLeftWider)}} - {{if data.cartridge}} - {{if data.cartridge.access.access_detonate_pda && value.Detonate}} {{:helper.link('*Detonate*', 'radiation', {'choice' : "Detonate", 'target' : value.Reference}, null, 'fixedLeft')}} {{/if}} - {{if data.cartridge.access.access_clown}} {{:helper.link('*Send Virus*', 'star', {'choice' : "Send Honk", 'target' : value.Reference}, null, 'fixedLeft')}} {{/if}} - {{if data.cartridge.access.access_mime}} {{:helper.link('*Send Virus*', 'circle-arrow-s', {'choice' : "Send Silence", 'target' : value.Reference}, null, 'fixedLeft')}} {{/if}} - {{/if}} -
- {{/for}} - {{/if}} - {{/if}} - - - {{else data.mode == 21}} -

SpaceMessenger V4.0.1

-
-
- Messenger Functions: -
-
- {{:helper.link('Delete Conversation', 'trash', {'choice' : "Clear", 'option' : "Convo"}, null, 'fixedLeftWide')}} -
-
-
-
-

Conversation with: {{:data.convo_name}} ({{:data.convo_job}})

-
-
-
- {{for data.messages}} - {{if data.active_conversation == value.target}} - {{if value.sent==0}} - Them: {{:value.message}}
- {{else}} - You: {{:value.message}}
- {{/if}} - {{/if}} - {{/for}} -
-
-
- {{:helper.link('Reply', 'comment', {'choice' : "Message", 'target': data.active_conversation}, null, 'fixedLeft')}} - - - {{else data.mode== 41}} -
-
- {{if data.manifest.heads.length}} - - {{for data.manifest["heads"]}} - {{if value.rank == "Captain"}} - - {{else}} - - {{/if}} - {{/for}} - {{/if}} - {{if data.manifest.sec.length}} - - {{for data.manifest["sec"]}} - {{if value.rank == "Head of Security"}} - - {{else}} - - {{/if}} - {{/for}} - {{/if}} - {{if data.manifest.eng.length}} - - {{for data.manifest["eng"]}} - {{if value.rank == "Chief Engineer"}} - - {{else}} - - {{/if}} - {{/for}} - {{/if}} - {{if data.manifest.med.length}} - - {{for data.manifest["med"]}} - {{if value.rank == "Chief Medical Officer"}} - - {{else}} - - {{/if}} - {{/for}} - {{/if}} - {{if data.manifest.sci.length}} - - {{for data.manifest["sci"]}} - {{if value.rank == "Research Director"}} - - {{else}} - - {{/if}} - {{/for}} - {{/if}} - {{if data.manifest.car.length}} - - {{for data.manifest["car"]}} - {{if value.rank == "Quartermaster"}} - - {{else}} - - {{/if}} - {{/for}} - {{/if}} - {{if data.manifest.civ.length}} - - {{for data.manifest["civ"]}} - {{if value.rank == "Head of Personnel"}} - - {{else}} - - {{/if}} - {{/for}} - {{/if}} - {{if data.manifest.misc.length}} - - {{for data.manifest["misc"]}} - - {{/for}} - {{/if}} -
Command
{{:value.name}}{{:value.rank}}{{:value.active}}
{{:value.name}}{{:value.rank}}{{:value.active}}
Security
{{:value.name}}{{:value.rank}}{{:value.active}}
{{:value.name}}{{:value.rank}}{{:value.active}}
Engineering
{{:value.name}}{{:value.rank}}{{:value.active}}
{{:value.name}}{{:value.rank}}{{:value.active}}
Medical
{{:value.name}}{{:value.rank}}{{:value.active}}
{{:value.name}}{{:value.rank}}{{:value.active}}
Science
{{:value.name}}{{:value.rank}}{{:value.active}}
{{:value.name}}{{:value.rank}}{{:value.active}}
Cargo
{{:value.name}}{{:value.rank}}{{:value.active}}
{{:value.name}}{{:value.rank}}{{:value.active}}
Civilian
{{:value.name}}{{:value.rank}}{{:value.active}}
{{:value.name}}{{:value.rank}}{{:value.active}}
Misc
{{:value.name}}{{:value.rank}}{{:value.active}}
-
- - - {{else data.mode == 3}} -

Atmospheric Scan

-
-
- {{if data.aircontents.reading == 1}} -
- Pressure: -
-
- {{:helper.string('{1} kPa', data.aircontents.pressure < 80 || data.aircontents.pressure > 120 ? 'bad' : data.aircontents.pressure < 95 || data.aircontents.pressure > 110 ? 'average' : 'good' , data.aircontents.pressure)}} -
-
- Temperature: -
-
- {{:helper.string('{1} °C', data.aircontents.temp < 5 || data.aircontents.temp > 35 ? 'bad' : data.aircontents.temp < 15 || data.aircontents.temp > 25 ? 'average' : 'good' , data.aircontents.temp)}} -
-
-
- Oxygen: -
-
- {{:helper.string('{1}%', data.aircontents.oxygen < 17 ? 'bad' : data.aircontents.oxygen < 19 ? 'average' : 'good' , data.aircontents.oxygen)}} -
-
- Nitrogen: -
-
- {{:helper.string('{1}%', data.aircontents.nitrogen > 82 ? 'bad' : data.aircontents.nitrogen > 80 ? 'average' : 'good' , data.aircontents.nitrogen)}} -
-
- Carbon Dioxide: -
-
- {{:helper.string('{1}%', data.aircontents.carbon_dioxide > 5 ? 'bad' : 'good' , data.aircontents.carbon_dioxide)}} -
-
- Phoron: -
-
- {{:helper.string('{1}%', data.aircontents.phoron > 0 ? 'bad' : 'good' , data.aircontents.phoron)}} - -
- {{if data.aircontents.other > 0}} -
- Unknown: -
-
- {{:data.aircontents.other}}% -
- {{/if}} - {{else}} -
- Unable to get air reading -
- {{/if}} -
-
- - - {{else data.mode == 40}} -

Remote Signaling System

-
-
- Frequency: -
-
- {{:data.records.signal_freq}} -
-   - {{:helper.link('-1', null, {'cartmenu' : "1", 'choice' : "Signal Frequency", 'sfreq' : "-10"}, null, null)}}  - {{:helper.link('-.2', null, {'cartmenu' : "1", 'choice' : "Signal Frequency", 'sfreq' : "-2"}, null, null)}}  - - {{:helper.link('+.2', null, {'cartmenu' : "1", 'choice' : "Signal Frequency", 'sfreq' : "2"}, null, null)}}  - {{:helper.link('+1', null, {'cartmenu' : "1", 'choice' : "Signal Frequency", 'sfreq' : "10"}, null, null)}} -
-
-
-
-
-
- Code: -
-
- - {{:data.records.signal_code}}
-
- {{:helper.link('-5', null, {'cartmenu' : "1", 'choice' : "Signal Code", 'scode' : "-5"}, null, null)}} - {{:helper.link('-1', null, {'cartmenu' : "1", 'choice' : "Signal Code", 'scode' : "-1"}, null, null)}} - {{:helper.link('+1', null, {'cartmenu' : "1", 'choice' : "Signal Code", 'scode' : "1"}, null, null)}} - {{:helper.link('+5', null, {'cartmenu' : "1", 'choice' : "Signal Code", 'scode' : "5"}, null, null)}} -
-
-
- {{:helper.link('Send Signal', 'radiation', {'cartmenu' : "1", 'choice' : "Send Signal"}, null, null)}} -
- - - {{else data.mode == 42}} -

Station Status Displays Interlink

-
-
- Code: -
-
- {{:helper.link('Clear', 'trash', {'cartmenu' : "1", 'choice' : "Status", 'statdisp' : "blank"}, null, null)}} - {{:helper.link('Shuttle ETA', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "shuttle"}, null, null)}} - {{:helper.link('Message', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "message"}, null, null)}} -
-
-
-
-
- Message line 1 -
-
- {{:helper.link(data.records.message1 + ' (set)', 'pencil', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "setmsg1"}, null, null)}} -
-
-
-
- Message line 2 -
-
- {{:helper.link(data.records.message2 + ' (set)', 'pencil', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "setmsg2"}, null, null)}} -
-
- -
-
-
- ALERT!: -
-
- {{:helper.link('None', 'alert', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'alert' : "default"}, null, null)}} - {{:helper.link('Red Alert', 'alert', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'alert' : "redalert"}, null, null)}} - {{:helper.link('Lockdown', 'caution', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'alert' : "lockdown"}, null, null)}} - {{:helper.link('Biohazard', 'radiation', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'alert' : "biohazard"}, null, null)}} -
-
- - {{else data.mode == 43}} -

Power Monitor

-
-
- Available Sensors: -
-
- {{for data.records.power_sensors}} - {{:helper.link(value.name_tag, 'plus', {'cartmenu' : "1", 'choice' : "Power Select",'target' : value.name_tag}, null, 'fixedLeftWider')}} - {{/for}} -
-
- - {{else data.mode == 433}} -

Power Monitor

- {{if data.records.sensor_reading}} -

Network Information

-
-
- Powernet Sensor: -
-
- {{:data.records.sensor_reading.name}} -
-
-
-
- Load: -
-
- - {{:helper.displayBar(data.records.sensor_reading.load_percentage, 0, 100, (data.records.sensor_reading.load_percentage <= 75) ? 'good' : (data.records.sensor_reading.load_percentage <= 90) ? 'average' : 'bad')}}{{:data.records.sensor_reading.load_percentage}}% -
-
- Available Power: -
-
- {{:data.records.sensor_reading.total_avail}} -
-
- Total Usage: -
-
- {{:data.records.sensor_reading.total_used_all}} -
-
-

APC Sensor Readings

- {{if data.records.sensor_reading.apc_data.length > 0}} - - - - - {{for data.records.sensor_reading.apc_data}} - - - {{if value.cell_status == "N"}} - - {{else value.cell_status == "C"}} - - {{else}} - - {{/if}} - - - {{/for}} -
APC NameCell StatusPower Usage
{{:value.name}}{{:helper.link(value.cell_charge + '%', 'batt_disc', null,'disabled', 'width75btn')}}{{:helper.link(value.cell_charge + '%', 'batt_chrg', null,'disabled', 'width75btn')}}{{:helper.link(value.cell_charge + '%', 'batt_full', null,'disabled', 'width75btn')}}{{:value.total_load}}
- {{else}} -
- No APCs found in selected powernet. -
- {{/if}} - {{else}} - -
- Unable to contact sensor controller! Please retry and contact tech support if this problem persists. -
- {{/if}} - - - {{else data.mode == 44}} -

Medical Record List

-
- Select A record -
-
- {{for data.records.medical_records}} -
- {{:helper.link(value.Name, 'gear', {'cartmenu' : "1", 'choice' : "Medical Records",'target' : value.ref}, null, null)}} -
- {{/for}} - - - {{else data.mode == 441}} -

Medical Record

-
-
-
- {{if data.records.general_exists == 1}} - Name: {{:data.records.general.name}}
- Sex: {{:data.records.general.sex}}
- Age: {{:data.records.general.age}}
- Rank: {{:data.records.general.rank}}
- Fingerprint: {{:data.records.general.fingerprint}}
- Physical Status: {{:data.records.general.physical_status}}
- Mental Status: {{:data.records.general.mental_status}}

- {{else}} - - General Record Lost!

-
- {{/if}} - {{if data.records.medical_exists == 1}} - Medical Data:
- Blood Type: {{:data.records.medical.blood_type}}

- Disabilities: {{:data.records.medical.disabilities}}

- Allergies: {{:data.records.medical.allergies}}

- Current Disease: {{:data.records.medical.diseases}}

- Important Notes:
{{:data.records.medical.notes}}
- {{else}} - - Medical Record Lost! -
-
-
- {{/if}} -
-
-
- - - {{else data.mode == 45}} -

Security Record List

-
- Select A record -
-
- {{for data.records.security_records}} -
- {{:helper.link(value.Name, 'gear', {'cartmenu' : "1", 'choice' : "Security Records",'target' : value.ref}, null, null)}} -
- {{/for}} - - - {{else data.mode == 451}} -

Security Record

-
-
-
- {{if data.records.general_exists == 1}} - Name: {{:data.records.general.name}}
- Sex: {{:data.records.general.sex}}
- Age: {{:data.records.general.age}}
- Rank: {{:data.records.general.rank}}
- Fingerprint: {{:data.records.general.fingerprint}}
- Physical Status: {{:data.records.general.physical_status}}
- Mental Status: {{:data.records.general.mental_status}}

- {{else}} - - General Record Lost!

-
- {{/if}} - {{if data.records.security_exists == 1}} - Security Data:
- Criminal Status: {{:data.records.security.criminal}}

- Minor Crimes: {{:data.records.security.crimes}}

- Important Notes:
{{:data.records.security.notes}}
- {{else}} - - Security Record Lost!

-
- {{/if}} -
-
-
- - - {{else data.mode == 46}} -

Security Bot Control

- {{if data.records.beepsky.active == null || data.records.beepsky.active == 0}} - {{if data.records.beepsky.count == 0}} -

No bots found.

- {{else}} -
- Select A Bot. -
-
- {{for data.records.beepsky.bots}} -
- {{:helper.link(value.Name, 'gear', {'radiomenu' : "1", 'op' : "control",'bot' : value.ref}, null, null)}} (Location: {{:value.Location}}) -
- {{/for}} - {{/if}} -
- {{:helper.link('Scan for Bots','gear', {'radiomenu' : "1", 'op' : "scanbots"}, null, null)}} - {{else}} -

{{:data.records.beepsky.active}}

-

- {{if data.records.beepsky.botstatus.mode == -1}} -

Waiting for response...

- {{else}} -

Status:

-
-
-
- Location: -
-
- {{:data.records.beepsky.botstatus.loca}} -
-
-
-
- Mode: -
-
- - {{if data.records.beepsky.botstatus.mode ==0}} - Ready - {{else data.records.beepsky.botstatus.mode == 1}} - Apprehending target - {{else data.records.beepsky.botstatus.mode ==2 || data.records.beepsky.botstatus.mode == 3}} - Arresting target - {{else data.records.beepsky.botstatus.mode ==4}} - Starting patrol - {{else data.records.beepsky.botstatus.mode ==5}} - On Patrol - {{else data.records.beepsky.botstatus.mode ==6}} - Responding to summons - {{/if}} - -
-
-
- {{:helper.link('Stop Patrol', 'gear', {'radiomenu' : "1", 'op' : "stop"}, null, null)}} - {{:helper.link('Start Patrol', 'gear', {'radiomenu' : "1", 'op' : "go"}, null, null)}} - {{:helper.link('Summon Bot', 'gear', {'radiomenu' : "1", 'op' : "summon"}, null, null)}} -
- {{/if}} - {{:helper.link('Return to Bot list', 'gear', {'radiomenu' : "1", 'op' : "botlist"}, null, null)}} - {{/if}} - - - {{else data.mode == 47}} -

Supply Record Interlink

-
-
- Location: -
-
- - {{if data.records.supply.shuttle_moving}} - Moving to station ({{:data.records.supply.shuttle_eta}}) - {{else}} - Shuttle at {{:data.records.supply.shuttle_loc}} - {{/if}} - -
-
-
-
-
- Current Approved Orders
- {{if data.records.supply.approved_count == 0}} - No current approved orders

- {{else}} - {{props data.records.supply.approved}} - #{{:value.order_id}} - {{:value.ordered_by}} - {{:value.price_cargo}} Credits - {{/props}} - {{/if}} -

- Current Requested Orders
- {{if data.records.supply.requests_count == 0}} - No current requested orders

- {{else}} - {{props data.records.supply.requests}} - #{{:value.order_id}} - {{:value.ordered_by}} - {{:value.price_cargo}} Credits - {{/props}} - {{/if}} -
-
-
- - - {{else data.mode == 48}} -

Mule Control

- {{if data.records.mulebot.active == null || data.records.mulebot.active == 0}} - {{if data.records.mulebot.count == 0}} -

No bots found.

- {{else}} -

Mule List

-
- Select A Mulebot -
-
- {{for data.records.mulebot.bots}} -
- {{:helper.link(value.Name, 'gear', {'radiomenu' : "1", 'op' : "control",'bot' : value.ref}, null, null)}} (Location: {{:value.Location}}) -
- {{/for}} - {{/if}} -
- {{:helper.link('Scan for Bots','gear', {'radiomenu' : "1", 'op' : "scanbots"}, null, null)}} - {{else}} - {{if data.records.mulebot.botstatus.mode == -1}} -

Waiting for response...

- {{else}} -

Status:

-
-
-
- Location: -
-
- {{:data.records.mulebot.botstatus.loca}} -
-
-
-
- Mode: -
-
- - {{if data.records.mulebot.botstatus.mode ==0}} - Ready - {{else data.records.mulebot.botstatus.mode == 1}} - Loading/Unloading - {{else data.records.mulebot.botstatus.mode ==2}} - Navigating to Delivery Location - {{else data.records.mulebot.botstatus.mode == 3}} - Navigating to Home - {{else data.records.mulebot.botstatus.mode ==4}} - Waiting for Clear Path - {{else data.records.mulebot.botstatus.mode ==5 || data.records.mulebot.botstatus.mode == 6}} - Calculating navigation Path - {{else data.records.mulebot.botstatus.mode ==7}} - Unable to locate destination - {{/if}} - -
-
-
-
- Current Load: -
-
- - {{:helper.link(data.records.mulebot.botstatus.load == null ? 'None (Unload)' : data.records.mulebot.botstatus.load + ' (Unload)', 'gear', {'radiomenu' : "1", 'op' : "unload"},data.records.mulebot.botstatus.load == null ? 'disabled' : null, null)}} - -
-
-
-
- Power: -
-
- - {{:data.records.mulebot.botstatus.powr}}% - -
-
-
-
- Destination: -
-
- {{:helper.link(data.records.mulebot.botstatus.dest == null || data.records.mulebot.botstatus.dest == "" ? 'None (Set)': data.records.mulebot.botstatus.dest+ ' (Set)', 'gear', {'radiomenu' : "1", 'op' : "setdest"}, null, null)}} -
-
-
-
- Home: -
-
- {{if data.records.mulebot.botstatus.home == null}} None {{else}} {{:data.records.mulebot.botstatus.home}} {{/if}} -
-
-
-
- Auto Return: -
-
- {{:helper.link(data.records.mulebot.botstatus.retn == 1 ? 'ON' : 'OFF', 'gear', {'radiomenu' : "1", 'op' : data.records.mulebot.botstatus.retn==1 ? "retoff" : "reton"}, null, null)}} -
-
-
-
- Auto Pickup: -
-
- {{:helper.link(data.records.mulebot.botstatus.pick==1? 'ON' : 'OFF', 'gear', {'radiomenu' : "1", 'op' : data.records.mulebot.botstatus.pick==1 ? "pickoff" : "pickon"}, null, null)}} -
-
-
-
- Functions: -
-
- {{:helper.link('Stop', 'gear', {'radiomenu' : "1", 'op' : "stop"}, null, null)}} - {{:helper.link('Proceed', 'gear', {'radiomenu' : "1", 'op' : "go"}, null, null)}} - {{:helper.link('Return Home', 'gear', {'radiomenu' : "1", 'op' : "home"}, null, null)}} -
-
-

- {{:helper.link('Return to Bot list', 'gear', {'radiomenu' : "1", 'op' : "botlist"}, null, null)}} - {{/if}} - {{/if}} - - - {{else data.mode == 49}} -

Janatorial Supplies Locator

-
- Current Location: - {{if data.records.janitor.user_loc.x == 0}} - Unknown - {{else}} - {{:data.records.janitor.user_loc.x}} / {{:data.records.janitor.user_loc.y}} - {{/if}} -
-
- {{for data.records.janitor.mops}} - {{if value.x==0}} - Unable to locate Mop - {{else}} - Mop Location: - ({{:value.x}} / {{:value.y}}) - {{:value.dir}} - Status: {{:value.status}}
- {{/if}} - {{/for}} -
-
- {{for data.records.janitor.buckets}} - {{if value.x==0}} - Unable to locate Water Buckets - {{else}} - Water Buckets Location: - ({{:value.x}} / {{:value.y}}) - {{:value.dir}} - Water Level: {{:value.status}}
- {{/if}} - {{/for}} -
-
- {{for data.records.janitor.cleanbots}} - {{if value.x==0}} - Unable to locate Clean Bots - {{else}} - Clean Bots Location: - ({{:value.x}} / {{:value.y}}) - {{:value.dir}} - Status: {{:value.status}}
- {{/if}} - {{/for}} -
-
- {{for data.records.janitor.carts}} - {{if value.x==0}} - Unable to locate Janitorial Cart - {{else}} - Janitorial cart Location: - ({{:value.x}} / {{:value.y}}) - {{:value.dir}} - Status: {{:value.status}}
- {{/if}} - {{/for}} - - {{else data.mode == 6}} -

InstaNews ED 2.0.9

- -
-
- Functions: -
-
- {{:helper.link(data.news_silent==1 ? 'Ringer: Off' : 'Ringer: On', data.news_silent==1 ? 'volume-off' : 'volume-on', {'choice' : "Toggle News"}, null, 'fixedLeftWide')}} - {{:helper.link('Set news tone', 'comment', {'choice' : "Newstone"}, null, 'fixedLeftWide')}} -
-
- -
-
- {{for data.feedChannels}} - {{if value.censored}} - {{:helper.link(value.name, 'circle-arrow-s', {'choice' : "Select Feed", 'feed' : value.feed, 'name' : value.name } , null, 'fixedLeftWiderRed')}} - {{else}} - {{:helper.link(value.name, 'circle-arrow-s', {'choice' : "Select Feed", 'feed' : value.feed, 'name' : value.name } , null, 'fixedLeftWider')}} - {{/if}} - {{empty}} - No active channels found... - {{/for}} -
-
- - {{else data.mode == 61}} -

{{:data.feed.channel}}

- Created by: {{:data.feed.author}}
-
-
-
- {{if data.feed.censored}} -

Attention

- This channel has been deemed as threatening to the welfare of the station, and marked with a NanoTrasen D-Notice.
- No further feed story additions are allowed while the D-Notice is in effect.
- {{else}} - {{for data.feed.messages}} -
- {{:value.body}}
- {{if value.has_image}} -
- {{if value.caption}} - {{:value.caption}}
- {{/if}} - {{/if}} - [{{:value.message_type}} by {{:value.author}} - {{:value.time_stamp}}]
- [Likes: {{:value.likes}} Dislikes: {{:value.dislikes}}] -
-
- {{empty}} - No feed messages found in channel... - {{/for}} - {{/if}} -
-
-
- - {{/if}} -{{else}} -
-






No Owner information found, please swipe ID -
-{{/if}} - diff --git a/nano/templates/portpump.tmpl b/nano/templates/portpump.tmpl deleted file mode 100644 index 59ada0a54ac..00000000000 --- a/nano/templates/portpump.tmpl +++ /dev/null @@ -1,100 +0,0 @@ -

Pump Status

-
-
- Tank Pressure: -
-
- {{:data.tankPressure}} kPa -
-
- -
-
- Port Status: -
-
- {{:data.portConnected ? 'Connected' : 'Disconnected'}} -
-
- -
-
- Load: -
-
- {{:data.powerDraw}} W -
-
- -
-
- Cell Charge: -
-
- {{:helper.displayBar(data.cellCharge, 0, data.cellMaxCharge)}} -
-
- -

Holding Tank Status

-{{if data.hasHoldingTank}} -
-
- Tank Label: -
-
-
{{:data.holdingTank.name}}
{{:helper.link('Eject', 'eject', {'remove_tank' : 1})}} -
-
- -
-
- Tank Pressure: -
-
- {{:data.holdingTank.tankPressure}} kPa -
-
-{{else}} -
No holding tank inserted.
-
 
-{{/if}} - - -

Power Regulator Status

-
-
- Target Pressure: -
-
- {{:helper.displayBar(data.targetpressure, data.minpressure, data.maxpressure)}} -
- {{:helper.link('-', null, {'pressure_adj' : -1000}, (data.targetpressure > data.minpressure) ? null : 'disabled')}} - {{:helper.link('-', null, {'pressure_adj' : -100}, (data.targetpressure > data.minpressure) ? null : 'disabled')}} - {{:helper.link('-', null, {'pressure_adj' : -10}, (data.targetpressure > data.minpressure) ? null : 'disabled')}} - {{:helper.link('-', null, {'pressure_adj' : -1}, (data.targetpressure > data.minpressure) ? null : 'disabled')}} -
 {{:data.targetpressure}} kPa 
- {{:helper.link('+', null, {'pressure_adj' : 1}, (data.targetpressure < data.maxpressure) ? null : 'disabled')}} - {{:helper.link('+', null, {'pressure_adj' : 10}, (data.targetpressure < data.maxpressure) ? null : 'disabled')}} - {{:helper.link('+', null, {'pressure_adj' : 100}, (data.targetpressure < data.maxpressure) ? null : 'disabled')}} - {{:helper.link('+', null, {'pressure_adj' : 1000}, (data.targetpressure < data.maxpressure) ? null : 'disabled')}} -
-
-
- -
-
- Power Switch: -
-
- {{:helper.link('On', 'unlocked', {'power' : 1}, data.on ? 'selected' : null)}} {{:helper.link('Off', 'locked', {'power' : 1}, data.on ? null : 'selected')}} -
-
- -
-
- Pump Direction: -
-
- {{:helper.link('Out', 'arrowreturn-1-e', {'direction' : 1}, data.pump_dir ? 'selected' : null)}} {{:helper.link('In', 'arrowreturn-1-w', {'direction' : 1}, data.pump_dir ? null : 'selected')}} -
-
diff --git a/nano/templates/revelation.tmpl b/nano/templates/revelation.tmpl deleted file mode 100644 index 5bcb3575bcf..00000000000 --- a/nano/templates/revelation.tmpl +++ /dev/null @@ -1,23 +0,0 @@ -{{:helper.syndicateMode()}} -
-
- Payload status: -
-
- {{if data.armed}} - ARMED - {{else}} - DISARMED - {{/if}} -
-
- Controls: -
-
- -
{{:helper.link('OBFUSCATE PROGRAM NAME', null, { 'PRG_obfuscate' : 1 })}} -
{{:helper.link(data.armed ? 'DISARM' : 'ARM', null, { 'PRG_arm' : 1 })}} - {{:helper.link('ACTIVATE', 'radiation', { 'PRG_activate' : 1 }, data.armed ? null : 'disabled', data.armed ? 'redButton' : null)}} -
-
-
\ No newline at end of file diff --git a/nano/templates/sudoku.tmpl b/nano/templates/sudoku.tmpl deleted file mode 100644 index 3138849db9f..00000000000 --- a/nano/templates/sudoku.tmpl +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - {{if data.collapse == 0}} -
-
- - - - - {{for data.grid}} - - - {{if value.column == 9}} - - {{if value.row < 9}} - - {{/if}} - {{/if}} - {{/for}} -
- - -
-
- - {{:helper.link("Check", null, {'check' : value.ref})}} - {{:helper.link("Reset Grid", null, {'clear' : value.ref})}} - {{:helper.link((data.collapse) ? "Expand" : "Collapse", null, {'collapse' : value.ref})}} -
-
- - - - - - - - - {{/if}} - -
-
Sudoku is a classic human game of logic and deduction originating from Earth, in the Sol system. Invented in 19th century France and later popularised in 20th century Japan, where the name originates. It has proven a popular and diverting pastime for almost 500 years.
-
- The object of the game is simple. Complete the board by filling in digits from 1 to 9, with the constraint that each digit can only appear once per row, once per column, and once per 3x3 subgrid. The solution can usually be figured out by a process of elimination: Carefully check each tile against those around it based on the above rules, and fill in the tiles where there is only one option. Each new tile filled is a clue to the value of other tiles!
-
- {{if data.message}} -
{{:data.message}}
- {{/if}} -
- {{:helper.link("Hint", null, {'hint' : value.ref})}} -
-
Start a New Game
-
- - {{:helper.link("Easy", null, {'difficulty' : "Easy"}, data.difficulty == "Easy" ? 'selected' : null)}} - {{:helper.link("Medium", null, {'difficulty' : "Medium"}, data.difficulty == "Medium" ? 'selected' : null)}} - {{:helper.link("Hard", null, {'difficulty' : "Hard"}, data.difficulty == "Hard" ? 'selected' : null)}} - {{:helper.link("Robust", null, {'difficulty' : "Robust"}, data.difficulty == "Robust" ? 'selected' : null)}} -

- {{:helper.link("Generate Grid", null, {'newgame' : value.ref})}} -
-
-
Coordinates:
-
- {{:helper.link('X: ' + data.coordx, 'gear', {'setx': 1})}} - {{:helper.link('Y: ' + data.coordy, 'gear', {'sety': 1})}} - {{:helper.link('Z: ' + data.coordz, 'gear', {'setz': 1})}} -
-
-
-
Controls:
-
- {{:helper.link('Send', 'gear', {'send': 1}, null, (data.coordx != null && data.coordy != null && data.coordz != null) ? '' : 'disabled')}} - {{:helper.link('Receive', 'gear', {'receive': 1}, null, (data.coordx != null && data.coordy != null && data.coordz != null) ? '' : 'disabled')}} - {{:helper.link('Recalibrate', 'gear', {'recal': 1})}} -
-
diff --git a/nano/templates/transfer_valve.tmpl b/nano/templates/transfer_valve.tmpl deleted file mode 100644 index f8395839994..00000000000 --- a/nano/templates/transfer_valve.tmpl +++ /dev/null @@ -1,56 +0,0 @@ -
-
- Attachment One: -
-
- {{if data.attachmentOne}} - {{:data.attachmentOne}} - {{else}} - None - {{/if}} - {{:helper.link('Remove', 'eject', {'tankone' : 1}, data.attachmentOne ? null : 'disabled')}} -
-
- -
-
- Attachment Two: -
-
- {{if data.attachmentTwo}} - {{:data.attachmentTwo}} - {{else}} - None - {{/if}} - {{:helper.link('Remove', 'eject', {'tanktwo' : 1}, data.attachmentTwo ? null : 'disabled')}} -
-
- -
-
- Valve Attachment: -
-
- {{if data.valveAttachment}} - {{:data.valveAttachment}} - {{else}} - None - {{/if}} - {{:helper.link('Remove', 'eject', {'rem_device' : 1}, data.valveAttachment ? null : 'disabled')}} - {{if data.valveAttachment}} - {{:helper.link('View', 'wrench', {'device' : 1})}} - {{/if}} -
-
- -
 
- -
-
- Valve Status: -
-
- {{:helper.link('Open', 'unlocked', {'open' : 1}, (!data.attachmentOne || !data.attachmentTwo) ? 'disabled' : (data.valveOpen ? 'selected' : null))}}{{:helper.link('Close', 'locked', {'open' : 1}, (!data.attachmentOne || !data.attachmentTwo) ? 'disabled' : (data.valveOpen ? null : 'selected'))}} -
-
-