[MIRROR] HUD traits now apply their corresponding hud automatically. Most clothing/item/etc sources of HUDs now only use traits [MDB IGNORE] (#3861)
* HUD traits now apply their corresponding hud automatically. Most clothing/item/etc sources of HUDs now only use traits (#84984)
Currently if you want to apply a HUD you usually add both its trait and
the HUD itself. Only exceptions are things like simplemobs where you
should avoid adding the hud trait since it adds security/med DB access
and such, but there is no cases where you'd want to apply the trait and
not apply the hud.
Requested by Melbert about a week ago.

This makes working with HUDs significantly easier, as you no longer have
to bother with manually adding/removing them. Also potentially removes
an edge case where if your hud could get removed while keeping the
trait.
🆑
refactor: HUD traits now apply their corresponding hud automatically
/🆑
* Modular changes
* rest of the modular stuff
* no bot path hud actually
standard diag glasses don't give this, for some reason
---------
Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
* Change the pAI display face selection to a radial (#83770)
## About The Pull Request
This PR changes the pAI's face display selection from a tgui input list,
to a radial menu, with the actual faces displayed on the radial.

This PR also removes part of the comment for
`/mob/living/silicon/pai/proc/change_image()` that is no longer
applicable.
## Why It's Good For The Game
The radial menu makes pAI face display selection clearer, because
players now see what the face looks like, rather than having to guess
what a face might look like from the... frankly, very vague names given.
Seriously, what is `Null` supposed to be? What is `Face` supposed to
be?!
## Changelog
🆑 MichiRecRoom
qol: Personal AI's face display selection is now a radial menu. As a
bonus, now you can see what the faces look like before selecting them.
/🆑
* Change the pAI display face selection to a radial
---------
Co-authored-by: MichiRecRoom <1008889+LikeLakers2@users.noreply.github.com>
* Fix PAI health scanning (#80373)
## About The Pull Request
Fixes#80370
Rather than just using the global `healthscan` proc, PAIs created a
health analyzer in their contents and called `attack` directly,
despite the fact that all health analyzer `attack` does is call the
global proc
- [ ] I tested this pr
## Changelog
🆑 Melbert
fix: Fixes PAI health scan software
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Fix PAI health scanning
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* pAIs control a PDA they're inserted into (#78103)
## About The Pull Request
This PR lets pAIs inserted into a PDA to control the PDA of their owner.
They can see their own pAI configurations but cannot edit any of it.
They also can't eject themselves from it.
This means they can receive and send PDA messages as their owner, acting
like a personal secretary
This also adds support for multiple people using a PDA and its UI
updating for all of them and PDA messages being received and responded
to from multiple people under the same PDA
It also removes pAI camera in favor of using siliconcamera, which is the
same thing; this just cuts down on some copy paste.
I also reverted PDA's ringer being off preventing messages from being
sent to your chat, silent mode was meant to prevent only the ringing
sound.
## Why It's Good For The Game
pAIs can now do a little bit more to help their owners on a personal
level, and adds support for more stuff like this in the future (an idea
I had was being able to hack into PDAs in the same way the CE can hack
into APCs remotely)
This is a re-PR of https://github.com/tgstation/tgstation/pull/76445 but
it's a little better this time and does not remove the PDA Messenger app
from pAIs.
## Changelog
🆑
fix: PDAs being on silent no longer prevents PDAs from being sent to
your chat, again.
add: pAIs inserted into a PDA can now control the PDA, and will receive
PDA messages sent to it (and can respond under the PDA's name).
/🆑
* pAIs control a PDA they're inserted into
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests
* Fixing merge conflicts
* don't forget to ctrl+s!
* Another forgotten file
* urgh
* gets rid of vestiges of update_atom_languages()
and mind language holders
* No longer needed
* Fixes some modular grant_language calls
* Deprecated code
* This was up here before..
* Fixes failing unit tests, refactors silverscale lizards language a bit removing the need for skyrat edits
Removes some no longer needed code
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
Add lints for idiomatic balloon alert usage (#72280)
Adds lints for `balloon_alert(span_xxx(...))` (which is always wrong),
and balloon alert where the first letter is a capital (which is usually
wrong). Fixes everything that failed them. As a reminder, abbreviations
like "AI" and "GPS" shouldn't be capitalized in a balloon alert.
In cases where this is intentional for flavor (there was one case), you
can `UNLINT` like so:
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* Adds more multiz support (#69420)
* Adds more multiz support by making use of ``is_valid_z_level`` instead of simply checking if z is the same.
* Adds more multiz support
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* FIXES RUNTIME EVERYTIME A PAI MOVES (#69054)
Fixes runtime on movement if a pai fails to put the hacking cable in its holder's hands
* FIXES RUNTIME EVERYTIME A PAI MOVES
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>