sets every instance of race changes to use hardset_dna instead of directly replacing the datum (needs more testing to be sure I didn't break shit)
removes the invisible man race (aka the generic) and shadowlings from the new green slime mutation toxin while I'm in the area
Fixes visibility in crit
Fixed xray and nightvision not working
Fixed dna changing diseases
Fixed hulks doing damage on all intents
Fixed transform procs sometimes breaking dna forever
Redone how injectors handle mutations(now it doesnt copy the SE but
manipulates mutations directly)
Removed sole leftovers
Fixed humanizing
Fixed grammer
- Corrects the logic for when the AI can speak on its radio.
- Added a missing "-" to the radio instructions.
- Removed an unneeded feedback line for toggling the AI's radio via
intellicard.
- The AI now has its own built in radio headset!
- The headset receives all department channels, including AI Private.
- AI Private can be accessed using :o, .o, #o, :O, .O, and #O.
- Carding an AI will automatically disable the AI's ability to transmit
on its radio.
*The AI's radio transmission ability can be toggled via the InteliCard's
interface
- Added instructions to newly spawned AIs such that they know how to use
their radio.
Monkey-lings can use hivechat.
Lings can return to human form even if monkeyed through genetics.
One-line fix for Destroying Angels (..() wasn't being called)
Spelling correction in Destroying Angel description
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.
New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.
ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
Fixes an edge case for blobize where if you open someone's player panel and they ghost between then and when you hit the blobize button it still gives priority to them for the created blob.
Note that you can't usually get the option to blobize a player if they've left their body before you open the player panel, if you want to blobize a specific person in this way, ask for them to return to their body.
Death of the istype invasion from slimes, previously every single color of slime was its own kind of mob, and every single one of those slimes also had an adult form which was a different mob.
There is now only one kind of slime, reliant on new var is_adult and old var colour to determine how it looks. All baby slimes functioned identically outside of icon and core, and all adult slimes functioned identically to each other and to the babys save for a bit higher Health and more capacity to break shit.
A nice side effect is that this solves any inheritence issues of baby slimes growing up since it's still the same mob, though it doesn't solve the same issues for adult slimes splitting.
Also fixed a few annoying but rare bugs (like getting ghosted because you got DC'd and your slime self split and you weren't around to get mind transfered)