The malfunction sparks were calling to a var src, which in most other places is the main object itself, here that's the organ and it doesn't have a loc. Changed it to call the organ's owner.
Because the dismemberment check was being done before brute_dam was
updated, the attack that actually brought brute_dam above the threshold
would not be able to pass the check, regardless of how much damage was
actually done.
Also removes the now unnecessary get_cure_threshold() proc, caps the
rate at which an organ can receive germs from wounds, and makes germs
spread from external to internal organs happen one organ at a time
instead of all at once.
Also the toxin damage taken during INFECTION_LEVEL_ONE is greatly
reduced.
Fixes robotic internal organs getting infections.
Fixes the organ_failure random event. Forgot to set the affected organ
as needing processing.
Viruses are properly transferred to spilled blood now.
Antigens prevent from infection properly.
Lowered frequency of blood puddle virus check to cut down on processing.
Body temperature regulation is now based on species, and environmental
temperature now respects the air density when affecting living/humans.
This also fixes some bugs with heat/cold protection handling and
improves the way synthetic species body temperatures are handled to be
much more logical.
IPCs always gain temperature but cool down because of their environment.
When the heat transfer to the environment is reduced because of the lack
of air, this will cause IPCs to heat up.
As well, having an infection will increase your body temperature, and
body scanners now detect infections.
...internal damage.
Also removed started_healing() proc because it doesn't actually report
whether the wound is healing and isn't really used for anything.
This fixes the autoheal bug, which was being caused by wound types such
as tiny bruises from being used even for large amounts of damage.
I imagine that relying on the order of the list returned by typesof() is
always a bad idea.