universal_understand = 1 now allows player-controlled mobs to understand what everybody is saying without necessarily allowing them to talk back intelligibly. Mice have universal_understand = 1 by default.
Since we're unable to reproduce this bug in a testing environment and I've already concluded this isn't a telescience bug then I am leaning more towards Xenoarchiology, specifically the artifacts.
This sanity check basically makes it where if there is an artifact on null terf or inside a container it won't process the effect.
If it's the teleport effect of artifacts that is causing this to happen and it's based on the item being in nullspace somehow then it should squash the bug.
Though the root of this is probably #4037 I cannot reproduce the runtime either.
So here goes, a stab in the dark.
I debugged telesci with a proc that fires the teleport but bypasses all sanity checks and sets target = locate(0,0,0) or null
neither case caused the teleport bugs we are seeing
UI will now update when clicking on stuffs
Added a sanity check to make sure the teleport location isn't 0 or null on all 3 coordinates.
Not sure if this will plug up the random teleporting bug but it can't hurt to have this in there.
The drink will still maintain it's reagents and data vars but when ingested and procesed the blood is ignored.
Downsides, you can't get sick from ingesting blood in a drink (which..you shouldn't anywho)
Possible future updates: since blood is an amnetic substance make the person have nausia for ingesting it if quantities are high
Added some if statements so that NanoUI for the booze/soda dispensers isn't /exactly/ like the chemdispenser, mentions glass instead of beaker, and "drinks" instead of chemical.
Also removed my debug messages
Typo fix: Added taquilla back in, it's ID wasn't correct in the reagent list for booze dispenser.
added watermellon juice to the soda machine.
Todo: Fix NanoUI for these to now mention beakers, and have enough space to list watermellon juice
implant adding via the traitor panel will also update it's location to be in the players head for autopsy as well as is_loyalty_implanted() reasons.
Thanks Chinsky / alex-gh for the heads up on this.
Added a proc is_loyalty_implanted() that returns 1 if so, and 0 if not.
Added the ability to remove and add loyalty implants from the traitor panel.
Changed the checks on antags to not care if they are section heads, but to instead check for a loyalty implant.
Fixed a minor bug where traitorborgs made through traitor panel was not adding law 0
Adding a loyalty implant to an antagonist through traitor panel will also remove them from being an antag.
As per request, events have been rebalanced to be a bit more even and vastly less appendicitis. Event timers have been increased from 15-25 minutes to 20-40 minutes.