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.
- Material comparisons done by name rather than reference equality
- get_material_by_name proc that ensures the material list is initialised, initialising it if neccessary
- holographic materials moved into main material list
- table frames are not a source of infinite metal, and can be deconstructed correctly
- gambling table icons are no longer E-W flipped