Skip to content
This repository has been archived by the owner on Dec 5, 2020. It is now read-only.

UM-2020-004 - AI Radio Click To Track Changes #56

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions code/mob/living/silicon/ai/camera_handling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,37 @@
var/mob/target = creatures[target_name]

ai_actual_track(target)


/mob/living/silicon/proc/ai_name_track(var/heard_name)
if(isdead(usr))
boutput(usr, "You can't track with camera because you are dead!")
return

var/list/creatures = get_mobs_trackable_by_AI()
creatures.Remove(SORT)
var/list/candidates = list()

for(var/C in creatures)
var/name = creatures[C].name
if (name == heard_name)
candidates += C
candidates[C] = creatures[C]

var/target_name = null
var/mob/target = null

if(candidates.len > 0)
if(candidates.len == 1)
target = candidates[candidates[1]]
ai_actual_track(target)
else
target_name = input(usr, "Which creature should you track?") as null|anything in candidates
target = candidates[target_name]
ai_actual_track(target)
else
boutput(usr, "Not able to locate a creature by the name of \"[heard_name]\" on camera.")

#undef SORT

/mob/living/silicon/proc/ai_actual_track(mob/target as mob)
Expand Down
13 changes: 7 additions & 6 deletions code/obj/item/device/radio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,10 @@ Green Wire: <a href='?src=\ref[src];wires=[WIRE_TRANSMIT]'>[src.wires & WIRE_TRA

if (href_list["track"])
// wait is tracking here? really? what? ???? ????????????
var/mob/target = locate(href_list["track"])
//var/mob/target = locate(href_list["track"])
var/mob/living/silicon/A = locate(href_list["track2"])
A.ai_actual_track(target)
var/heard_name = href_list["track3"]
A.ai_name_track(heard_name)
return

if (href_list["freq"])
Expand Down Expand Up @@ -393,7 +394,7 @@ Green Wire: <a href='?src=\ref[src];wires=[WIRE_TRANSMIT]'>[src.wires & WIRE_TRA
for (var/mob/R in heard_masked)
var/thisR = rendered
if (R.isAIControlled())
thisR = "[part_a]<a href='?src=\ref[src];track2=\ref[R];track=\ref[M]'>[M.name] ([eqjobname]) </a>[part_b][M.say_quote(messages[1])][part_c]"
thisR = "[part_a]<a href='?src=\ref[src];track3=[M.name];track2=\ref[R];track=\ref[M]'>[M.name] ([eqjobname]) </a>[part_b][M.say_quote(messages[1])][part_c]"

if (R.client && R.client.holder && ismob(M) && M.mind)
thisR = "<span class='adminHearing' data-ctx='[R.client.chatOutput.getContextFlags()]'>[thisR]</span>"
Expand All @@ -404,7 +405,7 @@ Green Wire: <a href='?src=\ref[src];wires=[WIRE_TRANSMIT]'>[src.wires & WIRE_TRA
for (var/mob/R in heard_normal)
var/thisR = rendered
if (R.isAIControlled())
thisR = "[part_a]<a href='?src=\ref[src];track2=\ref[R];track=\ref[M]'>[real_name ? real_name : M.real_name] ([eqjobname]) </a>[part_b][M.say_quote(messages[1])][part_c]"
thisR = "[part_a]<a href='?src=\ref[src];track3=[real_name ? real_name : M.real_name];track2=\ref[R];track=\ref[M]'>[real_name ? real_name : M.real_name] ([eqjobname]) </a>[part_b][M.say_quote(messages[1])][part_c]"

if (R.client && R.client.holder && ismob(M) && M.mind)
thisR = "<span class='adminHearing' data-ctx='[R.client.chatOutput.getContextFlags()]'>[thisR]</span>"
Expand All @@ -415,7 +416,7 @@ Green Wire: <a href='?src=\ref[src];wires=[WIRE_TRANSMIT]'>[src.wires & WIRE_TRA
for (var/mob/R in heard_voice)
var/thisR = rendered
if (R.isAIControlled())
thisR = "[part_a]<a href='?src=\ref[src];track2=\ref[R];track=\ref[M]'>[M.voice_name] ([eqjobname]) </a>[part_b][M.voice_message][part_c]"
thisR = "[part_a]<a href='?src=\ref[src];track3=[M.voice_name];track2=\ref[R];track=\ref[M]'>[M.voice_name] ([eqjobname]) </a>[part_b][M.voice_message][part_c]"
else if (isghostdrone(R))
thisR = "[part_a][M.voice_name][part_b][M.say_quote(messages[1])][part_c]"

Expand All @@ -428,7 +429,7 @@ Green Wire: <a href='?src=\ref[src];wires=[WIRE_TRANSMIT]'>[src.wires & WIRE_TRA
for (var/mob/R in heard_garbled)
var/thisR = rendered
if (R.isAIControlled())
thisR = "[part_a]<a href='?src=\ref[src];track2=\ref[R];track=\ref[M]'>[M.voice_name]</a>[part_b][M.say_quote(messages[2])][part_c]"
thisR = "[part_a]<a href='?src=\ref[src];track3=[M.voice_name];track2=\ref[R];track=\ref[M]'>[M.voice_name]</a>[part_b][M.say_quote(messages[2])][part_c]"

if (R.client && R.client.holder && ismob(M) && M.mind)
thisR = "<span class='adminHearing' data-ctx='[R.client.chatOutput.getContextFlags()]'>[thisR]</span>"
Expand Down