Cartridge work part 1

This commit is contained in:
atermonera
2018-05-18 17:07:38 -07:00
committed by Atermonera
parent 84458be631
commit cce2201dd7
7 changed files with 418 additions and 187 deletions

View File

@@ -119,6 +119,9 @@
data["cart_templates"] = cartridge.ui_templates
for(var/list/L in cartridge.get_data())
data[L["field"]] = L["value"]
// cartridge.get_data() returns a list of tuples:
// The field element is the tag used to access the information by the template
// The value element is the actual data, and can take any form necessary for the template
// update the ui if it exists, returns null if no ui is passed/found
ui = GLOB.nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
@@ -178,7 +181,7 @@
if(href_list["dial"])
if(!get_connection_to_tcomms())
usr << "<span class='danger'>Error: Cannot connect to Exonet node.</span>"
to_chat(usr, "<span class='danger'>Error: Cannot connect to Exonet node.</span>")
return
var/their_address = href_list["dial"]
exonet.send_message(their_address, "voice")
@@ -270,5 +273,8 @@
var/obj/O = cartridge.internal_devices[text2num(href_list["toggle_device"])]
cartridge.active_devices ^= list(O) // Exclusive or, will toggle its presence
if(href_list["cartridge_topic"] && cartridge) // Has to have a cartridge to perform these functions
data = cartridge.Topic(href, href_list)
GLOB.nanomanager.update_uis(src)
add_fingerprint(usr)

View File

@@ -8,9 +8,9 @@
item_state = "electronic"
w_class = ITEMSIZE_TINY
var/list/internal_devices = list()
var/list/active_devices = list()
var/list/ui_templates = list()
var/list/internal_devices = list() // Devices that can be toggled on to trigger on attack()
var/list/active_devices = list() // Devices that will be triggered on attack()
var/list/ui_templates = list() // List of lists for when multiple templates
/obj/item/weapon/commcard/proc/get_device_status()
var/list/L = list()
@@ -22,35 +22,53 @@
L[++L.len] = list("name" = I.name, "active" = 0, "index" = i++)
return L
// cartridge.get_data() returns a list of tuples:
// The field element is the tag used to access the information by the template
// The value element is the actual data, and can take any form necessary for the template
/obj/item/weapon/commcard/proc/get_data()
return list()
// Engineering Cartridge:
// Devices
// *- Halogen Counter
// Templates
// -- Power Monitor
/obj/item/weapon/commcard/engineering
name = "\improper Power-ON cartridge"
icon_state = "cart-e"
ui_templates = list(list("name" = "Power Monitor", "template" = "comm_power_monitor.tmpl"))
//Power monitor template
//Halogen counter
/obj/item/weapon/commcard/engineering/New()
..()
internal_devices |= new /obj/item/device/halogen_counter(src)
// Add power monitor template
/obj/item/weapon/commcard/engineering/get_data()
// Fetch power monitor data
// Atmospherics Cartridge:
// Devices
// *- Gas scanner
/obj/item/weapon/commcard/atmos
name = "\improper BreatheDeep cartridge"
icon_state = "cart-a"
//Gas scanner
/obj/item/weapon/commcard/atmos/New()
..()
internal_devices |= new /obj/item/device/analyzer(src)
// Medical Cartridge:
// Devices
// *- Halogen Counter
// *- Health Analyzer
// Templates
// *- Medical Records
/obj/item/weapon/commcard/medical
name = "\improper Med-U cartridge"
icon_state = "cart-m"
ui_templates = list(list("name" = "Medical Records", "template" = "med_records.tmpl"), list("name" = "test", "template" = "comm2.tmpl")) // List of list for when multiple templates
//Med records template
ui_templates = list(list("name" = "Medical Records", "template" = "med_records.tmpl"))
//Med records
//Med scanner
//Halogen counter
@@ -60,240 +78,284 @@
internal_devices |= new /obj/item/device/halogen_counter(src)
/obj/item/weapon/commcard/medical/get_data()
var/med_records[0]
for(var/datum/data/record/M in sortRecord(data_core.medical))
var/record[0]
record[++record.len] = list("tab" = "Name", "val" = M.fields["name"])
record[++record.len] = list("tab" = "ID", "val" = M.fields["id"])
record[++record.len] = list("tab" = "Blood Type", "val" = M.fields["b_type"])
record[++record.len] = list("tab" = "DNA #", "val" = M.fields["b_dna"])
record[++record.len] = list("tab" = "Gender", "val" = M.fields["id_gender"])
record[++record.len] = list("tab" = "Entity Classification", "val" = M.fields["brain_type"])
record[++record.len] = list("tab" = "Minor Disorders", "val" = M.fields["mi_dis"])
record[++record.len] = list("tab" = "Major Disorders", "val" = M.fields["ma_dis"])
record[++record.len] = list("tab" = "Allergies", "val" = M.fields["alg"])
record[++record.len] = list("tab" = "Condition", "val" = M.fields["cdi"])
record[++record.len] = list("tab" = "Notes", "val" = M.fields["notes"])
return list(list("field" = "med_records", "value" = get_med_records()))
med_records[++med_records.len] = list("name" = M.fields["name"], "record" = record)
return list(list("field" = "med_records", "value" = med_records))
// Chemistry Cartridge:
// Devices
// *- Halogen Counter
// *- Health Analyzer
// *- Reagent Scanner
// Templates
// *- Medical Records
/obj/item/weapon/commcard/medical/chemistry
name = "\improper ChemWhiz cartridge"
icon_state = "cart-chem"
//Reagent scanner
/obj/item/weapon/commcard/medical/chemistry/New()
..()
internal_devices |= new /obj/item/device/reagent_scanner(src)
// Detective Cartridge:
// Devices
// *- Halogen Counter
// *- Health Analyzer
// Templates
// *- Medical Records
// *- Security Records
/obj/item/weapon/commcard/medical/detective
name = "\improper D.E.T.E.C.T. cartridge"
icon_state = "cart-s"
ui_templates = list(
list("name" = "Medical Records", "template" = "med_records.tmpl"),
list("name" = "Security Records", "template" = "sec_records.tmpl")
)
/obj/item/weapon/commcard/medical/detective/get_data()
var/list/data = ..()
data[++data.len] = list("field" = "sec_records", "value" = get_sec_records())
return data
// Internal Affairs Cartridge:
// Templates
// *- Security Records
// *- Employment Records
/obj/item/weapon/commcard/int_aff
name = "\improper P.R.O.V.E. cartridge"
icon_state = "cart-s"
ui_templates = list(list("name" = "Employment Records", "template" = "emp_records.tmpl"))
//Emp records
ui_templates = list(
list("name" = "Employment Records", "template" = "emp_records.tmpl"),
list("name" = "Security Records", "template" = "sec_records.tmpl")
)
/obj/item/weapon/commcard/int_aff/New()
..()
/obj/item/weapon/commcard/int_aff/get_data()
var/emp_records[0]
for(var/datum/data/record/G in sortRecord(data_core.general))
var/record[0]
record[++record.len] = list("tab" = "Name", "val" = G.fields["name"])
record[++record.len] = list("tab" = "ID", "val" = G.fields["id"])
record[++record.len] = list("tab" = "Rank", "val" = G.fields["rank"])
record[++record.len] = list("tab" = "Fingerprint", "val" = G.fields["fingerprint"])
record[++record.len] = list("tab" = "Entity Classification", "val" = G.fields["brain_type"])
record[++record.len] = list("tab" = "Sex", "val" = G.fields["sex"])
record[++record.len] = list("tab" = "Species", "val" = G.fields["species"])
record[++record.len] = list("tab" = "Age", "val" = G.fields["age"])
record[++record.len] = list("tab" = "Notes", "val" = G.fields["notes"])
emp_records[++emp_records.len] = list("name" = G.fields["name"], "record" = record)
return list(list("field" = "emp_records", "value" = emp_records))
return list(
list("field" = "emp_records", "value" = get_emp_records()),
list("field" = "sec_records", "value" = get_sec_records())
)
// Security Cartridge:
// Templates
// *- Security Records
// *- Security Bot Access
/obj/item/weapon/commcard/security
name = "\improper R.O.B.U.S.T. cartridge"
icon_state = "cart-s"
ui_templates = list(list("name" = "Security Records", "template" = "sec_records.tmpl"), list("name" = "Security Bot Controller", "template" = "sec_bot_access.tmpl"))
//Sec records
//Sec bot access template
ui_templates = list(
list("name" = "Security Records", "template" = "sec_records.tmpl"),
list("name" = "Security Bot Controller", "template" = "sec_bot_access.tmpl")
)
/obj/item/weapon/commcard/security/New()
..()
//Add sec records to ui template
//Add sec bot access template
/obj/item/weapon/commcard/security/get_data()
var/sec_records[0]
for(var/datum/data/record/G in sortRecord(data_core.general))
var/record[0]
record[++record.len] = list("tab" = "Name", "val" = G.fields[""])
record[++record.len] = list("tab" = "Sex", "val" = G.fields[""])
record[++record.len] = list("tab" = "Species", "val" = G.fields[""])
record[++record.len] = list("tab" = "Age", "val" = G.fields[""])
record[++record.len] = list("tab" = "Rank", "val" = G.fields[""])
record[++record.len] = list("tab" = "Fingerprint", "val" = G.fields[""])
record[++record.len] = list("tab" = "Physical Status", "val" = G.fields[""])
record[++record.len] = list("tab" = "Mental Status", "val" = G.fields[""])
record[++record.len] = list("tab" = "Criminal Status", "val" = G.fields[""])
record[++record.len] = list("tab" = "Major Crimes", "val" = G.fields[""])
record[++record.len] = list("tab" = "Minor Crimes", "val" = G.fields[""])
record[++record.len] = list("tab" = "Notes", "val" = G.fields["notes"])
sec_records[++sec_records.len] = list("name" = G.fields["name"], "record" = record)
return list(list("field" = "sec_records", "value" = sec_records))
return list(
list("field" = "sec_records", "value" = get_sec_records()),
list("field" = "sec_bot_access", "value" = get_sec_bot_access())
)
/obj/item/weapon/commcard/security/detective
name = "\improper D.E.T.E.C.T. cartridge"
icon_state = "cart-s"
//Med records
/obj/item/weapon/commcard/security/detective/New()
var/list/data = ..()
var/med_records[0]
for(var/datum/data/record/M in sortRecord(data_core.medical))
var/record[0]
record[++record.len] = list("tab" = "Name", "val" = M.fields["name"])
record[++record.len] = list("tab" = "ID", "val" = M.fields["id"])
record[++record.len] = list("tab" = "Blood Type", "val" = M.fields["b_type"])
record[++record.len] = list("tab" = "DNA #", "val" = M.fields["b_dna"])
record[++record.len] = list("tab" = "Gender", "val" = M.fields["id_gender"])
record[++record.len] = list("tab" = "Entity Classification", "val" = M.fields["brain_type"])
record[++record.len] = list("tab" = "Minor Disorders", "val" = M.fields["mi_dis"])
record[++record.len] = list("tab" = "Major Disorders", "val" = M.fields["ma_dis"])
record[++record.len] = list("tab" = "Allergies", "val" = M.fields["alg"])
record[++record.len] = list("tab" = "Condition", "val" = M.fields["cdi"])
record[++record.len] = list("tab" = "Notes", "val" = M.fields["notes"])
med_records[++med_records.len] = list("name" = M.fields["name"], "record" = record)
data[++data.len] = list("field" = "med_records", "value" = med_records)
// Janitor Cartridge:
// Templates
// -- Janitorial Locator Magicbox
/obj/item/weapon/commcard/janitor
name = "\improper CustodiPRO cartridge"
desc = "The ultimate in clean-room design."
//Janitorial Supplies Locator
/obj/item/weapon/commcard/janitor/New()
..()
// Add janitoral locator template
/obj/item/weapon/commcard/janitor/get_data()
// Fetch janitorial locator
// Service Cartridge:
// Templates
// -- Recipe Lists
/obj/item/weapon/commcard/service
name = "\improper Serv-U Pro"
desc = "A data cartridge designed to serve YOU!"
//I'm gonna regret this but recipes menu
/obj/item/weapon/commcard/service/New()
..()
/obj/item/weapon/commcard/service/get_data()
// Add list of recipes to ui template
// SEE: /code/modules/food/recipe_dump.dm
// Signal Cartridge:
// Devices
// *- Signaler
// Templates
// -- Signaler Access
/obj/item/weapon/commcard/signal
name = "generic signaler cartridge"
desc = "A data cartridge with an integrated radio signaler module."
//Signaller
ui_templates = list(
list("name" = "Signaller", "template" = "signaler.tmpl")
)
/obj/item/weapon/commcard/signal/New()
..()
// Make a signaller, add it to internal devices
// Access the signaller through the ui template
internal_devices |= new /obj/item/device/assembly/signaler(src)
// I'm probably gonna regret this too
/obj/item/weapon/commcard/signal/get_data()
signallers[0]
for(var/obj/item/device/assembly/signaler/S in internal_devices)
world << "Found [S]"
unit[0]
unit[++unit.len] = list("tab" = "Code", "value" = S.code)
unit[++unit.len] = list("tab" = "Frequency", "value" = S.frequency)
signallers[++signallers.len] = unit
return list(
list("field" = "signallers", "value" = signallers)
)
// Science Cartridge:
// Devices
// *- Signaler
// *- Reagent Scanner
// *- Gas Scanner
// Templates
// -- Signaler Access
/obj/item/weapon/commcard/signal/science
name = "\improper Signal Ace 2 cartridge"
desc = "Complete with integrated radio signaler!"
icon_state = "cart-tox"
//Reagent scanner
//Gas scanner
// UI templates inherited
/obj/item/weapon/commcard/signal/science/New()
..()
internal_devices |= new /obj/item/device/reagent_scanner(src)
internal_devices |= new /obj/item/device/analyzer(src)
/obj/item/weapon/commcard/quartermaster
// Supply Cartridge:
// Templates
// -- Supply Records
// -- Supply Bot Access
/obj/item/weapon/commcard/supply
name = "\improper Space Parts & Space Vendors cartridge"
desc = "Perfect for the Quartermaster on the go!"
icon_state = "cart-q"
//Supply records
//Supply bot access
/obj/item/weapon/commcard/quartermaster/New()
..()
/obj/item/weapon/commcard/supply/get_data()
// Add supply records to ui template
// Add supply bot access to ui template
// Mining Cartridge:
// Templates
// -- Ore Processing Recipes
/obj/item/weapon/commcard/miner
name = "\improper Drill-Jockey 4.5"
desc = "It's covered in some sort of sand."
//Ore processing instructions?!
/obj/item/weapon/commcard/miner/New()
..()
/obj/item/weapon/commcard/miner/get_data()
// Add ore recipes to ui template
// Command Cartridge:
// Templates
// -- Status Display Access
// *- Employment Records
/obj/item/weapon/commcard/head
name = "\improper Easy-Record DELUXE"
icon_state = "cart-h"
//Status display
//Employment records
/obj/item/weapon/commcard/head/New()
..()
/obj/item/weapon/commcard/head/get_data()
// Add status display to ui template
// Add employment records to ui template
// Head of Personnel Cartridge:
// Templates
// -- Status Display Access
// *- Employment Records
// *- Security Records
// -- Supply Records
// -- Supply Bot Access
// -- Recipe Lists
// -- Janitorial Locator Magicbox
/obj/item/weapon/commcard/head/hop
name = "\improper HumanResources9001 cartridge"
icon_state = "cart-h"
//Sec records
//Supply records
//Supply bot access
//Janitorial Supplies Locator
//Service menu
/obj/item/weapon/commcard/head/hop/New()
..()
// Add sec records to ui template
// Add supply records to ui template
// Add supply bot access to ui template
// Add janitorial supplies locator to template
// Add service menu to template
/obj/item/weapon/commcard/head/hop/get_data()
var/list/data = ..()
// Sec records
// Supply records
// Supply bot access
// Janitorial locator magicbox
// Recipe lists
return data
// Head pf Security Cartridge:
// Templates
// -- Status Display Access
// *- Employment Records
// *- Security Records
// *- Security Bot Access
/obj/item/weapon/commcard/head/hos
name = "\improper R.O.B.U.S.T. DELUXE"
icon_state = "cart-hos"
// Sec records
// Sec bot access
/obj/item/weapon/commcard/head/hos/New()
..()
/obj/item/weapon/commcard/head/hos/get_data()
var/list/data = ..()
// Add sec records to ui template
// Add sec bot access to ui template
return data
// Research Director Cartridge:
// Devices
// *- Signaler
// *- Gas Scanner
// *- Reagent Scanner
// Templates
// -- Status Display Access
// *- Employment Records
// -- Signaler Access
/obj/item/weapon/commcard/head/rd
name = "\improper Signal Ace DELUXE"
icon_state = "cart-rd"
//Signaller
//Gas scanner
//Reagent scanner
/obj/item/weapon/commcard/head/rd/New()
..()
// Add signaller access template
internal_devices |= new /obj/item/device/analyzer(src)
internal_devices |= new /obj/item/device/reagent_scanner(src)
internal_devices |= new /obj/item/device/assembly/signaler(src)
/obj/item/weapon/commcard/head/rd/get_data()
var/list/data = ..()
// Status Display
// Employment Records
// Signaler Access
return data
// Chief Medical Officer Cartridge:
// Devices
// *- Health Analyzer
// *- Reagent Scanner
// *- Halogen Counter
// Templates
// -- Status Display Access
// *- Employment Records
// *- Medical Records
/obj/item/weapon/commcard/head/cmo
name = "\improper Med-U DELUXE"
icon_state = "cart-cmo"
//Med records
//Med scanner
//Health analyzer
//Reagent scanner
//Halogen counter
/obj/item/weapon/commcard/head/cmo/New()
..()
@@ -301,64 +363,84 @@
internal_devices |= new /obj/item/device/reagent_scanner(src)
internal_devices |= new /obj/item/device/halogen_counter(src)
/obj/item/weapon/commcard/head/cmo/get_data()
var/list/data = ..()
// Med records
return data
// Chief Engineer Cartridge:
// Devices
// *- Gas Scanner
// *- Halogen Counter
// Templates
// -- Status Display Access
// *- Employment Records
// -- Power Monitoring
/obj/item/weapon/commcard/head/ce
name = "\improper Power-On DELUXE"
icon_state = "cart-ce"
//Power monitor
//Gas scanner
//Halogen counter
/obj/item/weapon/commcard/head/ce/New()
..()
internal_devices |= new /obj.item/device/analyzer(src)
internal_devices |= new /obj/item/device/halogen_counter(src)
// Add power monitor to ui template
/obj/item/weapon/commcard/head/ce/get_data()
var/list/data = ..()
// Add power monitor to ui template
return data
// Captain Cartridge:
// Devices
// *- Health analyzer
// *- Gas Scanner
// *- Reagent Scanner
// *- Halogen Counter
// -- GPS
// *- Signaler
// Templates
// -- Status Display Access
// *- Employment Records
// *- Medical Records
// *- Security Records
// -- Power Monitoring
// -- Supply Records
// -- Supply Bot Access
// *- Security Bot Access
// -- Janitorial Locator Magicbox
// -- GPS Access
// -- Signaler Access
/obj/item/weapon/commcard/head/captain
name = "\improper Value-PAK cartridge"
desc = "Now with 200% more value!"
icon_state = "cart-c"
//Literally everything:
//Power monitor
//Med records
//Sec records
//Supply records
//Med scanner
//Reagent scanner
//Gas scanner
//Supply bot access
//Sec bot access
//Janitorial supply locator
//Gas analyzer
//Health analyzer
//Reagent scanner
//Halogen counter
/obj/item/weapon/commcard/head/captain/New()
..()
// Add med records to ui template
// Add sec records to ui template
// Add supply records to ui template
// Add supply bot access to ui template
// Add sec bot access to ui template
// Add power monitor to ui template
// Add janitorial locator to ui template
// Add service menu to ui template
internal_devices |= new /obj.item/device/analyzer(src)
internal_devices |= new /obj/item/device/healthanalyzer(src)
internal_devices |= new /obj/item/device/reagent_scanner(src)
internal_devices |= new /obj/item/device/halogen_counter(src)
// Mercenary Cartridge
// Templates
// -- Syndicate Shuttle Door Controller
/obj/item/weapon/commcard/mercenary
name = "\improper Detomatix cartridge"
icon_state = "cart"
//Syndi shuttle door controller
/obj/item/weapon/commcard/mercenary/New()
..()
/obj/item/weapon/commcard/mercenary/get_data()
// Syndi shuttle door controller
// Fuck if I know how that thing works
// Explorer Cartridge
// Devices
// -- GPS
// Templates
// -- GPS Access
/obj/item/weapon/commcard/explorer
name = "\improper Explorator cartridge"
icon_state = "cart-tox"
@@ -367,4 +449,6 @@
/obj/item/weapon/commcard/explorer/New()
..()
internal_devices |= new /obj/item/device/gps(src)
// Add GPS access to ui template
/obj/item/weapon/commcard/explorer/get_data()
// GPS Access

View File

@@ -94,4 +94,102 @@
if(news[i]["time_stamp"] == oldest)
news.Remove(news[i])
return news
return news
// Putting the commcard data harvesting helpers here
// Not ideal to put all the procs on the base type
// but it may open options for adminbus,
// And it saves duplicated code
// Medical records
/obj/item/weapon/commcard/proc/get_med_records()
var/med_records[0]
for(var/datum/data/record/M in sortRecord(data_core.medical))
var/record[0]
record[++record.len] = list("tab" = "Name", "val" = M.fields["name"])
record[++record.len] = list("tab" = "ID", "val" = M.fields["id"])
record[++record.len] = list("tab" = "Blood Type", "val" = M.fields["b_type"])
record[++record.len] = list("tab" = "DNA #", "val" = M.fields["b_dna"])
record[++record.len] = list("tab" = "Gender", "val" = M.fields["id_gender"])
record[++record.len] = list("tab" = "Entity Classification", "val" = M.fields["brain_type"])
record[++record.len] = list("tab" = "Minor Disorders", "val" = M.fields["mi_dis"])
record[++record.len] = list("tab" = "Major Disorders", "val" = M.fields["ma_dis"])
record[++record.len] = list("tab" = "Allergies", "val" = M.fields["alg"])
record[++record.len] = list("tab" = "Condition", "val" = M.fields["cdi"])
record[++record.len] = list("tab" = "Notes", "val" = M.fields["notes"])
med_records[++med_records.len] = list("name" = M.fields["name"], "record" = record)
return med_records
// Employment records
/obj/item/weapon/commcard/proc/get_emp_records()
var/emp_records[0]
for(var/datum/data/record/G in sortRecord(data_core.general))
var/record[0]
record[++record.len] = list("tab" = "Name", "val" = G.fields["name"])
record[++record.len] = list("tab" = "ID", "val" = G.fields["id"])
record[++record.len] = list("tab" = "Rank", "val" = G.fields["rank"])
record[++record.len] = list("tab" = "Fingerprint", "val" = G.fields["fingerprint"])
record[++record.len] = list("tab" = "Entity Classification", "val" = G.fields["brain_type"])
record[++record.len] = list("tab" = "Sex", "val" = G.fields["sex"])
record[++record.len] = list("tab" = "Species", "val" = G.fields["species"])
record[++record.len] = list("tab" = "Age", "val" = G.fields["age"])
record[++record.len] = list("tab" = "Notes", "val" = G.fields["notes"])
emp_records[++emp_records.len] = list("name" = G.fields["name"], "record" = record)
return emp_records
// Security records
/obj/item/weapon/commcard/proc/get_sec_records()
var/sec_records[0]
for(var/datum/data/record/G in sortRecord(data_core.general))
var/record[0]
record[++record.len] = list("tab" = "Name", "val" = G.fields[""])
record[++record.len] = list("tab" = "Sex", "val" = G.fields[""])
record[++record.len] = list("tab" = "Species", "val" = G.fields[""])
record[++record.len] = list("tab" = "Age", "val" = G.fields[""])
record[++record.len] = list("tab" = "Rank", "val" = G.fields[""])
record[++record.len] = list("tab" = "Fingerprint", "val" = G.fields[""])
record[++record.len] = list("tab" = "Physical Status", "val" = G.fields[""])
record[++record.len] = list("tab" = "Mental Status", "val" = G.fields[""])
record[++record.len] = list("tab" = "Criminal Status", "val" = G.fields[""])
record[++record.len] = list("tab" = "Major Crimes", "val" = G.fields[""])
record[++record.len] = list("tab" = "Minor Crimes", "val" = G.fields[""])
record[++record.len] = list("tab" = "Notes", "val" = G.fields["notes"])
sec_records[++sec_records.len] = list("name" = G.fields["name"], "record" = record)
return sec_records
/obj/item/weapon/commcard/proc/get_sec_bot_access()
var/sec_bots[0]
for(var/mob/living/bot/secbot/S in mob_list)
// Get new bot
var/status[0]
status[++status.len] = list("tab" = "Name", "val" = sanitize(S.name))
// If it's turned off, then it shouldn't be broadcasting any further info
if(!S.on)
status[++status.len] = list("tab" = "Power", "val" = "<span class='bad'>Off</span>") // Encoding the span classes here so I don't have to do complicated switches in the ui template
continue
status[++status.len] = list("tab" = "Power", "val" = "<span class='good'>On</span>")
// -- What it's doing
// If it's engaged, then say who it thinks it's engaging
if(S.target)
status[++status.len] = list("tab" = "Status", "val" = "<span class='bad'>Apprehending Target</span>")
status[++status.len] = list("tab" = "Target", "val" = S.target_name(S.target))
// Else if it's patrolling
else if(S.will_patrol)
status[++status.len] = list("tab" = "Status", "val" = "<span class='good'>Patrolling</span>")
// Otherwise we don't know what it's doing
else
status[++status.len] = list("tab" = "Status", "val" = "<span class='average'>Idle</span>")
// Where it is
status[++status.len] = list("tab" = "Location", "val" = sanitize("[get_area(S.loc)]"))
// Append bot to the list
sec_bots[++sec_bots.len] = list("bot" = S.name, "status" = status)
return sec_bots

View File

@@ -11,11 +11,13 @@
{{for data.emp_records}}
{{if value.name == data.currentTab}}
<div class="itemContent" style="width: 100%;">{{:helper.link('Back', 'icon-triangle-1-w', {'switch_tab' : 0})}}</div><BR>
{{for value.record :itemValue:itemIndex}}
<div class="item">
<div class="itemLabel">{{:itemValue.tab}}</div>
<div class="itemContent">{{:itemValue.val}}</div>
</div>
{{/for}}
<div class="statusDisplayRecords">
{{for value.record :itemValue:itemIndex}}
<div class="item">
<div class="itemLabel">{{:itemValue.tab}}</div>
<div class="itemContent">{{:itemValue.val}}</div>
</div>
{{/for}}
</div>
{{/if}}
{{/for}}

View File

@@ -11,11 +11,13 @@
{{for data.med_records}}
{{if value.name == data.currentTab}}
<div class="itemContent" style="width: 100%;">{{:helper.link('Back', 'icon-triangle-1-w', {'switch_tab' : 0})}}</div><BR>
{{for value.record :itemValue:itemIndex}}
<div class="item">
<div class="itemLabel">{{:itemValue.tab}}</div>
<div class="itemContent">{{:itemValue.val}}</div>
</div>
{{/for}}
<div class='statusDisplayRecords'>
{{for value.record :itemValue:itemIndex}}
<div class="item">
<div class="itemLabel">{{:itemValue.tab}}</div>
<div class="itemContent">{{:itemValue.val}}</div>
</div>
{{/for}}
</div>
{{/if}}
{{/for}}

View File

@@ -0,0 +1,37 @@
<H2>Security Bot Control </H2>
{{if data.currentTab == 0}}
<!-- List bots -->
<div class="item">
Select A Bot.
</div>
<br>
{{for data.sec_bot_access}}
<div class="item">
{{:helper.link(value.bot, 'gear', {'switch_tab' : value.bot})}}
</div>
{{empty}}
<H1><span class="bad">No bots found.</span></H1>
{{/for}}
<br>
{{:helper.link('Scan for Bots','gear', {'cartridge_topic' : "1", 'refresh_sec_bots' : "1"})}}
{{else}}
<!-- Specific bot status -->
{{for data.sec_bot_access}}
{{if value.bot == data.currentTab}}
{{for value.status :statVal:statIndex}}
<div class="item">
<div class="itemLabel">
{{:statVal.tab}}
</div>
<div class="itemContent">
{{:statVal.val}}
</div>
</div>
{{/for}}
{{/if}}
{{/for}}
{{/if}}

View File

@@ -11,11 +11,13 @@
{{for data.sec_records}}
{{if value.name == data.currentTab}}
<div class="itemContent" style="width: 100%;">{{:helper.link('Back', 'icon-triangle-1-w', {'switch_tab' : 0})}}</div><BR>
{{for value.record :itemValue:itemIndex}}
<div class="item">
<div class="itemLabel">{{:itemValue.tab}}</div>
<div class="itemContent">{{:itemValue.val}}</div>
</div>
{{/for}}
<div class="statusDisplayRecords">
{{for value.record :itemValue:itemIndex}}
<div class="item">
<div class="itemLabel">{{:itemValue.tab}}</div>
<div class="itemContent">{{:itemValue.val}}</div>
</div>
{{/for}}
</div>
{{/if}}
{{/for}}