Fix VTR calculation for natural armor regeneration #4415
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.
Changes
CompProperties_ArmorDurability.RegenIntervalanintrather than afloat, since it's a tick interval where fractional values do not make sense. Existing patches and defs use integer values.CompArmorDurabilitycompute the natural armor healing as the product of the number of regeneration intervals that elapsed since the last regeneration and the defined regeneration value.Reasoning
For creatures with periodic natural armor regeneration, CompArmorDurability tracks the number of ticks that elapsed since the last bout of regeneration, then increases the natural armor with the product of the regeneration value and the VTR delta. However, this is incorrect: we instead should apply the regeneration value multiplied by the number of regeneration intervals that elapsed since the last time the natural armor was regenerated. This problem is especially visible with mods that throttle VTR aggressively, such as Slower Pawn Tick Rate, since the higher VTR deltas cause incorrectly high armor regeneration.
Testing