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.
Summary
SUMMARY: Features "Deobsoletes Pain Recovery mutations. Adds Pain Recovery mutation variable"
Purpose of change
Pain recovery was removed because at the time it didn't work. This was due to #35300 attempting to move
suffer()
and forgetting to replace the effects undersuffer_from_pain()
Describe the solution
suffer_from_pain()
was removed in favour of applying the modifiers directly to pain recovery inCharacter::regen
. A new variable was added to mutations.pain_recovery
works much in the same way ashealing_awake
orhealing_asleep
. Being an additive modifier to the pain recovery multiplier.After some discussion, pain recovery was made to give a 100% increase and made a chargen trait. The other versions will remain obsolete as Deadened is a 2 point mutation and is vastly superior to any form of pain recovery.
Updated the prereqs that utilized PAINREC2 and PAINREC3. Pain Junkie's alternate path is now Pain Recovery + Addictive, and Cenobite no longer has an alternate Pain Recovery Path as Pain Junkie will lead naturally into it. Pain Recovery itself can lead straight into Deadened if you're lucky.
Describe alternatives you've considered
-Port #57798
Considered but rejected on the basis that pain recovery is partially a scaling formula to current pain. A flat reduction will be disproportionately more effective at low pain than high pain.
-Rework
suffer_from_pain()
Seen as unneeded. It's an extra call where we could just bake it into the recovery.
Testing
Spawned character, caused 1000 and 100 pain, tested pain recovery over the course of 1 hour.
Base Recovery:
1000 -> 782 : 218 recovery
100 -> 77 : 23 recovery
Pain Recovery:
1000 -> 608 : 392 recovery (~80% increase)
100 -> 57 : 43 recovery (~86% increase)
Additional context
Make sure that if you add a mutation that negatively affects pain recovery it's exclusive with the above, otherwise they will stack because of how pain recovery is tallied by
mutation_value()
Otherwise, worth noting that the actual increase in pain recovery is somewhat lower (~20%) compared to the value in the
mutations.json
likely owing to how pain recovery is calculated.