New turf proc: assume_gas(). Maps to air.adjust_gas_temp().
Lots of optimizations to processing, fire, lighting, HasEntered() and
more.
Zones now process all fire data and existance in one go, fire objects
only handle spreading.
Most code has been ported straight so some of it mightn't be ideally
structured for the new gas_mixtures.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
AI can now alt+left click turfs in camera view to list and interact with objects in the status tab. For example allows for interacting with emergency shutters beneath grills.
alt-clicking doors now notifies the AI when they are electrified/un-electrified as, unlike most other shortcuts, this doesn't have a visual cue.
When interacting with doors and the AI-control is disabled hacking is now automatically initiated, as if the AI had attempted to open the door 'menu'.
When borgs/AIs try to interact with an emagged door they now receive a feedback message that it's unresponsive.
Parts of implementation done by porting code from tg-station.
/mob/proc/ClickOn() now checks storage levels, not just contents levels,
now allows items to be taken out of internal storage attached to another
item.
Coats now use internal storage for their pocket slots, removed duplicate
storage code.
Moved coat.dm out of it's special folder and into modules/clothing.
You have no HUD when zoomed. None, I'm unable to move every HUD element while zoomed in so you lose it. Consider it part of your concentration while zoomed in.
If you move while zoomed in you automatically zoom out, you lose concentration.
If the rifle isn't in your active hand you can't zoom in.
Tanks placed in canisters, scanned with PDA or other analysis tool will set the manipulated_by variable to whoever did so.
The idea is that this person is aware what's in the tank and will act accordingly when you press the internals HUD icon.
If the user was the last person to manipulate the tank (or it's not been manipulated) then the user is smart about selecting the proper tank.
If the user was not the last person to manipulate the tank then he is only checking the pressure gauge to see what tank is fullest that matches his species breath_type
If that tank has nasties in it, welp he is going to get a breathful of nasties.
Before: If you had a tank on your back full of nice precious oxygen, and a tank of plasma in your hand and thought "I'll play it safe and turn on internals" and click the internals icon you would start sucking down plasma like you weren't really qualified to handle such things, how do you even get those two mixed up you big dummy! Code was hardcoded junk.
After: A check of what your species prefers to breath, you are an adult, I'm pretty sure you can remember if the tank on your back is oxygen or not, and you will turn on the fullest tank.
Code is now nolonger hardcoded junk, and is expandable by editing a couple of variables instead of hardcoding everything. Double Rainbow, All The Way Across The Sky!
Also coded in a check for "Carbon Dioxide" in the event a downstream server uses a race that breathes that or we move dionaea to breathing it in the future.