* Orbit Poll respects Preferences + Asks for Permission to Unghost (#79712)
## About The Pull Request
Fixes#79676
Ticking either the player or admin "do not consider me for ghost roles"
excludes you from the pool of candidates in an orbit ghost poll.
You will now get a `tgui_alert()` asking you if you want to accept being
put into the orbit poll role's before you accept it, putting it in line
with every other ghost role in the game. If the player doesn't accept,
the proc is re-ran with someone else on the list.
## Why It's Good For The Game
We need both of these behaviors present to keep it standard with what
players expect with ghost roles, and it is annoying to be an admin/AFK
player who gets hotswapped into one of these roles while they're doing
stuff.
## Changelog
🆑
qol: You will no longer be added to the list for ghost-orbit role polls
if you have opted out of getting antag ghost roles in your preferences.
qol: You will get a tgui_alert to accept the ghost role if you were
selected via the orbit poll, instead of it just throwing you intot he
role.
/🆑
* Orbit Poll respects Preferences + Asks for Permission to Unghost
---------
Co-authored-by: san7890 <the@san7890.com>
Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a SendSignal() call. Now every component that want's to can also know about this happening.