Fix negative stat item sorting#1889
Open
unrealdreamz wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #848
Summary
Root Cause
ItemDBControl:ListBuilderinitialized every stat-sort score to0before evaluating replacement slots. For stats such as Taken Fire Damage, the sort transform intentionally negates the output so lower damage is better. When all valid candidates were negative,m_max(0, negativeScore)kept every item at0, producing a full stat tie and falling back to name sorting.Fix
Initialize
measuredPowerasnilfor each item and only fall back to0after all valid replacement slots have been evaluated. This keeps real negative scores, while still giving unsortable/no-slot items the old neutral fallback.Validation
git diff --check- pass, exit code 0.spec/System/TestItemMods_spec.lua.Risk/Rollback
Low risk: the change is restricted to item database stat sorting. Rollback restores the previous zero-initialization behavior, but would reintroduce name-sorting for all-negative stat scores.