Adds a HUD for observers
Adds a HUD for rigs and mechs
Adds up/down buttons for AI hud
Add more tg style alerts
Fix some bugs with the tg alerts
Improve icon_states usage by caching it
Redo how respawning works, add a button to ghost hud for it
* Fix a typo in a verb.
* Add straffing to mechs. This took my entire morning goddamnit.
You now have a straffing verb. Very convenient to shoot while firing back.
Thanks to @drexample even if i didn't use all that much of the original code i stole.
* Change straffing to strafing.
* Correct an oversight.
* Add a variable that determines whether or not you are in a mech or fighter at the moment.
* Rework a lot of mech code backend and add clickable buttons.
- Gygax overload, Durand defence mode, phazon phase, marauder smoke, zoom and thrusters have been made into modular things. Just put the 'smoke_possible' var to get those actions.
- Move most abilities that aren't for default mechs to 'Mecha_actions.dm' for less huge of a file. Marauder abilities to be moved shortly.
- Lot of verbs have been broken into procs such as toggle_lights() now being a verb refering to a lights() proc for easier work later on.
- Delete some movement code duplications.
- Changed the smoke system to be more up to date, inspiration taken from the cooking machines.
* Space out some things for ease for reading.
* Improve the damage readout for mechs on examine
* Improve speed boost code to an easier to modify version.
* Deleting a couple few forgotten debug messages.
This adds throw_alert() and /obj/screen/alert, a system that allows you to do custom hud alerts for any variety of things from "You're too cold!" to mecha status indicators for the pilot.
There's quite a few things that actually got replaced; the
fire/oxy/tox/co2 alerts are all now just alerts, as is nutrition. There's also a number of new alerts, such as blindness, highness, legcuffed, buckled, handcuffed, and probably some more I missed; read code/_onclick/hud/alert.dm and see for yourself!
Additionally, a number of tweaks have been done to resisting code, to make it so that there's an indicator when you're buckled or handcuffed, and can just click the alert to start resisting. This includes a refactor that combines the logic for lockers, holders all into one proc, called container_resist().
Also, the health and internals indicator got moved down one tile each. Needed room for the alerts. If we add the oxygen tank action buttons from /tg/ and remove the internals indicator, the health indicator can go back where it was originally.
Alerts, pictured in the top right.

This adds a system for picture-in-picture UI windows using
vis_contents. Essentially, it allows you to make UI windows that show an area of turfs. It also refactors how cameranet visibility works.
Currently, this is implemented on AIs. They gain two new UI buttons - "Enter Multicam Mode", and "Create Multicam". When they go into Multicam Mode, they see a background of animated binary numbers, and they are allowed to create an infinite amount of these picture in picture windows, which subsequently creates an AI Eye for each one. They are able to control each AI eye individually, by first clicking on the PIP window to select it as "active" and then using the normal arrow key controls. The PIP windows can be freely resized and moved around the area.
You can control everything inside these PIP windows EXACTLY the same as you can using a traditional AI Eye, as demonstrated below.
For admins, there is a config option to disable PIP entirely - simply set `var/multicam_allowed = TRUE` to FALSE if you wish to disable it from being used. (Please be reasonable.) <3
You can see an example of how this works here:

AI Multicam functionality.
Do note that if the lightbulb in the AI core is busted, the multicam room is dark(er) than it would be, but you can still see your camera windows just fine. (I'll probably fix this later.) It only affects the "matrix" backdrop, the PIP windows are still fine.
This has been runtime-tested with the latest `master` revision and produces 0 runtimes, and has no noticeable impact on server CPU usage.
Polarisport is here! Port of https://github.com/VOREStation/VOREStation/pull/7752
The body zone selector now indicates which body part you are about to select when hovered over, and the hover inventory indicator basically shows where you are trying to put an item, and then shows an item ghost in red or green, giving visual feedback as to if that item will go in the slot or not.
Gifs of this in action:

Body Selection parts.

Inventory Icon Overlays!
Credit goes to @ShadowLarkens for original port to Paradise and assistance with port.
Fix an issue whereby when reconnecting to the server after disconnecting/losing connection your internals HUD element will always be off, even if you're actually still breathing from a tank.
Now it checks & shows the correct state so you don't panic after lagging out IN SPACE AAAAAHHHH
- Port based on Baystation's implementation and customized for our code and usages.
- Switched space icon_state permutation to a "dust" overlay that is permutated the same way. As an overlay, the dust can be *above* the parallax planes. Space turfs are now white to allow skybox to BLEND_MULTIPLY onto them.
- Added skybox hud effect that replaces background space turfs with an image moved to create a parallax effect.
- Added skybox subsystem to generate and manage skybox parallax images, and lots of images for it!
* Fixes 6 pAI faces
PAIs are no longer coded to only recognize 9 emotions. This enables the use of the neutral, silly, nose, smirk, exclamation points, and question mark faces as a pAI. Before, those buttons did nothing.
* Fixes the PDA Halogen Scanner's tendency to be number one.
* Unfolded pAIs can be picked up
Because who doesn't want a robotic cat on their head? Adds in the missing code to allow pAIs to actually be picked up, and held sprites for the newer 4 chassis options.
* Adds the Gigaphone, a suped-up Megaphone.
* Constant Chip has a sprite
* Fireaxe cabinets find their fireaxes in initialize(), rather than new()
* Speeds up alcohol
* fixed mining cloak not being in loadouts
* Admin Supermatter Setup now closes the monitoring room shutters (#5442)
* Admin Supermatter Setup now closes the monitoring room shutters
* Fixes a copy-paste error
* Begins work on lightning.
* Fixes#5447 (Deadspy submap not overwriting mapgen) (#5448)
* Map fix
* fixed deadspy.dmm
* Added Squid plushies of varying colours
I added a few Squid plushies in different colours, changing the files code/game/objects/items/toys.dm
and obj/toy.dmi
* Added hat functionality to Squid plushies
I added the ability to wear my Squid plushies as hats. They're damn good hats.
* Replaces Skrell namegen (#5453)
Created a first name list for Skrell, to replace the syllable assembler.
Created a surname list for Skrell to replace the syllable assembler.
Replaced the Skrell namegen with pre-written namelists, instead of the old syllable assembler.
* Mechoid makes mistakes. Fix telepathic gigaphones.
* Lets people be colorblind
Adds four types of colorblindness to the traits in the setup menu - protanopia, deuteranopia, tritanopia, and monochromacy. Previously, there were ones defined in the code, but not actually usable to players.
* Whoops, worded that wrong
* Adds beams to the Type var list for View Variables.
* Unfuck my Master
* Adds beams to the Type var selection in View Variables.
* Finishes thunderstorms.
* Adds logging.
* APC Sprite Change
- Port from Virgo recolored slightly to match closer to the old sprite
- Addition of directional sprites for the APCs
* Refactors supply controller.
Supply consoles now run nanoUI
* Missing '
* [Excitedly updates changelog]
* btw i use arc
* Removes supermatters from cave PoIs.
* Holomap Port
- Port of Holomaps from Virgo
* Changing species (via ling or admin button) should no longer ruin your HUD
* Converts most istype(thing,tool) procs into an appropriate thing.is_tool() format
* Removes empty file, gives the QM a control console again (Was replaced with an ordering console)
* Hopefully fixes some tool-conversion things
* Makes the Northern Star still compile
* Keeps NS up to date
* Taj and Unathi should have explorer mask sprites now
* Corgi rune now summons the corgi in a flash of harmless lightning
* Forces mech construction to work with the is_tool() procs
* Various things and floors no longer associate with dirt
* MultiZ falling tweaks
* Fixes the clusterbang grenade
* Added new hairstyles
* Added new hairstyles
* Fixes spelling of Strike in Lightning Strike admin verb
* I don't know how we keep breaking falling
* Hallucinations now use the old system again, but with the more modern components.
* Ambience Refactor (#5476)
* Refactors how ambience is assigned, removes bad ambience, ports good ambience from tg
* Apparently that file is still used, not worth the salt to remove it.
* Changelog
* The speed-related chem effects are no longer a one-or-none affair, oxy causes slowdown
* Corrects noted issues
* Add some missing sprites for xenoarch excavation.
* Become thwarted, thot.
* Fixes the Ultra AC2's burstfire bug.
* The Major Bill's shuttle is actually contagious now.
* penguins are from earth
capitalize this, anewbe, i dare you
* Mechoid's a butt
* Adds new job/department specific teshari clothing to the loadout (#5481)
* adding the new department specific teshari outfits
* Slightly cleans up hooded suit code (#5471)
* FBPs can have brute damage repaired externally again
* Windoors fix
* Cleans up some largecrate code
* Weather refactor.
* NanoUI makes me sad.
* Drinking more booze gets you drunk faster
* Ports the supermatter grenade, supporting code
* May or may not make movement seem smoother
* Fixes the Sleepy Ring
* Partially ports the GLOB system
* Fixes the bug(s) that allow meat bodies to have metal brains
* ports VOREStation/VOREStation#4165 - i forgot to check if advanced who was a thing here
* Optimizes supply UI
* Transfer shuttle grammar fixes
* Fixes borked E and W fish sprites
* Fixes incorrect ETA in crew transfer announcement
* Mech Mini 'Revamp'. Will need playtesting. (#5480)
* Exosuits are now capable of holding more equipment, of specific types.
* Tweaks regarding feedback in staffside thread, other concerns.
* Tweak to be more consistent. Why did the Odysseus have two universals. Tweak to weapon restriction on Med - > Odyss
* Weapons only fit in universal combat slots.
* Adds smart magazine, magazine functionality
* Adds a new subset of grenades that shoot projectiles
* Low alpha now makes HUDs and tooltips not show up on you
* Fixes a UI bug with emptying currently-open bags into smartfridges...hopefully. (#5515)
* Update smartfridge.dm
* actually indicates which line solves the bug
* Adds a whole bunch of Exosuit weapons and other miscellaneous parts.
* Minifrags now use the small fragments mainly as they should.
* Iced beer no longer freezes you to 3 degrees C, which is enough to seriously burn a Skrell. Seriously, that's weird.
* Touch stuff in reference to responses.
* NanoUI now processes again
* Converts more simple_animal mobs to simple_mob
* Submap correction
-Fixes missing default module UI icons.
-Fixes the UI mudule icons breaking on relog. (oh please who the fuck puts a ..() at the top when the parent proc is nothing but a single return???)
EVA suit no longer stores toolboxes because those use a volume inventory.
CE's suit no longer holds pickaxes and ore satchels, but can now hold inflatables.
Adjusted get_breath_from_internal() proc to disable rig internals if the helmet is retracted and no suitable mask is in place.
Adjusted the internals button to ignore offline rigs.