From f2d3f7833b4aedc3ff170877afa26b09efec4cb7 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 17 Mar 2015 10:11:18 +0100 Subject: [PATCH] AIs can now use the crew monitor console for tracking. Due to balance concerns, the headache of handling fake identities, meta, etc., this only works for crew members with tracking sensors enabled. --- code/modules/nano/modules/crew_monitor.dm | 10 +++++++++- nano/templates/crew_monitor.tmpl | 24 ++++++++++++++++++----- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/code/modules/nano/modules/crew_monitor.dm b/code/modules/nano/modules/crew_monitor.dm index 97b6edd7ac..bb60182a1b 100644 --- a/code/modules/nano/modules/crew_monitor.dm +++ b/code/modules/nano/modules/crew_monitor.dm @@ -17,6 +17,13 @@ if(href_list["update"]) src.updateDialog() return 1 + if(href_list["track"]) + if(usr.isAI()) + var/mob/living/silicon/ai/AI = usr + var/mob/living/carbon/human/H = locate(href_list["track"]) in mob_list + if(hassensorlevel(H, SUIT_SENSOR_TRACKING)) + AI.ai_actual_track(H) + return 1 /obj/nano_module/crew_monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) @@ -36,7 +43,7 @@ if(H.w_uniform != C) continue - var/list/crewmemberData = list("dead"=0, "oxy"=-1, "tox"=-1, "fire"=-1, "brute"=-1, "area"="", "x"=-1, "y"=-1) + var/list/crewmemberData = list("dead"=0, "oxy"=-1, "tox"=-1, "fire"=-1, "brute"=-1, "area"="", "x"=-1, "y"=-1, "ref" = "\ref[H]") crewmemberData["sensor_type"] = C.sensor_mode crewmemberData["name"] = H.get_authentification_name(if_no_id="Unknown") @@ -62,6 +69,7 @@ crewmembers = sortByKey(crewmembers, "name") + data["isAI"] = user.isAI() data["crewmembers"] = crewmembers ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) diff --git a/nano/templates/crew_monitor.tmpl b/nano/templates/crew_monitor.tmpl index c2e4199c35..cd3a014652 100644 --- a/nano/templates/crew_monitor.tmpl +++ b/nano/templates/crew_monitor.tmpl @@ -2,15 +2,29 @@ Title: Crew Monitoring Console (Main content) Used In File(s): \code\game\machinery\computer\crew.dm --> + + {{:helper.link('Show Tracker Map', 'pin-s', {'showMap' : 1})}} - +
{{for data.crewmembers}} {{if value.sensor_type == 1}} - + {{if data.isAI}}{{/if}} {{else value.sensor_type == 2}} - + {{if data.isAI}}{{/if}} {{else value.sensor_type == 3}} - + {{if data.isAI}}{{/if}} {{/if}} {{/for}} -
{{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}}Not Available
{{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}}Not Available{{:helper.link('Track', null, {}, 'disabled')}}
{{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}})Not Available
{{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}})Not Available{{:helper.link('Track', null, {}, 'disabled')}}
{{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}}){{:value.area}}({{:value.x}}, {{:value.y}})
{{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}}){{:value.area}}({{:value.x}}, {{:value.y}}){{:helper.link('Track', null, {'track' : value.ref})}}
\ No newline at end of file +