From fffc406aaebb6b94ba8d0cbf6878ce4f9c614a4b Mon Sep 17 00:00:00 2001 From: Batrachophreno Date: Sun, 26 Apr 2026 15:55:31 -0400 Subject: [PATCH] Deprecation of DNA Modifier UI, AME, misc NanoUI templates, and _old spritefiles. (#22320) Lead-up to final push on NanoUI conversion; AME was removed (w approval from Matt), DNA modifier will not be converted to Nano at this time, a heap of templates and associated unused sprite files also removed. --- aurorastation.dme | 3 - code/game/dna/dna_modifier.dm | 497 +------- code/modules/cargo/cargo_suppliers.dm | 1 + code/modules/cargo/items/engineering.dm | 42 - code/modules/item_worth/worths_list.dm | 2 - .../power/antimatter/containment_jar.dm | 48 - code/modules/power/antimatter/control.dm | 365 ------ code/modules/power/antimatter/shielding.dm | 258 ---- html/changelogs/Bat-Deprecation.yml | 7 + icons/obj/machinery/antimatter.dmi | Bin 5216 -> 0 bytes icons/obj/machinery/new_ame.dmi | Bin 29762 -> 0 bytes .../machinery/particle_accelerator_old.dmi | Bin 105362 -> 0 bytes icons/rust.dmi | Bin 42825 -> 0 bytes icons/rust_old.dmi | Bin 492 -> 0 bytes nano/templates/air_alarm.tmpl | 216 ---- nano/templates/alarm_monitor.tmpl | 37 - nano/templates/ame.tmpl | 56 - nano/templates/atmos_alert.tmpl | 18 - nano/templates/botany_editor.tmpl | 56 - nano/templates/botany_isolator.tmpl | 73 -- nano/templates/cryo.tmpl | 150 --- nano/templates/disease_splicer.tmpl | 125 -- nano/templates/dish_incubator.tmpl | 123 -- nano/templates/dna_modifier.tmpl | 318 ----- nano/templates/exosuit_control.tmpl | 24 - nano/templates/generator.tmpl | 142 --- nano/templates/merchant.tmpl | 66 -- nano/templates/news_browser.tmpl | 74 -- nano/templates/ntnet_dos.tmpl | 22 - nano/templates/ntnet_transfer.tmpl | 94 -- nano/templates/omni_filter.tmpl | 125 -- nano/templates/omni_mixer.tmpl | 141 --- nano/templates/oxyregenerator.tmpl | 136 --- nano/templates/pathogenic_isolator.tmpl | 107 -- nano/templates/pda.tmpl | 1054 ----------------- nano/templates/portpump.tmpl | 100 -- nano/templates/revelation.tmpl | 23 - nano/templates/sudoku.tmpl | 99 -- nano/templates/telescience_console.tmpl | 20 - nano/templates/transfer_valve.tmpl | 56 - 40 files changed, 15 insertions(+), 4663 deletions(-) delete mode 100644 code/modules/power/antimatter/containment_jar.dm delete mode 100644 code/modules/power/antimatter/control.dm delete mode 100644 code/modules/power/antimatter/shielding.dm create mode 100644 html/changelogs/Bat-Deprecation.yml delete mode 100644 icons/obj/machinery/antimatter.dmi delete mode 100644 icons/obj/machinery/new_ame.dmi delete mode 100644 icons/obj/machinery/particle_accelerator_old.dmi delete mode 100644 icons/rust.dmi delete mode 100644 icons/rust_old.dmi delete mode 100644 nano/templates/air_alarm.tmpl delete mode 100644 nano/templates/alarm_monitor.tmpl delete mode 100644 nano/templates/ame.tmpl delete mode 100644 nano/templates/atmos_alert.tmpl delete mode 100644 nano/templates/botany_editor.tmpl delete mode 100644 nano/templates/botany_isolator.tmpl delete mode 100644 nano/templates/cryo.tmpl delete mode 100644 nano/templates/disease_splicer.tmpl delete mode 100644 nano/templates/dish_incubator.tmpl delete mode 100644 nano/templates/dna_modifier.tmpl delete mode 100644 nano/templates/exosuit_control.tmpl delete mode 100644 nano/templates/generator.tmpl delete mode 100644 nano/templates/merchant.tmpl delete mode 100644 nano/templates/news_browser.tmpl delete mode 100644 nano/templates/ntnet_dos.tmpl delete mode 100644 nano/templates/ntnet_transfer.tmpl delete mode 100644 nano/templates/omni_filter.tmpl delete mode 100644 nano/templates/omni_mixer.tmpl delete mode 100644 nano/templates/oxyregenerator.tmpl delete mode 100644 nano/templates/pathogenic_isolator.tmpl delete mode 100644 nano/templates/pda.tmpl delete mode 100644 nano/templates/portpump.tmpl delete mode 100644 nano/templates/revelation.tmpl delete mode 100644 nano/templates/sudoku.tmpl delete mode 100644 nano/templates/telescience_console.tmpl delete mode 100644 nano/templates/transfer_valve.tmpl 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 4e20f20e7b067b0b1d895db129af28209236330b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5216 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 R4FAgz0M*pjXi#&A`XBBJB18ZH diff --git a/icons/obj/machinery/new_ame.dmi b/icons/obj/machinery/new_ame.dmi deleted file mode 100644 index 2c7f6c4ea8a503d759b2066aabf7bf82648d4ec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29762 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

2c~&A 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 diff --git a/icons/rust_old.dmi b/icons/rust_old.dmi deleted file mode 100644 index 7fd6ad57d03cb03f922c3e794854b1f61e7fb067..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV)|0H4bH2?qr0d!JMQvg8b*k%9#0G@hO zSad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1yRS7+;WIRDw&jvVyCh3phvs zdD2ustDMYD0002bNkl2AR<3~I|DQgf!K%u#8xCA$|4{Lf(V5X!xjt)il1OZz2+x?b{@+g0;r`g z3Ye%TxWw4wInkAb@x$d7x%Ne&&4jKbU?%jN3*wffL$iOYp-s)5<$|Spy(7Vq;MNMW zg=W1#w}wE75l$l55Fim;2;d6``=tJD{tE%ZGCgrc0r2jb9z|b!dMpc1&xbG!8w)Rw ipe6CpIe#e}ROb!ds!2Uw=l_ZT0000 -

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'))}} -
-
-