- Reworded intercept report to discourage security from inadvertently causing a gang to win.
- Recaller use is logged
- Made the text explaining membership visibility more visible
The first of many. Most caused by horrible merge-related accidents.
- Gang converts are no longer revolutionaries
- Revolution controls show up in the TP again
- Gang added to game_options.txt defaulting to 0
- Clarified some help text strings
Tidied the supplypacks up for consistant names and to avoid The Bureaucracy crate etc.
Created an Innate Communication verb thats given to the cultists when converted and removed when deconverted.
It possibly works with constructs but cant really test because the make constructs procs are all kinds of messed up.
Anyway - they'll tear at their arms, smear blood on the floor, and communicate as normal per the rune. Its pretty rudimentry right now and could be improved in a few ways - see the comments.
Added a link to open the Read Tome window on the Notes page as apparently alert() is limited to a whopping three choices.
Added a built in communication system for the tomes, it works pretty much like the current communicate rune.
Fixed a load of fucked up tabbing in ritual.dm, I don't know who to blame but I'm betting it was sadbutt.
- Functionality should be unchanged
- Admins can varedit chemical costs of individual abilities.
- Allows coders to implement sting upgrades more easily.
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.
Added get_inactive_modules and get_usable_modules procs to use while looping through the cyborg's modules.
The cyborg's storage screen will now shrink if there is an empty row.
Added a new on_emag proc for modules, which is called when the module is emagged. Miner borgs use it to replace their borg drill for a diamond one.
Fixes a runtime where there is no client to update the hud.
Fixes a bug where if you emag a cyborg with no module and when they choose a miner they do not receive their diamond drill.
- Construct spells are an exception.
- Spells are transferred whenever a mind is transferred: cloning, pod cloning, borging, staff of changing.
- Spells are not transferred when you create a new mind for a new mob: soul stones, golems, respawns.
- To my surprise, this did not fix the issue where a mind-swapped wizard loses their spells when their original body is destroyed. I do not know why this happens.
- Non-human mobs can't use spells by default. Varedit spell.human_req to do that.
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