+
+ Health:
+
+ {{:helper.displayBar(data.occupant.health, 0, 100, (data.occupant.health >= 50) ? 'good' : (data.occupant.health >= 25) ? 'average' : 'bad')}}
+
+ {{:helper.round(data.occupant.health*10)/10}}%
+
+
+
+ Status:
+
+
+ {{if data.occupant.stat==0}}
+ Alive
+ {{else data.occupant.stat==1}}
+ Critical
+ {{else}}
+ Dead
+ {{/if}}
+
+
+ {{:helper.link('Print', 'document', {'print_p' : 1, 'name' : data.occupant.name})}}
+
+
Damage:
+
+ Brute:
+
+
+ {{:data.occupant.bruteLoss}}
+
+
+ Burn:
+
+
+ {{:data.occupant.fireLoss}}
+
+
+ Oxygen:
+
+
+ {{:data.occupant.oxyLoss}}
+
+
+ Toxins:
+
+
+ {{:data.occupant.toxLoss}}
+
+
+ Brain:
+
+
+ {{:data.occupant.brainLoss}}
+
+
+ Radiation Level:
+
+
+ {{:data.occupant.radLoss}}
+
+
+ Genetic:
+
+
+ {{:data.occupant.cloneLoss}}
+
+
+ Paralysis:
+
+
+ {{:data.occupant.paralysis}}% ({{:data.occupant.paralysisSeconds}} seconds left!)
+
+
+
+
+ Body Temperature:
+
+
+ {{:data.occupant.bodyTempC}}°C, {{:data.occupant.bodyTempF}}°F
+
+
+ {{if data.occupant.hasVirus}}
+
+ Viral pathogen detected in blood stream.
+
+ {{/if}}
+ {{if data.occupant.hasBorer}}
+
+ Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.
+
+ {{/if}}
+ {{if data.occupant.blind}}
+
Pupils unresponsive.
+ {{/if}}
+ {{if data.occupant.nearsighted}}
+
Retinal Misalignment Detected
+ {{/if}}
+
+
+ Blood
+
+
+
+ Volume
+
+
+ {{:data.occupant.blood.volume}}
+
+
+ Percent
+
+
+ {{:data.occupant.blood.percent}}%
+
+
+
+
+ Reagents
+
+
+ {{for data.occupant.reagents}}
+
+ {{:value.name}}
+
+
+ {{:value.amount}}
+
+ {{/for}}
+
+
+
External Organs
+
+ {{for data.occupant.extOrgan}}
+
+ {{if value.status.destroyed}}
+
+ {{:value.name}} - DESTROYED
+
+ {{else}}
+
+
+ {{if value.status.broken}}
+ {{:value.status.broken}}
+ {{else value.status.splinted}}
+ Splinted
+ {{else value.status.robotic}}
+ Robotic
+ {{/if}}
+
+
+ Brute/Burn
+
+
+ {{:value.bruteLoss}}/{{:value.fireLoss}}
+
+
+ Injuries
+
+
+ {{if !value.status.bleeding}}
+ {{if !value.status.internalBleeding}}
+ No Injuries Detected
+ {{else}}
+
Internal Bleeding Detected
+ {{/if}}
+ {{else}}
+ {{if value.status.internalBleeding}}
+
Internal Bleeding Detected. External Bleeding Detected.
+ {{else}}
+
External Bleeding Detected
+ {{/if}}
+ {{/if}}
+
+ {{if value.germ_level > 100}}
+
+ Infection
+
+
+ {{if value.germ_level < 300}}
+ Mild Infection
+ {{else value.germ_level < 400}}
+ Mild Infection+
+ {{else value.germ_level < 500}}
+ Mild Infection++
+ {{else value.germ_level < 700}}
+ Acute Infection
+ {{else value.germ_level < 800}}
+ Acute Infection+
+ {{else value.germ_level < 900}}
+ Acute Infection++
+ {{else value.germ_level >= 900}}
+ Septic
+ {{/if}}
+
+ {{/if}}
+ {{if value.open}}
+
+ Operation Status
+
+
+ Open Incision
+
+ {{/if}}
+ {{if value.implants_len}}
+
+ Implants
+
+ {{for value.implants :impValue:impindex}}
+
+ {{:impValue.known ? impValue.name : "Unknown"}}
+
+ {{/for}}
+ {{/if}}
+ {{/if}}
+
+ {{/for}}
+
+
Internal Organs
+
+ {{for data.occupant.intOrgan}}
+
+
+ {{if value.germ_level > 100}}
+
+ Infection
+
+
+ {{if value.germ_level < 300}}
+ Mild Infection
+ {{else value.germ_level < 400}}
+ Mild Infection+
+ {{else value.germ_level < 500}}
+ Mild Infection++
+ {{else value.germ_level < 700}}
+ Acute Infection
+ {{else value.germ_level < 800}}
+ Acute Infection+
+ {{else value.germ_level < 900}}
+ Acute Infection++
+ {{else value.germ_level >= 900}}
+ Septic
+ {{/if}}
+
+ {{/if}}
+
+ Damage
+
+
+ {{:value.damage}}
+
+
+ {{/for}}
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/arcade_battle.tmpl b/nano/templates/arcade_battle.tmpl
new file mode 100644
index 0000000000..0455649404
--- /dev/null
+++ b/nano/templates/arcade_battle.tmpl
@@ -0,0 +1,26 @@
+
+
+
{{:data.enemyName}}
+
+
{{:data.temp}}
+
+
Health:
+
{{:data.playerHP}}
+
Magic:
+
{{:data.playerMP}}
+
Enemy Health:
+
{{:data.enemyHP}}
+
+
+{{if data.gameOver}}
+
{{:helper.link('New Game', null, {'newgame' : 1})}}
+{{else}}
+
+ {{:helper.link('Attack', null, {'attack' : 1})}}
+ {{:helper.link('Heal', null, {'heal' : 1})}}
+ {{:helper.link('Recharge Power', null, {'charge' : 1})}}
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/atmo_control.tmpl b/nano/templates/atmo_control.tmpl
new file mode 100644
index 0000000000..503f15458f
--- /dev/null
+++ b/nano/templates/atmo_control.tmpl
@@ -0,0 +1,218 @@
+
+{{if data.sensors}}
+ {{for data.sensors}}
+ {{if value.sensor_data}}
+
+ {{:value.long_name}}
+ {{if value.sensor_data.pressure}}
+
Pressure:
+ {{:value.sensor_data.pressure}} kPa
+ {{/if}}
+ {{if value.sensor_data.temperature}}
+
Temperature:
+ {{:value.sensor_data.temperature}} kPa
+ {{/if}}
+ {{if value.sensor_data.oxygen || value.sensor_data.nitrogen || value.sensor_data.carbon_dioxide || value.sensor_data.phoron}}
+
Gas Composition:
+ {{if value.sensor_data.oxygen}}
+ {{:value.sensor_data.pressure}} % O2
+ {{/if}}
+ {{if value.sensor_data.nitrogen}}
+ {{:value.sensor_data.pressure}} % N
+ {{/if}}
+ {{if value.sensor_data.carbon_dioxide}}
+ {{:value.sensor_data.pressure}} % CO2
+ {{/if}}
+ {{if value.sensor_data.phoron}}
+ {{:value.sensor_data.pressure}} % TX
+ {{/if}}
+ {{/if}}
+
+ {{else}}
+
+
{{:value.long_name}} can not be found!
+
+ {{/if}}
+ {{/for}}
+{{else}}
+
+ No sensors connected.
+
+{{/if}}
+
+{{if data.tanks || data.core}}
+
+ {{if data.tanks}}
+ Tank Control System
+ {{else data.core}}
+ Core Cooling Control System
+ {{/if}}
+
+
+ {{if data.input_info}}
+
+
+ {{if data.tanks}}
+ Input:
+ {{else data.core}}
+ Coolant Input:
+ {{/if}}
+
+
+ {{if data.input_info.power}}
+ Injecting
+ {{else}}
+ On Hold
+ {{/if}}
+
+ {{:helper.link('Refresh', null, {'in_refresh_status' : 1})}}
+
+
+
Flow Rate Limit:
+
{{:data.input_info.volume_rate}} L/s
+
+
+
Command:
+ {{:helper.link('Toggle Power', null, {'in_toggle_injector' : 1})}}
+ {{:helper.link('Set Flow Rate', null, {'in_set_flowrate' : 1})}}
+
+ {{else}}
+
+
ERROR: Can not find input port
+ {{:helper.link('Search', null, {'in_refresh_status' : 1})}}
+
+ {{/if}}
+
+
+ Flow Rate Limit:
+
+
+ {{:helper.link('-', null, {'adj_input_flow_rate' : -100})}}
+ {{:helper.link('-', null, {'adj_input_flow_rate' : -10})}}
+ {{:helper.link('-', null, {'adj_input_flow_rate' : -1})}}
+ {{:helper.link('-', null, {'adj_input_flow_rate' : -0.1})}}
+
{{:data.input_flow_setting}} L/s
+ {{:helper.link('+', null, {'adj_input_flow_rate' : 0.1})}}
+ {{:helper.link('+', null, {'adj_input_flow_rate' : 1})}}
+ {{:helper.link('+', null, {'adj_input_flow_rate' : 10})}}
+ {{:helper.link('+', null, {'adj_input_flow_rate' : 100})}}
+
+
+
+ {{if data.output_info}}
+
+
+ {{if data.tanks}}
+ Output:
+ {{else data.core}}
+ Core Outpump:
+ {{/if}}
+
+
+ {{if data.input_info.power}}
+ Open
+ {{else}}
+ On Hold
+ {{/if}}
+
+ {{:helper.link('Refresh', null, {'out_refresh_status' : 1})}}
+
+
+ {{if data.tanks}}
+
Max Output Pressure:
+
{{:data.output_info.output_pressure}} kPa
+ {{else data.core}}
+
Min Core Pressure:
+
{{:data.output_info.pressure_limit}} kPa
+ {{/if}}
+
+
+
Command:
+ {{:helper.link('Toggle Power', null, {'out_toggle_power' : 1})}}
+ {{:helper.link('Set Pressure', null, {'out_set_pressure' : 1})}}
+
+ {{else}}
+
+
ERROR: Can not find output port
+ {{:helper.link('Search', null, {'out_refresh_status' : 1})}}
+
+ {{/if}}
+
+
+ {{if data.tanks}}
+
+ Max Output Pressure Set:
+
+
+ {{:helper.link('-', null, {'adj_pressure' : -1000})}}
+ {{:helper.link('-', null, {'adj_pressure' : -100})}}
+ {{:helper.link('-', null, {'adj_pressure' : -10})}}
+ {{:helper.link('-', null, {'adj_pressure' : -1})}}
+
{{:data.pressure_setting}} kPa
+ {{:helper.link('+', null, {'adj_pressure' : 1})}}
+ {{:helper.link('+', null, {'adj_pressure' : 10})}}
+ {{:helper.link('+', null, {'adj_pressure' : 100})}}
+ {{:helper.link('+', null, {'adj_pressure' : 1000})}}
+
+ {{else data.core}}
+
+ Min Core Pressure Set:
+
+
+ {{:helper.link('-', null, {'adj_pressure' : -100})}}
+ {{:helper.link('-', null, {'adj_pressure' : -50})}}
+ {{:helper.link('-', null, {'adj_pressure' : -10})}}
+ {{:helper.link('-', null, {'adj_pressure' : -1})}}
+
{{:data.pressure_setting}} kPa
+ {{:helper.link('+', null, {'adj_pressure' : 1})}}
+ {{:helper.link('+', null, {'adj_pressure' : 10})}}
+ {{:helper.link('+', null, {'adj_pressure' : 50})}}
+ {{:helper.link('+', null, {'adj_pressure' : 100})}}
+
+ {{/if}}
+
+{{/if}}
+
+{{if data.fuel}}
+
Fuel Injection System
+
+ {{if data.device_info}}
+
+
+ Status:
+
+
+ {{if data.device_info.power}}
+ Injecting
+ {{else}}
+ On Hold
+ {{/if}}
+
+ {{:helper.link('Refresh', null, {'refresh_status' : 1})}}
+
+
+
Rate:
+
{{:data.device_info.volume_rate}} L/s
+
+
+
Automated Fuel Injection:
+ {{if data.automation}}
+ {{:helper.link('Engaged', null, {'toggle_automation' : 1})}}
+
Injector Controls Locked Out
+ {{else}}
+ {{:helper.link('Disengaged', null, {'toggle_automation' : 1})}}
+
Injector:
+ {{:helper.link('Toggle Power', null, {'toggle_injector' : 1})}}
+ {{:helper.link('Inject (1 Cycle)', null, {'injection' : 1})}}
+ {{/if}}
+
+ {{else}}
+
+
ERROR: Can not find device
+ {{:helper.link('Search', null, {'refresh_status' : 1})}}
+
+ {{/if}}
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/chem_master.tmpl b/nano/templates/chem_master.tmpl
new file mode 100644
index 0000000000..f163447dbf
--- /dev/null
+++ b/nano/templates/chem_master.tmpl
@@ -0,0 +1,205 @@
+/obj/machinery/chem_master/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob)
+
+ if(beaker)
+ var/datum/reagents/R = beaker:reagents
+ if (href_list["analyze"])
+ var/dat = ""
+ if(!condi)
+ if(href_list["name"] == "Blood")
+ var/datum/reagent/blood/G
+ for(var/datum/reagent/F in R.reagent_list)
+ if(F.name == href_list["name"])
+ G = F
+ break
+ var/A = G.name
+ var/B = G.data["blood_type"]
+ var/C = G.data["blood_DNA"]
+ dat += "
Chemmaster 3000Chemical infos:
Name:
[A]
Description:
Blood Type: [B]
DNA: [C]
(Back)"
+ else
+ dat += "
Chemmaster 3000Chemical infos:
Name:
[href_list["name"]]
Description:
[href_list["desc"]]
(Back)"
+ else
+ dat += "
Condimaster 3000Condiment infos:
Name:
[href_list["name"]]
Description:
[href_list["desc"]]
(Back)"
+ usr << browse(dat, "window=chem_master;size=575x400")
+ return
+
+ else if (href_list["add"])
+
+ if(href_list["amount"])
+ var/id = href_list["add"]
+ var/amount = Clamp((text2num(href_list["amount"])), 0, 200)
+ R.trans_id_to(src, id, amount)
+
+ else if (href_list["addcustom"])
+
+ var/id = href_list["addcustom"]
+ useramount = input("Select the amount to transfer.", 30, useramount) as num
+ useramount = Clamp(useramount, 0, 200)
+ src.Topic(null, list("amount" = "[useramount]", "add" = "[id]"))
+
+ else if (href_list["remove"])
+
+ if(href_list["amount"])
+ var/id = href_list["remove"]
+ var/amount = Clamp((text2num(href_list["amount"])), 0, 200)
+ if(mode)
+ reagents.trans_id_to(beaker, id, amount)
+ else
+ reagents.remove_reagent(id, amount)
+
+
+ else if (href_list["removecustom"])
+
+ var/id = href_list["removecustom"]
+ useramount = input("Select the amount to transfer.", 30, useramount) as num
+ useramount = Clamp(useramount, 0, 200)
+ src.Topic(null, list("amount" = "[useramount]", "remove" = "[id]"))
+
+ else if (href_list["toggle"])
+ mode = !mode
+
+ else if (href_list["main"])
+ attack_hand(usr)
+ return
+ else if (href_list["eject"])
+ if(beaker)
+ beaker:loc = src.loc
+ beaker = null
+ reagents.clear_reagents()
+ icon_state = "mixer0"
+ else if (href_list["createpill"] || href_list["createpill_multiple"])
+ var/count = 1
+
+ if(reagents.total_volume/count < 1) //Sanity checking.
+ return
+
+ if (href_list["createpill_multiple"])
+ count = input("Select the number of pills to make.", "Max [max_pill_count]", pillamount) as num
+ count = Clamp(count, 1, max_pill_count)
+
+ if(reagents.total_volume/count < 1) //Sanity checking.
+ return
+
+ var/amount_per_pill = reagents.total_volume/count
+ if (amount_per_pill > 60) amount_per_pill = 60
+
+ var/name = sanitizeSafe(input(usr,"Name:","Name your pill!","[reagents.get_master_reagent_name()] ([amount_per_pill] units)"), MAX_NAME_LEN)
+
+ if(reagents.total_volume/count < 1) //Sanity checking.
+ return
+ while (count--)
+ var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
+ if(!name) name = reagents.get_master_reagent_name()
+ P.name = "[name] pill"
+ P.pixel_x = rand(-7, 7) //random position
+ P.pixel_y = rand(-7, 7)
+ P.icon_state = "pill"+pillsprite
+ reagents.trans_to_obj(P,amount_per_pill)
+ if(src.loaded_pill_bottle)
+ if(loaded_pill_bottle.contents.len < loaded_pill_bottle.storage_slots)
+ P.loc = loaded_pill_bottle
+ src.updateUsrDialog()
+
+ else if (href_list["createbottle"])
+ if(!condi)
+ var/name = sanitizeSafe(input(usr,"Name:","Name your bottle!",reagents.get_master_reagent_name()), MAX_NAME_LEN)
+ var/obj/item/weapon/reagent_containers/glass/bottle/P = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
+ if(!name) name = reagents.get_master_reagent_name()
+ P.name = "[name] bottle"
+ P.pixel_x = rand(-7, 7) //random position
+ P.pixel_y = rand(-7, 7)
+ P.icon_state = bottlesprite
+ reagents.trans_to_obj(P,60)
+ P.update_icon()
+ else
+ var/obj/item/weapon/reagent_containers/food/condiment/P = new/obj/item/weapon/reagent_containers/food/condiment(src.loc)
+ reagents.trans_to_obj(P,50)
+ else if(href_list["change_pill"])
+ #define MAX_PILL_SPRITE 20 //max icon state of the pill sprites
+ var/dat = "
"
+ for(var/i = 1 to MAX_PILL_SPRITE)
+ dat += " |
"
+ dat += "
"
+ usr << browse(dat, "window=chem_master")
+ return
+ else if(href_list["change_bottle"])
+ var/dat = "
"
+ for(var/sprite in BOTTLE_SPRITES)
+ dat += " |
"
+ dat += "
"
+ usr << browse(dat, "window=chem_master")
+ return
+ else if(href_list["pill_sprite"])
+ pillsprite = href_list["pill_sprite"]
+ else if(href_list["bottle_sprite"])
+ bottlesprite = href_list["bottle_sprite"]
+
+ src.updateUsrDialog()
+ return
+
+
+{{:helper.link(data.beaker ? 'Eject Beaker and Clear Buffer' : 'Please insert beaker', 'eject', {'eject' : 1}), data.beaker ? null : 'linkOff'}}
+{{:helper.link(data.pillBottle ? 'Eject Pill Bottle' : 'Please insert beaker', 'eject', {'ejectp' : 1}), data.pillBottle ? null : 'linkOff'}}
+{{:data.pillBottleTotal}} / {{:data.pillBottleMax}}
+
+{{if data.beakerReagent}}
+ Add to buffer:
+ {{for data.beakerReagent}}
+ {{:value.name}} , {{:value.volume}} Units -
+ {{:helper.link('Analyze', 'signal-diag', {'analyze' : 1, 'desc' : value.description, 'name' : value.name})}}
+ {{:helper.link('1', 'plus', {'add' : value.id, 'amount' : 1})}}
+ {{:helper.link('5', 'plus', {'add' : value.id, 'amount' : 5})}}
+ {{:helper.link('10', 'plus', {'add' : value.id, 'amount' : 10})}}
+ {{:helper.link('30', 'plus', {'add' : value.id, 'amount' : 30})}}
+ {{:helper.link('60', 'plus', {'add' : value.id, 'amount' : 60})}}
+ {{:helper.link('All', 'plus', {'add' : value.id, 'amount' : value.volume})}}
+ {{:helper.link('Custom', 'plus', {'addcustom' : value.id})}}
+
+if(!beaker) data.beaker
+if(src.loaded_pill_bottle) data.pillBottle
+[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.storage_slots]\] data.pillBottleTotal data.pillBottleMax
+
+var/datum/reagents/R = beaker:reagents
+if(!R.total_volume)
+ dat += "Beaker is empty."
+ else
+ dat += "Add to buffer:
"
+ for(var/datum/reagent/G in R.reagent_list)
+ dat += "[G.name] , [G.volume] Units - "
+ dat += "
(Analyze) "
+ dat += "
(1) "
+ dat += "
(5) "
+ dat += "
(10) "
+ dat += "
(30) "
+ dat += "
(60) "
+ dat += "
(All) "
+ dat += "
(Custom)"
+
+ dat += "
Transfer to
[(!mode ? "disposal" : "beaker")]:"
+ if(reagents.total_volume)
+ for(var/datum/reagent/N in reagents.reagent_list)
+ dat += "[N.name] , [N.volume] Units - "
+ dat += "
(Analyze) "
+ dat += "
(1) "
+ dat += "
(5) "
+ dat += "
(10) "
+ dat += "
(30) "
+ dat += "
(60) "
+ dat += "
(All) "
+ dat += "
(Custom)"
+ else
+ dat += "Empty
"
+ if(!condi)
+ dat += "
Create pill (60 units max)
"
+ dat += "
Create multiple pills"
+ dat += "
Create bottle (60 units max)
"
+ else
+ dat += "
Create bottle (50 units max)"
+ if(!condi)
+ user << browse("
Chemmaster 3000Chemmaster menu:
[dat]", "window=chem_master;size=575x400")
+ else
+ user << browse("
Condimaster 3000Condimaster menu:
[dat]", "window=chem_master;size=575x400")
+ onclose(user, "chem_master")
+ return
\ No newline at end of file
diff --git a/nano/templates/cloning.tmpl b/nano/templates/cloning.tmpl
new file mode 100644
index 0000000000..d1ea7df3ad
--- /dev/null
+++ b/nano/templates/cloning.tmpl
@@ -0,0 +1,115 @@
+
+
+{{:data.temp}}
+
+{{if data.menu == 1}}
+
+
Modules
+ {{if data.scanner}}
+ DNA scanner found.
+ {{else}}
+ DNA scanner not found.
+ {{/if}}
+
+ {{if data.podsLen > 0}}
+ {{:data.podsLen}} cloning vat\s found.
+ {{else}}
+ No cloning vats found.
+ {{/if}}
+
+
+
Scanner Functions
+
+ {{if data.loading}}
+
Scanning...
+ {{else}}
+
{{:data.scantemp}}
+ {{/if}}
+
+ {{if data.scanner}}
+ {{if data.occupant}}
+
+ {{:helper.link('Scan - ' + {{:data.occupant}}, 'play', {'scan' : 1})}}
+ {{else}}
+ Scanner unoccupied
+ {{/if}}
+
+ {{if data.locked}}
+ {{:helper.link('Unlock', 'locked', {'lock' : 1}, null, 'redButton')}}
+ {{else}}
+ {{:helper.link('Lock', 'unlocked', {'lock' : 1})}}
+ {{/if}}
+
+ {{else}}
+ No scanner connected!
+ {{/if}}
+
+ {{if data.podsLen}}
+ {{for data.pods}}
+ {{:value.pod}} biomass:
{{:value.biomass}}
+ {{/for}}
+ {{/if}}
+
+
+
Database Functions
+
+ {{:helper.link('View Records', 'list', {'menu' : 2})}}
+
+ {{:helper.link('Eject Disk', 'eject', {'disk' : 'eject'}, data.diskette ? null : 'linkOff')}}
+
+{{else data.menu == 2}}
+
Current records
+
+ {{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 1})}}
+
+ {{for data.records}}
+
{{:helper.link(value.name, 'document', {'view_rec' : value.record})}}
+ {{/for}}
+
+{{else data.menu == 3}}
+
Selected Record
+ {{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 2})}}
+
+ {{if activeRecord}}
+ {{:helper.link('Delete Record', 'trash', {'del_rec' : 1}, null, 'redButton')}}
+
Name: {{:data.activeRecord.real_name}}
+
+
+
+ {{:helper.link('Load from disk', 'transfer-e-w', {'disk' : 'load'}, data.disk ? null : 'linkOff')}}
+
+ Save: {{:helper.link('UI + UE', 'disk', {'save_disk' : 'ue'}, data.disk ? null : 'linkOff')}}
+ {{:helper.link('UI', 'disk', {'save_disk' : 'ui'}, data.disk ? null : 'linkOff')}}
+ {{:helper.link('SE', 'disk', {'save_disk' : 'se'}, data.disk ? null : 'linkOff')}}
+
+
UI: {{:data.activeRecord.ui}}
+
SE: {{:data.activeRecord.se}}
+
+ {{:helper.link('Clone', 'play', {'clone' : data.activeRecord.active_record}, data.podsLen ? null : 'linkOff')}}
+
+ {{else}}
+ ERROR: Record not found.
+ {{/if}}
+
+{{else data.menu == 4}}
+ {{:data.temp}}
+
+
Confirm Record Deletion
+
+
Scan card to confirm.
+
+ {{:helper.link('Cancel', 'cancel', {'menu' : 3})}}
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/fax.tmpl b/nano/templates/fax.tmpl
new file mode 100644
index 0000000000..5af31d6adc
--- /dev/null
+++ b/nano/templates/fax.tmpl
@@ -0,0 +1,32 @@
+
+
+Confirm Identity: {{:helper.link(data.scanName, 'check', {'scan' : 1})}}
+{{if data.authenticated}}
+ {{:helper.link('Log Out', 'eject', {'logout' : 1}, null, 'linkDanger')}}
+
+
Logged in to: {{:data.bossName}} Quantum Entanglement Network
+ {{if data.copyItem}}
+ {{:helper.link('Remove Item', 'eject', {'remove' : 1})}}
+ {{if data.cooldown}}
+
Transmitter arrays realigning. Please stand by.
+ {{else}}
+ {{:helper.link('Send', 'signal-diag', {'send' : 1})}}
+
Currently sending: {{:data.copyItemName}}
+
Sending to: {{:helper.link(data.destination, 'tag', {'dept' : 1})}}
+ {{/if}}
+ {{else}}
+ Please insert paper to send via secure connection.
+ {{if data.cooldown}}
+
Transmitter arrays realigning. Please stand by.
+ {{/if}}
+ {{/if}}
+{{else}}
+ {{:helper.link('Log In', 'person', {'auth' : 1})}}
+ Proper authentication is required to use this device.
+ {{if data.copyItem}}
+ {{:helper.link('Remove Item', 'eject', {'remove' : 1})}}
+ {{/if}}
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/guest_pass.tmpl b/nano/templates/guest_pass.tmpl
new file mode 100644
index 0000000000..bed279b51a
--- /dev/null
+++ b/nano/templates/guest_pass.tmpl
@@ -0,0 +1,59 @@
+
+
+{{if data.mode == 1}}
+
+
+ Activity Log
+
+ {{:helper.link('Print', 'print', {'print' : 1})}} {{:helper.link('Back', 'arrowreturn-1-w', {'mode' : 0})}}
+
+
+ {{for data.log}}
+
+ {{:value}}
+
+ {{/for}}
+{{else}}
+
Guest pass terminal #{{:data.uid}}
+
+ {{:helper.link('View activity log', 'list', {'mode' : 1})}} {{:helper.link('Issure Pass', 'eject', {'action' : 'issue'})}}
+
+
+
+
+ Issuing ID:
+
+ {{:helper.link(data.giver, 'person', {'action' : 'id'})}}
+
+
+
+ Issued to:
+
+ {{:helper.link(data.giveName, 'pencil', {'choice' : 'giv_name'})}}
+
+
+
+ Reason:
+
+ {{:helper.link(data.reason, 'pencil', {'choice' : 'reason'})}}
+
+
+
+ Duration (minutes):
+
+ {{:helper.link(data.duration, 'clock', {'choice' : 'duration'})}}
+
+
+ {{for data.area}}
+
+ {{:helper.link(value.area_name, value.on ? 'check' : 'close', {'choice' : 'access', 'access' : value.area}, null, value.on ? 'linkOn' : null)}}
+
+ {{/for}}
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/holodeck.tmpl b/nano/templates/holodeck.tmpl
new file mode 100644
index 0000000000..6c813944dd
--- /dev/null
+++ b/nano/templates/holodeck.tmpl
@@ -0,0 +1,33 @@
+
+
+Current Loaded Programs:
+{{for data.supportedPrograms}}
+ {{:helper.link(value.name, data.currentProgram == value.program ? 'check' : 'clear', {'program' : value.program}, data.currentProgram == value.program ? 'linkOn' : null)}}
+{{/for}}
+Please ensure that only holographic weapons are used in the holodeck if a combat simulation has been loaded.
+{{if data.isSilicon}}
+ {{if data.safetyDisabled}}
+ {{if data.emagged}}
+
ERROR: Cannot re-enable Safety Protocols.
+ {{else}}
+ {{:helper.link('Re-Enable Safety Protocols?', 'help', {'AIoverride' : 1}, null, 'linkOn')}}
+ {{/if}}
+ {{else}}
+ {{:helper.link('Re-Enable Safety Protocols?', 'help', {'AIoverride' : 1}, null, 'linkDanger')}}
+ {{/if}}
+{{/if}}
+
+{{if data.safetyDisabled}}
+ {{for data.restrictedPrograms}}
+ {{:helper.link('Begin ' + value.name, data.currentProgram == value.program ? 'check' : 'clear', {'program' : value.program}, data.currentProgram == value.program ? 'linkOn' : null)}}
+ Ensure the holodeck is empty before testing.
+ {{/for}}
+ Safety Protocols are
DISABLED
+{{else}}
+ Safety Protocols are
ENABLED
+{{/if}}
+
+{{:helper.link(data.gravity ? 'On ' : 'Off', data.gravity ? 'check' : 'clear', {'gravity' : 1}, null, data.gravity ? 'linkOn' : linkDanger')}}
\ No newline at end of file
diff --git a/nano/templates/laptop_vendor.tmpl b/nano/templates/laptop_vendor.tmpl
new file mode 100644
index 0000000000..6854619b19
--- /dev/null
+++ b/nano/templates/laptop_vendor.tmpl
@@ -0,0 +1,175 @@
+
+
+{{if data.mode == 0}}
+
+
+ Please choose your laptop customization options.
+ Your comptuer will automatically be loaded with any programs you can use after the transaction is complete.
+ Some programs will require additional components to be installed!
+
+
+
+
+
+
+
HDD (Required):
+
Added
+
+
+
+
+ Card Reader:
+
+ {{:helper.link('Single (50)', data.cardreader == 1 ? 'check' : 'plus', {'choice' : 'single_add'}, data.cardreader == 1 ? 'selected' : null)}}
+ {{:helper.link('Dual (125)', data.cardreader == 2 ? 'check' : 'plus', {'choice' : 'dual_add'}, data.cardreader == 2 ? 'selected' : null)}}
+ {{:helper.link('None', 'close', {'choice' : 'cardreader_rem'}, data.cardreader == 0 ? 'redButton' : null)}}
+
+
+
+
+ Floppy Drive:
+
+ {{:helper.link('Add (50)', data.floppy == 1 ? 'check' : 'plus', {'choice' : 'floppy_add'}, data.floppy == 1 ? 'selected' : null)}}
+ {{:helper.link('None', 'close', {'choice' : 'floppy_rem'}, data.floppy == 0 ? 'redButton' : null)}}
+
+
+
+
+ Radio card:
+
+ {{:helper.link('Add (50)', data.radionet == 1 ? 'check' : 'plus', {'choice' : 'radio_add'}, data.radionet == 1 ? 'selected' : null)}}
+ {{:helper.link('None', 'close', {'choice' : 'radio_rem'}, data.radionet == 0 ? 'redButton' : null)}}
+
+
+
+
+ Camera Card:
+
+ {{:helper.link('Add (100)', data.camera == 1 ? 'check' : 'plus', {'choice' : 'camnet_add'}, data.camera == 1 ? 'selected' : null)}}
+ {{:helper.link('None', 'close', {'choice' : 'camnet_rem'}, data.camera == 0 ? 'redButton' : null)}}
+
+
+
+
+ Network card:
+
+
+ {{:helper.link('Area (75)', data.network == 1 ? 'check' : 'plus', {'choice' : 'area_add'}, data.network == 1 ? 'selected' : null)}}
+ {{:helper.link('Adjacent (50)', data.network == 2 ? 'check' : 'plus', {'choice' : 'prox_add'}, data.network == 2 ? 'selected' : null)}}
+ {{:helper.link('Powernet (25)', data.network == 3 ? 'check' : 'plus', {'choice' : 'cable_add'}, data.network == 3 ? 'selected' : null)}}
+ {{:helper.link('None', 'close', {'choice' : 'network_rem'}, data.network == 0 ? 'redButton' : null)}}
+
+
+
+
+
+
+
+ Power Source:
+
+ {{:helper.link('Extended (175)', data.power == 1 ? 'check' : 'plus', {'choice' : 'high_add'}, data.power == 1 ? 'selected' : null)}}
+ {{:helper.link('Unreal (250)', data.power == 2 ? 'check' : 'plus', {'choice' : 'super_add'}, data.power == 2 ? 'selected' : null)}}
+ {{:helper.link('Default', data.power == 0 ? 'check' : 'plus', {'choice' : 'power_rem'}, data.power == 0 ? 'selected' : null)}}
+
+
+
+
+
Total:
+
{{:data.total}}
+ {{:helper.link('Vend Laptop', 'cart', {'choice' : 'vend'})}}
+
+
+{{else data.mode == 1}}
+
Cart
+
+
+
+
+
Total:
+
{{:data.total}}
+
+
+
+
Card Reader:
+ {{if data.cardreader == 1}}
+ {{:helper.link('(single) (50)', 'close', {'choice' : 'cardreader_rem'})}}
+ {{else data.cardreader == 2}}
+ {{:helper.link('(double) (125)', 'close', {'choice' : 'cardreader_rem'})}}
+ {{else}}
+
None
+ {{/if}}
+
+
+
+
Floppy Drive:
+ {{if data.floppy == 1}}
+ {{:helper.link('Added (50)', 'close', {'choice' : 'floppy_rem'})}}
+ {{else}}
+
None
+ {{/if}}
+
+
+
+
Radio Card:
+ {{if data.radionet == 1}}
+ {{:helper.link('Added (50)', 'close', {'choice' : 'radio_rem'})}}
+ {{else}}
+
None
+ {{/if}}
+
+
+
+
Camera Card:
+ {{if data.camera == 1}}
+ {{:helper.link('Added (100)', 'close', {'choice' : 'camnet_rem'})}}
+ {{else}}
+
None
+ {{/if}}
+
+
+
+
Network Card:
+ {{if data.network == 1}}
+ {{:helper.link('Area (75)', 'close', {'choice' : 'network_rem'})}}
+ {{else data.network == 2}}
+ {{:helper.link('Adjacent (50)', 'close', {'choice' : 'network_rem'})}}
+ {{else data.network == 3}}
+ {{:helper.link('Powernet (25)', 'close', {'choice' : 'network_rem'})}}
+ {{else}}
+
None
+ {{/if}}
+
+
+
+
Power Source:
+ {{if data.power == 1}}
+ {{:helper.link('Unreal (250)', 'close', {'choice' : 'power_rem'})}}
+ {{else data.power == 2}}
+ {{:helper.link('Extended (175)', 'close', {'choice' : 'power_rem'})}}
+ {{else}}
+
Regular
+ {{/if}}
+
+
+
+
+
+
Please swipe your card and enter your PIN to complete the transaction
+
+
+
+
+ {{:helper.link('Cancel', 'close', {'choice' : 'cancel'}, null, 'redButton')}}
+
+{{else data.mode == 2}}
+
+ Please swipe your card and enter your PIN to finish returning your computer.
+
+
+
+ {{:helper.link('Cancel', 'close', {'choice' : 'cancel'}, null, 'redButton')}}
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/operating.tmpl b/nano/templates/operating.tmpl
new file mode 100644
index 0000000000..3772639915
--- /dev/null
+++ b/nano/templates/operating.tmpl
@@ -0,0 +1,75 @@
+
+
+{{if data.table}}
+
Patient Information:
+ {{if data.victim}}
+
+
+ Name:
+
+ {{:data.victim.real_name}}
+
+
+
+ Age:
+
+ {{:data.victim.age}}
+
+
+
+ Blood Type:
+
+ {{:data.victim.b_type}}
+
+
+
+
+ Health:
+
+ {{:data.victim.health}}
+
+
+
+ Brute Damage:
+
+ {{:data.victim.brute}}
+
+
+
+ Toxins Damage:
+
+ {{:data.victim.tox}}
+
+
+
+ Fire Damage:
+
+ {{:data.victim.burn}}
+
+
+
+ Suffocation Damage:
+
+ {{:data.victim.oxy}}
+
+
+
+ Patient Status:
+
+ {{:data.victim.stat}}
+
+
+
+ Heartbeat Rate:
+
+ {{:data.victim.pulse}}
+
+ {{else}}
+ No Patient Detected
+ {{/if}}
+{{else}}
+ No Table Detected
+{{/if}}
diff --git a/nano/templates/photocopier.tmpl b/nano/templates/photocopier.tmpl
new file mode 100644
index 0000000000..9d1bcf7918
--- /dev/null
+++ b/nano/templates/photocopier.tmpl
@@ -0,0 +1,47 @@
+
+
+{{if data.copyItem}}
+
+ {{:helper.link('Remove Item', 'eject', {'remove' : 1})}}
+ {{if data.toner}}
+ {{:helper.link('Copy', 'copy', {'copy' : 1})}}
+
+
+
+ Printing:
+
+
+
+ {{:helper.link('-', null, {'min' : 1}, data.copies == 1 ? 'linkOff' : null)}}
+
{{:data.copies}}
+ {{:helper.link('+', null, {'add' : 1}, data.copies == data.maxCopies ? 'linkOff' : null)}}
+
+
+
+
+
+
Current toner level:
+
{{:data.toner}}u
+
+ {{else}}
+
+ Please insert a new toner cartridge!
+
+ {{/if}}
+{{else data.toner}}
+
Please insert something to copy.
+ {{if data.isSilicon}}
+ {{:helper.link('Print photo from database', 'image', {'aipic' : 1})}}
+ {{/if}}
+
+
Current toner level:
+
{{:data.toner}}u
+
+{{else}}
+
+ Please insert a new toner cartridge!
+
+{{/if}}
\ No newline at end of file