Please place a valid subject into the DNA modifier.
';var o=e.split(""),i='
-
- Station Time:
-
-
- {{:data.stationTime}}
-
+
+ {{if data.app}}
+
{{:data.app.name}}
+
+
+ {{/if}}
+
+
-
-
-
- {{if data.mode == 0}}
-
-
- Owner:
-
-
- {{:data.owner}}, {{:data.ownjob}}
-
-
-
-
-
- ID:
-
-
- {{:helper.link(data.idLink, 'eject', {'choice' : "Authenticate"}, data.idInserted ? null : 'disabled', data.idInserted ? 'link fixedLeftWidest' : 'link 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', 'sticky-note', {'choice' : "1"}, null, 'pdalink fixedLeftWide')}}
- {{:helper.link('Messenger', data.newMessage ? 'envelope' : 'envelope-o', {'choice' : "2"}, null, 'pdalink fixedLeftWide')}}
- {{:helper.link('Crew Manifest', 'user', {'choice' : "41"}, null, 'pdalink fixedLeftWide')}}
-
-
-
- {{if data.cartridge}}
- {{if data.cartridge.access.access_clown == 1}}
-
-
- Clown:
-
-
- {{:helper.link('Honk Synthesizer', 'gear', {'choice' : "Honk"}, null, 'pdalink fixedLeftWide')}}
-
-
-
- {{/if}}
- {{if data.cartridge.access.access_engine == 1}}
-
-
- Engineering:
-
-
- {{:helper.link('Power Monitor', 'exclamation-triangle', {'choice' : "43"}, null, 'pdalink fixedLeftWide')}}
-
-
-
- {{/if}}
- {{if data.cartridge.access.access_medical == 1}}
-
-
- Medical:
-
-
- {{:helper.link('Medical Records', 'gear', {'choice' : "44"}, null, 'pdalink fixedLeftWide')}}
- {{:helper.link(data.scanmode == 1 ? 'Disable Med Scanner' : 'Enable Med Scanner', 'gear', {'choice' : "Medical Scan"}, null , 'pdalink fixedLeftWide')}}
-
-
-
- {{/if}}
- {{if data.cartridge.access.access_security == 1}}
-
-
- Security:
-
-
- {{:helper.link('Security Records', 'gear', {'choice' : "45"}, null, 'pdalink fixedLeftWide')}}
- {{if data.cartridge.radio ==1}} {{:helper.link('Security Bot Access', 'gear', {'choice' : "46"}, null, 'pdalink fixedLeftWide')}} {{/if}}
-
-
-
-
- {{/if}}
- {{if data.cartridge.access.access_quartermaster == 1}}
-
-
- Quartermaster:
-
-
- {{:helper.link('Supply Records', 'gear', {'choice' : "47"}, null, 'pdalink fixedLeftWide')}}
- {{if data.cartridge.radio == 3}} {{:helper.link('Delivery Bot Control', 'gear', {'choice' : "48"}, null, 'pdalink fixedLeftWide')}} {{/if}}
-
-
-
-
- {{/if}}
- {{/if}}
-
-
-
- Utilities:
-
-
- {{if data.cartridge}}
- {{if data.cartridge.access.access_status_display == 1}}
- {{:helper.link('Status Display', 'gear', {'choice' : "42"}, null, 'pdalink fixedLeftWide')}}
- {{/if}}
- {{if data.cartridge.access.access_janitor==1}}
- {{:helper.link('Custodial Locator', 'gear', {'choice' : "49"}, null, 'pdalink fixedLeftWide')}}
- {{/if}}
- {{if data.cartridge.radio == 2}}
- {{:helper.link('Signaler System', 'gear', {'choice' : "40"}, null, 'pdalink 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, 'pdalink fixedLeftWider')}}
- {{/if}}
- {{if data.cartridge.access.access_engine==1}}
- {{:helper.link(data.scanmode == 4 ? 'Disable Halogen Counter' : 'Enable Halogen Counter', 'gear', {'choice' : "Halogen Counter"}, null, 'pdalink 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, 'pdalink fixedLeftWide')}}
- {{/if}}
- {{if data.cartridge.access.access_remote_door==1}}
- {{:helper.link('Toggle Door', 'gear', {'choice' : "Toggle Door"}, null, 'pdalink fixedLeftWide')}}
- {{/if}}
- {{/if}}
- {{:helper.link('Atmospheric Scan', 'gear', {'choice' : "3"}, null, 'pdalink fixedLeftWide')}}
- {{:helper.link(data.fon==1 ? 'Disable Flashlight' : 'Enable Flashlight', 'lightbulb-o', {'choice' : "Light"}, null,'pdalink fixedLeftWide')}}
-
-
- {{if data.pai}}
-
-
- PAI Utilities:
-
-
- {{:helper.link('Configuration', 'gear', {'choice' : "pai", 'option' : "1"}, null, 'pdalink fixedLeft')}}
- {{:helper.link('Eject pAI', 'eject', {'choice' : "pai", 'option' : "2"}, null, 'pdalink fixedLeft')}}
-
-
- {{/if}}
-
-
- {{else data.mode == 1}}
-
-
-
-
- {{:helper.link('Edit Notes', 'gear', {'choice' : "Edit"}, null, 'pdalink fixedLeft')}}
-
-
-
-
- {{else data.mode == 2}}
-
SpaceMessenger V4.0.1
-
-
- Messenger Functions:
-
-
- {{:helper.link(data.silent==1 ? 'Ringer: Off' : 'Ringer: On', data.silent==1 ? 'volume-off' : 'volume-up', {'choice' : "Toggle Ringer"}, null, 'pdalink fixedLeftWide')}}
- {{:helper.link(data.toff==1 ? 'Messenger: Off' : 'Messenger: On',data.toff==1 ? 'close':'check', {'choice' : "Toggle Messenger"}, null, 'pdalink fixedLeftWide')}}
- {{:helper.link('Set Ringtone', 'comment', {'choice' : "Ringtone"}, null, 'pdalink fixedLeftWide')}}
- {{:helper.link('Delete all Conversations', 'trash', {'choice' : "Clear", 'option' : "All"}, null, 'pdalink fixedLeftWider')}}
-
-
- {{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, 'arrow-circle-down', {'choice' : "Select Conversation", 'convo' : value.Reference } , null, 'pdalink')}}
- {{if data.cartridge}}
- {{if data.cartridge.access.access_detonate_pda && value.Detonate}}
- {{:helper.link('*Detonate*', 'exclamation-circle', {'choice' : "Detonate", 'target' : value.Reference}, null, 'pdalink fixedLeft')}}
- {{/if}}
- {{if data.cartridge.access.access_clown}}
- {{:helper.link('*Send Virus*', 'star', {'choice' : "Send Honk", 'target' : value.Reference}, null, 'pdalink fixedLeft')}}
- {{/if}}
- {{if data.cartridge.access.access_mime}}
- {{:helper.link('*Send Virus*', 'arrow-circle-down', {'choice' : "Send Silence", 'target' : value.Reference}, null, 'pdalink fixedLeft')}}
- {{/if}}
- {{/if}}
-
- {{/for}}
-
Other PDAs
- {{for data.pdas}}
-
- {{:helper.link(value.Name, 'arrow-circle-down', {'choice' : "Message", 'target' : value.Reference}, null, 'pdalink')}}
- {{if data.cartridge}}
- {{if data.cartridge.access.access_detonate_pda && value.Detonate}} {{:helper.link('*Detonate*', 'exclamation-circle', {'choice' : "Detonate", 'target' : value.Reference}, null, 'pdalink fixedLeft')}} {{/if}}
- {{if data.cartridge.access.access_clown}} {{:helper.link('*Send Virus*', 'star', {'choice' : "Send Honk", 'target' : value.Reference}, null, 'pdalink fixedLeft')}} {{/if}}
- {{if data.cartridge.access.access_mime}} {{:helper.link('*Send Virus*', 'arrow-circle-down', {'choice' : "Send Silence", 'target' : value.Reference}, null, 'pdalink 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, 'pdalink 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, 'pdalink fixedLeft')}}
-
-
- {{else data.mode== 41}}
-
-
- {{if data.manifest.heads}}
- | Command |
- {{for data.manifest["heads"]}}
- {{if value.rank == "Captain"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/if}}
- {{/for}}
- {{/if}}
- {{if data.manifest.sec}}
- | Security |
- {{for data.manifest["sec"]}}
- {{if value.rank == "Head of Security"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/if}}
- {{/for}}
- {{/if}}
- {{if data.manifest.eng}}
- | Engineering |
- {{for data.manifest["eng"]}}
- {{if value.rank == "Chief Engineer"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/if}}
- {{/for}}
- {{/if}}
- {{if data.manifest.med}}
- | Medical |
- {{for data.manifest["med"]}}
- {{if value.rank == "Chief Medical Officer"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/if}}
- {{/for}}
- {{/if}}
- {{if data.manifest.sci}}
- | Science |
- {{for data.manifest["sci"]}}
- {{if value.rank == "Research Director"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/if}}
- {{/for}}
- {{/if}}
- {{if data.manifest.ser}}
- | Service |
- {{for data.manifest["ser"]}}
- {{if value.rank == "Head of Personnel"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/if}}
- {{/for}}
- {{/if}}
- {{if data.manifest.sup}}
- | Supply |
- {{for data.manifest["sup"]}}
- {{if value.rank == "Head of Personnel"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else value.rank == "Quartermaster"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/if}}
- {{/for}}
- {{/if}}
- {{if data.manifest.civ}}
- | Civilian |
- {{for data.manifest["civ"]}}
- {{if value.rank == "Head of Personnel"}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{else}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/if}}
- {{/for}}
- {{/if}}
- {{if data.manifest.misc}}
- | Misc |
- {{for data.manifest["misc"]}}
- | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
- {{/for}}
- {{/if}}
-
-
-
-
- {{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)}}
-
-
- Plasma:
-
-
- {{:helper.string('{1}%', data.aircontents.plasma > 0 ? 'bad' : 'good' , data.aircontents.plasma)}}
-
-
- {{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', 'exclamation-circle', {'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', 'bell', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'exclamation-triangle' : "default"}, null, null)}}
- {{:helper.link('Red Alert', 'bell', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'exclamation-triangle' : "redalert"}, null, null)}}
- {{:helper.link('Lockdown', 'exclamation-circle', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'exclamation-triangle' : "lockdown"}, null, null)}}
- {{:helper.link('Biohazard', 'exclamation-circle', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'exclamation-triangle' : "biohazard"}, null, null)}}
-
-
-
-
- {{else data.mode == 43}}
-
Station Power Monitors
-
- Select a power monitor:
-
- {{for data.records.powermonitors}}
-
- {{:helper.link(value.Name, 'exclamation-circle', {'cartmenu' : "1", 'choice' : "Power Select",'target' : value.ref}, null, null)}}
-
- {{/for}}
-
-
- {{else data.mode == 433}}
-
Powernet Status
- {{if data.records.powerconnected == 1}}
-
-
- Total Power:
-
-
- {{:data.records.poweravail}} W
-
-
-
-
- Total Load:
-
-
- {{:data.records.powerload}} W
-
-
-
-
- Total Demand:
-
-
- {{:data.records.powerdemand}} W
-
-
-
-
- | Area | Equip. | Lighting | Environ. | Cell | Load |
- {{for data.records.apcs}}
- | {{:value.Name}} |
- {{:helper.string('{1} | ', value.Equipment == "On" || value.Equipment == "AOn" ? '#4f7529' : '#8f1414', value.Equipment)}}
- {{:helper.string('{1} | ', value.Lights == "On" || value.Lights == "AOn" ? '#4f7529' : '#8f1414', value.Lights)}}
- {{:helper.string('{1} | ', value.Environment == "On" || value.Environment == "AOn" ? '#4f7529' : '#8f1414', value.Environment)}}
- {{:helper.string('{1}{2} | ', value.CellStatus == "F" ? '#4f7529' : value.CellStatus == "C" ? '#cd6500' : '#8f1414', value.CellStatus == "M" ? 'No Cell' : value.CellPct + '%', value.CellStatus == "M" ? '' : ' (' + value.CellStatus + ')')}}
- {{:value.Load}}W |
-
- {{/for}}
-
-
- {{else}}
-
Power monitor not connected to net.
- {{/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}}
- Species: {{:data.records.general.species}}
- Age: {{:data.records.general.age}}
- Rank: {{:data.records.general.rank}}
- Fingerprint: {{:data.records.general.fingerprint}}
- Physical Status: {{:data.records.general.p_stat}}
- Mental Status: {{:data.records.general.m_stat}}
- {{else}}
-
- General Record Lost!
-
- {{/if}}
- {{if data.records.medical_exists == 1}}
- Medical Data:
- Blood Type: {{:data.records.medical.b_type}}
- Minor Disabilities: {{:data.records.medical.mi_dis}}
- Details: {{:data.records.medical.mi_dis_d}}
- Major Disabilities: {{:data.records.medical.ma_dis}}
- Details: {{:data.records.medical.ma_dis_d}}
- Allergies: {{:data.records.medical.alg}}
- Details: {{:data.records.medical.alg_d}}
- Current Disease: {{:data.records.medical.cdi}}
- Details: {{:data.records.medical.alg_d}}
- 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}}
- Species: {{:data.records.general.species}}
- Age: {{:data.records.general.age}}
- Rank: {{:data.records.general.rank}}
- Fingerprint: {{:data.records.general.fingerprint}}
- Physical Status: {{:data.records.general.p_stat}}
- Mental Status: {{:data.records.general.m_stat}}
- {{else}}
-
- General Record Lost!
-
- {{/if}}
- {{if data.records.security_exists == 1}}
- Security Data:
- Criminal Status: {{:data.records.security.criminal}}
- Minor Crimes: {{:data.records.security.mi_crim}}
- Details: {{:data.records.security.mi_crim_d}}
- Major Crimes: {{:data.records.security.ma_crim}}
- Details: {{:data.records.security.ma_crim_d}}
- 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 {{:data.records.supply.shuttle_loc}}
- {{else}}
- Shuttle at {{:data.records.supply.shuttle_loc}}
- {{/if}}
-
- {{:data.records.supply.shuttle_time}}
-
-
-
-
-
-
- Current Approved Orders
- {{if data.records.supply.approved_count == 0}}
- No current approved orders
- {{else}}
- {{for data.records.supply.approved}}
- #{{:value.Number}} - {{:value.Name}} approved by {{:value.OrderedBy}}
{{if value.Comment != ""}} {{:value.Comment}}
{{/if}}
- {{/for}}
- {{/if}}
-
- Current Requested Orders
- {{if data.records.supply.requests_count == 0}}
- No current requested orders
- {{else}}
- {{for data.records.supply.requests}}
- #{{:value.Number}} - {{:value.Name}} requested by {{:value.OrderedBy}}
{{if value.Comment != ""}} {{:value.Comment}}
{{/if}}
- {{/for}}
- {{/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}}
-
- {{/if}}
{{else}}
No Owner information found, please swipe ID
-{{/if}}
-
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/pda_atmos_scan.tmpl b/nano/templates/pda_atmos_scan.tmpl
new file mode 100644
index 00000000000..80fa3838995
--- /dev/null
+++ b/nano/templates/pda_atmos_scan.tmpl
@@ -0,0 +1,60 @@
+
+
+
+ {{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)}}
+
+
+ Plasma:
+
+
+ {{:helper.string('{1}%', data.aircontents.plasma > 0 ? 'bad' : 'good' , data.aircontents.plasma)}}
+
+
+ {{if data.aircontents.other > 0}}
+
+ Unknown:
+
+
+ {{:data.aircontents.other}}%
+
+ {{/if}}
+ {{else}}
+
+ Unable to get air reading
+
+ {{/if}}
+
+
\ No newline at end of file
diff --git a/nano/templates/pda_janitor.tmpl b/nano/templates/pda_janitor.tmpl
new file mode 100644
index 00000000000..a2fd282ad3f
--- /dev/null
+++ b/nano/templates/pda_janitor.tmpl
@@ -0,0 +1,50 @@
+
+
+ Current Location:
+ {{if data.janitor.user_loc.x == 0}}
+ Unknown
+ {{else}}
+ {{:data.janitor.user_loc.x}} / {{:data.janitor.user_loc.y}}
+ {{/if}}
+
+
+ {{for data.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.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.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.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}}
+
+
\ No newline at end of file
diff --git a/nano/templates/pda_main_menu.tmpl b/nano/templates/pda_main_menu.tmpl
new file mode 100644
index 00000000000..680e4a8fa75
--- /dev/null
+++ b/nano/templates/pda_main_menu.tmpl
@@ -0,0 +1,48 @@
+
+
+
+ Owner:
+
+
+ {{:data.owner}}, {{:data.ownjob}}
+
+
+
+
+ ID:
+
+
+ {{:helper.link('Update PDA Info', 'refresh', {'choice' : "UpdateInfo"}, data.idInserted ? null : 'disabled', 'pdalink fixedLeftWide')}}
+
+
+
+
+
Functions
+
+{{for data.categories : cat : i}}
+
+
+ {{:cat}}:
+
+
+ {{for data.apps[cat]}}
+ {{:helper.link(value.name, value.icon, {'choice' : "StartProgram", 'program' : value.ref}, null, 'pdalink fixedLeftWide')}}
+ {{/for}}
+
+
+{{/for}}
+
+{{if data.pai}}
+
+
+ PAI Utilities:
+
+
+ {{:helper.link('Configuration', 'gear', {'choice' : "pai", 'option' : "1"}, null, 'pdalink fixedLeft')}}
+ {{:helper.link('Eject pAI', 'eject', {'choice' : "pai", 'option' : "2"}, null, 'pdalink fixedLeft')}}
+
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/pda_manifest.tmpl b/nano/templates/pda_manifest.tmpl
new file mode 100644
index 00000000000..ef9e91a088f
--- /dev/null
+++ b/nano/templates/pda_manifest.tmpl
@@ -0,0 +1,96 @@
+
+
+
+ {{if data.manifest.heads}}
+ | Command |
+ {{for data.manifest["heads"]}}
+ {{if value.rank == "Captain"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {{if data.manifest.sec}}
+ | Security |
+ {{for data.manifest["sec"]}}
+ {{if value.rank == "Head of Security"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {{if data.manifest.eng}}
+ | Engineering |
+ {{for data.manifest["eng"]}}
+ {{if value.rank == "Chief Engineer"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {{if data.manifest.med}}
+ | Medical |
+ {{for data.manifest["med"]}}
+ {{if value.rank == "Chief Medical Officer"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {{if data.manifest.sci}}
+ | Science |
+ {{for data.manifest["sci"]}}
+ {{if value.rank == "Research Director"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {{if data.manifest.ser}}
+ | Service |
+ {{for data.manifest["ser"]}}
+ {{if value.rank == "Head of Personnel"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {{if data.manifest.sup}}
+ | Supply |
+ {{for data.manifest["sup"]}}
+ {{if value.rank == "Head of Personnel"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else value.rank == "Quartermaster"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {{if data.manifest.civ}}
+ | Civilian |
+ {{for data.manifest["civ"]}}
+ {{if value.rank == "Head of Personnel"}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{else}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {{if data.manifest.misc}}
+ | Misc |
+ {{for data.manifest["misc"]}}
+ | {{:value.name}} | {{:value.rank}} | {{:value.active}} |
+ {{/for}}
+ {{/if}}
+
+
\ No newline at end of file
diff --git a/nano/templates/pda_medical.tmpl b/nano/templates/pda_medical.tmpl
new file mode 100644
index 00000000000..777fb91f4b8
--- /dev/null
+++ b/nano/templates/pda_medical.tmpl
@@ -0,0 +1,54 @@
+{{if !data.records}}
+
+ {{for data.recordsList}}
+
+ {{:helper.link(value.Name, 'user', {'choice' : "Records", 'target' : value.ref}, null, 'pdalink fixedLeftWidest')}}
+
+ {{empty}}
+
+ No records found.
+
+ {{/for}}
+{{else}}
+
+
+
+ {{if data.records.general}}
+
Name: {{:data.records.general.name}}
+
Sex: {{:data.records.general.sex}}
+
Species: {{:data.records.general.species}}
+
Age: {{:data.records.general.age}}
+
Rank: {{:data.records.general.rank}}
+
Fingerprint: {{:data.records.general.fingerprint}}
+
Physical Status: {{:data.records.general.p_stat}}
+
Mental Status: {{:data.records.general.m_stat}}
+ {{else}}
+
+ General Record Lost!
+
+ {{/if}}
+ {{if data.records.medical}}
+
+
Blood Type: {{:data.records.medical.b_type}}
+
Minor Disabilities: {{:data.records.medical.mi_dis}}
+
Details: {{:data.records.medical.mi_dis_d}}
+
Major Disabilities: {{:data.records.medical.ma_dis}}
+
Details: {{:data.records.medical.ma_dis_d}}
+
Allergies: {{:data.records.medical.alg}}
+
Details: {{:data.records.medical.alg_d}}
+
Current Disease: {{:data.records.medical.cdi}}
+
Details: {{:data.records.medical.alg_d}}
+
Important Notes: {{:data.records.medical.notes}}
+ {{else}}
+
+ Medical Record Lost!
+
+ {{/if}}
+
+
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/pda_messenger.tmpl b/nano/templates/pda_messenger.tmpl
new file mode 100644
index 00000000000..633ae7d4691
--- /dev/null
+++ b/nano/templates/pda_messenger.tmpl
@@ -0,0 +1,81 @@
+
+{{if data.active_conversation}}
+
+
+ Messenger Functions:
+
+
+ {{:helper.link('Delete Conversation', 'trash', {'choice' : "Clear", 'option' : "Convo"}, null, 'pdalink 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, 'pdalink fixedLeft')}}
+{{else}}
+
+
+ Messenger Functions:
+
+
+ {{:helper.link(data.silent==1 ? 'Ringer: Off' : 'Ringer: On', data.silent==1 ? 'volume-off' : 'volume-up', {'choice' : "Toggle Ringer"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link(data.toff==1 ? 'Messenger: Off' : 'Messenger: On',data.toff==1 ? 'close':'check', {'choice' : "Toggle Messenger"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Set Ringtone', 'comment', {'choice' : "Ringtone"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Delete all Conversations', 'trash', {'choice' : "Clear", 'option' : "All"}, null, 'pdalink fixedLeftWider')}}
+
+
+ {{if data.toff == 0}}
+
+ {{if data.charges}}
+
+ {{:data.charges}} charges left.
+
+
+ {{/if}}
+
+ {{if data.pda_count == 0}}
+
No other PDAS located
+ {{else}}
+
Current Conversations
+ {{for data.convopdas}}
+
+ {{:helper.link(value.Name, 'arrow-circle-down', {'choice' : "Select Conversation", 'convo' : value.Reference } , null, 'pdalink')}}
+ {{if data.charges}}
+ {{for data.plugins : plugin : i}}
+ {{:helper.link(plugin.name, plugin.icon, {'choice' : "Messenger Plugin", 'plugin' : plugin.ref, 'target' : value.Reference}, null, 'pdalink fixedLeft')}}
+ {{/for}}
+ {{/if}}
+
+ {{/for}}
+
Other PDAs
+ {{for data.pdas}}
+
+ {{:helper.link(value.Name, 'arrow-circle-down', {'choice' : "Message", 'target' : value.Reference}, null, 'pdalink')}}
+ {{if data.charges}}
+ {{for data.plugins : plugin : i}}
+ {{:helper.link(plugin.name, plugin.icon, {'choice' : "Messenger Plugin", 'plugin' : plugin.ref, 'target' : value.Reference}, null, 'pdalink fixedLeft')}}
+ {{/for}}
+ {{/if}}
+
+ {{/for}}
+ {{/if}}
+ {{/if}}
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/pda_mule.tmpl b/nano/templates/pda_mule.tmpl
new file mode 100644
index 00000000000..cf3c5eff6f6
--- /dev/null
+++ b/nano/templates/pda_mule.tmpl
@@ -0,0 +1,118 @@
+{{if !data.mulebot.active}}
+ {{if data.mulebot.count == 0}}
+
No bots found.
+ {{else}}
+
+ Select a MULE:
+
+
+ {{for data.mulebot.bots}}
+
+ {{:helper.link(value.Name, 'gear', {'radiomenu' : "1", 'op' : "control",'bot' : value.ref}, null, 'pdalink fixedLeftWidest')}} (Location: {{:value.Location}})
+
+ {{/for}}
+ {{/if}}
+
+ {{:helper.link('Scan for Bots','rss', {'radiomenu' : "1", 'op' : "scanbots"}, null, 'pdalink fixedLeftWidest')}}
+{{else}}
+
{{:data.mulebot.active}}
+ {{if data.mulebot.botstatus.mode == -1}}
+
Waiting for response...
+ {{else}}
+
Status:
+
+
+ Location:
+
+
+ {{:data.mulebot.botstatus.loca}}
+
+
+
+
+ Mode:
+
+
+
+ {{if data.mulebot.botstatus.mode == 0}}
+ Ready
+ {{else data.mulebot.botstatus.mode == 1}}
+ Loading/Unloading
+ {{else data.mulebot.botstatus.mode == 2}}
+ Navigating to Delivery Location
+ {{else data.mulebot.botstatus.mode == 3}}
+ Navigating to Home
+ {{else data.mulebot.botstatus.mode == 4}}
+ Waiting for Clear Path
+ {{else data.mulebot.botstatus.mode == 5 || data.mulebot.botstatus.mode == 6}}
+ Calculating navigation Path
+ {{else data.mulebot.botstatus.mode == 7}}
+ Unable to locate destination
+ {{/if}}
+
+
+
+
+
+ Current Load:
+
+
+
+ {{:helper.link(data.mulebot.botstatus.load == null ? 'None (Unload)' : data.mulebot.botstatus.load + ' (Unload)', 'archive', {'radiomenu' : "1", 'op' : "unload"},data.mulebot.botstatus.load == null ? 'disabled' : null, 'pdalink fixedLeftWidest')}}
+
+
+
+
+
+ Power:
+
+
+
+ {{:data.mulebot.botstatus.powr}}%
+
+
+
+
+
+ Destination:
+
+
+ {{:helper.link(data.mulebot.botstatus.dest == null || data.mulebot.botstatus.dest == "" ? 'None (Set)' : data.mulebot.botstatus.dest + ' (Set)', 'gear', {'radiomenu' : "1", 'op' : "setdest"}, null, 'pdalink fixedLeftWidest')}}
+
+
+
+
+ Home:
+
+
+ {{if data.mulebot.botstatus.home == null}} None {{else}} {{:data.mulebot.botstatus.home}} {{/if}}
+
+
+
+
+ Auto Return:
+
+
+ {{:helper.link(data.mulebot.botstatus.retn == 1 ? 'ON' : 'OFF', 'gear', {'radiomenu' : "1", 'op' : (data.mulebot.botstatus.retn==1 ? "retoff" : "reton")}, null, 'pdalink fixedLeftWidest')}}
+
+
+
+
+ Auto Pickup:
+
+
+ {{:helper.link(data.mulebot.botstatus.pick==1? 'ON' : 'OFF', 'gear', {'radiomenu' : "1", 'op' : (data.mulebot.botstatus.pick==1 ? "pickoff" : "pickon")}, null, 'pdalink fixedLeftWidest')}}
+
+
+
+
+ Functions:
+
+
+ {{:helper.link('Stop', 'gear', {'radiomenu' : "1", 'op' : "stop"}, null, 'pdalink fixedLeft')}}
+ {{:helper.link('Proceed', 'gear', {'radiomenu' : "1", 'op' : "go"}, null, 'pdalink fixedLeft')}}
+ {{:helper.link('Return Home', 'gear', {'radiomenu' : "1", 'op' : "home"}, null, 'pdalink fixedLeft')}}
+
+
+ {{/if}}
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/pda_notekeeper.tmpl b/nano/templates/pda_notekeeper.tmpl
new file mode 100644
index 00000000000..53db3be6438
--- /dev/null
+++ b/nano/templates/pda_notekeeper.tmpl
@@ -0,0 +1,21 @@
+
+
+
+
+
+ {{:helper.link('Edit Notes', 'pencil-square-o', {'choice': "Edit"}, null, 'pdalink')}}
+
+
\ No newline at end of file
diff --git a/nano/templates/pda_power.tmpl b/nano/templates/pda_power.tmpl
new file mode 100644
index 00000000000..7ba04188b71
--- /dev/null
+++ b/nano/templates/pda_power.tmpl
@@ -0,0 +1,49 @@
+{{if !data.records.powerconnected}}
+
+
Select a power monitor:
+
+ {{for data.records.powermonitors}}
+
+ {{:helper.link(value.Name, 'exclamation-circle', {'choice' : "Power Select", 'target' : value.ref}, null, 'pdalink fixedLeftWidest')}}
+
+ {{/for}}
+{{else}}
+
+
+ Total Power:
+
+
+ {{:data.records.poweravail}} W
+
+
+
+
+ Total Load:
+
+
+ {{:data.records.powerload}} W
+
+
+
+
+ Total Demand:
+
+
+ {{:data.records.powerdemand}} W
+
+
+
+
+ | Area | Equip. | Lighting | Environ. | Cell | Load |
+ {{for data.records.apcs}}
+ | {{:value.Name}} |
+ {{:helper.string('{1} | ', value.Equipment == "On" || value.Equipment == "AOn" ? '#4f7529' : '#8f1414', value.Equipment)}}
+ {{:helper.string('{1} | ', value.Lights == "On" || value.Lights == "AOn" ? '#4f7529' : '#8f1414', value.Lights)}}
+ {{:helper.string('{1} | ', value.Environment == "On" || value.Environment == "AOn" ? '#4f7529' : '#8f1414', value.Environment)}}
+ {{:helper.string('{1}{2} | ', value.CellStatus == "F" ? '#4f7529' : value.CellStatus == "C" ? '#cd6500' : '#8f1414', value.CellStatus == "M" ? 'No Cell' : value.CellPct + '%', value.CellStatus == "M" ? '' : ' (' + value.CellStatus + ')')}}
+ {{:value.Load}}W |
+
+ {{/for}}
+
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/pda_secbot.tmpl b/nano/templates/pda_secbot.tmpl
new file mode 100644
index 00000000000..6ff8c98e147
--- /dev/null
+++ b/nano/templates/pda_secbot.tmpl
@@ -0,0 +1,59 @@
+{{if !data.beepsky.active}}
+ {{if data.beepsky.count == 0}}
+
No bots found.
+ {{else}}
+
+ Select a bot:
+
+
+ {{for data.beepsky.bots}}
+
+ {{:helper.link(value.Name, 'gear', {'radiomenu' : "1", 'op' : "control",'bot' : value.ref}, null, 'pdalink fixedLeftWidest')}} (Location: {{:value.Location}})
+
+ {{/for}}
+ {{/if}}
+
+ {{:helper.link('Scan for Bots','rss', {'radiomenu' : "1", 'op' : "scanbots"}, null, 'pdalink fixedLeftWidest')}}
+{{else}}
+
{{:data.beepsky.active}}
+ {{if data.beepsky.botstatus.mode == -1}}
+
Waiting for response...
+ {{else}}
+
Status:
+
+
+ Location:
+
+
+ {{:data.beepsky.botstatus.loca}}
+
+
+
+
+ Mode:
+
+
+
+ {{if data.beepsky.botstatus.mode ==0}}
+ Ready
+ {{else data.beepsky.botstatus.mode == 1}}
+ Apprehending target
+ {{else data.beepsky.botstatus.mode ==2 || data.beepsky.botstatus.mode == 3}}
+ Arresting target
+ {{else data.beepsky.botstatus.mode ==4}}
+ Starting patrol
+ {{else data.beepsky.botstatus.mode ==5}}
+ On Patrol
+ {{else data.beepsky.botstatus.mode ==6}}
+ Responding to summons
+ {{/if}}
+
+
+
+
+ {{:helper.link('Stop Patrol', 'gear', {'radiomenu' : "1", 'op' : "stop"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Start Patrol', 'gear', {'radiomenu' : "1", 'op' : "go"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Summon Bot', 'gear', {'radiomenu' : "1", 'op' : "summon"}, null, 'pdalink fixedLeftWide')}}
+
+ {{/if}}
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/pda_security.tmpl b/nano/templates/pda_security.tmpl
new file mode 100644
index 00000000000..53d40185e05
--- /dev/null
+++ b/nano/templates/pda_security.tmpl
@@ -0,0 +1,50 @@
+{{if !data.records}}
+
+ {{for data.recordsList}}
+
+ {{:helper.link(value.Name, 'user', {'choice' : "Records", 'target' : value.ref}, null, 'pdalink fixedLeftWidest')}}
+
+ {{empty}}
+
+ No records found.
+
+ {{/for}}
+{{else}}
+
+
+
+ {{if data.records.general}}
+
Name: {{:data.records.general.name}}
+
Sex: {{:data.records.general.sex}}
+
Species: {{:data.records.general.species}}
+
Age: {{:data.records.general.age}}
+
Rank: {{:data.records.general.rank}}
+
Fingerprint: {{:data.records.general.fingerprint}}
+
Physical Status: {{:data.records.general.p_stat}}
+
Mental Status: {{:data.records.general.m_stat}}
+ {{else}}
+
+ General Record Lost!
+
+ {{/if}}
+ {{if data.records.security}}
+
+
Criminal Status: {{:data.records.security.criminal}}
+
Minor Crimes: {{:data.records.security.mi_crim}}
+
Details: {{:data.records.security.mi_crim_d}}
+
Major Crimes: {{:data.records.security.ma_crim}}
+
Details: {{:data.records.security.ma_crim_d}}
+
Important Notes: {{:data.records.security.notes}}
+ {{else}}
+
+ Security Record Lost!
+
+ {{/if}}
+
+
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/pda_signaller.tmpl b/nano/templates/pda_signaller.tmpl
new file mode 100644
index 00000000000..2b5f148b025
--- /dev/null
+++ b/nano/templates/pda_signaller.tmpl
@@ -0,0 +1,38 @@
+
+
+
+ Frequency:
+
+
+ {{:data.signal_freq}}
+
+
+ {{:helper.link('-1', null, {'choice' : "Signal Frequency", 'sfreq' : "-10"}, null, null)}}
+ {{:helper.link('-.2', null, {'choice' : "Signal Frequency", 'sfreq' : "-2"}, null, null)}}
+
+ {{:helper.link('+.2', null, {'choice' : "Signal Frequency", 'sfreq' : "2"}, null, null)}}
+ {{:helper.link('+1', null, {'choice' : "Signal Frequency", 'sfreq' : "10"}, null, null)}}
+
+
+
+
+
+
+ Code:
+
+
+
+ {{:data.signal_code}}
+
+ {{:helper.link('-5', null, {'choice' : "Signal Code", 'scode' : "-5"}, null, null)}}
+ {{:helper.link('-1', null, {'choice' : "Signal Code", 'scode' : "-1"}, null, null)}}
+ {{:helper.link('+1', null, {'choice' : "Signal Code", 'scode' : "1"}, null, null)}}
+ {{:helper.link('+5', null, {'choice' : "Signal Code", 'scode' : "5"}, null, null)}}
+
+
+
+ {{:helper.link('Send Signal', 'exclamation-circle', {'choice' : "Send Signal"}, null, null)}}
+
\ No newline at end of file
diff --git a/nano/templates/pda_status_display.tmpl b/nano/templates/pda_status_display.tmpl
new file mode 100644
index 00000000000..8b153ad0ffd
--- /dev/null
+++ b/nano/templates/pda_status_display.tmpl
@@ -0,0 +1,44 @@
+
+
+
+ Code:
+
+
+ {{:helper.link('Clear', 'trash', {'choice' : "Status", 'statdisp' : "blank"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Shuttle ETA', 'gear', {'cartmenu' : "1", 'choice' : "Status", 'statdisp' : "shuttle"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Message', 'gear', {'choice' : "Status", 'statdisp' : "message"}, null, 'pdalink fixedLeftWide')}}
+
+
+
+
+
+ Message line 1
+
+
+ {{:helper.link(data.records.message1 + ' (set)', 'pencil', {'choice' : "Status", 'statdisp' : "setmsg1"}, null, 'pdalink fixedLeftWide')}}
+
+
+
+
+ Message line 2
+
+
+ {{:helper.link(data.records.message2 + ' (set)', 'pencil', {'choice' : "Status", 'statdisp' : "setmsg2"}, null, 'pdalink fixedLeftWide')}}
+
+
+
+
+
+
+ ALERT!:
+
+
+ {{:helper.link('None', 'bell', {'choice' : "Status", 'statdisp' : "alert", 'alert' : "default"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Red Alert', 'bell', {'choice' : "Status", 'statdisp' : "alert", 'alert' : "redalert"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Lockdown', 'exclamation-circle', {'choice' : "Status", 'statdisp' : "alert", 'alert' : "lockdown"}, null, 'pdalink fixedLeftWide')}}
+ {{:helper.link('Biohazard', 'exclamation-circle', {'choice' : "Status", 'statdisp' : "alert", 'alert' : "biohazard"}, null, 'pdalink fixedLeftWide')}}
+
+
\ No newline at end of file
diff --git a/nano/templates/pda_supply.tmpl b/nano/templates/pda_supply.tmpl
new file mode 100644
index 00000000000..810fc193769
--- /dev/null
+++ b/nano/templates/pda_supply.tmpl
@@ -0,0 +1,39 @@
+
+
+ Location:
+
+
+
+ {{if data.supply.shuttle_moving}}
+ Moving to {{:data.supply.shuttle_loc}}
+ {{else}}
+ Shuttle at {{:data.supply.shuttle_loc}}
+ {{/if}}
+
+ {{:data.supply.shuttle_time}}
+
+
+
+
+
+
+ Current Approved Orders
+ {{if data.supply.approved_count == 0}}
+ No current approved orders
+ {{else}}
+ {{for data.supply.approved}}
+ #{{:value.Number}} - {{:value.Name}} approved by {{:value.OrderedBy}}
{{if value.Comment != ""}} {{:value.Comment}}
{{/if}}
+ {{/for}}
+ {{/if}}
+
+ Current Requested Orders
+ {{if data.supply.requests_count == 0}}
+ No current requested orders
+ {{else}}
+ {{for data.supply.requests}}
+ #{{:value.Number}} - {{:value.Name}} requested by {{:value.OrderedBy}}
{{if value.Comment != ""}} {{:value.Comment}}
{{/if}}
+ {{/for}}
+ {{/if}}
+
+
+
\ No newline at end of file
diff --git a/paradise.dme b/paradise.dme
index 0b932735ca4..7f480172d9a 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -31,6 +31,7 @@
#include "code\__DEFINES\math.dm"
#include "code\__DEFINES\misc.dm"
#include "code\__DEFINES\mob.dm"
+#include "code\__DEFINES\pda.dm"
#include "code\__DEFINES\preferences.dm"
#include "code\__DEFINES\process_scheduler.dm"
#include "code\__DEFINES\qdel.dm"
@@ -672,10 +673,18 @@
#include "code\game\objects\items\devices\uplinks.dm"
#include "code\game\objects\items\devices\violin.dm"
#include "code\game\objects\items\devices\whistle.dm"
+#include "code\game\objects\items\devices\PDA\ai.dm"
+#include "code\game\objects\items\devices\PDA\app.dm"
#include "code\game\objects\items\devices\PDA\cart.dm"
+#include "code\game\objects\items\devices\PDA\cart_apps.dm"
#include "code\game\objects\items\devices\PDA\chatroom.dm"
+#include "code\game\objects\items\devices\PDA\core_apps.dm"
+#include "code\game\objects\items\devices\PDA\messenger.dm"
+#include "code\game\objects\items\devices\PDA\messenger_plugins.dm"
#include "code\game\objects\items\devices\PDA\PDA.dm"
+#include "code\game\objects\items\devices\PDA\pdas.dm"
#include "code\game\objects\items\devices\PDA\radio.dm"
+#include "code\game\objects\items\devices\PDA\utilities.dm"
#include "code\game\objects\items\devices\radio\beacon.dm"
#include "code\game\objects\items\devices\radio\electropack.dm"
#include "code\game\objects\items\devices\radio\encryptionkey.dm"