Metabolizing bloodstream and hypervolemia #34521
Open
+182
−61
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
About the PR
Bloodstream now acts as metabolizing solution.
Changed blood loss damage scaling to be linear. Having blood loss now does double asphyxiation instead.
Added hypervolemia damage which causes minor slash with bleeding effect and asphyxiation.
Hypervolemia damage scales similarly with blood loss after HyperVolemiaThreshold in opposite direction.
Why / Balance
To increase medical immersion, punish reckless chemical dumping and make gluttony an actual concern.
Having disrupted blood level is now a big enough concern that it is not something to be shruged off.
Technical details
Mainly edited BloodstreamSystem and BloodstreamComponent to implement hypervolemia similarly to how blood loss is implemented.
Changed wherever DefaultChemicalsSolutionName was used in context of transferring chemicals or metabolizing, DefaultBloodSolutionName was put instead.
Due to how BloodstreamSystem treats BloodMaxVolume differently, I have changed its name to BloodReferenceVolume because it does not mean maximum volume anymore. (in C# and YAML files)
Maximum bloodstream solution is double of BloodReferenceVolume.
Blood level is calculated by bloodsolution volume / bloodReferenceVolume.
Made sure that charcoal's cleansing of chemicals does not flush blood reagents.
Made sure rejuvenating removes everything from bloodstream and then refills it with right amount of blood.
Saline also has been also turned down to be equal with blood.
Media
How hypervolemia looks on scanner and what's under the car hood:
Visual representation of damage scaling:
Requirements
Breaking changes
For forked repositories:
May cause issues if forks have custom mobs.
Change bloodMaxVolume into bloodReferenceVolume.
Changelog
🆑