Moved gas_mixture gas numbers to a list which is connected to a global gas_datum list, like with reagents.
Modified some maths procs to be more sane, added adjust_gas and set_gas to help with processing.
Added a modular system for gas flags - gases can now be marked as fuel and oxidiser with a flag, logged with a flag, scanned with a flag, etc.
Changed scrubbers to use a list of scrubbing gases rather than a set of vars.
Made miners and xenoarch effects more sensible - they now produce gas by ID, not manually.
Made turfs' starting gases into a list, removed turf gas number vars.
Fixes#4151, ghosts were managing to get to nullspace by click teleporting to the edge of the map. This resolves that issue by making it so click teleporting calls entered just like any other and all other forms of movement.
Fix#3916, monkeys can now swap their hands using their hud switch hands button. It was previously unclickable because it was a button of the wrong type.
Feature freeze hasn't started yet!
Ventcrawling now actually puts you in the pipes and lets you move around.
You get an overlay of all the pipes in the network you're currently navigating.
Altclicking on a vent now specifically lets you crawl into that vent if there are other vents in the area.
You can now ventcrawl into scrubbers as well, because there's no real reason not to.
The movement is currently very odd. I'll see what about it needs tweaking.
Fixes#3571: selectable targets can now be cancelled.
Fixes#3563: spell lists are now started properly, so blocks should correctly remove spells.
Fixes#3565: user wasn't being passed properly, which was causing an issue.
Fixes#3552: regular spell smoke would cause all tiles to smoke up, so it needed custom code.
Sorta port sorta not of tgstation/#7833.
Big thanks to Remie for the code permissions.
Lets you place stuff on tables, see the TG PR for an example.
Actual change: wrenches and welding tools can now be placed on tables. You can decon by clicking the table legs.
Sprites by Skowron, who is, as always, da best.
Added spell buttons for all spells. This is building on an idea originally put in by Deity, but which was done in a snowflake way and only for constructs.
These spell buttons are generated by handler procs for mobs.
Each spell button has a spell icon, changes with its percentage charge, and can be shown or hidden with the spell master.
The spell master itself can be moved around thanks to TG movable objects.
Constructs now inherit Life(), for sanity and goodcode.
Moved several Harvester procs to spells. (We can do this with ling and vamp too!)
Added Narsie listing so Harvesters don't loop through world.
Replaced a lot of strings in spellcode with defines.
Waiting for the wonderful Skowron's sprites for all spells given by genetic powers, as well as a few spells.
You can now use attack_self to wield and unwield an object.
You can now use the offhands attack_self to unwield an object.
Finished a runtime fix that Pomf started.
Made stuff more OOP, less terrible.
Runtime operands are shit and if you use them you are shit.
Made some procs mob-generic.
There are now two procs:
get_all_slots(), and get_equipped_items(), which is get_all_slots but without what's in the user's hand.
This is different for silicons.
Fun things found in this excursion: aliums have a snowflake copypaste for being run over by a mulebot.
Clicking something when you have no hand now calls a different proc.
This lets you still interact with stuff, but you can no longer attempt to pick up items.
Fixes#1564.