Fixes surviving suicide
Fixes suicide damage overlays.
Fixes ninja regen "clothes warm" spam message. (moving rad armor check outside of apply_effect)
Fixes ninja smoke bomb count.
Fixes dead shaved corgi
Fixes lipozine still being in code.
Fixes flattening boxes requiring them to have their window opened.
Fixes armor softening message from disarm attack.
Fixes player being forced to play spiders without choosing.
Changes the glasses of what? to use an overlay with reagents color.
Adding a ricepack to the kitchen cabinet and the food crate.
Adding more bowl to the dinnerware vending machine.
Adding pumpkinjuice, blumpkingjuice, cherryshake, bluecherryshake pumpkin latte, drunken blumpkin reagents.
Fixes the washing machine being able to change boxing gloves, ninja gloves and botany gloves to look like simple colored gloves. Creating a /gloves/color category for all gloves whose color can be changed.
Fixing some absolute pathing.
Adding a check so clicking an already giftwrapped item doesn't show the wrapping message.
Adding nobludgeon flag to wrapping paper to remove attack messages
Removing w_class line from package wrapper because already in its parent.
Remove the unnecessary message (box is full/packagewrapper doesn't fit in the box) when wrapping box.
Fixes not being able to wrap box with just one single package wrapper left.
Fixing attack_log (fix issue4180) and only adds log when the wrapping succeeds.
Now using wrapping paper actually uses its amount.
when all used, they will drop cardboard tube like intended.
Fixes issue4207
Fixes not being able to re-add wrapping paper and package wrapper to themselves like proper stacks.
New sprite for both paperwrap and cardboard tube. (from Nienhaus)
(
Nothing when Attack w/ item on dead animal
No varied attack verb for the above.
Item attack on alive SA/syndicate/melee: no sound
No Punchsound on alive and dead SA.
goat attack on SA/human/alien/monkey : no sound
attack_hand and Item attack on dying mouse: nothing
is_muzzled() fix in slime.dm and humanoid.dm and larva.dm and humanattac?kpaw.dm (put a muzzle on self, immune to monkey bites!)
monkey attack on animal: can't attack alive!
monkey (821) has attacked the grey baby slime (477)! (needs bite and sound)
monkey can't attack_paw alien/slime/animal with health below 0.
attack_animal on larva has no sound.
monkey bite on human: no sound
Larva on Humanoid/slime.
can't monkeybite a wounded alien.
larva needs to be attackable by humanoid/slime/hand/item/monkey/SA
Monkey cant bite dead/unconscious monkey
Larva bite has no sound. can't bite anyone but animals
)
-Singularity engine is now sealed off from outer space, making it more secure from saboteurs and safe from meteors
-Deputy armbands (red) added to HoS office. These can be ad-hoc distributed by the HoS when deputizing crew
-Slight remap of HoS office to fit everything in there. added a filing cabinet and paper, too
-Shutters added under robotics and R&D's primary hallway windows
-Filing cabinet and paper added in bridge
-Added windows to garden and Syndicate base
-Renamed brig lockdown button to something more appropriate
-Added subtle outlines for shuttle docking areas
-Moved the HoP line flasher back to make it harder to steal the flash inside during the initial rush
-Added teleporter beacon to the old AI sat teleporter
-Moved prison newscaster
-Made N2O storage more visible for security
-Removed extraneous light in the execution room
-Added Quarantine to AI upload
-Captain now spawns with a box of spare silver IDs instead of regular ones
-A few minor piping/wiring improvements
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.