Fixes runtimes with chem grenade calling prime() after being GC'd.
Fixes some hardsuits having "unacidable = 1" twice.
Fixes runtime with alien whisper.
Fixes runtime with check_shields()
Fixes runtime with Venom, Formaldehyde, corn syrup and holy water.
Fixes cult sacrifice soulstoning not working (giving a dead shade).
Removing Smile, Swedish, Chav and Elvis from genetics. These mutation can still be acquired via adminspawned dna injector. Added a dna injector for laser eyes mutation.
Fixes using razor on non human shaving non existent hair.
Fixes chair deconstruction dropping too much metal.
Adding some necessary check for mob buckling in gibber, processor and monkey recycler code, and in ventcrawling proc to fix being able to enter pipe while feeding as a slime.
Fixes snapcorn not giving seeds.
Fixes portable chem dispenser.
Also smoke reaction now uses the TOUCH method instead of VAPOR, to differentiate smoke and foam. Mob without internals or gas masks also ingests reagents in the smoke.
Moved nanofrost smoke code to effects/effect_system/effects_smoke.dm
Specifically I wanted to allow #12043 to correctly implement clicking an "on fire" alert to call resist without affecting other alerts which is currently impssible. Plus this whole mess was stupid and bothering me so here we go.
Changed the warning message when climbing mech with a mob attached to be more general instead of specifically about slimes.
Getting inside a closet or machine now immediately breaks your pull and the pull of your puller.
Using ethereal jaunt now also immediately break your pull.
Fixes being able to get inside a mech sleeper while buckled by buckling mid-insertion.
Fixes Toggle Helmet light verb on security helmet with seclite attached being usable while dead.
Fixes Lizard snout is poking through helmet
Fixes Space helmets not hiding masks and glasses (especially the large gar glasses)
Eva harsuit helmet no longer has a semi transparent part (incompatible with hiding masks and glasses, and causes lizard snout protruding from that helmet)
Made equip_to_slot() and unEquip proc more OOP at the carbon level which removes some duplicate code between monkey and human.
Readding code\modules\mob\living\carbon\brain\login.dm that someone (probably me) unchecked some time ago by mistake.