Originally I wanted to fix an issue where the `get_up()` `do_after()` would ignore the callback checks, because it was `uninterruptible`, so that made me refactor these procs to allow for higher granularity on checks and standardize behavior a bit more.
There's more work to be done for them, but one thing at a time.
* Removes the `uninterruptible` check in favor of the more granular `timed_action_flags`
* Cleans code on the `do_atom`, `do_after_mob`, `do_mob` and `do_after` procs to standardize them a little better.
removes hexane gas from video game
(the ability to hear dchat got removed like half a day ago) (Lemons note, it's been more then half a day)
it will speed up atmos a bit with less reactions, the reagent from the gas does the same things as halon + bz and the reaction from it is pretty similar to halon, they are both gases that exist to stop fires, i dont think we need both
VV-related code cleanup
Added code to trigger the proper setters for several variables that have them.
Added some admin logging for var-edit teleports.
Cleaned-up some code all around.
Title. Also added some precautions to bank_account/new() and the crab17 gear.
The fact the majority of functions pertinent to the bank_accounts list was O(n) disquieted me.
If someone with a brain trauma is scanned by a medical kiosk, and then the kiosk is examined by someone else (who does not have a brain trauma), the kiosk would incorrectly show them that the patient has no traumas.
Makes it so that the rag can be used to transfer reagents to a carbon again.
The check was set to does the carbon have any reagents when it should have een does the rag have reagents.
* Self_attack for arms if the hand is empty
* Oops
* Light runtime fix
This is not my runtime, but I will fix it all the same
* return better good
* How about a variable name that actually fits
* asdf
Shuttle docking nav computers can pick locations across z-levels. This is most likely an oversight, as shuttles should only be able to dock using this console on their own z-level.
Currently doesn't do anything bad as Icebox is the only map that supports this sort of multi-Z camera movement and has a distinct lack of pilotable shuttles, but patching this before it becomes an issue.
Hilbert's Hotel now does some basic level of sanity checking after the input to cut down on a number of shenanigans.
The following are all the new changes:
Hilbert's cannot be activated via telekinesis. It must be activated by direct player attack.
If the item isn't adjacent to the target after their input, it aborts.
If the player attempting to enter the hotel is incapacitated after their input, it aborts.
If the user no longer has the item in their possession after their input, it aborts even if there is a different target.
If the user is also the target, it will attempt to drop the item normally. If the item fails to drop, it may be teleported to the hotel with the user. The item can fail to drop when it is in the user's possession but not in their hands, or when it has TRAIT_NODROP.
When the item enters a hotel room created by itself, it will now recursively check for the first mob in its loc stack. It will gib this mob before teleporting away.
This prevents the warp-whistle effect where a user could put the item in their backpack at INCREDIBLY low risk to themselves (0.135685% chance of anything bad happening) to enter a hotel room and have the orb warped away at random. They could then immediately leave for a free warp whistle effect.
Hexane no longer grant the ability to hear dchat (yep it was a bad idea) (Lemon's note: I am very dumb)
Hexane now gives the resist heat trait to fight fires better but can give you a lot of hallucinations
Added / improved documentation for buckling procs and variables
Removed / moved some unused things (removed 'buckling' var on mob, moved can_unbuckle() and can_buckle() from mob to living, removed can_unbuckle() and can_buckle() from slimes because they were ignoring everywhere it was checked anyways)
Moved can_buckle() check to is_buckle_possible() with the rest of the checks
Allowed mobs to buckle other mobs to things on the same turf as them ( I don't see why this was blocked in the first place. We have mobs on the same turf as each other all the time)
Changed silicons to use user_buckle_mob() instead of their own do_after system - now slightly longer to buckle mobs from another turf but instant to buckle mobs from the same turf. This means that borgs can't combatspin people who are still standing but have a slight slowdown, but can load people even faster if they're stunned/incapacitated and lying down. (But honestly, I did it for consistency, not balance)
Heretic can no longer give you both hijack AND die a glorius death objective.
Protection objective was broken for some time, it always suceeded. It should be fixed now.
Fix lavaland podding
Make lavaland pod destinations hidden
Removed unused variables from connect_to_shuttle() proc
Shuttle consoles remove old custom port id from possible destinations when connects to new shuttle
Custom ports keeps clear from unwanted numbers.
Now shuttle machinery property connects to additional loaded shuttles.
Add some docking_port register logging and safety.
Alright crew, here's the 4-11. This adds a new Modular Computer app, that works functionally identically to the cargo console. but before we delve into that, lets hit the adjacent aspects first.
Cargo Packs now contain a new variable, access_view, that is only applied to cargo packs viewed in this app. It determines the access level required to be able to see those individual packs, in the same way that you need certain accesses to open certain crates anyway. This means that outside of certain inter-departmental crates that see overlap in who can/should be able to order it, heads can browse and purchase crates based on their department's needs and wants.
The cargo ordering console has been renamed on the DM side. Because now that there's another, similar cargo ordering DM that was going to get confusing fast, as just calling it "Console" gets on my nerves and is harder to spot on VSC for me and everyone going forward forever.
Cool, back to buying stuff. heads of staff can download the cargo ordering app on tablets and laptops only, and it gives them access to purchase cargo using their department funds. These purchases are made against the user's department budget, and enables purchasing supplies with cargo without needing to beg them to use their money on your junk, adding it fully to the cargo shuttle's next load, while still giving cargo the first right to refusal if they wanted to, for some reason.
From there on out, cargo's responsibility is primarily getting the goods you bought to you, which is technically already their job!.
So essentially there was discussion already here (https://tgstation13.org/phpBB/viewtopic.php?f=33&t=27620) about how hijack is one of the few objectives on Manuel that you can murderbone with, which is mildly at odds with the intention of the server.
Personally, I think hijack is just straight up terrible regardless of what server you're on. The way it functions is dreadful. Nobody must be aboard the shuttle in any part of the shuttle at all. This means you have people hiding in the walls or hiding in some invisible corner of the shuttle, cucking you of the hijack. For the most part, the only way to actually hijack the shuttle is to render it completely inhospitable or destroying it utterly save for, maybe, one square. The one you are standing on.
It's absurd. So, I knew kev made a pretty honest attempt at reworking hijack. And it works pretty well. It doesn't necessarily solve the problem of hijackers being mandatory mass shooters, but it goes some ways to improving the objective in a more interesting fashion, and allows for the discussion around the objective to be a little more open ended for the sake of the higher roleplay servers without actually detracting from the lower roleplay servers at all. If anything, this should improve the experience of being that gamer to stage a hijacking all the more interesting and about robustness, and less of hide-and-go-seek.
* Silicons now interact with the comms console just like AI, and are told they cannot recall
* Make allied sectors use columns I HAVENT TESTED THIS YET DONT MERGE WITHOUT TELLING ME AAAAAAAA
* Rebuild tgui
New app for viewing cameras. Runs the same way the stand-alone console does, and requires security access to download. Does not work on tablets, requires a laptop or console.
Gives sec an on-the-go option, at the expense that they do still have to hold the device to view it (rather than stuffing it into the ID slot). Folded laptops can still be stored in your bag, so you can quickly store it after scoping out a bust.
Fixes an incorrect correction of has_antag_datum to use ?.. This does not work since has_antag_datum returns 0 or an object, meaning has_antag_datum()?.property is essentially 0.property.
(Lemon's note, it was causing names to not show in radio chat)