fix: stop exporting the stats_count as a scale type - #436
Open
Vergir wants to merge 1 commit into
Open
Conversation
Rake's damage and Card Trick's diamond resist shred duration were both
exported as scaling with "stats_count", which is not a hero stat at all.
The game's stats enum ends with
EAbilityLevel = 97,
EStatsCount = 98,
EStatsInvalid = 98,
and the scale function schema gives EStatsCount as what
m_eSpecificStatScaleType defaults to. So a scale function carrying it
names no stat, and the two abilities above just happen to write the
default out rather than leaving it off. SCALE_TYPE_MAP had it mapped to
an invented "stats_count", which won out over the _class the stat should
have been read from.
Reading the sentinel as naming nothing lets _class answer instead, which
is where the real stat lives for both: Rake's scale function is a
CScaleFunctionAbilityProperty_TechDamage, so its damage grows with
spirit at the rate of 1.0 it already carried, and Card Trick's is a
CScaleFunctionAbilityProperty_TechDuration, so its shred grows with
ability duration, the same as ClubSlowDuration beside it.
The schema also documents m_flStatScale as defaulting to 1.0, confirming
what the rest of this branch infers from a missing rate.
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.
Rake's damage and Card Trick's diamond resist shred duration were both exported as scaling with "stats_count", which is not a hero stat at all.
EStatsType.h in decompiled files reads:
EStatsCount has same value as EStatsInvalid, so it's not a real scaling.
SCALE_TYPE_MAP had it mapped to an invented "stats_count", which wiki module later remaps into spirit so Rake can display its scaling.
In this PR reading this EStatsCount value falls back to reading
_classinstead, which is where the real stat lives for both: Rake's scale function is a CScaleFunctionAbilityProperty_TechDamage, so its damage grows with spirit at the rate of 1.0 it already carried, and Card Trick's is a CScaleFunctionAbilityProperty_TechDuration, so its shred grows with ability duration, the same as ClubSlowDuration beside it.Merging this will replace invented
stats_countwith real data and allow us to erase this weirdstats_count => spiriton the wiki side.Parsed data in deadlock-data PR - Reopen deadbot PR or run deploy workflow for this branch here to reparse the data