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)
bugfix: gives notransform to etheral jaunting based on an observed edge case where a wizard was staff of changed while starting a jaunt and got stuck in bluespace for the rest of the round
meta: modified revive() so I could remove all that horrible snowflake I introduced to let reviving simple mobs come back
Removed all item stings legacy
Removed game balance changes
Moved stings handling to AltClickOn, added the dead check i forgot to
add
Reverted monkeyizing keeping items from previous form
Fixed the grammar in the comments
Now to sting someone with active sting you alt+click them
In usual mode active sting do nothing
Clicking sting icon will deactivate the sting(hasnt removed the verb
however)
Now all monkifying will grant the monkeys what they can wear from their
previous form
Now all humanizing autoequips things from under you
(Done by Gia's suggestion, the quality is meh)
One more little change in icons
* You have to be within camera vision to place the machine.
* The machine has been given a minute cooldown per each use, and will look unpowered when cooling down.
* Added a delete option for /Robotize() and used it in the machine, to stop items piling up and eventually crashing clients.
* The machine will make a sound when placed.
* Added auto conveyor belts which are always on unless unpowered or broken.
* Cyborgs built from the machine will only get 5k power cells.
* Added a changelog entry for this change.
Re-introduced the concept of a player controlling the blob in an RTS fashion, expanding the blob and building structures such as nodes and factories.
All blobs will try to find ghosts, with the BE_ALIEN flag, to be the blob overmind. Even random event blobs will try to get players to play as the overmind.
Added a /mob/camera that is now being used by the AI eye and the blob overmind. It is a mob that isn't dead but acts as a camera for the player, to be controlled by something like the AI or the blob.
There are now a resource currency for the blob to spend it's points on blob expansion and upgrades.
Added a small blob_act to mechs.
Made all camera mobs max invisibility. Because of this I removed the AI best friend button as it would be not working.
Blob mode will send a normal intercept report.
- Changes how the src is deleted and the new mobs are returned in the transformation procs (no more use of spawn() )
- Adds an option not to delete it (in case the proc that called monkeyize was a child of src itself)
Signed-off-by: dumpdavidson <gtb.schmidt@gmail.com>