fix: name-based talent matching for TBC Anniversary index reordering#19
Merged
fix: name-based talent matching for TBC Anniversary index reordering#19
Conversation
…12) The TBC Anniversary client orders talents by internal talentID rather than row/column grid position. This caused 15 of 18 Warlock TalentMap keys to point to wrong talents, producing incorrect rank readings (e.g. "Improved Life Tap 5/2") and wildly inflated calculations. - Rewrite StateCollector.CollectTalents to match talents by name instead of positional index, making it immune to reordering - Add defensive maxRank clamping in StateCollector - Fix all Warlock TalentMap indices to match in-game verified data - Add grid layout documentation to TalentMap_Warlock.lua - Add 8 unit tests for name-based matching logic - Update existing Warlock test files with corrected keys Fixes #12
9 tasks
Xerrion
added a commit
that referenced
this pull request
Mar 1, 2026
Updated test files (test_modifiercalc, test_critcalc, test_new_spells, test_pipeline) to use reindexed Warlock TalentMap keys from PR #19. Fixed Master Demonologist talentAmplify.talentKey in AuraMap_Warlock from 2:16 (Soul Link) to 2:11 (Master Demonologist).
Xerrion
added a commit
that referenced
this pull request
Mar 1, 2026
* fix: correct TalentMap indices for all classes (#21) Verified all TalentMap talent positions (tab:index) against in-game GetTalentInfo output on TBC Anniversary client (1.15.x). Classes corrected (key changes): - Priest: 7 of 8 entries - Warrior: 10 of 11 entries + deferred comments - Rogue: 15 of 17 entries + deferred comments - Paladin: 8 of 9 entries Classes verified correct (docs only): - Mage: all 21 entries already correct - Druid: all 19 entries already correct - Shaman: all 12 entries already correct All files now include grid layout documentation showing the full talent tree ordered by internal talentID, matching the in-game API. Also fixed .busted config pattern from '_spec' to 'test_' to match actual test file naming convention. * fix: correct stale talent keys in Warlock tests and AuraMap (#21) Updated test files (test_modifiercalc, test_critcalc, test_new_spells, test_pipeline) to use reindexed Warlock TalentMap keys from PR #19. Fixed Master Demonologist talentAmplify.talentKey in AuraMap_Warlock from 2:16 (Soul Link) to 2:11 (Master Demonologist). * feat: beautify tooltip with school colors and spell identity (#21) - Extract shared Format module (colors, symbols, FormatNumber, FormatDPS) - Add spell name and rank header line with school-colored text - Restore labeled detail lines (Coeff, Cast, Talents, Stats, Breakdown) - Hide 0% crit for DoT-only spells - Use directCoefficient/dotCoefficient for safe hybrid display - Replace non-rendering Unicode escapes with ASCII alternatives - Deduplicate FormatNumber between Tooltip and ActionBar
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.
Summary
Fixes #12 - Talents reading incorrectly on TBC Anniversary.
Root Cause
The TBC Anniversary client (1.15.x unified Classic client) orders talents by internal
talentIDrather than the row/column grid position used by the old TBC Classic client. 15 of 18 Warlock TalentMap keys pointed to the wrong talent, causing rank misattribution (e.g. "Improved Life Tap 5/2") and wildly inflated calculations.Changes
StateCollector.CollectTalents- matches talents by the name returned fromGetTalentInfoagainstTalentMapentries instead of relying on positional indices. Immune to talent index reordering across client versions.TalentMap_Warlock.luafollowing the Rogue file pattern.Files Changed
Core/StateCollector.luaCollectTalentswith name-based matching + maxRank clampingData/TalentMap_Warlock.luatests/test_new_talents.luatests/test_warlock_completion.luatests/test_statecollector_talents.luaScope Note
The name-based matching fix resolves this for all classes automatically. Other class TalentMap index corrections (documentation cleanup) can be done in follow-up PRs without impacting users.