mid-refactor of `take_overall_damage`
Fully refactors the (?:take|heal)_(?:overall|organ)_damage procs
Allows the dead to examine
Removes the `blinded` var
Refactor cyborg components so vision loss is instant
Robot life/death updates instantly
Adds instant updates for damage overlays and HUD icons for humans
Final reconciliation with the species refactor
Adds a stat debugging system and debugging logs
Also fixes instant death on species change
"Debugging logs" are used for stuff an admin wouldn't care about but
someone debugging would
I used it to fix people dying instantly when changing species due to
temporary deletion of the brain
Fox's requests
Adds a more careful updating system to our reagents system
This converts the machine and mob processes to the SMC. Additionally, it
adds the Atom subsystem, which handles all Initialize() calls in place
of the old gameticker. Due to incompatibility with our atmospherics
(FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE
THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use
Initialize() as they should, instead opting for a custom atmos_init
proc that the air controller handles.
This is a merged port from /tg/station and Virgo on logging standards.
The diary has been replaced with GLOB.world_game_log, diaryofmeanpeople
is gone (because it wasn't actually used) and a whole bunch of logging
procs have been changed to optimize Splunk.
Also mildly refactors hear_radio to kill those nasty istype(src)'s.
This makes an [OPEN] link appear on all radio messages the AI hears (to
the right of the follow link). When clicked, it allows the AI to open
the door nearest to the speaker (or, if it is a voice changer, the door
nearest to the poor sap who had his voice stolen)
By turning it into its own preference. The verb stays in the ghost tab, except it now operates by checking client preferences.
Needs
ALTER TABLE `player` ADD `ghost_anonsay` TINYINT(1) NOT NULL DEFAULT '0' AFTER `lastchangelog`;
to add it to the SQL
- New config option to set how many minutes is too early in a round to
abandon it
- Suicide-ghosting and cryo-ghosting now only make you non-respawnable
during the penalty period
- Manually entering a cryopod now despawns you 90% faster
- Joining as a drone now has a confirmation box
- Respawning as a drone now ignores respawnability again
- Respawning as ERT now ignores respawnability again, but respawnable
ghosts get first dibs
- Becoming a non-respawnable ghost once means all future ghosting will
be be non-respawnable, unless you are sent back to the lobby
- Posibrains now disqualify non-respawnable ghosts, and are more fickle
about pinging
- Cryo auto-ghosting and ghosting after suicide will now produce
non-respawnable ghosts
- Non-respawnable ghosts are now prevented from re-entering the round by
as many means as I could find
- Refactors action button backend
- Action buttons are no longer checked on Life(), items are responsible
for adding/removing/updating them.
- Item action buttons are no longer a static action_button_name define,
items define actions_types, which is a list of paths.
- Items can now have multiple action buttons.
- This is handled by new arguments to ui_action_click, the first
parameter is the user, the second is the path of the action datum
that was invoked.
- Refactored how internals function
- You may now directly switch internals without breaking anything.
- The internals icon has been updated to be more consistent.
- Added action buttons for jetpacks
- Added action buttons for oxygen tanks
- Uses-based implants now qdel() themselves when they run out of uses.
This is somewhat a buff to traitor implants, but it's such a minor
change. The actual reasoning is so that the action buttons are properly
removed.
- Fixed a bug with the "Boo" spell which resulted in IsAvailable failing
for certain ghosts.
- You can now shift-click on movable HUD elements to reset them to the
proper position (thank fucking christ)
- Changes cryoing, such that if you use OOC->Ghost while in a cryopod,
you are instantly moved to long-term storage. After all, you can't get
back into your body at that point anyway, so keeping your body around
for 30 minutes before announcing that you've disappeared is pointless.
- Changes the notification given to antags whose target cryos, to make
it slightly more obvious.
- Makes long-term storage announcements include stored person's rank (if they have one).
Added rank to cryo storage announcement
Removes list() call from pick()