Moves the event manager processing into the process itself.
Ensures the last_object var is properly set in case of issues.
Also fixes a potential risk of the camera damage event looping forever.
Corrects a number of places where New() did not call ..(), and implements similar changes to attempt to ensure New()/initialize() complete running before qdel() runs.
Cuts down on the number of created items during server start.
Adds a proper proc for raising events.
Now only creates the observer lists when an object registers itself.
Multitools now unregister themselves properly from buffers on Destroy().
A random lobby screen is now picked at server start, and presented to all players. Sadly in our case we currently only have one every day lobby screen.
Port of https://github.com/PolarisSS13/Polaris/pull/321, with added sanity checking.
Modified spawn_sync to include the spawning code, thus simplifying it's usage.
Modified spawn_sync to use actual time for failsafes.
A couple of sensibility tweaks for the wireless controller.
Cleaned up devices.dm to use new spawn_sync code.
Suggestions courtesy of @mwerezak
Added a changelog
Documentation, documentation, documentation.
Safety checks.
Reshuffled some code.
Modified wifi senders and receivers to both use var/id, instead of two different vars for basically the same purpose.
Added toggle variants for buttons, allowing them to "deactivate" connected devices.
Converted flashers and holosigns.
Fixes to keep in line with upstream.
In normal mode a hacking tool acts and functions just like any multitool. Use a screwdriver to toggle between normal and hacking mode.
Hacking attempts will take 20 +(0 to 20) seconds (triangular distribution, averages at +10 seconds).
Once an airlock has been successfully hacked the user will have full access to the door operation interface normally restricted to silicons.
A hacking tool will remember the last 6 to 8 hacked airlocks. No time is needed to again hack remembered airlocks.
Once the limit has been reached the least recently accessed airlock is forgotten. Hacking a remembered airlock will update the last accessed time.
Also adds a basic observer/listener pattern implementation to, for example, make it easier to catch when objects have been destroyed and clear references.
Adds the following:
Actor Guild for ghosts to spawn at.
Board for playing board games.
Two trading card games with booster packs.
Tarot cards.
Cargo can now supply lasertag equipment as well as decks/booster packs
Removes a non-utilized config setting.
Adds a config setting to set the respawn timer, defaults to 30 minutes as today.
Makes the MayRespawn() proc utilize this config setting. Makes more uses of MayRespawn() check the respawn delay.
Round-start and mid-round auto-antagonism selection can now exclude players if they have not reached a given minimum age requirement.
Can be enabled/disabled by config, is disabled by default.