Jaunt with a low enough cooldown would allow you to double cast jaunt making it flip the fuck out, so instead your spells are now silenced during jaunt. Your click and attack delayers as a jaunter are now delayed until the end of the jaunting session.
Airflow now checks for flags & invulnerable, which is the flag that is meant to prevent effects from occurring to that atom. This should fix an issue I've been seeing since hellish ZAS was recently turned on from virtualhearers and jaunters being blown into things.
Also fixed another reported bug that huds would report on invisible people, they lacked the see_invisible check that mechs had.
Removed update_values(). RIP, shine on you CPU diamond.
Removed get_moles_by_id and get_archived_moles_by_id, all moles are now accessed directly to reduce call cost.
Added set_temperature and set_volume procs which recalc pressure when temperature or pressure change.
Heat_capacity is now a var updated when gases update.
Modified adjust_gas to use set_gas, modified set_gas to alter heat_capacity, total_moles, and pressure as needed.
Less datum accessing and fetching and whatnot should speed it up a lot.
get_gas_fuel() and get_gas_oxidiser() have been reverted to slightly older behaviour.
Can't say this will definitely massively reduce CPU, but it will make it significantly faster since get_gas_fuel and get_gas_oxidiser weren't nearly as called as I thought they were.
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.
Major code improvement that has been long overdue. The changes have been
thoroughly tested and everything appears to be working fine
- Move catwalks from turf/[retarded path]/catwalk to
obj/structure/catwalk. A dm file has been added to that effect
- Remove iscatwalk() helper check (not needed for an obj/)
- Lattice code has been used -to great effect- to recode catwalks. No
more hardcored nonsense to "make it like there's a space tile
underneath", now there IS space underneath. This should also fix trace
gas problems often witnessed during Derelict plasma floods
- Use relativewall method. There should have been no functional changes.
Catwalks update when new catwalks are added (not when surrounding
catwalks are destroyed, but it still seems logical)
- Add a in-house ex_act system to boot (to compensate for the fact
catwalks no longer use floor's ex_act). The catwalk is either destroyed,
replaced with lattice (add lattice at location, delete catwalk) or
unscathed
- Remove a lot of spaghetti code that has creeped up into ZAS/Atmos
systems and even into tile painter code since catwalks no longer run ZAS
loops and aren't considered turfs anymore
- All maps have been updated to the new catwalk system (otherwise the
map doesn't load, duh)
- Bit of spaghetti code in cable.dm (both item and structure) since
until then cable was NEVER laid on "objects". Works as intended
- Space has been changed to intact = 0. There's no reason for space to
be "intact" because there is only one version of space tiles, and it
fucks with wire placement
Confirmed working :
- Space automatically appears under the tile, catwalks tiles thus act
100 % like space tiles without hardcoding
- Construction and deconstruction works flawlessly. You do need to
precisely click the catwalk grating to deconstruct since the obj/
catwalk uses transparency correctly, but lo and behold, it's a feature
- Explosions function as intended when targetting catwalks (lots of hole
at the center, pepperoni at a distance)
- Cable-related stuff working (laying cable on catwalk, having cable on
catwalks in general)
- Boxstation, Defficiency and Metaclub updated
- Include list updated
Everything should be functional and was tested, but please outline
anything that looks like it'd work badly
Replaced it with use of the atom-level var pressure_resistance.
Engineering, deathsquid, and ERT hardsuits now resist up to 20MPa of pressure, security and medical 4MPa, and soft suits 0.5MPa.
Pressure protection can now also come from items equipped in slots other than the head or suit.
Removed the HEADCOVERSEYES, MASKCOVERSEYES, GLASSESCOVERSEYES, HEADCOVERSMOUTH, and MASKCOVERSMOUTH flags.
Added the EYES, EARS, and MOUTH flags for body_parts_covered.
Added a proc for getting the item giving a flag, instead of just checking that it's there.
Made borers check for the EARS flag, instead of using HIDEEARS.
Next on the chopping block is BLOCKHAIR and BLOCKHEADHAIR, which are going to be shoved into flags_inv.
This code was just a big fucking mess. Happy motherfucking 2015.
* Delay procs and variables replaced with a standardized delayer framework.
* Cleaned up the absolutely fucking atrocious fix_next_move() diagnostic verb.
* Added the ability to adjust minimum and maximum delay clamps per-mob for adminbus purposes and future features.
* USECASE: Fat people cannot attack as fast (not implemented)
Tested somewhat by smacking a window with a crowbar. Movespeeds also don't seem insane, either.
Fuel now burns, even without an auto-ignition temperature, which was a silly way of doing things.
Mobs no longer ashify since their proc is changed.
Flamethrowers now spread more fuel and burn more consistently for it.
Atoms now have volatility, so they can burn more if they have less fuel.