--[[
Character data handling
] ]
local _ , Internal = ... ;
local L = Internal.L ;
local UnitSex = UnitSex
local UnitRace = UnitRace
local UnitClass = UnitClass
local UnitFullName = UnitFullName
local GetRealmName = GetRealmName
local GetClassInfo = GetClassInfo
local GetNumClasses = GetNumClasses
local GetTalentInfoByID = GetTalentInfoByID
local GetSpecialization = GetSpecialization
local GetPvpTalentSlotInfo = C_SpecializationInfo.GetPvpTalentSlotInfo ;
local GetNumSpecializations = GetNumSpecializations
local GetSpecializationInfo = GetSpecializationInfo
local GetTalentInfoBySpecialization = GetTalentInfoBySpecialization
local GetNumSpecializationsForClassID = GetNumSpecializationsForClassID
local GetSpecializationInfoForClassID = GetSpecializationInfoForClassID
local GetEssenceInfo = C_AzeriteEssence.GetEssenceInfo ;
local roles = { " TANK " , " HEALER " , " DAMAGER " } ;
local roleIndexes = { [ " TANK " ] = 1 , [ " HEALER " ] = 2 , [ " DAMAGER " ] = 3 } ;
local classInfo = { } ;
local classInfoBySpecID = { } ;
function Internal . Roles ( )
return ipairs ( roles )
end
function Internal . GetClassInfo ( class )
return classInfo [ class ]
end
function Internal . GetClassInfoBySpecID ( spec )
return classInfoBySpecID [ spec ]
end
function Internal . GetClassID ( class )
return classInfo [ class ] and classInfo [ class ] . classID ;
end
function Internal . GetClassFile ( class )
return classInfo [ class ] and classInfo [ class ] . classFile ;
end
function Internal . IsClassRoleValid ( class , role )
return ( classInfo [ class ] and classInfo [ class ] . roles [ role ] ) and true or false ;
end
function Internal . UpdateClassInfo ( )
for classIndex = 1 , GetNumClasses ( ) do
if GetNumSpecializationsForClassID ( classIndex ) > 0 then
local info = C_CreatureInfo.GetClassInfo ( classIndex ) ;
local classID = info.classID ;
info.specs , info.roles = { } , { } ;
for specIndex = 1 , GetNumSpecializationsForClassID ( classID ) do
local id , _ , _ , _ , role = GetSpecializationInfoForClassID ( classID , specIndex ) ;
info.specs [ specIndex ] = id ;
info.roles [ role ] = true ;
classInfoBySpecID [ id ] = info ;
end
classInfo [ classID ] = info ;
classInfo [ info.classFile ] = info ;
end
end
end
-- In very niche situations UnitFullName will not correctly respond with the realm
-- but since player realm cant change while logged in we can just reuse the previous value
local playerNameCache , playerRealmCache
function Internal . GetCharacterSlug ( )
local name , realm = UnitFullName ( " player " ) ;
playerNameCache = name or playerNameCache
playerRealmCache = realm or playerRealmCache
return playerRealmCache .. " - " .. playerNameCache
end
local GetSpecInfoVersion ;
local VerifyTalentForSpec ;
local VerifyPvPTalentForSpec ;
local GetTalentInfoForSpecID ;
local GetPvpTalentSlotInfoForSpecID ;
do
local specInfo
if Internal.Is100100 then
specInfo = {
version = 8 ,
-- Warrior
[ 71 ] = { -- Arms
talents = {
{ 22624 , 22360 , 22371 } ,
{ 19676 , 22372 , 22789 } ,
{ 22380 , 22489 , 19138 } ,
{ 15757 , 22627 , 22628 } ,
{ 22392 , 22391 , 22362 } ,
{ 22394 , 22397 , 22399 } ,
{ 21204 , 22407 , 21667 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
} ,
} ,
[ 72 ] = { -- Fury
talents = {
{ 22632 , 22633 , 22491 } ,
{ 19676 , 22625 , 23093 } ,
{ 22379 , 22381 , 23372 } ,
{ 23097 , 22627 , 22382 } ,
{ 22383 , 22393 , 19140 } ,
{ 22396 , 22398 , 22400 } ,
{ 22405 , 22402 , 16037 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
} ,
} ,
[ 73 ] = { -- Protection
talents = {
{ 15760 , 15759 , 15774 } ,
{ 19676 , 22629 , 22409 } ,
{ 22378 , 22626 , 23260 } ,
{ 23096 , 22627 , 22488 } ,
{ 22384 , 22631 , 22800 } ,
{ 22395 , 22544 , 22401 } ,
{ 23455 , 22406 , 23099 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
24 , 168 , 171 ,
173 , 175 , 178 ,
831 , 833 , 845 ,
5374 , 5432 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
24 , 168 , 171 ,
173 , 175 , 178 ,
831 , 833 , 845 ,
5374 , 5432 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
24 , 168 , 171 ,
173 , 175 , 178 ,
831 , 833 , 845 ,
5374 , 5432 ,
}
} ,
} ,
} ,
-- Paladin
[ 65 ] = { -- Holy
talents = {
{ 17565 , 17567 , 17569 } ,
{ 22176 , 17575 , 17577 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 17593 } ,
{ 17597 , 17599 , 17601 } ,
{ 23191 , 23680 , 22484 } ,
{ 21201 , 21671 , 23681 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 3618 , 5421 ,
5553 , 5583 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 3618 , 5421 ,
5553 , 5583 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 3618 , 5421 ,
5553 , 5583 ,
}
} ,
} ,
} ,
[ 66 ] = { -- Protection
talents = {
{ 22428 , 22558 , 23469 } ,
{ 22431 , 22604 , 23468 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 22435 } ,
{ 17597 , 17599 , 17601 } ,
{ 22189 , 22438 , 23087 } ,
{ 23457 , 21202 , 22645 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 5554 , 5582 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 5554 , 5582 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 5554 , 5582 ,
}
} ,
} ,
} ,
[ 70 ] = { -- Retribution
talents = {
{ 22590 , 22557 , 23467 } ,
{ 22319 , 22592 , 23466 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 22183 } ,
{ 17597 , 17599 , 17601 } ,
{ 23167 , 22483 , 23086 } ,
{ 23456 , 22215 , 22634 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
81 , 752 , 753 ,
754 , 756 , 5422 ,
5535 , 5572 , 5573 ,
5584 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
81 , 752 , 753 ,
754 , 756 , 5422 ,
5535 , 5572 , 5573 ,
5584 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
81 , 752 , 753 ,
754 , 756 , 5422 ,
5535 , 5572 , 5573 ,
5584 ,
}
} ,
} ,
} ,
-- Hunter
[ 253 ] = { -- Beast Mastery
talents = {
{ 22291 , 22280 , 22282 } ,
{ 22500 , 22266 , 22290 } ,
{ 19347 , 19348 , 23100 } ,
{ 22441 , 22347 , 22269 } ,
{ 22268 , 22276 , 22499 } ,
{ 19357 , 22002 , 23044 } ,
{ 22273 , 21986 , 22295 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3604 ,
3730 , 5418 , 5441 ,
5444 , 5534 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3604 ,
3730 , 5418 , 5441 ,
5444 , 5534 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3604 ,
3730 , 5418 , 5441 ,
5444 , 5534 ,
}
} ,
} ,
} ,
[ 254 ] = { -- Marksmanship
talents = {
{ 22279 , 22501 , 22289 } ,
{ 22495 , 22497 , 22498 } ,
{ 19347 , 19348 , 23100 } ,
{ 22267 , 22286 , 21998 } ,
{ 22268 , 22276 , 23463 } ,
{ 23063 , 23104 , 22287 } ,
{ 22274 , 22308 , 22288 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
651 , 653 , 658 ,
659 , 660 , 3729 ,
5419 , 5440 , 5442 ,
5531 , 5533 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
651 , 653 , 658 ,
659 , 660 , 3729 ,
5419 , 5440 , 5442 ,
5531 , 5533 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
651 , 653 , 658 ,
659 , 660 , 3729 ,
5419 , 5440 , 5442 ,
5531 , 5533 ,
}
} ,
} ,
} ,
[ 255 ] = { -- Survival
talents = {
{ 22275 , 22283 , 22296 } ,
{ 21997 , 22769 , 22297 } ,
{ 19347 , 19348 , 23100 } ,
{ 22277 , 19361 , 22299 } ,
{ 22268 , 22276 , 22499 } ,
{ 22300 , 22278 , 22271 } ,
{ 22272 , 22301 , 23105 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
661 , 662 , 664 ,
665 , 686 , 3607 ,
3609 , 5420 , 5443 ,
5532 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
661 , 662 , 664 ,
665 , 686 , 3607 ,
3609 , 5420 , 5443 ,
5532 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
661 , 662 , 664 ,
665 , 686 , 3607 ,
3609 , 5420 , 5443 ,
5532 ,
}
} ,
} ,
} ,
-- Rogue
[ 259 ] = { -- Assassination
talents = {
{ 22337 , 22338 , 22339 } ,
{ 22331 , 22332 , 23022 } ,
{ 19239 , 19240 , 19241 } ,
{ 22340 , 22122 , 22123 } ,
{ 19245 , 23037 , 22115 } ,
{ 22343 , 23015 , 22344 } ,
{ 21186 , 22133 , 23174 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
} ,
} ,
[ 260 ] = { -- Outlaw
talents = {
{ 22118 , 22119 , 22120 } ,
{ 23470 , 19237 , 19238 } ,
{ 19239 , 19240 , 19241 } ,
{ 22121 , 22122 , 22123 } ,
{ 23077 , 22114 , 22115 } ,
{ 21990 , 23128 , 19250 } ,
{ 22125 , 23075 , 23175 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
} ,
} ,
[ 261 ] = { -- Subtlety
talents = {
{ 19233 , 19234 , 19235 } ,
{ 22331 , 22332 , 22333 } ,
{ 19239 , 19240 , 19241 } ,
{ 22128 , 22122 , 22123 } ,
{ 23078 , 23036 , 22115 } ,
{ 22335 , 19249 , 22336 } ,
{ 22132 , 23183 , 21188 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
} ,
} ,
-- Priest
[ 256 ] = { -- Discipline
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 123 ,
126 , 855 , 5416 ,
5480 , 5487 , 5570 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 123 ,
126 , 855 , 5416 ,
5480 , 5487 , 5570 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 123 ,
126 , 855 , 5416 ,
5480 , 5487 , 5570 ,
}
} ,
} ,
} ,
[ 257 ] = { -- Holy
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
101 , 108 , 112 ,
124 , 127 , 1927 ,
5365 , 5366 , 5476 ,
5478 , 5479 , 5485 ,
5569 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
101 , 108 , 112 ,
124 , 127 , 1927 ,
5365 , 5366 , 5476 ,
5478 , 5479 , 5485 ,
5569 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
101 , 108 , 112 ,
124 , 127 , 1927 ,
5365 , 5366 , 5476 ,
5478 , 5479 , 5485 ,
5569 ,
}
} ,
} ,
} ,
[ 258 ] = { -- Shadow
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
106 , 113 , 763 ,
5381 , 5447 , 5477 ,
5481 , 5486 , 5568 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
106 , 113 , 763 ,
5381 , 5447 , 5477 ,
5481 , 5486 , 5568 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
106 , 113 , 763 ,
5381 , 5447 , 5477 ,
5481 , 5486 , 5568 ,
}
} ,
} ,
} ,
-- Death Knight
[ 250 ] = { -- Blood
talents = {
{ 19165 , 19166 , 23454 } ,
{ 19218 , 19219 , 19220 } ,
{ 19221 , 22134 , 22135 } ,
{ 22013 , 22014 , 22015 } ,
{ 19227 , 19226 , 19228 } ,
{ 19230 , 19231 , 19232 } ,
{ 21207 , 21208 , 21209 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
204 , 205 , 206 ,
608 , 609 , 841 ,
3441 , 3511 , 5513 ,
5587 , 5592 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
204 , 205 , 206 ,
608 , 609 , 841 ,
3441 , 3511 , 5513 ,
5587 , 5592 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
204 , 205 , 206 ,
608 , 609 , 841 ,
3441 , 3511 , 5513 ,
5587 , 5592 ,
}
} ,
} ,
} ,
[ 251 ] = { -- Frost
talents = {
{ 22016 , 22017 , 22018 } ,
{ 22019 , 22020 , 22021 } ,
{ 22515 , 22517 , 22519 } ,
{ 22521 , 22523 , 22525 } ,
{ 22527 , 22530 , 23373 } ,
{ 22531 , 22533 , 22535 } ,
{ 22023 , 22109 , 22537 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5429 ,
5435 , 5510 , 5512 ,
5586 , 5591 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5429 ,
5435 , 5510 , 5512 ,
5586 , 5591 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5429 ,
5435 , 5510 , 5512 ,
5586 , 5591 ,
}
} ,
} ,
} ,
[ 252 ] = { -- Unholy
talents = {
{ 22024 , 22025 , 22026 } ,
{ 22027 , 22028 , 22029 } ,
{ 22516 , 22518 , 22520 } ,
{ 22522 , 22524 , 22526 } ,
{ 22528 , 22529 , 23373 } ,
{ 22532 , 22534 , 22536 } ,
{ 22030 , 22110 , 22538 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5430 , 5436 ,
5511 , 5585 , 5590 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5430 , 5436 ,
5511 , 5585 , 5590 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5430 , 5436 ,
5511 , 5585 , 5590 ,
}
} ,
} ,
} ,
-- Shaman
[ 262 ] = { -- Elemental
talents = {
{ 22356 , 22357 , 22358 } ,
{ 23108 , 23460 , 23190 } ,
{ 23162 , 23163 , 23164 } ,
{ 19271 , 19272 , 19273 } ,
{ 22144 , 22172 , 21966 } ,
{ 22145 , 19266 , 23111 } ,
{ 21198 , 22153 , 21675 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
727 , 730 , 3488 ,
3490 , 3491 , 3620 ,
5415 , 5571 , 5574 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
727 , 730 , 3488 ,
3490 , 3491 , 3620 ,
5415 , 5571 , 5574 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
727 , 730 , 3488 ,
3490 , 3491 , 3620 ,
5415 , 5571 , 5574 ,
}
} ,
} ,
} ,
[ 263 ] = { -- Enhancement
talents = {
{ 22354 , 22355 , 22353 } ,
{ 22636 , 23462 , 23109 } ,
{ 23165 , 19260 , 23166 } ,
{ 23089 , 23090 , 22171 } ,
{ 22144 , 22149 , 21966 } ,
{ 21973 , 22352 , 22351 } ,
{ 21970 , 22977 , 21972 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
721 , 722 , 3487 ,
3489 , 3492 , 3622 ,
5414 , 5438 , 5527 ,
5575 , 5596 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
721 , 722 , 3487 ,
3489 , 3492 , 3622 ,
5414 , 5438 , 5527 ,
5575 , 5596 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
721 , 722 , 3487 ,
3489 , 3492 , 3622 ,
5414 , 5438 , 5527 ,
5575 , 5596 ,
}
} ,
} ,
} ,
[ 264 ] = { -- Restoration
talents = {
{ 19262 , 19263 , 19264 } ,
{ 19259 , 23461 , 21963 } ,
{ 19275 , 23110 , 22127 } ,
{ 22152 , 22322 , 22323 } ,
{ 22144 , 19269 , 21966 } ,
{ 19265 , 21971 , 21968 } ,
{ 21969 , 21199 , 22359 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
707 , 708 , 714 ,
715 , 3755 , 5388 ,
5437 , 5528 , 5566 ,
5567 , 5576 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
707 , 708 , 714 ,
715 , 3755 , 5388 ,
5437 , 5528 , 5566 ,
5567 , 5576 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
707 , 708 , 714 ,
715 , 3755 , 5388 ,
5437 , 5528 , 5566 ,
5567 , 5576 ,
}
} ,
} ,
} ,
-- Mage
[ 62 ] = { -- Arcane
talents = {
{ 22458 , 22461 , 22464 } ,
{ 23072 , 22443 , 16025 } ,
{ 22444 , 22445 , 22447 } ,
{ 22453 , 22467 , 22470 } ,
{ 22907 , 22448 , 22471 } ,
{ 22455 , 22449 , 22474 } ,
{ 21630 , 21144 , 21145 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
635 , 637 , 3517 ,
3529 , 5397 , 5488 ,
5491 , 5589 , 5601 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
635 , 637 , 3517 ,
3529 , 5397 , 5488 ,
5491 , 5589 , 5601 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
635 , 637 , 3517 ,
3529 , 5397 , 5488 ,
5491 , 5589 , 5601 ,
}
} ,
} ,
} ,
[ 63 ] = { -- Fire
talents = {
{ 22456 , 22459 , 22462 } ,
{ 23071 , 22443 , 23074 } ,
{ 22444 , 22445 , 22447 } ,
{ 22450 , 22465 , 22468 } ,
{ 22904 , 22448 , 22471 } ,
{ 22451 , 23362 , 22472 } ,
{ 21631 , 22220 , 21633 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
644 , 646 , 647 ,
648 , 5389 , 5489 ,
5495 , 5588 , 5602 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
644 , 646 , 647 ,
648 , 5389 , 5489 ,
5495 , 5588 , 5602 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
644 , 646 , 647 ,
648 , 5389 , 5489 ,
5495 , 5588 , 5602 ,
}
} ,
} ,
} ,
[ 64 ] = { -- Frost
talents = {
{ 22457 , 22460 , 22463 } ,
{ 22442 , 22443 , 23073 } ,
{ 22444 , 22445 , 22447 } ,
{ 22452 , 22466 , 22469 } ,
{ 22446 , 22448 , 22471 } ,
{ 22454 , 23176 , 22473 } ,
{ 21632 , 22309 , 21634 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
66 , 632 , 634 ,
5390 , 5490 , 5496 ,
5497 , 5581 , 5600 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
66 , 632 , 634 ,
5390 , 5490 , 5496 ,
5497 , 5581 , 5600 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
66 , 632 , 634 ,
5390 , 5490 , 5496 ,
5497 , 5581 , 5600 ,
}
} ,
} ,
} ,
-- Warlock
[ 265 ] = { -- Affliction
talents = {
{ 22039 , 23140 , 23141 } ,
{ 22044 , 21180 , 22089 } ,
{ 19280 , 19285 , 19286 } ,
{ 19279 , 19292 , 22046 } ,
{ 22047 , 19291 , 23465 } ,
{ 23139 , 23159 , 19295 } ,
{ 19284 , 19281 , 19293 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
12 , 15 , 16 ,
18 , 19 , 5379 ,
5386 , 5392 , 5543 ,
5546 , 5579 , 5608 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
12 , 15 , 16 ,
18 , 19 , 5379 ,
5386 , 5392 , 5543 ,
5546 , 5579 , 5608 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
12 , 15 , 16 ,
18 , 19 , 5379 ,
5386 , 5392 , 5543 ,
5546 , 5579 , 5608 ,
}
} ,
} ,
} ,
[ 266 ] = { -- Demonology
talents = {
{ 19290 , 22048 , 23138 } ,
{ 22045 , 21694 , 23158 } ,
{ 19280 , 19285 , 19286 } ,
{ 22477 , 22042 , 23160 } ,
{ 22047 , 19291 , 23465 } ,
{ 23147 , 23146 , 21717 } ,
{ 23161 , 22479 , 23091 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
162 , 165 , 1213 ,
3506 , 3624 , 5394 ,
5400 , 5545 , 5577 ,
5606 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
162 , 165 , 1213 ,
3506 , 3624 , 5394 ,
5400 , 5545 , 5577 ,
5606 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
162 , 165 , 1213 ,
3506 , 3624 , 5394 ,
5400 , 5545 , 5577 ,
5606 ,
}
} ,
} ,
} ,
[ 267 ] = { -- Destruction
talents = {
{ 22038 , 22090 , 22040 } ,
{ 23148 , 21695 , 23157 } ,
{ 19280 , 19285 , 19286 } ,
{ 22480 , 22043 , 23143 } ,
{ 22047 , 19291 , 23465 } ,
{ 23155 , 23156 , 19295 } ,
{ 19284 , 23144 , 23092 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
157 , 164 , 3508 ,
5382 , 5393 , 5401 ,
5544 , 5580 , 5607 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
157 , 164 , 3508 ,
5382 , 5393 , 5401 ,
5544 , 5580 , 5607 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
157 , 164 , 3508 ,
5382 , 5393 , 5401 ,
5544 , 5580 , 5607 ,
}
} ,
} ,
} ,
-- Monk
[ 268 ] = { -- Brewmaster
talents = {
{ 23106 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22099 , 22097 , 19992 } ,
{ 19993 , 19994 , 19995 } ,
{ 20174 , 23363 , 20175 } ,
{ 19819 , 20184 , 22103 } ,
{ 22106 , 22104 , 22108 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 672 ,
673 , 765 , 843 ,
1958 , 5417 , 5538 ,
5541 , 5552 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 672 ,
673 , 765 , 843 ,
1958 , 5417 , 5538 ,
5541 , 5552 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 672 ,
673 , 765 , 843 ,
1958 , 5417 , 5538 ,
5541 , 5552 ,
}
} ,
} ,
} ,
[ 270 ] = { -- Mistweaver
talents = {
{ 19823 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22168 , 22167 , 22166 } ,
{ 19993 , 22219 , 19995 } ,
{ 23371 , 20173 , 20175 } ,
{ 23107 , 22101 , 0 } ,
{ 22218 , 22169 , 22170 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
70 , 679 , 680 ,
682 , 683 , 1928 ,
3732 , 5395 , 5398 ,
5402 , 5539 , 5551 ,
5565 , 5603 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
70 , 679 , 680 ,
682 , 683 , 1928 ,
3732 , 5395 , 5398 ,
5402 , 5539 , 5551 ,
5565 , 5603 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
70 , 679 , 680 ,
682 , 683 , 1928 ,
3732 , 5395 , 5398 ,
5402 , 5539 , 5551 ,
5565 , 5603 ,
}
} ,
} ,
} ,
[ 269 ] = { -- Windwalker
talents = {
{ 23106 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22098 , 19771 , 22096 } ,
{ 19993 , 23364 , 19995 } ,
{ 23258 , 20173 , 20175 } ,
{ 22093 , 23122 , 22102 } ,
{ 22107 , 22105 , 21191 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 , 5610 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 , 5610 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 , 5610 ,
}
} ,
} ,
} ,
-- Druid
[ 102 ] = { -- Balance
talents = {
{ 22385 , 22386 , 22387 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22157 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 18580 , 21706 , 21702 } ,
{ 22389 , 21712 , 22165 } ,
{ 21648 , 21193 , 21655 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5515 , 5604 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5515 , 5604 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5515 , 5604 ,
}
} ,
} ,
} ,
[ 103 ] = { -- Feral
talents = {
{ 22363 , 22364 , 22365 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22158 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 21708 , 18579 , 21704 } ,
{ 21714 , 21711 , 22370 } ,
{ 21646 , 21649 , 21653 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5593 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5593 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5593 ,
}
} ,
} ,
} ,
[ 104 ] = { -- Guardian
talents = {
{ 22419 , 22418 , 0 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22156 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 21709 , 21707 , 22388 } ,
{ 22423 , 21713 , 22390 } ,
{ 22426 , 22427 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
49 , 51 , 52 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
49 , 51 , 52 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
49 , 51 , 52 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 ,
}
} ,
} ,
} ,
[ 105 ] = { -- Restoration
talents = {
{ 18569 , 18574 , 18572 } ,
{ 19283 , 18570 , 18571 } ,
{ 22366 , 22367 , 22160 } ,
{ 21778 , 18576 , 18577 } ,
{ 21710 , 21705 , 22421 } ,
{ 21716 , 18585 , 22422 } ,
{ 22403 , 21651 , 22404 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5514 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5514 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5514 ,
}
} ,
} ,
} ,
-- Demon Hunter
[ 577 ] = { -- Havoc
talents = {
{ 21854 , 22493 , 22416 } ,
{ 21857 , 22765 , 22799 } ,
{ 22909 , 22494 , 21862 } ,
{ 21863 , 21864 , 21865 } ,
{ 21866 , 21867 , 21868 } ,
{ 21869 , 21870 , 22767 } ,
{ 21900 , 21901 , 22547 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
805 , 806 , 809 ,
811 , 812 , 813 ,
1206 , 1218 , 5433 ,
5523 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
805 , 806 , 809 ,
811 , 812 , 813 ,
1206 , 1218 , 5433 ,
5523 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
805 , 806 , 809 ,
811 , 812 , 813 ,
1206 , 1218 , 5433 ,
5523 ,
}
} ,
} ,
} ,
[ 581 ] = { -- Vengeance
talents = {
{ 22502 , 22503 , 22504 } ,
{ 22505 , 22766 , 22507 } ,
{ 22324 , 22541 , 22540 } ,
{ 22508 , 22509 , 22770 } ,
{ 22546 , 22510 , 22511 } ,
{ 22512 , 22513 , 22768 } ,
{ 22543 , 23464 , 21902 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
} ,
} ,
-- Evoker
[ 1467 ] = { -- Devastation
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5556 ,
5599 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5556 ,
5599 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5556 ,
5599 ,
}
} ,
} ,
} ,
[ 1468 ] = { -- Preservation
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5595 ,
5598 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5595 ,
5598 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5595 ,
5598 ,
}
} ,
} ,
} ,
}
elseif Internal.Is100005 then
specInfo = {
version = 7 ,
-- Warrior
[ 71 ] = { -- Arms
talents = {
{ 22624 , 22360 , 22371 } ,
{ 19676 , 22372 , 22789 } ,
{ 22380 , 22489 , 19138 } ,
{ 15757 , 22627 , 22628 } ,
{ 22392 , 22391 , 22362 } ,
{ 22394 , 22397 , 22399 } ,
{ 21204 , 22407 , 21667 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
} ,
} ,
[ 72 ] = { -- Fury
talents = {
{ 22632 , 22633 , 22491 } ,
{ 19676 , 22625 , 23093 } ,
{ 22379 , 22381 , 23372 } ,
{ 23097 , 22627 , 22382 } ,
{ 22383 , 22393 , 19140 } ,
{ 22396 , 22398 , 22400 } ,
{ 22405 , 22402 , 16037 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
} ,
} ,
[ 73 ] = { -- Protection
talents = {
{ 15760 , 15759 , 15774 } ,
{ 19676 , 22629 , 22409 } ,
{ 22378 , 22626 , 23260 } ,
{ 23096 , 22627 , 22488 } ,
{ 22384 , 22631 , 22800 } ,
{ 22395 , 22544 , 22401 } ,
{ 23455 , 22406 , 23099 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
} ,
} ,
-- Paladin
[ 65 ] = { -- Holy
talents = {
{ 17565 , 17567 , 17569 } ,
{ 22176 , 17575 , 17577 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 17593 } ,
{ 17597 , 17599 , 17601 } ,
{ 23191 , 23680 , 22484 } ,
{ 21201 , 21671 , 23681 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 859 , 3618 ,
5421 , 5501 , 5537 ,
5553 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 859 , 3618 ,
5421 , 5501 , 5537 ,
5553 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 859 , 3618 ,
5421 , 5501 , 5537 ,
5553 ,
}
} ,
} ,
} ,
[ 66 ] = { -- Protection
talents = {
{ 22428 , 22558 , 23469 } ,
{ 22431 , 22604 , 23468 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 22435 } ,
{ 17597 , 17599 , 17601 } ,
{ 22189 , 22438 , 23087 } ,
{ 23457 , 21202 , 22645 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 , 5536 ,
5554 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 , 5536 ,
5554 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 , 5536 ,
5554 ,
}
} ,
} ,
} ,
[ 70 ] = { -- Retribution
talents = {
{ 22590 , 22557 , 23467 } ,
{ 22319 , 22592 , 23466 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 22183 } ,
{ 17597 , 17599 , 17601 } ,
{ 23167 , 22483 , 23086 } ,
{ 23456 , 22215 , 22634 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 , 5535 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 , 5535 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 , 5535 ,
}
} ,
} ,
} ,
-- Hunter
[ 253 ] = { -- Beast Mastery
talents = {
{ 22291 , 22280 , 22282 } ,
{ 22500 , 22266 , 22290 } ,
{ 19347 , 19348 , 23100 } ,
{ 22441 , 22347 , 22269 } ,
{ 22268 , 22276 , 22499 } ,
{ 19357 , 22002 , 23044 } ,
{ 22273 , 21986 , 22295 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3612 , 3730 ,
5418 , 5441 , 5444 ,
5534 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3612 , 3730 ,
5418 , 5441 , 5444 ,
5534 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3612 , 3730 ,
5418 , 5441 , 5444 ,
5534 ,
}
} ,
} ,
} ,
[ 254 ] = { -- Marksmanship
talents = {
{ 22279 , 22501 , 22289 } ,
{ 22495 , 22497 , 22498 } ,
{ 19347 , 19348 , 23100 } ,
{ 22267 , 22286 , 21998 } ,
{ 22268 , 22276 , 23463 } ,
{ 23063 , 23104 , 22287 } ,
{ 22274 , 22308 , 22288 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
649 , 651 , 653 ,
658 , 659 , 660 ,
3614 , 3729 , 5419 ,
5440 , 5442 , 5531 ,
5533 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
649 , 651 , 653 ,
658 , 659 , 660 ,
3614 , 3729 , 5419 ,
5440 , 5442 , 5531 ,
5533 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
649 , 651 , 653 ,
658 , 659 , 660 ,
3614 , 3729 , 5419 ,
5440 , 5442 , 5531 ,
5533 ,
}
} ,
} ,
} ,
[ 255 ] = { -- Survival
talents = {
{ 22275 , 22283 , 22296 } ,
{ 21997 , 22769 , 22297 } ,
{ 19347 , 19348 , 23100 } ,
{ 22277 , 19361 , 22299 } ,
{ 22268 , 22276 , 22499 } ,
{ 22300 , 22278 , 22271 } ,
{ 22272 , 22301 , 23105 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3607 , 3609 , 3610 ,
5420 , 5443 , 5532 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3607 , 3609 , 3610 ,
5420 , 5443 , 5532 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3607 , 3609 , 3610 ,
5420 , 5443 , 5532 ,
}
} ,
} ,
} ,
-- Rogue
[ 259 ] = { -- Assassination
talents = {
{ 22337 , 22338 , 22339 } ,
{ 22331 , 22332 , 23022 } ,
{ 19239 , 19240 , 19241 } ,
{ 22340 , 22122 , 22123 } ,
{ 19245 , 23037 , 22115 } ,
{ 22343 , 23015 , 22344 } ,
{ 21186 , 22133 , 23174 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
} ,
} ,
[ 260 ] = { -- Outlaw
talents = {
{ 22118 , 22119 , 22120 } ,
{ 23470 , 19237 , 19238 } ,
{ 19239 , 19240 , 19241 } ,
{ 22121 , 22122 , 22123 } ,
{ 23077 , 22114 , 22115 } ,
{ 21990 , 23128 , 19250 } ,
{ 22125 , 23075 , 23175 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
} ,
} ,
[ 261 ] = { -- Subtlety
talents = {
{ 19233 , 19234 , 19235 } ,
{ 22331 , 22332 , 22333 } ,
{ 19239 , 19240 , 19241 } ,
{ 22128 , 22122 , 22123 } ,
{ 23078 , 23036 , 22115 } ,
{ 22335 , 19249 , 22336 } ,
{ 22132 , 23183 , 21188 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
} ,
} ,
-- Priest
[ 256 ] = { -- Discipline
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
5416 , 5475 , 5480 ,
5483 , 5487 , 5498 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
5416 , 5475 , 5480 ,
5483 , 5487 , 5498 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
5416 , 5475 , 5480 ,
5483 , 5487 , 5498 ,
}
} ,
} ,
} ,
[ 257 ] = { -- Holy
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 124 , 127 ,
1927 , 5365 , 5366 ,
5476 , 5478 , 5479 ,
5482 , 5485 , 5499 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 124 , 127 ,
1927 , 5365 , 5366 ,
5476 , 5478 , 5479 ,
5482 , 5485 , 5499 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 124 , 127 ,
1927 , 5365 , 5366 ,
5476 , 5478 , 5479 ,
5482 , 5485 , 5499 ,
}
} ,
} ,
} ,
[ 258 ] = { -- Shadow
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
106 , 113 , 739 ,
763 , 5381 , 5447 ,
5474 , 5477 , 5481 ,
5484 , 5486 , 5500 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
106 , 113 , 739 ,
763 , 5381 , 5447 ,
5474 , 5477 , 5481 ,
5484 , 5486 , 5500 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
106 , 113 , 739 ,
763 , 5381 , 5447 ,
5474 , 5477 , 5481 ,
5484 , 5486 , 5500 ,
}
} ,
} ,
} ,
-- Death Knight
[ 250 ] = { -- Blood
talents = {
{ 19165 , 19166 , 23454 } ,
{ 19218 , 19219 , 19220 } ,
{ 19221 , 22134 , 22135 } ,
{ 22013 , 22014 , 22015 } ,
{ 19227 , 19226 , 19228 } ,
{ 19230 , 19231 , 19232 } ,
{ 21207 , 21208 , 21209 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5513 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5513 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5513 ,
}
} ,
} ,
} ,
[ 251 ] = { -- Frost
talents = {
{ 22016 , 22017 , 22018 } ,
{ 22019 , 22020 , 22021 } ,
{ 22515 , 22517 , 22519 } ,
{ 22521 , 22523 , 22525 } ,
{ 22527 , 22530 , 23373 } ,
{ 22531 , 22533 , 22535 } ,
{ 22023 , 22109 , 22537 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5424 ,
5429 , 5435 , 5510 ,
5512 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5424 ,
5429 , 5435 , 5510 ,
5512 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5424 ,
5429 , 5435 , 5510 ,
5512 ,
}
} ,
} ,
} ,
[ 252 ] = { -- Unholy
talents = {
{ 22024 , 22025 , 22026 } ,
{ 22027 , 22028 , 22029 } ,
{ 22516 , 22518 , 22520 } ,
{ 22522 , 22524 , 22526 } ,
{ 22528 , 22529 , 23373 } ,
{ 22532 , 22534 , 22536 } ,
{ 22030 , 22110 , 22538 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5430 ,
5436 , 5511 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5430 ,
5436 , 5511 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5430 ,
5436 , 5511 ,
}
} ,
} ,
} ,
-- Shaman
[ 262 ] = { -- Elemental
talents = {
{ 22356 , 22357 , 22358 } ,
{ 23108 , 23460 , 23190 } ,
{ 23162 , 23163 , 23164 } ,
{ 19271 , 19272 , 19273 } ,
{ 22144 , 22172 , 21966 } ,
{ 22145 , 19266 , 23111 } ,
{ 21198 , 22153 , 21675 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
727 , 728 , 730 ,
3062 , 3488 , 3490 ,
3491 , 3620 , 3621 ,
5415 , 5457 , 5519 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
727 , 728 , 730 ,
3062 , 3488 , 3490 ,
3491 , 3620 , 3621 ,
5415 , 5457 , 5519 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
727 , 728 , 730 ,
3062 , 3488 , 3490 ,
3491 , 3620 , 3621 ,
5415 , 5457 , 5519 ,
}
} ,
} ,
} ,
[ 263 ] = { -- Enhancement
talents = {
{ 22354 , 22355 , 22353 } ,
{ 22636 , 23462 , 23109 } ,
{ 23165 , 19260 , 23166 } ,
{ 23089 , 23090 , 22171 } ,
{ 22144 , 22149 , 21966 } ,
{ 21973 , 22352 , 22351 } ,
{ 21970 , 22977 , 21972 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
5518 , 5527 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
5518 , 5527 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
5518 , 5527 ,
}
} ,
} ,
} ,
[ 264 ] = { -- Restoration
talents = {
{ 19262 , 19263 , 19264 } ,
{ 19259 , 23461 , 21963 } ,
{ 19275 , 23110 , 22127 } ,
{ 22152 , 22322 , 22323 } ,
{ 22144 , 19269 , 21966 } ,
{ 19265 , 21971 , 21968 } ,
{ 21969 , 21199 , 22359 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
707 , 708 , 712 ,
714 , 715 , 1930 ,
3520 , 3755 , 5388 ,
5437 , 5458 , 5528 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
707 , 708 , 712 ,
714 , 715 , 1930 ,
3520 , 3755 , 5388 ,
5437 , 5458 , 5528 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
707 , 708 , 712 ,
714 , 715 , 1930 ,
3520 , 3755 , 5388 ,
5437 , 5458 , 5528 ,
}
} ,
} ,
} ,
-- Mage
[ 62 ] = { -- Arcane
talents = {
{ 22458 , 22461 , 22464 } ,
{ 23072 , 22443 , 16025 } ,
{ 22444 , 22445 , 22447 } ,
{ 22453 , 22467 , 22470 } ,
{ 22907 , 22448 , 22471 } ,
{ 22455 , 22449 , 22474 } ,
{ 21630 , 21144 , 21145 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
61 , 635 , 637 ,
3442 , 3517 , 3529 ,
3531 , 5397 , 5488 ,
5491 , 5492 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
61 , 635 , 637 ,
3442 , 3517 , 3529 ,
3531 , 5397 , 5488 ,
5491 , 5492 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
61 , 635 , 637 ,
3442 , 3517 , 3529 ,
3531 , 5397 , 5488 ,
5491 , 5492 ,
}
} ,
} ,
} ,
[ 63 ] = { -- Fire
talents = {
{ 22456 , 22459 , 22462 } ,
{ 23071 , 22443 , 23074 } ,
{ 22444 , 22445 , 22447 } ,
{ 22450 , 22465 , 22468 } ,
{ 22904 , 22448 , 22471 } ,
{ 22451 , 23362 , 22472 } ,
{ 21631 , 22220 , 21633 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
53 , 644 , 646 ,
647 , 648 , 828 ,
5389 , 5489 , 5493 ,
5495 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
53 , 644 , 646 ,
647 , 648 , 828 ,
5389 , 5489 , 5493 ,
5495 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
53 , 644 , 646 ,
647 , 648 , 828 ,
5389 , 5489 , 5493 ,
5495 ,
}
} ,
} ,
} ,
[ 64 ] = { -- Frost
talents = {
{ 22457 , 22460 , 22463 } ,
{ 22442 , 22443 , 23073 } ,
{ 22444 , 22445 , 22447 } ,
{ 22452 , 22466 , 22469 } ,
{ 22446 , 22448 , 22471 } ,
{ 22454 , 23176 , 22473 } ,
{ 21632 , 22309 , 21634 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
66 , 632 , 634 ,
3443 , 3532 , 5390 ,
5490 , 5494 , 5496 ,
5497 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
66 , 632 , 634 ,
3443 , 3532 , 5390 ,
5490 , 5494 , 5496 ,
5497 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
66 , 632 , 634 ,
3443 , 3532 , 5390 ,
5490 , 5494 , 5496 ,
5497 ,
}
} ,
} ,
} ,
-- Warlock
[ 265 ] = { -- Affliction
talents = {
{ 22039 , 23140 , 23141 } ,
{ 22044 , 21180 , 22089 } ,
{ 19280 , 19285 , 19286 } ,
{ 19279 , 19292 , 22046 } ,
{ 22047 , 19291 , 23465 } ,
{ 23139 , 23159 , 19295 } ,
{ 19284 , 19281 , 19293 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 5379 ,
5386 , 5392 , 5506 ,
5543 , 5546 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 5379 ,
5386 , 5392 , 5506 ,
5543 , 5546 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 5379 ,
5386 , 5392 , 5506 ,
5543 , 5546 ,
}
} ,
} ,
} ,
[ 266 ] = { -- Demonology
talents = {
{ 19290 , 22048 , 23138 } ,
{ 22045 , 21694 , 23158 } ,
{ 19280 , 19285 , 19286 } ,
{ 22477 , 22042 , 23160 } ,
{ 22047 , 19291 , 23465 } ,
{ 23147 , 23146 , 21717 } ,
{ 23161 , 22479 , 23091 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3624 , 3625 ,
3626 , 5394 , 5400 ,
5505 , 5545 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3624 , 3625 ,
3626 , 5394 , 5400 ,
5505 , 5545 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3624 , 3625 ,
3626 , 5394 , 5400 ,
5505 , 5545 ,
}
} ,
} ,
} ,
[ 267 ] = { -- Destruction
talents = {
{ 22038 , 22090 , 22040 } ,
{ 23148 , 21695 , 23157 } ,
{ 19280 , 19285 , 19286 } ,
{ 22480 , 22043 , 23143 } ,
{ 22047 , 19291 , 23465 } ,
{ 23155 , 23156 , 19295 } ,
{ 19284 , 23144 , 23092 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3508 , 3509 ,
3510 , 5382 , 5393 ,
5401 , 5507 , 5544 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3508 , 3509 ,
3510 , 5382 , 5393 ,
5401 , 5507 , 5544 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3508 , 3509 ,
3510 , 5382 , 5393 ,
5401 , 5507 , 5544 ,
}
} ,
} ,
} ,
-- Monk
[ 268 ] = { -- Brewmaster
talents = {
{ 23106 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22099 , 22097 , 19992 } ,
{ 19993 , 19994 , 19995 } ,
{ 20174 , 23363 , 20175 } ,
{ 19819 , 20184 , 22103 } ,
{ 22106 , 22104 , 22108 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
5538 , 5541 , 5542 ,
5552 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
5538 , 5541 , 5542 ,
5552 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
5538 , 5541 , 5542 ,
5552 ,
}
} ,
} ,
} ,
[ 270 ] = { -- Mistweaver
talents = {
{ 19823 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22168 , 22167 , 22166 } ,
{ 19993 , 22219 , 19995 } ,
{ 23371 , 20173 , 20175 } ,
{ 23107 , 22101 , 0 } ,
{ 22218 , 22169 , 22170 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 , 5508 ,
5539 , 5551 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 , 5508 ,
5539 , 5551 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 , 5508 ,
5539 , 5551 ,
}
} ,
} ,
} ,
[ 269 ] = { -- Windwalker
talents = {
{ 23106 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22098 , 19771 , 22096 } ,
{ 19993 , 23364 , 19995 } ,
{ 23258 , 20173 , 20175 } ,
{ 22093 , 23122 , 22102 } ,
{ 22107 , 22105 , 21191 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 ,
}
} ,
} ,
} ,
-- Druid
[ 102 ] = { -- Balance
talents = {
{ 22385 , 22386 , 22387 } ,
{ 19283 , 18570 , 18571 } ,
{ 22155 , 22157 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 18580 , 21706 , 21702 } ,
{ 22389 , 21712 , 22165 } ,
{ 21648 , 21193 , 21655 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5503 , 5515 , 5526 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5503 , 5515 , 5526 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5503 , 5515 , 5526 ,
}
} ,
} ,
} ,
[ 103 ] = { -- Feral
talents = {
{ 22363 , 22364 , 22365 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22158 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 21708 , 18579 , 21704 } ,
{ 21714 , 21711 , 22370 } ,
{ 21646 , 21649 , 21653 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5525 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5525 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5525 ,
}
} ,
} ,
} ,
[ 104 ] = { -- Guardian
talents = {
{ 22419 , 22418 , 22420 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22156 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 21709 , 21707 , 22388 } ,
{ 22423 , 21713 , 22390 } ,
{ 22426 , 22427 , 22425 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 , 5524 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 , 5524 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 , 5524 ,
}
} ,
} ,
} ,
[ 105 ] = { -- Restoration
talents = {
{ 18569 , 18574 , 18572 } ,
{ 19283 , 18570 , 18571 } ,
{ 22366 , 22367 , 22160 } ,
{ 21778 , 18576 , 18577 } ,
{ 21710 , 21705 , 22421 } ,
{ 21716 , 18585 , 22422 } ,
{ 22403 , 21651 , 22404 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5504 , 5514 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5504 , 5514 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5504 , 5514 ,
}
} ,
} ,
} ,
-- Demon Hunter
[ 577 ] = { -- Havoc
talents = {
{ 21854 , 22493 , 22416 } ,
{ 21857 , 22765 , 22799 } ,
{ 22909 , 22494 , 21862 } ,
{ 21863 , 21864 , 21865 } ,
{ 21866 , 21867 , 21868 } ,
{ 21869 , 21870 , 22767 } ,
{ 21900 , 21901 , 22547 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
805 , 806 , 809 ,
811 , 812 , 813 ,
1206 , 1218 , 5433 ,
5523 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
805 , 806 , 809 ,
811 , 812 , 813 ,
1206 , 1218 , 5433 ,
5523 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
805 , 806 , 809 ,
811 , 812 , 813 ,
1206 , 1218 , 5433 ,
5523 ,
}
} ,
} ,
} ,
[ 581 ] = { -- Vengeance
talents = {
{ 22502 , 22503 , 22504 } ,
{ 22505 , 22766 , 22507 } ,
{ 22324 , 22541 , 22540 } ,
{ 22508 , 22509 , 22770 } ,
{ 22546 , 22510 , 22511 } ,
{ 22512 , 22513 , 22768 } ,
{ 22543 , 23464 , 21902 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
} ,
} ,
-- Evoker
[ 1467 ] = { -- Devastation
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5509 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5509 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5509 ,
}
} ,
} ,
} ,
[ 1468 ] = { -- Preservation
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5502 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5502 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5502 ,
}
} ,
} ,
} ,
}
elseif Internal.IsDragonflightPatch then
specInfo = {
version = 6 ,
-- Warrior
[ 71 ] = { -- Arms
talents = {
{ 22624 , 22360 , 22371 } ,
{ 19676 , 22372 , 22789 } ,
{ 22380 , 22489 , 19138 } ,
{ 15757 , 22627 , 22628 } ,
{ 22392 , 22391 , 22362 } ,
{ 22394 , 22397 , 22399 } ,
{ 21204 , 22407 , 21667 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 , 5547 ,
}
} ,
} ,
} ,
[ 72 ] = { -- Fury
talents = {
{ 22632 , 22633 , 22491 } ,
{ 19676 , 22625 , 23093 } ,
{ 22379 , 22381 , 23372 } ,
{ 23097 , 22627 , 22382 } ,
{ 22383 , 22393 , 19140 } ,
{ 22396 , 22398 , 22400 } ,
{ 22405 , 22402 , 16037 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 , 5548 ,
}
} ,
} ,
} ,
[ 73 ] = { -- Protection
talents = {
{ 15760 , 15759 , 15774 } ,
{ 19676 , 22629 , 22409 } ,
{ 22378 , 22626 , 23260 } ,
{ 23096 , 22627 , 22488 } ,
{ 22384 , 22631 , 22800 } ,
{ 22395 , 22544 , 22401 } ,
{ 23455 , 22406 , 23099 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
} ,
} ,
-- Paladin
[ 65 ] = { -- Holy
talents = {
{ 17565 , 17567 , 17569 } ,
{ 22176 , 17575 , 17577 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 17593 } ,
{ 17597 , 17599 , 17601 } ,
{ 23191 , 23680 , 22484 } ,
{ 21201 , 21671 , 23681 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 859 , 3618 ,
5421 , 5501 , 5537 ,
5553 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 859 , 3618 ,
5421 , 5501 , 5537 ,
5553 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 859 , 3618 ,
5421 , 5501 , 5537 ,
5553 ,
}
} ,
} ,
} ,
[ 66 ] = { -- Protection
talents = {
{ 22428 , 22558 , 23469 } ,
{ 22431 , 22604 , 23468 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 22435 } ,
{ 17597 , 17599 , 17601 } ,
{ 22189 , 22438 , 23087 } ,
{ 23457 , 21202 , 22645 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 , 5536 ,
5554 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 , 5536 ,
5554 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 , 5536 ,
5554 ,
}
} ,
} ,
} ,
[ 70 ] = { -- Retribution
talents = {
{ 22590 , 22557 , 23467 } ,
{ 22319 , 22592 , 23466 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 22183 } ,
{ 17597 , 17599 , 17601 } ,
{ 23167 , 22483 , 23086 } ,
{ 23456 , 22215 , 22634 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 , 5535 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 , 5535 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 , 5535 ,
}
} ,
} ,
} ,
-- Hunter
[ 253 ] = { -- Beast Mastery
talents = {
{ 22291 , 22280 , 22282 } ,
{ 22500 , 22266 , 22290 } ,
{ 19347 , 19348 , 23100 } ,
{ 22441 , 22347 , 22269 } ,
{ 22268 , 22276 , 22499 } ,
{ 19357 , 22002 , 23044 } ,
{ 22273 , 21986 , 22295 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3612 , 3730 ,
5418 , 5441 , 5444 ,
5534 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3612 , 3730 ,
5418 , 5441 , 5444 ,
5534 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3612 , 3730 ,
5418 , 5441 , 5444 ,
5534 ,
}
} ,
} ,
} ,
[ 254 ] = { -- Marksmanship
talents = {
{ 22279 , 22501 , 22289 } ,
{ 22495 , 22497 , 22498 } ,
{ 19347 , 19348 , 23100 } ,
{ 22267 , 22286 , 21998 } ,
{ 22268 , 22276 , 23463 } ,
{ 23063 , 23104 , 22287 } ,
{ 22274 , 22308 , 22288 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
649 , 651 , 653 ,
658 , 659 , 660 ,
3614 , 3729 , 5419 ,
5440 , 5442 , 5531 ,
5533 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
649 , 651 , 653 ,
658 , 659 , 660 ,
3614 , 3729 , 5419 ,
5440 , 5442 , 5531 ,
5533 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
649 , 651 , 653 ,
658 , 659 , 660 ,
3614 , 3729 , 5419 ,
5440 , 5442 , 5531 ,
5533 ,
}
} ,
} ,
} ,
[ 255 ] = { -- Survival
talents = {
{ 22275 , 22283 , 22296 } ,
{ 21997 , 22769 , 22297 } ,
{ 19347 , 19348 , 23100 } ,
{ 22277 , 19361 , 22299 } ,
{ 22268 , 22276 , 22499 } ,
{ 22300 , 22278 , 22271 } ,
{ 22272 , 22301 , 23105 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3607 , 3609 , 3610 ,
5420 , 5443 , 5532 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3607 , 3609 , 3610 ,
5420 , 5443 , 5532 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3607 , 3609 , 3610 ,
5420 , 5443 , 5532 ,
}
} ,
} ,
} ,
-- Rogue
[ 259 ] = { -- Assassination
talents = {
{ 22337 , 22338 , 22339 } ,
{ 22331 , 22332 , 23022 } ,
{ 19239 , 19240 , 19241 } ,
{ 22340 , 22122 , 22123 } ,
{ 19245 , 23037 , 22115 } ,
{ 22343 , 23015 , 22344 } ,
{ 21186 , 22133 , 23174 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
141 , 147 , 830 ,
3448 , 3479 , 3480 ,
5405 , 5408 , 5517 ,
5530 , 5550 ,
}
} ,
} ,
} ,
[ 260 ] = { -- Outlaw
talents = {
{ 22118 , 22119 , 22120 } ,
{ 23470 , 19237 , 19238 } ,
{ 19239 , 19240 , 19241 } ,
{ 22121 , 22122 , 22123 } ,
{ 23077 , 22114 , 22115 } ,
{ 21990 , 23128 , 19250 } ,
{ 22125 , 23075 , 23175 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5516 ,
5549 ,
}
} ,
} ,
} ,
[ 261 ] = { -- Subtlety
talents = {
{ 19233 , 19234 , 19235 } ,
{ 22331 , 22332 , 22333 } ,
{ 19239 , 19240 , 19241 } ,
{ 22128 , 22122 , 22123 } ,
{ 23078 , 23036 , 22115 } ,
{ 22335 , 19249 , 22336 } ,
{ 22132 , 23183 , 21188 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 , 5529 ,
}
} ,
} ,
} ,
-- Priest
[ 256 ] = { -- Discipline
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
1244 , 5416 , 5475 ,
5480 , 5483 , 5487 ,
5498 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
1244 , 5416 , 5475 ,
5480 , 5483 , 5487 ,
5498 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
1244 , 5416 , 5475 ,
5480 , 5483 , 5487 ,
5498 ,
}
} ,
} ,
} ,
[ 257 ] = { -- Holy
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 124 , 127 ,
1927 , 5365 , 5366 ,
5476 , 5478 , 5479 ,
5482 , 5485 , 5499 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 124 , 127 ,
1927 , 5365 , 5366 ,
5476 , 5478 , 5479 ,
5482 , 5485 , 5499 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 124 , 127 ,
1927 , 5365 , 5366 ,
5476 , 5478 , 5479 ,
5482 , 5485 , 5499 ,
}
} ,
} ,
} ,
[ 258 ] = { -- Shadow
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
106 , 113 , 739 ,
763 , 5381 , 5447 ,
5474 , 5477 , 5481 ,
5484 , 5486 , 5500 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
106 , 113 , 739 ,
763 , 5381 , 5447 ,
5474 , 5477 , 5481 ,
5484 , 5486 , 5500 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
106 , 113 , 739 ,
763 , 5381 , 5447 ,
5474 , 5477 , 5481 ,
5484 , 5486 , 5500 ,
}
} ,
} ,
} ,
-- Death Knight
[ 250 ] = { -- Blood
talents = {
{ 19165 , 19166 , 23454 } ,
{ 19218 , 19219 , 19220 } ,
{ 19221 , 22134 , 22135 } ,
{ 22013 , 22014 , 22015 } ,
{ 19227 , 19226 , 19228 } ,
{ 19230 , 19231 , 19232 } ,
{ 21207 , 21208 , 21209 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5513 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5513 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5513 ,
}
} ,
} ,
} ,
[ 251 ] = { -- Frost
talents = {
{ 22016 , 22017 , 22018 } ,
{ 22019 , 22020 , 22021 } ,
{ 22515 , 22517 , 22519 } ,
{ 22521 , 22523 , 22525 } ,
{ 22527 , 22530 , 23373 } ,
{ 22531 , 22533 , 22535 } ,
{ 22023 , 22109 , 22537 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5424 ,
5429 , 5435 , 5510 ,
5512 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5424 ,
5429 , 5435 , 5510 ,
5512 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
701 , 702 , 3439 ,
3512 , 3743 , 5424 ,
5429 , 5435 , 5510 ,
5512 ,
}
} ,
} ,
} ,
[ 252 ] = { -- Unholy
talents = {
{ 22024 , 22025 , 22026 } ,
{ 22027 , 22028 , 22029 } ,
{ 22516 , 22518 , 22520 } ,
{ 22522 , 22524 , 22526 } ,
{ 22528 , 22529 , 23373 } ,
{ 22532 , 22534 , 22536 } ,
{ 22030 , 22110 , 22538 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5430 ,
5436 , 5511 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5430 ,
5436 , 5511 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5430 ,
5436 , 5511 ,
}
} ,
} ,
} ,
-- Shaman
[ 262 ] = { -- Elemental
talents = {
{ 22356 , 22357 , 22358 } ,
{ 23108 , 23460 , 23190 } ,
{ 23162 , 23163 , 23164 } ,
{ 19271 , 19272 , 19273 } ,
{ 22144 , 22172 , 21966 } ,
{ 22145 , 19266 , 23111 } ,
{ 21198 , 22153 , 21675 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
727 , 728 , 730 ,
3062 , 3488 , 3490 ,
3491 , 3620 , 3621 ,
5415 , 5457 , 5519 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
727 , 728 , 730 ,
3062 , 3488 , 3490 ,
3491 , 3620 , 3621 ,
5415 , 5457 , 5519 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
727 , 728 , 730 ,
3062 , 3488 , 3490 ,
3491 , 3620 , 3621 ,
5415 , 5457 , 5519 ,
}
} ,
} ,
} ,
[ 263 ] = { -- Enhancement
talents = {
{ 22354 , 22355 , 22353 } ,
{ 22636 , 23462 , 23109 } ,
{ 23165 , 19260 , 23166 } ,
{ 23089 , 23090 , 22171 } ,
{ 22144 , 22149 , 21966 } ,
{ 21973 , 22352 , 22351 } ,
{ 21970 , 22977 , 21972 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
5518 , 5527 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
5518 , 5527 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
5518 , 5527 ,
}
} ,
} ,
} ,
[ 264 ] = { -- Restoration
talents = {
{ 19262 , 19263 , 19264 } ,
{ 19259 , 23461 , 21963 } ,
{ 19275 , 23110 , 22127 } ,
{ 22152 , 22322 , 22323 } ,
{ 22144 , 19269 , 21966 } ,
{ 19265 , 21971 , 21968 } ,
{ 21969 , 21199 , 22359 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
707 , 708 , 712 ,
714 , 715 , 1930 ,
3520 , 3755 , 3756 ,
5388 , 5437 , 5458 ,
5528 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
707 , 708 , 712 ,
714 , 715 , 1930 ,
3520 , 3755 , 3756 ,
5388 , 5437 , 5458 ,
5528 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
707 , 708 , 712 ,
714 , 715 , 1930 ,
3520 , 3755 , 3756 ,
5388 , 5437 , 5458 ,
5528 ,
}
} ,
} ,
} ,
-- Mage
[ 62 ] = { -- Arcane
talents = {
{ 22458 , 22461 , 22464 } ,
{ 23072 , 22443 , 16025 } ,
{ 22444 , 22445 , 22447 } ,
{ 22453 , 22467 , 22470 } ,
{ 22907 , 22448 , 22471 } ,
{ 22455 , 22449 , 22474 } ,
{ 21630 , 21144 , 21145 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
61 , 635 , 637 ,
3442 , 3517 , 3529 ,
3531 , 5397 , 5488 ,
5491 , 5492 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
61 , 635 , 637 ,
3442 , 3517 , 3529 ,
3531 , 5397 , 5488 ,
5491 , 5492 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
61 , 635 , 637 ,
3442 , 3517 , 3529 ,
3531 , 5397 , 5488 ,
5491 , 5492 ,
}
} ,
} ,
} ,
[ 63 ] = { -- Fire
talents = {
{ 22456 , 22459 , 22462 } ,
{ 23071 , 22443 , 23074 } ,
{ 22444 , 22445 , 22447 } ,
{ 22450 , 22465 , 22468 } ,
{ 22904 , 22448 , 22471 } ,
{ 22451 , 23362 , 22472 } ,
{ 21631 , 22220 , 21633 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
53 , 644 , 646 ,
647 , 648 , 828 ,
5389 , 5489 , 5493 ,
5495 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
53 , 644 , 646 ,
647 , 648 , 828 ,
5389 , 5489 , 5493 ,
5495 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
53 , 644 , 646 ,
647 , 648 , 828 ,
5389 , 5489 , 5493 ,
5495 ,
}
} ,
} ,
} ,
[ 64 ] = { -- Frost
talents = {
{ 22457 , 22460 , 22463 } ,
{ 22442 , 22443 , 23073 } ,
{ 22444 , 22445 , 22447 } ,
{ 22452 , 22466 , 22469 } ,
{ 22446 , 22448 , 22471 } ,
{ 22454 , 23176 , 22473 } ,
{ 21632 , 22309 , 21634 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
66 , 632 , 634 ,
3443 , 3532 , 5390 ,
5490 , 5494 , 5496 ,
5497 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
66 , 632 , 634 ,
3443 , 3532 , 5390 ,
5490 , 5494 , 5496 ,
5497 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
66 , 632 , 634 ,
3443 , 3532 , 5390 ,
5490 , 5494 , 5496 ,
5497 ,
}
} ,
} ,
} ,
-- Warlock
[ 265 ] = { -- Affliction
talents = {
{ 22039 , 23140 , 23141 } ,
{ 22044 , 21180 , 22089 } ,
{ 19280 , 19285 , 19286 } ,
{ 19279 , 19292 , 22046 } ,
{ 22047 , 19291 , 23465 } ,
{ 23139 , 23159 , 19295 } ,
{ 19284 , 19281 , 19293 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 5379 ,
5386 , 5392 , 5506 ,
5543 , 5546 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 5379 ,
5386 , 5392 , 5506 ,
5543 , 5546 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 5379 ,
5386 , 5392 , 5506 ,
5543 , 5546 ,
}
} ,
} ,
} ,
[ 266 ] = { -- Demonology
talents = {
{ 19290 , 22048 , 23138 } ,
{ 22045 , 21694 , 23158 } ,
{ 19280 , 19285 , 19286 } ,
{ 22477 , 22042 , 23160 } ,
{ 22047 , 19291 , 23465 } ,
{ 23147 , 23146 , 21717 } ,
{ 23161 , 22479 , 23091 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3624 , 3625 ,
3626 , 5394 , 5400 ,
5505 , 5545 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3624 , 3625 ,
3626 , 5394 , 5400 ,
5505 , 5545 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3624 , 3625 ,
3626 , 5394 , 5400 ,
5505 , 5545 ,
}
} ,
} ,
} ,
[ 267 ] = { -- Destruction
talents = {
{ 22038 , 22090 , 22040 } ,
{ 23148 , 21695 , 23157 } ,
{ 19280 , 19285 , 19286 } ,
{ 22480 , 22043 , 23143 } ,
{ 22047 , 19291 , 23465 } ,
{ 23155 , 23156 , 19295 } ,
{ 19284 , 23144 , 23092 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3508 , 3509 ,
3510 , 5382 , 5393 ,
5401 , 5507 , 5544 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3508 , 3509 ,
3510 , 5382 , 5393 ,
5401 , 5507 , 5544 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3508 , 3509 ,
3510 , 5382 , 5393 ,
5401 , 5507 , 5544 ,
}
} ,
} ,
} ,
-- Monk
[ 268 ] = { -- Brewmaster
talents = {
{ 23106 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22099 , 22097 , 19992 } ,
{ 19993 , 19994 , 19995 } ,
{ 20174 , 23363 , 20175 } ,
{ 19819 , 20184 , 22103 } ,
{ 22106 , 22104 , 22108 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
5538 , 5541 , 5542 ,
5552 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
5538 , 5541 , 5542 ,
5552 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
5538 , 5541 , 5542 ,
5552 ,
}
} ,
} ,
} ,
[ 270 ] = { -- Mistweaver
talents = {
{ 19823 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22168 , 22167 , 22166 } ,
{ 19993 , 22219 , 19995 } ,
{ 23371 , 20173 , 20175 } ,
{ 23107 , 22101 , 0 } ,
{ 22218 , 22169 , 22170 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 , 5508 ,
5539 , 5551 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 , 5508 ,
5539 , 5551 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 , 5508 ,
5539 , 5551 ,
}
} ,
} ,
} ,
[ 269 ] = { -- Windwalker
talents = {
{ 23106 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22098 , 19771 , 22096 } ,
{ 19993 , 23364 , 19995 } ,
{ 23258 , 20173 , 20175 } ,
{ 22093 , 23122 , 22102 } ,
{ 22107 , 22105 , 21191 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 , 5540 ,
}
} ,
} ,
} ,
-- Druid
[ 102 ] = { -- Balance
talents = {
{ 22385 , 22386 , 22387 } ,
{ 19283 , 18570 , 18571 } ,
{ 22155 , 22157 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 18580 , 21706 , 21702 } ,
{ 22389 , 21712 , 22165 } ,
{ 21648 , 21193 , 21655 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5503 , 5515 , 5526 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5503 , 5515 , 5526 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
5503 , 5515 , 5526 ,
}
} ,
} ,
} ,
[ 103 ] = { -- Feral
talents = {
{ 22363 , 22364 , 22365 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22158 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 21708 , 18579 , 21704 } ,
{ 21714 , 21711 , 22370 } ,
{ 21646 , 21649 , 21653 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5525 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5525 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 , 5525 ,
}
} ,
} ,
} ,
[ 104 ] = { -- Guardian
talents = {
{ 22419 , 22418 , 22420 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22156 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 21709 , 21707 , 22388 } ,
{ 22423 , 21713 , 22390 } ,
{ 22426 , 22427 , 22425 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 , 5524 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 , 5524 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 , 5524 ,
}
} ,
} ,
} ,
[ 105 ] = { -- Restoration
talents = {
{ 18569 , 18574 , 18572 } ,
{ 19283 , 18570 , 18571 } ,
{ 22366 , 22367 , 22160 } ,
{ 21778 , 18576 , 18577 } ,
{ 21710 , 21705 , 22421 } ,
{ 21716 , 18585 , 22422 } ,
{ 22403 , 21651 , 22404 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5504 , 5514 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5504 , 5514 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
5387 , 5504 , 5514 ,
}
} ,
} ,
} ,
-- Demon Hunter
[ 577 ] = { -- Havoc
talents = {
{ 21854 , 22493 , 22416 } ,
{ 21857 , 22765 , 22799 } ,
{ 22909 , 22494 , 21862 } ,
{ 21863 , 21864 , 21865 } ,
{ 21866 , 21867 , 21868 } ,
{ 21869 , 21870 , 22767 } ,
{ 21900 , 21901 , 22547 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
805 , 806 , 809 ,
810 , 811 , 812 ,
813 , 1204 , 1206 ,
1218 , 5433 , 5523 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
805 , 806 , 809 ,
810 , 811 , 812 ,
813 , 1204 , 1206 ,
1218 , 5433 , 5523 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
805 , 806 , 809 ,
810 , 811 , 812 ,
813 , 1204 , 1206 ,
1218 , 5433 , 5523 ,
}
} ,
} ,
} ,
[ 581 ] = { -- Vengeance
talents = {
{ 22502 , 22503 , 22504 } ,
{ 22505 , 22766 , 22507 } ,
{ 22324 , 22541 , 22540 } ,
{ 22508 , 22509 , 22770 } ,
{ 22546 , 22510 , 22511 } ,
{ 22512 , 22513 , 22768 } ,
{ 22543 , 23464 , 21902 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
5520 , 5521 , 5522 ,
}
} ,
} ,
} ,
-- Evoker
[ 1467 ] = { -- Devastation
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5473 ,
5509 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5473 ,
5509 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
5456 , 5460 , 5462 ,
5464 , 5466 , 5467 ,
5469 , 5471 , 5473 ,
5509 ,
}
} ,
} ,
} ,
[ 1468 ] = { -- Preservation
talents = {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5472 ,
5502 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5472 ,
5502 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
5454 , 5455 , 5459 ,
5461 , 5463 , 5465 ,
5468 , 5470 , 5472 ,
5502 ,
}
} ,
} ,
} ,
}
else
specInfo = {
version = 4 ,
-- Warrior
[ 71 ] = { -- Arms
talents = {
{ 22624 , 22360 , 22371 } ,
{ 19676 , 22372 , 22789 } ,
{ 22380 , 22489 , 19138 } ,
{ 15757 , 22627 , 22628 } ,
{ 22392 , 22391 , 22362 } ,
{ 22394 , 22397 , 22399 } ,
{ 21204 , 22407 , 21667 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
28 , 29 , 31 ,
32 , 33 , 34 ,
3522 , 3534 , 5372 ,
5376 ,
}
} ,
} ,
} ,
[ 72 ] = { -- Fury
talents = {
{ 22632 , 22633 , 22491 } ,
{ 19676 , 22625 , 23093 } ,
{ 22379 , 22381 , 23372 } ,
{ 23097 , 22627 , 22382 } ,
{ 22383 , 22393 , 19140 } ,
{ 22396 , 22398 , 22400 } ,
{ 22405 , 22402 , 16037 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
25 , 166 , 170 ,
172 , 177 , 179 ,
3528 , 3533 , 3735 ,
5373 , 5431 ,
}
} ,
} ,
} ,
[ 73 ] = { -- Protection
talents = {
{ 15760 , 15759 , 15774 } ,
{ 19676 , 22629 , 22409 } ,
{ 22378 , 22626 , 23260 } ,
{ 23096 , 22627 , 22488 } ,
{ 22384 , 22631 , 22800 } ,
{ 22395 , 22544 , 22401 } ,
{ 23455 , 22406 , 23099 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
24 , 167 , 168 ,
171 , 173 , 175 ,
178 , 831 , 833 ,
845 , 5374 , 5432 ,
}
} ,
} ,
} ,
-- Paladin
[ 65 ] = { -- Holy
talents = {
{ 17565 , 17567 , 17569 } ,
{ 22176 , 17575 , 17577 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 17593 } ,
{ 17597 , 17599 , 17601 } ,
{ 23191 , 22190 , 22484 } ,
{ 21201 , 21671 , 21203 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 689 , 859 ,
3618 , 5421 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 689 , 859 ,
3618 , 5421 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
82 , 85 , 86 ,
87 , 88 , 640 ,
642 , 689 , 859 ,
3618 , 5421 ,
}
} ,
} ,
} ,
[ 66 ] = { -- Protection
talents = {
{ 22428 , 22558 , 23469 } ,
{ 22431 , 22604 , 23468 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 22435 } ,
{ 17597 , 17599 , 17601 } ,
{ 22189 , 22438 , 23087 } ,
{ 23457 , 21202 , 22645 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
90 , 91 , 92 ,
93 , 94 , 97 ,
844 , 860 , 861 ,
3474 , 3475 ,
}
} ,
} ,
} ,
[ 70 ] = { -- Retribution
talents = {
{ 22590 , 22557 , 23467 } ,
{ 22319 , 22592 , 23466 } ,
{ 22179 , 22180 , 21811 } ,
{ 22433 , 22434 , 22183 } ,
{ 17597 , 17599 , 17601 } ,
{ 23167 , 22483 , 23086 } ,
{ 23456 , 22215 , 22634 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
81 , 641 , 751 ,
752 , 753 , 754 ,
755 , 756 , 757 ,
858 , 5422 ,
}
} ,
} ,
} ,
-- Hunter
[ 253 ] = { -- Beast Mastery
talents = {
{ 22291 , 22280 , 22282 } ,
{ 22500 , 22266 , 22290 } ,
{ 19347 , 19348 , 23100 } ,
{ 22441 , 22347 , 22269 } ,
{ 22268 , 22276 , 22499 } ,
{ 19357 , 22002 , 23044 } ,
{ 22273 , 21986 , 22295 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3605 , 3612 ,
3730 , 5418 , 5441 ,
5444 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3605 , 3612 ,
3730 , 5418 , 5441 ,
5444 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
693 , 824 , 825 ,
1214 , 3599 , 3600 ,
3604 , 3605 , 3612 ,
3730 , 5418 , 5441 ,
5444 ,
}
} ,
} ,
} ,
[ 254 ] = { -- Marksmanship
talents = {
{ 22279 , 22501 , 22289 } ,
{ 22495 , 22497 , 22498 } ,
{ 19347 , 19348 , 23100 } ,
{ 22267 , 22286 , 21998 } ,
{ 22268 , 22276 , 23463 } ,
{ 23063 , 23104 , 22287 } ,
{ 22274 , 22308 , 22288 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
649 , 651 , 653 ,
656 , 657 , 658 ,
659 , 660 , 3614 ,
3729 , 5419 , 5440 ,
5442 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
649 , 651 , 653 ,
656 , 657 , 658 ,
659 , 660 , 3614 ,
3729 , 5419 , 5440 ,
5442 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
649 , 651 , 653 ,
656 , 657 , 658 ,
659 , 660 , 3614 ,
3729 , 5419 , 5440 ,
5442 ,
}
} ,
} ,
} ,
[ 255 ] = { -- Survival
talents = {
{ 22275 , 22283 , 22296 } ,
{ 21997 , 22769 , 22297 } ,
{ 19347 , 19348 , 23100 } ,
{ 22277 , 19361 , 22299 } ,
{ 22268 , 22276 , 22499 } ,
{ 22300 , 22278 , 22271 } ,
{ 22272 , 22301 , 23105 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3606 , 3607 , 3609 ,
3610 , 5420 , 5443 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3606 , 3607 , 3609 ,
3610 , 5420 , 5443 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
661 , 662 , 663 ,
664 , 665 , 686 ,
3606 , 3607 , 3609 ,
3610 , 5420 , 5443 ,
}
} ,
} ,
} ,
-- Rogue
[ 259 ] = { -- Assassination
talents = {
{ 22337 , 22338 , 22339 } ,
{ 22331 , 22332 , 23022 } ,
{ 19239 , 19240 , 19241 } ,
{ 22340 , 22122 , 22123 } ,
{ 19245 , 23037 , 22115 } ,
{ 22343 , 23015 , 22344 } ,
{ 21186 , 22133 , 23174 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
130 , 141 , 144 ,
147 , 830 , 3448 ,
3479 , 3480 , 5405 ,
5408 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
130 , 141 , 144 ,
147 , 830 , 3448 ,
3479 , 3480 , 5405 ,
5408 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
130 , 141 , 144 ,
147 , 830 , 3448 ,
3479 , 3480 , 5405 ,
5408 ,
}
} ,
} ,
} ,
[ 260 ] = { -- Outlaw
talents = {
{ 22118 , 22119 , 22120 } ,
{ 23470 , 19237 , 19238 } ,
{ 19239 , 19240 , 19241 } ,
{ 22121 , 22122 , 22123 } ,
{ 23077 , 22114 , 22115 } ,
{ 21990 , 23128 , 19250 } ,
{ 22125 , 23075 , 23175 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5413 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5413 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
129 , 135 , 138 ,
139 , 145 , 853 ,
1208 , 3421 , 3483 ,
3619 , 5412 , 5413 ,
}
} ,
} ,
} ,
[ 261 ] = { -- Subtlety
talents = {
{ 19233 , 19234 , 19235 } ,
{ 22331 , 22332 , 22333 } ,
{ 19239 , 19240 , 19241 } ,
{ 22128 , 22122 , 22123 } ,
{ 23078 , 23036 , 22115 } ,
{ 22335 , 19249 , 22336 } ,
{ 22132 , 23183 , 21188 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
136 , 146 , 153 ,
846 , 856 , 1209 ,
3447 , 3462 , 5406 ,
5409 , 5411 ,
}
} ,
} ,
} ,
-- Priest
[ 256 ] = { -- Discipline
talents = {
{ 19752 , 22313 , 22329 } ,
{ 22315 , 22316 , 19758 } ,
{ 22440 , 22094 , 19755 } ,
{ 19759 , 19769 , 19761 } ,
{ 22330 , 19765 , 19766 } ,
{ 22161 , 19760 , 19763 } ,
{ 21183 , 21184 , 22976 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
1244 , 5403 , 5416 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
1244 , 5403 , 5416 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
98 , 100 , 109 ,
111 , 114 , 117 ,
123 , 126 , 855 ,
1244 , 5403 , 5416 ,
}
} ,
} ,
} ,
[ 257 ] = { -- Holy
talents = {
{ 22312 , 19753 , 19754 } ,
{ 22325 , 22326 , 19758 } ,
{ 22487 , 22095 , 22562 } ,
{ 21750 , 21977 , 19761 } ,
{ 19764 , 22327 , 21754 } ,
{ 19767 , 19760 , 19763 } ,
{ 21636 , 21644 , 23145 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 118 , 124 ,
127 , 1242 , 1927 ,
5365 , 5366 , 5404 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 118 , 124 ,
127 , 1242 , 1927 ,
5365 , 5366 , 5404 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
101 , 108 , 112 ,
115 , 118 , 124 ,
127 , 1242 , 1927 ,
5365 , 5366 , 5404 ,
}
} ,
} ,
} ,
[ 258 ] = { -- Shadow
talents = {
{ 22328 , 22136 , 22314 } ,
{ 22315 , 23374 , 21976 } ,
{ 23125 , 23126 , 23127 } ,
{ 23137 , 23375 , 21752 } ,
{ 22310 , 22311 , 21755 } ,
{ 21718 , 21719 , 21720 } ,
{ 21637 , 21978 , 21979 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
102 , 106 , 113 ,
128 , 739 , 763 ,
3753 , 5380 , 5381 ,
5446 , 5447 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
102 , 106 , 113 ,
128 , 739 , 763 ,
3753 , 5380 , 5381 ,
5446 , 5447 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
102 , 106 , 113 ,
128 , 739 , 763 ,
3753 , 5380 , 5381 ,
5446 , 5447 ,
}
} ,
} ,
} ,
-- Death Knight
[ 250 ] = { -- Blood
talents = {
{ 19165 , 19166 , 23454 } ,
{ 19218 , 19219 , 19220 } ,
{ 19221 , 22134 , 22135 } ,
{ 22013 , 22014 , 22015 } ,
{ 19227 , 19226 , 19228 } ,
{ 19230 , 19231 , 19232 } ,
{ 21207 , 21208 , 21209 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5426 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5426 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
204 , 205 , 206 ,
607 , 608 , 609 ,
841 , 3441 , 3511 ,
5425 , 5426 ,
}
} ,
} ,
} ,
[ 251 ] = { -- Frost
talents = {
{ 22016 , 22017 , 22018 } ,
{ 22019 , 22020 , 22021 } ,
{ 22515 , 22517 , 22519 } ,
{ 22521 , 22523 , 22525 } ,
{ 22527 , 22530 , 23373 } ,
{ 22531 , 22533 , 22535 } ,
{ 22023 , 22109 , 22537 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
701 , 702 , 706 ,
3439 , 3512 , 3743 ,
5424 , 5427 , 5429 ,
5435 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
701 , 702 , 706 ,
3439 , 3512 , 3743 ,
5424 , 5427 , 5429 ,
5435 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
701 , 702 , 706 ,
3439 , 3512 , 3743 ,
5424 , 5427 , 5429 ,
5435 ,
}
} ,
} ,
} ,
[ 252 ] = { -- Unholy
talents = {
{ 22024 , 22025 , 22026 } ,
{ 22027 , 22028 , 22029 } ,
{ 22516 , 22518 , 22520 } ,
{ 22522 , 22524 , 22526 } ,
{ 22528 , 22529 , 23373 } ,
{ 22532 , 22534 , 22536 } ,
{ 22030 , 22110 , 22538 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5428 ,
5430 , 5436 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5428 ,
5430 , 5436 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
40 , 41 , 149 ,
152 , 3437 , 3746 ,
3747 , 5423 , 5428 ,
5430 , 5436 ,
}
} ,
} ,
} ,
-- Shaman
[ 262 ] = { -- Elemental
talents = {
{ 22356 , 22357 , 22358 } ,
{ 23108 , 23460 , 23190 } ,
{ 23162 , 23163 , 23164 } ,
{ 19271 , 19272 , 19273 } ,
{ 22144 , 22172 , 21966 } ,
{ 22145 , 19266 , 23111 } ,
{ 21198 , 22153 , 21675 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
727 , 728 , 730 ,
731 , 3062 , 3488 ,
3490 , 3491 , 3620 ,
3621 , 5415 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
727 , 728 , 730 ,
731 , 3062 , 3488 ,
3490 , 3491 , 3620 ,
3621 , 5415 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
727 , 728 , 730 ,
731 , 3062 , 3488 ,
3490 , 3491 , 3620 ,
3621 , 5415 ,
}
} ,
} ,
} ,
[ 263 ] = { -- Enhancement
talents = {
{ 22354 , 22355 , 22353 } ,
{ 22636 , 23462 , 23109 } ,
{ 23165 , 19260 , 23166 } ,
{ 23089 , 23090 , 22171 } ,
{ 22144 , 22149 , 21966 } ,
{ 21973 , 22352 , 22351 } ,
{ 21970 , 22977 , 21972 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
721 , 722 , 725 ,
1944 , 3487 , 3489 ,
3492 , 3519 , 3622 ,
3623 , 5414 , 5438 ,
}
} ,
} ,
} ,
[ 264 ] = { -- Restoration
talents = {
{ 19262 , 19263 , 19264 } ,
{ 19259 , 23461 , 21963 } ,
{ 19275 , 23110 , 22127 } ,
{ 22152 , 22322 , 22323 } ,
{ 22144 , 19269 , 21966 } ,
{ 19265 , 21971 , 21968 } ,
{ 21969 , 21199 , 22359 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
707 , 708 , 712 ,
713 , 714 , 715 ,
1930 , 3520 , 3755 ,
3756 , 5388 , 5437 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
707 , 708 , 712 ,
713 , 714 , 715 ,
1930 , 3520 , 3755 ,
3756 , 5388 , 5437 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
707 , 708 , 712 ,
713 , 714 , 715 ,
1930 , 3520 , 3755 ,
3756 , 5388 , 5437 ,
}
} ,
} ,
} ,
-- Mage
[ 62 ] = { -- Arcane
talents = {
{ 22458 , 22461 , 22464 } ,
{ 23072 , 22443 , 16025 } ,
{ 22444 , 22445 , 22447 } ,
{ 22453 , 22467 , 22470 } ,
{ 22907 , 22448 , 22471 } ,
{ 22455 , 22449 , 22474 } ,
{ 21630 , 21144 , 21145 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
61 , 62 , 635 ,
637 , 3442 , 3517 ,
3529 , 3531 , 5397 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
61 , 62 , 635 ,
637 , 3442 , 3517 ,
3529 , 3531 , 5397 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
61 , 62 , 635 ,
637 , 3442 , 3517 ,
3529 , 3531 , 5397 ,
}
} ,
} ,
} ,
[ 63 ] = { -- Fire
talents = {
{ 22456 , 22459 , 22462 } ,
{ 23071 , 22443 , 23074 } ,
{ 22444 , 22445 , 22447 } ,
{ 22450 , 22465 , 22468 } ,
{ 22904 , 22448 , 22471 } ,
{ 22451 , 23362 , 22472 } ,
{ 21631 , 22220 , 21633 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
53 , 643 , 644 ,
645 , 646 , 647 ,
648 , 828 , 5389 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
53 , 643 , 644 ,
645 , 646 , 647 ,
648 , 828 , 5389 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
53 , 643 , 644 ,
645 , 646 , 647 ,
648 , 828 , 5389 ,
}
} ,
} ,
} ,
[ 64 ] = { -- Frost
talents = {
{ 22457 , 22460 , 22463 } ,
{ 22442 , 22443 , 23073 } ,
{ 22444 , 22445 , 22447 } ,
{ 22452 , 22466 , 22469 } ,
{ 22446 , 22448 , 22471 } ,
{ 22454 , 23176 , 22473 } ,
{ 21632 , 22309 , 21634 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
66 , 67 , 68 ,
632 , 633 , 634 ,
3443 , 3532 , 5390 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
66 , 67 , 68 ,
632 , 633 , 634 ,
3443 , 3532 , 5390 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
66 , 67 , 68 ,
632 , 633 , 634 ,
3443 , 3532 , 5390 ,
}
} ,
} ,
} ,
-- Warlock
[ 265 ] = { -- Affliction
talents = {
{ 22039 , 23140 , 23141 } ,
{ 22044 , 21180 , 22089 } ,
{ 19280 , 19285 , 19286 } ,
{ 19279 , 19292 , 22046 } ,
{ 22047 , 19291 , 23465 } ,
{ 23139 , 23159 , 19295 } ,
{ 19284 , 19281 , 19293 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 3740 ,
5370 , 5379 , 5386 ,
5392 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 3740 ,
5370 , 5379 , 5386 ,
5392 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
11 , 12 , 15 ,
16 , 17 , 18 ,
19 , 20 , 3740 ,
5370 , 5379 , 5386 ,
5392 ,
}
} ,
} ,
} ,
[ 266 ] = { -- Demonology
talents = {
{ 19290 , 22048 , 23138 } ,
{ 22045 , 21694 , 23158 } ,
{ 19280 , 19285 , 19286 } ,
{ 22477 , 22042 , 23160 } ,
{ 22047 , 19291 , 23465 } ,
{ 23147 , 23146 , 21717 } ,
{ 23161 , 22479 , 23091 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3507 , 3624 ,
3625 , 3626 , 5394 ,
5400 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3507 , 3624 ,
3625 , 3626 , 5394 ,
5400 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
156 , 158 , 162 ,
165 , 1213 , 3505 ,
3506 , 3507 , 3624 ,
3625 , 3626 , 5394 ,
5400 ,
}
} ,
} ,
} ,
[ 267 ] = { -- Destruction
talents = {
{ 22038 , 22090 , 22040 } ,
{ 23148 , 21695 , 23157 } ,
{ 19280 , 19285 , 19286 } ,
{ 22480 , 22043 , 23143 } ,
{ 22047 , 19291 , 23465 } ,
{ 23155 , 23156 , 19295 } ,
{ 19284 , 23144 , 23092 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3504 , 3508 ,
3509 , 3510 , 5382 ,
5393 , 5401 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3504 , 3508 ,
3509 , 3510 , 5382 ,
5393 , 5401 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
157 , 159 , 164 ,
3502 , 3504 , 3508 ,
3509 , 3510 , 5382 ,
5393 , 5401 ,
}
} ,
} ,
} ,
-- Monk
[ 268 ] = { -- Brewmaster
talents = {
{ 23106 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22099 , 22097 , 19992 } ,
{ 19993 , 19994 , 19995 } ,
{ 20174 , 23363 , 20175 } ,
{ 19819 , 20184 , 22103 } ,
{ 22106 , 22104 , 22108 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
666 , 667 , 668 ,
669 , 670 , 671 ,
672 , 673 , 765 ,
843 , 1958 , 5417 ,
}
} ,
} ,
} ,
[ 270 ] = { -- Mistweaver
talents = {
{ 19823 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22168 , 22167 , 22166 } ,
{ 19993 , 22219 , 19995 } ,
{ 23371 , 20173 , 20175 } ,
{ 23107 , 22101 , 22214 } ,
{ 22218 , 22169 , 22170 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
70 , 678 , 679 ,
680 , 682 , 683 ,
1928 , 3732 , 5395 ,
5398 , 5402 ,
}
} ,
} ,
} ,
[ 269 ] = { -- Windwalker
talents = {
{ 23106 , 19820 , 20185 } ,
{ 19304 , 19818 , 19302 } ,
{ 22098 , 19771 , 22096 } ,
{ 19993 , 23364 , 19995 } ,
{ 23258 , 20173 , 20175 } ,
{ 22093 , 23122 , 22102 } ,
{ 22107 , 22105 , 21191 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
77 , 675 , 852 ,
3050 , 3052 , 3734 ,
3737 , 3744 , 3745 ,
5448 ,
}
} ,
} ,
} ,
-- Druid
[ 102 ] = { -- Balance
talents = {
{ 22385 , 22386 , 22387 } ,
{ 19283 , 18570 , 18571 } ,
{ 22155 , 22157 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 18580 , 21706 , 21702 } ,
{ 22389 , 21712 , 22165 } ,
{ 21648 , 21193 , 21655 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
180 , 182 , 184 ,
185 , 822 , 834 ,
836 , 3058 , 3728 ,
3731 , 5383 , 5407 ,
}
} ,
} ,
} ,
[ 103 ] = { -- Feral
talents = {
{ 22363 , 22364 , 22365 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22158 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 21708 , 18579 , 21704 } ,
{ 21714 , 21711 , 22370 } ,
{ 21646 , 21649 , 21653 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
201 , 203 , 601 ,
602 , 611 , 612 ,
620 , 820 , 3053 ,
3751 , 5384 ,
}
} ,
} ,
} ,
[ 104 ] = { -- Guardian
talents = {
{ 22419 , 22418 , 22420 } ,
{ 19283 , 18570 , 18571 } ,
{ 22163 , 22156 , 22159 } ,
{ 21778 , 18576 , 18577 } ,
{ 21709 , 21707 , 22388 } ,
{ 22423 , 21713 , 22390 } ,
{ 22426 , 22427 , 22425 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
49 , 50 , 51 ,
52 , 192 , 193 ,
194 , 195 , 196 ,
197 , 842 , 1237 ,
3750 , 5410 ,
}
} ,
} ,
} ,
[ 105 ] = { -- Restoration
talents = {
{ 18569 , 18574 , 18572 } ,
{ 19283 , 18570 , 18571 } ,
{ 22366 , 22367 , 22160 } ,
{ 21778 , 18576 , 18577 } ,
{ 21710 , 21705 , 22421 } ,
{ 21716 , 18585 , 22422 } ,
{ 22403 , 21651 , 22404 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
3752 , 5387 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
3752 , 5387 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
59 , 691 , 692 ,
697 , 700 , 835 ,
838 , 1215 , 3048 ,
3752 , 5387 ,
}
} ,
} ,
} ,
-- Demon Hunter
[ 577 ] = { -- Havoc
talents = {
{ 21854 , 22493 , 22416 } ,
{ 21857 , 22765 , 22799 } ,
{ 22909 , 22494 , 21862 } ,
{ 21863 , 21864 , 21865 } ,
{ 21866 , 21867 , 21868 } ,
{ 21869 , 21870 , 22767 } ,
{ 21900 , 21901 , 22547 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
805 , 806 , 809 ,
810 , 811 , 812 ,
813 , 1204 , 1206 ,
1218 , 5433 , 5445 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
805 , 806 , 809 ,
810 , 811 , 812 ,
813 , 1204 , 1206 ,
1218 , 5433 , 5445 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
805 , 806 , 809 ,
810 , 811 , 812 ,
813 , 1204 , 1206 ,
1218 , 5433 , 5445 ,
}
} ,
} ,
} ,
[ 581 ] = { -- Vengeance
talents = {
{ 22502 , 22503 , 22504 } ,
{ 22505 , 22766 , 22507 } ,
{ 22324 , 22541 , 22540 } ,
{ 22508 , 22509 , 22770 } ,
{ 22546 , 22510 , 22511 } ,
{ 22512 , 22513 , 22768 } ,
{ 22543 , 23464 , 21902 } ,
} ,
pvptalentslots = {
{
level = 20 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
}
} ,
{
level = 30 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
}
} ,
{
level = 40 ,
availableTalentIDs = {
814 , 815 , 816 ,
819 , 1220 , 1948 ,
3423 , 3429 , 3430 ,
3727 , 5434 , 5439 ,
}
} ,
} ,
} ,
}
end
if type ( specInfo.version ) ~= " number " then
error ( " MISSING SPEC INFO VERSION NUMBER " )
end
function GetSpecInfoVersion ( )
return specInfo.version
end
function VerifyTalentForSpec ( specID , talentID )
if specInfo [ specID ] then
for tier , talents in ipairs ( specInfo [ specID ] . talents ) do
for column , talent in ipairs ( talents ) do
if talent == talentID then
return tier , column
end
end
end
end
end
function VerifyPvPTalentForSpec ( specID , talentID )
if specInfo [ specID ] then
for _ , slot in ipairs ( specInfo [ specID ] . pvptalentslots ) do
for _ , talent in ipairs ( slot.availableTalentIDs ) do
if talent == talentID then
return true
end
end
end
end
end
function GetTalentInfoForSpecID ( specID , tier , column )
for specIndex = 1 , GetNumSpecializations ( ) do
local playerSpecID = GetSpecializationInfo ( specIndex ) ;
if playerSpecID == specID then
return GetTalentInfoBySpecialization ( specIndex , tier , column ) ;
end
end
if BtWLoadoutsSpecInfo [ specID ] then
return GetTalentInfoByID ( BtWLoadoutsSpecInfo [ specID ] . talents [ tier ] [ column ] ) ;
end
if specInfo [ specID ] then
return GetTalentInfoByID ( specInfo [ specID ] . talents [ tier ] [ column ] ) ;
end
end
function GetPvpTalentSlotInfoForSpecID ( specID , index )
local playerSpecID = GetSpecializationInfo ( GetSpecialization ( ) ) ;
if playerSpecID == specID then
local slotInfo = GetPvpTalentSlotInfo ( index ) ;
return slotInfo
end
if BtWLoadoutsSpecInfo [ specID ] and BtWLoadoutsSpecInfo [ specID ] . pvptalentslots and BtWLoadoutsSpecInfo [ specID ] . pvptalentslots [ index ] then
return BtWLoadoutsSpecInfo [ specID ] . pvptalentslots [ index ] ;
end
if specInfo [ specID ] and specInfo [ specID ] . pvptalentslots and specInfo [ specID ] . pvptalentslots [ index ] then
return specInfo [ specID ] . pvptalentslots [ index ] ;
end
end
Internal.GetSpecInfoVersion = GetSpecInfoVersion
Internal.VerifyTalentForSpec = VerifyTalentForSpec
Internal.VerifyPvPTalentForSpec = VerifyPvPTalentForSpec
Internal.GetTalentInfoForSpecID = GetTalentInfoForSpecID
Internal.GetPvpTalentSlotInfoForSpecID = GetPvpTalentSlotInfoForSpecID
end
local GetEssenceInfoByID , GetEssenceInfoForRole ;
do
local essenceInfo = {
nil , -- [1]
{
[ " ID " ] = 2 ,
[ " name " ] = " Azeroth's Undying Gift " ,
[ " icon " ] = 2967107 ,
} , -- [2]
{
[ " ID " ] = 3 ,
[ " name " ] = " Sphere of Suppression " ,
[ " icon " ] = 2065602 ,
} , -- [3]
{
[ " ID " ] = 4 ,
[ " name " ] = " Worldvein Resonance " ,
[ " icon " ] = 1830317 ,
} , -- [4]
{
[ " ID " ] = 5 ,
[ " name " ] = " Essence of the Focusing Iris " ,
[ " icon " ] = 2967111 ,
} , -- [5]
{
[ " ID " ] = 6 ,
[ " name " ] = " Purification Protocol " ,
[ " icon " ] = 2967103 ,
} , -- [6]
{
[ " ID " ] = 7 ,
[ " name " ] = " Anima of Life and Death " ,
[ " icon " ] = 2967105 ,
} , -- [7]
nil , -- [8]
nil , -- [9]
nil , -- [10]
nil , -- [11]
{
[ " ID " ] = 12 ,
[ " name " ] = " The Crucible of Flame " ,
[ " icon " ] = 3015740 ,
} , -- [12]
{
[ " ID " ] = 13 ,
[ " name " ] = " Nullification Dynamo " ,
[ " icon " ] = 3015741 ,
} , -- [13]
{
[ " ID " ] = 14 ,
[ " name " ] = " Condensed Life-Force " ,
[ " icon " ] = 2967113 ,
} , -- [14]
{
[ " ID " ] = 15 ,
[ " name " ] = " Ripple in Space " ,
[ " icon " ] = 2967109 ,
} , -- [15]
{
[ " ID " ] = 16 ,
[ " name " ] = " Unwavering Ward " ,
[ " icon " ] = 3193842 ,
} , -- [16]
{
[ " ID " ] = 17 ,
[ " name " ] = " The Ever-Rising Tide " ,
[ " icon " ] = 2967108 ,
} , -- [17]
{
[ " ID " ] = 18 ,
[ " name " ] = " Artifice of Time " ,
[ " icon " ] = 2967112 ,
} , -- [18]
{
[ " ID " ] = 19 ,
[ " name " ] = " The Well of Existence " ,
[ " icon " ] = 516796 ,
} , -- [19]
{
[ " ID " ] = 20 ,
[ " name " ] = " Life-Binder's Invocation " ,
[ " icon " ] = 2967106 ,
} , -- [20]
{
[ " ID " ] = 21 ,
[ " name " ] = " Vitality Conduit " ,
[ " icon " ] = 2967100 ,
} , -- [21]
{
[ " ID " ] = 22 ,
[ " name " ] = " Vision of Perfection " ,
[ " icon " ] = 3015743 ,
} , -- [22]
{
[ " ID " ] = 23 ,
[ " name " ] = " Blood of the Enemy " ,
[ " icon " ] = 2032580 ,
} , -- [23]
{
[ " ID " ] = 24 ,
[ " name " ] = " Spirit of Preservation " ,
[ " icon " ] = 2967101 ,
} , -- [24]
{
[ " ID " ] = 25 ,
[ " name " ] = " Aegis of the Deep " ,
[ " icon " ] = 2967110 ,
} , -- [25]
nil , -- [26]
{
[ " ID " ] = 27 ,
[ " name " ] = " Memory of Lucid Dreams " ,
[ " icon " ] = 2967104 ,
} , -- [27]
{
[ " ID " ] = 28 ,
[ " name " ] = " The Unbound Force " ,
[ " icon " ] = 2967102 ,
} , -- [28]
nil , -- [29]
nil , -- [30]
nil , -- [31]
{
[ " ID " ] = 32 ,
[ " name " ] = " Conflict and Strife " ,
[ " icon " ] = 3015742 ,
} , -- [32]
{
[ " ID " ] = 33 ,
[ " name " ] = " Touch of the Everlasting " ,
[ " icon " ] = 3193847 ,
} , -- [33]
{
[ " ID " ] = 34 ,
[ " name " ] = " Strength of the Warden " ,
[ " icon " ] = 3193846 ,
} , -- [34]
{
[ " ID " ] = 35 ,
[ " name " ] = " Breath of the Dying " ,
[ " icon " ] = 3193844 ,
} , -- [35]
{
[ " ID " ] = 36 ,
[ " name " ] = " Spark of Inspiration " ,
[ " icon " ] = 3193843 ,
} , -- [36]
{
[ " ID " ] = 37 ,
[ " name " ] = " The Formless Void " ,
[ " icon " ] = 3193845 ,
} , -- [37]
}
local roleInfo = {
[ " DAMAGER " ] = {
[ " essences " ] = {
23 , -- [1]
35 , -- [2]
14 , -- [3]
32 , -- [4]
5 , -- [5]
27 , -- [6]
6 , -- [7]
15 , -- [8]
36 , -- [9]
12 , -- [10]
37 , -- [11]
28 , -- [12]
22 , -- [13]
4 , -- [14]
} ,
} ,
[ " TANK " ] = {
[ " essences " ] = {
25 , -- [1]
7 , -- [2]
2 , -- [3]
32 , -- [4]
27 , -- [5]
13 , -- [6]
15 , -- [7]
3 , -- [8]
34 , -- [9]
12 , -- [10]
37 , -- [11]
33 , -- [12]
22 , -- [13]
4 , -- [14]
} ,
} ,
[ " HEALER " ] = {
[ " essences " ] = {
18 , -- [1]
32 , -- [2]
20 , -- [3]
27 , -- [4]
15 , -- [5]
24 , -- [6]
12 , -- [7]
17 , -- [8]
37 , -- [9]
19 , -- [10]
16 , -- [11]
22 , -- [12]
21 , -- [13]
4 , -- [14]
} ,
} ,
} ;
function GetEssenceInfoByID ( essenceID )
local essence = GetEssenceInfo ( essenceID ) ;
if not essence then
essence = BtWLoadoutsEssenceInfo and BtWLoadoutsEssenceInfo [ essenceID ] or essenceInfo [ essenceID ] ;
end
return essence ;
end
function GetEssenceInfoForRole ( role , index )
if BtWLoadoutsRoleInfo [ role ] and BtWLoadoutsRoleInfo [ role ] . essences and BtWLoadoutsRoleInfo [ role ] . essences [ index ] then
return GetEssenceInfoByID ( BtWLoadoutsRoleInfo [ role ] . essences [ index ] ) ;
end
if roleInfo [ role ] and roleInfo [ role ] . essences and roleInfo [ role ] . essences [ index ] then
return GetEssenceInfoByID ( roleInfo [ role ] . essences [ index ] ) ;
end
end
Internal.GetEssenceInfoByID = GetEssenceInfoByID
Internal.GetEssenceInfoForRole = GetEssenceInfoForRole
end
do
local traitInfoVersion , trees , nodes = Internal.dftalents . version , Internal.dftalents . trees , Internal.dftalents . nodes
for _ , node in pairs ( nodes ) do
for _ , edge in ipairs ( node.edges ) do
local target = nodes [ edge.targetNode ] ;
target.incomingEdges = target.incomingEdges or { } ;
target.incomingEdges [ # target.incomingEdges + 1 ] = node.ID ;
end
end
function Internal . GetTraitInfoVersion ( )
return traitInfoVersion ;
end
function Internal . GetTreeInfoBySpecID ( specID )
local result = BtWLoadoutsTraitsInfo.trees [ specID ] or trees [ specID ] ;
if not result then
C_ClassTalents.InitializeViewLoadout ( specID , 70 ) ;
C_ClassTalents.ViewLoadout ( { } ) ;
Internal.UpdateTraitInfoFromConfig ( specID , Constants.TraitConsts . VIEW_TRAIT_CONFIG_ID ) ;
result = BtWLoadoutsTraitsInfo.trees [ specID ] or trees [ specID ] ;
end
result.buttonSize = 40 ;
result.minZoom = 0.75 ;
result.maxZoom = 0.75 ;
return result ;
end
function Internal . GetNodeInfo ( nodeID )
return nodes [ nodeID ] ;
end
function Internal . GetNodeInfoBySpecID ( specID , nodeID )
local tree = Internal.GetTreeInfoBySpecID ( specID ) ;
local result = BtWLoadoutsTraitsInfo.nodes [ nodeID ] and CopyTable ( BtWLoadoutsTraitsInfo.nodes [ nodeID ] , false ) or nodes [ nodeID ] ;
if not result then
error ( " Missing Node " .. nodeID ) ;
end
result.isVisible = tree.visibleNodes [ nodeID ] and true or false ;
if tContains ( tree.grantedNodes , nodeID ) then
result.activeRank = result.maxRanks ;
result.currentRank = result.maxRanks ;
else
result.activeRank = 0 ;
result.currentRank = 0 ;
end
result.ranksPurchased = 0 ;
if not result.activeEntry and # result.entryIDs == 1 then
result.activeEntry = {
entryID = result.entryIDs [ 1 ] ,
rank = 1 ,
}
end
if result.edgesBySpecID and result.edgesBySpecID [ specID ] then
result.visibleEdges = result.edgesBySpecID [ specID ] ;
else
result.visibleEdges = { }
end
return result ;
end
function Internal . UpdateTraitInfoFromPlayer ( )
local specID = GetSpecializationInfo ( GetSpecialization ( ) ) ;
C_ClassTalents.InitializeViewLoadout ( specID , 70 ) ;
local success = C_ClassTalents.ViewLoadout ( { } ) ;
if not success then
--[==[@debug@
print ( format ( L [ " [BtWLoadouts]: failed to update trait information for %s, could not initialize trait tree. " ] , select ( 2 , GetSpecializationInfoByID ( specID ) ) ) ) ;
--@end-debug@]==]
return
end
local configID = Constants.TraitConsts . VIEW_TRAIT_CONFIG_ID ; -- C_ClassTalents.GetActiveConfigID();
if not configID then
--[==[@debug@
print ( format ( L [ " [BtWLoadouts]: failed to update trait information for %s, missing active config id. " ] , select ( 2 , GetSpecializationInfoByID ( specID ) ) ) ) ;
--@end-debug@]==]
return
end
return Internal.UpdateTraitInfoFromConfig ( specID , configID )
end
function Internal . UpdateTraitInfoFromConfig ( specID , configID )
if not C_ClassTalents then
--[==[@debug@
print ( format ( L [ " [BtWLoadouts]: failed to update trait information for %s, missing C_ClassTalents. " ] , select ( 2 , GetSpecializationInfoByID ( specID ) ) ) ) ;
--@end-debug@]==]
return
end
local configInfo = C_Traits.GetConfigInfo ( configID ) ;
local treeID = C_ClassTalents.GetTraitTreeForSpec ( specID ) ;
local tree = C_Traits.GetTreeInfo ( configID , treeID ) ;
local nodeIDs = C_Traits.GetTreeNodes ( treeID ) ;
local currencies = C_Traits.GetTreeCurrencyInfo ( configID , treeID , true ) ;
local incomingEdgesByNodeID = { }
--[==[@debug@
print ( format ( L [ " [BtWLoadouts]: updating trait information for %s, configID: %d, treeID: %d. " ] , select ( 2 , GetSpecializationInfoByID ( specID ) ) , configID , treeID ) ) ;
--@end-debug@]==]
local conditions = setmetatable ( { } , {
__index = function ( self , key )
if type ( key ) == " number " then
local result = C_Traits.GetConditionInfo ( configID , key )
self [ key ] = result ;
return result ;
end
end
} ) ;
for _ , gate in ipairs ( tree.gates ) do
local condInfo = conditions [ gate.conditionID ] ;
gate.traitCurrencyID = condInfo.traitCurrencyID ;
gate.spentAmountRequired = condInfo.spentAmountRequired ;
end
tree.hideSingleRankNumbers = nil ;
tree.buttonSize = nil ;
tree.maxZoom = nil ;
tree.minZoom = nil ;
for _ , currency in ipairs ( currencies ) do
currency.quantity = nil ;
currency.spent = nil ;
end
tree.nodes = nodeIDs ;
tree.currencies = currencies ;
local visibleNodes = { } ;
local grantedNodes = { } ;
for _ , nodeID in ipairs ( nodeIDs ) do
local nodeInfo = C_Traits.GetNodeInfo ( configID , nodeID ) ;
if nodeInfo and nodeInfo.isVisible then
visibleNodes [ nodeID ] = true ;
for _ , condID in ipairs ( nodeInfo.conditionIDs ) do
local condInfo = conditions [ condID ] ;
if condInfo.ranksGranted and ( condInfo.specSetID == nil or tContains ( C_SpecializationInfo.GetSpecIDs ( condInfo.specSetID ) , specID ) ) then
grantedNodes [ # grantedNodes + 1 ] = nodeID ;
end
end
if not incomingEdgesByNodeID [ nodeID ] then
incomingEdgesByNodeID [ nodeID ] = { } ;
end
nodeInfo.canPurchaseRank = nil ;
nodeInfo.canRefundRank = nil ;
nodeInfo.isAvailable = nil ;
nodeInfo.isCascadeRepurchasable = nil ;
nodeInfo.isVisible = nil ;
nodeInfo.meetsEdgeRequirements = nil ;
nodeInfo.activeRank = nil ;
nodeInfo.currentRank = nil ;
nodeInfo.ranksPurchased = nil ;
nodeInfo.activeEntry = nil ;
nodeInfo.entryIDsWithCommittedRanks = nil ;
for _ , edge in ipairs ( nodeInfo.visibleEdges ) do
edge.isActive = nil ;
if not incomingEdgesByNodeID [ edge.targetNode ] then
incomingEdgesByNodeID [ edge.targetNode ] = { } ;
end
incomingEdgesByNodeID [ edge.targetNode ] [ # incomingEdgesByNodeID [ edge.targetNode ] + 1 ] = nodeID ;
end
local savedNodeInfo = Internal.GetNodeInfo ( nodeID ) ;
nodeInfo.edgesBySpecID = savedNodeInfo and savedNodeInfo.edgesBySpecID or { } ;
nodeInfo.edgesBySpecID [ specID ] = nodeInfo.visibleEdges ;
nodeInfo.incomingEdges = savedNodeInfo and savedNodeInfo.incomingEdges ;
nodeInfo.incomingEdgesBySpecID = savedNodeInfo and savedNodeInfo.incomingEdgesBySpecID or { } ;
nodeInfo.incomingEdgesBySpecID [ specID ] = incomingEdgesByNodeID [ nodeID ] ;
nodeInfo.visibleEdges = nil ;
local costs = C_Traits.GetNodeCost ( configID , nodeID ) ;
nodeInfo.costs = costs ;
BtWLoadoutsTraitsInfo.nodes [ nodeID ] = nodeInfo ;
elseif not BtWLoadoutsTraitsInfo.nodes [ nodeID ] then
nodeInfo.canPurchaseRank = nil ;
nodeInfo.canRefundRank = nil ;
nodeInfo.isAvailable = nil ;
nodeInfo.isCascadeRepurchasable = nil ;
nodeInfo.isVisible = nil ;
nodeInfo.meetsEdgeRequirements = nil ;
nodeInfo.activeRank = nil ;
nodeInfo.currentRank = nil ;
nodeInfo.ranksPurchased = nil ;
nodeInfo.activeEntry = nil ;
nodeInfo.entryIDsWithCommittedRanks = nil ;
BtWLoadoutsTraitsInfo.nodes [ nodeID ] = nodeInfo ;
end
end
tree.visibleNodes = visibleNodes ;
tree.grantedNodes = grantedNodes ;
BtWLoadoutsTraitsInfo.trees [ specID ] = tree ;
end
end
function Internal . GetCharacterInfo ( character )
return BtWLoadoutsCharacterInfo and BtWLoadoutsCharacterInfo [ character ] ;
end
function Internal . GetFormattedCharacterName ( slug , includeRealm )
local characterInfo = Internal.GetCharacterInfo ( slug )
if characterInfo then
local classColor = C_ClassColor.GetClassColor ( characterInfo.class )
if includeRealm then
return format ( " %s - %s " , classColor : WrapTextInColorCode ( characterInfo.name ) , characterInfo.realm )
else
return classColor : WrapTextInColorCode ( characterInfo.name )
end
end
return slug
end
local characterIteratorTemp = { }
function Internal . CharacterIterator ( )
wipe ( characterIteratorTemp ) ;
for character in pairs ( BtWLoadoutsCharacterInfo or { } ) do
characterIteratorTemp [ # characterIteratorTemp + 1 ] = character
end
table.sort ( characterIteratorTemp , function ( a , b )
return a < b
end )
return ipairs ( characterIteratorTemp )
end
-- EnumerateRealms
do
local unique , list = { } , { }
function Internal . EnumerateRealms ( )
wipe ( unique )
wipe ( list )
for _ , character in pairs ( BtWLoadoutsCharacterInfo or { } ) do
unique [ character.realm ] = true
end
for realm in pairs ( unique ) do
list [ # list + 1 ] = realm
end
table.sort ( list , function ( a , b )
return a < b
end )
return ipairs ( list )
end
end
-- EnumerateCharactersForRealm
do
local list = { }
function Internal . EnumerateCharactersForRealm ( realm )
wipe ( list )
for slug , character in pairs ( BtWLoadoutsCharacterInfo or { } ) do
if character.realm == realm then
list [ # list + 1 ] = slug
end
end
table.sort ( list , function ( a , b )
return a < b
end )
return ipairs ( list )
end
end
function Internal . DeleteCharacter ( slug )
if Internal.Call ( " CHARACTER_DELETE " , slug ) then
BtWLoadoutsCharacterInfo [ slug ] = nil
end
BtWLoadoutsFrame : Update ( ) ;
end
function Internal . UpdatePlayerInfo ( )
local name , realm = UnitFullName ( " player " ) ;
local class = select ( 2 , UnitClass ( " player " ) ) ;
local race = select ( 3 , UnitRace ( " player " ) ) ;
local sex = UnitSex ( " player " ) - 2 ;
BtWLoadoutsCharacterInfo [ realm .. " - " .. name ] = { name = name , realm = GetRealmName ( ) , class = class , race = race , sex = sex } ;
end
-- Checks if the player can switch to specID, used to check if loadouts are valid
function Internal . CanSwitchToSpecialization ( specID )
local playerClass = select ( 2 , UnitClass ( " player " ) ) ;
local specClass = select ( 6 , GetSpecializationInfoByID ( specID ) ) ;
if playerClass ~= specClass then
return false
end
local specIndex = GetSpecialization ( )
if specIndex == nil then
return false
end
if select ( 2 , GetInstanceInfo ( ) ) == " arena " then
-- Can not switch specs in arena
return GetSpecializationInfo ( specIndex ) == specID
elseif select ( 2 , GetInstanceInfo ( ) ) == " battleground " then
-- You can only switch specs in bgs unless you go from or to healer
local currentRole = GetSpecializationRole ( specIndex )
local targetRole = GetSpecializationRoleByID ( specID )
return ( currentRole == targetRole ) or not ( currentRole == " HEALER " or targetRole == " HEALER " )
end
return true
end
function Internal . HasJailersChains ( )
return GetPlayerAuraBySpellID ( 338906 ) ~= nil
end