Ports Poison Pen from TG:
https://github.com/tgstation/tgstation/pull/23778
Adds a HoP/Cargotech/QM-only traitor pen that can be used on paper to
poison it.
Picking up poisoned paper without gloves transfers the poison through
your skin, into your bloodstream. Subsequent people to pick it up are
not affected.
The poison is 15 units of the nerve agent, sarin. This is enough to kill
you in a couple of minutes. It is quite obvious.
The pen looks like a normal pen, costs 5 TC, and has 3 uses. It cannot
be used as a direct weapon. It has to be applied to paper to be
effective.
🆑 Kyep
rscadd: Added Poison Pen, a stealthy way of applying a contact-based
poison to paper. Available to Syndicate HoPs, QMs, and Cargo Techs.
/🆑
This changes the "View Flagged Books" admin verb into a datum/browser
UI. You can see all the books that have been flagged from here, review
them, and remove the flagged status or delete them.
Also refactors pencode into some __HELPER procs, and adds a
"reverse-pencode" proc. It's not perfect, due to the complexity of HTML
and my unwillingness to use BYONDregex, but it's good enough to get the
general idea of the formatting across. It's used for the new "view book"
panel.
Also applies to photocopiers (which fax machines are a subtype of), and
replaces a bunch of thing.loc = src.loc and thing.loc = src with proper
forceMove calls
Fixes a bug where you could take a picture of stuff behind walls (ghetto
X-Ray).
Pictures will now render people with disguises as you see them (borgs
see people with cardborg suits as borgs, people with cardborg suits see
themselves as borgs, everyone sees people carrying plants as plants)
although they will also state the person's name, regardless of disguise
(same as mouseover).
This commit changes how NanoUI's live data updating system works.
Previously, data for the template was directly gathered in the
ui_interact proc. Now, it is seperated into the proc `ui_data`.
To players, this does absolutely nothing.
To coders, this opens up the potential for a much more complicated and
fancy graphical updating system in the future, because the data is
available on-demand without ever having to call
nanomanager.try_update_ui.