* Fix falling to check if movement actually succeeds before taking damage from falling.
* De-snowflakes how objects prevent you from falling out of their turf (catwalks and latticue)
* Improved the messaging and the way falling procs are called to make it more flexible and possible to hit things in a turf before the turf itself.
* lighting_overlay objects belong to a turf. Turfs never move. Neither should the lighting_overlay, even of an overzealous shuttle controller thinks they should.
Turbolifts, and shuttles. Please behave.
Shuttles throw everything to z1 regardless of actual shuttle destination z-level, which is silly. Secondly they literally throw it using Move which is silly. Thirdly, they do it to every atom/movable, which is unacceptable. Especially since that tries to squash lighting overlays out of the way, making weird lighting problems on shuttles.
Turbolifts qdel any 'simulated' atom/movable when they run into it, which is also stupid. This includes things like the AI Eye, which permanently deletes it. A little unfortunate, if you ask me.
* Prevent runtime if accidentally have a spawnpoint authorized by using_map but without any landmarked turfs.
* Remove Arrivals Shuttle & Elevator, add Tram Station to using_map.allowed_spawns.
* Register Tram Station landmarks as the fallback location in case someone has a deprecated spawnpoint in their save file.
-Arrival airlocks have no controller/default bolts
-Backup atmospherics on the space station has no filter discharge if you arent venting to space - it filters O2 and N2, and no outlet for anything else
-Medical maintenance APC is unpowered, next to Chemistry and Psychiatry
-Resleeving lab window tint doesnt work
-The stairs just outside the warden's office, on the lower level, have no guard rail/window
* Its much easier to test out and decide what explosion scalar is nice if you can configure it.
* As an added bonus, by setting it to zero this lets you disable multi-z explosions altogether without turning off all of multi-z.
A simple optimization to can_safely_remove_from_zone() both with and without multi-zas.
Instead of allocating a new list every time we call get_zone_neighbours() (which gets called several times in a loop) we have a pre-built list we don't need to Copy().
Same story for the list to iterate over in can_safely_remove_from_zone()
There should be no semantic change whatsoever from this; it is purely a performance optimization.
* This device converts CO2 to O2 using power and "algae". The extra carbon is a byproduct in the form of "graphite"
* This is intended for virgo3b, which has no oxygen in its atmosphere but enough CO2 for us to just extract it.