mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Cartridge work part 1
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
37
nano/templates/sec_bot_access.tmpl
Normal file
37
nano/templates/sec_bot_access.tmpl
Normal 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}}
|
||||
@@ -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}}
|
||||
Reference in New Issue
Block a user