- /datum/computer/file/embedded_program moved from embedded_controller_base.dm to code/game/machinery/embedded_controller/airlock_program.dm
- embedded_controller_base.dm cleaned up and identical parts of the controller subtypes were moved here
- embedded_controller subtypes moved to code/game/machinery/embedded_controller/airlock_controllers.dm
- Added nanoUI templates for airlock controllers
- Added a couple of classes to nano/css/shared.css for colouring buttons
- Minor map update to maintain airlock compatibility and fix a broken airlock near virology
- Fixed DP vent pumps not changing direction
- Made airlock_sensor more versatile (and backwards compatible with old airlock code)
- Added airlock_sensor and access_button airlock subtypes for easier mapping
Fixes#3986
- Foam reagent inheritance fixed:
The trans_to() proc in Chemistry-Holder.dm was calling handle_reactions() every time it would add and remove reagents with add_reagent() and remove_reagent(). I've added a safety flag to both of these procs (and copy_to()) so that trans_to will not call handle_reactions() until it has added all the reagents to the target container. This allows foam to reliably take on the properties of other leftover reagents.
- Fixed a bug in effect_system.dm that wasn't applying reagents from foam to the environment.
- Tweaked smoke to apply reagent effects after it has stopped moving
This was causing huge reagent spam at the center of the smoke cloud as it was spawning, since they were being applied every time the cloud of smoke moved. Also changed it to apply the effects 2-3 times at longer intervals (2 seconds).
- Smoke also only effects tiles in a 3x3 grid now, rather than 5x5.
- Summary:
Chem smoke does slightly less damage (if it contains damaging reagents)
Chem smoke proc calls reduced by 60-70% (significant lag reduction)
Foam works properly again
Foam proc calls reduced by 70-80%
- Added atmos themed sprite for atmospheric technician secure closets
- Added a second radiation suit to radiation suit closets
- Added a solar pack crate (because adding crates to the map with this many objects manually is silly)
We discovered that most of the problems were were having was because of BYOND passing lists (e.g. SE and UI) by-ref instead of the assumed by-val.
This commit adds dna.Clone() and (UI|SE).Copy() where needed. These should be used where DNA or SE/UI lists are COPIED, otherwise changes made in the reference will affect the real strand.
This change also messes with the gene activation logic.
Wall emergency lockers now contain two breath masks and two emergency oxygen tanks.
Emergency ration crates contain two boxes of donk-pockets. The escape shuttle has two crates at the back.