* Sideports a couple of init unit tests from Neb.
* Trying to unfuck initialize logic.
* Removing del()s.
* Adjusting return values to Initialize().
* Moving some dangerous object logic from obj onto the two types that use it.
* Rolling back some init changes and commenting out initialized atom unit test.
* this comment formatting is a minor war crime
* Removed sleep() from signaler circuit Initialize().
* Additional Init fixes post-rebase.
* Uncomments subsystem test since that's passing.
- This was caused by create_spores() being called on seeds which were not registered with the plant_controller (becuase they had never been harvested)
- Instead of registering them, we can just pass the seed datum itself, that is all the chemsmoke needs anyway.
* Mobs can be incorporeal
Prevents step noises, getting shot, etc. Basically living ghosts. Feel free to add more places this should check, but I think this is a majority.
* Fix missing incorporeal floatyness
* Okay evidently walk_to(A, B) doesn't stop when A reaches B, but keeps running in the background forever until it is manually canceled! Therefore in order to be garbage collected, we must cancel walking on any object that might have initiated it.
* Fixes this on chemsmoke and spiders.
* The same story applies to walk_towards; fixed for dust, meteors and immovablerod, and also to walk_away; fixed for flashbangs.
* Also fixed chemsmoke actually getting qdeled at the right time.
* Creating new objects is cheap, in fact comparable to the cost of getting it out of the pool, so it doesn't help there.
* Placing items in the pool is far more expensive than letting them garbage collect due to the resetting of vars and such.
Remains of player blob axed.
blob_act() axed. Blob now has an arbitary set of things it can attack.
It will flow over everything else. Blob has an awful tendency to destroy
non-craftables.
Will test more tomorrow.
Blob will now attack mechs.
Fixes#8106.
Fixes#10705.
Doubles the amount of water extinguishers carry and quadruples the
amount of water sprayed with each use. Halves the damage taken by slimes
when exposed to water to compensate.
Also refactors chair propelling a bit.
Adds splash() proc for futureproofing.
Replaces instances of splash_mob() with splash()
Replaces instances of trans_to() with splash() where appropriate.
Datum pool no longer creates a new object just for the sake of it when initializing pool lists.
Also bandaids an issue where water could be qdeled while being sprayed and reagents nulled, because someone calls spawn() qdel in new.
Datum pool now also adds excess pool objects on the trash pile instead of calling del directly.