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.
- Updated the flashlight eye-shine check with the new get_dark_view()
helper proc
- Removed a useless check on the handle_dna() for monkeys
- Increases reliability of the monkeyize() proc and fixes issues where
calling it wouldn't turn a mob into a monkey on the spot.
- Increases readability/maintainability of the get_colourmatrix() and
get_dark_view() procs.
Allows eyes to track eye-dependent disabilities when removed from the mob.
Farwas and Wolpins are now incurably colourblind (non-genetics based), so going lesser-form and back won't wipe your colourblindness.
Eyes being straight-up deleted (as per how set_species() handles setting up the organs required for the species we're changing to) no longer wipes colourblindness.
Now with more helper procs, less unnecessary commenting, random changes and other cleanliness-related tweaks.
- 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)
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.
Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
This commit removes all (most) of the remaining code limiting xenomorphs
that have has_fine_manipulation on an entirely arbitrary basis. Xenomorphs
with has_fine_manipulation may now interact with NanoUI, and will only
break computers on non-help intent. The can also tear down walls, since
walls used an ishuman check in place of an isAdvancedToolUser check as
they should have.
Minor refactor to machinery.dm as well; Instead of the slightly
(completely) insane attack_hand restriction to humans and silicons (it was
a multi-line IF, why), it now checks user.IsAdvancedToolUser(); This means
restrictions on monkies will actually function properly now.