Files
SimplyLogan 49e28a0eeb 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>
2025-10-26 17:45:08 +01:00

29 lines
1.1 KiB
Plaintext

/// What to show on the AI monitor
/datum/preference/choiced/ai_emote_display
category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
savefile_identifier = PREFERENCE_CHARACTER
savefile_key = "preferred_ai_emote_display"
should_generate_icons = TRUE
/datum/preference/choiced/ai_emote_display/init_possible_values()
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
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))
return FALSE
return istype(preferences.get_highest_priority_job(), /datum/job/ai)
/datum/preference/choiced/ai_emote_display/apply_to_human(mob/living/carbon/human/target, value)
return