* Some runtime fixes
* fixes#12892
* Alternative fix. Better behaviour
* qdel atmos thingy when loc is null
* Eye colour init protection
* Whoops. Forgotten /
* Suggestions update
* Fixed a runtime where IPCs losing their arms would cause a runtime in the hand
* Fixes mobs being able to nuzzle a grill to dead and a runtime there
* Added extra logging to the NPCpools
Blobbernauts can now be controlled by players through a prompt whicha appears when they are spawned by blobs.
Blobbernauts have been nerfed, they now have less health, deal less damage and cannot break walls anymore.
Blobbernauts now regenerate health overtime when standing on blob structures.
Blobbernauts and blobs can now communicate with each other.
Blob's "Produce Blobbernaut" ability has been made more expensive to use, now costing 40 resources instead of 20.
This converts the machine and mob processes to the SMC. Additionally, it
adds the Atom subsystem, which handles all Initialize() calls in place
of the old gameticker. Due to incompatibility with our atmospherics
(FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE
THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use
Initialize() as they should, instead opting for a custom atmos_init
proc that the air controller handles.
This is a merged port from /tg/station and Virgo on logging standards.
The diary has been replaced with GLOB.world_game_log, diaryofmeanpeople
is gone (because it wasn't actually used) and a whole bunch of logging
procs have been changed to optimize Splunk.
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.
Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
This commit first and foremost ports the -tg- atom pooling system, and
removes the old experimental system entirely.
Secondly, this PR modifies the qdel system to use a -tg- lookalike
"destroy hint" system, which means that individual objects can tell qdel
what to do with them beyond taking care of things they need to delete.
This ties into the atom pooling system via a new hint define,
QDEL_HINT_PUTINPOOL, which will place the atom in the pool instead of
deleting it as per standard.
Emitter beams are now fully pooled.
Qdel now has semi-compatibility with all datum types, however it is not
the same as -tg-'s "Queue everything!" system. It simply passes it through
the GC immediately and adds it to the "hard del" lists. This means that
reagents can be qdel'ed, but there is no purpose as of yet, as it is more
or less the same as just deleting them, with the added effect of adding
logs of them being deleted to the garbage collector.