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.
make environment_smash into bitflags
add obj_damage for simple animals
make default max_integrity and obj_integrity INFINITY for non-defined objects, until we can move more objects to obj_integrity/take_damage() system
adds examining objects to roughly check damage
more obj_defense.dm procs
tables can be attacked with items, glass tables have a narsie_act()
fixes, changes to make it compile
adds armor to many objects
re-adds the clockcult floor sprite (accidentally removed in another PR)
adds clockcult effects to the clockcult floor
adds clockcult grilles
adds var/broken to /obj/structure
adds unused resistance_flags var
moves burn_state and resistance_flags to flags.dm
more updates to attack code
updated obj_defense.dm procs
kills off anim() proc, removes ninja rigsuit electricity effect
gets rid of the flick() in temporary_visual.dm because pooling is dead
updates ethereal_jaunt.dm and makes it OOP, wraiths no longer show the wizard animation, jaunters cannot move after duration is over, fixes directions errors
turns many anim() into obj/effect/overlay/temp
smoother pet heart animation
effect/effect to effect/particle_effect
make foam an effect again
move explosion_particles.dm to effect_system folder
OOP effect code, addtimers, QDEL_IN
fixed reagent explosions never having a flash range due to a typo
Blood pools had a duplicate definition of "NO_CLIENT_COLOUR" while it
wasn't defined at all for blood trails.
This resulted in a bug where upon wearing a pair of noir shades or
becoming colourblind, blood trails would take on a different colouration
than blood pools (drips, etc.)
Now resolved by moving the duplicate definition to a place where it can
do some good.
Blood that would splatter onto windows is now pixel-shifted and renders
above them so you can A: Clean it with ease and B: See it in all its
gorey glory.
I had to get creative with how I detected structures blocking blood
splatter.
Janiborgs riding, sprayers spraying and cleaner grenades foaming over
adjacent tiles won't clean off wall/windowblood. You have to use soap
and click on the blood.
Pixel shifts blood onto non-floor structures, thus respecting viewing
angles.
You are no longer able to see blood splattered on a wall from the other
side unless you've x-ray vision.
This also fixes a bug where xeno blood splatters were red.