Also stops processing blood loss at 2.1. This allows the mob to regenerate some blood without losing any more, but I doubt anyone would farm a human mob for blood at a rate of 0.1 per multiple ticks. 2.1 is defined as a preprocessor #define to make it easier to sync stuff and avoid magic numbers.
The fallback essentially follows the same procedures as a staff member would do to fix this issue: creates blood, sets their blood volume at species amount if wrong, fixes datums around blood. It logs failures and occurances.
Mob size affects how much blood you should lose, by default 1 (20/20). However, in cases this is not true (non-medium mobs), this can lead to overflow of blood taken as this scaling happens AFTER we ensure amt is not greater than whatever it takes to get 1 blood.
This should safeguard against that.
Fixes https://github.com/VOREStation/VOREStation/issues/14817
remove_reagent has no sanitization for making sure the person has at least 1 u of blood remaining, and is therefore unsafe to use.
This commit changes all human remove_reagent("blood", amt) calls with remove_blood(amt).
This should prevent blood disappearing from internal bleeding or dragging someone while they're down or from drawing blood from them and so forth.
Not all cases of remove_reagent("blood", amt) were changed, as some act on organs or other reagent containers not part of a human mob or because it's set_species
Added a white variant of the Zeng-Hu prosthetic, named Glacier, that can be properly recoloured.
Tested locally, and it seems to work fine, but this is my first pull request and I recommend giving it a critical eye, just in case I have made any mistakes.
For pain slowdown to begin, you need at least a difference of 40 between max health and current health before painkillers are considered.
With neural hypersensitivity, this is reduced to 20.
Furthermore, slowdown calculation is changed from
(maxhealth - health - painkiller) / 25
to
((maxhealth - health) * 2 - painkiller) / 25
Makes it so custom species with neural hypersensitivity not only enter crit faster, but get spammed with more severe pain messages too, alongside higher chance of dropping items due to pain.
Only affects brute and burn.
Makes early stage lung damage (rupture_lung causes 10 damage) not nearly as lethal due to blood loss, but still leaves a good possibility of death via suffocation without medical treatment, but not nearly as likely, as it requires a very long run of bad RNG to achieve enough oxyloss to reach crit.
However, brain damage is still possible even with small amounts of oxyloss, , which will cause other problems later down the line
Meanwhile, late stage lung damage (30+) is untouched other than the blood loss being decreased.
This requires actual damage to be done to your lungs via things such as piercing weapons or other internal organ damage sources to reach that point.
This should be much more rare, but is a genuine medical emergency that - as testing showed - will more likely than not stack up suffocation damage and kill you over time without intervention, without blood loss even needing to peek it's head in the door to kill you.
It turns things into mice (if they have the spontaneous TF preference enabled)
Also wiggles a few things around to allow for some shenanigans with this, namely:
if you are TFed into a thing, damage you take is relayed to your original body proportionally to the comparable HP.
MEANING, if you have been TFed into a mouse, you have 20 HP. Your human body has 100. You have 1/5th the HP as a mouse. If you as a mouse take 5 damage, your human body takes 25. Be careful!
Additionally, if you as a mouse, or your human body dies, both die.
Your TFed body being destroyed undoes the transformation. (But also you're probably dead at that point anyway) This allows for, in the case of digestion, your equipment to go where it ought to go.
Lastly, the building blocks are in place for this to be fluffed into other kinds of metamorphosis rays, should staff feel like doing such. I will probably also trick out the /admin variant of this with a bunch of mob types tomorrow when I'm not sleeby