Being lit on fire barely did anything, for multiple reasons, all which should be fixed in this PR.
First, the code to do damage based on bodytemperature was literally bugged and only applied the lowest level of damage, no matter what.
Second, wounds made autohealed them fairly fast, sometimes even outhealing the incoming damage.
Third, being on fire raised your temperature rather slowly.
Fourth, the lowest level of 'overheating' damage was rather low.
Changes:
The bodytemperature part of Life() is now unbroken and I accidentally fixed freezing not hurting, so yay.
Added a ten minute delay to wounds being able to autoheal them away. Applying bandage/salves will skip this.
Temperature climb is now based on fire stacks while on fire, so more stacks means more and longer pain.
Lowest level of overheating was tweaked.
Running into people while on fire will split your fire stacks with them and light them on fire.
Port's /tg/'s on fire sprite.
Different mobs can have different icons for being on fire.
Bonus: Rejuv now removes pain.
Unlike cuts they do not merge, so many small-damage stabs will create many small stab wounds instead of one megahole.
Also cleans up checks in wound code a bit with power of OOP
Enforced "blood soaked" clots where the clot stage was also a bleeding
stage, adjusted the thresholds for gaping_big and massive wounds to be
more even.
max_bleeding_stage no longer switches itself around in New().
Instead, the value given refers directly to the index of the maximum
bleeding stage.
Should also make wound datums more friendly to initial(), if that's ever
needed.
Without the clot stages the jump between the next two stages was
abnormally large, and the values given for max_bleeding_stage did not make
much sense.
The max_bleeding_stage given to /datum/wound/cut/flesh led to
"Doctor places a bandaid on Patient's flesh wound." Also fixed the
bleeding stage for stumps, so that "bloody stump" counts as a bleeding
stage.
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.