Files
Paradise/code/datums/spell_targeting/telepathic.dm
Aylong 825c2c8866 Converts Input List to TGUI Input Lists (#23396)
* Part 1

* Testing 1

* Revert "Testing 1"

This reverts commit fc06554b28.

* Part 1.1

* Part 2 - UI Style List

* Preferences lists

* Preferences lists - DONE

* More inputs

* MOOOOOORE

* UI style else

* Last ones

* Double name fix

* Pre-selected Search

* Return Pick Darkness

* Return Pick Darkness

* Missing users

* Some review changes

* Revert MULE lists

* I just hate MERGE CONFLICT label

* List window tweaks

* I think there it is

* why i am stopid

* Update tgui.bundle.js
2023-12-10 19:38:23 +00:00

38 lines
1.0 KiB
Plaintext

/**
* A spell targeting system which will allow the user to select a target from nearby living mobs. The name will be "Unknown entity" if the user can not see them
*/
/datum/spell_targeting/telepathic
/datum/spell_targeting/telepathic/choose_targets(mob/user, obj/effect/proc_holder/spell/spell, params, atom/clicked_atom)
var/list/valid_targets = list()
var/turf/T = get_turf(user)
var/list/mobs_in_view = user.get_visible_mobs()
for(var/mob/living/M in range(14, T))
if(M && M.mind)
if(M == user)
continue
var/mob_name
if(M in mobs_in_view)
mob_name = M.name
else
mob_name = "Unknown entity"
var/i = 0
var/result_name
do
result_name = mob_name
if(i++)
result_name += " ([i])" // Avoid dupes
while(valid_targets[result_name])
valid_targets[result_name] = M
if(!length(valid_targets))
return
var/target_name = tgui_input_list(user, "Choose the target to listen to", "Targeting", valid_targets)
var/mob/living/target = valid_targets[target_name]
if(QDELETED(target))
return
return list(target)