Prevent copy-from
from discarding armour values
#54801
Merged
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
None
Purpose of change
Fixes #53130.
There are really 2 issues:
copy-from
.Describe the solution
islot_armor
struct so that a copied instance can reuse the parent's values.cata::optional
when reading the values from JSON. The "proportional" and "relative" fields require the value type to support the *= and += operators, respectively.Describe alternatives you've considered
#54681 used a workaround, but doesn't solve the underlying problem.
Testing
Added test case to verify behaviour for
"copy-from"
,"relative"
and"proportional"
.Also tested in-game using Saicchi's example in the linked issue:
Before
After
Additional context
See #43144 for more context about
"proportional"
and"relative"
.