Reworks AI Status Display and AI Core Display UX (#93196)

## About The Pull Request

Ready for merge post review

No gameplay balance changes, just better AI expression options and
polished interfaces for doing so.

- Adds 32 AI Core animation sprites to the AI status screens as a player
choice
- Gives two new menus to change status displays or core display with
TGUI
- Fixes Friend Computer emote incorrectly affecting evacuation displays
- Special mention to MrMelbert who gave a few very useful points as I
embraced TGUI suffering :)

<img width="1500" height="750" alt="image"
src="https://github.com/user-attachments/assets/fbae0ea9-5220-4cf9-9fa0-c5f0385f9e52"
/>
<img width="1746" height="821" alt="image"
src="https://github.com/user-attachments/assets/f1c08fdf-8dc8-44eb-b7cd-cd86f9b8f903"
/>


There is also a new verb under "AI Commands"
<img width="433" height="127" alt="image"
src="https://github.com/user-attachments/assets/2cd69b71-7a0c-4199-959e-acd4de9d5dad"
/>

<img width="364" height="528" alt="image"
src="https://github.com/user-attachments/assets/e083784e-8251-4a55-a9e2-e27e53dfa780"
/>


## Why It's Good For The Game

- Allows AI players to express themselves more in round / stand out more
- Now it is a TGUI menu, Much easier to see what is available and change
mid round as needed.
- We had talented Spriters make these and now more players can see them

## Changelog
🆑
qol: New verb in "AI commands" to update AI display status
fix: Stopped "Friend Computer" emotion affecting evac displays instead
of just AI displays
code: Replaced radial wheel for AI status or AI core display with TGUI
menus
image: AIs can now update their status displays with way more graphics
to match core display options onto the TVs.
/🆑

---------

Co-authored-by: loganuk <falseemail@aol.com>
This commit is contained in:
SimplyLogan
2025-10-26 16:45:08 +00:00
committed by GitHub
parent 731a5bdb1f
commit 49e28a0eeb
11 changed files with 650 additions and 35 deletions
@@ -6,13 +6,17 @@
should_generate_icons = TRUE
/datum/preference/choiced/ai_emote_display/init_possible_values()
return assoc_to_keys(GLOB.ai_status_display_emotes)
if(!length(GLOB.ai_status_display_all_options))
init_ai_status_display_options()
return assoc_to_keys(GLOB.ai_status_display_all_options)
/datum/preference/choiced/ai_emote_display/icon_for(value)
if (value == "Random")
return uni_icon('icons/mob/silicon/ai.dmi', "questionmark")
else
return uni_icon('icons/obj/machines/status_display.dmi', GLOB.ai_status_display_emotes[value])
if(!length(GLOB.ai_status_display_all_options))
init_ai_status_display_options()
return uni_icon('icons/obj/machines/status_display.dmi', GLOB.ai_status_display_all_options[value])
/datum/preference/choiced/ai_emote_display/is_accessible(datum/preferences/preferences)
if (!..(preferences))