Skip to content

Commit b1319cf

Browse files
committed
fix: #2309 Additional assorted talent/spec errors on Classic Era.
1 parent 57f309b commit b1319cf

File tree

8 files changed

+337
-96
lines changed

8 files changed

+337
-96
lines changed

.vscode/settings.json

Lines changed: 239 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,243 @@
22
"python.pythonPath": "C:\\Python37\\python.exe",
33
"cSpell.enableFiletypes": [
44
"lua"
5-
]
5+
],
6+
"Lua.runtime.version": "Lua 5.1",
7+
"Lua.runtime.builtin": {
8+
"basic": "disable",
9+
"debug": "disable",
10+
"io": "disable",
11+
"math": "disable",
12+
"os": "disable",
13+
"package": "disable",
14+
"string": "disable",
15+
"table": "disable",
16+
"utf8": "disable"
17+
},
18+
"Lua.workspace.library": [
19+
"~\\.vscode\\extensions\\ketho.wow-api-0.21.0\\Annotations\\Core"
20+
],
21+
"Lua.diagnostics.globals": [
22+
"COMBAT",
23+
"ROLE",
24+
"SPECIALIZATION",
25+
"CopyTable",
26+
"ChatEdit_InsertLink",
27+
"ChatFrameUtil",
28+
"LE_EXPANSION_LEGION",
29+
"HIGHLIGHT_FONT_COLOR",
30+
"NORMAL_FONT_COLOR",
31+
"StaticPopupDialogs",
32+
"StaticPopup_Show",
33+
"LE_EXPANSION_WRATH_OF_THE_LICH_KING",
34+
"LE_EXPANSION_WARLORDS_OF_DRAENOR",
35+
"GameFontNormal",
36+
"OKAY",
37+
"ENABLE",
38+
"SOUNDKIT",
39+
"CreateColor",
40+
"tostringall",
41+
"UIParent",
42+
"RELOADUI",
43+
"CANCEL",
44+
"ReloadUI",
45+
"NUM_TALENT_COLUMNS",
46+
"MAX_TALENT_TIERS",
47+
"WorldFrame",
48+
"LE_PARTY_CATEGORY_HOME",
49+
"NONE",
50+
"GameTooltip",
51+
"LE_EXPANSION_CATACLYSM",
52+
"D_SECONDS",
53+
"LE_EXPANSION_CLASSIC",
54+
"GameTooltipDataMixin",
55+
"LE_EXPANSION_MISTS_OF_PANDARIA",
56+
"DAY_ONELETTER_ABBR",
57+
"HOUR_ONELETTER_ABBR",
58+
"MINUTE_ONELETTER_ABBR",
59+
"SECONDS_ABBR",
60+
"SECOND_ONELETTER_ABBR",
61+
"PLAYER",
62+
"LE_EXPANSION_BATTLE_FOR_AZEROTH",
63+
"TALENT_FRAME_DROP_DOWN_STARTER_BUILD",
64+
"TANK",
65+
"HEALER",
66+
"DAMAGER",
67+
"UNKNOWN",
68+
"CLASS_ICON_TCOORDS",
69+
"TALENT_FRAME_DROP_DOWN_DEFAULT",
70+
"PLAYER_CLASS_NO_SPEC",
71+
"PLAYER_CLASS",
72+
"LOCALIZED_CLASS_NAMES_MALE",
73+
"RAID_CLASS_COLORS",
74+
"LARGE_NUMBER_SEPERATOR",
75+
"DECIMAL_SEPERATOR",
76+
"EditBox_ClearHighlight",
77+
"DropDownList1",
78+
"INVSLOT_LAST_EQUIPPED",
79+
"LE_EXPANSION_WAR_WITHIN",
80+
"INVSLOT_FIRST_EQUIPPED",
81+
"EncounterJournal",
82+
"ENCOUNTER_JOURNAL_ENCOUNTER",
83+
"EncounterJournal_OnEvent",
84+
"INVTYPE_WEAPONMAINHAND",
85+
"INVTYPE_WEAPONOFFHAND",
86+
"STACKS",
87+
"SOLO",
88+
"PARTY",
89+
"RAID",
90+
"BATTLEGROUND",
91+
"ARENA",
92+
"DUNGEON_DIFFICULTY_5PLAYER",
93+
"DUNGEON_DIFFICULTY_5PLAYER_HEROIC",
94+
"GUILD_CHALLENGE_TYPE4",
95+
"HEROIC_SCENARIO",
96+
"DELVE_LABEL",
97+
"PLAYER_DIFFICULTY6",
98+
"RAID_DIFFICULTY_10PLAYER",
99+
"RAID_DIFFICULTY_25PLAYER",
100+
"RAID_DIFFICULTY_10PLAYER_HEROIC",
101+
"RAID_DIFFICULTY_25PLAYER_HEROIC",
102+
"RAID_DIFFICULTY_40PLAYER",
103+
"SANCTUARY_TERRITORY",
104+
"CONTESTED_TERRITORY",
105+
"COMBAT_ZONE",
106+
"CHALLENGE_MODE",
107+
"PLAYER_DIFFICULTY3",
108+
"FLEX_RAID",
109+
"PLAYER_DIFFICULTY1",
110+
"PLAYER_DIFFICULTY2",
111+
"RAID_FINDER",
112+
"FREE_FOR_ALL_TERRITORY",
113+
"PLAYER_DIFFICULTY_TIMEWALKER",
114+
"FACTION_CONTROLLED_TERRITORY",
115+
"FRIENDLY",
116+
"HOSTILE",
117+
"GameTime_GetFormattedTime",
118+
"PET",
119+
"PET_ASSIST_TEXTURE",
120+
"PET_MODE_DEFENSIVE",
121+
"PET_MODE_PASSIVE",
122+
"PET_PASSIVE_TEXTURE",
123+
"PET_MODE_ASSIST",
124+
"NUM_PET_ACTION_SLOTS",
125+
"MAX_SPELL_SCHOOLS",
126+
"STAT_CRITICAL_STRIKE",
127+
"STAT_HASTE",
128+
"STAT_MASTERY",
129+
"STAT_MULTISTRIKE",
130+
"STAT_LIFESTEAL",
131+
"STAT_VERSATILITY",
132+
"STAT_AVOIDANCE",
133+
"STAT_ATTACK_POWER",
134+
"STAT_SPELLPOWER",
135+
"MANA_REGEN",
136+
"MANA_REGEN_COMBAT",
137+
"CR_EXPERTISE",
138+
"CR_VERSATILITY_DAMAGE_DONE",
139+
"MELEE_ATTACK_POWER",
140+
"RANGED_ATTACK_POWER",
141+
"LE_EXPANSION_DRAGONFLIGHT",
142+
"LE_EXPANSION_SHADOWLANDS",
143+
"HEALTH",
144+
"MANA",
145+
"ENERGY",
146+
"RAGE",
147+
"FOCUS",
148+
"RUNIC_POWER",
149+
"SOUL_SHARDS_POWER",
150+
"HOLY_POWER",
151+
"CHI_POWER",
152+
"POWER_TYPE_ESSENCE",
153+
"INSANITY_POWER",
154+
"FURY",
155+
"PAIN",
156+
"MAELSTROM_POWER",
157+
"LUNAR_POWER",
158+
"ARCANE_CHARGES_POWER",
159+
"SHADOW_ORBS",
160+
"BURNING_EMBERS",
161+
"DEMONIC_FURY",
162+
"HAPPINESS",
163+
"PET_HAPPINESS1",
164+
"PET_HAPPINESS2",
165+
"PET_HAPPINESS3",
166+
"COMBATLOG_OBJECT_TYPE_PLAYER",
167+
"LE_EXPANSION_BURNING_CRUSADE",
168+
"BASE_MOVEMENT_SPEED",
169+
"BOSS",
170+
"COMBAT_TEXT_RUNE_DEATH",
171+
"COMBATLOG_OBJECT_CONTROL_PLAYER",
172+
"NUM_BAG_SLOTS",
173+
"INVSLOT_RANGED",
174+
"SPELL_RECAST_TIME_MIN",
175+
"SPELL_RECAST_TIME_SEC",
176+
"SPELL_CAST_CHANNELED",
177+
"TRANSMOGRIFY_INVALID_NO_ITEM",
178+
"TARGET",
179+
"MAX_PARTY_MEMBERS",
180+
"MAX_RAID_MEMBERS",
181+
"GROUP",
182+
"MAX_BOSS_FRAMES",
183+
"CHAT_MSG_SAY",
184+
"CHAT_MSG_YELL",
185+
"WHISPER",
186+
"CHAT_MSG_PARTY",
187+
"CHAT_MSG_RAID",
188+
"CHAT_MSG_RAID_WARNING",
189+
"CHAT_MSG_BATTLEGROUND",
190+
"INSTANCE_CHAT",
191+
"CHAT_MSG_GUILD",
192+
"CHAT_MSG_OFFICER",
193+
"CHAT_MSG_EMOTE",
194+
"COMBAT_TEXT_LABEL",
195+
"RaidNotice_AddMessage",
196+
"CombatText_AddMessage",
197+
"DEFAULT_CHAT_FRAME",
198+
"RaidWarningFrame",
199+
"UIErrorsFrame",
200+
"CombatText_StandardScroll",
201+
"UIParentLoadAddOn",
202+
"LE_PARTY_CATEGORY_INSTANCE",
203+
"FCF_GetChatWindowInfo",
204+
"ENABLE_SOUNDFX",
205+
"MUSIC_VOLUME",
206+
"AMBIENCE_VOLUME",
207+
"DIALOG_VOLUME",
208+
"MASTER_VOLUME",
209+
"FrameStackTooltip",
210+
"PowerBarColor",
211+
"FROM",
212+
"COMBATLOG_OBJECT_REACTION_FRIENDLY",
213+
"COMBATLOG_OBJECT_REACTION_NEUTRAL",
214+
"COMBATLOG_OBJECT_REACTION_HOSTILE",
215+
"COMBATLOG_OBJECT_TYPE_NPC",
216+
"COMBATLOG_OBJECT_TYPE_PET",
217+
"COMBATLOG_OBJECT_TYPE_GUARDIAN",
218+
"COMBATLOG_OBJECT_TYPE_OBJECT",
219+
"COMBATLOG_OBJECT_CONTROL_NPC",
220+
"COMBATLOG_OBJECT_AFFILIATION_MINE",
221+
"COMBATLOG_OBJECT_AFFILIATION_PARTY",
222+
"COMBATLOG_OBJECT_AFFILIATION_RAID",
223+
"COMBATLOG_OBJECT_AFFILIATION_OUTSIDER",
224+
"COMBATLOG_OBJECT_NONE",
225+
"ACTION_SWING",
226+
"COMBAT_TEXT_RUNE_BLOOD",
227+
"COMBAT_TEXT_RUNE_FROST",
228+
"COMBAT_TEXT_RUNE_UNHOLY",
229+
"LE_EXPANSION_LEVEL_CURRENT",
230+
"MAX_COMBO_POINTS",
231+
"COMBO_POINTS",
232+
"STAGGER",
233+
"INVTYPE_THROWN",
234+
"ECLIPSE",
235+
"ERR_SPELL_COOLDOWN",
236+
"FLOATING_COMBAT_SELF_LABEL",
237+
"GUILD",
238+
"LE_REALM_RELATION_COALESCED",
239+
"ERR_PETITION_NOT_SAME_SERVER",
240+
"GetUnitName",
241+
"GENERAL"
242+
],
243+
"Lua.type.weakUnionCheck": true
6244
}

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
## v11.2.7
2+
* Fix #2309 Additional assorted talent/spec errors on Classic Era.
23

34
## v11.2.6
45
* Fix #2307 C_SpecializationInfo.GetTalent: query.specializationIndex must be specified.

Components/Core/Conditions/Categories/Talents.lua

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ local _, pclass = UnitClass("Player")
2525

2626
local wipe =
2727
wipe
28-
local GetTalentInfo, GetNumTalents, GetGlyphLink =
29-
GetTalentInfo, GetNumTalents, GetGlyphLink
3028
local GetNumClasses =
3129
GetNumClasses
3230
local GetNumBattlefieldScores, RequestBattlefieldScoreData, GetBattlefieldScore, GetNumArenaOpponents, GetArenaOpponentSpec =
@@ -392,7 +390,7 @@ ConditionCategory:RegisterCondition(8.1, "TREEROLE2", {
392390

393391
CNDT.Env.TalentMap = {}
394392
CNDT.Env.PvpTalentMap = {}
395-
if C_ClassTalents and C_ClassTalents.GetActiveConfigID and C_Traits.GetDefinitionInfo then
393+
if ClassicExpansionAtLeast(LE_EXPANSION_DRAGONFLIGHT) then
396394
-- Dragonflight
397395

398396
function CNDT:GetTalentRanksBySpellID()
@@ -606,14 +604,9 @@ elseif ClassicExpansionAtLeast(LE_EXPANSION_MISTS_OF_PANDARIA) then
606604
function CNDT:PLAYER_TALENT_UPDATE()
607605
wipe(Env.TalentMap)
608606

609-
local talentInfoQuery = {};
610-
talentInfoQuery.specializationIndex = TMW.GetCurrentSpecialization();
611-
for tier = 1, MAX_NUM_TALENT_TIERS do
612-
for column = 1, NUM_TALENT_COLUMNS do
613-
talentInfoQuery.tier = tier;
614-
talentInfoQuery.column = column;
615-
local talentInfo = C_SpecializationInfo.GetTalentInfo(talentInfoQuery);
616-
607+
for _, talentInfoQuery in TMW.GetTalentQueries(TMW.GetCurrentSpecialization()) do
608+
local talentInfo = C_SpecializationInfo.GetTalentInfo(talentInfoQuery);
609+
if talentInfo then
617610
local name = talentInfo.name
618611
local id = talentInfo.talentID
619612
local lower = name and strlowerCache[name]
@@ -673,17 +666,19 @@ elseif ClassicExpansionAtLeast(LE_EXPANSION_MISTS_OF_PANDARIA) then
673666
max = 5,
674667
})
675668

676-
elseif GetNumTalentTabs then
669+
else
677670
-- Classic - Cata
678671
Env.TalentMap = {}
679672
function CNDT:CHARACTER_POINTS_CHANGED()
680673
wipe(Env.TalentMap)
681-
for tab = 1, GetNumTalentTabs() do
682-
for talent = 1, GetNumTalents(tab) do
683-
local name, _, _, _, rank = GetTalentInfo(tab, talent)
674+
675+
for _, talentInfoQuery in TMW.GetTalentQueries() do
676+
local talentInfo = C_SpecializationInfo.GetTalentInfo(talentInfoQuery);
677+
if talentInfo then
678+
local name = talentInfo.name
684679
local lower = name and strlowerCache[name]
685680
if lower then
686-
Env.TalentMap[lower] = rank or 0
681+
Env.TalentMap[lower] = talentInfo.rank or 0
687682
end
688683
end
689684
end
@@ -698,7 +693,7 @@ elseif GetNumTalentTabs then
698693
editbox:SetLabel(L["SPELLTOCHECK"])
699694
end,
700695
useSUG = "talents",
701-
icon = function() return select(2, GetTalentInfo(1, 1)) end,
696+
icon = "interface\\icons\\spell_fire_immolation",
702697
tcoords = CNDT.COMMON.standardtcoords,
703698
funcstr = function(c)
704699
-- this is handled externally because TalentMap is so extensive a process,

0 commit comments

Comments
 (0)