Semi-rewrites how surgery failure works. Using an improper surface will call the surgery step's fail proc instead of just doing a melee attack.
Adds 'surgery odds' var to objs, which determines effectiveness. The numbers for operating tables/roller beds/tables remain unchanged from the previous version, however doing it this way makes it cleaner to add new surfaces in the future.
Adds a proc to get a surgery surface.
Also makes burn repair on FBPs more efficent, so that one scorched robot does not take literally all of robotic's wires.
s = Speedloaders. (Functionally the same as clips, but they're not
_really_ the same thing, just in case we change these later.)
c = Clips. (Can also be used to fill other magazines.)
m = Magazine. (Holds ammo rounds.)
a = Ammo. (Individual rounds of ammo.)
* The performance of the radiation controller as-is was not fast enough for inclusion in production servers, but it has some nice featuers, so rewrote it to be more performant.
* Instead of storing the radiation strength for every turf, we only store the sources of radiation, and calculate the strength only for mobs who might be in range.
* Old method was ray-tracing to every turf in range whether anything was there to be irradiated or not. Could be hundreds of turfs. New method only lazily calcualtes strength at a turf if we actually need to know it. Often times this is zero turfs if nobody is standing in engineering.
* Removed the automatic processing of objects with "rad_power" set. Objects are responsible for calling the repository to create/update their radiation sources. Saves some extra overhead that in practice was redundant with other process controllers.
* Also tweaked to be more respectful of qdel'd objects and added some comments.
* Added a proc to the map datum which returns what zlevels a nanomap capable computer should display.
* Updated the atmos control, power monitoring, crew monitoring, and camera consoles to use it.
* Changed templates to not show the map button if no map levels are available.
* Teleporter would only search in the direction it was facing. As long as computers have no directional sprites this is fine, but otherwise it is a problem. Might as well do the sensible thing and search adjacent turfs.
* Operating table and computer liked to literally spin around during initialization due to someone using `dir` as a loop counter without declaring it as a local variable.
Fixes runtime when screwdrivering the defib to remove the powercell.
Husked people can no longer be revived. This is because otherwise they could become alive again but remain husked.
Jams the three devices that I'm aware of that use subspace communications: Headsets, PDAs, and Communicators.
All three will be unable to communicate if in range of a jammer. The default range is 7 turfs, the battery that comes in the jammer is a weapon cell (just to make it a little harder to find replacements) and lasts 60 seconds. The range and power use are variables.
Speaking through a headset will produce 'soft' or 'loud' static depending on how far you are, allowing you to sort of dead-reckon your way to a placed jammer. You can just carry them, otherwise.
I've got no experience with adding tator items so I'll leave that sort of thing up to you guys.