Adds SSDocs, which manages randomly spawned documents.
These documents can be specified in a json file or in a database.
Adds /obj/random/document and adds /obj/random/document to the loot pool of /obj/random/loot.
Actually adding the notes to spawn is up to loredevs. If there are no notes to choose from, /obj/random/document will leave a blank sheet.
The notes can have HTML in them, meaning custom CSS and images. We're giving the loredevs a good bit of responsibility here.
It has been posited that it doesn't make sense to hear certain sounds through walls. So, I proceeded to go and change that.
All sounds with a volume of 50 or less will now be played only to the "hearers" list. This is basically people within line of sight. I also rewrote the lower levels of the sound API with this. The code is now more modular, while retaining the same main API entry point playsound.
This needs a test merge to see how badly I broke shit.
Adds ability for Gestalt to detach their limb nymphs and use them for scouting or whatever.
Detached Nymph can switch back and forth between controlling Gestalt or nymph
Detached nymph can merge back into Gestalt, restoring lost limb instantly.
Makes initialization of Diona nymphs based on external organs it has, not a hardcoded number
No longer Nymphs spawn on turf and move into Gestalt during initial setup.
No longer removing internal limbs would cause spawn of nymph. Only external organs do that now.
Timers:
Adds new proc in timers that calls the callback and deletes timer afterwards. Used when you need to make active timer execute now.
Turrets now use max accuracy value between gun or projectile accuracy which also gets 25% more bonus. Making turrets more accurate than people.
Turrets now have deploy, retract and rotate sound effects.
Extracted from #6505
On request from a staff member, I have implemented a delay on using Absorb DNA. Changelings will be unable to use the ability for a full minute after successfully completing it.